libidn-1.38/0000755000000000000000000000000014076274122007662 500000000000000libidn-1.38/libc/0000755000000000000000000000000014076274117010577 500000000000000libidn-1.38/libc/getaddrinfo-idn.txt0000644000000000000000000001162214076271517014321 00000000000000Libidn getaddrinfo-idn.txt -- Proposal for IDN support in POSIX getaddrinfo. Copyright (C) 2003-2021 Simon Josefsson See the end for copying conditions. Background ---------- Libidn is a package for internationalized string handling based on the Stringprep, Punycode and Internationalized Domain Names in Applications (IDNA) specifications. It can be used by applications directly by linking to it, as is done by, e.g., Gnus, KDE, and Mutt. Having each and every application link with and perform its own IDN handling is not a good idea. It bloats the code and makes things unnecessarily complex. Only few applications, such as web browsers and mail clients, will need to do this in the future, to provide good user interfaces for internationalization. See http://josefsson.org/libidn/ for more information. Alternative Approaches ---------------------- There are implementation that modify gethostbyname() to accept UTF-8 strings and perform the IDNA ToASCII operation within gethostbyname(). There are even implementations that assume gethostbyname (on the client host) perform no validation of the string and will send UTF-8 strings out to the DNS server, and perform the IDN-conversion on the DNS server. Some doubts can be raised whether this is an approach that is likely to be standardized. It also lack in functionality: it only provide black-box ToASCII functionality. The application cannot extract the output from the ToASCII operation. More important, there is no way to perform a ToUnicode operation that applications may want to use for display purposes. Furthermore, while the first can support locale specific character sets (e.g., ISO-8859-1), the second approach is bound to either guess the character set, or always use UTF-8. See also the thread rooted in posted to libc-alpha@sources.redhat.com on 08 Jan 2003. What I propose -------------- The getaddrinfo() API should have two new flags, AI_IDN and AI_CANONIDN. Roughly they correspond to IDNA ToASCII and IDNA ToUnicode, but there are several details. Note that strings are still 'char*', i.e. it does not use the "wide" character type, and that the encoding of non-ASCII strings are the current locale's character set (i.e., nl_langinfo(CODESET)). An application that uses AI_IDN signal to the getaddrinfo() implementation that the input host name may be non-ASCII and that the appropriate IDNA ToASCII steps should be carried out on the input, and the output from the ToASCII operation (if any) should be used in the lookup using the current resolver processing. An application that uses AI_CANONIDN signal to the getaddrinfo() implementation that the input host name should be put through the IDNA ToUnicode steps, and the output of that placed in the 'ai_canonname' field of the resulting structure. Normal resolver processing applies to the input string, of course. Consequently, an application that uses AI_IDN|AI_CANONIDN signal to the getaddrinfo() implementation that the input host name may be non-ASCII and should be put through the IDNA ToASCII steps before run through the resolver, and that the input string should also be run through the IDNA ToUnicode steps and the output of that placed in the 'ai_canonname' field. The semantics of AI_CANONNAME|AI_CANONIDN is that instead of running the ToUnicode IDNA steps on the input string, the canonical host name as returned by the resolver for the input string should be used in the ToUnicode IDNA step. Details ------- Four new flags has been proposed; AI_IDN_ALLOW_UNASSIGNED, AI_IDN_USE_STD3_ASCII_RULES for getaddrinfo, and NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES for getnameinfo. The implementation is simple, if specified those flag will set the appropriate flag in the call to the IDNA functions. See the RFC for the meaning of those flags. Status ------ The AI_IDN flag has been implemented and shipped as a proof-of-concept patch for GNU Libc with GNU Libidn since January 2003. Binary libc packages with the patch exists for (at least) two GNU/Linux distributions. The AI_CANONIDN flag is not yet implemented. As of March 2004, Libidn has been integrated as an add-on in the GNU Libc CVS repository. The AI_CANONIDN flag has been implemented. The AllowUnassigned and UseSTD3ASCIIRules flags were added. Future ------ Allow non-ASCII in gethostname (and similar functions), if administrator has supplied, e.g., 'option idn' in /etc/resolv.conf? Feedback -------- This document is a work-in-progress and the details may change. Contact me at simon@josefsson.org to discuss changes. ---------------------------------------------------------------------- Permission is granted to anyone to make or distribute verbatim copies of this document, in any medium, provided that the copyright notice and permission notice are preserved, and that the distributor grants the recipient permission for further redistribution as permitted by this notice. Modified versions may not be made. libidn-1.38/libc/example.c0000644000000000000000000000445114076271517012323 00000000000000/* example.c --- Example code showing how to use IDN enabled getaddrinfo(). * Copyright (C) 2003-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #define _GNU_SOURCE 1 #include #include #include #include #include #include #include /* setlocale() */ /* * Compiling against IDN enabled Libc: * * $ gcc -o example example.c -L/usr/local/glibc/lib -Wl,-rpath,/usr/local/glibc/lib -nostdinc -I/usr/local/glibc/include -I/usr/include -I/usr/lib/gcc-lib/i486-linux/3.3.3/include * $ CHARSET=iso-8859-1 ./example * locale charset `iso-8859-1' * gettaddrinfo(räksmörgås.josefsson.org): * address `217.13.230.178' * canonical name `178.230.13.217.in-addr.dgcsystems.net' * $ * * Internally the name iesg--rksmrgsa-0zap8p.josefsson.org is looked * up in DNS. */ int main (int argc, char *argv[]) { char *in = argc > 1 ? argv[1] : "räksmörgås.josefsson.org"; struct addrinfo hints; struct addrinfo *res = NULL; int rc; setlocale (LC_ALL, ""); //printf("locale charset `%s'\n", stringprep_locale_charset()); memset (&hints, 0, sizeof (hints)); hints.ai_flags = AI_CANONNAME | AI_IDN; printf ("gettaddrinfo(%s):\n", in); rc = getaddrinfo (in, NULL, &hints, &res); if (rc) printf ("gai err %d: %s\n", rc, gai_strerror (rc)); else if (res) printf ("address `%s'\ncanonical name `%s'\n", res->ai_addr ? /* FIXME: Use inet_ntop, so it works for IPv6 too. */ inet_ntoa (((struct sockaddr_in *) res-> ai_addr)->sin_addr) : "ERROR", res->ai_canonname ? res->ai_canonname : "ERROR"); else printf ("Bad magic\n"); return 0; } libidn-1.38/libc/README0000644000000000000000000000236514076271517011406 00000000000000Libidn libc/README -- Instructions for building as a GNU Libc add-on. Copyright (C) 2003-2021 Simon Josefsson See the end for copying conditions. GNU Libidn is now part of GNU Libc, so the stand-alone patch and instructions that were distributed here before has been removed. See getaddrinfo-idn.txt for the write-up of the API that is used in Libc. Simply build Libc as you would normally, but specify "libidn" as an add-on, as in --enable-add-ons=libidn to configure. Once installed, you may build and run the sample still distributed in this directory, perhaps as follows: $ gcc -o example example.c -L/usr/local/glibc/lib -Wl,-rpath,/usr/local/glibc/lib -nostdinc -I/usr/local/glibc/include -I/usr/include -I/usr/lib/gcc-lib/i386-linux/2.95.4/include $ CHARSET=iso-8859-1 ./example locale charset `iso-8859-1' gettaddrinfo(räksmörgås.josefsson.org): address `217.13.230.178' canonical name `178.230.13.217.in-addr.dgcsystems.net' $ Internally the domain name xn--rksmrgs-5wao1o.josefsson.org is looked up in DNS. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/COPYINGv20000644000000000000000000004325414053001337011104 00000000000000 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser General Public License instead of this License. libidn-1.38/NEWS0000644000000000000000000016355214076273420010315 00000000000000Libidn NEWS -- History of user-visible changes. -*- outline -*- * Noteworthy changes in release 1.38 (2021-07-22) [stable] ** doc: Simplify building of gdoc-generated man/texi outputs. Now the targets are rebuilt on version number changes properly. ** doc: Improve GTK-DOC manual. ** build: Fix build errors related to doc/idn--help.texi. ** build: Fix --disable-tld builds. Now tld_strerror() is removed when --disable-tld is used. * Noteworthy changes in release 1.37 (2021-05-15) [stable] ** doc: Minor fixes and codespell typos. ** Updated translations. ** Update gnulib files and build fixes. We now use gnulib's ./bootstrap and gnulib's readme-release infrastructure for making releases. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.36 (2020-07-22) [stable] ** Fix unlikely memory leak in idna_to_unicode_4z4z(). Patch from Miroslav Lichvar . ** Check codepoint validity in punycode_decode() and punycode_decode(). Reported-by: Mike Schiffman (Farsight Security, Inc.). ** tld: Add U+00EF to .nl TLD table. Reported by Trond Haugen . ** Indent code. ** Translation fixes. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.35 (2018-05-11) [stable] ** Reflect ABI/API breakage in version 1.34 (Stringprep_profile has a new struct member) Reported-by: Miroslav Lichvar ** Added new gnulib files to repository ** Fix build issues introduced in 1.34 * Noteworthy changes in release 1.34 (2018-03-31) [beta] ** libidn: Fix integer overflow in combine_hangul() Found by fuzzing. ** libidn: Fix integer overflow in punycode decoder Found by fuzzing, fix for the fix reported by Christian Weisgerber ** libidn: Fix performance issue in idna_to_unicode_internal() Found by fuzzing. ** libidn: Fix performance issue in stringprep functions. Found by fuzzing. ** libidn: Fix NULL pointer dereference in g_utf8_normalize() Found by fuzzing. ** libidn: Fix NULL pointer dereference in stringprep_ucs4_nfkc_normalize() Found by fuzzing. ** libidn: Increase performance of stringprep functions Found by fuzzing. ** testing: Add OSS-fuzz integration and regression testing ** build: Update gnulib files ** build: Modernize GTK-Doc build ** build: Fix parallel builds ** build: Add configure flag --disable-doc ** build: Add configure flag --enable-ubsan (enable UB Sanitizer) ** build: Add configure flag --enable-asan (enable Address Sanitizer) ** build: Fix compiler warnings ** build: Fix build for gcc-7 ** i18n: Added Swedish translation. Thanks to Josef Andersson. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.33 (2016-07-20) [beta] ** libidn: Fix out-of-bounds stack read in idna_to_ascii_4i. See tests/tst_toascii64oob.c for regression check (and the comment in it how to use it). Reported by Hanno Böck . ** idn: Solve out-of-bounds-read when reading one zero byte as input. Also replaced fgets with getline. Reported by Hanno Böck . ** libidn: stringprep_utf8_nfkc_normalize reject invalid UTF-8. It was always documented to only accept UTF-8 data, but now it doesn't crash when presented with such data. Reported by Hanno Böck. ** Dropped valgrind suppressions file, should no longer be needed. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.32 (2015-08-01) [beta] ** libidn: Fix crash in idna_to_unicode_8z8z and idna_to_unicode_8zlz. This problem was introduced in 1.31. Reported by Adam Sampson. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.31 (2015-07-08) [beta] ** libidn: stringprep_utf8_to_ucs4 now rejects invalid UTF-8. CVE-2015-2059 This function has always been documented to not validate that the input UTF-8 string is actually valid UTF-8. Like the rest of the API, when you call a function that works on UTF-8 data, you have to pass it valid UTF-8 data. Application writers appear to have difficulties using interfaces designed like that, as bugs triggered by invalid UTF-8 has been identified in a number of projects (jabberd2, gnutls, wget, and curl). While we could introduce a new API to perform UTF-8 validation, so that applications can easily implement the proper checks, this appear error prone because there is a risk that the check will be forgotten. Instead, we took the more radical approach of modifying the documentation and the implementation of the API. The intention is that all functions that accepts UTF-8 data should validate it before use. This will solve the problem for applications, without needing to change them. This change has the unfortunate side-effect that Surrogate codes (see section 5.5 of RFC 3454) no longer trigger the STRINGPREP_CONTAINS_PROHIBITED error code but instead will trigger the newly introduced STRINGPREP_ICONV_ERROR error code, as the gnulib/libunistring-based code that we use to test UTF-8-compliance rejects Surrogate codes. We hope that this is an acceptable cost to live with in order to improve application security. We welcome feedback on this solution, and we are marking this release as beta rather than stable to signal that we may reconsider this approach if people disagree. Reported by several people including Thijs Alkemade, Gustavo Grieco, Daniel Stenberg, and Nikos Mavrogiannopoulos. ** libidn: Added STRINGPREP_ICONV_ERROR error code. ** libidn: Workaround valgrind/gcc/glibc issue. Valgrind reported a 'Invalid read of size 4' that was caused by optimized strlen implementation. Reported and patch by Alessandro Ghedini . ** build: Use LOG_COMPILER instead of TESTS_ENVIRONMENT to fix valgrind use. Errors caught by valgrind did not always trigger 'make check' failures before. ** i18n: Updated Danish translation. Thanks to Joe Hansen. ** API and ABI is backwards compatible with the previous version. See discussion above on slight change in semantics of functions. * Noteworthy changes in release 1.30 (2015-03-02) [stable] ** libidn: The punycode.{c,h} files were re-imported from RFC 3492bis. A comment explaining the origin and what was changed was added. ** Bump gettext to 0.19.3. ** Use LT_INIT instead of AC_LIBTOOL_WIN32_DLL. ** i18n: Added Hungarian translation. Updated some other languages. Thanks to Balázs Úr. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.29 (2014-08-10) [stable] ** libidn: Mark internal variable "g_utf8_skip" as static. Reported by Thomas Dineen . ** idn: Flush stdout to simplify for tools that buffer too heavily. Tiny patch from Hugh Daschbach . ** i18n: Added Brazilian Portuguese translation. Thanks to Rafael Ferreira. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.28 (2013-07-10) [stable] ** idn: Don't crash when string conversion from UTF-8 to locale fails. Reported by Jeffrey Frey . ** java: Fix build failures. ** java: TestIDNA -a and -u logic was reversed, now fixed. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.27 (2013-06-05) [stable] ** Java library can be built using Maven. Speed improvements. Thanks to several patches from Stefan Larsson. Testing indicate 70-90 times faster node/name/resource-prep. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.26 (2012-12-11) [stable] ** libidn, idna_to_ascii: Propagate error on malloc failure. Reported by Sarat Chandra Addepalli . ** libidn, tld_get_4: Fix out of bounds read access violation. ** i18n: Added Croatian translation. Updated Vietnamese translation. Thanks to Tomislav Krznar and Trần Ngá»c Quân. ** java: Permit usage by Apache projects. Thanks to Oliver Hitz and Angus Turner. ** tests: Improve tld self-tests. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.25 (2012-05-23) [stable] ** MSVC: Build fixes related to _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE. Reported by Bartosz Brachaczek . ** examples: Fix compiler warning about ignoring return value from fgets. ** tests: Ship with a valgrind suppressions file for the strlen issue. See tests/libidn.supp and bottom of HACKING for discussion. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.24 (2012-01-10) [stable] ** Libraries are re-licensed from LGPLv2+ to dual-GPLv2+|LGPLv3+. ** build: Fix parallel Windows builds. Reported by René Berber . ** libidn: Fix potential infloop in pr29 code. Reported by Jon Nelson in . ** libidn: Add 'const' keyword to 'stringprep_ucs4_nfkc_normalize' function. ** Sync glib NFKC code and improve copyright/license statements. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.23 (2011-11-25) [stable] ** stringprep.h: Now #include's sys/types.h instead of unistd.h for ssize_t. Some systems (e.g., Mingw with MSVC 9) does not have unistd.h. ** idn-free.h: Protect prototypes with 'extern "C"' marker. Reported by Bittner Ede . ** doc: Update link to experimental TLD tables. The new link is . ** Update gnulib files and translations. ** QA: Improved cyclo output. Update GTK-DOC files. Various bugfixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.22 (2011-05-04) [stable] ** libidn: Add -liconv as static library requirement in libidn.pc, for MinGW. Reported by Volker Grabsch . ** libidn: Fix memory leak in idna_to_ascii_4z when idna_to_ascii_4i fails. Reported by and tiny patch from Olga Limburg . ** libidn: Ran clang-analyze on the code. Fixed some dead assignments/initializations. ** build: Really distribute win32/libidn4win.mk. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.21 (2011-04-24) [stable] ** build/gettext: Demand gettext >= 0.18.1 in order to get newer M4 files. The old M4 files associated with 0.17 caused problems on Solaris, hopefully now fixed. Reported by Dagobert Michelsen in . ** build: Improve MinGW cross-compile makefile, see win32/libidn4win.mk. ** build: Visual Studio files fixed to define LIBIDN_BUILDING. Tiny patch from Waqas Hussain . ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.20 (2011-03-01) [stable] ** libidn: Fix bug in ToUnicode to compare 'xn--' case-insensitively. The problem is typically noticed when an upper ACE case string is converted to Unicode. Before, this would return the input rather than converting the ACE form to Unicode. Reported by Stepan Golosunov in . ** tests: Added self-test tst_idna3 to catch any regression of problem above. ** idn: Only print copyright and license blurb when used interactively. Reported by "Andrew O. Shadoura" and Roman Mamedov in and respectively. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.19 (2010-05-22) [stable] ** doc: Typo fixes. Added PDF version of API reference manual. See doc/reference/libidn.pdf. ** build: Update gnulib files. ** build: Use valgrind -q to reduce verbosity. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.18 (2010-02-15) [stable] ** libidn: Put forgotten symbols under old namespace. Reverts one unnecessary change introduced in 1.17. Suggested by Marco d'Itri . ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.17 (2010-02-05) [alpha] ** libidn: Fix symbol export problem for a few variables. Applications (that use these rarely used variables) built against versions before 1.13 did not work with libidn versions 1.13 to 1.16. Symbol versioning was introduced in version 1.13 but by accident some symbols that were visible before that release were not exported, and the consequence was that those symbols were not available in version 1.13 to 1.16. This release fixes the problem, so the symbols are visible again, making this release backwards compatible with all earlier releases. The affected symbols are the following variables: stringprep_iscsi_prohibit, stringprep_rfc3454_A_1, stringprep_rfc3454_B_1, stringprep_rfc3454_B_2, stringprep_rfc3454_B_3, stringprep_rfc3454_C_1_1, stringprep_rfc3454_C_1_2, stringprep_rfc3454_C_2_1, stringprep_rfc3454_C_2_2, stringprep_rfc3454_C_3, stringprep_rfc3454_C_4, stringprep_rfc3454_C_5, stringprep_rfc3454_C_6, stringprep_rfc3454_C_7, stringprep_rfc3454_C_8, stringprep_rfc3454_C_9, stringprep_rfc3454_D_1, stringprep_rfc3454_D_2, stringprep_saslprep_space_map. Thanks to Marco d'Itri for reporting that led to discovering this problem. ** Really fix the link error of self-tests on MinGW. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.16 (2010-01-12) [alpha] ** java: Add a Maven pom.xml project file. Contributed by Guus der Kinderen . ** Fix a link error on MinGW. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.15 (2009-06-08) [alpha] ** libidn: Use c_strcasecmp instead of strcasecmp. For portability to NetWare CLIB. The specification requires a ASCII comparison, so it is also more appropriate to use c_strcasecmp. Reported by Guenter Knauf . ** java: Fix some Java compiler warnings. ** doc: Improved sections for the info manual. We now follow the advice given by the texinfo manual on which directory categories to use. In particular, libidn moved from the 'GNU Libraries' section to the 'Software libraries' and 'Invoking idn' moved from 'GNU utilities' to 'Localization'. ** New configure parameters to set packaging specific information. The parameters are --with-packager, --with-packager-version, and --with-packager-bug-reports. See for more details. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.14 (2009-04-03) [alpha] ** libidn: Install a libidn-*.def file when building under MinGW. The file is useful if you develop programs in Visual Studio that links to libidn. ** tests/tst_toutf8: Don't crash if stringprep_utf8_to_locale returns NULL. Reported by Dagobert Michelsen in . ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.13 (2009-03-06) [alpha] ** libidn: Use a LD version script on platforms where it is supported. Currently only GNU LD and the Solaris linker supports it. This helps Debian package tools to produce better dependencies. Before we used Libtool -export-symbols-regex that created an anonymous version tag. Libidn uses -export-symbols-regex if the system does not support LD version scripts, but that only affect symbol visibility. ** libidn: Compiled with -fvisibility=hidden by default if supported. Currently only GCC supports it for ELF targets. This hides internal symbols and has other advantages, see . ** libidn: Compiled with warning flags only when GCC is used. This avoids the problem that some flags confuse non-GCC compilers, for example -fdiagnostics-show-option. Reported by jens.rehsack@bayerbbs.com. ** doc: The idn_free function is now documented. Suggested by "Sisyphus" . ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.12 (2009-01-23) [alpha] ** idn: New parameter --no-tld to deprecate the old parameter --tld. The new parameter --no-tld disable TLD checking of the input string. The --tld parameter was broken; it behaved opposite to its documented behaviour. To avoid confusion over what --tld means, we decided to deprecate it. Now --tld is not printed in the idn --help output, but will continue to work as before. ** doc: Modernize doxygen configuration. ** doc: Change license on the manual to GFDLv1.3+. ** doc: Improve JavaDoc output. ** Update gnulib files and translations. ** Build with more warnings. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.11 (2008-10-28) [alpha] ** libidn: New WARN_CFLAGS configure variable. It is used internally to add -Werror and other warnings flags, to catch coding mistakes before releases. ** Win32: Perl is no longer required to build Libidn in Visual Studio. ** Win32: Functions in idna.h are also exported. Reported by Adam Strzelecki . ** doc: Included cyclomatic code complexity charts of the library code. See doc/cyclo/. ** tests: Add more self-tests to get more self-test code coverage. ** tests: New 'make coverage' command to generate code coverage reports. The output is created in doc/coverage/. Requires the LCOV tools. See http://www.gnu.org/software/libidn/coverage/ for a pre-generated copy. ** Clarify copyright and license for gdoc, man pages, and C# port. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.10 (2008-08-27) [alpha] ** idn: accept -n as short form for --nfkc. Before '-k' was used as the short form, but all documentation has said '-n'. We now accept both short forms, and -n remains the documented short form. Reported by John McGowan in . ** Fix compiler warnings. ** Update gnulib files. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.9 (2008-07-01) [alpha] ** idn: fix error message when NFKC fails, and some other translation fixes. Reported by Benno Schulenberg . ** C# Libidn.dll: Work around bug that cause a failure during C# compilation. See . ** Remove more non-free text from doc/specifications/rfc3454.txt. The remaining data tables are not copyrightable. ** Update gnulib files, and include gnulib self-tests. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.8 (2008-04-23) [alpha] ** Translations files not stored directly in git to avoid merge conflicts. This allows us to avoid use of --no-location which makes the translation teams happier. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.7 (2008-04-10) [alpha] ** idn: new parameter --nfkc to process string with Unicode v3.2 NFKC. ** Minor build fix for native Win32 builds. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.6 (2008-03-19) [alpha] ** Add native Windows Visual Studio project files. Contributed by Adam Strzelecki . ** Remove non-free portions of RFC 3454 in doc/specifications/rfc3454.txt. ** Update gnulib files. ** Doc fixes in IDNA to clarify that some functions operate on ** just one domain labels and some operate on domain name (which ** can contain several domain labels). ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.5 (2008-02-19) [alpha] ** Don't include wchar.h in idn-int.h. Fixes problems on uClibc systems which lack a wchar.h. Reported by Mike Frysinger , see . ** Added appendix 'On Label Separators' to the manual. Thanks to Erik van der Poel for bringing the issue to our attention and for discussing the matter. See . ** Improved rendering of non-ASCII in the info manual. Done by adding a @documentencoding UTF-8. This affect how the examples are encoded, the files examples/*.c are now encoded using UTF-8 instead of a mix of ISO-8859-1 and ISO-8859-15. ** Fix non-portable use of brace expansion in makefiles. ** Update translations. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.4 (2008-01-09) [alpha] ** Fixes to make the C# port compile under Mono. ** Update gnulib files. ** Improve idn --version and --help output to conform to GNU standards. This also enables translations of --help output. ** Update translations. Added Finish translation, thanks to Jorma Karvonen. Updated Dutch and Vietnamese. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.3 (2007-12-11) [alpha] ** Some hints on Windows installation in the manual. ** Update translations. Added Czech translation, thanks to Petr Pisar. ** Use gettext 0.17. ** Update gnulib files. Top-level gnulib files are now distributed under GPLv3+. (The gnulib files used by the core library are still under LGPLv2.1+.) ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.2 (2007-10-01) [alpha] ** Development git tree moved to savannah. See . ** Update gnulib files. Including mono detection fixes. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.1 (2007-09-01) [alpha] ** Fix compilation error in idn-int.h. The error would typically be 'error: no include path in which to search for stdint.h'. Reported by Remko van der Vossen , see and . ** Declare external variables with __declspec(import) for Windows. Apparently this is required for variables in DLL's on Windows. This is enabled if __DECLSPEC_SUPPORTED is defined (MinGW), or if _MSC_VER and_DLL is defined (MSVC). ** Update gnulib files. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 1.0 (2007-07-31) [alpha] ** Command-line tools, examples, etc are now licensed under GPL version 3. The library is still licensed under LGPL v2.1 for compatibility reasons (it is included in glibc). ** Updated documentation as per license change. ** Update gnulib files. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.14 (2007-05-31) [alpha] ** Libidn is now developed using Git instead of CVS. A public git mirror is available from . If you have pulled from this repository before this release, you need to erase your clone because it has been re-generated from scratch. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.13 (2007-05-31) [alpha] ** Documentation fixes. Clarify that the C# and Java libraries are licensed under the LGPL. Earlier, some places incorrectly said that these were licensed under the GPL. If you encounter other places that still suggest that GPL applies to the C# and Java library, please let me know. ** Updated Polish and Vietnamese translations. Thanks to Jakub Bogusz and Clytie Siddall . ** Install images for the manual in $infodir. This fixes the broken image in the info manual. Image files will be called libidn-*.png to avoid namespace collisions with images from other info manuals. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.12 (2007-04-25) [alpha] ** Use AM_JAVACFLAGS instead of JAVACFLAGS in java/misc/Makefile.am. Reported by Petteri Räty . ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.11 (2007-03-13) [alpha] ** Update of the C# Libidn port, by Alexander Gnauck. The code has been refactored and the namespace has been modified to comply with .NET naming conventions. An IDNA bug was fixed. ** Update gnulib files. We now use the "striconv" module instead of the "iconvme", which causes a slight increase of code size (from 303kb to 319kb with debugging symbols on i386). The reason is the use of a new locale independent strcasecmp, which may cause faster operation in some locales where, e.g., "ASCII" and "ascii" are not treated as the same. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.10 (2007-01-04) [alpha] ** Corrected year in copyright notices. ** Update gnulib files. Including the code to convert strings between different encodings (noted in case this introduces problems). ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.9 (2006-11-30) [alpha] ** The Java code is fixed to properly translate any non-ASCII dot into '.'. Reported and fixed by "Stephane Mikaty" . ** Update gnulib files. ** Bump tool versions to autoconf 2.61, automake 1.10, and gettext 0.16. ** Old versions of iconv.m4, codeset.m4 and lib-link.m4 removed from m4/. Modern versions are part of gnulib. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.8 (2006-10-18) [alpha] ** The gnulib directory is separated into two directories. One gnulib directory (lib/gl/) for the LGPL library in lib/, and one gnulib directory (gl/) for the GPL tools in src/. This allows the GPL'd tools to use more gnulib modules than before, since earlier all gnulib files had to be LGPL. ** Update gnulib files. ** Some minor cleanups, like assuming locale.h and setlocale(). ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.7 (2006-09-13) [alpha] ** Fix build failure of idn-int.h on C99 platforms. Reported by Paul Howarth . ** The manual includes the GPL license, for the command-line tools. ** The function, variable and concept index is moved to the end of the manual. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.6 (2006-08-23) [alpha] ** Instead of AX_CREATE_STDINT_H, use the stdint gnulib module, for idn-int.h. This solves building on some HPPA systems. Note that the generated idn-int.h is specific to the build environment that libidn was built under, and is not generally usable by any other compiler (if any) on the host. This was true before too. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.5 (2006-06-07) [alpha] ** Link the library with external libintl, for gettext. This fixes building on FreeBSD, reported by Kirill Ponomarew . ** Update doxygen config file to version 1.4.7. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.4 (2006-06-07) [alpha] ** Fix translation of error messages. Thanks to Joe Orton . ** Fix warnings on 64-bit platforms. Thanks to Joe Orton . ** The tests are run under valgrind, if it is installed. Use --disable-valgrind-tests to unconditionally disable this. It is disabled by default for cross compiles. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.3 (2006-03-08) [alpha] ** Fixes for the build environment. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.2 (2006-02-07) [alpha] ** Fix objdir != srcdir builds for the Java documentation. Thanks to Bernard Leak . ** Update of gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.1 (2006-01-20) [alpha] ** Make it possible to cross-compile to mingw32. You can build Libidn for Windows by invoking `./configure --host=i586-mingw32msvc' (or similar). ** Minor changes in how the C# code is built. ** Update of gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.6.0 (2005-12-03) [alpha] ** A C# port of Libidn has been contributed by Alexander Gnauck. The port resides in the csharp/ directory. Configure will build it if a working C# compiler can be found. Mono's "mcs" compiler is known to work (available in Debian in the "mono-mcs" package), but PNET's "cscc" compiler should also work (available in Debian in the "pnet" package). The port is licensed under the GPL. Some Microsoft Visual Studio project files are also present in the csharp/ directory, which may be useful when building the port under Windows. The C# API is currently not documented, improvements are gratefully accepted. ** Support shared libraries on Cygwin and Mingw32, thanks to Yaakov S. ** Fix memory leak. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.20 (2005-10-23) [alpha] ** The header file pr29.h is now installed by 'make install'. ** Translation updates. ** Update of gnulib files. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.19 (2005-09-19) [alpha] ** The test for setlocale and nl_langinfo has now been separated. The autoconf script now test for locale.h, setlocale and nl_langinfo(CODESET) independently. ** Gnulib updates, fixes for getopt. ** Java manuals in doc/java/ are now generated by Gjdoc from GNU Classpath. ** Kaffe is used to link the pre-built libidn-*.jar file. ** Translation updates. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.18 (2005-07-16) [alpha] ** The macro AX_CREATE_STDINT_H that is used to create idn-int.h ** has been updated. ** Fix use of 'head -1' in configure script (should be 'head -n -1'), ** thanks to Carsten Lohrke. ** Announce the help-libidn mailing list in documentation and README. ** Translation updates. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.17 (2005-05-26) [alpha] ** The gnulib portability files were updated. ** The license template in files were updated with the new address. ** Translation updated. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.16 (2005-05-06) [alpha] ** Mark static PR29 data tables as 'const', thanks to Joe Orton. ** Kinyarwanda translations added, thanks to Steve Murphy. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.15 (2005-03-19) [alpha] ** Improvements to code to convert data between character sets. The license template was changed to the LGPL, from the GPL template that was mistakenly used in the previous two releases. Document here that cleaning up this code has solved memory allocation and arithmetic overflow problems. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.14 (2005-03-19) [alpha] ** Building for srcdir != objdir from CVS now work, thanks to Linus Nordberg. ** Simplified Chinese translations added, thanks to Meng Jie. ** Vietnamese translation added, thanks to Clytie Siddall. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.13 (2005-01-29) [alpha] ** The code to convert data between character encodings have been cleaned up. The stringprep_convert function has been added to gnulib, under the name iconv_string, and is now used by libidn. This should not have any user-visible consequences, though. ** It is now possible to bootstrap with unmodified Automake installations. ** Italian translation added, thanks to Marco Colombo. ** Swedish translation updated. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.12 (2004-12-04) [alpha] ** Java code now support the XMPP NodePrep and ResourcePrep profiles. ** Bug fixes and improvements to Java code. The allowUnassigned flag is now respected properly. The prohibited code points check now works. Arguments are now checked. Convenience method with allowUnassigned set to false was added. ** Update getopt from gnulib. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.11 (2004-11-21) [alpha] ** Fix formatting of man pages, based on warnings from Doclifter. ** Update of gnulib files to fix potential getopt problem on ELF systems. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.10 (2004-11-08) [alpha] ** Libtool's -export-symbols-regex is now used to only export official APIs. Before, applications might accidentally access internal functions. Note that this is not supported on all platforms, so you must still make sure you are not using undocumented symbols in Libidn. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.9 (2004-11-07) [alpha] ** Align GTK-DOC build infrastructure with GTK-DOC official recommendations. This mean that you can now browse the Libidn API manual using Devhelp. ** Update of gnulib files to fix potential problem in getopt on BSD. ** Documentation improvements. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.8 (2004-10-12) [alpha] ** BidiMirroring-3.2.0.txt is now included, not only the generated source code. This allow builds to succeed after 'make realclean'. ** Generated files now have consistent 'DO NOT EDIT!' comments. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.7 (2004-10-12) [alpha] ** Shared library version incremented, because new APIs were added. This was forgotten in the last release. ** French translation updated. ** Minor bug fixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.6 (2004-10-02) [alpha] ** Added functions to convert return codes to human readable text. ** Now using GNULib in command line front end (src/) for portability code. See for more information on GNULib. This should make the code easier to read and maintain. ** API and ABI is backwards compatible with the previous version. idna_strerror: ADD. pr29_strerror: ADD. punycode_strerror: ADD. stringprep_strerror: ADD. tld_strerror: ADD. TLD_NO_TLD: ADD. Replaces TLD_NOTLD. TLD_NOTLD: DEPRECATED. Use TLD_NO_TLD instead. * Noteworthy changes in release 0.5.5 (2004-09-13) [alpha] ** Hide accidentally exported variable g_utf8_skip, by marking it as static. ** Various fixes. ** API and ABI is backwards compatible with the previous version. g_utf8_skip: REMOVED. (But never meant to be used.) * Noteworthy changes in release 0.5.4 (2004-08-08) [alpha] ** Translation updates. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.3 (2004-08-05) [alpha] ** Fix crash in `idn --tld' command line tool. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.2 (2004-07-14) [alpha] ** Java "make install" rules are now DESTDIR compatible. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.1 (2004-07-09) [alpha] ** Cross compile builds should work. It should work for any sane cross compile target, but the only tested platform is uClibc/uClinux on Motorola Coldfire. ** The example programs now correctly invoke `setlocale (LC_ALL, "")'. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.5.0 (2004-06-26) [alpha] ** Functions to detect "normalization problem sequences" as per PR-29 added. See the new chapter "PR29 Functions" in the manual (doc/libidn.{ps,pdf,html}) for more information and the background story. An external link that discuss the problem is . ** More translations. Added Esperanto (by Edmund GRIMLEY EVANS). ** API and ABI is backwards compatible with the previous version. pr29.h: ADD. Prototypes for PR29 types and functions. pr29_4, pr29_4z, pr29_8z: ADD. New API entry points for PR29 functions. Pr29_rc: ADD. New error code enum type for PR29 functions. * Noteworthy changes in release 0.4.9 (2004-06-11) [alpha] ** The Java library (java/libidn-*.jar) is included in the distribution. ** JavaDoc manuals (doc/javadoc/) are included. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.8 (2004-06-01) [alpha] ** The Java source code is actually included in the distribution. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.7 (2004-05-31) [alpha] ** The Java port should now be functional, contributed by Oliver Hitz. See the new section "Java API" in the manual for more information. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.6 (2004-05-24) [alpha] ** The header file idn-free.h is actually installed by 'make install'. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.5 (2004-05-21) [alpha] ** In IDNA ToUnicode, a `free' on a stale pointer fixed by Ulrich Drepper. ** Several memory leaks fixed by Ulrich Drepper. ** Added more SASLPrep and NFKC test vectors. ** Automake 1.8.4 is used. ** API and ABI is backwards compatible with the previous version. idn_free: ADD. Wrapper around system `free'. idn-free.h: ADD. Prototype for `idn_free'. See idn-free.h for discussion. The interface is currently not documented. Comments and feedback is appreciated. * Noteworthy changes in release 0.4.4 (2004-04-29) [alpha] ** Fixed two bugs in iSCSI definition, syncing with newly published RFC 3722. The first bug was an omission of prohibiting the characters in C.1.1, C.1.2 and C.7 (space characters and characters that are inappropriate for canonical representation). The second was a bug in the definition of the table, causing the entire table to be skipped, of the special prohibited output character table defined in RFC 3722 (see section 6, the characters in the table are various ASCII characters and U+3002). ** A few test vectors for iSCSI were added. ** The self tests are linked with libtool -no-install to avoid wrapper script. ** Separated self test utilities into a separate library, shared by all tests. ** More translations. Added Romanian (by Laurentiu Buzdugan). ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.3 (2004-04-22) [alpha] ** Fixed a bug in table processing code to prohibit control characters. The problem was that the code used a code point of 0 to indicate end of table, but if (as for table C.2.1) a range starts with 0, this logic would fail. The end-of-table test is now that both the start and end code points of the range is 0. Table C.2.1 is responsible for prohibiting non-ASCII control characters, i.e. ASCII 0-31 and 127. Before, libidn silently accepted such strings without complaining. ** A few test vectors for SASLprep were added. ** The pkg-config script no longer include a -R parameter. ** More translations. Added Dutch (by Elros Cyriatan), and German (by Roland Illig). ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.2 (2004-03-20) [alpha] ** A Punycode implementation in Java was added, by Oliver Hitz. Eventually hopefully a StringPrep, Nameprep and IDNA implementation will be added as well. Currently you need to specify --enable-java to enable the Java interface. The Java sources (below java/) are compiled into byte-code (not native code) into a JAR library. ** More translations. Added Danish (by Morten Bo Johansen), French (by Michel Robitaille), Polish (by Jakub Bogusz), and Serbian (by Aleksandar Jelenak). ** Norwegian TLD table added, by Thomas Jacob. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.4.1 (2004-03-08) [alpha] ** The user messages from the command line utility are now translated. Currently English and Swedish is supported. ** Logic of stringprep_locale_charset modified. Future versions will use, in order, $CHARSET iff defined, nl_langinfo (CODESET) iff working, or fall back to returning "ASCII". Earlier it attempted to guess the system locale, in contrast with the current application's locale, via some setlocale save/set/reset magic. This change may require you to invoke setlocale() in your application, which is (should be) required for non-ASCII to work anyway. Based on discussion with Ulrich Drepper. ** The command-line utility now invoke setlocale (LC_ALL, "") at startup. ** Fixed SASLprep tables to prohibit non-ASCII space in output. Non-ASCII space has always been mapped to ASCII space, so it is not clear this really have any effect, but the specification require it. ** Building Libidn as part of GLIBC has been updated. Refer to libc/README for more information. Incidentally, GLIBC in CVS now include a copy of Libidn. ** API and ABI is backwards compatible with the previous version. IDNA_DLOPEN_ERROR: ADD. Only used internally by Libidn in libc. * Noteworthy changes in release 0.4.0 (2004-02-28) [alpha] ** Support for TLD restrictions on IDN strings, contributed by Thomas Jacob. Many TLDs restrict the set of characters that can be used, from the full Unicode 3.2 range that is normally available. This contribution make it possible for you to test strings for TLD conformance locally. The code can be disabled by --disable-tld. If enabled (the default), the new API "tld.h" is installed which can be used to check a string for conformance to TLD specific rules. This add a new self test, and a new chapter in the manual. People responsible for maintaining TLD tables are hereby encouraged to contribute them (under reasonable licensing terms) for inclusion in future versions of Libidn. Be warned that the API for TLD checking may change throughout the 0.4.x series as we get feedback on it. ** Kerberos 5 stringprep profile macro is no longer documented. The macro itself will probably be removed in the future, if the specification is dropped from the Kerberos WG agenda. ** API and ABI is backwards compatible with the previous version. stringprep_kerberos5: DEPRECATED. Tld_table_element: Tld_table: Tld_rc: ADD. New data types. tld_get_4: tld_get_4z: tld_get_z: ADD. New functions to extract TLD from string. tld_get_table: tld_default_table: ADD. New functions to get TLD table from TLD name. tld_check_4t: tld_check_4tz: ADD. New function to provide core TLD operations. tld_check_4: tld_check_4z: tld_check_8z: tld_check_lz: ADD. New functions that combine all TLD operations in one call. * Noteworthy changes in release 0.3.7 (2004-01-22) [alpha] ** The command line parameter '--' idiom is documented. ** The iSCSI stringprep profile now recognized as "iSCSI". The earlier name "ISCSIprep" is still recognized, for backwards compatibility. ** DocBook manuals no longer included (the tools are too unstable). ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.3.6 (2004-01-06) [alpha] ** The manual now contain a troubleshooting section for the command line tool. ** The PHP interface pass the string directly on the command line. ** The macro that create 'idn-int.h' has been updated to latest version. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.3.5 (2003-12-15) [alpha] ** The program 'idn' accepts input strings directly on the command line. ** The program 'idn' defaults to --idna-to-ascii if no parameter is given. ** The program 'idn' now print user instructions before waiting for input. ** DocBook HTML output not included any longer. The reason is that the filenames generated by docbook2html appear to be rather random, so it is difficult to maintain the Makefile.am rules for them. ** Autoconf 2.59, automake 1.8 and libtool from CVS is used. ** API and ABI is backwards compatible with the previous version. IDNA_CONTAINS_NON_LDH: ADD. Same integer value as IDNA_CONTAINS_LDH. IDNA_CONTAINS_LDH: DEPRECATED. LDH (letter-digits-hyphens) characters are not an error, but non-LDH characters are, when IDNA_USE_STD3_ASCII_RULES is used. The logic of the mnemonic name of this error constant was reversed. * Noteworthy changes in release 0.3.4 (2003-11-09) [alpha] ** DocBook manuals in XML, PDF, PostScript, ASCII and HTML formats included. * Noteworthy changes in release 0.3.3 (2003-10-18) [alpha] ** Fixed list of Stringprep profiles in 'idn --help' and 'idn.php'. ** Fixed debug information in 'idn'. ** Internal improvements. Leads to reduced heap memory usage. Simplified inter-dependency among files in lib/* to make it easier to copy them into your project. ** Debugging stringprep profile 'generic' removed. ** Punycode implementation updated to rfc3492bis-00. ** API and ABI is backwards compatible with the previous version. stringprep_4i: NEW. stringprep_4zi: NEW. stringprep: CHANGED. 'profile' is marked as 'const'. stringprep_profile: CHANGED. 'profile' is marked as 'const'. stringprep_generic: REMOVED. Never meant for public use. * Noteworthy changes in release 0.3.2 (2003-10-07) [alpha] ** SASL ANONYMOUS stringprep profile "trace" added. It is equivalent to the already supported "plain" SASL ANONYMOUS stringprep profile, except for the name. ** API and ABI is backwards compatible with the previous version. The 'in' parameter to stringprep_profile was changed from 'char*' to 'const char*'. * Noteworthy changes in release 0.3.1 (2003-10-02) [alpha] ** Fixed handling of implicit and explicit zero-length root labels in ToASCII. ** Fixed support for Hangul Syllables during Unicode NFKC normalization. ** Fixed Unicode NFKC normalization of (some) BMP code points. This was done by syncing the NFKC code with latest GLIB, and may have fixed other bugs in the earlier versions of the updated functions. ** Added more IDNA test vectors. ** Emacs Lisp IDNA implementation now set the UseSTD3ASCIIRules flag. This is the appropriate setting for mail-related uses of IDNA. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.3.0 (2003-09-23) [alpha] ** Ported to Mac OS X. ** Gnulib code removed, we now assume a C89 compatible environment. ** Building libidn as a libc add-on now works again. ** Man pages for all public API functions are included. ** Fixed bug in SASLprep profile. ** API and ABI is NOT backwards compatible with the previous version. All previously labeled (since 0.1.x) obsolete functions have been dropped. The use of 'enum' types instead of 'int' added in 0.2.3 reverted, it confused documentation generators and wasn't all that common practice. * Noteworthy changes in release 0.2.3 (2003-08-26) [alpha] ** Example 4 was the same as example 3, now changed to demo ToUnicode. ** Documentation improvements. ** Prototype cleanups. The proper enum types (Stringprep_rc, Idna_rc, etc) are now used in several places where plain int where used before. String lengths are handled by (s)size_t instead of int. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.2.2 (2003-08-13) [alpha] ** Fixed problem with strings longer than 4GB in punycode functions. The punycode code cannot handle strings longer than 4GB. The code now return PUNYCODE_BAD_INPUT on too long input, instead of failing in an unknown way. ** The "idn --idna-to-unicode" command now output locale encoded strings. ** Build fixes, bug fixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.2.1 (2003-07-04) [alpha] ** Don't reject zero-length trailing labels as in, e.g., "www.example.org.". The IDNA RFC is not clear on this topic, zero-length labels in general are forbidden by the ToASCII algorithm in section 4.1 step 8, but the terminology section define, inside a parenthesis, that the zero-length root label is in fact not considered a label at all in IDNA. ** Bug fixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.2.0 (2003-06-19) [alpha] ** Unicode code point data is now uint32_t, defined in "idn-int.h". A header file "idn-int.h" is generated and installed to make sure the "uint32_t" data type is available on all platforms. The reason for this change is that on 64-bit platforms, the application was required to convert 32 bit integers (which is how Unicode code points are typically represented) into 64 bit integers before calling libidn functions. ** New idna_*() functions have improved flags handling. The allowunassigned and usestd3asciirules parameters were collapsed into a flags parameter, that can take on the IDNA_ALLOW_UNASSIGNED and IDNA_USE_STD3_ASCII_RULES values. This allows for easier extensions to support, e.g., Unicode 4.0 or RFC 952 ASCII rules checking. Note that the old entry points are unmodified (in this regard), and new entry points with this modification were added. ** The manual was moved into a separate directory doc/. ** Bugfixes. ** API and ABI is not backwards compatible. In punycode.h and stringprep.h the "unsigned long" data type was changed into "uint32_t", which cause a API and ABI mismatch. For idna.h, the old entry points that used "unsigned long" still exist, and new entry points that uses "uint32_t" was added. To update your application, you probably only need to change "unsigned long" to "uint32_t". As a result of these changes, the shared object version has been increased. * Noteworthy changes in release 0.1.15 (2003-06-07) [alpha] ** Bugfixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.1.14 (2003-05-10) [alpha] ** Experimental documentation generation in contrib/doxygen/. Simply invoke "doxygen" in that directory and it should build the documentation. ** Lisp API bug fixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.1.13 (2003-03-13) [alpha] ** Unfinished Java *.class files implementing the libidn API. See the contrib/java/ directory. It is implemented using the Java Native Interface, and light initial testing indicate interoperability between GCJ, IBM's JDK and Sun's JDK. ** Building is now silent when gengetopt is not present. ** Bug fixes. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.1.12 (2003-03-06) [alpha] ** Building libidn doesn't require gengetopt. Warnings are still printed though. Gengetopt will be replaced by argp eventually. ** Command line tool "idn" supports stringprep too. ** New stringprep API entry point: stringprep_profile(). It takes a name of the stringprep profile as an argument instead of the stringprep table structure. ** stringprep_*.h are deprecated and will be removed in the future. All symbols have been moved to stringprep.h. The reasons are that (1) the files typically only defined one CPP macro and exported one symbol definition, which is wasteful as it generates too much work in the manual, and (2) using one header file for all profiles allows easier access to all stringprep profiles during runtime. Note that the files are still installed, but they only #include stringprep.h now, for backwards compatibility. ** GNU Libc add-on build instructions updated to GNU Libc 2.3.2. ** SASLprep stringprep profile added. ** An online interface to libidn written in PHP added to contrib/web/. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.1.11 (2003-02-26) [alpha] ** Command line application "idn" is included. A simple wrapper around the library that allows you to invoke punycode encoding/decoding and IDNA ToASCII/ToUnicode on the command line. ** Emacs Lisp interface for punycode and IDNA included. See punycode.el and idna.el. ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.1.10 (2003-02-21) [alpha] ** idna_*_to_ace() and idna_*ace_to_*() are deprecated in favor of ** idna_to_ascii_from_*() and idna_to_unicode_*_from_*() respectively. The reason was that the old interfaces did not accept the AllowUnassigned and UseSTD3ASCIIRules flags. Note that the old functions are not removed, but will be in the future. ** IPS iSCSI stringprep profile added. ** A new contrib/ directory added. Currently it contains a Python interface to Libidn, contributed by Stephane Bortzmeyer. ** idna.h and punycode.h are now installed by "make install". ** API and ABI is backwards compatible with the previous version. * Noteworthy changes in release 0.1.9 (2003-02-20) [alpha] ** SASL ANONYMOUS "plain" stringprep profile added. ** XMPP nodeprep profile fixed. ** API and ABI is backwards compatible with the previous version. For future releases, the NEWS entry will specifically mention whether the C header API or library ABI backwards compatibility is affected. * Noteworthy changes in release 0.1.8 (2003-02-14) [alpha] ** Portability fixes. This includes not building the API Reference Manual with GTK-DOC by default, if you want it use configure parameter --enable-gtk-doc after making sure your gtkdoc-mkdb accept the --tmpl-dir parameter. ** The type for string length variables is now (s)size_t. Unfortunately this means binary shared library binary backwards compatible is lost. ** New nameprep test vectors. * Noteworthy changes in release 0.1.7 (2003-02-12) [alpha] ** Uses official IDNA ACE prefix. * Noteworthy changes in release 0.1.6 (2003-02-11) [alpha] ** Uses tentative IDNA ACE prefix. ** Added XMPP Node/Resource Identifiers stringprep profiles. ** Fixed prohibited character checks for bidi. * Noteworthy changes in release 0.1.5 (2003-01-28) [alpha] ** The library can now be built as part of GNU Libc. This is experimental and only tested against GNU Libc version 2.3.1. See the libc/ directory, and libc/README in particular. ** Bug fixes. * Noteworthy changes in release 0.1.4 (2003-01-15) [alpha] ** Documentation fixes. ** Portability fixes. ** Bug fixes. * Noteworthy changes in release 0.1.3 (2003-01-15) [alpha] ** Added texinfo manual. * Noteworthy changes in release 0.1.2 (2003-01-08) [alpha] ** Added high-level IDNA API. ** Added example3.c and example4.c demonstrating the high-level IDNA API. * Noteworthy changes in release 0.1.1 (2003-01-08) [alpha] ** Added documentation using GTK-DOC. ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed. By accident it was never removed in 0.1.0. * Noteworthy changes in release 0.1.0 (2003-01-05) [alpha] ** Official GNU project. ** Renamed from libstringprep to libidn. ** Supports punycode and IDNA. Caveat emptor: I don't use it myself. ** Uses "unsigned long" for Unicode code points instead of "long". Long is guaranteed to be at least 32 bits by C standards so it is always sufficiently large, no need to use uint32_t and the like. ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed. * Noteworthy changes in release 0.0.8 (2002-12-13) [alpha] ** Portability fixes (now works under Cygwin on Windows 2000). ** Bug fixes. * Noteworthy changes in release 0.0.7 (2002-12-09) [alpha] ** Apply all tables to entire strings, not just first hit. ** Fix bidi infloop. * Noteworthy changes in release 0.0.5 (2002-12-07) [alpha] ** Fix prohibited characters handling. ** Fix bidi. ** Renamed type (struct) stringprep_table_element to Stringprep_table_element. ** Renamed type stringprep_profile to Stringprep_profile. ** Renamed type (struct) stringprep_table to Stringprep_table. ** Added more self-tests. * Noteworthy changes in release 0.0.4 (2002-12-06) [alpha] ** Add unassigned code point handling, including self test cases. ** Portability fixes. * Noteworthy changes in release 0.0.3 (2002-11-30) [alpha] ** Exported utility function `stringprep_utf8_to_unichar', complementary to existing `stringprep_unichar_to_utf8'. ** Renamed `stringprep_utf8_to_ucs4_fast' to `stringprep_utf8_to_ucs4' to clean up API. The old entry point is maintained for binary backwards compatibility though. ** The distribution is from now on signed using GnuPG. ** Bug fixes. * Noteworthy changes in release 0.0.2 (2002-11-07) [alpha] ** NFKC self test. ** Bug fixes. * Noteworthy changes in release 0.0.1 (2002-11-06) [alpha] ** Add utility functions stringprep_locale_charset(), stringprep_convert() and stringprep_locale_to_utf8 () that can be used to convert text from system's locale into UTF-8, which should be done before invoking stringprep(). The functions requires iconv() in the operating system. ** An example program (example.c) that illustrates how libstringprep can be used is included. ** The pkg-config --libs output should now include necessary -R options. * Noteworthy changes in release 0.0.0 (2002-11-05) [alpha] ** Initial release ---------------------------------------------------------------------- Copyright (C) 2002-2021 Simon Josefsson Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/THANKS0000644000000000000000000000571414076271517010531 00000000000000Libidn THANKS -- Acknowledgements. Copyright (C) 2002-2021 Simon Josefsson See the end for copying conditions. The punycode code was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Functions for dealing with Unicode (see lib/nfkc.c) are borrowed from GLib downloaded from www.gtk.org. Gnulib is used to simplify portability and to improve readability of the code. Suggestions, bug reports, patches, translations, test vectors or other contributions were also received from or written by the people mentioned below. If you have contributed and aren't mentioned here, please let us know! Stephane Bortzmeyer Seungho Lee Waldo Bastian Travis Shirk Hugo Salgado H. Leonard Stiles Ryan M. Golbeck Joe Hildebrand Thiago Macieira Ienup Sung Wim Lewis Robert Norris Patrik Wallstrom Marcos Sanz Gerrit P. Haase Adam M. Costello Trond Haugen Marco d'Itri Arkadiusz Miskiewicz Noah Levitt Paul Hoffman / JDNA Oden Eriksson Kai Schaetzl Graydon Hoare Jan-Hendrik Heuing Chris Moore Niels Möller Thomas Jacob Ulrich Drepper Jakub Bogusz Aleksandar Jelenak Michel Robitaille Morten Bo Johansen Oliver Hitz Jørgen Thomsen Roland Illig Elros Cyriatan Martin Waitz Laurentiu Buzdugan Joe Orton Daniel Stenberg Gisle Vanem Robert Scheck Benjamin Reed Edmund GRIMLEY EVANS Stephan Kulow Andreas Schwab Eric S. Raymond Matt Tucker Marco Colombo Linus Nordberg Simon Walter Clytie Siddall Meng Jie Carsten Lohrke Wim Lewis Yaakov S Alexander Gnauck Bernard Leak Kirill Ponomarew Paul Howarth Stephane Mikaty Petteri Räty Petr Pisar Christian Ehrlicher Remko van der Vossen Erik van der Poel Mike Frysinger Adam Strzelecki Benno Schulenberg John McGowan Sisyphus Jens Rehsack Dagobert Michelsen Guus der Kinderen Guenter Knauf Stepan Golosunov Andrej Shadura Roman Mamedov Waqas Hussain Guido Trentalancia Volker Grabsch Olga Limburg Bittner Ede René Berber Jon Nelson Bartosz Brachaczek Sarat Chandra Addepalli Jeffrey Frey Thijs Alkemade Nikos Mavrogiannopoulos Gustavo Grieco Adam Sampson Hanno Böck Trond Haugen Bruno Haible ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/FAQ0000644000000000000000000000420614076271517010143 00000000000000Libidn FAQ -- Anticipated Frequently Asked Questions. Copyright (C) 2002-2021 Simon Josefsson See the end for copying conditions. Q#1: Why doesn't Libidn use a separate library for the Unicode operations? A#1: Separate libraries (Glib, QT, libiconv) seldom mark the Unicode tables with the corresponding Unicode version they implement, nor do they provide a interface where a specific version can be requested. This violates the stringprep specification which requires that a specific version must be used. Also, some of these third party libraries depend on non-portable behavior (e.g. threads). Q#2: Why do Libidn include several stringprep profiles? They waste space! A#2: The stringprep profiles included are usually derived from the generic stringprep tables, and doesn't waste more than say a few hundred bytes (see profiles.c). The Unicode normalization tables and the generic stringprep tables are roughly equivalent in size, although the latter tables can surely be compressed much further. They occupy about 100 kilobytes on typical platforms. However, if in the future several large Stringprep profiles are added, configure options will be added to help reduce size. Q#3: I thought GNU was encouraging libraries to be licensed under the GPL? A#3: The reasoning for this was for libraries that provide unique functionality to encourage more free programs. Since there are several IDN libraries out there, using the GPL for Libidn would only encourage people not to use Libidn which would not help the spread of free software. Q#4: How do I add a new stringprep profile? A#4: Add the profile definition to profiles.c, export the symbol and optionally add a CPP macro in stringprep.h (and document it in stringprep.c). If you want to add self tests, do it through tst_stringprep.c. Mention it in NEWS. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/COPYINGv30000644000000000000000000010451314053001337011101 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. 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 them 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 prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. 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. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey 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; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. 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. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 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. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. 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 state 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 3 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, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program 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, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU 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 Lesser General Public License instead of this License. But first, please read . libidn-1.38/maint.mk0000644000000000000000000020166414076273520011255 00000000000000# -*-Makefile-*- # This Makefile fragment tries to be general-purpose enough to be # used by many projects via the gnulib maintainer-makefile module. ## Copyright (C) 2001-2021 Free Software Foundation, Inc. ## ## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 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, see . # This is reported not to work with make-3.79.1 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) ME := maint.mk # These variables ought to be defined through the configure.ac section # of the module description. But some packages import this file directly, # ignoring the module description. AWK ?= awk GREP ?= grep SED ?= sed # Helper variables. _empty = _sp = $(_empty) $(_empty) # _equal,S1,S2 # ------------ # If S1 == S2, return S1, otherwise the empty string. _equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) # member-check,VARIABLE,VALID-VALUES # ---------------------------------- # Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and # return it. Die otherwise. member-check = \ $(strip \ $(if $($(1)), \ $(if $(findstring $(_sp),$($(1))), \ $(error invalid $(1): '$($(1))', expected $(2)), \ $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)), \ $(error invalid $(1): '$($(1))', expected $(2)))), \ $(error $(1) undefined))) # Do not save the original name or timestamp in the .tar.gz file. # Use --rsyncable if available. gzip_rsyncable := \ $(shell gzip --help 2>/dev/null|$(GREP) rsyncable >/dev/null \ && printf %s --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' GIT = git VC = $(GIT) VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) # You can override this variable in cfg.mk if your gnulib submodule lives # in a different location. gnulib_dir ?= $(shell if test -d $(srcdir)/gnulib; then \ echo $(srcdir)/gnulib; \ else \ echo ${GNULIB_SRCDIR}; \ fi) # You can override this variable in cfg.mk to set your own regexp # matching files to ignore. VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ # This is to preprocess robustly the output of $(VC_LIST), so that even # when $(srcdir) is a pathological name like "....", the leading sed command # removes only the intended prefix. _dot_escaped_srcdir = $(subst .,\.,$(srcdir)) # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only # when $(srcdir) is not ".". ifeq ($(srcdir),.) _prepend_srcdir_prefix = else _prepend_srcdir_prefix = | $(SED) 's|^|$(srcdir)/|' endif # In order to be able to consistently filter "."-relative names, # (i.e., with no $(srcdir) prefix), this definition is careful to # remove any $(srcdir) prefix, and to restore what it removes. _sc_excl = \ $(or $(exclude_file_name_regexp--$@),^$$) VC_LIST_EXCEPT = \ $(VC_LIST) | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ | if test -f $(srcdir)/.x-$@; then $(GREP) -vEf $(srcdir)/.x-$@; \ else $(GREP) -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ | $(GREP) -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ $(_prepend_srcdir_prefix) ifeq ($(origin prev_version_file), undefined) prev_version_file = $(srcdir)/.prev-version endif PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) ifeq ($(VC),$(GIT)) this-vc-tag = v$(VERSION) this-vc-tag-regexp = v$(VERSION_REGEXP) else tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') tag-this-version = $(subst .,_,$(VERSION)) this-vc-tag = $(tag-package)-$(tag-this-version) this-vc-tag-regexp = $(this-vc-tag) endif my_distdir = $(PACKAGE)-$(VERSION) # Old releases are stored here. release_archive_dir ?= ../release # If RELEASE_TYPE is undefined, but RELEASE is, use its second word. # But overwrite VERSION. ifdef RELEASE VERSION := $(word 1, $(RELEASE)) RELEASE_TYPE ?= $(word 2, $(RELEASE)) endif # Validate and return $(RELEASE_TYPE), or die. RELEASE_TYPES = alpha beta stable release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES)) # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. # Use alpha.gnu.org for alpha and beta releases. # Use ftp.gnu.org for stable releases. gnu_ftp_host-alpha = alpha.gnu.org gnu_ftp_host-beta = alpha.gnu.org gnu_ftp_host-stable = ftp.gnu.org gnu_rel_host ?= $(gnu_ftp_host-$(release-type)) url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \ https://ftpmirror.gnu.org/$(PACKAGE), \ https://$(gnu_rel_host)/gnu/$(PACKAGE)) # Override this in cfg.mk if you are using a different format in your # NEWS file. today = $(shell date +%Y-%m-%d) # Select which lines of NEWS are searched for $(news-check-regexp). # This is a sed line number spec. The default says that we search # lines 1..10 of NEWS for $(news-check-regexp). # If you want to search only line 3 or only lines 20-22, use "3" or "20,22". news-check-lines-spec ?= 1,10 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' # Prevent programs like 'sort' from considering distinct strings to be equal. # Doing it here saves us from having to set LC_ALL elsewhere in this file. export LC_ALL = C ## --------------- ## ## Sanity checks. ## ## --------------- ## ifneq ($(_gl-Makefile),) _cfg_mk := $(wildcard $(srcdir)/cfg.mk) # Collect the names of rules starting with 'sc_'. syntax-check-rules := $(sort $(shell env LC_ALL=C $(SED) -n \ 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(srcdir)/$(ME) $(_cfg_mk))) .PHONY: $(syntax-check-rules) ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) local-checks-available += $(syntax-check-rules) else local-checks-available += no-vc-detected no-vc-detected: @echo "No version control files detected; skipping syntax check" endif .PHONY: $(local-checks-available) # Arrange to print the name of each syntax-checking rule just before running it. $(syntax-check-rules): %: %.m sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) .PHONY: $(sc_m_rules_) $(sc_m_rules_): @echo $(patsubst sc_%.m, %, $@) @date +%s.%N > .sc-start-$(basename $@) # Compute and print the elapsed time for each syntax-check rule. sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) .PHONY: $(sc_z_rules_) $(sc_z_rules_): %.z: % @end=$$(date +%s.%N); \ start=$$(cat .sc-start-$*); \ rm -f .sc-start-$*; \ $(AWK) -v s=$$start -v e=$$end \ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper # that computes and prints elapsed time. local-check := \ $(patsubst sc_%, sc_%.z, \ $(filter-out $(local-checks-to-skip), $(local-checks-available))) syntax-check: $(local-check) endif # _sc_search_regexp # # This macro searches for a given construct in the selected files and # then takes some action. # # Parameters (shell variables): # # prohibit | require # # Regular expression (ERE) denoting either a forbidden construct # or a required construct. Those arguments are exclusive. # # exclude # # Regular expression (ERE) denoting lines to ignore that matched # a prohibit construct. For example, this can be used to exclude # comments that mention why the nearby code uses an alternative # construct instead of the simpler prohibited construct. # # in_vc_files | in_files # # grep-E-style regexp selecting the files to check. For in_vc_files, # the regexp is used to select matching files from the list of all # version-controlled files; for in_files, it's from the names printed # by "find $(srcdir)". When neither is specified, use all files that # are under version control. # # containing | non_containing # # Select the files (non) containing strings matching this regexp. # If both arguments are specified then CONTAINING takes # precedence. # # with_grep_options # # Extra options for grep. # # ignore_case # # Ignore case. # # halt # # Message to display before to halting execution. # # Finally, you may exempt files based on an ERE matching file names. # For example, to exempt from the sc_space_tab check all files with the # .diff suffix, set this Make variable: # # exclude_file_name_regexp--sc_space_tab = \.diff$ # # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, # when filtering by name via in_files, we explicitly filter out matching # names here as well. # Initialize each, so that envvar settings cannot interfere. export require = export prohibit = export exclude = export in_vc_files = export in_files = export containing = export non_containing = export halt = export with_grep_options = # By default, _sc_search_regexp does not ignore case. export ignore_case = _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) define _sc_say_and_exit dummy=; : so we do not need a semicolon before each use; \ { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; endef define _sc_search_regexp dummy=; : so we do not need a semicolon before each use; \ \ : Check arguments; \ test -n "$$prohibit" && test -n "$$require" \ && { msg='Cannot specify both prohibit and require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -z "$$require" \ && { msg='Should specify either prohibit or require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -n "$$exclude" \ && { msg='Use of exclude requires a prohibit pattern' \ $(_sc_say_and_exit) } || :; \ test -n "$$in_vc_files" && test -n "$$in_files" \ && { msg='Cannot specify both in_vc_files and in_files' \ $(_sc_say_and_exit) } || :; \ test "x$$halt" != x \ || { msg='halt not defined' $(_sc_say_and_exit) }; \ \ : Filter by file name; \ if test -n "$$in_files"; then \ files=$$(find $(srcdir) | $(GREP) -E "$$in_files" \ | $(GREP) -Ev '$(_sc_excl)'); \ else \ files=$$($(VC_LIST_EXCEPT)); \ if test -n "$$in_vc_files"; then \ files=$$(echo "$$files" | $(GREP) -E "$$in_vc_files"); \ fi; \ fi; \ \ : Filter by content; \ test -n "$$files" \ && test -n "$$containing" \ && { files=$$(echo "$$files" | xargs $(GREP) -l "$$containing"); } \ || :; \ test -n "$$files" \ && test -n "$$non_containing" \ && { files=$$(echo "$$files" | xargs $(GREP) -vl "$$non_containing"); } \ || :; \ \ : Check for the construct; \ if test -n "$$files"; then \ if test -n "$$prohibit"; then \ echo "$$files" \ | xargs $(GREP) $$with_grep_options $(_ignore_case) -nE \ "$$prohibit" /dev/null \ | $(GREP) -vE "$${exclude:-^$$}" \ && { msg="$$halt" $(_sc_say_and_exit) } \ || :; \ else \ echo "$$files" \ | xargs \ $(GREP) $$with_grep_options $(_ignore_case) -LE "$$require" \ | $(GREP) . \ && { msg="$$halt" $(_sc_say_and_exit) } \ || :; \ fi \ else :; \ fi || :; endef sc_avoid_if_before_free: @$(VC_LIST_EXCEPT) \ | $(GREP) -v useless-if-before-free \ | xargs \ $(srcdir)/$(_build-aux)/useless-if-before-free \ $(useless_free_options) \ && { printf '$(ME): found useless "if"' \ ' before "free" above\n' 1>&2; \ exit 1; } \ || : sc_cast_of_argument_to_free: @prohibit='\/dev/null 2>&1; then \ (cd $(srcdir) && autoconf --trace AC_CONFIG_FILES:'$$1') | \ tr ' ' '\n' | \ $(SED) -ne '/Makefile/{s/\.in$$//;p;}' | \ while read m; do \ $(MAKE) -qp -f $$m .DUMMY-TARGET 2>/dev/null | \ $(AWK) -v file=$$m -e '$($@_awk_)' || exit 1; \ done; \ fi # Using EXIT_SUCCESS as the first argument to error is misleading, # since when that parameter is 0, error does not exit. Use '0' instead. sc_error_exit_success: @prohibit='error *\(EXIT_SUCCESS,' \ in_vc_files='\.[chly]$$' \ halt='found error (EXIT_SUCCESS' \ $(_sc_search_regexp) # "FATAL:" should be fully upper-cased in error messages # "WARNING:" should be fully upper-cased, or fully lower-cased sc_error_message_warn_fatal: @$(VC_LIST_EXCEPT) \ | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ | $(GREP) -E '"Warning|"Fatal|"fatal' \ && { echo '$(ME): use FATAL, WARNING or warning' 1>&2; \ exit 1; } \ || : # Error messages should not start with a capital letter sc_error_message_uppercase: @$(VC_LIST_EXCEPT) \ | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ | $(GREP) -E '"[A-Z]' \ | $(GREP) -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' \ && { echo '$(ME): found capitalized error message' 1>&2; \ exit 1; } \ || : # Error messages should not end with a period sc_error_message_period: @$(VC_LIST_EXCEPT) \ | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ | $(GREP) -E '[^."]\."' \ && { echo '$(ME): found error message ending in period' 1>&2; \ exit 1; } \ || : sc_file_system: @prohibit=file''system \ exclude='/proc/filesystems' \ ignore_case=1 \ halt='found use of "file''system"; spell it "file system"' \ $(_sc_search_regexp) # Don't use cpp tests of this symbol. All code assumes config.h is included. sc_prohibit_have_config_h: @prohibit='^# *if.*HAVE''_CONFIG_H' \ halt='found use of HAVE''_CONFIG_H; remove' \ $(_sc_search_regexp) # Nearly all .c files must include . However, we also permit this # via inclusion of a package-specific header, if cfg.mk specified one. # config_h_header must be suitable for grep -E. config_h_header ?= sc_require_config_h: @require='^# *include $(config_h_header)' \ in_vc_files='\.c$$' \ halt='the above files do not include ' \ $(_sc_search_regexp) # Print each file name for which the first #include does not match # $(config_h_header). Like grep -m 1, this only looks at the first match. perl_config_h_first_ = \ -e 'BEGIN {$$ret = 0}' \ -e 'if (/^\# *include\b/) {' \ -e ' if (not m{^\# *include $(config_h_header)}) {' \ -e ' print "$$ARGV\n";' \ -e ' $$ret = 1;' \ -e ' }' \ -e ' \# Move on to next file after first include' \ -e ' close ARGV;' \ -e '}' \ -e 'END {exit $$ret}' # You must include before including any other header file. # This can possibly be via a package-specific header, if given by cfg.mk. sc_require_config_h_first: @if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then \ files=$$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$') && \ perl -n $(perl_config_h_first_) $$files || \ { echo '$(ME): the above files include some other header' \ 'before ' 1>&2; exit 1; } || :; \ else :; \ fi sc_prohibit_HAVE_MBRTOWC: @prohibit='\bHAVE_MBRTOWC\b' \ halt="do not use $$prohibit; it is always defined" \ $(_sc_search_regexp) # To use this "command" macro, you must first define two shell variables: # h: the header name, with no enclosing <> or "" # re: a regular expression that matches IFF something provided by $h is used. define _sc_header_without_use dummy=; : so we do not need a semicolon before each use; \ h_esc=`echo '[<"]'"$$h"'[">]'|$(SED) 's/\./\\\\./g'`; \ if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then \ files=$$($(GREP) -l '^# *include '"$$h_esc" \ $$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$')) && \ $(GREP) -LE "$$re" $$files | $(GREP) . && \ { echo "$(ME): the above files include $$h but don't use it" \ 1>&2; exit 1; } || :; \ else :; \ fi endef # Prohibit the inclusion of assert.h without an actual use of assert. sc_prohibit_assert_without_use: @h='assert.h' re='\new(file => "/dev/stdin")->as_string'|sed 's/\?://g' # Note this was produced by the above: # _xa1 = \ #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) # But we can do better, in at least two ways: # 1) take advantage of two "dup"-suffixed strings: # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable # "char|[cmz]" # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa2 = X([CZ]|N?M)ALLOC sc_prohibit_xalloc_without_use: @h='xalloc.h' \ re='\<($(_xa1)|$(_xa2)) *\('\ $(_sc_header_without_use) # Extract function names: # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h _hash_re = \ clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning _hash_fn = \<($(_hash_re)) *\( _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> sc_prohibit_hash_without_use: @h='hash.h' \ re='$(_hash_fn)|$(_hash_struct)'\ $(_sc_header_without_use) sc_prohibit_cloexec_without_use: @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ $(_sc_header_without_use) sc_prohibit_posixver_without_use: @h='posixver.h' re='\' \ halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ $(_sc_search_regexp) # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ # Each nonempty ChangeLog line must start with a year number, or a TAB. sc_changelog: @prohibit='^[^12 ]' \ in_vc_files='^ChangeLog$$' \ halt='found unexpected prefix in a ChangeLog' \ $(_sc_search_regexp) # Ensure that each .c file containing a "main" function also # calls bindtextdomain. sc_bindtextdomain: @require='bindtextdomain *\(' \ in_vc_files='\.c$$' \ containing='\
/dev/null \ && : || { die=1; echo $$i; } \ done; \ test $$die = 1 && \ { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ echo 1>&2 'Exit something'; \ exit 1; } || :; \ fi sc_trailing_blank: @prohibit='[ ]$$' \ halt='found trailing blank(s)' \ exclude='^Binary file .* matches$$' \ $(_sc_search_regexp) # Match lines like the following, but where there is only one space # between the options and the description: # -D, --all-repeated[=delimit-method] print all duplicate lines\n longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)? sc_two_space_separator_in_usage: @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ halt='help2man requires at least two spaces between an option and its description'\ $(_sc_search_regexp) # A regexp matching function names like "error" that may be used # to emit translatable messages. _gl_translatable_diag_func_re ?= error # Look for diagnostics that aren't marked for translation. # This won't find any for which error's format string is on a separate line. sc_unmarked_diagnostics: @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ exclude='(_|ngettext ?)\(' \ halt='found unmarked diagnostic(s)' \ $(_sc_search_regexp) # Avoid useless parentheses like those in this example: # #if defined (SYMBOL) || defined (SYM2) sc_useless_cpp_parens: @prohibit='^# *if .*defined *\(' \ halt='found useless parentheses in cpp directive' \ $(_sc_search_regexp) # List headers for which HAVE_HEADER_H is always true, assuming you are # using the appropriate gnulib module. CAUTION: for each "unnecessary" # #if HAVE_HEADER_H that you remove, be sure that your project explicitly # requires the gnulib module that guarantees the usability of that header. gl_assured_headers_ = \ cd $(gnulib_dir)/lib && echo *.in.h|$(SED) 's/\.in\.h//g' # Convert the list of names to upper case, and replace each space with "|". az_ = abcdefghijklmnopqrstuvwxyz AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ gl_header_upper_case_or_ = \ $$($(gl_assured_headers_) \ | tr $(az_)/.- $(AZ_)___ \ | tr -s ' ' '|' \ ) sc_prohibit_always_true_header_tests: @or=$(gl_header_upper_case_or_); \ re="HAVE_($$or)_H"; \ prohibit='\<'"$$re"'\>' \ halt=$$(printf '%s\n' \ 'do not test the above HAVE_
_H symbol(s);' \ ' with the corresponding gnulib module, they are always true') \ $(_sc_search_regexp) sc_prohibit_defined_have_decl_tests: @prohibit='(#[ ]*ifn?def|\[ (]+HAVE_DECL_' \ halt='HAVE_DECL macros are always defined' \ $(_sc_search_regexp) # ================================================================== gl_other_headers_ ?= \ intprops.h \ openat.h \ stat-macros.h # Perl -lne code to extract "significant" cpp-defined symbols from a # gnulib header file, eliminating a few common false-positives. # The exempted names below are defined only conditionally in gnulib, # and hence sometimes must/may be defined in application code. gl_extract_significant_defines_ = \ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ && $$2 !~ /(?:rpl_|_used_without_)/\ && $$1 !~ /^(?:NSIG|ENODATA)$$/\ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ and print $$1 # Create a list of regular expressions matching the names # of macros that are guaranteed to be defined by parts of gnulib. define def_sym_regex gen_h=$(gl_generated_headers_); \ (cd $(gnulib_dir)/lib; \ for f in *.in.h $(gl_other_headers_); do \ test -f $$f \ && perl -lne '$(gl_extract_significant_defines_)' $$f; \ done; \ ) | sort -u \ | $(SED) 's/^/^ *# *(define|undef) */;s/$$/\\>/' endef # Don't define macros that we already get from gnulib header files. sc_prohibit_always-defined_macros: @if test -d $(gnulib_dir); then \ case $$(echo all: | $(GREP) -l -f - Makefile) in Makefile);; *) \ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ esac; \ regex=$$($(def_sym_regex)); export regex; \ $(VC_LIST_EXCEPT) \ | xargs sh -c 'echo $$regex | $(GREP) -E -f - "$$@"' \ dummy /dev/null \ && { printf '$(ME): define the above' \ ' via some gnulib .h file\n' 1>&2; \ exit 1; } \ || :; \ fi # ================================================================== # Prohibit checked in backup files. sc_prohibit_backup_files: @$(VC_LIST) | $(GREP) '~$$' && \ { echo '$(ME): found version controlled backup file' 1>&2; \ exit 1; } || : # Require the latest GPL. sc_GPL_version: @prohibit='either ''version [^3]' \ halt='GPL vN, N!=3' \ $(_sc_search_regexp) # Require the latest GFDL. Two regexp, since some .texi files end up # line wrapping between 'Free Documentation License,' and 'Version'. _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) sc_GFDL_version: @prohibit='$(_GFDL_regexp)' \ halt='GFDL vN, N!=3' \ $(_sc_search_regexp) # Don't use Texinfo's @acronym{}. # https://lists.gnu.org/r/bug-gnulib/2010-03/msg00321.html texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ sc_texinfo_acronym: @prohibit='@acronym\{' \ in_vc_files='$(texinfo_suffix_re_)' \ halt='found use of Texinfo @acronym{}' \ $(_sc_search_regexp) cvs_keywords = \ Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State sc_prohibit_cvs_keyword: @prohibit='\$$($(cvs_keywords))\$$' \ halt='do not use CVS keyword expansion' \ $(_sc_search_regexp) # This Perl code is slightly obfuscated. Not only is each "$" doubled # because it's in a Makefile, but the $$c's are comments; we cannot # use "#" due to the way the script ends up concatenated onto one line. # It would be much more concise, and would produce better output (including # counts) if written as: # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... # but that would be far less efficient, reading the entire contents # of each file, rather than just the last two bytes of each. # In addition, while the code below detects both blank lines and a missing # newline at EOF, the above detects only the former. # # This is a perl script that is expected to be the single-quoted argument # to a command-line "-le". The remaining arguments are file names. # Print the name of each file that does not end in exactly one newline byte. # I.e., warn if there are blank lines (2 or more newlines), or if the # last byte is not a newline. However, currently we don't complain # about any file that contains exactly one byte. # Exit nonzero if at least one such file is found, otherwise, exit 0. # Warn about, but otherwise ignore open failure. Ignore seek/read failure. # # Use this if you want to remove trailing empty lines from selected files: # perl -pi -0777 -e 's/\n\n+$/\n/' files... # require_exactly_one_NL_at_EOF_ = \ foreach my $$f (@ARGV) \ { \ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ my $$p = sysseek (F, -2, 2); \ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ my $$last_two_bytes; \ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ close F; \ $$c = "ignore read failure"; \ $$p && ($$last_two_bytes eq "\n\n" \ || substr ($$last_two_bytes,1) ne "\n") \ and (print $$f), $$fail=1; \ } \ END { exit defined $$fail } sc_prohibit_empty_lines_at_EOF: @$(VC_LIST_EXCEPT) \ | xargs perl -le '$(require_exactly_one_NL_at_EOF_)' \ || { echo '$(ME): empty line(s) or no newline at EOF' 1>&2; \ exit 1; } \ || : # Make sure we don't use st_blocks. Use ST_NBLOCKS instead. # This is a bit of a kludge, since it prevents use of the string # even in comments, but for now it does the job with no false positives. sc_prohibit_stat_st_blocks: @prohibit='[.>]st_blocks' \ halt='do not use st_blocks; use ST_NBLOCKS' \ $(_sc_search_regexp) # Make sure we don't define any S_IS* macros in src/*.c files. # They're already defined via gnulib's sys/stat.h replacement. sc_prohibit_S_IS_definition: @prohibit='^ *# *define *S_IS' \ halt='do not define S_IS* macros; include ' \ $(_sc_search_regexp) # Perl block to convert a match to FILE_NAME:LINENO:TEST, # that is shared by two definitions below. perl_filename_lineno_text_ = \ -e ' {' \ -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ -e ' print "$$ARGV:$$n:$$v\n";' \ -e ' }' prohibit_doubled_words_ = \ the then in an on if is it but for or at and do to # expand the regex before running the check to avoid using expensive captures prohibit_doubled_word_expanded_ = \ $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_))) prohibit_doubled_word_RE_ ?= \ /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims prohibit_doubled_word_ = \ -e 'while ($(prohibit_doubled_word_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_doubled_word_match_RE_ ?= ^$$ sc_prohibit_doubled_word: @$(VC_LIST_EXCEPT) \ | xargs perl -n -0777 $(prohibit_doubled_word_) \ | $(GREP) -vE '$(ignore_doubled_word_match_RE_)' \ | $(GREP) . \ && { echo '$(ME): doubled words' 1>&2; exit 1; } \ || : # A regular expression matching undesirable combinations of words like # "can not"; this matches them even when the two words appear on different # lines, but not when there is an intervening delimiter like "#" or "*". # Similarly undesirable, "See @xref{...}", since an @xref should start # a sentence. Explicitly prohibit any prefix of "see" or "also". # Also prohibit a prefix matching "\w+ +". # @pxref gets the same see/also treatment and should be parenthesized; # presume it must *not* start a sentence. # POSIX spells it "timestamp" rather than "time\s+stamp", so we do, too. bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{ bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{ prohibit_undesirable_word_seq_RE_ ?= \ /(?:\bcan\s+not\b|\btime\s+stamps?\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims prohibit_undesirable_word_seq_ = \ -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_undesirable_word_sequence_RE_ ?= ^$$ sc_prohibit_undesirable_word_seq: @$(VC_LIST_EXCEPT) \ | xargs perl -n -0777 $(prohibit_undesirable_word_seq_) \ | $(GREP) -vE '$(ignore_undesirable_word_sequence_RE_)' \ | $(GREP) . \ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } \ || : # Except for shell files and for loops, double semicolon is probably a mistake sc_prohibit_double_semicolon: @prohibit='; *;[ {} \]*(/[/*]|$$)' \ in_vc_files='\.[chly]$$' \ exclude='\bfor *\(.*\)' \ halt="Double semicolon detected" \ $(_sc_search_regexp) _ptm1 = use "test C1 && test C2", not "test C1 -''a C2" _ptm2 = use "test C1 || test C2", not "test C1 -''o C2" # Using test's -a and -o operators is not portable. # We prefer test over [, since the latter is spelled [[ in configure.ac. sc_prohibit_test_minus_ao: @prohibit='(\ /dev/null \ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ done; \ test $$fail = 1 && \ { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ exit 1; } || :; \ fi # Warn about "c0nst struct Foo const foo[]", # but not about "char const *const foo" or "#define const const". sc_redundant_const: @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ halt='redundant "const" in declarations' \ $(_sc_search_regexp) sc_const_long_option: @prohibit='^ *static.*struct option ' \ exclude='const struct option|struct option const' \ halt='add "const" to the above declarations' \ $(_sc_search_regexp) NEWS_hash = \ $$($(SED) -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ $(srcdir)/NEWS \ | perl -0777 -pe \ 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ | md5sum - \ | $(SED) 's/ .*//') # Ensure that we don't accidentally insert an entry into an old NEWS block. sc_immutable_NEWS: @if test -f $(srcdir)/NEWS; then \ test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ fi # Update the hash stored above. Do this after each release and # for any corrections to old entries. update-NEWS-hash: NEWS perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ $(srcdir)/cfg.mk # Ensure that we use only the standard $(VAR) notation, # not @...@ in Makefile.am, now that we can rely on automake # to emit a definition for each substituted variable. # However, there is still one case in which @VAR@ use is not just # legitimate, but actually required: when augmenting an automake-defined # variable with a prefix. For example, gettext uses this: # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ # otherwise, makeinfo would put German or French (current locale) # navigation hints in the otherwise-English documentation. # # Allow the package to add exceptions via a hook in cfg.mk; # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. _makefile_at_at_check_exceptions ?= sc_makefile_at_at_check: @perl -ne '/\@\w+\@/' \ -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ -e ''$(_makefile_at_at_check_exceptions) \ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ $$($(VC_LIST_EXCEPT) | $(GREP) -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : news-check: NEWS $(AM_V_GEN)if $(SED) -n $(news-check-lines-spec)p $< \ | $(GREP) -E $(news-check-regexp) >/dev/null; then \ :; \ else \ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ exit 1; \ fi sc_makefile_TAB_only_indentation: @prohibit='^ [ ]{8}' \ in_vc_files='akefile|\.mk$$' \ halt='found TAB-8-space indentation' \ $(_sc_search_regexp) sc_m4_quote_check: @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ in_vc_files='(^configure\.ac|\.m4)$$' \ halt='quote the first arg to AC_DEF*' \ $(_sc_search_regexp) fix_po_file_diag = \ 'you have changed the set of files with translatable diagnostics;\n\ apply the above patch\n' # Generate a list of files in which to search for translatable strings. perl_translatable_files_list_ = \ -e 'foreach $$file (@ARGV) {' \ -e ' \# Consider only file extensions with one or two letters' \ -e ' $$file =~ /\...?$$/ or next;' \ -e ' \# Ignore m4 and mk files' \ -e ' $$file =~ /\.m[4k]$$/ and next;' \ -e ' \# Ignore a .c or .h file with a corresponding .l or .y file' \ -e ' $$file =~ /(.+)\.[ch]$$/ && (-e "$${1}.l" || -e "$${1}.y")' \ -e ' and next;' \ -e ' \# Skip unreadable files' \ -e ' -r $$file or next;' \ -e ' print "$$file ";' \ -e '}' # Verify that all source files using _() (more specifically, files that # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in. po_file ?= $(srcdir)/po/POTFILES.in generated_files ?= $(srcdir)/lib/*.[ch] _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) sc_po_check: @if test -f $(po_file); then \ $(GREP) -E -v '^(#|$$)' $(po_file) \ | $(GREP) -v '^src/false\.c$$' | sort > $@-1; \ { $(VC_LIST_EXCEPT); echo $(generated_files); } \ | xargs perl $(perl_translatable_files_list_) \ | xargs $(GREP) -E -l '$(_gl_translatable_string_re)' \ | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ | sort -u > $@-2; \ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ rm -f $@-1 $@-2; \ fi # Sometimes it is useful to change the PATH environment variable # in Makefiles. When doing so, it's better not to use the Unix-centric # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'. msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead' sc_makefile_path_separator_check: @prohibit='PATH[=].*:' \ in_vc_files='akefile|\.mk$$' \ halt=$(msg) \ $(_sc_search_regexp) # Check that 'make alpha' will not fail at the end of the process, # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) # and is read-only. writable-files: $(AM_V_GEN)if test -d $(release_archive_dir); then \ for file in $(DIST_ARCHIVES); do \ for p in ./ $(release_archive_dir)/; do \ test -e $$p$$file || continue; \ test -w $$p$$file \ || { echo ERROR: $$p$$file is not writable; fail=1; }; \ done; \ done; \ test "$$fail" && exit 1 || : ; \ else :; \ fi v_etc_file = $(gnulib_dir)/lib/version-etc.c sample-test = tests/sample-test texi = doc/$(PACKAGE).texi # Make sure that the copyright date in $(v_etc_file) is up to date. # Do the same for the $(sample-test) and the main doc/.texi file. sc_copyright_check: @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ in_files=$(v_etc_file) \ halt='out of date copyright in $(v_etc_file); update it' \ $(_sc_search_regexp) @require='# Copyright \(C\) '$$(date +%Y)' Free' \ in_vc_files=$(sample-test) \ halt='out of date copyright in $(sample-test); update it' \ $(_sc_search_regexp) @require='Copyright @copyright\{\} .*'$$(date +%Y) \ in_vc_files=$(texi) \ halt='out of date copyright in $(texi); update it' \ $(_sc_search_regexp) # If tests/help-version exists and seems to be new enough, assume that its # use of init.sh and path_prepend_ is correct, and ensure that every other # use of init.sh is identical. # This is useful because help-version cross-checks prog --version # with $(VERSION), which verifies that its path_prepend_ invocation # sets PATH correctly. This is an inexpensive way to ensure that # the other init.sh-using tests also get it right. _hv_file ?= $(srcdir)/tests/help-version _hv_regex_weak ?= ^ *\. .*/init\.sh" # Fix syntax-highlighters " _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" sc_cross_check_PATH_usage_in_tests: @if test -f $(_hv_file); then \ $(GREP) -l 'VERSION mismatch' $(_hv_file) >/dev/null \ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ exit 0; }; \ $(GREP) -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ exit 1; }; \ good=$$($(GREP) -E '$(_hv_regex_strong)' $(_hv_file)); \ $(VC_LIST_EXCEPT) \ | xargs $(GREP) -lE '$(_hv_regex_weak)' \ | xargs $(GREP) -LFx "$$good" \ | $(GREP) . \ && { printf "$(ME): the above files use" \ " path_prepend_ inconsistently\n" 1>&2; \ exit 1; } \ || :; \ fi # BRE regex of file contents to identify a test script. _test_script_regex ?= \ # In tests, use "compare expected actual", not the reverse. sc_prohibit_reversed_compare_failure: @prohibit='\ vc-diffs || : $(AM_V_at)if test -s vc-diffs; then \ cat vc-diffs; \ echo "Some files are locally modified:" 1>&2; \ exit 1; \ else \ rm vc-diffs; \ fi rel-files = $(DIST_ARCHIVES) gnulib-version = $$(cd $(gnulib_dir) \ && { git describe || git rev-parse --short=10 HEAD; } ) bootstrap-tools ?= autoconf,automake,gnulib gpgv = $$(gpgv2 --version >/dev/null && echo gpgv2 || echo gpgv) # If it's not already specified, derive the GPG key ID from # the signed tag we've just applied to mark this release. gpg_key_ID ?= \ $$(cd $(srcdir) \ && git cat-file tag v$(VERSION) \ | $(gpgv) --status-fd 1 --keyring /dev/null - - 2>/dev/null \ | $(AWK) '/^\[GNUPG:\] ERRSIG / {print $$3; exit}') translation_project_ ?= coordinator@translationproject.org # Make info-gnu the default only for a stable release. announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT) announcement_mail_headers_stable = \ To: info-gnu@gnu.org \ Cc: $(announcement_Cc_) \ Mail-Followup-To: $(PACKAGE_BUGREPORT) announcement_Cc_alpha = $(translation_project_) announcement_mail_headers_alpha = \ To: $(PACKAGE_BUGREPORT) \ Cc: $(announcement_Cc_) announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha) announcement_mail_headers_beta = $(announcement_mail_headers_alpha) announcement_mail_Cc_ ?= $(announcement_mail_Cc_$(release-type)) announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type)) announcement: NEWS ChangeLog $(rel-files) # Not $(AM_V_GEN) since the output of this command serves as # announcement message: it would start with " GEN announcement". $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen \ --mail-headers='$(announcement_mail_headers_)' \ --release-type=$(release-type) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ --srcdir=$(srcdir) \ --news=$(srcdir)/NEWS \ --bootstrap-tools=$(bootstrap-tools) \ $$(case ,$(bootstrap-tools), in (*,gnulib,*) \ echo --gnulib-version=$(gnulib-version);; esac) \ --no-print-checksums \ $(addprefix --url-dir=, $(url_dir_list)) .PHONY: release-commit release-commit: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/do-release-commit-and-tag \ -C $(abs_builddir) $(RELEASE) ## ---------------- ## ## Updating files. ## ## ---------------- ## ftp-gnu = https://ftp.gnu.org/gnu www-gnu = https://www.gnu.org upload_dest_dir_ ?= $(PACKAGE) upload_command = \ $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \ --to $(gnu_rel_host):$(upload_dest_dir_) \ $(rel-files) emit_upload_commands: @echo ===================================== @echo ===================================== @echo '$(upload_command)' @echo '# send the ~/announce-$(my_distdir) e-mail' @echo ===================================== @echo ===================================== .PHONY: upload upload: $(AM_V_GEN)$(upload_command) define emit-commit-log printf '%s\n' 'maint: post-release administrivia' '' \ '* NEWS: Add header line for next release.' \ '* .prev-version: Record previous version.' \ '* cfg.mk (old_NEWS_hash): Auto-update.' endef .PHONY: no-submodule-changes no-submodule-changes: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ diff=$$(cd $(srcdir) && git submodule -q foreach \ git diff-index --name-only HEAD) \ || exit 1; \ case $$diff in '') ;; \ *) echo '$(ME): submodule files are locally modified:'; \ echo "$$diff"; exit 1;; esac; \ else \ : ; \ fi submodule-checks ?= no-submodule-changes public-submodule-commit # Ensure that each sub-module commit we're using is public. # Without this, it is too easy to tag and release code that # cannot be built from a fresh clone. .PHONY: public-submodule-commit public-submodule-commit: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ cd $(srcdir) && \ git submodule --quiet foreach \ 'test "$$(git rev-parse "$$sha1")" \ = "$$(git merge-base origin "$$sha1")"' \ || { echo '$(ME): found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi # This rule has a high enough utility/cost ratio that it should be a # dependent of "check" by default. However, some of us do occasionally # commit a temporary change that deliberately points to a non-public # submodule commit, and want to be able to use rules like "make check". # In that case, run e.g., "make check gl_public_submodule_commit=" # to disable this test. gl_public_submodule_commit ?= public-submodule-commit check: $(gl_public_submodule_commit) .PHONY: alpha beta stable release ALL_RECURSIVE_TARGETS += alpha beta stable alpha beta stable: $(local-check) writable-files $(submodule-checks) $(AM_V_GEN)test $@ = stable \ && { echo $(VERSION) | $(GREP) -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : $(AM_V_at)$(MAKE) vc-diff-check $(AM_V_at)$(MAKE) news-check $(AM_V_at)$(MAKE) distcheck $(AM_V_at)$(MAKE) dist $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ release: $(AM_V_GEN)$(MAKE) _version $(AM_V_GEN)$(MAKE) $(release-type) # Override this in cfg.mk if you follow different procedures. release-prep-hook ?= release-prep gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] .PHONY: release-prep release-prep: $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \ > ~/announce-$(my_distdir) $(AM_V_at)if test -d $(release_archive_dir); then \ ln $(rel-files) $(release_archive_dir); \ chmod a-w $(rel-files); \ fi $(AM_V_at)echo $(VERSION) > $(prev_version_file) $(AM_V_at)$(MAKE) update-NEWS-hash $(AM_V_at)perl -pi \ -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' \ $(srcdir)/NEWS $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1; \ cd $(srcdir) && $(VC) commit -m "$$msg" -a # Override this with e.g., -s $(srcdir)/some_other_name.texi # if the default $(PACKAGE)-derived name doesn't apply. gendocs_options_ ?= .PHONY: web-manual web-manual: $(AM_V_GEN)test -z "$(manual_title)" \ && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : $(AM_V_at)cd '$(srcdir)/doc'; \ $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ -o '$(abs_builddir)/doc/manual' \ --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ "$(PACKAGE_NAME) - $(manual_title)" $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs." .PHONY: web-manual-update web-manual-update: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir) # Code Coverage init-coverage: $(MAKE) $(AM_MAKEFLAGS) clean lcov --directory . --zerocounters COVERAGE_CCOPTS ?= "-g --coverage" COVERAGE_OUT ?= doc/coverage build-coverage: $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check mkdir -p $(COVERAGE_OUT) lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ --capture gen-coverage: genhtml --output-directory $(COVERAGE_OUT) \ $(COVERAGE_OUT)/$(PACKAGE).info \ --highlight --frames --legend \ --title "$(PACKAGE_NAME)" coverage: $(MAKE) init-coverage $(MAKE) build-coverage $(MAKE) gen-coverage # Some projects carry local adjustments for gnulib modules via patches in # a gnulib patch directory whose default name is gl/ (defined in bootstrap # via local_gl_dir=gl). Those patches become stale as the originals evolve # in gnulib. Use this rule to refresh any stale patches. It applies each # patch to the original in $(gnulib_dir) and uses the temporary result to # generate a fuzz-free .diff file. If you customize the name of your local # gnulib patch directory via bootstrap.conf, this rule detects that name. # Run this from a non-VPATH (i.e., srcdir) build directory. .PHONY: refresh-gnulib-patches refresh-gnulib-patches: gl=gl; \ if test -f bootstrap.conf; then \ t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ -e 'END{defined $$d and print $$d}' bootstrap.conf); \ test -n "$$t" && gl=$$t; \ fi; \ for diff in $$(cd $$gl; git ls-files | $(GREP) '\.diff$$'); do \ b=$$(printf %s "$$diff"|$(SED) 's/\.diff$$//'); \ VERSION_CONTROL=none \ patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ ( cd $(gnulib_dir) || exit 1; \ git diff "$$b" > "../$$gl/$$diff"; \ git checkout $$b ) || exit 1; \ done # Update gettext files. PACKAGE ?= $(shell basename $(PWD)) PO_DOMAIN ?= $(PACKAGE) POURL = https://translationproject.org/latest/$(PO_DOMAIN)/ PODIR ?= po refresh-po: rm -f $(PODIR)/*.po && \ echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \ wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \ echo 'en@boldquot' > $(PODIR)/LINGUAS && \ echo 'en@quot' >> $(PODIR)/LINGUAS && \ ls $(PODIR)/*.po | $(SED) 's/\.po//;s,$(PODIR)/,,' | \ sort >> $(PODIR)/LINGUAS # Running indent once is not idempotent, but running it twice is. INDENT_SOURCES ?= $(C_SOURCES) .PHONY: indent indent: indent $(INDENT_SOURCES) indent $(INDENT_SOURCES) # If you want to set UPDATE_COPYRIGHT_* environment variables, # put the assignments in this variable. update-copyright-env ?= # Run this rule once per year (usually early in January) # to update all FSF copyright year lists in your project. # If you have an additional project-specific rule, # add it in cfg.mk along with a line 'update-copyright: prereq'. # By default, exclude all variants of COPYING; you can also # add exemptions (such as ChangeLog..* for rotated change logs) # in the file .x-update-copyright. .PHONY: update-copyright update-copyright: $(AM_V_GEN)$(GREP) -l -w Copyright \ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. # NOTE: to override any _gl_TS_* default value, you must # define the variable(s) using "export" in cfg.mk. _gl_TS_dir ?= src ALL_RECURSIVE_TARGETS += sc_tight_scope sc_tight_scope: tight-scope.mk @fail=0; \ if ! $(GREP) '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ > /dev/null \ && ! $(GREP) -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ > /dev/null 2>&1; then \ echo '$(ME): skipping $@'; \ else \ $(MAKE) -s -C $(_gl_TS_dir) \ -f Makefile \ -f $(abs_top_srcdir)/cfg.mk \ -f $(abs_top_builddir)/$< \ _gl_tight_scope \ || fail=1; \ fi; \ rm -f $<; \ exit $$fail tight-scope.mk: $(ME) @rm -f $@ $@-t @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t @chmod a=r $@-t && mv $@-t $@ ifeq (a,b) # TS-start # Most functions should have static scope. # Any that don't must be marked with 'extern', but 'main' # and 'usage' are exceptions: they're always extern, but # do not need to be marked. Symbols matching '__.*' are # reserved by the compiler, so are automatically excluded below. _gl_TS_unmarked_extern_functions ?= main usage _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\w+) *\(/ # If your project uses a macro like "XTERN", then put # the following in cfg.mk to override this default: # export _gl_TS_extern = extern|XTERN _gl_TS_extern ?= extern # The second nm|grep checks for file-scope variables with 'extern' scope. # Without gnulib's progname module, you might put program_name here. # Symbols matching '__.*' are reserved by the compiler, # so are automatically excluded below. _gl_TS_unmarked_extern_vars ?= # NOTE: the _match variables are perl expressions -- not mere regular # expressions -- so that you can extend them to match other patterns # and easily extract matched variable names. # For example, if your project declares some global variables via # a macro like this: GLOBAL(type, var_name, initializer), then you # can override this definition to automatically extract those names: # export _gl_TS_var_match = \ # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/ # The names of object files in (or relative to) $(_gl_TS_dir). _gl_TS_obj_files ?= *.$(OBJEXT) # Files in which to search for the one-line style extern declarations. # $(_gl_TS_dir)-relative. _gl_TS_headers ?= $(noinst_HEADERS) _gl_TS_other_headers ?= *.h .PHONY: _gl_tight_scope _gl_tight_scope: $(bin_PROGRAMS) sed_wrap='s/^/^_?/;s/$$/$$/'; \ t=exceptions-$$$$; \ trap 's=$$?; rm -f $$t; exit $$s' 0; \ for sig in 1 2 3 13 15; do \ eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ done; \ src=`for f in $(SOURCES); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ hdr=`for f in $(_gl_TS_headers); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ ( printf '%s\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ $(GREP) -h -A1 '^extern .*[^;]$$' $$src \ | $(GREP) -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d'; \ perl -lne \ '$(_gl_TS_function_match) and print $$1' $$hdr; \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|$(GREP) -Ev -f $$t \ && { echo the above functions should have static scope >&2; \ exit 1; } || : ; \ ( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars); \ perl -lne '$(_gl_TS_var_match) and print $$1' \ $$hdr $(_gl_TS_other_headers) \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p' \ | sort -u | $(GREP) -Ev -f $$t \ && { echo the above variables should have static scope >&2; \ exit 1; } || : # TS-end endif libidn-1.38/lib/0000755000000000000000000000000014076274120010426 500000000000000libidn-1.38/lib/stringprep.h0000644000000000000000000002303614076273055012726 00000000000000/* stringprep.h --- Header file for stringprep functions. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef STRINGPREP_H # define STRINGPREP_H /** * SECTION:stringprep * @title: stringprep.h * @short_description: Stringprep-related functions * * Stringprep-related functions. */ # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # include /* size_t */ # include /* ssize_t */ # include /* uint32_t */ # ifdef __cplusplus extern "C" { # endif # define STRINGPREP_VERSION "1.38" /* Error codes. */ typedef enum { STRINGPREP_OK = 0, /* Stringprep errors. */ STRINGPREP_CONTAINS_UNASSIGNED = 1, STRINGPREP_CONTAINS_PROHIBITED = 2, STRINGPREP_BIDI_BOTH_L_AND_RAL = 3, STRINGPREP_BIDI_LEADTRAIL_NOT_RAL = 4, STRINGPREP_BIDI_CONTAINS_PROHIBITED = 5, /* Error in calling application. */ STRINGPREP_TOO_SMALL_BUFFER = 100, STRINGPREP_PROFILE_ERROR = 101, STRINGPREP_FLAG_ERROR = 102, STRINGPREP_UNKNOWN_PROFILE = 103, STRINGPREP_ICONV_ERROR = 104, /* Internal errors. */ STRINGPREP_NFKC_FAILED = 200, STRINGPREP_MALLOC_ERROR = 201 } Stringprep_rc; /* Flags used when calling stringprep(). */ typedef enum { STRINGPREP_NO_NFKC = 1, STRINGPREP_NO_BIDI = 2, STRINGPREP_NO_UNASSIGNED = 4 } Stringprep_profile_flags; /* Steps in a stringprep profile. */ typedef enum { STRINGPREP_NFKC = 1, STRINGPREP_BIDI = 2, STRINGPREP_MAP_TABLE = 3, STRINGPREP_UNASSIGNED_TABLE = 4, STRINGPREP_PROHIBIT_TABLE = 5, STRINGPREP_BIDI_PROHIBIT_TABLE = 6, STRINGPREP_BIDI_RAL_TABLE = 7, STRINGPREP_BIDI_L_TABLE = 8 } Stringprep_profile_steps; # define STRINGPREP_MAX_MAP_CHARS 4 /* *INDENT-OFF* */ /* Why INDENT-OFF? GTK-DOC has a bug * which causes * parsing of structs to fail unless the terminating } is at the * beginning of the line. We hard-code the header file to be like * that, and add the INDENT-OFF markers so that indent won't restore * them. When that bug is fixed, remove the INDENT-* marker, run * 'make indent', and make sure that * doc/reference/libidn-decl-list.txt stay the same. * * Of course, exposing these struct's in the public header file in * the first place was a mistake. */ /** * Stringprep_table_element: * @start: starting codepoint. * @end: ending codepoint, 0 if only one character. * @map: codepoints to map @start into, NULL if end is not 0. * * Stringprep profile table element. */ struct Stringprep_table_element { uint32_t start; uint32_t end; uint32_t map[STRINGPREP_MAX_MAP_CHARS]; }; typedef struct Stringprep_table_element Stringprep_table_element; /** * Stringprep_table: * @operation: a #Stringprep_profile_steps value * @flags: a #Stringprep_profile_flags value * @table: zero-terminated array of %Stringprep_table_element elements. * @table_size: size of @table, to speed up searching. * * Stringprep profile table. */ struct Stringprep_table { Stringprep_profile_steps operation; Stringprep_profile_flags flags; const Stringprep_table_element *table; size_t table_size; }; /** * Stringprep_profile: * * Stringprep profile table. */ typedef struct Stringprep_table Stringprep_profile; /** * Stringprep_profiles: * @name: name of stringprep profile. * @tables: zero-terminated array of %Stringprep_profile elements. * * Element structure */ struct Stringprep_profiles { const char *name; const Stringprep_profile *tables; }; typedef struct Stringprep_profiles Stringprep_profiles; /* *INDENT-ON* */ extern IDNAPI const Stringprep_profiles stringprep_profiles[]; /* Profiles */ extern IDNAPI const Stringprep_table_element stringprep_rfc3454_A_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_2[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_3[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_1_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_1_2[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_2_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_2_2[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_3[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_4[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_5[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_6[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_7[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_8[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_9[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_D_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_D_2[]; /* Nameprep */ extern IDNAPI const Stringprep_profile stringprep_nameprep[]; # define stringprep_nameprep(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_nameprep) # define stringprep_nameprep_no_unassigned(in, maxlen) \ stringprep(in, maxlen, STRINGPREP_NO_UNASSIGNED, stringprep_nameprep) /* SASL */ extern IDNAPI const Stringprep_profile stringprep_saslprep[]; extern IDNAPI const Stringprep_table_element stringprep_saslprep_space_map[]; extern IDNAPI const Stringprep_profile stringprep_plain[]; extern IDNAPI const Stringprep_profile stringprep_trace[]; # define stringprep_plain(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_plain) /* Kerberos */ extern IDNAPI const Stringprep_profile stringprep_kerberos5[]; # define stringprep_kerberos5(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_kerberos5) /* XMPP */ extern IDNAPI const Stringprep_profile stringprep_xmpp_nodeprep[]; extern IDNAPI const Stringprep_profile stringprep_xmpp_resourceprep[]; extern IDNAPI const Stringprep_table_element stringprep_xmpp_nodeprep_prohibit[]; # define stringprep_xmpp_nodeprep(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_xmpp_nodeprep) # define stringprep_xmpp_resourceprep(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_xmpp_resourceprep) /* iSCSI */ extern IDNAPI const Stringprep_profile stringprep_iscsi[]; extern IDNAPI const Stringprep_table_element stringprep_iscsi_prohibit[]; # define stringprep_iscsi(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_iscsi) /* API */ extern IDNAPI int stringprep_4i (uint32_t * ucs4, size_t *len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile); extern IDNAPI int stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile); extern IDNAPI int stringprep (char *in, size_t maxlen, Stringprep_profile_flags flags, const Stringprep_profile * profile); extern IDNAPI int stringprep_profile (const char *in, char **out, const char *profile, Stringprep_profile_flags flags); extern IDNAPI const char *stringprep_strerror (Stringprep_rc rc); extern IDNAPI const char *stringprep_check_version (const char *req_version); /* Utility */ extern IDNAPI int stringprep_unichar_to_utf8 (uint32_t c, char *outbuf); extern IDNAPI uint32_t stringprep_utf8_to_unichar (const char *p); extern IDNAPI uint32_t *stringprep_utf8_to_ucs4 (const char *str, ssize_t len, size_t *items_written); extern IDNAPI char *stringprep_ucs4_to_utf8 (const uint32_t * str, ssize_t len, size_t *items_read, size_t *items_written); extern IDNAPI char *stringprep_utf8_nfkc_normalize (const char *str, ssize_t len); extern IDNAPI uint32_t *stringprep_ucs4_nfkc_normalize (const uint32_t * str, ssize_t len); extern IDNAPI const char *stringprep_locale_charset (void); extern IDNAPI char *stringprep_convert (const char *str, const char *to_codeset, const char *from_codeset); extern IDNAPI char *stringprep_locale_to_utf8 (const char *str); extern IDNAPI char *stringprep_utf8_to_locale (const char *str); # ifdef __cplusplus } # endif #endif /* STRINGPREP_H */ libidn-1.38/lib/version.c0000644000000000000000000000355714076271517012220 00000000000000/* version.c --- Version handling. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "stringprep.h" #include /* for strverscmp */ /** * stringprep_check_version: * @req_version: Required version number, or NULL. * * Check that the version of the library is at minimum the requested one * and return the version string; return NULL if the condition is not * satisfied. If a NULL is passed to this function, no check is done, * but the version string is simply returned. * * See %STRINGPREP_VERSION for a suitable @req_version string. * * Return value: Version string of run-time library, or NULL if the * run-time library does not meet the required version number. */ const char * stringprep_check_version (const char *req_version) { if (!req_version || strverscmp (req_version, STRINGPREP_VERSION) <= 0) return STRINGPREP_VERSION; return NULL; } libidn-1.38/lib/strerror-tld.c0000644000000000000000000000510714076271517013167 00000000000000/* strerror-tld.c --- Convert TLD errors into text. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "tld.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * tld_strerror: * @rc: tld return code * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * TLD_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * TLD_INVALID: Invalid character found. * TLD_NODATA: No input data was provided. * TLD_MALLOC_ERROR: Error during memory allocation. * TLD_ICONV_ERROR: Character encoding conversion error. * TLD_NO_TLD: No top-level domain found in domain string. * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * tld_strerror (Tld_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case TLD_SUCCESS: p = _("Success"); break; case TLD_INVALID: p = _("Code points prohibited by top-level domain"); break; case TLD_NODATA: p = _("Missing input"); break; case TLD_MALLOC_ERROR: p = _("Cannot allocate memory"); break; case TLD_ICONV_ERROR: p = _("Character encoding conversion error"); break; case TLD_NO_TLD: p = _("No top-level domain found in input"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.38/lib/nfkc.c0000644000000000000000000007067414076271517011460 00000000000000/* nfkc.c --- Unicode normalization utilities. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "stringprep.h" /* Hacks to make syncing with GLIB code easier. */ #define gboolean int #define gchar char #define guchar unsigned char #define glong long #define gint int #define guint unsigned int #define gushort unsigned short #define gint16 int16_t #define guint16 uint16_t #define gunichar uint32_t #define gsize size_t #define gssize ssize_t #define g_malloc malloc #define g_free free #define g_return_val_if_fail(expr,val) { \ if (!(expr)) \ return (val); \ } /* Code from GLIB gmacros.h starts here. */ /* GLIB - Library of useful routines for C programming * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef FALSE # define FALSE (0) #endif #ifndef TRUE # define TRUE (!FALSE) #endif #define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0])) #define G_UNLIKELY(expr) (expr) /* Code from GLIB gunicode.h starts here. */ /* gunicode.h - Unicode manipulation functions * * Copyright (C) 1999, 2000 Tom Tromey * Copyright 2000, 2005 Red Hat, Inc. * * The Gnome Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The Gnome Library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ typedef enum { G_NORMALIZE_DEFAULT, G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, G_NORMALIZE_DEFAULT_COMPOSE, G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, G_NORMALIZE_ALL, G_NORMALIZE_NFKD = G_NORMALIZE_ALL, G_NORMALIZE_ALL_COMPOSE, G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE } GNormalizeMode; #define g_utf8_next_char(p) ((p) + g_utf8_skip[*(const guchar *)(p)]) /* Code from GLIB gutf8.c starts here. */ /* gutf8.c - Operations on UTF-8 strings. * * Copyright (C) 1999 Tom Tromey * Copyright (C) 2000 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define UTF8_COMPUTE(Char, Mask, Len) \ if (Char < 128) \ { \ Len = 1; \ Mask = 0x7f; \ } \ else if ((Char & 0xe0) == 0xc0) \ { \ Len = 2; \ Mask = 0x1f; \ } \ else if ((Char & 0xf0) == 0xe0) \ { \ Len = 3; \ Mask = 0x0f; \ } \ else if ((Char & 0xf8) == 0xf0) \ { \ Len = 4; \ Mask = 0x07; \ } \ else if ((Char & 0xfc) == 0xf8) \ { \ Len = 5; \ Mask = 0x03; \ } \ else if ((Char & 0xfe) == 0xfc) \ { \ Len = 6; \ Mask = 0x01; \ } \ else \ Len = -1; #define UTF8_LENGTH(Char) \ ((Char) < 0x80 ? 1 : \ ((Char) < 0x800 ? 2 : \ ((Char) < 0x10000 ? 3 : \ ((Char) < 0x200000 ? 4 : \ ((Char) < 0x4000000 ? 5 : 6))))) #define UTF8_GET(Result, Chars, Count, Mask, Len) \ (Result) = (Chars)[0] & (Mask); \ for ((Count) = 1; (Count) < (Len); ++(Count)) \ { \ if (((Chars)[(Count)] & 0xc0) != 0x80) \ { \ (Result) = -1; \ break; \ } \ (Result) <<= 6; \ (Result) |= ((Chars)[(Count)] & 0x3f); \ } static const gchar utf8_skip_data[256] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 1, 1 }; static const gchar *const g_utf8_skip = utf8_skip_data; /* * g_utf8_strlen: * @p: pointer to the start of a UTF-8 encoded string * @max: the maximum number of bytes to examine. If @max * is less than 0, then the string is assumed to be * nul-terminated. If @max is 0, @p will not be examined and * may be %NULL. * * Computes the length of the string in characters, not including * the terminating nul character. * * Return value: the length of the string in characters **/ static glong g_utf8_strlen (const gchar * p) { glong len = 0; g_return_val_if_fail (p != NULL, 0); while (*p) { p = g_utf8_next_char (p); ++len; } return len; } /* * g_utf8_get_char: * @p: a pointer to Unicode character encoded as UTF-8 * * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. * If @p does not point to a valid UTF-8 encoded character, results are * undefined. If you are not sure that the bytes are complete * valid Unicode characters, you should use g_utf8_get_char_validated() * instead. * * Return value: the resulting character **/ static gunichar g_utf8_get_char (const gchar * p) { int i, mask = 0, len; gunichar result; unsigned char c = (unsigned char) *p; UTF8_COMPUTE (c, mask, len); if (len == -1) return (gunichar) - 1; UTF8_GET (result, p, i, mask, len); return result; } /* * g_unichar_to_utf8: * @c: a Unicode character code * @outbuf: output buffer, must have at least 6 bytes of space. * If %NULL, the length will be computed and returned * and nothing will be written to @outbuf. * * Converts a single character to UTF-8. * * Return value: number of bytes written **/ static int g_unichar_to_utf8 (gunichar c, gchar * outbuf) { /* If this gets modified, also update the copy in g_string_insert_unichar() */ guint len = 0; int first; int i; if (c < 0x80) { first = 0; len = 1; } else if (c < 0x800) { first = 0xc0; len = 2; } else if (c < 0x10000) { first = 0xe0; len = 3; } else if (c < 0x200000) { first = 0xf0; len = 4; } else if (c < 0x4000000) { first = 0xf8; len = 5; } else { first = 0xfc; len = 6; } if (outbuf) { for (i = len - 1; i > 0; --i) { outbuf[i] = (c & 0x3f) | 0x80; c >>= 6; } outbuf[0] = c | first; } return len; } /* * g_utf8_to_ucs4_fast: * @str: a UTF-8 encoded string * @len: the maximum length of @str to use, in bytes. If @len < 0, * then the string is nul-terminated. * @items_written: location to store the number of characters in the * result, or %NULL. * * Convert a string from UTF-8 to a 32-bit fixed width * representation as UCS-4, assuming valid UTF-8 input. * This function is roughly twice as fast as g_utf8_to_ucs4() * but does no error checking on the input. A trailing 0 character * will be added to the string after the converted text. * * Return value: a pointer to a newly allocated UCS-4 string. * This value must be freed with g_free(). **/ static gunichar * g_utf8_to_ucs4_fast (const gchar * str, glong len, glong * items_written) { gunichar *result; gsize n_chars, i; const gchar *p; g_return_val_if_fail (str != NULL, NULL); p = str; n_chars = 0; if (len < 0) { while (*p) { p = g_utf8_next_char (p); ++n_chars; } } else { while (p < str + len && *p) { p = g_utf8_next_char (p); ++n_chars; } } result = g_malloc (sizeof (gunichar) * (n_chars + 1)); if (!result) return NULL; p = str; for (i = 0; i < n_chars; i++) { gunichar wc = (guchar) * p++; if (wc < 0x80) { result[i] = wc; } else { gunichar mask = 0x40; if (G_UNLIKELY ((wc & mask) == 0)) { /* It's an out-of-sequence 10xxxxxxx byte. * Rather than making an ugly hash of this and the next byte * and overrunning the buffer, it's more useful to treat it * with a replacement character */ result[i] = 0xfffd; continue; } do { wc <<= 6; wc |= (guchar) (*p++) & 0x3f; mask <<= 5; } while ((wc & mask) != 0); wc &= mask - 1; result[i] = wc; } } result[i] = 0; if (items_written) *items_written = i; return result; } /* * g_ucs4_to_utf8: * @str: a UCS-4 encoded string * @len: the maximum length (number of characters) of @str to use. * If @len < 0, then the string is nul-terminated. * @items_read: location to store number of characters read, or %NULL. * @items_written: location to store number of bytes written or %NULL. * The value here stored does not include the trailing 0 * byte. * @error: location to store the error occurring, or %NULL to ignore * errors. Any of the errors in #GConvertError other than * %G_CONVERT_ERROR_NO_CONVERSION may occur. * * Convert a string from a 32-bit fixed width representation as UCS-4. * to UTF-8. The result will be terminated with a 0 byte. * * Return value: a pointer to a newly allocated UTF-8 string. * This value must be freed with g_free(). If an * error occurs, %NULL will be returned and * @error set. In that case, @items_read will be * set to the position of the first invalid input * character. **/ static gchar * g_ucs4_to_utf8 (const gunichar * str, glong len, glong * items_read, glong * items_written) { gint result_length; gchar *result = NULL; gchar *p; gint i; result_length = 0; for (i = 0; len < 0 || i < len; i++) { if (!str[i]) break; if (str[i] >= 0x80000000) goto err_out; result_length += UTF8_LENGTH (str[i]); } result = g_malloc (result_length + 1); if (!result) return NULL; p = result; i = 0; while (p < result + result_length) p += g_unichar_to_utf8 (str[i++], p); *p = '\0'; if (items_written) *items_written = p - result; err_out: if (items_read) *items_read = i; return result; } /* Code from GLIB gunidecomp.c starts here. */ /* decomp.c - Character decomposition. * * Copyright (C) 1999, 2000 Tom Tromey * Copyright 2000 Red Hat, Inc. * * The Gnome Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The Gnome Library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include "gunidecomp.h" #include "gunicomp.h" #define CC_PART1(Page, Char) \ ((combining_class_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ ? (combining_class_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \ : (cclass_data[combining_class_table_part1[Page]][Char])) #define CC_PART2(Page, Char) \ ((combining_class_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ ? (combining_class_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \ : (cclass_data[combining_class_table_part2[Page]][Char])) #define COMBINING_CLASS(Char) \ (((Char) <= G_UNICODE_LAST_CHAR_PART1) \ ? CC_PART1 ((Char) >> 8, (Char) & 0xff) \ : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \ ? CC_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \ : 0)) /* constants for hangul syllable [de]composition */ #define SBase 0xAC00 #define LBase 0x1100 #define VBase 0x1161 #define TBase 0x11A7 #define LCount 19 #define VCount 21 #define TCount 28 #define NCount (VCount * TCount) #define SCount (LCount * NCount) /* * g_unicode_canonical_ordering: * @string: a UCS-4 encoded string. * @len: the maximum length of @string to use. * * Computes the canonical ordering of a string in-place. * This rearranges decomposed characters in the string * according to their combining classes. See the Unicode * manual for more information. **/ static void g_unicode_canonical_ordering (gunichar * string, gsize len) { gsize i; int swap = 1; while (swap) { int last; swap = 0; last = COMBINING_CLASS (string[0]); for (i = 0; i < len - 1; ++i) { int next = COMBINING_CLASS (string[i + 1]); if (next != 0 && last > next) { gsize j; /* Percolate item leftward through string. */ for (j = i + 1; j > 0; --j) { gunichar t; if (COMBINING_CLASS (string[j - 1]) <= next) break; t = string[j]; string[j] = string[j - 1]; string[j - 1] = t; swap = 1; } /* We're re-entering the loop looking at the old character again. */ next = last; } last = next; } } } /* http://www.unicode.org/unicode/reports/tr15/#Hangul * r should be null or have sufficient space. Calling with r == NULL will * only calculate the result_len; however, a buffer with space for three * characters will always be big enough. */ static void decompose_hangul (gunichar s, gunichar * r, gsize * result_len) { gint SIndex = s - SBase; gint TIndex = SIndex % TCount; if (r) { r[0] = LBase + SIndex / NCount; r[1] = VBase + (SIndex % NCount) / TCount; } if (TIndex) { if (r) r[2] = TBase + TIndex; *result_len = 3; } else *result_len = 2; } /* returns a pointer to a null-terminated UTF-8 string */ static const gchar * find_decomposition (gunichar ch, gboolean compat) { int start = 0; int end = G_N_ELEMENTS (decomp_table); if (ch >= decomp_table[start].ch && ch <= decomp_table[end - 1].ch) { while (TRUE) { int half = (start + end) / 2; if (ch == decomp_table[half].ch) { int offset; if (compat) { offset = decomp_table[half].compat_offset; if (offset == G_UNICODE_NOT_PRESENT_OFFSET) offset = decomp_table[half].canon_offset; } else { offset = decomp_table[half].canon_offset; if (offset == G_UNICODE_NOT_PRESENT_OFFSET) return NULL; } return &(decomp_expansion_string[offset]); } else if (half == start) break; else if (ch > decomp_table[half].ch) start = half; else end = half; } } return NULL; } /* L,V => LV and LV,T => LVT */ static gboolean combine_hangul (gunichar a, gunichar b, gunichar * result) { if (a >= LBase && a < LCount + LBase && b >= VBase && b < VCount + VBase) { gint LIndex = a - LBase; gint VIndex = b - VBase; *result = SBase + (LIndex * VCount + VIndex) * TCount; return TRUE; } if (a >= SBase && a < SCount + SBase && b > TBase && b < TCount + TBase) { gint SIndex = a - SBase; if ((SIndex % TCount) == 0) { gint TIndex = b - TBase; *result = a + TIndex; return TRUE; } } return FALSE; } #define CI(Page, Char) \ ((compose_table[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ ? (compose_table[Page] - G_UNICODE_MAX_TABLE_INDEX) \ : (compose_data[compose_table[Page]][Char])) #define COMPOSE_INDEX(Char) \ (((Char >> 8) > (COMPOSE_TABLE_LAST)) ? 0 : CI((Char) >> 8, (Char) & 0xff)) static gboolean combine (gunichar a, gunichar b, gunichar * result) { gushort index_a, index_b; if (combine_hangul (a, b, result)) return TRUE; index_a = COMPOSE_INDEX (a); if (index_a >= COMPOSE_FIRST_SINGLE_START && index_a < COMPOSE_SECOND_START) { if (b == compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][0]) { *result = compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][1]; return TRUE; } else return FALSE; } index_b = COMPOSE_INDEX (b); if (index_b >= COMPOSE_SECOND_SINGLE_START) { if (a == compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0]) { *result = compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][1]; return TRUE; } else return FALSE; } if (index_a >= COMPOSE_FIRST_START && index_a < COMPOSE_FIRST_SINGLE_START && index_b >= COMPOSE_SECOND_START && index_b < COMPOSE_SECOND_SINGLE_START) { gunichar res = compose_array[index_a - COMPOSE_FIRST_START][index_b - COMPOSE_SECOND_START]; if (res) { *result = res; return TRUE; } } return FALSE; } static gunichar * _g_utf8_normalize_wc (const gchar * str, gssize max_len, GNormalizeMode mode) { gsize n_wc; gunichar *wc_buffer; const char *p; gsize last_start; gboolean do_compat = (mode == G_NORMALIZE_NFKC || mode == G_NORMALIZE_NFKD); gboolean do_compose = (mode == G_NORMALIZE_NFC || mode == G_NORMALIZE_NFKC); n_wc = 0; p = str; while ((max_len < 0 || p < str + max_len) && *p) { const gchar *decomp; gunichar wc = g_utf8_get_char (p); if (wc >= SBase && wc < SBase + SCount) { gsize result_len; decompose_hangul (wc, NULL, &result_len); n_wc += result_len; } else { decomp = find_decomposition (wc, do_compat); if (decomp) n_wc += g_utf8_strlen (decomp); else n_wc++; } p = g_utf8_next_char (p); } wc_buffer = g_malloc (sizeof (gunichar) * (n_wc + 1)); if (!wc_buffer) return NULL; last_start = 0; n_wc = 0; p = str; while ((max_len < 0 || p < str + max_len) && *p) { gunichar wc = g_utf8_get_char (p); const gchar *decomp; int cc; gsize old_n_wc = n_wc; if (wc >= SBase && wc < SBase + SCount) { gsize result_len; decompose_hangul (wc, wc_buffer + n_wc, &result_len); n_wc += result_len; } else { decomp = find_decomposition (wc, do_compat); if (decomp) { const char *pd; for (pd = decomp; *pd != '\0'; pd = g_utf8_next_char (pd)) wc_buffer[n_wc++] = g_utf8_get_char (pd); } else wc_buffer[n_wc++] = wc; } if (n_wc > 0) { cc = COMBINING_CLASS (wc_buffer[old_n_wc]); if (cc == 0) { g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); last_start = old_n_wc; } } p = g_utf8_next_char (p); } if (n_wc > 0) { g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); /* dead assignment: last_start = n_wc; */ } wc_buffer[n_wc] = 0; /* All decomposed and reordered */ if (do_compose && n_wc > 0) { gsize i, j; int last_cc = 0; last_start = 0; for (i = 0; i < n_wc; i++) { int cc = COMBINING_CLASS (wc_buffer[i]); if (i > 0 && (last_cc == 0 || last_cc != cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { for (j = i + 1; j < n_wc; j++) wc_buffer[j - 1] = wc_buffer[j]; n_wc--; i--; if (i == last_start) last_cc = 0; else last_cc = COMBINING_CLASS (wc_buffer[i - 1]); continue; } if (cc == 0) last_start = i; last_cc = cc; } } wc_buffer[n_wc] = 0; return wc_buffer; } /* * g_utf8_normalize: * @str: a UTF-8 encoded string. * @len: length of @str, in bytes, or -1 if @str is nul-terminated. * @mode: the type of normalization to perform. * * Converts a string into canonical form, standardizing * such issues as whether a character with an accent * is represented as a base character and combining * accent or as a single precomposed character. The * string has to be valid UTF-8, otherwise %NULL is * returned. You should generally call g_utf8_normalize() * before comparing two Unicode strings. * * The normalization mode %G_NORMALIZE_DEFAULT only * standardizes differences that do not affect the * text content, such as the above-mentioned accent * representation. %G_NORMALIZE_ALL also standardizes * the "compatibility" characters in Unicode, such * as SUPERSCRIPT THREE to the standard forms * (in this case DIGIT THREE). Formatting information * may be lost but for most text operations such * characters should be considered the same. * * %G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE * are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL, * but returned a result with composed forms rather * than a maximally decomposed form. This is often * useful if you intend to convert the string to * a legacy encoding or pass it to a system with * less capable Unicode handling. * * Return value: a newly allocated string, that is the * normalized form of @str, or %NULL if @str is not * valid UTF-8. **/ static gchar * g_utf8_normalize (const gchar * str, gssize len, GNormalizeMode mode) { gunichar *result_wc = _g_utf8_normalize_wc (str, len, mode); gchar *result = NULL; if (result_wc) result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL); g_free (result_wc); return result; } /* Public Libidn API starts here. */ /** * stringprep_utf8_to_unichar: * @p: a pointer to Unicode character encoded as UTF-8 * * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. * If @p does not point to a valid UTF-8 encoded character, results are * undefined. * * Return value: the resulting character. **/ uint32_t stringprep_utf8_to_unichar (const char *p) { return g_utf8_get_char (p); } /** * stringprep_unichar_to_utf8: * @c: a ISO10646 character code * @outbuf: output buffer, must have at least 6 bytes of space. * If %NULL, the length will be computed and returned * and nothing will be written to @outbuf. * * Converts a single character to UTF-8. * * Return value: number of bytes written. **/ int stringprep_unichar_to_utf8 (uint32_t c, char *outbuf) { return g_unichar_to_utf8 (c, outbuf); } #include /** * stringprep_utf8_to_ucs4: * @str: a UTF-8 encoded string * @len: the maximum length of @str to use. If @len < 0, then * the string is nul-terminated. * @items_written: location to store the number of characters in the * result, or %NULL. * * Convert a string from UTF-8 to a 32-bit fixed width representation * as UCS-4. The function now performs error checking to verify that * the input is valid UTF-8 (before it was documented to not do error * checking). * * Return value: a pointer to a newly allocated UCS-4 string. * This value must be deallocated by the caller. **/ uint32_t * stringprep_utf8_to_ucs4 (const char *str, ssize_t len, size_t *items_written) { size_t n; if (len < 0) n = strlen (str); else n = len; if (u8_check ((const uint8_t *) str, n)) return NULL; return g_utf8_to_ucs4_fast (str, (glong) len, (glong *) items_written); } /** * stringprep_ucs4_to_utf8: * @str: a UCS-4 encoded string * @len: the maximum length of @str to use. If @len < 0, then * the string is terminated with a 0 character. * @items_read: location to store number of characters read read, or %NULL. * @items_written: location to store number of bytes written or %NULL. * The value here stored does not include the trailing 0 * byte. * * Convert a string from a 32-bit fixed width representation as UCS-4. * to UTF-8. The result will be terminated with a 0 byte. * * Return value: a pointer to a newly allocated UTF-8 string. * This value must be deallocated by the caller. * If an error occurs, %NULL will be returned. **/ char * stringprep_ucs4_to_utf8 (const uint32_t * str, ssize_t len, size_t *items_read, size_t *items_written) { return g_ucs4_to_utf8 (str, len, (glong *) items_read, (glong *) items_written); } /** * stringprep_utf8_nfkc_normalize: * @str: a UTF-8 encoded string. * @len: length of @str, in bytes, or -1 if @str is nul-terminated. * * Converts a string into canonical form, standardizing * such issues as whether a character with an accent * is represented as a base character and combining * accent or as a single precomposed character. * * The normalization mode is NFKC (ALL COMPOSE). It standardizes * differences that do not affect the text content, such as the * above-mentioned accent representation. It standardizes the * "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to * the standard forms (in this case DIGIT THREE). Formatting * information may be lost but for most text operations such * characters should be considered the same. It returns a result with * composed forms rather than a maximally decomposed form. * * Return value: a newly allocated string, that is the * NFKC normalized form of @str. **/ char * stringprep_utf8_nfkc_normalize (const char *str, ssize_t len) { size_t n; if (len < 0) n = strlen (str); else n = len; if (u8_check ((const uint8_t *) str, n)) return NULL; return g_utf8_normalize (str, len, G_NORMALIZE_NFKC); } #include /** * stringprep_ucs4_nfkc_normalize: * @str: a Unicode string. * @len: length of @str array, or -1 if @str is nul-terminated. * * Converts a UCS4 string into canonical form, see * stringprep_utf8_nfkc_normalize() for more information. * * Return value: a newly allocated Unicode string, that is the NFKC * normalized form of @str. **/ uint32_t * stringprep_ucs4_nfkc_normalize (const uint32_t * str, ssize_t len) { char *p; uint32_t *result_wc; p = stringprep_ucs4_to_utf8 (str, len, 0, 0); if (!p) return NULL; result_wc = _g_utf8_normalize_wc (p, -1, G_NORMALIZE_NFKC); free (p); return result_wc; } libidn-1.38/lib/idn-free.h0000644000000000000000000000507214076271517012223 00000000000000/* idn-free.h --- Invoke the free function to release memory Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef IDN_FREE_H # define IDN_FREE_H /** * SECTION:idn-free * @title: idn-free.h * @short_description: Memory deallocation functions * * Memory deallocation functions. */ # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /* I don't recommend using this interface in general. Use `free'. * * I'm told Microsoft Windows may use one set of `malloc' and `free' * in a library, and another incompatible set in a statically compiled * application that link to the library, thus creating problems if the * application would invoke `free' on a pointer pointing to memory * allocated by the library. This motivated adding this function. * * The theory of isolating all memory allocations and de-allocations * within a code package (library) sounds good, to simplify hunting * down memory allocation related problems, but I'm not sure if it is * worth enough to motivate recommending this interface over calling * `free' directly, though. * * See the manual section 'Memory handling under Windows' for more * information. */ extern void IDNAPI idn_free (void *ptr); # ifdef __cplusplus } # endif #endif /* IDN_FREE_H */ libidn-1.38/lib/gunidecomp.h0000644000000000000000000161774014053001337012662 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-unicode-tables.pl and re-run. Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ #ifndef DECOMP_H #define DECOMP_H #define G_UNICODE_LAST_CHAR 0x10ffff #define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256) #define G_UNICODE_LAST_CHAR_PART1 0x2FAFF #define G_UNICODE_LAST_PAGE_PART1 762 #define G_UNICODE_NOT_PRESENT_OFFSET 65535 static const guchar cclass_data[][256] = { { /* page 3, index 0 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 4, index 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 5, index 2 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 6, index 3 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 7, index 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 9, index 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 10, index 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 11, index 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 12, index 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 13, index 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 14, index 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 15, index 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 16, index 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 23, index 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 24, index 14 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 32, index 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 48, index 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 251, index 17 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 254, index 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 465, index 19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, 216, 216, 216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, 220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; static const gint16 combining_class_table_part1[763] = { 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 /* page 3 */, 1 /* page 4 */, 2 /* page 5 */, 3 /* page 6 */, 4 /* page 7 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 5 /* page 9 */, 6 /* page 10 */, 7 /* page 11 */, 8 /* page 12 */, 9 /* page 13 */, 10 /* page 14 */, 11 /* page 15 */, 12 /* page 16 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 13 /* page 23 */, 14 /* page 24 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 15 /* page 32 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 16 /* page 48 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 17 /* page 251 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 18 /* page 254 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 19 /* page 465 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX }; static const gint16 combining_class_table_part2[768] = { 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX }; typedef struct { gunichar ch; guint16 canon_offset; guint16 compat_offset; } decomposition; static const decomposition decomp_table[] = { { 0x00a0, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x00a8, G_UNICODE_NOT_PRESENT_OFFSET, 2 }, { 0x00aa, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x00af, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, { 0x00b2, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x00b3, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x00b4, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, { 0x00b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x00b8, G_UNICODE_NOT_PRESENT_OFFSET, 23 }, { 0x00b9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x00ba, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x00bc, G_UNICODE_NOT_PRESENT_OFFSET, 31 }, { 0x00bd, G_UNICODE_NOT_PRESENT_OFFSET, 37 }, { 0x00be, G_UNICODE_NOT_PRESENT_OFFSET, 43 }, { 0x00c0, 49, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c1, 53, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c2, 57, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c3, 61, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c4, 65, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c5, 69, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c7, 73, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c8, 77, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c9, 81, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ca, 85, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cb, 89, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cc, 93, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cd, 97, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ce, 101, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cf, 105, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d1, 109, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d2, 113, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d3, 117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d4, 121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d5, 125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d6, 129, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d9, 133, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00da, 137, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00db, 141, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00dc, 145, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00dd, 149, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e0, 153, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e1, 157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e2, 161, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e3, 165, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e4, 169, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e5, 173, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e7, 177, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e8, 181, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e9, 185, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ea, 189, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00eb, 193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ec, 197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ed, 201, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ee, 205, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ef, 209, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f1, 213, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f2, 217, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f3, 221, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f4, 225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f5, 229, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f6, 233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f9, 237, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fa, 241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fb, 245, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fc, 249, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fd, 253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ff, 257, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0100, 261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0101, 265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0102, 269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0103, 273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0104, 277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0105, 281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0106, 285, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0107, 289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0108, 293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0109, 297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010a, 301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010b, 305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010c, 309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010d, 313, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010e, 317, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010f, 321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0112, 325, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0113, 329, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0114, 333, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0115, 337, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0116, 341, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0117, 345, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0118, 349, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0119, 353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011a, 357, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011b, 361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011c, 365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011d, 369, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011e, 373, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011f, 377, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0120, 381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0121, 385, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0122, 389, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0123, 393, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0124, 397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0125, 401, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0128, 405, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0129, 409, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012a, 413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012b, 417, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012c, 421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012d, 425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012e, 429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012f, 433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0130, 437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0132, G_UNICODE_NOT_PRESENT_OFFSET, 441 }, { 0x0133, G_UNICODE_NOT_PRESENT_OFFSET, 444 }, { 0x0134, 447, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0135, 451, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0136, 455, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0137, 459, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0139, 463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013a, 467, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013b, 471, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013c, 475, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013d, 479, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013e, 483, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013f, G_UNICODE_NOT_PRESENT_OFFSET, 487 }, { 0x0140, G_UNICODE_NOT_PRESENT_OFFSET, 491 }, { 0x0143, 495, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0144, 499, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0145, 503, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0146, 507, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0147, 511, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0148, 515, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0149, G_UNICODE_NOT_PRESENT_OFFSET, 519 }, { 0x014c, 523, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x014d, 527, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x014e, 531, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x014f, 535, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0150, 539, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0151, 543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0154, 547, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0155, 551, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0156, 555, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0157, 559, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0158, 563, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0159, 567, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015a, 571, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015b, 575, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015c, 579, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015d, 583, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015e, 587, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015f, 591, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0160, 595, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0161, 599, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0162, 603, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0163, 607, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0164, 611, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0165, 615, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0168, 619, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0169, 623, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016a, 627, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016b, 631, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016c, 635, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016d, 639, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016e, 643, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016f, 647, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0170, 651, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0171, 655, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0172, 659, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0173, 663, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0174, 667, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0175, 671, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0176, 675, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0177, 679, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0178, 683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0179, 687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017a, 691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017b, 695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017c, 699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017d, 703, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017e, 707, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017f, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x01a0, 713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01a1, 717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01af, 721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01b0, 725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01c4, G_UNICODE_NOT_PRESENT_OFFSET, 729 }, { 0x01c5, G_UNICODE_NOT_PRESENT_OFFSET, 734 }, { 0x01c6, G_UNICODE_NOT_PRESENT_OFFSET, 739 }, { 0x01c7, G_UNICODE_NOT_PRESENT_OFFSET, 744 }, { 0x01c8, G_UNICODE_NOT_PRESENT_OFFSET, 747 }, { 0x01c9, G_UNICODE_NOT_PRESENT_OFFSET, 750 }, { 0x01ca, G_UNICODE_NOT_PRESENT_OFFSET, 753 }, { 0x01cb, G_UNICODE_NOT_PRESENT_OFFSET, 756 }, { 0x01cc, G_UNICODE_NOT_PRESENT_OFFSET, 759 }, { 0x01cd, 762, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ce, 766, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01cf, 770, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d0, 774, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d1, 778, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d2, 782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d3, 786, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d4, 790, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d5, 794, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d6, 800, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d7, 806, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d8, 812, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d9, 818, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01da, 824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01db, 830, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01dc, 836, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01de, 842, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01df, 848, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e0, 854, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e1, 860, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e2, 866, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e3, 871, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e6, 876, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e7, 880, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e8, 884, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e9, 888, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ea, 892, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01eb, 896, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ec, 900, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ed, 906, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ee, 912, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ef, 917, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f0, 922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f1, G_UNICODE_NOT_PRESENT_OFFSET, 926 }, { 0x01f2, G_UNICODE_NOT_PRESENT_OFFSET, 929 }, { 0x01f3, G_UNICODE_NOT_PRESENT_OFFSET, 932 }, { 0x01f4, 935, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f5, 939, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f8, 943, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f9, 947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fa, 951, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fb, 957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fc, 963, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fd, 968, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fe, 973, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ff, 978, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0200, 983, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0201, 987, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0202, 991, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0203, 995, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0204, 999, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0205, 1003, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0206, 1007, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0207, 1011, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0208, 1015, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0209, 1019, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020a, 1023, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020b, 1027, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020c, 1031, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020d, 1035, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020e, 1039, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020f, 1043, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0210, 1047, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0211, 1051, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0212, 1055, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0213, 1059, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0214, 1063, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0215, 1067, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0216, 1071, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0217, 1075, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0218, 1079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0219, 1083, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021a, 1087, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021b, 1091, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021e, 1095, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021f, 1099, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0226, 1103, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0227, 1107, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0228, 1111, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0229, 1115, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022a, 1119, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022b, 1125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022c, 1131, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022d, 1137, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022e, 1143, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022f, 1147, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0230, 1151, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0231, 1157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0232, 1163, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0233, 1167, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x02b0, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x02b1, G_UNICODE_NOT_PRESENT_OFFSET, 1173 }, { 0x02b2, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x02b3, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x02b4, G_UNICODE_NOT_PRESENT_OFFSET, 1180 }, { 0x02b5, G_UNICODE_NOT_PRESENT_OFFSET, 1183 }, { 0x02b6, G_UNICODE_NOT_PRESENT_OFFSET, 1186 }, { 0x02b7, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x02b8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x02d8, G_UNICODE_NOT_PRESENT_OFFSET, 1193 }, { 0x02d9, G_UNICODE_NOT_PRESENT_OFFSET, 1197 }, { 0x02da, G_UNICODE_NOT_PRESENT_OFFSET, 1201 }, { 0x02db, G_UNICODE_NOT_PRESENT_OFFSET, 1205 }, { 0x02dc, G_UNICODE_NOT_PRESENT_OFFSET, 1209 }, { 0x02dd, G_UNICODE_NOT_PRESENT_OFFSET, 1213 }, { 0x02e0, G_UNICODE_NOT_PRESENT_OFFSET, 1217 }, { 0x02e1, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x02e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x02e3, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x02e4, G_UNICODE_NOT_PRESENT_OFFSET, 1224 }, { 0x0340, 1227, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0341, 1230, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0343, 1233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0344, 1236, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0374, 1241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x037a, G_UNICODE_NOT_PRESENT_OFFSET, 1244 }, { 0x037e, 1248, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0384, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, { 0x0385, 1250, 1255 }, { 0x0386, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0387, 1266, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0388, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0389, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038a, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038c, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038e, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038f, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0390, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03aa, 1306, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ab, 1311, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ac, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ad, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ae, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03af, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03b0, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ca, 1343, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03cb, 1348, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03cc, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03cd, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ce, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03d0, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x03d1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x03d2, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x03d3, 1377, 1289 }, { 0x03d4, 1382, 1311 }, { 0x03d5, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x03d6, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x03f0, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x03f1, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x03f2, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x03f4, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x03f5, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x0400, 1408, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0401, 1413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0403, 1418, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0407, 1423, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x040c, 1428, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x040d, 1433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x040e, 1438, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0419, 1443, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0439, 1448, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0450, 1453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0451, 1458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0453, 1463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0457, 1468, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x045c, 1473, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x045d, 1478, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x045e, 1483, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0476, 1488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0477, 1493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04c1, 1498, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04c2, 1503, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d0, 1508, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d1, 1513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d2, 1518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d3, 1523, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d6, 1528, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d7, 1533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04da, 1538, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04db, 1543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04dc, 1548, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04dd, 1553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04de, 1558, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04df, 1563, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e2, 1568, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e3, 1573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e4, 1578, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e5, 1583, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e6, 1588, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e7, 1593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ea, 1598, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04eb, 1603, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ec, 1608, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ed, 1613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ee, 1618, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ef, 1623, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f0, 1628, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f1, 1633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f2, 1638, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f3, 1643, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f4, 1648, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f5, 1653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f8, 1658, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f9, 1663, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0587, G_UNICODE_NOT_PRESENT_OFFSET, 1668 }, { 0x0622, 1673, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0623, 1678, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0624, 1683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0625, 1688, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0626, 1693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0675, G_UNICODE_NOT_PRESENT_OFFSET, 1698 }, { 0x0676, G_UNICODE_NOT_PRESENT_OFFSET, 1703 }, { 0x0677, G_UNICODE_NOT_PRESENT_OFFSET, 1708 }, { 0x0678, G_UNICODE_NOT_PRESENT_OFFSET, 1713 }, { 0x06c0, 1718, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x06c2, 1723, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x06d3, 1728, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0929, 1733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0931, 1740, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0934, 1747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0958, 1754, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0959, 1761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095a, 1768, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095b, 1775, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095c, 1782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095d, 1789, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095e, 1796, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095f, 1803, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09cb, 1810, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09cc, 1817, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09dc, 1824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09dd, 1831, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09df, 1838, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a33, 1845, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a36, 1852, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a59, 1859, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a5a, 1866, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a5b, 1873, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a5e, 1880, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b48, 1887, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b4b, 1894, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b4c, 1901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b5c, 1908, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b5d, 1915, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b94, 1922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0bca, 1929, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0bcb, 1936, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0bcc, 1943, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0c48, 1950, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cc0, 1957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cc7, 1964, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cc8, 1971, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cca, 1978, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0ccb, 1985, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0d4a, 1995, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0d4b, 2002, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0d4c, 2009, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0dda, 2016, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0ddc, 2023, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0ddd, 2030, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0dde, 2040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0e33, G_UNICODE_NOT_PRESENT_OFFSET, 2047 }, { 0x0eb3, G_UNICODE_NOT_PRESENT_OFFSET, 2054 }, { 0x0edc, G_UNICODE_NOT_PRESENT_OFFSET, 2061 }, { 0x0edd, G_UNICODE_NOT_PRESENT_OFFSET, 2068 }, { 0x0f0c, G_UNICODE_NOT_PRESENT_OFFSET, 2075 }, { 0x0f43, 2079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f4d, 2086, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f52, 2093, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f57, 2100, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f5c, 2107, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f69, 2114, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f73, 2121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f75, 2128, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f76, 2135, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f77, G_UNICODE_NOT_PRESENT_OFFSET, 2142 }, { 0x0f78, 2152, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f79, G_UNICODE_NOT_PRESENT_OFFSET, 2159 }, { 0x0f81, 2169, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f93, 2176, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f9d, 2183, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fa2, 2190, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fa7, 2197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fac, 2204, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fb9, 2211, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1026, 2218, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e00, 2225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e01, 2229, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e02, 2233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e03, 2237, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e04, 2241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e05, 2245, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e06, 2249, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e07, 2253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e08, 2257, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e09, 2263, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0a, 2269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0b, 2273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0c, 2277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0d, 2281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0e, 2285, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0f, 2289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e10, 2293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e11, 2297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e12, 2301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e13, 2305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e14, 2309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e15, 2315, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e16, 2321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e17, 2327, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e18, 2333, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e19, 2337, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1a, 2341, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1b, 2345, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1c, 2349, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1d, 2355, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1e, 2361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1f, 2365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e20, 2369, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e21, 2373, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e22, 2377, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e23, 2381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e24, 2385, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e25, 2389, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e26, 2393, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e27, 2397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e28, 2401, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e29, 2405, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2a, 2409, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2b, 2413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2c, 2417, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2d, 2421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2e, 2425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2f, 2431, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e30, 2437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e31, 2441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e32, 2445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e33, 2449, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e34, 2453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e35, 2457, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e36, 2461, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e37, 2465, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e38, 2469, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e39, 2475, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3a, 2481, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3b, 2485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3c, 2489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3d, 2493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3e, 2497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3f, 2501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e40, 2505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e41, 2509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e42, 2513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e43, 2517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e44, 2521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e45, 2525, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e46, 2529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e47, 2533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e48, 2537, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e49, 2541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4a, 2545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4b, 2549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4c, 2553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4d, 2559, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4e, 2565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4f, 2571, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e50, 2577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e51, 2583, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e52, 2589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e53, 2595, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e54, 2601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e55, 2605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e56, 2609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e57, 2613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e58, 2617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e59, 2621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5a, 2625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5b, 2629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5c, 2633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5d, 2639, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5e, 2645, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5f, 2649, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e60, 2653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e61, 2657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e62, 2661, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e63, 2665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e64, 2669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e65, 2675, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e66, 2681, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e67, 2687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e68, 2693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e69, 2699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6a, 2705, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6b, 2709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6c, 2713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6d, 2717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6e, 2721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6f, 2725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e70, 2729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e71, 2733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e72, 2737, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e73, 2741, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e74, 2745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e75, 2749, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e76, 2753, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e77, 2757, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e78, 2761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e79, 2767, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7a, 2773, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7b, 2779, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7c, 2785, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7d, 2789, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7e, 2793, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7f, 2797, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e80, 2801, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e81, 2805, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e82, 2809, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e83, 2813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e84, 2817, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e85, 2821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e86, 2825, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e87, 2829, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e88, 2833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e89, 2837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8a, 2841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8b, 2845, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8c, 2849, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8d, 2853, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8e, 2857, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8f, 2861, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e90, 2865, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e91, 2869, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e92, 2873, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e93, 2877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e94, 2881, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e95, 2885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e96, 2889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e97, 2893, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e98, 2897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e99, 2901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e9a, G_UNICODE_NOT_PRESENT_OFFSET, 2905 }, { 0x1e9b, 2909, 2657 }, { 0x1ea0, 2914, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea1, 2918, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea2, 2922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea3, 2926, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea4, 2930, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea5, 2936, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea6, 2942, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea7, 2948, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea8, 2954, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea9, 2960, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eaa, 2966, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eab, 2972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eac, 2978, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ead, 2984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eae, 2990, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eaf, 2996, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb0, 3002, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb1, 3008, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb2, 3014, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb3, 3020, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb4, 3026, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb5, 3032, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb6, 3038, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb7, 3044, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb8, 3050, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb9, 3054, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eba, 3058, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebb, 3062, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebc, 3066, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebd, 3070, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebe, 3074, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebf, 3080, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec0, 3086, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec1, 3092, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec2, 3098, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec3, 3104, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec4, 3110, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec5, 3116, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec6, 3122, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec7, 3128, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec8, 3134, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec9, 3138, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eca, 3142, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecb, 3146, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecc, 3150, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecd, 3154, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ece, 3158, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecf, 3162, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed0, 3166, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed1, 3172, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed2, 3178, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed3, 3184, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed4, 3190, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed5, 3196, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed6, 3202, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed7, 3208, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed8, 3214, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed9, 3220, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eda, 3226, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edb, 3232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edc, 3238, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edd, 3244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ede, 3250, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edf, 3256, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee0, 3262, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee1, 3268, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee2, 3274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee3, 3280, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee4, 3286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee5, 3290, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee6, 3294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee7, 3298, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee8, 3302, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee9, 3308, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eea, 3314, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eeb, 3320, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eec, 3326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eed, 3332, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eee, 3338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eef, 3344, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef0, 3350, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef1, 3356, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef2, 3362, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef3, 3366, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef4, 3370, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef5, 3374, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef6, 3378, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef7, 3382, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef8, 3386, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef9, 3390, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f00, 3394, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f01, 3399, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f02, 3404, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f03, 3411, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f04, 3418, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f05, 3425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f06, 3432, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f07, 3439, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f08, 3446, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f09, 3451, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0a, 3456, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0b, 3463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0c, 3470, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0d, 3477, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0e, 3484, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0f, 3491, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f10, 3498, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f11, 3503, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f12, 3508, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f13, 3515, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f14, 3522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f15, 3529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f18, 3536, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f19, 3541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1a, 3546, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1b, 3553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1c, 3560, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1d, 3567, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f20, 3574, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f21, 3579, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f22, 3584, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f23, 3591, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f24, 3598, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f25, 3605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f26, 3612, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f27, 3619, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f28, 3626, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f29, 3631, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2a, 3636, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2b, 3643, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2c, 3650, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2d, 3657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2e, 3664, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2f, 3671, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f30, 3678, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f31, 3683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f32, 3688, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f33, 3695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f34, 3702, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f35, 3709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f36, 3716, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f37, 3723, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f38, 3730, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f39, 3735, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3a, 3740, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3b, 3747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3c, 3754, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3d, 3761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3e, 3768, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3f, 3775, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f40, 3782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f41, 3787, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f42, 3792, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f43, 3799, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f44, 3806, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f45, 3813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f48, 3820, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f49, 3825, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4a, 3830, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4b, 3837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4c, 3844, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4d, 3851, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f50, 3858, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f51, 3863, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f52, 3868, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f53, 3875, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f54, 3882, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f55, 3889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f56, 3896, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f57, 3903, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f59, 3910, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f5b, 3915, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f5d, 3922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f5f, 3929, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f60, 3936, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f61, 3941, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f62, 3946, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f63, 3953, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f64, 3960, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f65, 3967, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f66, 3974, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f67, 3981, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f68, 3988, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f69, 3993, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6a, 3998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6b, 4005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6c, 4012, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6d, 4019, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6e, 4026, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6f, 4033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f70, 4040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f71, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f72, 4045, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f73, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f74, 4050, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f75, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f76, 4055, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f77, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f78, 4060, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f79, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7a, 4065, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7b, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7c, 4070, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7d, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f80, 4075, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f81, 4082, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f82, 4089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f83, 4098, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f84, 4107, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f85, 4116, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f86, 4125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f87, 4134, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f88, 4143, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f89, 4150, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8a, 4157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8b, 4166, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8c, 4175, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8d, 4184, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8e, 4193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8f, 4202, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f90, 4211, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f91, 4218, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f92, 4225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f93, 4234, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f94, 4243, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f95, 4252, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f96, 4261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f97, 4270, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f98, 4279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f99, 4286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9a, 4293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9b, 4302, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9c, 4311, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9d, 4320, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9e, 4329, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9f, 4338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa0, 4347, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa1, 4354, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa2, 4361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa3, 4370, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa4, 4379, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa5, 4388, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa6, 4397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa7, 4406, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa8, 4415, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa9, 4422, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1faa, 4429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fab, 4438, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fac, 4447, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fad, 4456, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fae, 4465, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1faf, 4474, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb0, 4483, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb1, 4488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb2, 4493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb3, 4500, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb4, 4505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb6, 4512, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb7, 4517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb8, 4524, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb9, 4529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fba, 4534, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbb, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbc, 4539, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbd, G_UNICODE_NOT_PRESENT_OFFSET, 4544 }, { 0x1fbe, 4548, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbf, G_UNICODE_NOT_PRESENT_OFFSET, 4544 }, { 0x1fc0, G_UNICODE_NOT_PRESENT_OFFSET, 4551 }, { 0x1fc1, 4555, 4560 }, { 0x1fc2, 4566, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc3, 4573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc4, 4578, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc6, 4585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc7, 4590, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc8, 4597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc9, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fca, 4602, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fcb, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fcc, 4607, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fcd, 4612, 4618 }, { 0x1fce, 4624, 4630 }, { 0x1fcf, 4636, 4642 }, { 0x1fd0, 4648, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd1, 4653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd2, 4658, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd3, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd6, 4665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd7, 4670, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd8, 4677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd9, 4682, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fda, 4687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fdb, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fdd, 4692, 4698 }, { 0x1fde, 4704, 4710 }, { 0x1fdf, 4716, 4722 }, { 0x1fe0, 4728, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe1, 4733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe2, 4738, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe3, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe4, 4745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe5, 4750, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe6, 4755, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe7, 4760, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe8, 4767, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe9, 4772, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fea, 4777, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1feb, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fec, 4782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fed, 4787, 4792 }, { 0x1fee, 1250, 1255 }, { 0x1fef, 4798, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff2, 4800, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff3, 4807, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff4, 4812, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff6, 4819, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff7, 4824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff8, 4831, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff9, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffa, 4836, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffb, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffc, 4841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffd, 4846, 16 }, { 0x1ffe, G_UNICODE_NOT_PRESENT_OFFSET, 4849 }, { 0x2000, 4853, 0 }, { 0x2001, 4857, 0 }, { 0x2002, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2003, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2004, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2005, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2006, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2007, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2008, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2009, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x200a, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2011, G_UNICODE_NOT_PRESENT_OFFSET, 4861 }, { 0x2017, G_UNICODE_NOT_PRESENT_OFFSET, 4865 }, { 0x2024, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, { 0x2025, G_UNICODE_NOT_PRESENT_OFFSET, 4871 }, { 0x2026, G_UNICODE_NOT_PRESENT_OFFSET, 4874 }, { 0x202f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2033, G_UNICODE_NOT_PRESENT_OFFSET, 4878 }, { 0x2034, G_UNICODE_NOT_PRESENT_OFFSET, 4885 }, { 0x2036, G_UNICODE_NOT_PRESENT_OFFSET, 4895 }, { 0x2037, G_UNICODE_NOT_PRESENT_OFFSET, 4902 }, { 0x203c, G_UNICODE_NOT_PRESENT_OFFSET, 4912 }, { 0x203e, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0x2047, G_UNICODE_NOT_PRESENT_OFFSET, 4919 }, { 0x2048, G_UNICODE_NOT_PRESENT_OFFSET, 4922 }, { 0x2049, G_UNICODE_NOT_PRESENT_OFFSET, 4925 }, { 0x2057, G_UNICODE_NOT_PRESENT_OFFSET, 4928 }, { 0x205f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2070, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x2071, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x2074, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x2075, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x2076, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x2077, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x2078, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x2079, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x207a, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0x207b, G_UNICODE_NOT_PRESENT_OFFSET, 4959 }, { 0x207c, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0x207d, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0x207e, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0x207f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x2080, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x2081, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x2082, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x2083, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x2084, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x2085, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x2086, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x2087, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x2088, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x2089, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x208a, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0x208b, G_UNICODE_NOT_PRESENT_OFFSET, 4959 }, { 0x208c, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0x208d, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0x208e, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0x20a8, G_UNICODE_NOT_PRESENT_OFFSET, 4971 }, { 0x2100, G_UNICODE_NOT_PRESENT_OFFSET, 4974 }, { 0x2101, G_UNICODE_NOT_PRESENT_OFFSET, 4978 }, { 0x2102, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x2103, G_UNICODE_NOT_PRESENT_OFFSET, 4984 }, { 0x2105, G_UNICODE_NOT_PRESENT_OFFSET, 4988 }, { 0x2106, G_UNICODE_NOT_PRESENT_OFFSET, 4992 }, { 0x2107, G_UNICODE_NOT_PRESENT_OFFSET, 4996 }, { 0x2109, G_UNICODE_NOT_PRESENT_OFFSET, 4999 }, { 0x210a, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x210b, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x210c, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x210d, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x210e, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x210f, G_UNICODE_NOT_PRESENT_OFFSET, 5007 }, { 0x2110, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x2111, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x2112, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x2113, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x2115, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x2116, G_UNICODE_NOT_PRESENT_OFFSET, 5016 }, { 0x2119, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x211a, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x211b, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x211c, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x211d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x2120, G_UNICODE_NOT_PRESENT_OFFSET, 5025 }, { 0x2121, G_UNICODE_NOT_PRESENT_OFFSET, 5028 }, { 0x2122, G_UNICODE_NOT_PRESENT_OFFSET, 5032 }, { 0x2124, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x2126, 5037, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2128, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x212a, 5040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x212b, 69, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x212c, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x212d, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x212f, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x2130, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x2131, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x2133, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x2134, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x2135, G_UNICODE_NOT_PRESENT_OFFSET, 5052 }, { 0x2136, G_UNICODE_NOT_PRESENT_OFFSET, 5055 }, { 0x2137, G_UNICODE_NOT_PRESENT_OFFSET, 5058 }, { 0x2138, G_UNICODE_NOT_PRESENT_OFFSET, 5061 }, { 0x2139, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x213d, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x213e, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x213f, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x2140, G_UNICODE_NOT_PRESENT_OFFSET, 5073 }, { 0x2145, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x2146, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x2147, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x2148, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x2149, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x2153, G_UNICODE_NOT_PRESENT_OFFSET, 5081 }, { 0x2154, G_UNICODE_NOT_PRESENT_OFFSET, 5087 }, { 0x2155, G_UNICODE_NOT_PRESENT_OFFSET, 5093 }, { 0x2156, G_UNICODE_NOT_PRESENT_OFFSET, 5099 }, { 0x2157, G_UNICODE_NOT_PRESENT_OFFSET, 5105 }, { 0x2158, G_UNICODE_NOT_PRESENT_OFFSET, 5111 }, { 0x2159, G_UNICODE_NOT_PRESENT_OFFSET, 5117 }, { 0x215a, G_UNICODE_NOT_PRESENT_OFFSET, 5123 }, { 0x215b, G_UNICODE_NOT_PRESENT_OFFSET, 5129 }, { 0x215c, G_UNICODE_NOT_PRESENT_OFFSET, 5135 }, { 0x215d, G_UNICODE_NOT_PRESENT_OFFSET, 5141 }, { 0x215e, G_UNICODE_NOT_PRESENT_OFFSET, 5147 }, { 0x215f, G_UNICODE_NOT_PRESENT_OFFSET, 5153 }, { 0x2160, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x2161, G_UNICODE_NOT_PRESENT_OFFSET, 5158 }, { 0x2162, G_UNICODE_NOT_PRESENT_OFFSET, 5161 }, { 0x2163, G_UNICODE_NOT_PRESENT_OFFSET, 5165 }, { 0x2164, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x2165, G_UNICODE_NOT_PRESENT_OFFSET, 5170 }, { 0x2166, G_UNICODE_NOT_PRESENT_OFFSET, 5173 }, { 0x2167, G_UNICODE_NOT_PRESENT_OFFSET, 5177 }, { 0x2168, G_UNICODE_NOT_PRESENT_OFFSET, 5182 }, { 0x2169, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x216a, G_UNICODE_NOT_PRESENT_OFFSET, 5187 }, { 0x216b, G_UNICODE_NOT_PRESENT_OFFSET, 5190 }, { 0x216c, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x216d, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x216e, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x216f, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x2170, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x2171, G_UNICODE_NOT_PRESENT_OFFSET, 5194 }, { 0x2172, G_UNICODE_NOT_PRESENT_OFFSET, 5197 }, { 0x2173, G_UNICODE_NOT_PRESENT_OFFSET, 5201 }, { 0x2174, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x2175, G_UNICODE_NOT_PRESENT_OFFSET, 5206 }, { 0x2176, G_UNICODE_NOT_PRESENT_OFFSET, 5209 }, { 0x2177, G_UNICODE_NOT_PRESENT_OFFSET, 5213 }, { 0x2178, G_UNICODE_NOT_PRESENT_OFFSET, 5218 }, { 0x2179, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x217a, G_UNICODE_NOT_PRESENT_OFFSET, 5221 }, { 0x217b, G_UNICODE_NOT_PRESENT_OFFSET, 5224 }, { 0x217c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x217d, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x217e, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x217f, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x219a, 5232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x219b, 5238, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21ae, 5244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21cd, 5250, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21ce, 5256, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21cf, 5262, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2204, 5268, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2209, 5274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x220c, 5280, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2224, 5286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2226, 5292, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x222c, G_UNICODE_NOT_PRESENT_OFFSET, 5298 }, { 0x222d, G_UNICODE_NOT_PRESENT_OFFSET, 5305 }, { 0x222f, G_UNICODE_NOT_PRESENT_OFFSET, 5315 }, { 0x2230, G_UNICODE_NOT_PRESENT_OFFSET, 5322 }, { 0x2241, 5332, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2244, 5338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2247, 5344, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2249, 5350, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2260, 5356, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2262, 5360, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x226d, 5366, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x226e, 5372, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x226f, 5376, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2270, 5380, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2271, 5386, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2274, 5392, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2275, 5398, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2278, 5404, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2279, 5410, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2280, 5416, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2281, 5422, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2284, 5428, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2285, 5434, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2288, 5440, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2289, 5446, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ac, 5452, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ad, 5458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ae, 5464, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22af, 5470, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e0, 5476, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e1, 5482, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e2, 5488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e3, 5494, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ea, 5500, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22eb, 5506, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ec, 5512, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ed, 5518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2329, 5524, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x232a, 5528, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2460, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x2461, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x2462, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x2463, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x2464, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x2465, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x2466, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x2467, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x2468, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x2469, G_UNICODE_NOT_PRESENT_OFFSET, 5532 }, { 0x246a, G_UNICODE_NOT_PRESENT_OFFSET, 5535 }, { 0x246b, G_UNICODE_NOT_PRESENT_OFFSET, 5538 }, { 0x246c, G_UNICODE_NOT_PRESENT_OFFSET, 5541 }, { 0x246d, G_UNICODE_NOT_PRESENT_OFFSET, 5544 }, { 0x246e, G_UNICODE_NOT_PRESENT_OFFSET, 5547 }, { 0x246f, G_UNICODE_NOT_PRESENT_OFFSET, 5550 }, { 0x2470, G_UNICODE_NOT_PRESENT_OFFSET, 5553 }, { 0x2471, G_UNICODE_NOT_PRESENT_OFFSET, 5556 }, { 0x2472, G_UNICODE_NOT_PRESENT_OFFSET, 5559 }, { 0x2473, G_UNICODE_NOT_PRESENT_OFFSET, 5562 }, { 0x2474, G_UNICODE_NOT_PRESENT_OFFSET, 5565 }, { 0x2475, G_UNICODE_NOT_PRESENT_OFFSET, 5569 }, { 0x2476, G_UNICODE_NOT_PRESENT_OFFSET, 5573 }, { 0x2477, G_UNICODE_NOT_PRESENT_OFFSET, 5577 }, { 0x2478, G_UNICODE_NOT_PRESENT_OFFSET, 5581 }, { 0x2479, G_UNICODE_NOT_PRESENT_OFFSET, 5585 }, { 0x247a, G_UNICODE_NOT_PRESENT_OFFSET, 5589 }, { 0x247b, G_UNICODE_NOT_PRESENT_OFFSET, 5593 }, { 0x247c, G_UNICODE_NOT_PRESENT_OFFSET, 5597 }, { 0x247d, G_UNICODE_NOT_PRESENT_OFFSET, 5601 }, { 0x247e, G_UNICODE_NOT_PRESENT_OFFSET, 5606 }, { 0x247f, G_UNICODE_NOT_PRESENT_OFFSET, 5611 }, { 0x2480, G_UNICODE_NOT_PRESENT_OFFSET, 5616 }, { 0x2481, G_UNICODE_NOT_PRESENT_OFFSET, 5621 }, { 0x2482, G_UNICODE_NOT_PRESENT_OFFSET, 5626 }, { 0x2483, G_UNICODE_NOT_PRESENT_OFFSET, 5631 }, { 0x2484, G_UNICODE_NOT_PRESENT_OFFSET, 5636 }, { 0x2485, G_UNICODE_NOT_PRESENT_OFFSET, 5641 }, { 0x2486, G_UNICODE_NOT_PRESENT_OFFSET, 5646 }, { 0x2487, G_UNICODE_NOT_PRESENT_OFFSET, 5651 }, { 0x2488, G_UNICODE_NOT_PRESENT_OFFSET, 5656 }, { 0x2489, G_UNICODE_NOT_PRESENT_OFFSET, 5659 }, { 0x248a, G_UNICODE_NOT_PRESENT_OFFSET, 5662 }, { 0x248b, G_UNICODE_NOT_PRESENT_OFFSET, 5665 }, { 0x248c, G_UNICODE_NOT_PRESENT_OFFSET, 5668 }, { 0x248d, G_UNICODE_NOT_PRESENT_OFFSET, 5671 }, { 0x248e, G_UNICODE_NOT_PRESENT_OFFSET, 5674 }, { 0x248f, G_UNICODE_NOT_PRESENT_OFFSET, 5677 }, { 0x2490, G_UNICODE_NOT_PRESENT_OFFSET, 5680 }, { 0x2491, G_UNICODE_NOT_PRESENT_OFFSET, 5683 }, { 0x2492, G_UNICODE_NOT_PRESENT_OFFSET, 5687 }, { 0x2493, G_UNICODE_NOT_PRESENT_OFFSET, 5691 }, { 0x2494, G_UNICODE_NOT_PRESENT_OFFSET, 5695 }, { 0x2495, G_UNICODE_NOT_PRESENT_OFFSET, 5699 }, { 0x2496, G_UNICODE_NOT_PRESENT_OFFSET, 5703 }, { 0x2497, G_UNICODE_NOT_PRESENT_OFFSET, 5707 }, { 0x2498, G_UNICODE_NOT_PRESENT_OFFSET, 5711 }, { 0x2499, G_UNICODE_NOT_PRESENT_OFFSET, 5715 }, { 0x249a, G_UNICODE_NOT_PRESENT_OFFSET, 5719 }, { 0x249b, G_UNICODE_NOT_PRESENT_OFFSET, 5723 }, { 0x249c, G_UNICODE_NOT_PRESENT_OFFSET, 5727 }, { 0x249d, G_UNICODE_NOT_PRESENT_OFFSET, 5731 }, { 0x249e, G_UNICODE_NOT_PRESENT_OFFSET, 5735 }, { 0x249f, G_UNICODE_NOT_PRESENT_OFFSET, 5739 }, { 0x24a0, G_UNICODE_NOT_PRESENT_OFFSET, 5743 }, { 0x24a1, G_UNICODE_NOT_PRESENT_OFFSET, 5747 }, { 0x24a2, G_UNICODE_NOT_PRESENT_OFFSET, 5751 }, { 0x24a3, G_UNICODE_NOT_PRESENT_OFFSET, 5755 }, { 0x24a4, G_UNICODE_NOT_PRESENT_OFFSET, 5759 }, { 0x24a5, G_UNICODE_NOT_PRESENT_OFFSET, 5763 }, { 0x24a6, G_UNICODE_NOT_PRESENT_OFFSET, 5767 }, { 0x24a7, G_UNICODE_NOT_PRESENT_OFFSET, 5771 }, { 0x24a8, G_UNICODE_NOT_PRESENT_OFFSET, 5775 }, { 0x24a9, G_UNICODE_NOT_PRESENT_OFFSET, 5779 }, { 0x24aa, G_UNICODE_NOT_PRESENT_OFFSET, 5783 }, { 0x24ab, G_UNICODE_NOT_PRESENT_OFFSET, 5787 }, { 0x24ac, G_UNICODE_NOT_PRESENT_OFFSET, 5791 }, { 0x24ad, G_UNICODE_NOT_PRESENT_OFFSET, 5795 }, { 0x24ae, G_UNICODE_NOT_PRESENT_OFFSET, 5799 }, { 0x24af, G_UNICODE_NOT_PRESENT_OFFSET, 5803 }, { 0x24b0, G_UNICODE_NOT_PRESENT_OFFSET, 5807 }, { 0x24b1, G_UNICODE_NOT_PRESENT_OFFSET, 5811 }, { 0x24b2, G_UNICODE_NOT_PRESENT_OFFSET, 5815 }, { 0x24b3, G_UNICODE_NOT_PRESENT_OFFSET, 5819 }, { 0x24b4, G_UNICODE_NOT_PRESENT_OFFSET, 5823 }, { 0x24b5, G_UNICODE_NOT_PRESENT_OFFSET, 5827 }, { 0x24b6, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x24b7, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x24b8, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x24b9, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x24ba, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x24bb, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x24bc, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x24bd, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x24be, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x24bf, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x24c0, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x24c1, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x24c2, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x24c3, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x24c4, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x24c5, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x24c6, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x24c7, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x24c8, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x24c9, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x24ca, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x24cb, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x24cc, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x24cd, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x24ce, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x24cf, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x24d0, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x24d1, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x24d2, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x24d3, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x24d4, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x24d5, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x24d6, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x24d7, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x24d8, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x24d9, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x24da, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x24db, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x24dc, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x24dd, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x24de, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x24df, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x24e0, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x24e1, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x24e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x24e3, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x24e4, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x24e5, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x24e6, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x24e7, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x24e8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x24e9, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x24ea, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x2a0c, G_UNICODE_NOT_PRESENT_OFFSET, 5865 }, { 0x2a74, G_UNICODE_NOT_PRESENT_OFFSET, 5878 }, { 0x2a75, G_UNICODE_NOT_PRESENT_OFFSET, 5882 }, { 0x2a76, G_UNICODE_NOT_PRESENT_OFFSET, 5885 }, { 0x2adc, 5889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2e9f, G_UNICODE_NOT_PRESENT_OFFSET, 5895 }, { 0x2ef3, G_UNICODE_NOT_PRESENT_OFFSET, 5899 }, { 0x2f00, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, { 0x2f01, G_UNICODE_NOT_PRESENT_OFFSET, 5907 }, { 0x2f02, G_UNICODE_NOT_PRESENT_OFFSET, 5911 }, { 0x2f03, G_UNICODE_NOT_PRESENT_OFFSET, 5915 }, { 0x2f04, G_UNICODE_NOT_PRESENT_OFFSET, 5919 }, { 0x2f05, G_UNICODE_NOT_PRESENT_OFFSET, 5923 }, { 0x2f06, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, { 0x2f07, G_UNICODE_NOT_PRESENT_OFFSET, 5931 }, { 0x2f08, G_UNICODE_NOT_PRESENT_OFFSET, 5935 }, { 0x2f09, G_UNICODE_NOT_PRESENT_OFFSET, 5939 }, { 0x2f0a, G_UNICODE_NOT_PRESENT_OFFSET, 5943 }, { 0x2f0b, G_UNICODE_NOT_PRESENT_OFFSET, 5947 }, { 0x2f0c, G_UNICODE_NOT_PRESENT_OFFSET, 5951 }, { 0x2f0d, G_UNICODE_NOT_PRESENT_OFFSET, 5955 }, { 0x2f0e, G_UNICODE_NOT_PRESENT_OFFSET, 5959 }, { 0x2f0f, G_UNICODE_NOT_PRESENT_OFFSET, 5963 }, { 0x2f10, G_UNICODE_NOT_PRESENT_OFFSET, 5967 }, { 0x2f11, G_UNICODE_NOT_PRESENT_OFFSET, 5971 }, { 0x2f12, G_UNICODE_NOT_PRESENT_OFFSET, 5975 }, { 0x2f13, G_UNICODE_NOT_PRESENT_OFFSET, 5979 }, { 0x2f14, G_UNICODE_NOT_PRESENT_OFFSET, 5983 }, { 0x2f15, G_UNICODE_NOT_PRESENT_OFFSET, 5987 }, { 0x2f16, G_UNICODE_NOT_PRESENT_OFFSET, 5991 }, { 0x2f17, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, { 0x2f18, G_UNICODE_NOT_PRESENT_OFFSET, 5999 }, { 0x2f19, G_UNICODE_NOT_PRESENT_OFFSET, 6003 }, { 0x2f1a, G_UNICODE_NOT_PRESENT_OFFSET, 6007 }, { 0x2f1b, G_UNICODE_NOT_PRESENT_OFFSET, 6011 }, { 0x2f1c, G_UNICODE_NOT_PRESENT_OFFSET, 6015 }, { 0x2f1d, G_UNICODE_NOT_PRESENT_OFFSET, 6019 }, { 0x2f1e, G_UNICODE_NOT_PRESENT_OFFSET, 6023 }, { 0x2f1f, G_UNICODE_NOT_PRESENT_OFFSET, 6027 }, { 0x2f20, G_UNICODE_NOT_PRESENT_OFFSET, 6031 }, { 0x2f21, G_UNICODE_NOT_PRESENT_OFFSET, 6035 }, { 0x2f22, G_UNICODE_NOT_PRESENT_OFFSET, 6039 }, { 0x2f23, G_UNICODE_NOT_PRESENT_OFFSET, 6043 }, { 0x2f24, G_UNICODE_NOT_PRESENT_OFFSET, 6047 }, { 0x2f25, G_UNICODE_NOT_PRESENT_OFFSET, 6051 }, { 0x2f26, G_UNICODE_NOT_PRESENT_OFFSET, 6055 }, { 0x2f27, G_UNICODE_NOT_PRESENT_OFFSET, 6059 }, { 0x2f28, G_UNICODE_NOT_PRESENT_OFFSET, 6063 }, { 0x2f29, G_UNICODE_NOT_PRESENT_OFFSET, 6067 }, { 0x2f2a, G_UNICODE_NOT_PRESENT_OFFSET, 6071 }, { 0x2f2b, G_UNICODE_NOT_PRESENT_OFFSET, 6075 }, { 0x2f2c, G_UNICODE_NOT_PRESENT_OFFSET, 6079 }, { 0x2f2d, G_UNICODE_NOT_PRESENT_OFFSET, 6083 }, { 0x2f2e, G_UNICODE_NOT_PRESENT_OFFSET, 6087 }, { 0x2f2f, G_UNICODE_NOT_PRESENT_OFFSET, 6091 }, { 0x2f30, G_UNICODE_NOT_PRESENT_OFFSET, 6095 }, { 0x2f31, G_UNICODE_NOT_PRESENT_OFFSET, 6099 }, { 0x2f32, G_UNICODE_NOT_PRESENT_OFFSET, 6103 }, { 0x2f33, G_UNICODE_NOT_PRESENT_OFFSET, 6107 }, { 0x2f34, G_UNICODE_NOT_PRESENT_OFFSET, 6111 }, { 0x2f35, G_UNICODE_NOT_PRESENT_OFFSET, 6115 }, { 0x2f36, G_UNICODE_NOT_PRESENT_OFFSET, 6119 }, { 0x2f37, G_UNICODE_NOT_PRESENT_OFFSET, 6123 }, { 0x2f38, G_UNICODE_NOT_PRESENT_OFFSET, 6127 }, { 0x2f39, G_UNICODE_NOT_PRESENT_OFFSET, 6131 }, { 0x2f3a, G_UNICODE_NOT_PRESENT_OFFSET, 6135 }, { 0x2f3b, G_UNICODE_NOT_PRESENT_OFFSET, 6139 }, { 0x2f3c, G_UNICODE_NOT_PRESENT_OFFSET, 6143 }, { 0x2f3d, G_UNICODE_NOT_PRESENT_OFFSET, 6147 }, { 0x2f3e, G_UNICODE_NOT_PRESENT_OFFSET, 6151 }, { 0x2f3f, G_UNICODE_NOT_PRESENT_OFFSET, 6155 }, { 0x2f40, G_UNICODE_NOT_PRESENT_OFFSET, 6159 }, { 0x2f41, G_UNICODE_NOT_PRESENT_OFFSET, 6163 }, { 0x2f42, G_UNICODE_NOT_PRESENT_OFFSET, 6167 }, { 0x2f43, G_UNICODE_NOT_PRESENT_OFFSET, 6171 }, { 0x2f44, G_UNICODE_NOT_PRESENT_OFFSET, 6175 }, { 0x2f45, G_UNICODE_NOT_PRESENT_OFFSET, 6179 }, { 0x2f46, G_UNICODE_NOT_PRESENT_OFFSET, 6183 }, { 0x2f47, G_UNICODE_NOT_PRESENT_OFFSET, 6187 }, { 0x2f48, G_UNICODE_NOT_PRESENT_OFFSET, 6191 }, { 0x2f49, G_UNICODE_NOT_PRESENT_OFFSET, 6195 }, { 0x2f4a, G_UNICODE_NOT_PRESENT_OFFSET, 6199 }, { 0x2f4b, G_UNICODE_NOT_PRESENT_OFFSET, 6203 }, { 0x2f4c, G_UNICODE_NOT_PRESENT_OFFSET, 6207 }, { 0x2f4d, G_UNICODE_NOT_PRESENT_OFFSET, 6211 }, { 0x2f4e, G_UNICODE_NOT_PRESENT_OFFSET, 6215 }, { 0x2f4f, G_UNICODE_NOT_PRESENT_OFFSET, 6219 }, { 0x2f50, G_UNICODE_NOT_PRESENT_OFFSET, 6223 }, { 0x2f51, G_UNICODE_NOT_PRESENT_OFFSET, 6227 }, { 0x2f52, G_UNICODE_NOT_PRESENT_OFFSET, 6231 }, { 0x2f53, G_UNICODE_NOT_PRESENT_OFFSET, 6235 }, { 0x2f54, G_UNICODE_NOT_PRESENT_OFFSET, 6239 }, { 0x2f55, G_UNICODE_NOT_PRESENT_OFFSET, 6243 }, { 0x2f56, G_UNICODE_NOT_PRESENT_OFFSET, 6247 }, { 0x2f57, G_UNICODE_NOT_PRESENT_OFFSET, 6251 }, { 0x2f58, G_UNICODE_NOT_PRESENT_OFFSET, 6255 }, { 0x2f59, G_UNICODE_NOT_PRESENT_OFFSET, 6259 }, { 0x2f5a, G_UNICODE_NOT_PRESENT_OFFSET, 6263 }, { 0x2f5b, G_UNICODE_NOT_PRESENT_OFFSET, 6267 }, { 0x2f5c, G_UNICODE_NOT_PRESENT_OFFSET, 6271 }, { 0x2f5d, G_UNICODE_NOT_PRESENT_OFFSET, 6275 }, { 0x2f5e, G_UNICODE_NOT_PRESENT_OFFSET, 6279 }, { 0x2f5f, G_UNICODE_NOT_PRESENT_OFFSET, 6283 }, { 0x2f60, G_UNICODE_NOT_PRESENT_OFFSET, 6287 }, { 0x2f61, G_UNICODE_NOT_PRESENT_OFFSET, 6291 }, { 0x2f62, G_UNICODE_NOT_PRESENT_OFFSET, 6295 }, { 0x2f63, G_UNICODE_NOT_PRESENT_OFFSET, 6299 }, { 0x2f64, G_UNICODE_NOT_PRESENT_OFFSET, 6303 }, { 0x2f65, G_UNICODE_NOT_PRESENT_OFFSET, 6307 }, { 0x2f66, G_UNICODE_NOT_PRESENT_OFFSET, 6311 }, { 0x2f67, G_UNICODE_NOT_PRESENT_OFFSET, 6315 }, { 0x2f68, G_UNICODE_NOT_PRESENT_OFFSET, 6319 }, { 0x2f69, G_UNICODE_NOT_PRESENT_OFFSET, 6323 }, { 0x2f6a, G_UNICODE_NOT_PRESENT_OFFSET, 6327 }, { 0x2f6b, G_UNICODE_NOT_PRESENT_OFFSET, 6331 }, { 0x2f6c, G_UNICODE_NOT_PRESENT_OFFSET, 6335 }, { 0x2f6d, G_UNICODE_NOT_PRESENT_OFFSET, 6339 }, { 0x2f6e, G_UNICODE_NOT_PRESENT_OFFSET, 6343 }, { 0x2f6f, G_UNICODE_NOT_PRESENT_OFFSET, 6347 }, { 0x2f70, G_UNICODE_NOT_PRESENT_OFFSET, 6351 }, { 0x2f71, G_UNICODE_NOT_PRESENT_OFFSET, 6355 }, { 0x2f72, G_UNICODE_NOT_PRESENT_OFFSET, 6359 }, { 0x2f73, G_UNICODE_NOT_PRESENT_OFFSET, 6363 }, { 0x2f74, G_UNICODE_NOT_PRESENT_OFFSET, 6367 }, { 0x2f75, G_UNICODE_NOT_PRESENT_OFFSET, 6371 }, { 0x2f76, G_UNICODE_NOT_PRESENT_OFFSET, 6375 }, { 0x2f77, G_UNICODE_NOT_PRESENT_OFFSET, 6379 }, { 0x2f78, G_UNICODE_NOT_PRESENT_OFFSET, 6383 }, { 0x2f79, G_UNICODE_NOT_PRESENT_OFFSET, 6387 }, { 0x2f7a, G_UNICODE_NOT_PRESENT_OFFSET, 6391 }, { 0x2f7b, G_UNICODE_NOT_PRESENT_OFFSET, 6395 }, { 0x2f7c, G_UNICODE_NOT_PRESENT_OFFSET, 6399 }, { 0x2f7d, G_UNICODE_NOT_PRESENT_OFFSET, 6403 }, { 0x2f7e, G_UNICODE_NOT_PRESENT_OFFSET, 6407 }, { 0x2f7f, G_UNICODE_NOT_PRESENT_OFFSET, 6411 }, { 0x2f80, G_UNICODE_NOT_PRESENT_OFFSET, 6415 }, { 0x2f81, G_UNICODE_NOT_PRESENT_OFFSET, 6419 }, { 0x2f82, G_UNICODE_NOT_PRESENT_OFFSET, 6423 }, { 0x2f83, G_UNICODE_NOT_PRESENT_OFFSET, 6427 }, { 0x2f84, G_UNICODE_NOT_PRESENT_OFFSET, 6431 }, { 0x2f85, G_UNICODE_NOT_PRESENT_OFFSET, 6435 }, { 0x2f86, G_UNICODE_NOT_PRESENT_OFFSET, 6439 }, { 0x2f87, G_UNICODE_NOT_PRESENT_OFFSET, 6443 }, { 0x2f88, G_UNICODE_NOT_PRESENT_OFFSET, 6447 }, { 0x2f89, G_UNICODE_NOT_PRESENT_OFFSET, 6451 }, { 0x2f8a, G_UNICODE_NOT_PRESENT_OFFSET, 6455 }, { 0x2f8b, G_UNICODE_NOT_PRESENT_OFFSET, 6459 }, { 0x2f8c, G_UNICODE_NOT_PRESENT_OFFSET, 6463 }, { 0x2f8d, G_UNICODE_NOT_PRESENT_OFFSET, 6467 }, { 0x2f8e, G_UNICODE_NOT_PRESENT_OFFSET, 6471 }, { 0x2f8f, G_UNICODE_NOT_PRESENT_OFFSET, 6475 }, { 0x2f90, G_UNICODE_NOT_PRESENT_OFFSET, 6479 }, { 0x2f91, G_UNICODE_NOT_PRESENT_OFFSET, 6483 }, { 0x2f92, G_UNICODE_NOT_PRESENT_OFFSET, 6487 }, { 0x2f93, G_UNICODE_NOT_PRESENT_OFFSET, 6491 }, { 0x2f94, G_UNICODE_NOT_PRESENT_OFFSET, 6495 }, { 0x2f95, G_UNICODE_NOT_PRESENT_OFFSET, 6499 }, { 0x2f96, G_UNICODE_NOT_PRESENT_OFFSET, 6503 }, { 0x2f97, G_UNICODE_NOT_PRESENT_OFFSET, 6507 }, { 0x2f98, G_UNICODE_NOT_PRESENT_OFFSET, 6511 }, { 0x2f99, G_UNICODE_NOT_PRESENT_OFFSET, 6515 }, { 0x2f9a, G_UNICODE_NOT_PRESENT_OFFSET, 6519 }, { 0x2f9b, G_UNICODE_NOT_PRESENT_OFFSET, 6523 }, { 0x2f9c, G_UNICODE_NOT_PRESENT_OFFSET, 6527 }, { 0x2f9d, G_UNICODE_NOT_PRESENT_OFFSET, 6531 }, { 0x2f9e, G_UNICODE_NOT_PRESENT_OFFSET, 6535 }, { 0x2f9f, G_UNICODE_NOT_PRESENT_OFFSET, 6539 }, { 0x2fa0, G_UNICODE_NOT_PRESENT_OFFSET, 6543 }, { 0x2fa1, G_UNICODE_NOT_PRESENT_OFFSET, 6547 }, { 0x2fa2, G_UNICODE_NOT_PRESENT_OFFSET, 6551 }, { 0x2fa3, G_UNICODE_NOT_PRESENT_OFFSET, 6555 }, { 0x2fa4, G_UNICODE_NOT_PRESENT_OFFSET, 6559 }, { 0x2fa5, G_UNICODE_NOT_PRESENT_OFFSET, 6563 }, { 0x2fa6, G_UNICODE_NOT_PRESENT_OFFSET, 6567 }, { 0x2fa7, G_UNICODE_NOT_PRESENT_OFFSET, 6571 }, { 0x2fa8, G_UNICODE_NOT_PRESENT_OFFSET, 6575 }, { 0x2fa9, G_UNICODE_NOT_PRESENT_OFFSET, 6579 }, { 0x2faa, G_UNICODE_NOT_PRESENT_OFFSET, 6583 }, { 0x2fab, G_UNICODE_NOT_PRESENT_OFFSET, 6587 }, { 0x2fac, G_UNICODE_NOT_PRESENT_OFFSET, 6591 }, { 0x2fad, G_UNICODE_NOT_PRESENT_OFFSET, 6595 }, { 0x2fae, G_UNICODE_NOT_PRESENT_OFFSET, 6599 }, { 0x2faf, G_UNICODE_NOT_PRESENT_OFFSET, 6603 }, { 0x2fb0, G_UNICODE_NOT_PRESENT_OFFSET, 6607 }, { 0x2fb1, G_UNICODE_NOT_PRESENT_OFFSET, 6611 }, { 0x2fb2, G_UNICODE_NOT_PRESENT_OFFSET, 6615 }, { 0x2fb3, G_UNICODE_NOT_PRESENT_OFFSET, 6619 }, { 0x2fb4, G_UNICODE_NOT_PRESENT_OFFSET, 6623 }, { 0x2fb5, G_UNICODE_NOT_PRESENT_OFFSET, 6627 }, { 0x2fb6, G_UNICODE_NOT_PRESENT_OFFSET, 6631 }, { 0x2fb7, G_UNICODE_NOT_PRESENT_OFFSET, 6635 }, { 0x2fb8, G_UNICODE_NOT_PRESENT_OFFSET, 6639 }, { 0x2fb9, G_UNICODE_NOT_PRESENT_OFFSET, 6643 }, { 0x2fba, G_UNICODE_NOT_PRESENT_OFFSET, 6647 }, { 0x2fbb, G_UNICODE_NOT_PRESENT_OFFSET, 6651 }, { 0x2fbc, G_UNICODE_NOT_PRESENT_OFFSET, 6655 }, { 0x2fbd, G_UNICODE_NOT_PRESENT_OFFSET, 6659 }, { 0x2fbe, G_UNICODE_NOT_PRESENT_OFFSET, 6663 }, { 0x2fbf, G_UNICODE_NOT_PRESENT_OFFSET, 6667 }, { 0x2fc0, G_UNICODE_NOT_PRESENT_OFFSET, 6671 }, { 0x2fc1, G_UNICODE_NOT_PRESENT_OFFSET, 6675 }, { 0x2fc2, G_UNICODE_NOT_PRESENT_OFFSET, 6679 }, { 0x2fc3, G_UNICODE_NOT_PRESENT_OFFSET, 6683 }, { 0x2fc4, G_UNICODE_NOT_PRESENT_OFFSET, 6687 }, { 0x2fc5, G_UNICODE_NOT_PRESENT_OFFSET, 6691 }, { 0x2fc6, G_UNICODE_NOT_PRESENT_OFFSET, 6695 }, { 0x2fc7, G_UNICODE_NOT_PRESENT_OFFSET, 6699 }, { 0x2fc8, G_UNICODE_NOT_PRESENT_OFFSET, 6703 }, { 0x2fc9, G_UNICODE_NOT_PRESENT_OFFSET, 6707 }, { 0x2fca, G_UNICODE_NOT_PRESENT_OFFSET, 6711 }, { 0x2fcb, G_UNICODE_NOT_PRESENT_OFFSET, 6715 }, { 0x2fcc, G_UNICODE_NOT_PRESENT_OFFSET, 6719 }, { 0x2fcd, G_UNICODE_NOT_PRESENT_OFFSET, 6723 }, { 0x2fce, G_UNICODE_NOT_PRESENT_OFFSET, 6727 }, { 0x2fcf, G_UNICODE_NOT_PRESENT_OFFSET, 6731 }, { 0x2fd0, G_UNICODE_NOT_PRESENT_OFFSET, 6735 }, { 0x2fd1, G_UNICODE_NOT_PRESENT_OFFSET, 6739 }, { 0x2fd2, G_UNICODE_NOT_PRESENT_OFFSET, 6743 }, { 0x2fd3, G_UNICODE_NOT_PRESENT_OFFSET, 6747 }, { 0x2fd4, G_UNICODE_NOT_PRESENT_OFFSET, 6751 }, { 0x2fd5, G_UNICODE_NOT_PRESENT_OFFSET, 6755 }, { 0x3000, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x3036, G_UNICODE_NOT_PRESENT_OFFSET, 6759 }, { 0x3038, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, { 0x3039, G_UNICODE_NOT_PRESENT_OFFSET, 6763 }, { 0x303a, G_UNICODE_NOT_PRESENT_OFFSET, 6767 }, { 0x304c, 6771, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x304e, 6778, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3050, 6785, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3052, 6792, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3054, 6799, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3056, 6806, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3058, 6813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x305a, 6820, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x305c, 6827, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x305e, 6834, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3060, 6841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3062, 6848, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3065, 6855, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3067, 6862, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3069, 6869, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3070, 6876, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3071, 6883, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3073, 6890, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3074, 6897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3076, 6904, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3077, 6911, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3079, 6918, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x307a, 6925, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x307c, 6932, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x307d, 6939, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3094, 6946, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x309b, G_UNICODE_NOT_PRESENT_OFFSET, 6953 }, { 0x309c, G_UNICODE_NOT_PRESENT_OFFSET, 6958 }, { 0x309e, 6963, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x309f, G_UNICODE_NOT_PRESENT_OFFSET, 6970 }, { 0x30ac, 6977, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30ae, 6984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b0, 6991, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b2, 6998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b4, 7005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b6, 7012, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b8, 7019, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30ba, 7026, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30bc, 7033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30be, 7040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c0, 7047, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c2, 7054, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c5, 7061, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c7, 7068, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c9, 7075, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d0, 7082, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d1, 7089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d3, 7096, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d4, 7103, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d6, 7110, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d7, 7117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d9, 7124, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30da, 7131, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30dc, 7138, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30dd, 7145, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f4, 7152, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f7, 7159, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f8, 7166, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f9, 7173, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30fa, 7180, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30fe, 7187, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30ff, G_UNICODE_NOT_PRESENT_OFFSET, 7194 }, { 0x3131, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, { 0x3132, G_UNICODE_NOT_PRESENT_OFFSET, 7205 }, { 0x3133, G_UNICODE_NOT_PRESENT_OFFSET, 7209 }, { 0x3134, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, { 0x3135, G_UNICODE_NOT_PRESENT_OFFSET, 7217 }, { 0x3136, G_UNICODE_NOT_PRESENT_OFFSET, 7221 }, { 0x3137, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, { 0x3138, G_UNICODE_NOT_PRESENT_OFFSET, 7229 }, { 0x3139, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, { 0x313a, G_UNICODE_NOT_PRESENT_OFFSET, 7237 }, { 0x313b, G_UNICODE_NOT_PRESENT_OFFSET, 7241 }, { 0x313c, G_UNICODE_NOT_PRESENT_OFFSET, 7245 }, { 0x313d, G_UNICODE_NOT_PRESENT_OFFSET, 7249 }, { 0x313e, G_UNICODE_NOT_PRESENT_OFFSET, 7253 }, { 0x313f, G_UNICODE_NOT_PRESENT_OFFSET, 7257 }, { 0x3140, G_UNICODE_NOT_PRESENT_OFFSET, 7261 }, { 0x3141, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, { 0x3142, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, { 0x3143, G_UNICODE_NOT_PRESENT_OFFSET, 7273 }, { 0x3144, G_UNICODE_NOT_PRESENT_OFFSET, 7277 }, { 0x3145, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, { 0x3146, G_UNICODE_NOT_PRESENT_OFFSET, 7285 }, { 0x3147, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, { 0x3148, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, { 0x3149, G_UNICODE_NOT_PRESENT_OFFSET, 7297 }, { 0x314a, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, { 0x314b, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, { 0x314c, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, { 0x314d, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, { 0x314e, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, { 0x314f, G_UNICODE_NOT_PRESENT_OFFSET, 7321 }, { 0x3150, G_UNICODE_NOT_PRESENT_OFFSET, 7325 }, { 0x3151, G_UNICODE_NOT_PRESENT_OFFSET, 7329 }, { 0x3152, G_UNICODE_NOT_PRESENT_OFFSET, 7333 }, { 0x3153, G_UNICODE_NOT_PRESENT_OFFSET, 7337 }, { 0x3154, G_UNICODE_NOT_PRESENT_OFFSET, 7341 }, { 0x3155, G_UNICODE_NOT_PRESENT_OFFSET, 7345 }, { 0x3156, G_UNICODE_NOT_PRESENT_OFFSET, 7349 }, { 0x3157, G_UNICODE_NOT_PRESENT_OFFSET, 7353 }, { 0x3158, G_UNICODE_NOT_PRESENT_OFFSET, 7357 }, { 0x3159, G_UNICODE_NOT_PRESENT_OFFSET, 7361 }, { 0x315a, G_UNICODE_NOT_PRESENT_OFFSET, 7365 }, { 0x315b, G_UNICODE_NOT_PRESENT_OFFSET, 7369 }, { 0x315c, G_UNICODE_NOT_PRESENT_OFFSET, 7373 }, { 0x315d, G_UNICODE_NOT_PRESENT_OFFSET, 7377 }, { 0x315e, G_UNICODE_NOT_PRESENT_OFFSET, 7381 }, { 0x315f, G_UNICODE_NOT_PRESENT_OFFSET, 7385 }, { 0x3160, G_UNICODE_NOT_PRESENT_OFFSET, 7389 }, { 0x3161, G_UNICODE_NOT_PRESENT_OFFSET, 7393 }, { 0x3162, G_UNICODE_NOT_PRESENT_OFFSET, 7397 }, { 0x3163, G_UNICODE_NOT_PRESENT_OFFSET, 7401 }, { 0x3164, G_UNICODE_NOT_PRESENT_OFFSET, 7405 }, { 0x3165, G_UNICODE_NOT_PRESENT_OFFSET, 7409 }, { 0x3166, G_UNICODE_NOT_PRESENT_OFFSET, 7413 }, { 0x3167, G_UNICODE_NOT_PRESENT_OFFSET, 7417 }, { 0x3168, G_UNICODE_NOT_PRESENT_OFFSET, 7421 }, { 0x3169, G_UNICODE_NOT_PRESENT_OFFSET, 7425 }, { 0x316a, G_UNICODE_NOT_PRESENT_OFFSET, 7429 }, { 0x316b, G_UNICODE_NOT_PRESENT_OFFSET, 7433 }, { 0x316c, G_UNICODE_NOT_PRESENT_OFFSET, 7437 }, { 0x316d, G_UNICODE_NOT_PRESENT_OFFSET, 7441 }, { 0x316e, G_UNICODE_NOT_PRESENT_OFFSET, 7445 }, { 0x316f, G_UNICODE_NOT_PRESENT_OFFSET, 7449 }, { 0x3170, G_UNICODE_NOT_PRESENT_OFFSET, 7453 }, { 0x3171, G_UNICODE_NOT_PRESENT_OFFSET, 7457 }, { 0x3172, G_UNICODE_NOT_PRESENT_OFFSET, 7461 }, { 0x3173, G_UNICODE_NOT_PRESENT_OFFSET, 7465 }, { 0x3174, G_UNICODE_NOT_PRESENT_OFFSET, 7469 }, { 0x3175, G_UNICODE_NOT_PRESENT_OFFSET, 7473 }, { 0x3176, G_UNICODE_NOT_PRESENT_OFFSET, 7477 }, { 0x3177, G_UNICODE_NOT_PRESENT_OFFSET, 7481 }, { 0x3178, G_UNICODE_NOT_PRESENT_OFFSET, 7485 }, { 0x3179, G_UNICODE_NOT_PRESENT_OFFSET, 7489 }, { 0x317a, G_UNICODE_NOT_PRESENT_OFFSET, 7493 }, { 0x317b, G_UNICODE_NOT_PRESENT_OFFSET, 7497 }, { 0x317c, G_UNICODE_NOT_PRESENT_OFFSET, 7501 }, { 0x317d, G_UNICODE_NOT_PRESENT_OFFSET, 7505 }, { 0x317e, G_UNICODE_NOT_PRESENT_OFFSET, 7509 }, { 0x317f, G_UNICODE_NOT_PRESENT_OFFSET, 7513 }, { 0x3180, G_UNICODE_NOT_PRESENT_OFFSET, 7517 }, { 0x3181, G_UNICODE_NOT_PRESENT_OFFSET, 7521 }, { 0x3182, G_UNICODE_NOT_PRESENT_OFFSET, 7525 }, { 0x3183, G_UNICODE_NOT_PRESENT_OFFSET, 7529 }, { 0x3184, G_UNICODE_NOT_PRESENT_OFFSET, 7533 }, { 0x3185, G_UNICODE_NOT_PRESENT_OFFSET, 7537 }, { 0x3186, G_UNICODE_NOT_PRESENT_OFFSET, 7541 }, { 0x3187, G_UNICODE_NOT_PRESENT_OFFSET, 7545 }, { 0x3188, G_UNICODE_NOT_PRESENT_OFFSET, 7549 }, { 0x3189, G_UNICODE_NOT_PRESENT_OFFSET, 7553 }, { 0x318a, G_UNICODE_NOT_PRESENT_OFFSET, 7557 }, { 0x318b, G_UNICODE_NOT_PRESENT_OFFSET, 7561 }, { 0x318c, G_UNICODE_NOT_PRESENT_OFFSET, 7565 }, { 0x318d, G_UNICODE_NOT_PRESENT_OFFSET, 7569 }, { 0x318e, G_UNICODE_NOT_PRESENT_OFFSET, 7573 }, { 0x3192, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, { 0x3193, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, { 0x3194, G_UNICODE_NOT_PRESENT_OFFSET, 7577 }, { 0x3195, G_UNICODE_NOT_PRESENT_OFFSET, 7581 }, { 0x3196, G_UNICODE_NOT_PRESENT_OFFSET, 7585 }, { 0x3197, G_UNICODE_NOT_PRESENT_OFFSET, 7589 }, { 0x3198, G_UNICODE_NOT_PRESENT_OFFSET, 7593 }, { 0x3199, G_UNICODE_NOT_PRESENT_OFFSET, 7597 }, { 0x319a, G_UNICODE_NOT_PRESENT_OFFSET, 5919 }, { 0x319b, G_UNICODE_NOT_PRESENT_OFFSET, 7601 }, { 0x319c, G_UNICODE_NOT_PRESENT_OFFSET, 7605 }, { 0x319d, G_UNICODE_NOT_PRESENT_OFFSET, 7609 }, { 0x319e, G_UNICODE_NOT_PRESENT_OFFSET, 7613 }, { 0x319f, G_UNICODE_NOT_PRESENT_OFFSET, 5935 }, { 0x3200, G_UNICODE_NOT_PRESENT_OFFSET, 7617 }, { 0x3201, G_UNICODE_NOT_PRESENT_OFFSET, 7623 }, { 0x3202, G_UNICODE_NOT_PRESENT_OFFSET, 7629 }, { 0x3203, G_UNICODE_NOT_PRESENT_OFFSET, 7635 }, { 0x3204, G_UNICODE_NOT_PRESENT_OFFSET, 7641 }, { 0x3205, G_UNICODE_NOT_PRESENT_OFFSET, 7647 }, { 0x3206, G_UNICODE_NOT_PRESENT_OFFSET, 7653 }, { 0x3207, G_UNICODE_NOT_PRESENT_OFFSET, 7659 }, { 0x3208, G_UNICODE_NOT_PRESENT_OFFSET, 7665 }, { 0x3209, G_UNICODE_NOT_PRESENT_OFFSET, 7671 }, { 0x320a, G_UNICODE_NOT_PRESENT_OFFSET, 7677 }, { 0x320b, G_UNICODE_NOT_PRESENT_OFFSET, 7683 }, { 0x320c, G_UNICODE_NOT_PRESENT_OFFSET, 7689 }, { 0x320d, G_UNICODE_NOT_PRESENT_OFFSET, 7695 }, { 0x320e, G_UNICODE_NOT_PRESENT_OFFSET, 7701 }, { 0x320f, G_UNICODE_NOT_PRESENT_OFFSET, 7710 }, { 0x3210, G_UNICODE_NOT_PRESENT_OFFSET, 7719 }, { 0x3211, G_UNICODE_NOT_PRESENT_OFFSET, 7728 }, { 0x3212, G_UNICODE_NOT_PRESENT_OFFSET, 7737 }, { 0x3213, G_UNICODE_NOT_PRESENT_OFFSET, 7746 }, { 0x3214, G_UNICODE_NOT_PRESENT_OFFSET, 7755 }, { 0x3215, G_UNICODE_NOT_PRESENT_OFFSET, 7764 }, { 0x3216, G_UNICODE_NOT_PRESENT_OFFSET, 7773 }, { 0x3217, G_UNICODE_NOT_PRESENT_OFFSET, 7782 }, { 0x3218, G_UNICODE_NOT_PRESENT_OFFSET, 7791 }, { 0x3219, G_UNICODE_NOT_PRESENT_OFFSET, 7800 }, { 0x321a, G_UNICODE_NOT_PRESENT_OFFSET, 7809 }, { 0x321b, G_UNICODE_NOT_PRESENT_OFFSET, 7818 }, { 0x321c, G_UNICODE_NOT_PRESENT_OFFSET, 7827 }, { 0x3220, G_UNICODE_NOT_PRESENT_OFFSET, 7836 }, { 0x3221, G_UNICODE_NOT_PRESENT_OFFSET, 7842 }, { 0x3222, G_UNICODE_NOT_PRESENT_OFFSET, 7848 }, { 0x3223, G_UNICODE_NOT_PRESENT_OFFSET, 7854 }, { 0x3224, G_UNICODE_NOT_PRESENT_OFFSET, 7860 }, { 0x3225, G_UNICODE_NOT_PRESENT_OFFSET, 7866 }, { 0x3226, G_UNICODE_NOT_PRESENT_OFFSET, 7872 }, { 0x3227, G_UNICODE_NOT_PRESENT_OFFSET, 7878 }, { 0x3228, G_UNICODE_NOT_PRESENT_OFFSET, 7884 }, { 0x3229, G_UNICODE_NOT_PRESENT_OFFSET, 7890 }, { 0x322a, G_UNICODE_NOT_PRESENT_OFFSET, 7896 }, { 0x322b, G_UNICODE_NOT_PRESENT_OFFSET, 7902 }, { 0x322c, G_UNICODE_NOT_PRESENT_OFFSET, 7908 }, { 0x322d, G_UNICODE_NOT_PRESENT_OFFSET, 7914 }, { 0x322e, G_UNICODE_NOT_PRESENT_OFFSET, 7920 }, { 0x322f, G_UNICODE_NOT_PRESENT_OFFSET, 7926 }, { 0x3230, G_UNICODE_NOT_PRESENT_OFFSET, 7932 }, { 0x3231, G_UNICODE_NOT_PRESENT_OFFSET, 7938 }, { 0x3232, G_UNICODE_NOT_PRESENT_OFFSET, 7944 }, { 0x3233, G_UNICODE_NOT_PRESENT_OFFSET, 7950 }, { 0x3234, G_UNICODE_NOT_PRESENT_OFFSET, 7956 }, { 0x3235, G_UNICODE_NOT_PRESENT_OFFSET, 7962 }, { 0x3236, G_UNICODE_NOT_PRESENT_OFFSET, 7968 }, { 0x3237, G_UNICODE_NOT_PRESENT_OFFSET, 7974 }, { 0x3238, G_UNICODE_NOT_PRESENT_OFFSET, 7980 }, { 0x3239, G_UNICODE_NOT_PRESENT_OFFSET, 7986 }, { 0x323a, G_UNICODE_NOT_PRESENT_OFFSET, 7992 }, { 0x323b, G_UNICODE_NOT_PRESENT_OFFSET, 7998 }, { 0x323c, G_UNICODE_NOT_PRESENT_OFFSET, 8004 }, { 0x323d, G_UNICODE_NOT_PRESENT_OFFSET, 8010 }, { 0x323e, G_UNICODE_NOT_PRESENT_OFFSET, 8016 }, { 0x323f, G_UNICODE_NOT_PRESENT_OFFSET, 8022 }, { 0x3240, G_UNICODE_NOT_PRESENT_OFFSET, 8028 }, { 0x3241, G_UNICODE_NOT_PRESENT_OFFSET, 8034 }, { 0x3242, G_UNICODE_NOT_PRESENT_OFFSET, 8040 }, { 0x3243, G_UNICODE_NOT_PRESENT_OFFSET, 8046 }, { 0x3251, G_UNICODE_NOT_PRESENT_OFFSET, 8052 }, { 0x3252, G_UNICODE_NOT_PRESENT_OFFSET, 8055 }, { 0x3253, G_UNICODE_NOT_PRESENT_OFFSET, 8058 }, { 0x3254, G_UNICODE_NOT_PRESENT_OFFSET, 8061 }, { 0x3255, G_UNICODE_NOT_PRESENT_OFFSET, 8064 }, { 0x3256, G_UNICODE_NOT_PRESENT_OFFSET, 8067 }, { 0x3257, G_UNICODE_NOT_PRESENT_OFFSET, 8070 }, { 0x3258, G_UNICODE_NOT_PRESENT_OFFSET, 8073 }, { 0x3259, G_UNICODE_NOT_PRESENT_OFFSET, 8076 }, { 0x325a, G_UNICODE_NOT_PRESENT_OFFSET, 8079 }, { 0x325b, G_UNICODE_NOT_PRESENT_OFFSET, 8082 }, { 0x325c, G_UNICODE_NOT_PRESENT_OFFSET, 8085 }, { 0x325d, G_UNICODE_NOT_PRESENT_OFFSET, 8088 }, { 0x325e, G_UNICODE_NOT_PRESENT_OFFSET, 8091 }, { 0x325f, G_UNICODE_NOT_PRESENT_OFFSET, 8094 }, { 0x3260, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, { 0x3261, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, { 0x3262, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, { 0x3263, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, { 0x3264, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, { 0x3265, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, { 0x3266, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, { 0x3267, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, { 0x3268, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, { 0x3269, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, { 0x326a, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, { 0x326b, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, { 0x326c, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, { 0x326d, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, { 0x326e, G_UNICODE_NOT_PRESENT_OFFSET, 8097 }, { 0x326f, G_UNICODE_NOT_PRESENT_OFFSET, 8104 }, { 0x3270, G_UNICODE_NOT_PRESENT_OFFSET, 8111 }, { 0x3271, G_UNICODE_NOT_PRESENT_OFFSET, 8118 }, { 0x3272, G_UNICODE_NOT_PRESENT_OFFSET, 8125 }, { 0x3273, G_UNICODE_NOT_PRESENT_OFFSET, 8132 }, { 0x3274, G_UNICODE_NOT_PRESENT_OFFSET, 8139 }, { 0x3275, G_UNICODE_NOT_PRESENT_OFFSET, 8146 }, { 0x3276, G_UNICODE_NOT_PRESENT_OFFSET, 8153 }, { 0x3277, G_UNICODE_NOT_PRESENT_OFFSET, 8160 }, { 0x3278, G_UNICODE_NOT_PRESENT_OFFSET, 8167 }, { 0x3279, G_UNICODE_NOT_PRESENT_OFFSET, 8174 }, { 0x327a, G_UNICODE_NOT_PRESENT_OFFSET, 8181 }, { 0x327b, G_UNICODE_NOT_PRESENT_OFFSET, 8188 }, { 0x3280, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, { 0x3281, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, { 0x3282, G_UNICODE_NOT_PRESENT_OFFSET, 7577 }, { 0x3283, G_UNICODE_NOT_PRESENT_OFFSET, 7581 }, { 0x3284, G_UNICODE_NOT_PRESENT_OFFSET, 8195 }, { 0x3285, G_UNICODE_NOT_PRESENT_OFFSET, 8199 }, { 0x3286, G_UNICODE_NOT_PRESENT_OFFSET, 8203 }, { 0x3287, G_UNICODE_NOT_PRESENT_OFFSET, 5947 }, { 0x3288, G_UNICODE_NOT_PRESENT_OFFSET, 8207 }, { 0x3289, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, { 0x328a, G_UNICODE_NOT_PRESENT_OFFSET, 6195 }, { 0x328b, G_UNICODE_NOT_PRESENT_OFFSET, 6243 }, { 0x328c, G_UNICODE_NOT_PRESENT_OFFSET, 6239 }, { 0x328d, G_UNICODE_NOT_PRESENT_OFFSET, 6199 }, { 0x328e, G_UNICODE_NOT_PRESENT_OFFSET, 6567 }, { 0x328f, G_UNICODE_NOT_PRESENT_OFFSET, 6027 }, { 0x3290, G_UNICODE_NOT_PRESENT_OFFSET, 6187 }, { 0x3291, G_UNICODE_NOT_PRESENT_OFFSET, 8211 }, { 0x3292, G_UNICODE_NOT_PRESENT_OFFSET, 8215 }, { 0x3293, G_UNICODE_NOT_PRESENT_OFFSET, 8219 }, { 0x3294, G_UNICODE_NOT_PRESENT_OFFSET, 8223 }, { 0x3295, G_UNICODE_NOT_PRESENT_OFFSET, 8227 }, { 0x3296, G_UNICODE_NOT_PRESENT_OFFSET, 8231 }, { 0x3297, G_UNICODE_NOT_PRESENT_OFFSET, 8235 }, { 0x3298, G_UNICODE_NOT_PRESENT_OFFSET, 8239 }, { 0x3299, G_UNICODE_NOT_PRESENT_OFFSET, 8243 }, { 0x329a, G_UNICODE_NOT_PRESENT_OFFSET, 8247 }, { 0x329b, G_UNICODE_NOT_PRESENT_OFFSET, 6051 }, { 0x329c, G_UNICODE_NOT_PRESENT_OFFSET, 8251 }, { 0x329d, G_UNICODE_NOT_PRESENT_OFFSET, 8255 }, { 0x329e, G_UNICODE_NOT_PRESENT_OFFSET, 8259 }, { 0x329f, G_UNICODE_NOT_PRESENT_OFFSET, 8263 }, { 0x32a0, G_UNICODE_NOT_PRESENT_OFFSET, 8267 }, { 0x32a1, G_UNICODE_NOT_PRESENT_OFFSET, 8271 }, { 0x32a2, G_UNICODE_NOT_PRESENT_OFFSET, 8275 }, { 0x32a3, G_UNICODE_NOT_PRESENT_OFFSET, 8279 }, { 0x32a4, G_UNICODE_NOT_PRESENT_OFFSET, 7585 }, { 0x32a5, G_UNICODE_NOT_PRESENT_OFFSET, 7589 }, { 0x32a6, G_UNICODE_NOT_PRESENT_OFFSET, 7593 }, { 0x32a7, G_UNICODE_NOT_PRESENT_OFFSET, 8283 }, { 0x32a8, G_UNICODE_NOT_PRESENT_OFFSET, 8287 }, { 0x32a9, G_UNICODE_NOT_PRESENT_OFFSET, 8291 }, { 0x32aa, G_UNICODE_NOT_PRESENT_OFFSET, 8295 }, { 0x32ab, G_UNICODE_NOT_PRESENT_OFFSET, 8299 }, { 0x32ac, G_UNICODE_NOT_PRESENT_OFFSET, 8303 }, { 0x32ad, G_UNICODE_NOT_PRESENT_OFFSET, 8307 }, { 0x32ae, G_UNICODE_NOT_PRESENT_OFFSET, 8311 }, { 0x32af, G_UNICODE_NOT_PRESENT_OFFSET, 8315 }, { 0x32b0, G_UNICODE_NOT_PRESENT_OFFSET, 8319 }, { 0x32b1, G_UNICODE_NOT_PRESENT_OFFSET, 8323 }, { 0x32b2, G_UNICODE_NOT_PRESENT_OFFSET, 8326 }, { 0x32b3, G_UNICODE_NOT_PRESENT_OFFSET, 8329 }, { 0x32b4, G_UNICODE_NOT_PRESENT_OFFSET, 8332 }, { 0x32b5, G_UNICODE_NOT_PRESENT_OFFSET, 8335 }, { 0x32b6, G_UNICODE_NOT_PRESENT_OFFSET, 8338 }, { 0x32b7, G_UNICODE_NOT_PRESENT_OFFSET, 8341 }, { 0x32b8, G_UNICODE_NOT_PRESENT_OFFSET, 8344 }, { 0x32b9, G_UNICODE_NOT_PRESENT_OFFSET, 8347 }, { 0x32ba, G_UNICODE_NOT_PRESENT_OFFSET, 8350 }, { 0x32bb, G_UNICODE_NOT_PRESENT_OFFSET, 8353 }, { 0x32bc, G_UNICODE_NOT_PRESENT_OFFSET, 8356 }, { 0x32bd, G_UNICODE_NOT_PRESENT_OFFSET, 8359 }, { 0x32be, G_UNICODE_NOT_PRESENT_OFFSET, 8362 }, { 0x32bf, G_UNICODE_NOT_PRESENT_OFFSET, 8365 }, { 0x32c0, G_UNICODE_NOT_PRESENT_OFFSET, 8368 }, { 0x32c1, G_UNICODE_NOT_PRESENT_OFFSET, 8373 }, { 0x32c2, G_UNICODE_NOT_PRESENT_OFFSET, 8378 }, { 0x32c3, G_UNICODE_NOT_PRESENT_OFFSET, 8383 }, { 0x32c4, G_UNICODE_NOT_PRESENT_OFFSET, 8388 }, { 0x32c5, G_UNICODE_NOT_PRESENT_OFFSET, 8393 }, { 0x32c6, G_UNICODE_NOT_PRESENT_OFFSET, 8398 }, { 0x32c7, G_UNICODE_NOT_PRESENT_OFFSET, 8403 }, { 0x32c8, G_UNICODE_NOT_PRESENT_OFFSET, 8408 }, { 0x32c9, G_UNICODE_NOT_PRESENT_OFFSET, 8413 }, { 0x32ca, G_UNICODE_NOT_PRESENT_OFFSET, 8419 }, { 0x32cb, G_UNICODE_NOT_PRESENT_OFFSET, 8425 }, { 0x32d0, G_UNICODE_NOT_PRESENT_OFFSET, 8431 }, { 0x32d1, G_UNICODE_NOT_PRESENT_OFFSET, 8435 }, { 0x32d2, G_UNICODE_NOT_PRESENT_OFFSET, 8439 }, { 0x32d3, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, { 0x32d4, G_UNICODE_NOT_PRESENT_OFFSET, 8447 }, { 0x32d5, G_UNICODE_NOT_PRESENT_OFFSET, 8451 }, { 0x32d6, G_UNICODE_NOT_PRESENT_OFFSET, 8455 }, { 0x32d7, G_UNICODE_NOT_PRESENT_OFFSET, 8459 }, { 0x32d8, G_UNICODE_NOT_PRESENT_OFFSET, 8463 }, { 0x32d9, G_UNICODE_NOT_PRESENT_OFFSET, 8467 }, { 0x32da, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, { 0x32db, G_UNICODE_NOT_PRESENT_OFFSET, 8475 }, { 0x32dc, G_UNICODE_NOT_PRESENT_OFFSET, 8479 }, { 0x32dd, G_UNICODE_NOT_PRESENT_OFFSET, 8483 }, { 0x32de, G_UNICODE_NOT_PRESENT_OFFSET, 8487 }, { 0x32df, G_UNICODE_NOT_PRESENT_OFFSET, 8491 }, { 0x32e0, G_UNICODE_NOT_PRESENT_OFFSET, 8495 }, { 0x32e1, G_UNICODE_NOT_PRESENT_OFFSET, 8499 }, { 0x32e2, G_UNICODE_NOT_PRESENT_OFFSET, 8503 }, { 0x32e3, G_UNICODE_NOT_PRESENT_OFFSET, 8507 }, { 0x32e4, G_UNICODE_NOT_PRESENT_OFFSET, 8511 }, { 0x32e5, G_UNICODE_NOT_PRESENT_OFFSET, 8515 }, { 0x32e6, G_UNICODE_NOT_PRESENT_OFFSET, 8519 }, { 0x32e7, G_UNICODE_NOT_PRESENT_OFFSET, 8523 }, { 0x32e8, G_UNICODE_NOT_PRESENT_OFFSET, 8527 }, { 0x32e9, G_UNICODE_NOT_PRESENT_OFFSET, 8531 }, { 0x32ea, G_UNICODE_NOT_PRESENT_OFFSET, 8535 }, { 0x32eb, G_UNICODE_NOT_PRESENT_OFFSET, 8539 }, { 0x32ec, G_UNICODE_NOT_PRESENT_OFFSET, 8543 }, { 0x32ed, G_UNICODE_NOT_PRESENT_OFFSET, 8547 }, { 0x32ee, G_UNICODE_NOT_PRESENT_OFFSET, 8551 }, { 0x32ef, G_UNICODE_NOT_PRESENT_OFFSET, 8555 }, { 0x32f0, G_UNICODE_NOT_PRESENT_OFFSET, 8559 }, { 0x32f1, G_UNICODE_NOT_PRESENT_OFFSET, 8563 }, { 0x32f2, G_UNICODE_NOT_PRESENT_OFFSET, 8567 }, { 0x32f3, G_UNICODE_NOT_PRESENT_OFFSET, 8571 }, { 0x32f4, G_UNICODE_NOT_PRESENT_OFFSET, 8575 }, { 0x32f5, G_UNICODE_NOT_PRESENT_OFFSET, 8579 }, { 0x32f6, G_UNICODE_NOT_PRESENT_OFFSET, 8583 }, { 0x32f7, G_UNICODE_NOT_PRESENT_OFFSET, 8587 }, { 0x32f8, G_UNICODE_NOT_PRESENT_OFFSET, 8591 }, { 0x32f9, G_UNICODE_NOT_PRESENT_OFFSET, 8595 }, { 0x32fa, G_UNICODE_NOT_PRESENT_OFFSET, 8599 }, { 0x32fb, G_UNICODE_NOT_PRESENT_OFFSET, 8603 }, { 0x32fc, G_UNICODE_NOT_PRESENT_OFFSET, 8607 }, { 0x32fd, G_UNICODE_NOT_PRESENT_OFFSET, 8611 }, { 0x32fe, G_UNICODE_NOT_PRESENT_OFFSET, 8615 }, { 0x3300, G_UNICODE_NOT_PRESENT_OFFSET, 8619 }, { 0x3301, G_UNICODE_NOT_PRESENT_OFFSET, 8635 }, { 0x3302, G_UNICODE_NOT_PRESENT_OFFSET, 8648 }, { 0x3303, G_UNICODE_NOT_PRESENT_OFFSET, 8664 }, { 0x3304, G_UNICODE_NOT_PRESENT_OFFSET, 8674 }, { 0x3305, G_UNICODE_NOT_PRESENT_OFFSET, 8690 }, { 0x3306, G_UNICODE_NOT_PRESENT_OFFSET, 8700 }, { 0x3307, G_UNICODE_NOT_PRESENT_OFFSET, 8710 }, { 0x3308, G_UNICODE_NOT_PRESENT_OFFSET, 8729 }, { 0x3309, G_UNICODE_NOT_PRESENT_OFFSET, 8742 }, { 0x330a, G_UNICODE_NOT_PRESENT_OFFSET, 8752 }, { 0x330b, G_UNICODE_NOT_PRESENT_OFFSET, 8762 }, { 0x330c, G_UNICODE_NOT_PRESENT_OFFSET, 8772 }, { 0x330d, G_UNICODE_NOT_PRESENT_OFFSET, 8785 }, { 0x330e, G_UNICODE_NOT_PRESENT_OFFSET, 8798 }, { 0x330f, G_UNICODE_NOT_PRESENT_OFFSET, 8811 }, { 0x3310, G_UNICODE_NOT_PRESENT_OFFSET, 8824 }, { 0x3311, G_UNICODE_NOT_PRESENT_OFFSET, 8837 }, { 0x3312, G_UNICODE_NOT_PRESENT_OFFSET, 8850 }, { 0x3313, G_UNICODE_NOT_PRESENT_OFFSET, 8863 }, { 0x3314, G_UNICODE_NOT_PRESENT_OFFSET, 8882 }, { 0x3315, G_UNICODE_NOT_PRESENT_OFFSET, 8889 }, { 0x3316, G_UNICODE_NOT_PRESENT_OFFSET, 8908 }, { 0x3317, G_UNICODE_NOT_PRESENT_OFFSET, 8927 }, { 0x3318, G_UNICODE_NOT_PRESENT_OFFSET, 8943 }, { 0x3319, G_UNICODE_NOT_PRESENT_OFFSET, 8956 }, { 0x331a, G_UNICODE_NOT_PRESENT_OFFSET, 8975 }, { 0x331b, G_UNICODE_NOT_PRESENT_OFFSET, 8994 }, { 0x331c, G_UNICODE_NOT_PRESENT_OFFSET, 9007 }, { 0x331d, G_UNICODE_NOT_PRESENT_OFFSET, 9017 }, { 0x331e, G_UNICODE_NOT_PRESENT_OFFSET, 9027 }, { 0x331f, G_UNICODE_NOT_PRESENT_OFFSET, 9040 }, { 0x3320, G_UNICODE_NOT_PRESENT_OFFSET, 9053 }, { 0x3321, G_UNICODE_NOT_PRESENT_OFFSET, 9069 }, { 0x3322, G_UNICODE_NOT_PRESENT_OFFSET, 9085 }, { 0x3323, G_UNICODE_NOT_PRESENT_OFFSET, 9095 }, { 0x3324, G_UNICODE_NOT_PRESENT_OFFSET, 9105 }, { 0x3325, G_UNICODE_NOT_PRESENT_OFFSET, 9118 }, { 0x3326, G_UNICODE_NOT_PRESENT_OFFSET, 9128 }, { 0x3327, G_UNICODE_NOT_PRESENT_OFFSET, 9138 }, { 0x3328, G_UNICODE_NOT_PRESENT_OFFSET, 9145 }, { 0x3329, G_UNICODE_NOT_PRESENT_OFFSET, 9152 }, { 0x332a, G_UNICODE_NOT_PRESENT_OFFSET, 9162 }, { 0x332b, G_UNICODE_NOT_PRESENT_OFFSET, 9172 }, { 0x332c, G_UNICODE_NOT_PRESENT_OFFSET, 9191 }, { 0x332d, G_UNICODE_NOT_PRESENT_OFFSET, 9204 }, { 0x332e, G_UNICODE_NOT_PRESENT_OFFSET, 9220 }, { 0x332f, G_UNICODE_NOT_PRESENT_OFFSET, 9239 }, { 0x3330, G_UNICODE_NOT_PRESENT_OFFSET, 9252 }, { 0x3331, G_UNICODE_NOT_PRESENT_OFFSET, 9262 }, { 0x3332, G_UNICODE_NOT_PRESENT_OFFSET, 9272 }, { 0x3333, G_UNICODE_NOT_PRESENT_OFFSET, 9291 }, { 0x3334, G_UNICODE_NOT_PRESENT_OFFSET, 9304 }, { 0x3335, G_UNICODE_NOT_PRESENT_OFFSET, 9323 }, { 0x3336, G_UNICODE_NOT_PRESENT_OFFSET, 9333 }, { 0x3337, G_UNICODE_NOT_PRESENT_OFFSET, 9349 }, { 0x3338, G_UNICODE_NOT_PRESENT_OFFSET, 9359 }, { 0x3339, G_UNICODE_NOT_PRESENT_OFFSET, 9372 }, { 0x333a, G_UNICODE_NOT_PRESENT_OFFSET, 9382 }, { 0x333b, G_UNICODE_NOT_PRESENT_OFFSET, 9395 }, { 0x333c, G_UNICODE_NOT_PRESENT_OFFSET, 9411 }, { 0x333d, G_UNICODE_NOT_PRESENT_OFFSET, 9424 }, { 0x333e, G_UNICODE_NOT_PRESENT_OFFSET, 9440 }, { 0x333f, G_UNICODE_NOT_PRESENT_OFFSET, 9453 }, { 0x3340, G_UNICODE_NOT_PRESENT_OFFSET, 9460 }, { 0x3341, G_UNICODE_NOT_PRESENT_OFFSET, 9476 }, { 0x3342, G_UNICODE_NOT_PRESENT_OFFSET, 9486 }, { 0x3343, G_UNICODE_NOT_PRESENT_OFFSET, 9496 }, { 0x3344, G_UNICODE_NOT_PRESENT_OFFSET, 9509 }, { 0x3345, G_UNICODE_NOT_PRESENT_OFFSET, 9519 }, { 0x3346, G_UNICODE_NOT_PRESENT_OFFSET, 9529 }, { 0x3347, G_UNICODE_NOT_PRESENT_OFFSET, 9539 }, { 0x3348, G_UNICODE_NOT_PRESENT_OFFSET, 9555 }, { 0x3349, G_UNICODE_NOT_PRESENT_OFFSET, 9568 }, { 0x334a, G_UNICODE_NOT_PRESENT_OFFSET, 9575 }, { 0x334b, G_UNICODE_NOT_PRESENT_OFFSET, 9594 }, { 0x334c, G_UNICODE_NOT_PRESENT_OFFSET, 9604 }, { 0x334d, G_UNICODE_NOT_PRESENT_OFFSET, 9620 }, { 0x334e, G_UNICODE_NOT_PRESENT_OFFSET, 9633 }, { 0x334f, G_UNICODE_NOT_PRESENT_OFFSET, 9646 }, { 0x3350, G_UNICODE_NOT_PRESENT_OFFSET, 9656 }, { 0x3351, G_UNICODE_NOT_PRESENT_OFFSET, 9666 }, { 0x3352, G_UNICODE_NOT_PRESENT_OFFSET, 9679 }, { 0x3353, G_UNICODE_NOT_PRESENT_OFFSET, 9686 }, { 0x3354, G_UNICODE_NOT_PRESENT_OFFSET, 9699 }, { 0x3355, G_UNICODE_NOT_PRESENT_OFFSET, 9715 }, { 0x3356, G_UNICODE_NOT_PRESENT_OFFSET, 9722 }, { 0x3357, G_UNICODE_NOT_PRESENT_OFFSET, 9741 }, { 0x3358, G_UNICODE_NOT_PRESENT_OFFSET, 9751 }, { 0x3359, G_UNICODE_NOT_PRESENT_OFFSET, 9756 }, { 0x335a, G_UNICODE_NOT_PRESENT_OFFSET, 9761 }, { 0x335b, G_UNICODE_NOT_PRESENT_OFFSET, 9766 }, { 0x335c, G_UNICODE_NOT_PRESENT_OFFSET, 9771 }, { 0x335d, G_UNICODE_NOT_PRESENT_OFFSET, 9776 }, { 0x335e, G_UNICODE_NOT_PRESENT_OFFSET, 9781 }, { 0x335f, G_UNICODE_NOT_PRESENT_OFFSET, 9786 }, { 0x3360, G_UNICODE_NOT_PRESENT_OFFSET, 9791 }, { 0x3361, G_UNICODE_NOT_PRESENT_OFFSET, 9796 }, { 0x3362, G_UNICODE_NOT_PRESENT_OFFSET, 9801 }, { 0x3363, G_UNICODE_NOT_PRESENT_OFFSET, 9807 }, { 0x3364, G_UNICODE_NOT_PRESENT_OFFSET, 9813 }, { 0x3365, G_UNICODE_NOT_PRESENT_OFFSET, 9819 }, { 0x3366, G_UNICODE_NOT_PRESENT_OFFSET, 9825 }, { 0x3367, G_UNICODE_NOT_PRESENT_OFFSET, 9831 }, { 0x3368, G_UNICODE_NOT_PRESENT_OFFSET, 9837 }, { 0x3369, G_UNICODE_NOT_PRESENT_OFFSET, 9843 }, { 0x336a, G_UNICODE_NOT_PRESENT_OFFSET, 9849 }, { 0x336b, G_UNICODE_NOT_PRESENT_OFFSET, 9855 }, { 0x336c, G_UNICODE_NOT_PRESENT_OFFSET, 9861 }, { 0x336d, G_UNICODE_NOT_PRESENT_OFFSET, 9867 }, { 0x336e, G_UNICODE_NOT_PRESENT_OFFSET, 9873 }, { 0x336f, G_UNICODE_NOT_PRESENT_OFFSET, 9879 }, { 0x3370, G_UNICODE_NOT_PRESENT_OFFSET, 9885 }, { 0x3371, G_UNICODE_NOT_PRESENT_OFFSET, 9891 }, { 0x3372, G_UNICODE_NOT_PRESENT_OFFSET, 9895 }, { 0x3373, G_UNICODE_NOT_PRESENT_OFFSET, 9898 }, { 0x3374, G_UNICODE_NOT_PRESENT_OFFSET, 9901 }, { 0x3375, G_UNICODE_NOT_PRESENT_OFFSET, 9905 }, { 0x3376, G_UNICODE_NOT_PRESENT_OFFSET, 9908 }, { 0x337b, G_UNICODE_NOT_PRESENT_OFFSET, 9911 }, { 0x337c, G_UNICODE_NOT_PRESENT_OFFSET, 9918 }, { 0x337d, G_UNICODE_NOT_PRESENT_OFFSET, 9925 }, { 0x337e, G_UNICODE_NOT_PRESENT_OFFSET, 9932 }, { 0x337f, G_UNICODE_NOT_PRESENT_OFFSET, 9939 }, { 0x3380, G_UNICODE_NOT_PRESENT_OFFSET, 9952 }, { 0x3381, G_UNICODE_NOT_PRESENT_OFFSET, 9955 }, { 0x3382, G_UNICODE_NOT_PRESENT_OFFSET, 9958 }, { 0x3383, G_UNICODE_NOT_PRESENT_OFFSET, 9962 }, { 0x3384, G_UNICODE_NOT_PRESENT_OFFSET, 9965 }, { 0x3385, G_UNICODE_NOT_PRESENT_OFFSET, 9968 }, { 0x3386, G_UNICODE_NOT_PRESENT_OFFSET, 9971 }, { 0x3387, G_UNICODE_NOT_PRESENT_OFFSET, 9974 }, { 0x3388, G_UNICODE_NOT_PRESENT_OFFSET, 9977 }, { 0x3389, G_UNICODE_NOT_PRESENT_OFFSET, 9981 }, { 0x338a, G_UNICODE_NOT_PRESENT_OFFSET, 9986 }, { 0x338b, G_UNICODE_NOT_PRESENT_OFFSET, 9989 }, { 0x338c, G_UNICODE_NOT_PRESENT_OFFSET, 9992 }, { 0x338d, G_UNICODE_NOT_PRESENT_OFFSET, 9996 }, { 0x338e, G_UNICODE_NOT_PRESENT_OFFSET, 10000 }, { 0x338f, G_UNICODE_NOT_PRESENT_OFFSET, 10003 }, { 0x3390, G_UNICODE_NOT_PRESENT_OFFSET, 10006 }, { 0x3391, G_UNICODE_NOT_PRESENT_OFFSET, 10009 }, { 0x3392, G_UNICODE_NOT_PRESENT_OFFSET, 10013 }, { 0x3393, G_UNICODE_NOT_PRESENT_OFFSET, 10017 }, { 0x3394, G_UNICODE_NOT_PRESENT_OFFSET, 10021 }, { 0x3395, G_UNICODE_NOT_PRESENT_OFFSET, 10025 }, { 0x3396, G_UNICODE_NOT_PRESENT_OFFSET, 10029 }, { 0x3397, G_UNICODE_NOT_PRESENT_OFFSET, 10032 }, { 0x3398, G_UNICODE_NOT_PRESENT_OFFSET, 10035 }, { 0x3399, G_UNICODE_NOT_PRESENT_OFFSET, 10038 }, { 0x339a, G_UNICODE_NOT_PRESENT_OFFSET, 10041 }, { 0x339b, G_UNICODE_NOT_PRESENT_OFFSET, 10044 }, { 0x339c, G_UNICODE_NOT_PRESENT_OFFSET, 10048 }, { 0x339d, G_UNICODE_NOT_PRESENT_OFFSET, 10051 }, { 0x339e, G_UNICODE_NOT_PRESENT_OFFSET, 10054 }, { 0x339f, G_UNICODE_NOT_PRESENT_OFFSET, 10057 }, { 0x33a0, G_UNICODE_NOT_PRESENT_OFFSET, 10061 }, { 0x33a1, G_UNICODE_NOT_PRESENT_OFFSET, 10065 }, { 0x33a2, G_UNICODE_NOT_PRESENT_OFFSET, 10068 }, { 0x33a3, G_UNICODE_NOT_PRESENT_OFFSET, 10072 }, { 0x33a4, G_UNICODE_NOT_PRESENT_OFFSET, 10076 }, { 0x33a5, G_UNICODE_NOT_PRESENT_OFFSET, 10080 }, { 0x33a6, G_UNICODE_NOT_PRESENT_OFFSET, 10083 }, { 0x33a7, G_UNICODE_NOT_PRESENT_OFFSET, 10087 }, { 0x33a8, G_UNICODE_NOT_PRESENT_OFFSET, 10093 }, { 0x33a9, G_UNICODE_NOT_PRESENT_OFFSET, 10100 }, { 0x33aa, G_UNICODE_NOT_PRESENT_OFFSET, 10103 }, { 0x33ab, G_UNICODE_NOT_PRESENT_OFFSET, 10107 }, { 0x33ac, G_UNICODE_NOT_PRESENT_OFFSET, 10111 }, { 0x33ad, G_UNICODE_NOT_PRESENT_OFFSET, 10115 }, { 0x33ae, G_UNICODE_NOT_PRESENT_OFFSET, 10119 }, { 0x33af, G_UNICODE_NOT_PRESENT_OFFSET, 10127 }, { 0x33b0, G_UNICODE_NOT_PRESENT_OFFSET, 10136 }, { 0x33b1, G_UNICODE_NOT_PRESENT_OFFSET, 10139 }, { 0x33b2, G_UNICODE_NOT_PRESENT_OFFSET, 10142 }, { 0x33b3, G_UNICODE_NOT_PRESENT_OFFSET, 10146 }, { 0x33b4, G_UNICODE_NOT_PRESENT_OFFSET, 10149 }, { 0x33b5, G_UNICODE_NOT_PRESENT_OFFSET, 10152 }, { 0x33b6, G_UNICODE_NOT_PRESENT_OFFSET, 10155 }, { 0x33b7, G_UNICODE_NOT_PRESENT_OFFSET, 10159 }, { 0x33b8, G_UNICODE_NOT_PRESENT_OFFSET, 10162 }, { 0x33b9, G_UNICODE_NOT_PRESENT_OFFSET, 10165 }, { 0x33ba, G_UNICODE_NOT_PRESENT_OFFSET, 10168 }, { 0x33bb, G_UNICODE_NOT_PRESENT_OFFSET, 10171 }, { 0x33bc, G_UNICODE_NOT_PRESENT_OFFSET, 10174 }, { 0x33bd, G_UNICODE_NOT_PRESENT_OFFSET, 10178 }, { 0x33be, G_UNICODE_NOT_PRESENT_OFFSET, 10181 }, { 0x33bf, G_UNICODE_NOT_PRESENT_OFFSET, 10184 }, { 0x33c0, G_UNICODE_NOT_PRESENT_OFFSET, 10187 }, { 0x33c1, G_UNICODE_NOT_PRESENT_OFFSET, 10191 }, { 0x33c2, G_UNICODE_NOT_PRESENT_OFFSET, 10195 }, { 0x33c3, G_UNICODE_NOT_PRESENT_OFFSET, 10200 }, { 0x33c4, G_UNICODE_NOT_PRESENT_OFFSET, 10203 }, { 0x33c5, G_UNICODE_NOT_PRESENT_OFFSET, 10206 }, { 0x33c6, G_UNICODE_NOT_PRESENT_OFFSET, 10209 }, { 0x33c7, G_UNICODE_NOT_PRESENT_OFFSET, 10216 }, { 0x33c8, G_UNICODE_NOT_PRESENT_OFFSET, 10220 }, { 0x33c9, G_UNICODE_NOT_PRESENT_OFFSET, 10223 }, { 0x33ca, G_UNICODE_NOT_PRESENT_OFFSET, 10226 }, { 0x33cb, G_UNICODE_NOT_PRESENT_OFFSET, 10229 }, { 0x33cc, G_UNICODE_NOT_PRESENT_OFFSET, 10232 }, { 0x33cd, G_UNICODE_NOT_PRESENT_OFFSET, 10235 }, { 0x33ce, G_UNICODE_NOT_PRESENT_OFFSET, 10238 }, { 0x33cf, G_UNICODE_NOT_PRESENT_OFFSET, 10241 }, { 0x33d0, G_UNICODE_NOT_PRESENT_OFFSET, 10244 }, { 0x33d1, G_UNICODE_NOT_PRESENT_OFFSET, 10247 }, { 0x33d2, G_UNICODE_NOT_PRESENT_OFFSET, 10250 }, { 0x33d3, G_UNICODE_NOT_PRESENT_OFFSET, 10254 }, { 0x33d4, G_UNICODE_NOT_PRESENT_OFFSET, 10257 }, { 0x33d5, G_UNICODE_NOT_PRESENT_OFFSET, 10260 }, { 0x33d6, G_UNICODE_NOT_PRESENT_OFFSET, 10264 }, { 0x33d7, G_UNICODE_NOT_PRESENT_OFFSET, 10268 }, { 0x33d8, G_UNICODE_NOT_PRESENT_OFFSET, 10271 }, { 0x33d9, G_UNICODE_NOT_PRESENT_OFFSET, 10276 }, { 0x33da, G_UNICODE_NOT_PRESENT_OFFSET, 10280 }, { 0x33db, G_UNICODE_NOT_PRESENT_OFFSET, 10283 }, { 0x33dc, G_UNICODE_NOT_PRESENT_OFFSET, 10286 }, { 0x33dd, G_UNICODE_NOT_PRESENT_OFFSET, 10289 }, { 0x33e0, G_UNICODE_NOT_PRESENT_OFFSET, 10292 }, { 0x33e1, G_UNICODE_NOT_PRESENT_OFFSET, 10297 }, { 0x33e2, G_UNICODE_NOT_PRESENT_OFFSET, 10302 }, { 0x33e3, G_UNICODE_NOT_PRESENT_OFFSET, 10307 }, { 0x33e4, G_UNICODE_NOT_PRESENT_OFFSET, 10312 }, { 0x33e5, G_UNICODE_NOT_PRESENT_OFFSET, 10317 }, { 0x33e6, G_UNICODE_NOT_PRESENT_OFFSET, 10322 }, { 0x33e7, G_UNICODE_NOT_PRESENT_OFFSET, 10327 }, { 0x33e8, G_UNICODE_NOT_PRESENT_OFFSET, 10332 }, { 0x33e9, G_UNICODE_NOT_PRESENT_OFFSET, 10337 }, { 0x33ea, G_UNICODE_NOT_PRESENT_OFFSET, 10343 }, { 0x33eb, G_UNICODE_NOT_PRESENT_OFFSET, 10349 }, { 0x33ec, G_UNICODE_NOT_PRESENT_OFFSET, 10355 }, { 0x33ed, G_UNICODE_NOT_PRESENT_OFFSET, 10361 }, { 0x33ee, G_UNICODE_NOT_PRESENT_OFFSET, 10367 }, { 0x33ef, G_UNICODE_NOT_PRESENT_OFFSET, 10373 }, { 0x33f0, G_UNICODE_NOT_PRESENT_OFFSET, 10379 }, { 0x33f1, G_UNICODE_NOT_PRESENT_OFFSET, 10385 }, { 0x33f2, G_UNICODE_NOT_PRESENT_OFFSET, 10391 }, { 0x33f3, G_UNICODE_NOT_PRESENT_OFFSET, 10397 }, { 0x33f4, G_UNICODE_NOT_PRESENT_OFFSET, 10403 }, { 0x33f5, G_UNICODE_NOT_PRESENT_OFFSET, 10409 }, { 0x33f6, G_UNICODE_NOT_PRESENT_OFFSET, 10415 }, { 0x33f7, G_UNICODE_NOT_PRESENT_OFFSET, 10421 }, { 0x33f8, G_UNICODE_NOT_PRESENT_OFFSET, 10427 }, { 0x33f9, G_UNICODE_NOT_PRESENT_OFFSET, 10433 }, { 0x33fa, G_UNICODE_NOT_PRESENT_OFFSET, 10439 }, { 0x33fb, G_UNICODE_NOT_PRESENT_OFFSET, 10445 }, { 0x33fc, G_UNICODE_NOT_PRESENT_OFFSET, 10451 }, { 0x33fd, G_UNICODE_NOT_PRESENT_OFFSET, 10457 }, { 0x33fe, G_UNICODE_NOT_PRESENT_OFFSET, 10463 }, { 0xf900, 10469, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf901, 10473, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf902, 6535, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf903, 10477, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf904, 10481, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf905, 10485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf906, 10489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf907, 6751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf908, 6751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf909, 10493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90a, 6567, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90b, 10497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90c, 10501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90d, 10505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90e, 10509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90f, 10513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf910, 10517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf911, 10521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf912, 10525, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf913, 10529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf914, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf915, 10537, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf916, 10541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf917, 10545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf918, 10549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf919, 10553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91a, 10557, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91b, 10561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91c, 10565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91d, 10569, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91e, 10573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91f, 10577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf920, 10581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf921, 10585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf922, 10589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf923, 10593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf924, 10597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf925, 10601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf926, 10605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf927, 10609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf928, 10613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf929, 10617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92a, 10621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92b, 10625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92c, 10629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92d, 10633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92e, 10637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92f, 10641, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf930, 10645, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf931, 10649, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf932, 10653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf933, 10657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf934, 6399, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf935, 10661, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf936, 10665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf937, 10669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf938, 10673, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf939, 10677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93a, 10681, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93b, 10685, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93c, 10689, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93d, 10693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93e, 10697, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93f, 10701, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf940, 6691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf941, 10705, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf942, 10709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf943, 10713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf944, 10717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf945, 10721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf946, 10725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf947, 10729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf948, 10733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf949, 10737, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94a, 10741, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94b, 10745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94c, 10749, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94d, 10753, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94e, 10757, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94f, 10761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf950, 10765, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf951, 10769, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf952, 10773, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf953, 10777, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf954, 10781, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf955, 10785, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf956, 10789, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf957, 10793, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf958, 10797, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf959, 10801, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95a, 10805, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95b, 10809, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95c, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95d, 10813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95e, 10817, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95f, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf960, 10825, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf961, 10829, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf962, 10833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf963, 10837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf964, 10841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf965, 10845, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf966, 10849, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf967, 10853, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf968, 10857, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf969, 10861, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96a, 10865, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96b, 10869, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96c, 10873, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96d, 10877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96e, 10881, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96f, 10885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf970, 10889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf971, 6543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf972, 10893, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf973, 10897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf974, 10901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf975, 10905, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf976, 10909, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf977, 10913, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf978, 10917, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf979, 10921, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97a, 10925, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97b, 10929, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97c, 10933, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97d, 10937, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97e, 10941, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97f, 10945, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf980, 10949, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf981, 6051, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf982, 10953, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf983, 10957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf984, 10961, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf985, 10965, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf986, 10969, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf987, 10973, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf988, 10977, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf989, 10981, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98a, 5975, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98b, 10985, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98c, 10989, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98d, 10993, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98e, 10997, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98f, 11001, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf990, 11005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf991, 11009, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf992, 11013, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf993, 11017, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf994, 11021, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf995, 11025, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf996, 11029, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf997, 11033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf998, 11037, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf999, 11041, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99a, 11045, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99b, 11049, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99c, 11053, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99d, 11057, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99e, 11061, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99f, 11065, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a0, 11069, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a1, 10885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a2, 11073, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a3, 11077, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a4, 11081, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a5, 11085, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a6, 11089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a7, 11093, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a8, 11097, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a9, 11101, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9aa, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ab, 11105, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ac, 11109, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ad, 11113, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ae, 11117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9af, 11121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b0, 11125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b1, 11129, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b2, 11133, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b3, 11137, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b4, 11141, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b5, 11145, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b6, 11149, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b7, 11153, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b8, 11157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b9, 11161, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ba, 11165, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bb, 11169, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bc, 11173, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bd, 11177, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9be, 11181, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bf, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c0, 11185, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c1, 11189, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c2, 11193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c3, 11197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c4, 6747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c5, 11201, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c6, 11205, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c7, 11209, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c8, 11213, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c9, 11217, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ca, 11221, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cb, 11225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cc, 11229, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cd, 11233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ce, 11237, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cf, 11241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d0, 11245, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d1, 8199, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d2, 11249, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d3, 11253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d4, 11257, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d5, 11261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d6, 11265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d7, 11269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d8, 11273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d9, 11277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9da, 11281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9db, 10829, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9dc, 11285, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9dd, 11289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9de, 11293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9df, 11297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e0, 11301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e1, 11305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e2, 11309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e3, 11313, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e4, 11317, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e5, 11321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e6, 11325, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e7, 11329, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e8, 11333, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e9, 6563, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ea, 11337, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9eb, 11341, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ec, 11345, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ed, 11349, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ee, 11353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ef, 11357, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f0, 11361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f1, 11365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f2, 11369, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f3, 11373, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f4, 11377, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f5, 11381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f6, 11385, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f7, 6367, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f8, 11389, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f9, 11393, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fa, 11397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fb, 11401, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fc, 11405, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fd, 11409, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fe, 11413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ff, 11417, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa00, 11421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa01, 11425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa02, 11429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa03, 11433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa04, 11437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa05, 11441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa06, 11445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa07, 11449, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa08, 6475, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa09, 11453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0a, 6487, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0b, 11457, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0c, 11461, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0d, 11465, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa10, 11469, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa12, 11473, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa15, 11477, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa16, 11481, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa17, 11485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa18, 11489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa19, 11493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1a, 11497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1b, 11501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1c, 11505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1d, 11509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1e, 6395, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa20, 11513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa22, 11517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa25, 11521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa26, 11525, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2a, 11529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2b, 11533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2c, 11537, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2d, 11541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa30, 11545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa31, 11549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa32, 11553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa33, 11557, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa34, 11561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa35, 11565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa36, 11569, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa37, 11573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa38, 11577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa39, 11581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3a, 11585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3b, 11589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3c, 6079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3d, 11593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3e, 11597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3f, 11601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa40, 11605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa41, 11609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa42, 11613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa43, 11617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa44, 11621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa45, 11625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa46, 11629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa47, 11633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa48, 11637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa49, 11641, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4a, 11645, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4b, 11649, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4c, 8219, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4d, 11653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4e, 11657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4f, 11661, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa50, 11665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa51, 8235, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa52, 11669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa53, 11673, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa54, 11677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa55, 11681, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa56, 11685, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa57, 11029, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa58, 11689, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa59, 11693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5a, 11697, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5b, 11701, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5c, 11705, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5d, 11709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5e, 11709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5f, 11713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa60, 11717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa61, 11721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa62, 11725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa63, 11729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa64, 11733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa65, 11737, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa66, 11741, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa67, 11521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa68, 11745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa69, 11749, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa6a, 11753, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb00, G_UNICODE_NOT_PRESENT_OFFSET, 11757 }, { 0xfb01, G_UNICODE_NOT_PRESENT_OFFSET, 11760 }, { 0xfb02, G_UNICODE_NOT_PRESENT_OFFSET, 11763 }, { 0xfb03, G_UNICODE_NOT_PRESENT_OFFSET, 11766 }, { 0xfb04, G_UNICODE_NOT_PRESENT_OFFSET, 11770 }, { 0xfb05, G_UNICODE_NOT_PRESENT_OFFSET, 11774 }, { 0xfb06, G_UNICODE_NOT_PRESENT_OFFSET, 11774 }, { 0xfb13, G_UNICODE_NOT_PRESENT_OFFSET, 11777 }, { 0xfb14, G_UNICODE_NOT_PRESENT_OFFSET, 11782 }, { 0xfb15, G_UNICODE_NOT_PRESENT_OFFSET, 11787 }, { 0xfb16, G_UNICODE_NOT_PRESENT_OFFSET, 11792 }, { 0xfb17, G_UNICODE_NOT_PRESENT_OFFSET, 11797 }, { 0xfb1d, 11802, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb1f, 11807, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb20, G_UNICODE_NOT_PRESENT_OFFSET, 11812 }, { 0xfb21, G_UNICODE_NOT_PRESENT_OFFSET, 5052 }, { 0xfb22, G_UNICODE_NOT_PRESENT_OFFSET, 5061 }, { 0xfb23, G_UNICODE_NOT_PRESENT_OFFSET, 11815 }, { 0xfb24, G_UNICODE_NOT_PRESENT_OFFSET, 11818 }, { 0xfb25, G_UNICODE_NOT_PRESENT_OFFSET, 11821 }, { 0xfb26, G_UNICODE_NOT_PRESENT_OFFSET, 11824 }, { 0xfb27, G_UNICODE_NOT_PRESENT_OFFSET, 11827 }, { 0xfb28, G_UNICODE_NOT_PRESENT_OFFSET, 11830 }, { 0xfb29, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0xfb2a, 11833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2b, 11838, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2c, 11843, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2d, 11850, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2e, 11857, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2f, 11862, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb30, 11867, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb31, 11872, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb32, 11877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb33, 11882, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb34, 11887, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb35, 11892, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb36, 11897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb38, 11902, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb39, 11907, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3a, 11912, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3b, 11917, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3c, 11922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3e, 11927, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb40, 11932, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb41, 11937, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb43, 11942, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb44, 11947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb46, 11952, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb47, 11957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb48, 11962, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb49, 11967, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4a, 11972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4b, 11977, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4c, 11982, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4d, 11987, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4e, 11992, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4f, G_UNICODE_NOT_PRESENT_OFFSET, 11997 }, { 0xfb50, G_UNICODE_NOT_PRESENT_OFFSET, 12002 }, { 0xfb51, G_UNICODE_NOT_PRESENT_OFFSET, 12002 }, { 0xfb52, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb53, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb54, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb55, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb56, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb57, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb58, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb59, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb5a, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5b, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5c, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5d, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5e, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb5f, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb60, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb61, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb62, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb63, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb64, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb65, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb66, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb67, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb68, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb69, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb6a, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6b, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6c, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6d, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6e, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb6f, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb70, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb71, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb72, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb73, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb74, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb75, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb76, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb77, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb78, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb79, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb7a, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7b, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7c, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7d, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7e, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb7f, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb80, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb81, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb82, G_UNICODE_NOT_PRESENT_OFFSET, 12041 }, { 0xfb83, G_UNICODE_NOT_PRESENT_OFFSET, 12041 }, { 0xfb84, G_UNICODE_NOT_PRESENT_OFFSET, 12044 }, { 0xfb85, G_UNICODE_NOT_PRESENT_OFFSET, 12044 }, { 0xfb86, G_UNICODE_NOT_PRESENT_OFFSET, 12047 }, { 0xfb87, G_UNICODE_NOT_PRESENT_OFFSET, 12047 }, { 0xfb88, G_UNICODE_NOT_PRESENT_OFFSET, 12050 }, { 0xfb89, G_UNICODE_NOT_PRESENT_OFFSET, 12050 }, { 0xfb8a, G_UNICODE_NOT_PRESENT_OFFSET, 12053 }, { 0xfb8b, G_UNICODE_NOT_PRESENT_OFFSET, 12053 }, { 0xfb8c, G_UNICODE_NOT_PRESENT_OFFSET, 12056 }, { 0xfb8d, G_UNICODE_NOT_PRESENT_OFFSET, 12056 }, { 0xfb8e, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb8f, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb90, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb91, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb92, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb93, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb94, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb95, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb96, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb97, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb98, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb99, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb9a, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9b, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9c, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9d, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9e, G_UNICODE_NOT_PRESENT_OFFSET, 12071 }, { 0xfb9f, G_UNICODE_NOT_PRESENT_OFFSET, 12071 }, { 0xfba0, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba1, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba2, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba3, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba4, G_UNICODE_NOT_PRESENT_OFFSET, 1718 }, { 0xfba5, G_UNICODE_NOT_PRESENT_OFFSET, 1718 }, { 0xfba6, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfba7, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfba8, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfba9, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfbaa, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbab, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbac, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbad, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbae, G_UNICODE_NOT_PRESENT_OFFSET, 12083 }, { 0xfbaf, G_UNICODE_NOT_PRESENT_OFFSET, 12083 }, { 0xfbb0, G_UNICODE_NOT_PRESENT_OFFSET, 1728 }, { 0xfbb1, G_UNICODE_NOT_PRESENT_OFFSET, 1728 }, { 0xfbd3, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd4, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd5, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd6, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd7, G_UNICODE_NOT_PRESENT_OFFSET, 12089 }, { 0xfbd8, G_UNICODE_NOT_PRESENT_OFFSET, 12089 }, { 0xfbd9, G_UNICODE_NOT_PRESENT_OFFSET, 12092 }, { 0xfbda, G_UNICODE_NOT_PRESENT_OFFSET, 12092 }, { 0xfbdb, G_UNICODE_NOT_PRESENT_OFFSET, 12095 }, { 0xfbdc, G_UNICODE_NOT_PRESENT_OFFSET, 12095 }, { 0xfbdd, G_UNICODE_NOT_PRESENT_OFFSET, 1708 }, { 0xfbde, G_UNICODE_NOT_PRESENT_OFFSET, 12098 }, { 0xfbdf, G_UNICODE_NOT_PRESENT_OFFSET, 12098 }, { 0xfbe0, G_UNICODE_NOT_PRESENT_OFFSET, 12101 }, { 0xfbe1, G_UNICODE_NOT_PRESENT_OFFSET, 12101 }, { 0xfbe2, G_UNICODE_NOT_PRESENT_OFFSET, 12104 }, { 0xfbe3, G_UNICODE_NOT_PRESENT_OFFSET, 12104 }, { 0xfbe4, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe5, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe6, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe7, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe8, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfbe9, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfbea, G_UNICODE_NOT_PRESENT_OFFSET, 12113 }, { 0xfbeb, G_UNICODE_NOT_PRESENT_OFFSET, 12113 }, { 0xfbec, G_UNICODE_NOT_PRESENT_OFFSET, 12120 }, { 0xfbed, G_UNICODE_NOT_PRESENT_OFFSET, 12120 }, { 0xfbee, G_UNICODE_NOT_PRESENT_OFFSET, 12127 }, { 0xfbef, G_UNICODE_NOT_PRESENT_OFFSET, 12127 }, { 0xfbf0, G_UNICODE_NOT_PRESENT_OFFSET, 12134 }, { 0xfbf1, G_UNICODE_NOT_PRESENT_OFFSET, 12134 }, { 0xfbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12141 }, { 0xfbf3, G_UNICODE_NOT_PRESENT_OFFSET, 12141 }, { 0xfbf4, G_UNICODE_NOT_PRESENT_OFFSET, 12148 }, { 0xfbf5, G_UNICODE_NOT_PRESENT_OFFSET, 12148 }, { 0xfbf6, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, { 0xfbf7, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, { 0xfbf8, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, { 0xfbf9, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfbfa, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfbfb, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfbfc, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfbfd, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfbfe, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfbff, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfc00, G_UNICODE_NOT_PRESENT_OFFSET, 12172 }, { 0xfc01, G_UNICODE_NOT_PRESENT_OFFSET, 12179 }, { 0xfc02, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfc03, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfc04, G_UNICODE_NOT_PRESENT_OFFSET, 12193 }, { 0xfc05, G_UNICODE_NOT_PRESENT_OFFSET, 12200 }, { 0xfc06, G_UNICODE_NOT_PRESENT_OFFSET, 12205 }, { 0xfc07, G_UNICODE_NOT_PRESENT_OFFSET, 12210 }, { 0xfc08, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfc09, G_UNICODE_NOT_PRESENT_OFFSET, 12220 }, { 0xfc0a, G_UNICODE_NOT_PRESENT_OFFSET, 12225 }, { 0xfc0b, G_UNICODE_NOT_PRESENT_OFFSET, 12230 }, { 0xfc0c, G_UNICODE_NOT_PRESENT_OFFSET, 12235 }, { 0xfc0d, G_UNICODE_NOT_PRESENT_OFFSET, 12240 }, { 0xfc0e, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfc0f, G_UNICODE_NOT_PRESENT_OFFSET, 12250 }, { 0xfc10, G_UNICODE_NOT_PRESENT_OFFSET, 12255 }, { 0xfc11, G_UNICODE_NOT_PRESENT_OFFSET, 12260 }, { 0xfc12, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfc13, G_UNICODE_NOT_PRESENT_OFFSET, 12270 }, { 0xfc14, G_UNICODE_NOT_PRESENT_OFFSET, 12275 }, { 0xfc15, G_UNICODE_NOT_PRESENT_OFFSET, 12280 }, { 0xfc16, G_UNICODE_NOT_PRESENT_OFFSET, 12285 }, { 0xfc17, G_UNICODE_NOT_PRESENT_OFFSET, 12290 }, { 0xfc18, G_UNICODE_NOT_PRESENT_OFFSET, 12295 }, { 0xfc19, G_UNICODE_NOT_PRESENT_OFFSET, 12300 }, { 0xfc1a, G_UNICODE_NOT_PRESENT_OFFSET, 12305 }, { 0xfc1b, G_UNICODE_NOT_PRESENT_OFFSET, 12310 }, { 0xfc1c, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, { 0xfc1d, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, { 0xfc1e, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, { 0xfc1f, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, { 0xfc20, G_UNICODE_NOT_PRESENT_OFFSET, 12335 }, { 0xfc21, G_UNICODE_NOT_PRESENT_OFFSET, 12340 }, { 0xfc22, G_UNICODE_NOT_PRESENT_OFFSET, 12345 }, { 0xfc23, G_UNICODE_NOT_PRESENT_OFFSET, 12350 }, { 0xfc24, G_UNICODE_NOT_PRESENT_OFFSET, 12355 }, { 0xfc25, G_UNICODE_NOT_PRESENT_OFFSET, 12360 }, { 0xfc26, G_UNICODE_NOT_PRESENT_OFFSET, 12365 }, { 0xfc27, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, { 0xfc28, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, { 0xfc29, G_UNICODE_NOT_PRESENT_OFFSET, 12380 }, { 0xfc2a, G_UNICODE_NOT_PRESENT_OFFSET, 12385 }, { 0xfc2b, G_UNICODE_NOT_PRESENT_OFFSET, 12390 }, { 0xfc2c, G_UNICODE_NOT_PRESENT_OFFSET, 12395 }, { 0xfc2d, G_UNICODE_NOT_PRESENT_OFFSET, 12400 }, { 0xfc2e, G_UNICODE_NOT_PRESENT_OFFSET, 12405 }, { 0xfc2f, G_UNICODE_NOT_PRESENT_OFFSET, 12410 }, { 0xfc30, G_UNICODE_NOT_PRESENT_OFFSET, 12415 }, { 0xfc31, G_UNICODE_NOT_PRESENT_OFFSET, 12420 }, { 0xfc32, G_UNICODE_NOT_PRESENT_OFFSET, 12425 }, { 0xfc33, G_UNICODE_NOT_PRESENT_OFFSET, 12430 }, { 0xfc34, G_UNICODE_NOT_PRESENT_OFFSET, 12435 }, { 0xfc35, G_UNICODE_NOT_PRESENT_OFFSET, 12440 }, { 0xfc36, G_UNICODE_NOT_PRESENT_OFFSET, 12445 }, { 0xfc37, G_UNICODE_NOT_PRESENT_OFFSET, 12450 }, { 0xfc38, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, { 0xfc39, G_UNICODE_NOT_PRESENT_OFFSET, 12460 }, { 0xfc3a, G_UNICODE_NOT_PRESENT_OFFSET, 12465 }, { 0xfc3b, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfc3c, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfc3d, G_UNICODE_NOT_PRESENT_OFFSET, 12480 }, { 0xfc3e, G_UNICODE_NOT_PRESENT_OFFSET, 12485 }, { 0xfc3f, G_UNICODE_NOT_PRESENT_OFFSET, 12490 }, { 0xfc40, G_UNICODE_NOT_PRESENT_OFFSET, 12495 }, { 0xfc41, G_UNICODE_NOT_PRESENT_OFFSET, 12500 }, { 0xfc42, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfc43, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, { 0xfc44, G_UNICODE_NOT_PRESENT_OFFSET, 12515 }, { 0xfc45, G_UNICODE_NOT_PRESENT_OFFSET, 12520 }, { 0xfc46, G_UNICODE_NOT_PRESENT_OFFSET, 12525 }, { 0xfc47, G_UNICODE_NOT_PRESENT_OFFSET, 12530 }, { 0xfc48, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, { 0xfc49, G_UNICODE_NOT_PRESENT_OFFSET, 12540 }, { 0xfc4a, G_UNICODE_NOT_PRESENT_OFFSET, 12545 }, { 0xfc4b, G_UNICODE_NOT_PRESENT_OFFSET, 12550 }, { 0xfc4c, G_UNICODE_NOT_PRESENT_OFFSET, 12555 }, { 0xfc4d, G_UNICODE_NOT_PRESENT_OFFSET, 12560 }, { 0xfc4e, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfc4f, G_UNICODE_NOT_PRESENT_OFFSET, 12570 }, { 0xfc50, G_UNICODE_NOT_PRESENT_OFFSET, 12575 }, { 0xfc51, G_UNICODE_NOT_PRESENT_OFFSET, 12580 }, { 0xfc52, G_UNICODE_NOT_PRESENT_OFFSET, 12585 }, { 0xfc53, G_UNICODE_NOT_PRESENT_OFFSET, 12590 }, { 0xfc54, G_UNICODE_NOT_PRESENT_OFFSET, 12595 }, { 0xfc55, G_UNICODE_NOT_PRESENT_OFFSET, 12600 }, { 0xfc56, G_UNICODE_NOT_PRESENT_OFFSET, 12605 }, { 0xfc57, G_UNICODE_NOT_PRESENT_OFFSET, 12610 }, { 0xfc58, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfc59, G_UNICODE_NOT_PRESENT_OFFSET, 12620 }, { 0xfc5a, G_UNICODE_NOT_PRESENT_OFFSET, 12625 }, { 0xfc5b, G_UNICODE_NOT_PRESENT_OFFSET, 12630 }, { 0xfc5c, G_UNICODE_NOT_PRESENT_OFFSET, 12635 }, { 0xfc5d, G_UNICODE_NOT_PRESENT_OFFSET, 12640 }, { 0xfc5e, G_UNICODE_NOT_PRESENT_OFFSET, 12645 }, { 0xfc5f, G_UNICODE_NOT_PRESENT_OFFSET, 12651 }, { 0xfc60, G_UNICODE_NOT_PRESENT_OFFSET, 12657 }, { 0xfc61, G_UNICODE_NOT_PRESENT_OFFSET, 12663 }, { 0xfc62, G_UNICODE_NOT_PRESENT_OFFSET, 12669 }, { 0xfc63, G_UNICODE_NOT_PRESENT_OFFSET, 12675 }, { 0xfc64, G_UNICODE_NOT_PRESENT_OFFSET, 12681 }, { 0xfc65, G_UNICODE_NOT_PRESENT_OFFSET, 12688 }, { 0xfc66, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfc67, G_UNICODE_NOT_PRESENT_OFFSET, 12695 }, { 0xfc68, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfc69, G_UNICODE_NOT_PRESENT_OFFSET, 12193 }, { 0xfc6a, G_UNICODE_NOT_PRESENT_OFFSET, 12702 }, { 0xfc6b, G_UNICODE_NOT_PRESENT_OFFSET, 12707 }, { 0xfc6c, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfc6d, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, { 0xfc6e, G_UNICODE_NOT_PRESENT_OFFSET, 12220 }, { 0xfc6f, G_UNICODE_NOT_PRESENT_OFFSET, 12225 }, { 0xfc70, G_UNICODE_NOT_PRESENT_OFFSET, 12717 }, { 0xfc71, G_UNICODE_NOT_PRESENT_OFFSET, 12722 }, { 0xfc72, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfc73, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, { 0xfc74, G_UNICODE_NOT_PRESENT_OFFSET, 12250 }, { 0xfc75, G_UNICODE_NOT_PRESENT_OFFSET, 12255 }, { 0xfc76, G_UNICODE_NOT_PRESENT_OFFSET, 12732 }, { 0xfc77, G_UNICODE_NOT_PRESENT_OFFSET, 12737 }, { 0xfc78, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfc79, G_UNICODE_NOT_PRESENT_OFFSET, 12742 }, { 0xfc7a, G_UNICODE_NOT_PRESENT_OFFSET, 12270 }, { 0xfc7b, G_UNICODE_NOT_PRESENT_OFFSET, 12275 }, { 0xfc7c, G_UNICODE_NOT_PRESENT_OFFSET, 12420 }, { 0xfc7d, G_UNICODE_NOT_PRESENT_OFFSET, 12425 }, { 0xfc7e, G_UNICODE_NOT_PRESENT_OFFSET, 12440 }, { 0xfc7f, G_UNICODE_NOT_PRESENT_OFFSET, 12445 }, { 0xfc80, G_UNICODE_NOT_PRESENT_OFFSET, 12450 }, { 0xfc81, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfc82, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfc83, G_UNICODE_NOT_PRESENT_OFFSET, 12480 }, { 0xfc84, G_UNICODE_NOT_PRESENT_OFFSET, 12485 }, { 0xfc85, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfc86, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, { 0xfc87, G_UNICODE_NOT_PRESENT_OFFSET, 12515 }, { 0xfc88, G_UNICODE_NOT_PRESENT_OFFSET, 12747 }, { 0xfc89, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, { 0xfc8a, G_UNICODE_NOT_PRESENT_OFFSET, 12752 }, { 0xfc8b, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, { 0xfc8c, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfc8d, G_UNICODE_NOT_PRESENT_OFFSET, 12762 }, { 0xfc8e, G_UNICODE_NOT_PRESENT_OFFSET, 12570 }, { 0xfc8f, G_UNICODE_NOT_PRESENT_OFFSET, 12575 }, { 0xfc90, G_UNICODE_NOT_PRESENT_OFFSET, 12640 }, { 0xfc91, G_UNICODE_NOT_PRESENT_OFFSET, 12767 }, { 0xfc92, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, { 0xfc93, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfc94, G_UNICODE_NOT_PRESENT_OFFSET, 12777 }, { 0xfc95, G_UNICODE_NOT_PRESENT_OFFSET, 12620 }, { 0xfc96, G_UNICODE_NOT_PRESENT_OFFSET, 12625 }, { 0xfc97, G_UNICODE_NOT_PRESENT_OFFSET, 12172 }, { 0xfc98, G_UNICODE_NOT_PRESENT_OFFSET, 12179 }, { 0xfc99, G_UNICODE_NOT_PRESENT_OFFSET, 12782 }, { 0xfc9a, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfc9b, G_UNICODE_NOT_PRESENT_OFFSET, 12789 }, { 0xfc9c, G_UNICODE_NOT_PRESENT_OFFSET, 12200 }, { 0xfc9d, G_UNICODE_NOT_PRESENT_OFFSET, 12205 }, { 0xfc9e, G_UNICODE_NOT_PRESENT_OFFSET, 12210 }, { 0xfc9f, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfca0, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, { 0xfca1, G_UNICODE_NOT_PRESENT_OFFSET, 12230 }, { 0xfca2, G_UNICODE_NOT_PRESENT_OFFSET, 12235 }, { 0xfca3, G_UNICODE_NOT_PRESENT_OFFSET, 12240 }, { 0xfca4, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfca5, G_UNICODE_NOT_PRESENT_OFFSET, 12801 }, { 0xfca6, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfca7, G_UNICODE_NOT_PRESENT_OFFSET, 12280 }, { 0xfca8, G_UNICODE_NOT_PRESENT_OFFSET, 12285 }, { 0xfca9, G_UNICODE_NOT_PRESENT_OFFSET, 12290 }, { 0xfcaa, G_UNICODE_NOT_PRESENT_OFFSET, 12295 }, { 0xfcab, G_UNICODE_NOT_PRESENT_OFFSET, 12300 }, { 0xfcac, G_UNICODE_NOT_PRESENT_OFFSET, 12310 }, { 0xfcad, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, { 0xfcae, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, { 0xfcaf, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, { 0xfcb0, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, { 0xfcb1, G_UNICODE_NOT_PRESENT_OFFSET, 12335 }, { 0xfcb2, G_UNICODE_NOT_PRESENT_OFFSET, 12806 }, { 0xfcb3, G_UNICODE_NOT_PRESENT_OFFSET, 12340 }, { 0xfcb4, G_UNICODE_NOT_PRESENT_OFFSET, 12345 }, { 0xfcb5, G_UNICODE_NOT_PRESENT_OFFSET, 12350 }, { 0xfcb6, G_UNICODE_NOT_PRESENT_OFFSET, 12355 }, { 0xfcb7, G_UNICODE_NOT_PRESENT_OFFSET, 12360 }, { 0xfcb8, G_UNICODE_NOT_PRESENT_OFFSET, 12365 }, { 0xfcb9, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, { 0xfcba, G_UNICODE_NOT_PRESENT_OFFSET, 12380 }, { 0xfcbb, G_UNICODE_NOT_PRESENT_OFFSET, 12385 }, { 0xfcbc, G_UNICODE_NOT_PRESENT_OFFSET, 12390 }, { 0xfcbd, G_UNICODE_NOT_PRESENT_OFFSET, 12395 }, { 0xfcbe, G_UNICODE_NOT_PRESENT_OFFSET, 12400 }, { 0xfcbf, G_UNICODE_NOT_PRESENT_OFFSET, 12405 }, { 0xfcc0, G_UNICODE_NOT_PRESENT_OFFSET, 12410 }, { 0xfcc1, G_UNICODE_NOT_PRESENT_OFFSET, 12415 }, { 0xfcc2, G_UNICODE_NOT_PRESENT_OFFSET, 12430 }, { 0xfcc3, G_UNICODE_NOT_PRESENT_OFFSET, 12435 }, { 0xfcc4, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, { 0xfcc5, G_UNICODE_NOT_PRESENT_OFFSET, 12460 }, { 0xfcc6, G_UNICODE_NOT_PRESENT_OFFSET, 12465 }, { 0xfcc7, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfcc8, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfcc9, G_UNICODE_NOT_PRESENT_OFFSET, 12490 }, { 0xfcca, G_UNICODE_NOT_PRESENT_OFFSET, 12495 }, { 0xfccb, G_UNICODE_NOT_PRESENT_OFFSET, 12500 }, { 0xfccc, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfccd, G_UNICODE_NOT_PRESENT_OFFSET, 12811 }, { 0xfcce, G_UNICODE_NOT_PRESENT_OFFSET, 12520 }, { 0xfccf, G_UNICODE_NOT_PRESENT_OFFSET, 12525 }, { 0xfcd0, G_UNICODE_NOT_PRESENT_OFFSET, 12530 }, { 0xfcd1, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, { 0xfcd2, G_UNICODE_NOT_PRESENT_OFFSET, 12550 }, { 0xfcd3, G_UNICODE_NOT_PRESENT_OFFSET, 12555 }, { 0xfcd4, G_UNICODE_NOT_PRESENT_OFFSET, 12560 }, { 0xfcd5, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfcd6, G_UNICODE_NOT_PRESENT_OFFSET, 12816 }, { 0xfcd7, G_UNICODE_NOT_PRESENT_OFFSET, 12580 }, { 0xfcd8, G_UNICODE_NOT_PRESENT_OFFSET, 12585 }, { 0xfcd9, G_UNICODE_NOT_PRESENT_OFFSET, 12821 }, { 0xfcda, G_UNICODE_NOT_PRESENT_OFFSET, 12600 }, { 0xfcdb, G_UNICODE_NOT_PRESENT_OFFSET, 12605 }, { 0xfcdc, G_UNICODE_NOT_PRESENT_OFFSET, 12610 }, { 0xfcdd, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfcde, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, { 0xfcdf, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfce0, G_UNICODE_NOT_PRESENT_OFFSET, 12789 }, { 0xfce1, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfce2, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, { 0xfce3, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfce4, G_UNICODE_NOT_PRESENT_OFFSET, 12801 }, { 0xfce5, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfce6, G_UNICODE_NOT_PRESENT_OFFSET, 12831 }, { 0xfce7, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, { 0xfce8, G_UNICODE_NOT_PRESENT_OFFSET, 12836 }, { 0xfce9, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfcea, G_UNICODE_NOT_PRESENT_OFFSET, 12846 }, { 0xfceb, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfcec, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfced, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfcee, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfcef, G_UNICODE_NOT_PRESENT_OFFSET, 12816 }, { 0xfcf0, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfcf1, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, { 0xfcf2, G_UNICODE_NOT_PRESENT_OFFSET, 12851 }, { 0xfcf3, G_UNICODE_NOT_PRESENT_OFFSET, 12858 }, { 0xfcf4, G_UNICODE_NOT_PRESENT_OFFSET, 12865 }, { 0xfcf5, G_UNICODE_NOT_PRESENT_OFFSET, 12872 }, { 0xfcf6, G_UNICODE_NOT_PRESENT_OFFSET, 12877 }, { 0xfcf7, G_UNICODE_NOT_PRESENT_OFFSET, 12882 }, { 0xfcf8, G_UNICODE_NOT_PRESENT_OFFSET, 12887 }, { 0xfcf9, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, { 0xfcfa, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, { 0xfcfb, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, { 0xfcfc, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, { 0xfcfd, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, { 0xfcfe, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, { 0xfcff, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, { 0xfd00, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, { 0xfd01, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, { 0xfd02, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, { 0xfd03, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, { 0xfd04, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, { 0xfd05, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, { 0xfd06, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, { 0xfd07, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, { 0xfd08, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, { 0xfd09, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd0a, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd0b, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd0c, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfd0d, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, { 0xfd0e, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, { 0xfd0f, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, { 0xfd10, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, { 0xfd11, G_UNICODE_NOT_PRESENT_OFFSET, 12872 }, { 0xfd12, G_UNICODE_NOT_PRESENT_OFFSET, 12877 }, { 0xfd13, G_UNICODE_NOT_PRESENT_OFFSET, 12882 }, { 0xfd14, G_UNICODE_NOT_PRESENT_OFFSET, 12887 }, { 0xfd15, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, { 0xfd16, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, { 0xfd17, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, { 0xfd18, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, { 0xfd19, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, { 0xfd1a, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, { 0xfd1b, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, { 0xfd1c, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, { 0xfd1d, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, { 0xfd1e, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, { 0xfd1f, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, { 0xfd20, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, { 0xfd21, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, { 0xfd22, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, { 0xfd23, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, { 0xfd24, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, { 0xfd25, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd26, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd27, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd28, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfd29, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, { 0xfd2a, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, { 0xfd2b, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, { 0xfd2c, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, { 0xfd2d, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd2e, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd2f, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd30, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfd31, G_UNICODE_NOT_PRESENT_OFFSET, 12836 }, { 0xfd32, G_UNICODE_NOT_PRESENT_OFFSET, 12846 }, { 0xfd33, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, { 0xfd34, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, { 0xfd35, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, { 0xfd36, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, { 0xfd37, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd38, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd39, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd3a, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, { 0xfd3b, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, { 0xfd3c, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, { 0xfd3d, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, { 0xfd50, G_UNICODE_NOT_PRESENT_OFFSET, 13012 }, { 0xfd51, G_UNICODE_NOT_PRESENT_OFFSET, 13019 }, { 0xfd52, G_UNICODE_NOT_PRESENT_OFFSET, 13019 }, { 0xfd53, G_UNICODE_NOT_PRESENT_OFFSET, 13026 }, { 0xfd54, G_UNICODE_NOT_PRESENT_OFFSET, 13033 }, { 0xfd55, G_UNICODE_NOT_PRESENT_OFFSET, 13040 }, { 0xfd56, G_UNICODE_NOT_PRESENT_OFFSET, 13047 }, { 0xfd57, G_UNICODE_NOT_PRESENT_OFFSET, 13054 }, { 0xfd58, G_UNICODE_NOT_PRESENT_OFFSET, 13061 }, { 0xfd59, G_UNICODE_NOT_PRESENT_OFFSET, 13061 }, { 0xfd5a, G_UNICODE_NOT_PRESENT_OFFSET, 13068 }, { 0xfd5b, G_UNICODE_NOT_PRESENT_OFFSET, 13075 }, { 0xfd5c, G_UNICODE_NOT_PRESENT_OFFSET, 13082 }, { 0xfd5d, G_UNICODE_NOT_PRESENT_OFFSET, 13089 }, { 0xfd5e, G_UNICODE_NOT_PRESENT_OFFSET, 13096 }, { 0xfd5f, G_UNICODE_NOT_PRESENT_OFFSET, 13103 }, { 0xfd60, G_UNICODE_NOT_PRESENT_OFFSET, 13103 }, { 0xfd61, G_UNICODE_NOT_PRESENT_OFFSET, 13110 }, { 0xfd62, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, { 0xfd63, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, { 0xfd64, G_UNICODE_NOT_PRESENT_OFFSET, 13124 }, { 0xfd65, G_UNICODE_NOT_PRESENT_OFFSET, 13124 }, { 0xfd66, G_UNICODE_NOT_PRESENT_OFFSET, 13131 }, { 0xfd67, G_UNICODE_NOT_PRESENT_OFFSET, 13138 }, { 0xfd68, G_UNICODE_NOT_PRESENT_OFFSET, 13138 }, { 0xfd69, G_UNICODE_NOT_PRESENT_OFFSET, 13145 }, { 0xfd6a, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, { 0xfd6b, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, { 0xfd6c, G_UNICODE_NOT_PRESENT_OFFSET, 13159 }, { 0xfd6d, G_UNICODE_NOT_PRESENT_OFFSET, 13159 }, { 0xfd6e, G_UNICODE_NOT_PRESENT_OFFSET, 13166 }, { 0xfd6f, G_UNICODE_NOT_PRESENT_OFFSET, 13173 }, { 0xfd70, G_UNICODE_NOT_PRESENT_OFFSET, 13173 }, { 0xfd71, G_UNICODE_NOT_PRESENT_OFFSET, 13180 }, { 0xfd72, G_UNICODE_NOT_PRESENT_OFFSET, 13180 }, { 0xfd73, G_UNICODE_NOT_PRESENT_OFFSET, 13187 }, { 0xfd74, G_UNICODE_NOT_PRESENT_OFFSET, 13194 }, { 0xfd75, G_UNICODE_NOT_PRESENT_OFFSET, 13201 }, { 0xfd76, G_UNICODE_NOT_PRESENT_OFFSET, 13208 }, { 0xfd77, G_UNICODE_NOT_PRESENT_OFFSET, 13208 }, { 0xfd78, G_UNICODE_NOT_PRESENT_OFFSET, 13215 }, { 0xfd79, G_UNICODE_NOT_PRESENT_OFFSET, 13222 }, { 0xfd7a, G_UNICODE_NOT_PRESENT_OFFSET, 13229 }, { 0xfd7b, G_UNICODE_NOT_PRESENT_OFFSET, 13236 }, { 0xfd7c, G_UNICODE_NOT_PRESENT_OFFSET, 13243 }, { 0xfd7d, G_UNICODE_NOT_PRESENT_OFFSET, 13243 }, { 0xfd7e, G_UNICODE_NOT_PRESENT_OFFSET, 13250 }, { 0xfd7f, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, { 0xfd80, G_UNICODE_NOT_PRESENT_OFFSET, 13264 }, { 0xfd81, G_UNICODE_NOT_PRESENT_OFFSET, 13271 }, { 0xfd82, G_UNICODE_NOT_PRESENT_OFFSET, 13278 }, { 0xfd83, G_UNICODE_NOT_PRESENT_OFFSET, 13285 }, { 0xfd84, G_UNICODE_NOT_PRESENT_OFFSET, 13285 }, { 0xfd85, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, { 0xfd86, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, { 0xfd87, G_UNICODE_NOT_PRESENT_OFFSET, 13299 }, { 0xfd88, G_UNICODE_NOT_PRESENT_OFFSET, 13299 }, { 0xfd89, G_UNICODE_NOT_PRESENT_OFFSET, 13306 }, { 0xfd8a, G_UNICODE_NOT_PRESENT_OFFSET, 13313 }, { 0xfd8b, G_UNICODE_NOT_PRESENT_OFFSET, 13320 }, { 0xfd8c, G_UNICODE_NOT_PRESENT_OFFSET, 13327 }, { 0xfd8d, G_UNICODE_NOT_PRESENT_OFFSET, 13334 }, { 0xfd8e, G_UNICODE_NOT_PRESENT_OFFSET, 13341 }, { 0xfd8f, G_UNICODE_NOT_PRESENT_OFFSET, 13348 }, { 0xfd92, G_UNICODE_NOT_PRESENT_OFFSET, 13355 }, { 0xfd93, G_UNICODE_NOT_PRESENT_OFFSET, 13362 }, { 0xfd94, G_UNICODE_NOT_PRESENT_OFFSET, 13369 }, { 0xfd95, G_UNICODE_NOT_PRESENT_OFFSET, 13376 }, { 0xfd96, G_UNICODE_NOT_PRESENT_OFFSET, 13383 }, { 0xfd97, G_UNICODE_NOT_PRESENT_OFFSET, 13390 }, { 0xfd98, G_UNICODE_NOT_PRESENT_OFFSET, 13390 }, { 0xfd99, G_UNICODE_NOT_PRESENT_OFFSET, 13397 }, { 0xfd9a, G_UNICODE_NOT_PRESENT_OFFSET, 13404 }, { 0xfd9b, G_UNICODE_NOT_PRESENT_OFFSET, 13411 }, { 0xfd9c, G_UNICODE_NOT_PRESENT_OFFSET, 13418 }, { 0xfd9d, G_UNICODE_NOT_PRESENT_OFFSET, 13418 }, { 0xfd9e, G_UNICODE_NOT_PRESENT_OFFSET, 13425 }, { 0xfd9f, G_UNICODE_NOT_PRESENT_OFFSET, 13432 }, { 0xfda0, G_UNICODE_NOT_PRESENT_OFFSET, 13439 }, { 0xfda1, G_UNICODE_NOT_PRESENT_OFFSET, 13446 }, { 0xfda2, G_UNICODE_NOT_PRESENT_OFFSET, 13453 }, { 0xfda3, G_UNICODE_NOT_PRESENT_OFFSET, 13460 }, { 0xfda4, G_UNICODE_NOT_PRESENT_OFFSET, 13467 }, { 0xfda5, G_UNICODE_NOT_PRESENT_OFFSET, 13474 }, { 0xfda6, G_UNICODE_NOT_PRESENT_OFFSET, 13481 }, { 0xfda7, G_UNICODE_NOT_PRESENT_OFFSET, 13488 }, { 0xfda8, G_UNICODE_NOT_PRESENT_OFFSET, 13495 }, { 0xfda9, G_UNICODE_NOT_PRESENT_OFFSET, 13502 }, { 0xfdaa, G_UNICODE_NOT_PRESENT_OFFSET, 13509 }, { 0xfdab, G_UNICODE_NOT_PRESENT_OFFSET, 13516 }, { 0xfdac, G_UNICODE_NOT_PRESENT_OFFSET, 13523 }, { 0xfdad, G_UNICODE_NOT_PRESENT_OFFSET, 13530 }, { 0xfdae, G_UNICODE_NOT_PRESENT_OFFSET, 13537 }, { 0xfdaf, G_UNICODE_NOT_PRESENT_OFFSET, 13544 }, { 0xfdb0, G_UNICODE_NOT_PRESENT_OFFSET, 13551 }, { 0xfdb1, G_UNICODE_NOT_PRESENT_OFFSET, 13558 }, { 0xfdb2, G_UNICODE_NOT_PRESENT_OFFSET, 13565 }, { 0xfdb3, G_UNICODE_NOT_PRESENT_OFFSET, 13572 }, { 0xfdb4, G_UNICODE_NOT_PRESENT_OFFSET, 13250 }, { 0xfdb5, G_UNICODE_NOT_PRESENT_OFFSET, 13264 }, { 0xfdb6, G_UNICODE_NOT_PRESENT_OFFSET, 13579 }, { 0xfdb7, G_UNICODE_NOT_PRESENT_OFFSET, 13586 }, { 0xfdb8, G_UNICODE_NOT_PRESENT_OFFSET, 13593 }, { 0xfdb9, G_UNICODE_NOT_PRESENT_OFFSET, 13600 }, { 0xfdba, G_UNICODE_NOT_PRESENT_OFFSET, 13607 }, { 0xfdbb, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, { 0xfdbc, G_UNICODE_NOT_PRESENT_OFFSET, 13607 }, { 0xfdbd, G_UNICODE_NOT_PRESENT_OFFSET, 13593 }, { 0xfdbe, G_UNICODE_NOT_PRESENT_OFFSET, 13621 }, { 0xfdbf, G_UNICODE_NOT_PRESENT_OFFSET, 13628 }, { 0xfdc0, G_UNICODE_NOT_PRESENT_OFFSET, 13635 }, { 0xfdc1, G_UNICODE_NOT_PRESENT_OFFSET, 13642 }, { 0xfdc2, G_UNICODE_NOT_PRESENT_OFFSET, 13649 }, { 0xfdc3, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, { 0xfdc4, G_UNICODE_NOT_PRESENT_OFFSET, 13201 }, { 0xfdc5, G_UNICODE_NOT_PRESENT_OFFSET, 13131 }, { 0xfdc6, G_UNICODE_NOT_PRESENT_OFFSET, 13656 }, { 0xfdc7, G_UNICODE_NOT_PRESENT_OFFSET, 13663 }, { 0xfdf0, G_UNICODE_NOT_PRESENT_OFFSET, 13670 }, { 0xfdf1, G_UNICODE_NOT_PRESENT_OFFSET, 13677 }, { 0xfdf2, G_UNICODE_NOT_PRESENT_OFFSET, 13684 }, { 0xfdf3, G_UNICODE_NOT_PRESENT_OFFSET, 13693 }, { 0xfdf4, G_UNICODE_NOT_PRESENT_OFFSET, 13702 }, { 0xfdf5, G_UNICODE_NOT_PRESENT_OFFSET, 13711 }, { 0xfdf6, G_UNICODE_NOT_PRESENT_OFFSET, 13720 }, { 0xfdf7, G_UNICODE_NOT_PRESENT_OFFSET, 13729 }, { 0xfdf8, G_UNICODE_NOT_PRESENT_OFFSET, 13738 }, { 0xfdf9, G_UNICODE_NOT_PRESENT_OFFSET, 13747 }, { 0xfdfa, G_UNICODE_NOT_PRESENT_OFFSET, 13754 }, { 0xfdfb, G_UNICODE_NOT_PRESENT_OFFSET, 13788 }, { 0xfdfc, G_UNICODE_NOT_PRESENT_OFFSET, 13804 }, { 0xfe30, G_UNICODE_NOT_PRESENT_OFFSET, 4871 }, { 0xfe31, G_UNICODE_NOT_PRESENT_OFFSET, 13813 }, { 0xfe32, G_UNICODE_NOT_PRESENT_OFFSET, 13817 }, { 0xfe33, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe34, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe35, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0xfe36, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0xfe37, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, { 0xfe38, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, { 0xfe39, G_UNICODE_NOT_PRESENT_OFFSET, 13827 }, { 0xfe3a, G_UNICODE_NOT_PRESENT_OFFSET, 13831 }, { 0xfe3b, G_UNICODE_NOT_PRESENT_OFFSET, 13835 }, { 0xfe3c, G_UNICODE_NOT_PRESENT_OFFSET, 13839 }, { 0xfe3d, G_UNICODE_NOT_PRESENT_OFFSET, 13843 }, { 0xfe3e, G_UNICODE_NOT_PRESENT_OFFSET, 13847 }, { 0xfe3f, G_UNICODE_NOT_PRESENT_OFFSET, 5524 }, { 0xfe40, G_UNICODE_NOT_PRESENT_OFFSET, 5528 }, { 0xfe41, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, { 0xfe42, G_UNICODE_NOT_PRESENT_OFFSET, 13855 }, { 0xfe43, G_UNICODE_NOT_PRESENT_OFFSET, 13859 }, { 0xfe44, G_UNICODE_NOT_PRESENT_OFFSET, 13863 }, { 0xfe49, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4a, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4b, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4c, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4d, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe4e, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe4f, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe50, G_UNICODE_NOT_PRESENT_OFFSET, 13867 }, { 0xfe51, G_UNICODE_NOT_PRESENT_OFFSET, 13869 }, { 0xfe52, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, { 0xfe54, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, { 0xfe55, G_UNICODE_NOT_PRESENT_OFFSET, 13873 }, { 0xfe56, G_UNICODE_NOT_PRESENT_OFFSET, 13875 }, { 0xfe57, G_UNICODE_NOT_PRESENT_OFFSET, 13877 }, { 0xfe58, G_UNICODE_NOT_PRESENT_OFFSET, 13813 }, { 0xfe59, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0xfe5a, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0xfe5b, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, { 0xfe5c, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, { 0xfe5d, G_UNICODE_NOT_PRESENT_OFFSET, 13827 }, { 0xfe5e, G_UNICODE_NOT_PRESENT_OFFSET, 13831 }, { 0xfe5f, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, { 0xfe60, G_UNICODE_NOT_PRESENT_OFFSET, 13881 }, { 0xfe61, G_UNICODE_NOT_PRESENT_OFFSET, 13883 }, { 0xfe62, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0xfe63, G_UNICODE_NOT_PRESENT_OFFSET, 13885 }, { 0xfe64, G_UNICODE_NOT_PRESENT_OFFSET, 13887 }, { 0xfe65, G_UNICODE_NOT_PRESENT_OFFSET, 13889 }, { 0xfe66, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0xfe68, G_UNICODE_NOT_PRESENT_OFFSET, 13891 }, { 0xfe69, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, { 0xfe6a, G_UNICODE_NOT_PRESENT_OFFSET, 13895 }, { 0xfe6b, G_UNICODE_NOT_PRESENT_OFFSET, 13897 }, { 0xfe70, G_UNICODE_NOT_PRESENT_OFFSET, 13899 }, { 0xfe71, G_UNICODE_NOT_PRESENT_OFFSET, 13903 }, { 0xfe72, G_UNICODE_NOT_PRESENT_OFFSET, 13908 }, { 0xfe74, G_UNICODE_NOT_PRESENT_OFFSET, 13912 }, { 0xfe76, G_UNICODE_NOT_PRESENT_OFFSET, 13916 }, { 0xfe77, G_UNICODE_NOT_PRESENT_OFFSET, 13920 }, { 0xfe78, G_UNICODE_NOT_PRESENT_OFFSET, 13925 }, { 0xfe79, G_UNICODE_NOT_PRESENT_OFFSET, 13929 }, { 0xfe7a, G_UNICODE_NOT_PRESENT_OFFSET, 13934 }, { 0xfe7b, G_UNICODE_NOT_PRESENT_OFFSET, 13938 }, { 0xfe7c, G_UNICODE_NOT_PRESENT_OFFSET, 13943 }, { 0xfe7d, G_UNICODE_NOT_PRESENT_OFFSET, 13947 }, { 0xfe7e, G_UNICODE_NOT_PRESENT_OFFSET, 13952 }, { 0xfe7f, G_UNICODE_NOT_PRESENT_OFFSET, 13956 }, { 0xfe80, G_UNICODE_NOT_PRESENT_OFFSET, 13961 }, { 0xfe81, G_UNICODE_NOT_PRESENT_OFFSET, 1673 }, { 0xfe82, G_UNICODE_NOT_PRESENT_OFFSET, 1673 }, { 0xfe83, G_UNICODE_NOT_PRESENT_OFFSET, 1678 }, { 0xfe84, G_UNICODE_NOT_PRESENT_OFFSET, 1678 }, { 0xfe85, G_UNICODE_NOT_PRESENT_OFFSET, 1683 }, { 0xfe86, G_UNICODE_NOT_PRESENT_OFFSET, 1683 }, { 0xfe87, G_UNICODE_NOT_PRESENT_OFFSET, 1688 }, { 0xfe88, G_UNICODE_NOT_PRESENT_OFFSET, 1688 }, { 0xfe89, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8a, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8b, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8c, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8d, G_UNICODE_NOT_PRESENT_OFFSET, 13964 }, { 0xfe8e, G_UNICODE_NOT_PRESENT_OFFSET, 13964 }, { 0xfe8f, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe90, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe91, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe92, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe93, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, { 0xfe94, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, { 0xfe95, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe96, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe97, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe98, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe99, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9a, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9b, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9c, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9d, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfe9e, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfe9f, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfea0, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfea1, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea2, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea3, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea4, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea5, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea6, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea7, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea8, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea9, G_UNICODE_NOT_PRESENT_OFFSET, 13988 }, { 0xfeaa, G_UNICODE_NOT_PRESENT_OFFSET, 13988 }, { 0xfeab, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, { 0xfeac, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, { 0xfead, G_UNICODE_NOT_PRESENT_OFFSET, 13994 }, { 0xfeae, G_UNICODE_NOT_PRESENT_OFFSET, 13994 }, { 0xfeaf, G_UNICODE_NOT_PRESENT_OFFSET, 13997 }, { 0xfeb0, G_UNICODE_NOT_PRESENT_OFFSET, 13997 }, { 0xfeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfeba, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfebb, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfebc, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfebd, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfebe, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfebf, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfec0, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfec1, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec2, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec3, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec4, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec5, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec6, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec7, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec8, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec9, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfeca, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfecb, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfecc, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfecd, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfece, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfecf, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfed0, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfed1, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed2, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed3, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed4, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed5, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed6, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed7, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed8, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed9, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfeda, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfedb, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfedc, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfedd, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfede, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfedf, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfee0, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfee1, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee2, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee3, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee4, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee5, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee6, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee7, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee8, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee9, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeea, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeeb, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeec, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeed, G_UNICODE_NOT_PRESENT_OFFSET, 14045 }, { 0xfeee, G_UNICODE_NOT_PRESENT_OFFSET, 14045 }, { 0xfeef, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfef0, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfef1, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef2, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef3, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef4, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef5, G_UNICODE_NOT_PRESENT_OFFSET, 14051 }, { 0xfef6, G_UNICODE_NOT_PRESENT_OFFSET, 14051 }, { 0xfef7, G_UNICODE_NOT_PRESENT_OFFSET, 14058 }, { 0xfef8, G_UNICODE_NOT_PRESENT_OFFSET, 14058 }, { 0xfef9, G_UNICODE_NOT_PRESENT_OFFSET, 14065 }, { 0xfefa, G_UNICODE_NOT_PRESENT_OFFSET, 14065 }, { 0xfefb, G_UNICODE_NOT_PRESENT_OFFSET, 14072 }, { 0xfefc, G_UNICODE_NOT_PRESENT_OFFSET, 14072 }, { 0xff01, G_UNICODE_NOT_PRESENT_OFFSET, 13877 }, { 0xff02, G_UNICODE_NOT_PRESENT_OFFSET, 14077 }, { 0xff03, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, { 0xff04, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, { 0xff05, G_UNICODE_NOT_PRESENT_OFFSET, 13895 }, { 0xff06, G_UNICODE_NOT_PRESENT_OFFSET, 13881 }, { 0xff07, G_UNICODE_NOT_PRESENT_OFFSET, 14079 }, { 0xff08, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0xff09, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0xff0a, G_UNICODE_NOT_PRESENT_OFFSET, 13883 }, { 0xff0b, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0xff0c, G_UNICODE_NOT_PRESENT_OFFSET, 13867 }, { 0xff0d, G_UNICODE_NOT_PRESENT_OFFSET, 13885 }, { 0xff0e, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, { 0xff0f, G_UNICODE_NOT_PRESENT_OFFSET, 14081 }, { 0xff10, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0xff11, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0xff12, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0xff13, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0xff14, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0xff15, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0xff16, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0xff17, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0xff18, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0xff19, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0xff1a, G_UNICODE_NOT_PRESENT_OFFSET, 13873 }, { 0xff1b, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, { 0xff1c, G_UNICODE_NOT_PRESENT_OFFSET, 13887 }, { 0xff1d, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0xff1e, G_UNICODE_NOT_PRESENT_OFFSET, 13889 }, { 0xff1f, G_UNICODE_NOT_PRESENT_OFFSET, 13875 }, { 0xff20, G_UNICODE_NOT_PRESENT_OFFSET, 13897 }, { 0xff21, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0xff22, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0xff23, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0xff24, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0xff25, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0xff26, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0xff27, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0xff28, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0xff29, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0xff2a, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0xff2b, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0xff2c, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0xff2d, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0xff2e, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0xff2f, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0xff30, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0xff31, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0xff32, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0xff33, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0xff34, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0xff35, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0xff36, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0xff37, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0xff38, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0xff39, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0xff3a, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0xff3b, G_UNICODE_NOT_PRESENT_OFFSET, 14083 }, { 0xff3c, G_UNICODE_NOT_PRESENT_OFFSET, 13891 }, { 0xff3d, G_UNICODE_NOT_PRESENT_OFFSET, 14085 }, { 0xff3e, G_UNICODE_NOT_PRESENT_OFFSET, 14087 }, { 0xff3f, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xff40, G_UNICODE_NOT_PRESENT_OFFSET, 4798 }, { 0xff41, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0xff42, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0xff43, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0xff44, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0xff45, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0xff46, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0xff47, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0xff48, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0xff49, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0xff4a, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0xff4b, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0xff4c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0xff4d, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0xff4e, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0xff4f, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0xff50, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0xff51, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0xff52, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0xff53, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0xff54, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0xff55, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0xff56, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0xff57, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0xff58, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0xff59, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0xff5a, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0xff5b, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, { 0xff5c, G_UNICODE_NOT_PRESENT_OFFSET, 14089 }, { 0xff5d, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, { 0xff5e, G_UNICODE_NOT_PRESENT_OFFSET, 14091 }, { 0xff5f, G_UNICODE_NOT_PRESENT_OFFSET, 14093 }, { 0xff60, G_UNICODE_NOT_PRESENT_OFFSET, 14097 }, { 0xff61, G_UNICODE_NOT_PRESENT_OFFSET, 14101 }, { 0xff62, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, { 0xff63, G_UNICODE_NOT_PRESENT_OFFSET, 13855 }, { 0xff64, G_UNICODE_NOT_PRESENT_OFFSET, 13869 }, { 0xff65, G_UNICODE_NOT_PRESENT_OFFSET, 14105 }, { 0xff66, G_UNICODE_NOT_PRESENT_OFFSET, 8615 }, { 0xff67, G_UNICODE_NOT_PRESENT_OFFSET, 14109 }, { 0xff68, G_UNICODE_NOT_PRESENT_OFFSET, 14113 }, { 0xff69, G_UNICODE_NOT_PRESENT_OFFSET, 14117 }, { 0xff6a, G_UNICODE_NOT_PRESENT_OFFSET, 14121 }, { 0xff6b, G_UNICODE_NOT_PRESENT_OFFSET, 14125 }, { 0xff6c, G_UNICODE_NOT_PRESENT_OFFSET, 14129 }, { 0xff6d, G_UNICODE_NOT_PRESENT_OFFSET, 14133 }, { 0xff6e, G_UNICODE_NOT_PRESENT_OFFSET, 14137 }, { 0xff6f, G_UNICODE_NOT_PRESENT_OFFSET, 14141 }, { 0xff70, G_UNICODE_NOT_PRESENT_OFFSET, 14145 }, { 0xff71, G_UNICODE_NOT_PRESENT_OFFSET, 8431 }, { 0xff72, G_UNICODE_NOT_PRESENT_OFFSET, 8435 }, { 0xff73, G_UNICODE_NOT_PRESENT_OFFSET, 8439 }, { 0xff74, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, { 0xff75, G_UNICODE_NOT_PRESENT_OFFSET, 8447 }, { 0xff76, G_UNICODE_NOT_PRESENT_OFFSET, 8451 }, { 0xff77, G_UNICODE_NOT_PRESENT_OFFSET, 8455 }, { 0xff78, G_UNICODE_NOT_PRESENT_OFFSET, 8459 }, { 0xff79, G_UNICODE_NOT_PRESENT_OFFSET, 8463 }, { 0xff7a, G_UNICODE_NOT_PRESENT_OFFSET, 8467 }, { 0xff7b, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, { 0xff7c, G_UNICODE_NOT_PRESENT_OFFSET, 8475 }, { 0xff7d, G_UNICODE_NOT_PRESENT_OFFSET, 8479 }, { 0xff7e, G_UNICODE_NOT_PRESENT_OFFSET, 8483 }, { 0xff7f, G_UNICODE_NOT_PRESENT_OFFSET, 8487 }, { 0xff80, G_UNICODE_NOT_PRESENT_OFFSET, 8491 }, { 0xff81, G_UNICODE_NOT_PRESENT_OFFSET, 8495 }, { 0xff82, G_UNICODE_NOT_PRESENT_OFFSET, 8499 }, { 0xff83, G_UNICODE_NOT_PRESENT_OFFSET, 8503 }, { 0xff84, G_UNICODE_NOT_PRESENT_OFFSET, 8507 }, { 0xff85, G_UNICODE_NOT_PRESENT_OFFSET, 8511 }, { 0xff86, G_UNICODE_NOT_PRESENT_OFFSET, 8515 }, { 0xff87, G_UNICODE_NOT_PRESENT_OFFSET, 8519 }, { 0xff88, G_UNICODE_NOT_PRESENT_OFFSET, 8523 }, { 0xff89, G_UNICODE_NOT_PRESENT_OFFSET, 8527 }, { 0xff8a, G_UNICODE_NOT_PRESENT_OFFSET, 8531 }, { 0xff8b, G_UNICODE_NOT_PRESENT_OFFSET, 8535 }, { 0xff8c, G_UNICODE_NOT_PRESENT_OFFSET, 8539 }, { 0xff8d, G_UNICODE_NOT_PRESENT_OFFSET, 8543 }, { 0xff8e, G_UNICODE_NOT_PRESENT_OFFSET, 8547 }, { 0xff8f, G_UNICODE_NOT_PRESENT_OFFSET, 8551 }, { 0xff90, G_UNICODE_NOT_PRESENT_OFFSET, 8555 }, { 0xff91, G_UNICODE_NOT_PRESENT_OFFSET, 8559 }, { 0xff92, G_UNICODE_NOT_PRESENT_OFFSET, 8563 }, { 0xff93, G_UNICODE_NOT_PRESENT_OFFSET, 8567 }, { 0xff94, G_UNICODE_NOT_PRESENT_OFFSET, 8571 }, { 0xff95, G_UNICODE_NOT_PRESENT_OFFSET, 8575 }, { 0xff96, G_UNICODE_NOT_PRESENT_OFFSET, 8579 }, { 0xff97, G_UNICODE_NOT_PRESENT_OFFSET, 8583 }, { 0xff98, G_UNICODE_NOT_PRESENT_OFFSET, 8587 }, { 0xff99, G_UNICODE_NOT_PRESENT_OFFSET, 8591 }, { 0xff9a, G_UNICODE_NOT_PRESENT_OFFSET, 8595 }, { 0xff9b, G_UNICODE_NOT_PRESENT_OFFSET, 8599 }, { 0xff9c, G_UNICODE_NOT_PRESENT_OFFSET, 8603 }, { 0xff9d, G_UNICODE_NOT_PRESENT_OFFSET, 14149 }, { 0xff9e, G_UNICODE_NOT_PRESENT_OFFSET, 14153 }, { 0xff9f, G_UNICODE_NOT_PRESENT_OFFSET, 14157 }, { 0xffa0, G_UNICODE_NOT_PRESENT_OFFSET, 7405 }, { 0xffa1, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, { 0xffa2, G_UNICODE_NOT_PRESENT_OFFSET, 7205 }, { 0xffa3, G_UNICODE_NOT_PRESENT_OFFSET, 7209 }, { 0xffa4, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, { 0xffa5, G_UNICODE_NOT_PRESENT_OFFSET, 7217 }, { 0xffa6, G_UNICODE_NOT_PRESENT_OFFSET, 7221 }, { 0xffa7, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, { 0xffa8, G_UNICODE_NOT_PRESENT_OFFSET, 7229 }, { 0xffa9, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, { 0xffaa, G_UNICODE_NOT_PRESENT_OFFSET, 7237 }, { 0xffab, G_UNICODE_NOT_PRESENT_OFFSET, 7241 }, { 0xffac, G_UNICODE_NOT_PRESENT_OFFSET, 7245 }, { 0xffad, G_UNICODE_NOT_PRESENT_OFFSET, 7249 }, { 0xffae, G_UNICODE_NOT_PRESENT_OFFSET, 7253 }, { 0xffaf, G_UNICODE_NOT_PRESENT_OFFSET, 7257 }, { 0xffb0, G_UNICODE_NOT_PRESENT_OFFSET, 7261 }, { 0xffb1, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, { 0xffb2, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, { 0xffb3, G_UNICODE_NOT_PRESENT_OFFSET, 7273 }, { 0xffb4, G_UNICODE_NOT_PRESENT_OFFSET, 7277 }, { 0xffb5, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, { 0xffb6, G_UNICODE_NOT_PRESENT_OFFSET, 7285 }, { 0xffb7, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, { 0xffb8, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, { 0xffb9, G_UNICODE_NOT_PRESENT_OFFSET, 7297 }, { 0xffba, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, { 0xffbb, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, { 0xffbc, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, { 0xffbd, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, { 0xffbe, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, { 0xffc2, G_UNICODE_NOT_PRESENT_OFFSET, 7321 }, { 0xffc3, G_UNICODE_NOT_PRESENT_OFFSET, 7325 }, { 0xffc4, G_UNICODE_NOT_PRESENT_OFFSET, 7329 }, { 0xffc5, G_UNICODE_NOT_PRESENT_OFFSET, 7333 }, { 0xffc6, G_UNICODE_NOT_PRESENT_OFFSET, 7337 }, { 0xffc7, G_UNICODE_NOT_PRESENT_OFFSET, 7341 }, { 0xffca, G_UNICODE_NOT_PRESENT_OFFSET, 7345 }, { 0xffcb, G_UNICODE_NOT_PRESENT_OFFSET, 7349 }, { 0xffcc, G_UNICODE_NOT_PRESENT_OFFSET, 7353 }, { 0xffcd, G_UNICODE_NOT_PRESENT_OFFSET, 7357 }, { 0xffce, G_UNICODE_NOT_PRESENT_OFFSET, 7361 }, { 0xffcf, G_UNICODE_NOT_PRESENT_OFFSET, 7365 }, { 0xffd2, G_UNICODE_NOT_PRESENT_OFFSET, 7369 }, { 0xffd3, G_UNICODE_NOT_PRESENT_OFFSET, 7373 }, { 0xffd4, G_UNICODE_NOT_PRESENT_OFFSET, 7377 }, { 0xffd5, G_UNICODE_NOT_PRESENT_OFFSET, 7381 }, { 0xffd6, G_UNICODE_NOT_PRESENT_OFFSET, 7385 }, { 0xffd7, G_UNICODE_NOT_PRESENT_OFFSET, 7389 }, { 0xffda, G_UNICODE_NOT_PRESENT_OFFSET, 7393 }, { 0xffdb, G_UNICODE_NOT_PRESENT_OFFSET, 7397 }, { 0xffdc, G_UNICODE_NOT_PRESENT_OFFSET, 7401 }, { 0xffe0, G_UNICODE_NOT_PRESENT_OFFSET, 14161 }, { 0xffe1, G_UNICODE_NOT_PRESENT_OFFSET, 14164 }, { 0xffe2, G_UNICODE_NOT_PRESENT_OFFSET, 14167 }, { 0xffe3, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, { 0xffe4, G_UNICODE_NOT_PRESENT_OFFSET, 14170 }, { 0xffe5, G_UNICODE_NOT_PRESENT_OFFSET, 14173 }, { 0xffe6, G_UNICODE_NOT_PRESENT_OFFSET, 14176 }, { 0xffe8, G_UNICODE_NOT_PRESENT_OFFSET, 14180 }, { 0xffe9, G_UNICODE_NOT_PRESENT_OFFSET, 14184 }, { 0xffea, G_UNICODE_NOT_PRESENT_OFFSET, 14188 }, { 0xffeb, G_UNICODE_NOT_PRESENT_OFFSET, 14192 }, { 0xffec, G_UNICODE_NOT_PRESENT_OFFSET, 14196 }, { 0xffed, G_UNICODE_NOT_PRESENT_OFFSET, 14200 }, { 0xffee, G_UNICODE_NOT_PRESENT_OFFSET, 14204 }, { 0x1d15e, 14208, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d15f, 14217, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d160, 14226, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d161, 14239, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d162, 14252, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d163, 14265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d164, 14278, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bb, 14291, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bc, 14300, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bd, 14309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1be, 14322, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bf, 14335, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1c0, 14348, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d400, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d401, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d402, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d403, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d404, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d405, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d406, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d407, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d408, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d409, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d40a, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d40b, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d40c, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d40d, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d40e, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d40f, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d410, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d411, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d412, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d413, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d414, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d415, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d416, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d417, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d418, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d419, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d41a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d41b, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d41c, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d41d, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d41e, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d41f, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d420, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d421, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d422, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d423, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d424, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d425, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d426, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d427, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d428, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d429, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d42a, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d42b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d42c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d42d, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d42e, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d42f, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d430, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d431, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d432, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d433, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d434, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d435, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d436, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d437, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d438, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d439, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d43a, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d43b, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d43c, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d43d, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d43e, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d43f, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d440, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d441, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d442, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d443, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d444, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d445, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d446, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d447, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d448, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d449, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d44a, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d44b, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d44c, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d44d, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d44e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d44f, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d450, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d451, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d452, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d453, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d454, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d456, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d457, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d458, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d459, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d45a, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d45b, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d45c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d45d, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d45e, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d45f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d460, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d461, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d462, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d463, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d464, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d465, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d466, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d467, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d468, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d469, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d46a, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d46b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d46c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d46d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d46e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d46f, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d470, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d471, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d472, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d473, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d474, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d475, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d476, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d477, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d478, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d479, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d47a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d47b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d47c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d47d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d47e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d47f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d480, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d481, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d482, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d483, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d484, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d485, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d486, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d487, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d488, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d489, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d48a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d48b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d48c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d48d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d48e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d48f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d490, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d491, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d492, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d493, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d494, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d495, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d496, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d497, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d498, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d499, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d49a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d49b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d49c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d49e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d49f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d4a2, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d4a5, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d4a6, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d4a9, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d4aa, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d4ab, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d4ac, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d4ae, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d4af, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d4b0, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d4b1, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d4b2, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d4b3, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d4b4, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d4b5, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d4b6, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d4b7, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d4b8, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d4b9, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d4bb, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d4bd, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d4be, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d4bf, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d4c0, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d4c2, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d4c3, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d4c5, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d4c6, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d4c7, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d4c8, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d4c9, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d4ca, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d4cb, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d4cc, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d4cd, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d4ce, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d4cf, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d4d0, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d4d1, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d4d2, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d4d3, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d4d4, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d4d5, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d4d6, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d4d7, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d4d8, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d4d9, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d4da, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d4db, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d4dc, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d4dd, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d4de, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d4df, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d4e0, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d4e1, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d4e2, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d4e3, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d4e4, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d4e5, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d4e6, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d4e7, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d4e8, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d4e9, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d4ea, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d4eb, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d4ec, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d4ed, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d4ee, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d4ef, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d4f0, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d4f1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d4f2, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d4f3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d4f4, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d4f5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d4f6, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d4f7, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d4f8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d4f9, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d4fa, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d4fb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d4fc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d4fd, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d4fe, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d4ff, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d500, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d501, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d502, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d503, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d504, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d505, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d507, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d508, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d509, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d50a, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d50d, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d50e, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d50f, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d510, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d511, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d512, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d513, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d514, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d516, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d517, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d518, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d519, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d51a, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d51b, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d51c, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d51e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d51f, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d520, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d521, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d522, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d523, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d524, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d525, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d526, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d527, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d528, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d529, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d52a, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d52b, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d52c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d52d, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d52e, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d52f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d530, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d531, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d532, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d533, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d534, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d535, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d536, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d537, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d538, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d539, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d53b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d53c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d53d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d53e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d540, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d541, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d542, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d543, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d544, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d546, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d54a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d54b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d54c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d54d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d54e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d54f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d550, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d552, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d553, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d554, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d555, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d556, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d557, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d558, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d559, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d55a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d55b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d55c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d55d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d55e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d55f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d560, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d561, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d562, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d563, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d564, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d565, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d566, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d567, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d568, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d569, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d56a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d56b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d56c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d56d, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d56e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d56f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d570, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d571, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d572, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d573, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d574, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d575, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d576, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d577, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d578, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d579, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d57a, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d57b, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d57c, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d57d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d57e, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d57f, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d580, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d581, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d582, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d583, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d584, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d585, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d586, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d587, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d588, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d589, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d58a, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d58b, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d58c, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d58d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d58e, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d58f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d590, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d591, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d592, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d593, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d594, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d595, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d596, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d597, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d598, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d599, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d59a, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d59b, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d59c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d59d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d59e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d59f, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d5a0, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d5a1, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d5a2, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d5a3, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d5a4, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d5a5, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d5a6, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d5a7, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d5a8, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d5a9, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d5aa, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d5ab, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d5ac, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d5ad, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d5ae, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d5af, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d5b0, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d5b1, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d5b2, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d5b3, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d5b4, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d5b5, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d5b6, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d5b7, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d5b8, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d5b9, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d5ba, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d5bb, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d5bc, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d5bd, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d5be, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d5bf, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d5c0, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d5c1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d5c2, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d5c3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d5c4, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d5c5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d5c6, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d5c7, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d5c8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d5c9, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d5ca, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d5cb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d5cc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d5cd, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d5ce, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d5cf, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d5d0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d5d1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d5d2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d5d3, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d5d4, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d5d5, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d5d6, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d5d7, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d5d8, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d5d9, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d5da, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d5db, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d5dc, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d5dd, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d5de, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d5df, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d5e0, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d5e1, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d5e2, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d5e3, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d5e4, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d5e5, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d5e6, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d5e7, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d5e8, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d5e9, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d5ea, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d5eb, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d5ec, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d5ed, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d5ee, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d5ef, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d5f0, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d5f1, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d5f2, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d5f3, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d5f4, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d5f5, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d5f6, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d5f7, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d5f8, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d5f9, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d5fa, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d5fb, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d5fc, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d5fd, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d5fe, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d5ff, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d600, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d601, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d602, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d603, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d604, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d605, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d606, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d607, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d608, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d609, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d60a, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d60b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d60c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d60d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d60e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d60f, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d610, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d611, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d612, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d613, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d614, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d615, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d616, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d617, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d618, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d619, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d61a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d61b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d61c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d61d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d61e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d61f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d620, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d621, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d622, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d623, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d624, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d625, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d626, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d627, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d628, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d629, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d62a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d62b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d62c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d62d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d62e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d62f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d630, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d631, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d632, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d633, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d634, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d635, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d636, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d637, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d638, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d639, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d63a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d63b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d63c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d63d, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d63e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d63f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d640, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d641, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d642, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d643, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d644, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d645, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d646, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d647, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d648, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d649, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d64a, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d64b, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d64c, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d64d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d64e, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d64f, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d650, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d651, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d652, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d653, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d654, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d655, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d656, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d657, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d658, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d659, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d65a, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d65b, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d65c, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d65d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d65e, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d65f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d660, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d661, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d662, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d663, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d664, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d665, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d666, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d667, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d668, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d669, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d66a, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d66b, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d66c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d66d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d66e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d66f, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d670, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d671, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d672, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d673, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d674, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d675, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d676, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d677, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d678, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d679, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d67a, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d67b, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d67c, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d67d, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d67e, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d67f, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d680, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d681, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d682, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d683, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d684, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d685, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d686, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d687, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d688, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d689, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d68a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d68b, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d68c, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d68d, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d68e, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d68f, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d690, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d691, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d692, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d693, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d694, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d695, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d696, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d697, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d698, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d699, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d69a, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d69b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d69c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d69d, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d69e, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d69f, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d6a0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d6a1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d6a2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d6a3, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d6a8, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d6a9, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d6aa, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d6ab, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d6ac, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d6ad, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d6ae, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d6af, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6b0, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d6b1, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d6b2, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d6b3, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d6b4, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d6b5, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d6b6, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d6b7, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d6b8, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d6b9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6ba, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d6bb, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d6bc, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d6bd, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d6be, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d6bf, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d6c0, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d6c1, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d6c2, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d6c3, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d6c4, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d6c5, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d6c6, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d6c7, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d6c8, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d6c9, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d6ca, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d6cb, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d6cc, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d6cd, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d6ce, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d6cf, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d6d0, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d6d1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d6d2, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d6d3, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d6d4, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d6d5, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d6d6, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d6d7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d6d8, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d6d9, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d6da, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d6db, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d6dc, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d6dd, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d6de, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d6df, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d6e0, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d6e1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d6e2, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d6e3, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d6e4, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d6e5, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d6e6, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d6e7, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d6e8, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d6e9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6ea, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d6eb, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d6ec, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d6ed, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d6ee, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d6ef, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d6f0, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d6f1, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d6f2, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d6f3, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6f4, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d6f5, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d6f6, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d6f7, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d6f8, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d6f9, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d6fa, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d6fb, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d6fc, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d6fd, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d6fe, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d6ff, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d700, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d701, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d702, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d703, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d704, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d705, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d706, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d707, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d708, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d709, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d70a, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d70b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d70c, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d70d, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d70e, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d70f, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d710, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d711, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d712, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d713, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d714, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d715, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d716, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d717, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d718, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d719, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d71a, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d71b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d71c, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d71d, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d71e, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d71f, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d720, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d721, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d722, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d723, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d724, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d725, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d726, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d727, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d728, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d729, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d72a, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d72b, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d72c, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d72d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d72e, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d72f, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d730, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d731, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d732, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d733, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d734, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d735, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d736, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d737, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d738, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d739, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d73a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d73b, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d73c, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d73d, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d73e, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d73f, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d740, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d741, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d742, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d743, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d744, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d745, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d746, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d747, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d748, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d749, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d74a, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d74b, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d74c, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d74d, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d74e, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d74f, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d750, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d751, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d752, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d753, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d754, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d755, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d756, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d757, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d758, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d759, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d75a, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d75b, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d75c, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d75d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d75e, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d75f, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d760, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d761, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d762, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d763, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d764, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d765, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d766, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d767, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d768, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d769, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d76a, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d76b, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d76c, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d76d, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d76e, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d76f, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d770, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d771, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d772, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d773, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d774, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d775, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d776, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d777, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d778, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d779, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d77a, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d77b, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d77c, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d77d, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d77e, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d77f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d780, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d781, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d782, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d783, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d784, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d785, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d786, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d787, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d788, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d789, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d78a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d78b, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d78c, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d78d, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d78e, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d78f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d790, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d791, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d792, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d793, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d794, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d795, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d796, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d797, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d798, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d799, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d79a, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d79b, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d79c, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d79d, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d79e, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d79f, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d7a0, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d7a1, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d7a2, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d7a3, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d7a4, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d7a5, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d7a6, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d7a7, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d7a8, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d7a9, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d7aa, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d7ab, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d7ac, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d7ad, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d7ae, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d7af, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d7b0, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d7b1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d7b2, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d7b3, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d7b4, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d7b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d7b6, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d7b7, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d7b8, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d7b9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d7ba, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d7bb, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d7bc, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d7bd, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d7be, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d7bf, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d7c0, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d7c1, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d7c2, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d7c3, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d7c4, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d7c5, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d7c6, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d7c7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d7c8, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d7c9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d7ce, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7cf, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7d0, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7d1, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7d2, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7d3, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7d4, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7d5, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7d6, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7d7, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7d8, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7d9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7da, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7db, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7dc, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7dd, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7de, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7df, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7e0, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7e1, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7e2, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7e3, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7e4, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7e5, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7e6, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7e7, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7e8, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7e9, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7ea, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7eb, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7ec, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7ed, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7ee, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7ef, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7f0, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7f1, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7f2, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7f3, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7f4, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7f5, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7f6, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7f7, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7f8, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7f9, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7fa, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7fb, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7fc, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7fd, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7fe, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7ff, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x2f800, 14468, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f801, 14472, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f802, 14476, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f803, 14480, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f804, 14485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f805, 11545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f806, 14489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f807, 14493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f808, 14497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f809, 14501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80a, 11549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80b, 14505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80c, 14509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80d, 14513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80e, 11553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80f, 14518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f810, 14522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f811, 14526, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f812, 14530, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f813, 14535, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f814, 14539, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f815, 14543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f816, 14547, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f817, 14552, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f818, 14556, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f819, 14560, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81a, 14564, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81b, 14568, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81c, 14572, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81d, 5967, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81e, 14577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81f, 14581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f820, 14585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f821, 14589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f822, 14593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f823, 14597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f824, 14601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f825, 14605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f826, 11557, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f827, 11561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f828, 14609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f829, 14613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82a, 14617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82b, 10837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82c, 14621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82d, 11565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82e, 14625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82f, 14629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f830, 14633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f831, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f832, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f833, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f834, 14641, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f835, 14646, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f836, 14650, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f837, 14654, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f838, 14658, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f839, 14663, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83a, 14667, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83b, 14671, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83c, 14675, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83d, 14679, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83e, 14683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83f, 14687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f840, 14691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f841, 14695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f842, 14699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f843, 14703, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f844, 14707, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f845, 14711, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f846, 14711, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f847, 14715, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f848, 14719, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f849, 14723, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84a, 14727, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84b, 14731, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84c, 11573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84d, 14735, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84e, 14739, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84f, 14743, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f850, 11421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f851, 14747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f852, 14751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f853, 14755, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f854, 14759, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f855, 14763, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f856, 14767, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f857, 14771, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f858, 14775, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f859, 14779, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85a, 14784, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85b, 14788, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85c, 14792, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85d, 14796, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85e, 14800, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85f, 14804, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f860, 14808, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f861, 14813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f862, 14818, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f863, 14822, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f864, 14826, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f865, 14830, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f866, 14834, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f867, 14838, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f868, 14842, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f869, 14847, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86a, 14851, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86b, 14851, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86c, 14855, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86d, 14860, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86e, 14864, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86f, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f870, 14868, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f871, 14872, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f872, 14877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f873, 14881, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f874, 14885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f875, 6071, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f876, 14889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f877, 14893, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f878, 6079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f879, 14897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87a, 14901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87b, 14905, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87c, 14910, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87d, 14914, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87e, 14919, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87f, 14923, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f880, 14927, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f881, 14931, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f882, 14935, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f883, 14939, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f884, 14943, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f885, 14947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f886, 14951, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f887, 14955, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f888, 14959, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f889, 14963, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88a, 14968, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88b, 14972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88c, 14976, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88d, 14980, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88e, 10613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88f, 14984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f890, 6119, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f891, 14989, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f892, 14989, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f893, 14994, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f894, 14998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f895, 14998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f896, 15002, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f897, 15006, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f898, 15011, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f899, 15016, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89a, 15020, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89b, 15024, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89c, 15028, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89d, 15032, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89e, 15036, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89f, 15040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a0, 15044, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a1, 15048, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a2, 15052, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a3, 11593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a4, 15056, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a5, 15061, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a6, 15065, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a7, 15069, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a8, 15073, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a9, 15069, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8aa, 15077, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ab, 11601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ac, 15081, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ad, 15085, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ae, 15089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8af, 15093, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b0, 11605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b1, 10505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b2, 15097, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b3, 15101, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b4, 15105, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b5, 15109, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b6, 15113, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b7, 15117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b8, 15121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b9, 15126, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ba, 15130, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bb, 15134, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bc, 15138, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bd, 15142, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8be, 15146, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bf, 15151, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c0, 15155, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c1, 15159, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c2, 15163, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c3, 15167, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c4, 15171, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c5, 15175, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c6, 15179, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c7, 15183, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c8, 11609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c9, 15187, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ca, 15191, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cb, 15196, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cc, 15200, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cd, 15204, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ce, 15208, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cf, 11617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d0, 15212, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d1, 15216, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d2, 15220, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d3, 15224, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d4, 15228, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d5, 15232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d6, 15236, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d7, 15240, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d8, 10617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d9, 15244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8da, 15248, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8db, 15252, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8dc, 15256, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8dd, 15260, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8de, 15265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8df, 15269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e0, 15273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e1, 15277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e2, 11621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e3, 15281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e4, 15286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e5, 15290, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e6, 15294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e7, 15298, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e8, 15302, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e9, 15306, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ea, 15310, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8eb, 15314, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ec, 15318, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ed, 15323, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ee, 15327, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ef, 15331, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f0, 15335, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f1, 15340, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f2, 15344, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f3, 15348, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f4, 15352, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f5, 10889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f6, 15356, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f7, 15360, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f8, 15365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f9, 15370, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fa, 15375, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fb, 15379, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fc, 15384, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fd, 15388, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fe, 15392, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ff, 15396, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f900, 15400, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f901, 11625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f902, 11221, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f903, 15404, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f904, 15408, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f905, 15412, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f906, 15416, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f907, 15421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f908, 15425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f909, 15429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90a, 15433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90b, 15437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90c, 15441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90d, 15445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90e, 15450, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90f, 15454, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f910, 15458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f911, 15463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f912, 15468, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f913, 15472, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f914, 15476, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f915, 15480, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f916, 15484, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f917, 15488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f918, 15492, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f919, 15496, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91a, 15500, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91b, 15504, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91c, 15509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91d, 15513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91e, 15518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91f, 15522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f920, 15526, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f921, 15530, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f922, 15534, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f923, 15538, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f924, 15543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f925, 15547, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f926, 15551, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f927, 15556, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f928, 15561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f929, 15565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92a, 15569, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92b, 15573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92c, 15577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92d, 15577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92e, 15581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92f, 15585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f930, 15589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f931, 15593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f932, 15597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f933, 15601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f934, 15605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f935, 15609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f936, 15614, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f937, 15618, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f938, 10833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f939, 15623, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93a, 15628, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93b, 15632, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93c, 15637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93d, 15642, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93e, 15647, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93f, 15651, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f940, 15655, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f941, 15659, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f942, 15664, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f943, 15669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f944, 15674, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f945, 15679, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f946, 15683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f947, 15683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f948, 15687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f949, 15691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94a, 15695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94b, 15699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94c, 15703, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94d, 15707, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94e, 15712, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94f, 10685, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f950, 15716, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f951, 15720, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f952, 15724, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f953, 11665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f954, 15729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f955, 15734, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f956, 11501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f957, 15739, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f958, 15743, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f959, 11677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95a, 15747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95b, 15751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95c, 15755, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95d, 15760, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95e, 15760, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95f, 15765, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f960, 15769, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f961, 15773, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f962, 15778, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f963, 15782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f964, 15786, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f965, 15790, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f966, 15795, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f967, 15799, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f968, 15803, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f969, 15807, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96a, 15811, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96b, 15815, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96c, 15820, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96d, 15824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96e, 15828, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96f, 15832, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f970, 15836, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f971, 15840, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f972, 15844, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f973, 15849, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f974, 15854, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f975, 15858, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f976, 15863, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f977, 15867, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f978, 15872, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f979, 15876, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97a, 11701, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97b, 15880, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97c, 15885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97d, 15890, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97e, 15894, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97f, 15899, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f980, 15903, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f981, 15908, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f982, 15912, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f983, 15916, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f984, 15920, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f985, 15924, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f986, 15928, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f987, 15932, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f988, 15937, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f989, 15942, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98a, 15947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98b, 14994, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98c, 15952, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98d, 15956, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98e, 15960, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98f, 15964, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f990, 15968, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f991, 15972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f992, 15976, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f993, 15980, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f994, 15984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f995, 15988, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f996, 15992, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f997, 15996, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f998, 10901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f999, 16001, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99a, 16005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99b, 16009, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99c, 16013, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99d, 16017, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99e, 16021, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99f, 11713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a0, 16025, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a1, 16029, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a2, 16033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a3, 16037, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a4, 16041, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a5, 16046, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a6, 16051, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a7, 16056, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a8, 16060, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a9, 16064, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9aa, 16068, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ab, 16072, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ac, 16077, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ad, 16081, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ae, 16086, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9af, 16090, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b0, 16094, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b1, 16099, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b2, 16104, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b3, 16108, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b4, 10665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b5, 16112, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b6, 16116, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b7, 16120, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b8, 16124, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b9, 16128, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ba, 16132, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bb, 16136, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bc, 16140, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bd, 16144, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9be, 16148, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bf, 16152, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c0, 16156, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c1, 16160, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c2, 16164, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c3, 16168, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c4, 6479, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c5, 16172, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c6, 16177, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c7, 16181, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c8, 16185, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c9, 16189, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ca, 16193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cb, 16197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cc, 16202, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cd, 16207, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ce, 16211, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cf, 16215, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d0, 16219, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d1, 16223, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d2, 6507, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d3, 16227, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d4, 16232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d5, 16236, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d6, 16240, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d7, 16244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d8, 16248, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d9, 16253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9da, 16258, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9db, 16262, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9dc, 16266, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9dd, 16270, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9de, 16275, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9df, 16279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e0, 16283, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e1, 16288, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e2, 16293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e3, 16297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e4, 16301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e5, 16305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e6, 16310, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e7, 16314, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e8, 16318, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e9, 16322, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ea, 16326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9eb, 16330, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ec, 16334, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ed, 16338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ee, 16343, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ef, 16347, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f0, 16351, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f1, 16355, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f2, 16360, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f3, 16364, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f4, 16368, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f5, 16372, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f6, 16376, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f7, 16381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f8, 16386, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f9, 16390, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fa, 16394, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fb, 16398, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fc, 16403, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fd, 16407, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fe, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ff, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa00, 16416, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa01, 16420, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa02, 16425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa03, 16429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa04, 16433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa05, 16437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa06, 16441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa07, 16445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa08, 16449, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa09, 16453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0a, 16458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0b, 16462, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0c, 16466, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0d, 16470, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0e, 16474, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0f, 16478, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa10, 16482, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa11, 16487, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa12, 16491, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa13, 16496, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa14, 16501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa15, 6699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa16, 16506, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa17, 6715, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa18, 16510, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa19, 16514, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1a, 16518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1b, 16522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1c, 6735, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1d, 16526, G_UNICODE_NOT_PRESENT_OFFSET } }; static const gchar decomp_expansion_string[] = "\x20\0" /* offset 0 */ "\x20\xcc\x88\0" /* offset 2 */ "\x61\0" /* offset 6 */ "\x20\xcc\x84\0" /* offset 8 */ "\x32\0" /* offset 12 */ "\x33\0" /* offset 14 */ "\x20\xcc\x81\0" /* offset 16 */ "\xce\xbc\0" /* offset 20 */ "\x20\xcc\xa7\0" /* offset 23 */ "\x31\0" /* offset 27 */ "\x6f\0" /* offset 29 */ "\x31\xe2\x81\x84\x34\0" /* offset 31 */ "\x31\xe2\x81\x84\x32\0" /* offset 37 */ "\x33\xe2\x81\x84\x34\0" /* offset 43 */ "\x41\xcc\x80\0" /* offset 49 */ "\x41\xcc\x81\0" /* offset 53 */ "\x41\xcc\x82\0" /* offset 57 */ "\x41\xcc\x83\0" /* offset 61 */ "\x41\xcc\x88\0" /* offset 65 */ "\x41\xcc\x8a\0" /* offset 69 */ "\x43\xcc\xa7\0" /* offset 73 */ "\x45\xcc\x80\0" /* offset 77 */ "\x45\xcc\x81\0" /* offset 81 */ "\x45\xcc\x82\0" /* offset 85 */ "\x45\xcc\x88\0" /* offset 89 */ "\x49\xcc\x80\0" /* offset 93 */ "\x49\xcc\x81\0" /* offset 97 */ "\x49\xcc\x82\0" /* offset 101 */ "\x49\xcc\x88\0" /* offset 105 */ "\x4e\xcc\x83\0" /* offset 109 */ "\x4f\xcc\x80\0" /* offset 113 */ "\x4f\xcc\x81\0" /* offset 117 */ "\x4f\xcc\x82\0" /* offset 121 */ "\x4f\xcc\x83\0" /* offset 125 */ "\x4f\xcc\x88\0" /* offset 129 */ "\x55\xcc\x80\0" /* offset 133 */ "\x55\xcc\x81\0" /* offset 137 */ "\x55\xcc\x82\0" /* offset 141 */ "\x55\xcc\x88\0" /* offset 145 */ "\x59\xcc\x81\0" /* offset 149 */ "\x61\xcc\x80\0" /* offset 153 */ "\x61\xcc\x81\0" /* offset 157 */ "\x61\xcc\x82\0" /* offset 161 */ "\x61\xcc\x83\0" /* offset 165 */ "\x61\xcc\x88\0" /* offset 169 */ "\x61\xcc\x8a\0" /* offset 173 */ "\x63\xcc\xa7\0" /* offset 177 */ "\x65\xcc\x80\0" /* offset 181 */ "\x65\xcc\x81\0" /* offset 185 */ "\x65\xcc\x82\0" /* offset 189 */ "\x65\xcc\x88\0" /* offset 193 */ "\x69\xcc\x80\0" /* offset 197 */ "\x69\xcc\x81\0" /* offset 201 */ "\x69\xcc\x82\0" /* offset 205 */ "\x69\xcc\x88\0" /* offset 209 */ "\x6e\xcc\x83\0" /* offset 213 */ "\x6f\xcc\x80\0" /* offset 217 */ "\x6f\xcc\x81\0" /* offset 221 */ "\x6f\xcc\x82\0" /* offset 225 */ "\x6f\xcc\x83\0" /* offset 229 */ "\x6f\xcc\x88\0" /* offset 233 */ "\x75\xcc\x80\0" /* offset 237 */ "\x75\xcc\x81\0" /* offset 241 */ "\x75\xcc\x82\0" /* offset 245 */ "\x75\xcc\x88\0" /* offset 249 */ "\x79\xcc\x81\0" /* offset 253 */ "\x79\xcc\x88\0" /* offset 257 */ "\x41\xcc\x84\0" /* offset 261 */ "\x61\xcc\x84\0" /* offset 265 */ "\x41\xcc\x86\0" /* offset 269 */ "\x61\xcc\x86\0" /* offset 273 */ "\x41\xcc\xa8\0" /* offset 277 */ "\x61\xcc\xa8\0" /* offset 281 */ "\x43\xcc\x81\0" /* offset 285 */ "\x63\xcc\x81\0" /* offset 289 */ "\x43\xcc\x82\0" /* offset 293 */ "\x63\xcc\x82\0" /* offset 297 */ "\x43\xcc\x87\0" /* offset 301 */ "\x63\xcc\x87\0" /* offset 305 */ "\x43\xcc\x8c\0" /* offset 309 */ "\x63\xcc\x8c\0" /* offset 313 */ "\x44\xcc\x8c\0" /* offset 317 */ "\x64\xcc\x8c\0" /* offset 321 */ "\x45\xcc\x84\0" /* offset 325 */ "\x65\xcc\x84\0" /* offset 329 */ "\x45\xcc\x86\0" /* offset 333 */ "\x65\xcc\x86\0" /* offset 337 */ "\x45\xcc\x87\0" /* offset 341 */ "\x65\xcc\x87\0" /* offset 345 */ "\x45\xcc\xa8\0" /* offset 349 */ "\x65\xcc\xa8\0" /* offset 353 */ "\x45\xcc\x8c\0" /* offset 357 */ "\x65\xcc\x8c\0" /* offset 361 */ "\x47\xcc\x82\0" /* offset 365 */ "\x67\xcc\x82\0" /* offset 369 */ "\x47\xcc\x86\0" /* offset 373 */ "\x67\xcc\x86\0" /* offset 377 */ "\x47\xcc\x87\0" /* offset 381 */ "\x67\xcc\x87\0" /* offset 385 */ "\x47\xcc\xa7\0" /* offset 389 */ "\x67\xcc\xa7\0" /* offset 393 */ "\x48\xcc\x82\0" /* offset 397 */ "\x68\xcc\x82\0" /* offset 401 */ "\x49\xcc\x83\0" /* offset 405 */ "\x69\xcc\x83\0" /* offset 409 */ "\x49\xcc\x84\0" /* offset 413 */ "\x69\xcc\x84\0" /* offset 417 */ "\x49\xcc\x86\0" /* offset 421 */ "\x69\xcc\x86\0" /* offset 425 */ "\x49\xcc\xa8\0" /* offset 429 */ "\x69\xcc\xa8\0" /* offset 433 */ "\x49\xcc\x87\0" /* offset 437 */ "\x49\x4a\0" /* offset 441 */ "\x69\x6a\0" /* offset 444 */ "\x4a\xcc\x82\0" /* offset 447 */ "\x6a\xcc\x82\0" /* offset 451 */ "\x4b\xcc\xa7\0" /* offset 455 */ "\x6b\xcc\xa7\0" /* offset 459 */ "\x4c\xcc\x81\0" /* offset 463 */ "\x6c\xcc\x81\0" /* offset 467 */ "\x4c\xcc\xa7\0" /* offset 471 */ "\x6c\xcc\xa7\0" /* offset 475 */ "\x4c\xcc\x8c\0" /* offset 479 */ "\x6c\xcc\x8c\0" /* offset 483 */ "\x4c\xc2\xb7\0" /* offset 487 */ "\x6c\xc2\xb7\0" /* offset 491 */ "\x4e\xcc\x81\0" /* offset 495 */ "\x6e\xcc\x81\0" /* offset 499 */ "\x4e\xcc\xa7\0" /* offset 503 */ "\x6e\xcc\xa7\0" /* offset 507 */ "\x4e\xcc\x8c\0" /* offset 511 */ "\x6e\xcc\x8c\0" /* offset 515 */ "\xca\xbc\x6e\0" /* offset 519 */ "\x4f\xcc\x84\0" /* offset 523 */ "\x6f\xcc\x84\0" /* offset 527 */ "\x4f\xcc\x86\0" /* offset 531 */ "\x6f\xcc\x86\0" /* offset 535 */ "\x4f\xcc\x8b\0" /* offset 539 */ "\x6f\xcc\x8b\0" /* offset 543 */ "\x52\xcc\x81\0" /* offset 547 */ "\x72\xcc\x81\0" /* offset 551 */ "\x52\xcc\xa7\0" /* offset 555 */ "\x72\xcc\xa7\0" /* offset 559 */ "\x52\xcc\x8c\0" /* offset 563 */ "\x72\xcc\x8c\0" /* offset 567 */ "\x53\xcc\x81\0" /* offset 571 */ "\x73\xcc\x81\0" /* offset 575 */ "\x53\xcc\x82\0" /* offset 579 */ "\x73\xcc\x82\0" /* offset 583 */ "\x53\xcc\xa7\0" /* offset 587 */ "\x73\xcc\xa7\0" /* offset 591 */ "\x53\xcc\x8c\0" /* offset 595 */ "\x73\xcc\x8c\0" /* offset 599 */ "\x54\xcc\xa7\0" /* offset 603 */ "\x74\xcc\xa7\0" /* offset 607 */ "\x54\xcc\x8c\0" /* offset 611 */ "\x74\xcc\x8c\0" /* offset 615 */ "\x55\xcc\x83\0" /* offset 619 */ "\x75\xcc\x83\0" /* offset 623 */ "\x55\xcc\x84\0" /* offset 627 */ "\x75\xcc\x84\0" /* offset 631 */ "\x55\xcc\x86\0" /* offset 635 */ "\x75\xcc\x86\0" /* offset 639 */ "\x55\xcc\x8a\0" /* offset 643 */ "\x75\xcc\x8a\0" /* offset 647 */ "\x55\xcc\x8b\0" /* offset 651 */ "\x75\xcc\x8b\0" /* offset 655 */ "\x55\xcc\xa8\0" /* offset 659 */ "\x75\xcc\xa8\0" /* offset 663 */ "\x57\xcc\x82\0" /* offset 667 */ "\x77\xcc\x82\0" /* offset 671 */ "\x59\xcc\x82\0" /* offset 675 */ "\x79\xcc\x82\0" /* offset 679 */ "\x59\xcc\x88\0" /* offset 683 */ "\x5a\xcc\x81\0" /* offset 687 */ "\x7a\xcc\x81\0" /* offset 691 */ "\x5a\xcc\x87\0" /* offset 695 */ "\x7a\xcc\x87\0" /* offset 699 */ "\x5a\xcc\x8c\0" /* offset 703 */ "\x7a\xcc\x8c\0" /* offset 707 */ "\x73\0" /* offset 711 */ "\x4f\xcc\x9b\0" /* offset 713 */ "\x6f\xcc\x9b\0" /* offset 717 */ "\x55\xcc\x9b\0" /* offset 721 */ "\x75\xcc\x9b\0" /* offset 725 */ "\x44\x5a\xcc\x8c\0" /* offset 729 */ "\x44\x7a\xcc\x8c\0" /* offset 734 */ "\x64\x7a\xcc\x8c\0" /* offset 739 */ "\x4c\x4a\0" /* offset 744 */ "\x4c\x6a\0" /* offset 747 */ "\x6c\x6a\0" /* offset 750 */ "\x4e\x4a\0" /* offset 753 */ "\x4e\x6a\0" /* offset 756 */ "\x6e\x6a\0" /* offset 759 */ "\x41\xcc\x8c\0" /* offset 762 */ "\x61\xcc\x8c\0" /* offset 766 */ "\x49\xcc\x8c\0" /* offset 770 */ "\x69\xcc\x8c\0" /* offset 774 */ "\x4f\xcc\x8c\0" /* offset 778 */ "\x6f\xcc\x8c\0" /* offset 782 */ "\x55\xcc\x8c\0" /* offset 786 */ "\x75\xcc\x8c\0" /* offset 790 */ "\x55\xcc\x88\xcc\x84\0" /* offset 794 */ "\x75\xcc\x88\xcc\x84\0" /* offset 800 */ "\x55\xcc\x88\xcc\x81\0" /* offset 806 */ "\x75\xcc\x88\xcc\x81\0" /* offset 812 */ "\x55\xcc\x88\xcc\x8c\0" /* offset 818 */ "\x75\xcc\x88\xcc\x8c\0" /* offset 824 */ "\x55\xcc\x88\xcc\x80\0" /* offset 830 */ "\x75\xcc\x88\xcc\x80\0" /* offset 836 */ "\x41\xcc\x88\xcc\x84\0" /* offset 842 */ "\x61\xcc\x88\xcc\x84\0" /* offset 848 */ "\x41\xcc\x87\xcc\x84\0" /* offset 854 */ "\x61\xcc\x87\xcc\x84\0" /* offset 860 */ "\xc3\x86\xcc\x84\0" /* offset 866 */ "\xc3\xa6\xcc\x84\0" /* offset 871 */ "\x47\xcc\x8c\0" /* offset 876 */ "\x67\xcc\x8c\0" /* offset 880 */ "\x4b\xcc\x8c\0" /* offset 884 */ "\x6b\xcc\x8c\0" /* offset 888 */ "\x4f\xcc\xa8\0" /* offset 892 */ "\x6f\xcc\xa8\0" /* offset 896 */ "\x4f\xcc\xa8\xcc\x84\0" /* offset 900 */ "\x6f\xcc\xa8\xcc\x84\0" /* offset 906 */ "\xc6\xb7\xcc\x8c\0" /* offset 912 */ "\xca\x92\xcc\x8c\0" /* offset 917 */ "\x6a\xcc\x8c\0" /* offset 922 */ "\x44\x5a\0" /* offset 926 */ "\x44\x7a\0" /* offset 929 */ "\x64\x7a\0" /* offset 932 */ "\x47\xcc\x81\0" /* offset 935 */ "\x67\xcc\x81\0" /* offset 939 */ "\x4e\xcc\x80\0" /* offset 943 */ "\x6e\xcc\x80\0" /* offset 947 */ "\x41\xcc\x8a\xcc\x81\0" /* offset 951 */ "\x61\xcc\x8a\xcc\x81\0" /* offset 957 */ "\xc3\x86\xcc\x81\0" /* offset 963 */ "\xc3\xa6\xcc\x81\0" /* offset 968 */ "\xc3\x98\xcc\x81\0" /* offset 973 */ "\xc3\xb8\xcc\x81\0" /* offset 978 */ "\x41\xcc\x8f\0" /* offset 983 */ "\x61\xcc\x8f\0" /* offset 987 */ "\x41\xcc\x91\0" /* offset 991 */ "\x61\xcc\x91\0" /* offset 995 */ "\x45\xcc\x8f\0" /* offset 999 */ "\x65\xcc\x8f\0" /* offset 1003 */ "\x45\xcc\x91\0" /* offset 1007 */ "\x65\xcc\x91\0" /* offset 1011 */ "\x49\xcc\x8f\0" /* offset 1015 */ "\x69\xcc\x8f\0" /* offset 1019 */ "\x49\xcc\x91\0" /* offset 1023 */ "\x69\xcc\x91\0" /* offset 1027 */ "\x4f\xcc\x8f\0" /* offset 1031 */ "\x6f\xcc\x8f\0" /* offset 1035 */ "\x4f\xcc\x91\0" /* offset 1039 */ "\x6f\xcc\x91\0" /* offset 1043 */ "\x52\xcc\x8f\0" /* offset 1047 */ "\x72\xcc\x8f\0" /* offset 1051 */ "\x52\xcc\x91\0" /* offset 1055 */ "\x72\xcc\x91\0" /* offset 1059 */ "\x55\xcc\x8f\0" /* offset 1063 */ "\x75\xcc\x8f\0" /* offset 1067 */ "\x55\xcc\x91\0" /* offset 1071 */ "\x75\xcc\x91\0" /* offset 1075 */ "\x53\xcc\xa6\0" /* offset 1079 */ "\x73\xcc\xa6\0" /* offset 1083 */ "\x54\xcc\xa6\0" /* offset 1087 */ "\x74\xcc\xa6\0" /* offset 1091 */ "\x48\xcc\x8c\0" /* offset 1095 */ "\x68\xcc\x8c\0" /* offset 1099 */ "\x41\xcc\x87\0" /* offset 1103 */ "\x61\xcc\x87\0" /* offset 1107 */ "\x45\xcc\xa7\0" /* offset 1111 */ "\x65\xcc\xa7\0" /* offset 1115 */ "\x4f\xcc\x88\xcc\x84\0" /* offset 1119 */ "\x6f\xcc\x88\xcc\x84\0" /* offset 1125 */ "\x4f\xcc\x83\xcc\x84\0" /* offset 1131 */ "\x6f\xcc\x83\xcc\x84\0" /* offset 1137 */ "\x4f\xcc\x87\0" /* offset 1143 */ "\x6f\xcc\x87\0" /* offset 1147 */ "\x4f\xcc\x87\xcc\x84\0" /* offset 1151 */ "\x6f\xcc\x87\xcc\x84\0" /* offset 1157 */ "\x59\xcc\x84\0" /* offset 1163 */ "\x79\xcc\x84\0" /* offset 1167 */ "\x68\0" /* offset 1171 */ "\xc9\xa6\0" /* offset 1173 */ "\x6a\0" /* offset 1176 */ "\x72\0" /* offset 1178 */ "\xc9\xb9\0" /* offset 1180 */ "\xc9\xbb\0" /* offset 1183 */ "\xca\x81\0" /* offset 1186 */ "\x77\0" /* offset 1189 */ "\x79\0" /* offset 1191 */ "\x20\xcc\x86\0" /* offset 1193 */ "\x20\xcc\x87\0" /* offset 1197 */ "\x20\xcc\x8a\0" /* offset 1201 */ "\x20\xcc\xa8\0" /* offset 1205 */ "\x20\xcc\x83\0" /* offset 1209 */ "\x20\xcc\x8b\0" /* offset 1213 */ "\xc9\xa3\0" /* offset 1217 */ "\x6c\0" /* offset 1220 */ "\x78\0" /* offset 1222 */ "\xca\x95\0" /* offset 1224 */ "\xcc\x80\0" /* offset 1227 */ "\xcc\x81\0" /* offset 1230 */ "\xcc\x93\0" /* offset 1233 */ "\xcc\x88\xcc\x81\0" /* offset 1236 */ "\xca\xb9\0" /* offset 1241 */ "\x20\xcd\x85\0" /* offset 1244 */ "\x3b\0" /* offset 1248 */ "\xc2\xa8\xcc\x81\0" /* offset 1250 */ "\x20\xcc\x88\xcc\x81\0" /* offset 1255 */ "\xce\x91\xcc\x81\0" /* offset 1261 */ "\xc2\xb7\0" /* offset 1266 */ "\xce\x95\xcc\x81\0" /* offset 1269 */ "\xce\x97\xcc\x81\0" /* offset 1274 */ "\xce\x99\xcc\x81\0" /* offset 1279 */ "\xce\x9f\xcc\x81\0" /* offset 1284 */ "\xce\xa5\xcc\x81\0" /* offset 1289 */ "\xce\xa9\xcc\x81\0" /* offset 1294 */ "\xce\xb9\xcc\x88\xcc\x81\0" /* offset 1299 */ "\xce\x99\xcc\x88\0" /* offset 1306 */ "\xce\xa5\xcc\x88\0" /* offset 1311 */ "\xce\xb1\xcc\x81\0" /* offset 1316 */ "\xce\xb5\xcc\x81\0" /* offset 1321 */ "\xce\xb7\xcc\x81\0" /* offset 1326 */ "\xce\xb9\xcc\x81\0" /* offset 1331 */ "\xcf\x85\xcc\x88\xcc\x81\0" /* offset 1336 */ "\xce\xb9\xcc\x88\0" /* offset 1343 */ "\xcf\x85\xcc\x88\0" /* offset 1348 */ "\xce\xbf\xcc\x81\0" /* offset 1353 */ "\xcf\x85\xcc\x81\0" /* offset 1358 */ "\xcf\x89\xcc\x81\0" /* offset 1363 */ "\xce\xb2\0" /* offset 1368 */ "\xce\xb8\0" /* offset 1371 */ "\xce\xa5\0" /* offset 1374 */ "\xcf\x92\xcc\x81\0" /* offset 1377 */ "\xcf\x92\xcc\x88\0" /* offset 1382 */ "\xcf\x86\0" /* offset 1387 */ "\xcf\x80\0" /* offset 1390 */ "\xce\xba\0" /* offset 1393 */ "\xcf\x81\0" /* offset 1396 */ "\xcf\x82\0" /* offset 1399 */ "\xce\x98\0" /* offset 1402 */ "\xce\xb5\0" /* offset 1405 */ "\xd0\x95\xcc\x80\0" /* offset 1408 */ "\xd0\x95\xcc\x88\0" /* offset 1413 */ "\xd0\x93\xcc\x81\0" /* offset 1418 */ "\xd0\x86\xcc\x88\0" /* offset 1423 */ "\xd0\x9a\xcc\x81\0" /* offset 1428 */ "\xd0\x98\xcc\x80\0" /* offset 1433 */ "\xd0\xa3\xcc\x86\0" /* offset 1438 */ "\xd0\x98\xcc\x86\0" /* offset 1443 */ "\xd0\xb8\xcc\x86\0" /* offset 1448 */ "\xd0\xb5\xcc\x80\0" /* offset 1453 */ "\xd0\xb5\xcc\x88\0" /* offset 1458 */ "\xd0\xb3\xcc\x81\0" /* offset 1463 */ "\xd1\x96\xcc\x88\0" /* offset 1468 */ "\xd0\xba\xcc\x81\0" /* offset 1473 */ "\xd0\xb8\xcc\x80\0" /* offset 1478 */ "\xd1\x83\xcc\x86\0" /* offset 1483 */ "\xd1\xb4\xcc\x8f\0" /* offset 1488 */ "\xd1\xb5\xcc\x8f\0" /* offset 1493 */ "\xd0\x96\xcc\x86\0" /* offset 1498 */ "\xd0\xb6\xcc\x86\0" /* offset 1503 */ "\xd0\x90\xcc\x86\0" /* offset 1508 */ "\xd0\xb0\xcc\x86\0" /* offset 1513 */ "\xd0\x90\xcc\x88\0" /* offset 1518 */ "\xd0\xb0\xcc\x88\0" /* offset 1523 */ "\xd0\x95\xcc\x86\0" /* offset 1528 */ "\xd0\xb5\xcc\x86\0" /* offset 1533 */ "\xd3\x98\xcc\x88\0" /* offset 1538 */ "\xd3\x99\xcc\x88\0" /* offset 1543 */ "\xd0\x96\xcc\x88\0" /* offset 1548 */ "\xd0\xb6\xcc\x88\0" /* offset 1553 */ "\xd0\x97\xcc\x88\0" /* offset 1558 */ "\xd0\xb7\xcc\x88\0" /* offset 1563 */ "\xd0\x98\xcc\x84\0" /* offset 1568 */ "\xd0\xb8\xcc\x84\0" /* offset 1573 */ "\xd0\x98\xcc\x88\0" /* offset 1578 */ "\xd0\xb8\xcc\x88\0" /* offset 1583 */ "\xd0\x9e\xcc\x88\0" /* offset 1588 */ "\xd0\xbe\xcc\x88\0" /* offset 1593 */ "\xd3\xa8\xcc\x88\0" /* offset 1598 */ "\xd3\xa9\xcc\x88\0" /* offset 1603 */ "\xd0\xad\xcc\x88\0" /* offset 1608 */ "\xd1\x8d\xcc\x88\0" /* offset 1613 */ "\xd0\xa3\xcc\x84\0" /* offset 1618 */ "\xd1\x83\xcc\x84\0" /* offset 1623 */ "\xd0\xa3\xcc\x88\0" /* offset 1628 */ "\xd1\x83\xcc\x88\0" /* offset 1633 */ "\xd0\xa3\xcc\x8b\0" /* offset 1638 */ "\xd1\x83\xcc\x8b\0" /* offset 1643 */ "\xd0\xa7\xcc\x88\0" /* offset 1648 */ "\xd1\x87\xcc\x88\0" /* offset 1653 */ "\xd0\xab\xcc\x88\0" /* offset 1658 */ "\xd1\x8b\xcc\x88\0" /* offset 1663 */ "\xd5\xa5\xd6\x82\0" /* offset 1668 */ "\xd8\xa7\xd9\x93\0" /* offset 1673 */ "\xd8\xa7\xd9\x94\0" /* offset 1678 */ "\xd9\x88\xd9\x94\0" /* offset 1683 */ "\xd8\xa7\xd9\x95\0" /* offset 1688 */ "\xd9\x8a\xd9\x94\0" /* offset 1693 */ "\xd8\xa7\xd9\xb4\0" /* offset 1698 */ "\xd9\x88\xd9\xb4\0" /* offset 1703 */ "\xdb\x87\xd9\xb4\0" /* offset 1708 */ "\xd9\x8a\xd9\xb4\0" /* offset 1713 */ "\xdb\x95\xd9\x94\0" /* offset 1718 */ "\xdb\x81\xd9\x94\0" /* offset 1723 */ "\xdb\x92\xd9\x94\0" /* offset 1728 */ "\xe0\xa4\xa8\xe0\xa4\xbc\0" /* offset 1733 */ "\xe0\xa4\xb0\xe0\xa4\xbc\0" /* offset 1740 */ "\xe0\xa4\xb3\xe0\xa4\xbc\0" /* offset 1747 */ "\xe0\xa4\x95\xe0\xa4\xbc\0" /* offset 1754 */ "\xe0\xa4\x96\xe0\xa4\xbc\0" /* offset 1761 */ "\xe0\xa4\x97\xe0\xa4\xbc\0" /* offset 1768 */ "\xe0\xa4\x9c\xe0\xa4\xbc\0" /* offset 1775 */ "\xe0\xa4\xa1\xe0\xa4\xbc\0" /* offset 1782 */ "\xe0\xa4\xa2\xe0\xa4\xbc\0" /* offset 1789 */ "\xe0\xa4\xab\xe0\xa4\xbc\0" /* offset 1796 */ "\xe0\xa4\xaf\xe0\xa4\xbc\0" /* offset 1803 */ "\xe0\xa7\x87\xe0\xa6\xbe\0" /* offset 1810 */ "\xe0\xa7\x87\xe0\xa7\x97\0" /* offset 1817 */ "\xe0\xa6\xa1\xe0\xa6\xbc\0" /* offset 1824 */ "\xe0\xa6\xa2\xe0\xa6\xbc\0" /* offset 1831 */ "\xe0\xa6\xaf\xe0\xa6\xbc\0" /* offset 1838 */ "\xe0\xa8\xb2\xe0\xa8\xbc\0" /* offset 1845 */ "\xe0\xa8\xb8\xe0\xa8\xbc\0" /* offset 1852 */ "\xe0\xa8\x96\xe0\xa8\xbc\0" /* offset 1859 */ "\xe0\xa8\x97\xe0\xa8\xbc\0" /* offset 1866 */ "\xe0\xa8\x9c\xe0\xa8\xbc\0" /* offset 1873 */ "\xe0\xa8\xab\xe0\xa8\xbc\0" /* offset 1880 */ "\xe0\xad\x87\xe0\xad\x96\0" /* offset 1887 */ "\xe0\xad\x87\xe0\xac\xbe\0" /* offset 1894 */ "\xe0\xad\x87\xe0\xad\x97\0" /* offset 1901 */ "\xe0\xac\xa1\xe0\xac\xbc\0" /* offset 1908 */ "\xe0\xac\xa2\xe0\xac\xbc\0" /* offset 1915 */ "\xe0\xae\x92\xe0\xaf\x97\0" /* offset 1922 */ "\xe0\xaf\x86\xe0\xae\xbe\0" /* offset 1929 */ "\xe0\xaf\x87\xe0\xae\xbe\0" /* offset 1936 */ "\xe0\xaf\x86\xe0\xaf\x97\0" /* offset 1943 */ "\xe0\xb1\x86\xe0\xb1\x96\0" /* offset 1950 */ "\xe0\xb2\xbf\xe0\xb3\x95\0" /* offset 1957 */ "\xe0\xb3\x86\xe0\xb3\x95\0" /* offset 1964 */ "\xe0\xb3\x86\xe0\xb3\x96\0" /* offset 1971 */ "\xe0\xb3\x86\xe0\xb3\x82\0" /* offset 1978 */ "\xe0\xb3\x86\xe0\xb3\x82\xe0\xb3\x95\0" /* offset 1985 */ "\xe0\xb5\x86\xe0\xb4\xbe\0" /* offset 1995 */ "\xe0\xb5\x87\xe0\xb4\xbe\0" /* offset 2002 */ "\xe0\xb5\x86\xe0\xb5\x97\0" /* offset 2009 */ "\xe0\xb7\x99\xe0\xb7\x8a\0" /* offset 2016 */ "\xe0\xb7\x99\xe0\xb7\x8f\0" /* offset 2023 */ "\xe0\xb7\x99\xe0\xb7\x8f\xe0\xb7\x8a\0" /* offset 2030 */ "\xe0\xb7\x99\xe0\xb7\x9f\0" /* offset 2040 */ "\xe0\xb9\x8d\xe0\xb8\xb2\0" /* offset 2047 */ "\xe0\xbb\x8d\xe0\xba\xb2\0" /* offset 2054 */ "\xe0\xba\xab\xe0\xba\x99\0" /* offset 2061 */ "\xe0\xba\xab\xe0\xba\xa1\0" /* offset 2068 */ "\xe0\xbc\x8b\0" /* offset 2075 */ "\xe0\xbd\x82\xe0\xbe\xb7\0" /* offset 2079 */ "\xe0\xbd\x8c\xe0\xbe\xb7\0" /* offset 2086 */ "\xe0\xbd\x91\xe0\xbe\xb7\0" /* offset 2093 */ "\xe0\xbd\x96\xe0\xbe\xb7\0" /* offset 2100 */ "\xe0\xbd\x9b\xe0\xbe\xb7\0" /* offset 2107 */ "\xe0\xbd\x80\xe0\xbe\xb5\0" /* offset 2114 */ "\xe0\xbd\xb1\xe0\xbd\xb2\0" /* offset 2121 */ "\xe0\xbd\xb1\xe0\xbd\xb4\0" /* offset 2128 */ "\xe0\xbe\xb2\xe0\xbe\x80\0" /* offset 2135 */ "\xe0\xbe\xb2\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2142 */ "\xe0\xbe\xb3\xe0\xbe\x80\0" /* offset 2152 */ "\xe0\xbe\xb3\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2159 */ "\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2169 */ "\xe0\xbe\x92\xe0\xbe\xb7\0" /* offset 2176 */ "\xe0\xbe\x9c\xe0\xbe\xb7\0" /* offset 2183 */ "\xe0\xbe\xa1\xe0\xbe\xb7\0" /* offset 2190 */ "\xe0\xbe\xa6\xe0\xbe\xb7\0" /* offset 2197 */ "\xe0\xbe\xab\xe0\xbe\xb7\0" /* offset 2204 */ "\xe0\xbe\x90\xe0\xbe\xb5\0" /* offset 2211 */ "\xe1\x80\xa5\xe1\x80\xae\0" /* offset 2218 */ "\x41\xcc\xa5\0" /* offset 2225 */ "\x61\xcc\xa5\0" /* offset 2229 */ "\x42\xcc\x87\0" /* offset 2233 */ "\x62\xcc\x87\0" /* offset 2237 */ "\x42\xcc\xa3\0" /* offset 2241 */ "\x62\xcc\xa3\0" /* offset 2245 */ "\x42\xcc\xb1\0" /* offset 2249 */ "\x62\xcc\xb1\0" /* offset 2253 */ "\x43\xcc\xa7\xcc\x81\0" /* offset 2257 */ "\x63\xcc\xa7\xcc\x81\0" /* offset 2263 */ "\x44\xcc\x87\0" /* offset 2269 */ "\x64\xcc\x87\0" /* offset 2273 */ "\x44\xcc\xa3\0" /* offset 2277 */ "\x64\xcc\xa3\0" /* offset 2281 */ "\x44\xcc\xb1\0" /* offset 2285 */ "\x64\xcc\xb1\0" /* offset 2289 */ "\x44\xcc\xa7\0" /* offset 2293 */ "\x64\xcc\xa7\0" /* offset 2297 */ "\x44\xcc\xad\0" /* offset 2301 */ "\x64\xcc\xad\0" /* offset 2305 */ "\x45\xcc\x84\xcc\x80\0" /* offset 2309 */ "\x65\xcc\x84\xcc\x80\0" /* offset 2315 */ "\x45\xcc\x84\xcc\x81\0" /* offset 2321 */ "\x65\xcc\x84\xcc\x81\0" /* offset 2327 */ "\x45\xcc\xad\0" /* offset 2333 */ "\x65\xcc\xad\0" /* offset 2337 */ "\x45\xcc\xb0\0" /* offset 2341 */ "\x65\xcc\xb0\0" /* offset 2345 */ "\x45\xcc\xa7\xcc\x86\0" /* offset 2349 */ "\x65\xcc\xa7\xcc\x86\0" /* offset 2355 */ "\x46\xcc\x87\0" /* offset 2361 */ "\x66\xcc\x87\0" /* offset 2365 */ "\x47\xcc\x84\0" /* offset 2369 */ "\x67\xcc\x84\0" /* offset 2373 */ "\x48\xcc\x87\0" /* offset 2377 */ "\x68\xcc\x87\0" /* offset 2381 */ "\x48\xcc\xa3\0" /* offset 2385 */ "\x68\xcc\xa3\0" /* offset 2389 */ "\x48\xcc\x88\0" /* offset 2393 */ "\x68\xcc\x88\0" /* offset 2397 */ "\x48\xcc\xa7\0" /* offset 2401 */ "\x68\xcc\xa7\0" /* offset 2405 */ "\x48\xcc\xae\0" /* offset 2409 */ "\x68\xcc\xae\0" /* offset 2413 */ "\x49\xcc\xb0\0" /* offset 2417 */ "\x69\xcc\xb0\0" /* offset 2421 */ "\x49\xcc\x88\xcc\x81\0" /* offset 2425 */ "\x69\xcc\x88\xcc\x81\0" /* offset 2431 */ "\x4b\xcc\x81\0" /* offset 2437 */ "\x6b\xcc\x81\0" /* offset 2441 */ "\x4b\xcc\xa3\0" /* offset 2445 */ "\x6b\xcc\xa3\0" /* offset 2449 */ "\x4b\xcc\xb1\0" /* offset 2453 */ "\x6b\xcc\xb1\0" /* offset 2457 */ "\x4c\xcc\xa3\0" /* offset 2461 */ "\x6c\xcc\xa3\0" /* offset 2465 */ "\x4c\xcc\xa3\xcc\x84\0" /* offset 2469 */ "\x6c\xcc\xa3\xcc\x84\0" /* offset 2475 */ "\x4c\xcc\xb1\0" /* offset 2481 */ "\x6c\xcc\xb1\0" /* offset 2485 */ "\x4c\xcc\xad\0" /* offset 2489 */ "\x6c\xcc\xad\0" /* offset 2493 */ "\x4d\xcc\x81\0" /* offset 2497 */ "\x6d\xcc\x81\0" /* offset 2501 */ "\x4d\xcc\x87\0" /* offset 2505 */ "\x6d\xcc\x87\0" /* offset 2509 */ "\x4d\xcc\xa3\0" /* offset 2513 */ "\x6d\xcc\xa3\0" /* offset 2517 */ "\x4e\xcc\x87\0" /* offset 2521 */ "\x6e\xcc\x87\0" /* offset 2525 */ "\x4e\xcc\xa3\0" /* offset 2529 */ "\x6e\xcc\xa3\0" /* offset 2533 */ "\x4e\xcc\xb1\0" /* offset 2537 */ "\x6e\xcc\xb1\0" /* offset 2541 */ "\x4e\xcc\xad\0" /* offset 2545 */ "\x6e\xcc\xad\0" /* offset 2549 */ "\x4f\xcc\x83\xcc\x81\0" /* offset 2553 */ "\x6f\xcc\x83\xcc\x81\0" /* offset 2559 */ "\x4f\xcc\x83\xcc\x88\0" /* offset 2565 */ "\x6f\xcc\x83\xcc\x88\0" /* offset 2571 */ "\x4f\xcc\x84\xcc\x80\0" /* offset 2577 */ "\x6f\xcc\x84\xcc\x80\0" /* offset 2583 */ "\x4f\xcc\x84\xcc\x81\0" /* offset 2589 */ "\x6f\xcc\x84\xcc\x81\0" /* offset 2595 */ "\x50\xcc\x81\0" /* offset 2601 */ "\x70\xcc\x81\0" /* offset 2605 */ "\x50\xcc\x87\0" /* offset 2609 */ "\x70\xcc\x87\0" /* offset 2613 */ "\x52\xcc\x87\0" /* offset 2617 */ "\x72\xcc\x87\0" /* offset 2621 */ "\x52\xcc\xa3\0" /* offset 2625 */ "\x72\xcc\xa3\0" /* offset 2629 */ "\x52\xcc\xa3\xcc\x84\0" /* offset 2633 */ "\x72\xcc\xa3\xcc\x84\0" /* offset 2639 */ "\x52\xcc\xb1\0" /* offset 2645 */ "\x72\xcc\xb1\0" /* offset 2649 */ "\x53\xcc\x87\0" /* offset 2653 */ "\x73\xcc\x87\0" /* offset 2657 */ "\x53\xcc\xa3\0" /* offset 2661 */ "\x73\xcc\xa3\0" /* offset 2665 */ "\x53\xcc\x81\xcc\x87\0" /* offset 2669 */ "\x73\xcc\x81\xcc\x87\0" /* offset 2675 */ "\x53\xcc\x8c\xcc\x87\0" /* offset 2681 */ "\x73\xcc\x8c\xcc\x87\0" /* offset 2687 */ "\x53\xcc\xa3\xcc\x87\0" /* offset 2693 */ "\x73\xcc\xa3\xcc\x87\0" /* offset 2699 */ "\x54\xcc\x87\0" /* offset 2705 */ "\x74\xcc\x87\0" /* offset 2709 */ "\x54\xcc\xa3\0" /* offset 2713 */ "\x74\xcc\xa3\0" /* offset 2717 */ "\x54\xcc\xb1\0" /* offset 2721 */ "\x74\xcc\xb1\0" /* offset 2725 */ "\x54\xcc\xad\0" /* offset 2729 */ "\x74\xcc\xad\0" /* offset 2733 */ "\x55\xcc\xa4\0" /* offset 2737 */ "\x75\xcc\xa4\0" /* offset 2741 */ "\x55\xcc\xb0\0" /* offset 2745 */ "\x75\xcc\xb0\0" /* offset 2749 */ "\x55\xcc\xad\0" /* offset 2753 */ "\x75\xcc\xad\0" /* offset 2757 */ "\x55\xcc\x83\xcc\x81\0" /* offset 2761 */ "\x75\xcc\x83\xcc\x81\0" /* offset 2767 */ "\x55\xcc\x84\xcc\x88\0" /* offset 2773 */ "\x75\xcc\x84\xcc\x88\0" /* offset 2779 */ "\x56\xcc\x83\0" /* offset 2785 */ "\x76\xcc\x83\0" /* offset 2789 */ "\x56\xcc\xa3\0" /* offset 2793 */ "\x76\xcc\xa3\0" /* offset 2797 */ "\x57\xcc\x80\0" /* offset 2801 */ "\x77\xcc\x80\0" /* offset 2805 */ "\x57\xcc\x81\0" /* offset 2809 */ "\x77\xcc\x81\0" /* offset 2813 */ "\x57\xcc\x88\0" /* offset 2817 */ "\x77\xcc\x88\0" /* offset 2821 */ "\x57\xcc\x87\0" /* offset 2825 */ "\x77\xcc\x87\0" /* offset 2829 */ "\x57\xcc\xa3\0" /* offset 2833 */ "\x77\xcc\xa3\0" /* offset 2837 */ "\x58\xcc\x87\0" /* offset 2841 */ "\x78\xcc\x87\0" /* offset 2845 */ "\x58\xcc\x88\0" /* offset 2849 */ "\x78\xcc\x88\0" /* offset 2853 */ "\x59\xcc\x87\0" /* offset 2857 */ "\x79\xcc\x87\0" /* offset 2861 */ "\x5a\xcc\x82\0" /* offset 2865 */ "\x7a\xcc\x82\0" /* offset 2869 */ "\x5a\xcc\xa3\0" /* offset 2873 */ "\x7a\xcc\xa3\0" /* offset 2877 */ "\x5a\xcc\xb1\0" /* offset 2881 */ "\x7a\xcc\xb1\0" /* offset 2885 */ "\x68\xcc\xb1\0" /* offset 2889 */ "\x74\xcc\x88\0" /* offset 2893 */ "\x77\xcc\x8a\0" /* offset 2897 */ "\x79\xcc\x8a\0" /* offset 2901 */ "\x61\xca\xbe\0" /* offset 2905 */ "\xc5\xbf\xcc\x87\0" /* offset 2909 */ "\x41\xcc\xa3\0" /* offset 2914 */ "\x61\xcc\xa3\0" /* offset 2918 */ "\x41\xcc\x89\0" /* offset 2922 */ "\x61\xcc\x89\0" /* offset 2926 */ "\x41\xcc\x82\xcc\x81\0" /* offset 2930 */ "\x61\xcc\x82\xcc\x81\0" /* offset 2936 */ "\x41\xcc\x82\xcc\x80\0" /* offset 2942 */ "\x61\xcc\x82\xcc\x80\0" /* offset 2948 */ "\x41\xcc\x82\xcc\x89\0" /* offset 2954 */ "\x61\xcc\x82\xcc\x89\0" /* offset 2960 */ "\x41\xcc\x82\xcc\x83\0" /* offset 2966 */ "\x61\xcc\x82\xcc\x83\0" /* offset 2972 */ "\x41\xcc\xa3\xcc\x82\0" /* offset 2978 */ "\x61\xcc\xa3\xcc\x82\0" /* offset 2984 */ "\x41\xcc\x86\xcc\x81\0" /* offset 2990 */ "\x61\xcc\x86\xcc\x81\0" /* offset 2996 */ "\x41\xcc\x86\xcc\x80\0" /* offset 3002 */ "\x61\xcc\x86\xcc\x80\0" /* offset 3008 */ "\x41\xcc\x86\xcc\x89\0" /* offset 3014 */ "\x61\xcc\x86\xcc\x89\0" /* offset 3020 */ "\x41\xcc\x86\xcc\x83\0" /* offset 3026 */ "\x61\xcc\x86\xcc\x83\0" /* offset 3032 */ "\x41\xcc\xa3\xcc\x86\0" /* offset 3038 */ "\x61\xcc\xa3\xcc\x86\0" /* offset 3044 */ "\x45\xcc\xa3\0" /* offset 3050 */ "\x65\xcc\xa3\0" /* offset 3054 */ "\x45\xcc\x89\0" /* offset 3058 */ "\x65\xcc\x89\0" /* offset 3062 */ "\x45\xcc\x83\0" /* offset 3066 */ "\x65\xcc\x83\0" /* offset 3070 */ "\x45\xcc\x82\xcc\x81\0" /* offset 3074 */ "\x65\xcc\x82\xcc\x81\0" /* offset 3080 */ "\x45\xcc\x82\xcc\x80\0" /* offset 3086 */ "\x65\xcc\x82\xcc\x80\0" /* offset 3092 */ "\x45\xcc\x82\xcc\x89\0" /* offset 3098 */ "\x65\xcc\x82\xcc\x89\0" /* offset 3104 */ "\x45\xcc\x82\xcc\x83\0" /* offset 3110 */ "\x65\xcc\x82\xcc\x83\0" /* offset 3116 */ "\x45\xcc\xa3\xcc\x82\0" /* offset 3122 */ "\x65\xcc\xa3\xcc\x82\0" /* offset 3128 */ "\x49\xcc\x89\0" /* offset 3134 */ "\x69\xcc\x89\0" /* offset 3138 */ "\x49\xcc\xa3\0" /* offset 3142 */ "\x69\xcc\xa3\0" /* offset 3146 */ "\x4f\xcc\xa3\0" /* offset 3150 */ "\x6f\xcc\xa3\0" /* offset 3154 */ "\x4f\xcc\x89\0" /* offset 3158 */ "\x6f\xcc\x89\0" /* offset 3162 */ "\x4f\xcc\x82\xcc\x81\0" /* offset 3166 */ "\x6f\xcc\x82\xcc\x81\0" /* offset 3172 */ "\x4f\xcc\x82\xcc\x80\0" /* offset 3178 */ "\x6f\xcc\x82\xcc\x80\0" /* offset 3184 */ "\x4f\xcc\x82\xcc\x89\0" /* offset 3190 */ "\x6f\xcc\x82\xcc\x89\0" /* offset 3196 */ "\x4f\xcc\x82\xcc\x83\0" /* offset 3202 */ "\x6f\xcc\x82\xcc\x83\0" /* offset 3208 */ "\x4f\xcc\xa3\xcc\x82\0" /* offset 3214 */ "\x6f\xcc\xa3\xcc\x82\0" /* offset 3220 */ "\x4f\xcc\x9b\xcc\x81\0" /* offset 3226 */ "\x6f\xcc\x9b\xcc\x81\0" /* offset 3232 */ "\x4f\xcc\x9b\xcc\x80\0" /* offset 3238 */ "\x6f\xcc\x9b\xcc\x80\0" /* offset 3244 */ "\x4f\xcc\x9b\xcc\x89\0" /* offset 3250 */ "\x6f\xcc\x9b\xcc\x89\0" /* offset 3256 */ "\x4f\xcc\x9b\xcc\x83\0" /* offset 3262 */ "\x6f\xcc\x9b\xcc\x83\0" /* offset 3268 */ "\x4f\xcc\x9b\xcc\xa3\0" /* offset 3274 */ "\x6f\xcc\x9b\xcc\xa3\0" /* offset 3280 */ "\x55\xcc\xa3\0" /* offset 3286 */ "\x75\xcc\xa3\0" /* offset 3290 */ "\x55\xcc\x89\0" /* offset 3294 */ "\x75\xcc\x89\0" /* offset 3298 */ "\x55\xcc\x9b\xcc\x81\0" /* offset 3302 */ "\x75\xcc\x9b\xcc\x81\0" /* offset 3308 */ "\x55\xcc\x9b\xcc\x80\0" /* offset 3314 */ "\x75\xcc\x9b\xcc\x80\0" /* offset 3320 */ "\x55\xcc\x9b\xcc\x89\0" /* offset 3326 */ "\x75\xcc\x9b\xcc\x89\0" /* offset 3332 */ "\x55\xcc\x9b\xcc\x83\0" /* offset 3338 */ "\x75\xcc\x9b\xcc\x83\0" /* offset 3344 */ "\x55\xcc\x9b\xcc\xa3\0" /* offset 3350 */ "\x75\xcc\x9b\xcc\xa3\0" /* offset 3356 */ "\x59\xcc\x80\0" /* offset 3362 */ "\x79\xcc\x80\0" /* offset 3366 */ "\x59\xcc\xa3\0" /* offset 3370 */ "\x79\xcc\xa3\0" /* offset 3374 */ "\x59\xcc\x89\0" /* offset 3378 */ "\x79\xcc\x89\0" /* offset 3382 */ "\x59\xcc\x83\0" /* offset 3386 */ "\x79\xcc\x83\0" /* offset 3390 */ "\xce\xb1\xcc\x93\0" /* offset 3394 */ "\xce\xb1\xcc\x94\0" /* offset 3399 */ "\xce\xb1\xcc\x93\xcc\x80\0" /* offset 3404 */ "\xce\xb1\xcc\x94\xcc\x80\0" /* offset 3411 */ "\xce\xb1\xcc\x93\xcc\x81\0" /* offset 3418 */ "\xce\xb1\xcc\x94\xcc\x81\0" /* offset 3425 */ "\xce\xb1\xcc\x93\xcd\x82\0" /* offset 3432 */ "\xce\xb1\xcc\x94\xcd\x82\0" /* offset 3439 */ "\xce\x91\xcc\x93\0" /* offset 3446 */ "\xce\x91\xcc\x94\0" /* offset 3451 */ "\xce\x91\xcc\x93\xcc\x80\0" /* offset 3456 */ "\xce\x91\xcc\x94\xcc\x80\0" /* offset 3463 */ "\xce\x91\xcc\x93\xcc\x81\0" /* offset 3470 */ "\xce\x91\xcc\x94\xcc\x81\0" /* offset 3477 */ "\xce\x91\xcc\x93\xcd\x82\0" /* offset 3484 */ "\xce\x91\xcc\x94\xcd\x82\0" /* offset 3491 */ "\xce\xb5\xcc\x93\0" /* offset 3498 */ "\xce\xb5\xcc\x94\0" /* offset 3503 */ "\xce\xb5\xcc\x93\xcc\x80\0" /* offset 3508 */ "\xce\xb5\xcc\x94\xcc\x80\0" /* offset 3515 */ "\xce\xb5\xcc\x93\xcc\x81\0" /* offset 3522 */ "\xce\xb5\xcc\x94\xcc\x81\0" /* offset 3529 */ "\xce\x95\xcc\x93\0" /* offset 3536 */ "\xce\x95\xcc\x94\0" /* offset 3541 */ "\xce\x95\xcc\x93\xcc\x80\0" /* offset 3546 */ "\xce\x95\xcc\x94\xcc\x80\0" /* offset 3553 */ "\xce\x95\xcc\x93\xcc\x81\0" /* offset 3560 */ "\xce\x95\xcc\x94\xcc\x81\0" /* offset 3567 */ "\xce\xb7\xcc\x93\0" /* offset 3574 */ "\xce\xb7\xcc\x94\0" /* offset 3579 */ "\xce\xb7\xcc\x93\xcc\x80\0" /* offset 3584 */ "\xce\xb7\xcc\x94\xcc\x80\0" /* offset 3591 */ "\xce\xb7\xcc\x93\xcc\x81\0" /* offset 3598 */ "\xce\xb7\xcc\x94\xcc\x81\0" /* offset 3605 */ "\xce\xb7\xcc\x93\xcd\x82\0" /* offset 3612 */ "\xce\xb7\xcc\x94\xcd\x82\0" /* offset 3619 */ "\xce\x97\xcc\x93\0" /* offset 3626 */ "\xce\x97\xcc\x94\0" /* offset 3631 */ "\xce\x97\xcc\x93\xcc\x80\0" /* offset 3636 */ "\xce\x97\xcc\x94\xcc\x80\0" /* offset 3643 */ "\xce\x97\xcc\x93\xcc\x81\0" /* offset 3650 */ "\xce\x97\xcc\x94\xcc\x81\0" /* offset 3657 */ "\xce\x97\xcc\x93\xcd\x82\0" /* offset 3664 */ "\xce\x97\xcc\x94\xcd\x82\0" /* offset 3671 */ "\xce\xb9\xcc\x93\0" /* offset 3678 */ "\xce\xb9\xcc\x94\0" /* offset 3683 */ "\xce\xb9\xcc\x93\xcc\x80\0" /* offset 3688 */ "\xce\xb9\xcc\x94\xcc\x80\0" /* offset 3695 */ "\xce\xb9\xcc\x93\xcc\x81\0" /* offset 3702 */ "\xce\xb9\xcc\x94\xcc\x81\0" /* offset 3709 */ "\xce\xb9\xcc\x93\xcd\x82\0" /* offset 3716 */ "\xce\xb9\xcc\x94\xcd\x82\0" /* offset 3723 */ "\xce\x99\xcc\x93\0" /* offset 3730 */ "\xce\x99\xcc\x94\0" /* offset 3735 */ "\xce\x99\xcc\x93\xcc\x80\0" /* offset 3740 */ "\xce\x99\xcc\x94\xcc\x80\0" /* offset 3747 */ "\xce\x99\xcc\x93\xcc\x81\0" /* offset 3754 */ "\xce\x99\xcc\x94\xcc\x81\0" /* offset 3761 */ "\xce\x99\xcc\x93\xcd\x82\0" /* offset 3768 */ "\xce\x99\xcc\x94\xcd\x82\0" /* offset 3775 */ "\xce\xbf\xcc\x93\0" /* offset 3782 */ "\xce\xbf\xcc\x94\0" /* offset 3787 */ "\xce\xbf\xcc\x93\xcc\x80\0" /* offset 3792 */ "\xce\xbf\xcc\x94\xcc\x80\0" /* offset 3799 */ "\xce\xbf\xcc\x93\xcc\x81\0" /* offset 3806 */ "\xce\xbf\xcc\x94\xcc\x81\0" /* offset 3813 */ "\xce\x9f\xcc\x93\0" /* offset 3820 */ "\xce\x9f\xcc\x94\0" /* offset 3825 */ "\xce\x9f\xcc\x93\xcc\x80\0" /* offset 3830 */ "\xce\x9f\xcc\x94\xcc\x80\0" /* offset 3837 */ "\xce\x9f\xcc\x93\xcc\x81\0" /* offset 3844 */ "\xce\x9f\xcc\x94\xcc\x81\0" /* offset 3851 */ "\xcf\x85\xcc\x93\0" /* offset 3858 */ "\xcf\x85\xcc\x94\0" /* offset 3863 */ "\xcf\x85\xcc\x93\xcc\x80\0" /* offset 3868 */ "\xcf\x85\xcc\x94\xcc\x80\0" /* offset 3875 */ "\xcf\x85\xcc\x93\xcc\x81\0" /* offset 3882 */ "\xcf\x85\xcc\x94\xcc\x81\0" /* offset 3889 */ "\xcf\x85\xcc\x93\xcd\x82\0" /* offset 3896 */ "\xcf\x85\xcc\x94\xcd\x82\0" /* offset 3903 */ "\xce\xa5\xcc\x94\0" /* offset 3910 */ "\xce\xa5\xcc\x94\xcc\x80\0" /* offset 3915 */ "\xce\xa5\xcc\x94\xcc\x81\0" /* offset 3922 */ "\xce\xa5\xcc\x94\xcd\x82\0" /* offset 3929 */ "\xcf\x89\xcc\x93\0" /* offset 3936 */ "\xcf\x89\xcc\x94\0" /* offset 3941 */ "\xcf\x89\xcc\x93\xcc\x80\0" /* offset 3946 */ "\xcf\x89\xcc\x94\xcc\x80\0" /* offset 3953 */ "\xcf\x89\xcc\x93\xcc\x81\0" /* offset 3960 */ "\xcf\x89\xcc\x94\xcc\x81\0" /* offset 3967 */ "\xcf\x89\xcc\x93\xcd\x82\0" /* offset 3974 */ "\xcf\x89\xcc\x94\xcd\x82\0" /* offset 3981 */ "\xce\xa9\xcc\x93\0" /* offset 3988 */ "\xce\xa9\xcc\x94\0" /* offset 3993 */ "\xce\xa9\xcc\x93\xcc\x80\0" /* offset 3998 */ "\xce\xa9\xcc\x94\xcc\x80\0" /* offset 4005 */ "\xce\xa9\xcc\x93\xcc\x81\0" /* offset 4012 */ "\xce\xa9\xcc\x94\xcc\x81\0" /* offset 4019 */ "\xce\xa9\xcc\x93\xcd\x82\0" /* offset 4026 */ "\xce\xa9\xcc\x94\xcd\x82\0" /* offset 4033 */ "\xce\xb1\xcc\x80\0" /* offset 4040 */ "\xce\xb5\xcc\x80\0" /* offset 4045 */ "\xce\xb7\xcc\x80\0" /* offset 4050 */ "\xce\xb9\xcc\x80\0" /* offset 4055 */ "\xce\xbf\xcc\x80\0" /* offset 4060 */ "\xcf\x85\xcc\x80\0" /* offset 4065 */ "\xcf\x89\xcc\x80\0" /* offset 4070 */ "\xce\xb1\xcc\x93\xcd\x85\0" /* offset 4075 */ "\xce\xb1\xcc\x94\xcd\x85\0" /* offset 4082 */ "\xce\xb1\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4089 */ "\xce\xb1\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4098 */ "\xce\xb1\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4107 */ "\xce\xb1\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4116 */ "\xce\xb1\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4125 */ "\xce\xb1\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4134 */ "\xce\x91\xcc\x93\xcd\x85\0" /* offset 4143 */ "\xce\x91\xcc\x94\xcd\x85\0" /* offset 4150 */ "\xce\x91\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4157 */ "\xce\x91\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4166 */ "\xce\x91\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4175 */ "\xce\x91\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4184 */ "\xce\x91\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4193 */ "\xce\x91\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4202 */ "\xce\xb7\xcc\x93\xcd\x85\0" /* offset 4211 */ "\xce\xb7\xcc\x94\xcd\x85\0" /* offset 4218 */ "\xce\xb7\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4225 */ "\xce\xb7\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4234 */ "\xce\xb7\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4243 */ "\xce\xb7\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4252 */ "\xce\xb7\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4261 */ "\xce\xb7\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4270 */ "\xce\x97\xcc\x93\xcd\x85\0" /* offset 4279 */ "\xce\x97\xcc\x94\xcd\x85\0" /* offset 4286 */ "\xce\x97\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4293 */ "\xce\x97\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4302 */ "\xce\x97\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4311 */ "\xce\x97\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4320 */ "\xce\x97\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4329 */ "\xce\x97\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4338 */ "\xcf\x89\xcc\x93\xcd\x85\0" /* offset 4347 */ "\xcf\x89\xcc\x94\xcd\x85\0" /* offset 4354 */ "\xcf\x89\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4361 */ "\xcf\x89\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4370 */ "\xcf\x89\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4379 */ "\xcf\x89\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4388 */ "\xcf\x89\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4397 */ "\xcf\x89\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4406 */ "\xce\xa9\xcc\x93\xcd\x85\0" /* offset 4415 */ "\xce\xa9\xcc\x94\xcd\x85\0" /* offset 4422 */ "\xce\xa9\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4429 */ "\xce\xa9\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4438 */ "\xce\xa9\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4447 */ "\xce\xa9\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4456 */ "\xce\xa9\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4465 */ "\xce\xa9\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4474 */ "\xce\xb1\xcc\x86\0" /* offset 4483 */ "\xce\xb1\xcc\x84\0" /* offset 4488 */ "\xce\xb1\xcc\x80\xcd\x85\0" /* offset 4493 */ "\xce\xb1\xcd\x85\0" /* offset 4500 */ "\xce\xb1\xcc\x81\xcd\x85\0" /* offset 4505 */ "\xce\xb1\xcd\x82\0" /* offset 4512 */ "\xce\xb1\xcd\x82\xcd\x85\0" /* offset 4517 */ "\xce\x91\xcc\x86\0" /* offset 4524 */ "\xce\x91\xcc\x84\0" /* offset 4529 */ "\xce\x91\xcc\x80\0" /* offset 4534 */ "\xce\x91\xcd\x85\0" /* offset 4539 */ "\x20\xcc\x93\0" /* offset 4544 */ "\xce\xb9\0" /* offset 4548 */ "\x20\xcd\x82\0" /* offset 4551 */ "\xc2\xa8\xcd\x82\0" /* offset 4555 */ "\x20\xcc\x88\xcd\x82\0" /* offset 4560 */ "\xce\xb7\xcc\x80\xcd\x85\0" /* offset 4566 */ "\xce\xb7\xcd\x85\0" /* offset 4573 */ "\xce\xb7\xcc\x81\xcd\x85\0" /* offset 4578 */ "\xce\xb7\xcd\x82\0" /* offset 4585 */ "\xce\xb7\xcd\x82\xcd\x85\0" /* offset 4590 */ "\xce\x95\xcc\x80\0" /* offset 4597 */ "\xce\x97\xcc\x80\0" /* offset 4602 */ "\xce\x97\xcd\x85\0" /* offset 4607 */ "\xe1\xbe\xbf\xcc\x80\0" /* offset 4612 */ "\x20\xcc\x93\xcc\x80\0" /* offset 4618 */ "\xe1\xbe\xbf\xcc\x81\0" /* offset 4624 */ "\x20\xcc\x93\xcc\x81\0" /* offset 4630 */ "\xe1\xbe\xbf\xcd\x82\0" /* offset 4636 */ "\x20\xcc\x93\xcd\x82\0" /* offset 4642 */ "\xce\xb9\xcc\x86\0" /* offset 4648 */ "\xce\xb9\xcc\x84\0" /* offset 4653 */ "\xce\xb9\xcc\x88\xcc\x80\0" /* offset 4658 */ "\xce\xb9\xcd\x82\0" /* offset 4665 */ "\xce\xb9\xcc\x88\xcd\x82\0" /* offset 4670 */ "\xce\x99\xcc\x86\0" /* offset 4677 */ "\xce\x99\xcc\x84\0" /* offset 4682 */ "\xce\x99\xcc\x80\0" /* offset 4687 */ "\xe1\xbf\xbe\xcc\x80\0" /* offset 4692 */ "\x20\xcc\x94\xcc\x80\0" /* offset 4698 */ "\xe1\xbf\xbe\xcc\x81\0" /* offset 4704 */ "\x20\xcc\x94\xcc\x81\0" /* offset 4710 */ "\xe1\xbf\xbe\xcd\x82\0" /* offset 4716 */ "\x20\xcc\x94\xcd\x82\0" /* offset 4722 */ "\xcf\x85\xcc\x86\0" /* offset 4728 */ "\xcf\x85\xcc\x84\0" /* offset 4733 */ "\xcf\x85\xcc\x88\xcc\x80\0" /* offset 4738 */ "\xcf\x81\xcc\x93\0" /* offset 4745 */ "\xcf\x81\xcc\x94\0" /* offset 4750 */ "\xcf\x85\xcd\x82\0" /* offset 4755 */ "\xcf\x85\xcc\x88\xcd\x82\0" /* offset 4760 */ "\xce\xa5\xcc\x86\0" /* offset 4767 */ "\xce\xa5\xcc\x84\0" /* offset 4772 */ "\xce\xa5\xcc\x80\0" /* offset 4777 */ "\xce\xa1\xcc\x94\0" /* offset 4782 */ "\xc2\xa8\xcc\x80\0" /* offset 4787 */ "\x20\xcc\x88\xcc\x80\0" /* offset 4792 */ "\x60\0" /* offset 4798 */ "\xcf\x89\xcc\x80\xcd\x85\0" /* offset 4800 */ "\xcf\x89\xcd\x85\0" /* offset 4807 */ "\xcf\x89\xcc\x81\xcd\x85\0" /* offset 4812 */ "\xcf\x89\xcd\x82\0" /* offset 4819 */ "\xcf\x89\xcd\x82\xcd\x85\0" /* offset 4824 */ "\xce\x9f\xcc\x80\0" /* offset 4831 */ "\xce\xa9\xcc\x80\0" /* offset 4836 */ "\xce\xa9\xcd\x85\0" /* offset 4841 */ "\xc2\xb4\0" /* offset 4846 */ "\x20\xcc\x94\0" /* offset 4849 */ "\xe2\x80\x82\0" /* offset 4853 */ "\xe2\x80\x83\0" /* offset 4857 */ "\xe2\x80\x90\0" /* offset 4861 */ "\x20\xcc\xb3\0" /* offset 4865 */ "\x2e\0" /* offset 4869 */ "\x2e\x2e\0" /* offset 4871 */ "\x2e\x2e\x2e\0" /* offset 4874 */ "\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4878 */ "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4885 */ "\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 4895 */ "\xe2\x80\xb5\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 4902 */ "\x21\x21\0" /* offset 4912 */ "\x20\xcc\x85\0" /* offset 4915 */ "\x3f\x3f\0" /* offset 4919 */ "\x3f\x21\0" /* offset 4922 */ "\x21\x3f\0" /* offset 4925 */ "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4928 */ "\x30\0" /* offset 4941 */ "\x69\0" /* offset 4943 */ "\x34\0" /* offset 4945 */ "\x35\0" /* offset 4947 */ "\x36\0" /* offset 4949 */ "\x37\0" /* offset 4951 */ "\x38\0" /* offset 4953 */ "\x39\0" /* offset 4955 */ "\x2b\0" /* offset 4957 */ "\xe2\x88\x92\0" /* offset 4959 */ "\x3d\0" /* offset 4963 */ "\x28\0" /* offset 4965 */ "\x29\0" /* offset 4967 */ "\x6e\0" /* offset 4969 */ "\x52\x73\0" /* offset 4971 */ "\x61\x2f\x63\0" /* offset 4974 */ "\x61\x2f\x73\0" /* offset 4978 */ "\x43\0" /* offset 4982 */ "\xc2\xb0\x43\0" /* offset 4984 */ "\x63\x2f\x6f\0" /* offset 4988 */ "\x63\x2f\x75\0" /* offset 4992 */ "\xc6\x90\0" /* offset 4996 */ "\xc2\xb0\x46\0" /* offset 4999 */ "\x67\0" /* offset 5003 */ "\x48\0" /* offset 5005 */ "\xc4\xa7\0" /* offset 5007 */ "\x49\0" /* offset 5010 */ "\x4c\0" /* offset 5012 */ "\x4e\0" /* offset 5014 */ "\x4e\x6f\0" /* offset 5016 */ "\x50\0" /* offset 5019 */ "\x51\0" /* offset 5021 */ "\x52\0" /* offset 5023 */ "\x53\x4d\0" /* offset 5025 */ "\x54\x45\x4c\0" /* offset 5028 */ "\x54\x4d\0" /* offset 5032 */ "\x5a\0" /* offset 5035 */ "\xce\xa9\0" /* offset 5037 */ "\x4b\0" /* offset 5040 */ "\x42\0" /* offset 5042 */ "\x65\0" /* offset 5044 */ "\x45\0" /* offset 5046 */ "\x46\0" /* offset 5048 */ "\x4d\0" /* offset 5050 */ "\xd7\x90\0" /* offset 5052 */ "\xd7\x91\0" /* offset 5055 */ "\xd7\x92\0" /* offset 5058 */ "\xd7\x93\0" /* offset 5061 */ "\xce\xb3\0" /* offset 5064 */ "\xce\x93\0" /* offset 5067 */ "\xce\xa0\0" /* offset 5070 */ "\xe2\x88\x91\0" /* offset 5073 */ "\x44\0" /* offset 5077 */ "\x64\0" /* offset 5079 */ "\x31\xe2\x81\x84\x33\0" /* offset 5081 */ "\x32\xe2\x81\x84\x33\0" /* offset 5087 */ "\x31\xe2\x81\x84\x35\0" /* offset 5093 */ "\x32\xe2\x81\x84\x35\0" /* offset 5099 */ "\x33\xe2\x81\x84\x35\0" /* offset 5105 */ "\x34\xe2\x81\x84\x35\0" /* offset 5111 */ "\x31\xe2\x81\x84\x36\0" /* offset 5117 */ "\x35\xe2\x81\x84\x36\0" /* offset 5123 */ "\x31\xe2\x81\x84\x38\0" /* offset 5129 */ "\x33\xe2\x81\x84\x38\0" /* offset 5135 */ "\x35\xe2\x81\x84\x38\0" /* offset 5141 */ "\x37\xe2\x81\x84\x38\0" /* offset 5147 */ "\x31\xe2\x81\x84\0" /* offset 5153 */ "\x49\x49\0" /* offset 5158 */ "\x49\x49\x49\0" /* offset 5161 */ "\x49\x56\0" /* offset 5165 */ "\x56\0" /* offset 5168 */ "\x56\x49\0" /* offset 5170 */ "\x56\x49\x49\0" /* offset 5173 */ "\x56\x49\x49\x49\0" /* offset 5177 */ "\x49\x58\0" /* offset 5182 */ "\x58\0" /* offset 5185 */ "\x58\x49\0" /* offset 5187 */ "\x58\x49\x49\0" /* offset 5190 */ "\x69\x69\0" /* offset 5194 */ "\x69\x69\x69\0" /* offset 5197 */ "\x69\x76\0" /* offset 5201 */ "\x76\0" /* offset 5204 */ "\x76\x69\0" /* offset 5206 */ "\x76\x69\x69\0" /* offset 5209 */ "\x76\x69\x69\x69\0" /* offset 5213 */ "\x69\x78\0" /* offset 5218 */ "\x78\x69\0" /* offset 5221 */ "\x78\x69\x69\0" /* offset 5224 */ "\x63\0" /* offset 5228 */ "\x6d\0" /* offset 5230 */ "\xe2\x86\x90\xcc\xb8\0" /* offset 5232 */ "\xe2\x86\x92\xcc\xb8\0" /* offset 5238 */ "\xe2\x86\x94\xcc\xb8\0" /* offset 5244 */ "\xe2\x87\x90\xcc\xb8\0" /* offset 5250 */ "\xe2\x87\x94\xcc\xb8\0" /* offset 5256 */ "\xe2\x87\x92\xcc\xb8\0" /* offset 5262 */ "\xe2\x88\x83\xcc\xb8\0" /* offset 5268 */ "\xe2\x88\x88\xcc\xb8\0" /* offset 5274 */ "\xe2\x88\x8b\xcc\xb8\0" /* offset 5280 */ "\xe2\x88\xa3\xcc\xb8\0" /* offset 5286 */ "\xe2\x88\xa5\xcc\xb8\0" /* offset 5292 */ "\xe2\x88\xab\xe2\x88\xab\0" /* offset 5298 */ "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5305 */ "\xe2\x88\xae\xe2\x88\xae\0" /* offset 5315 */ "\xe2\x88\xae\xe2\x88\xae\xe2\x88\xae\0" /* offset 5322 */ "\xe2\x88\xbc\xcc\xb8\0" /* offset 5332 */ "\xe2\x89\x83\xcc\xb8\0" /* offset 5338 */ "\xe2\x89\x85\xcc\xb8\0" /* offset 5344 */ "\xe2\x89\x88\xcc\xb8\0" /* offset 5350 */ "\x3d\xcc\xb8\0" /* offset 5356 */ "\xe2\x89\xa1\xcc\xb8\0" /* offset 5360 */ "\xe2\x89\x8d\xcc\xb8\0" /* offset 5366 */ "\x3c\xcc\xb8\0" /* offset 5372 */ "\x3e\xcc\xb8\0" /* offset 5376 */ "\xe2\x89\xa4\xcc\xb8\0" /* offset 5380 */ "\xe2\x89\xa5\xcc\xb8\0" /* offset 5386 */ "\xe2\x89\xb2\xcc\xb8\0" /* offset 5392 */ "\xe2\x89\xb3\xcc\xb8\0" /* offset 5398 */ "\xe2\x89\xb6\xcc\xb8\0" /* offset 5404 */ "\xe2\x89\xb7\xcc\xb8\0" /* offset 5410 */ "\xe2\x89\xba\xcc\xb8\0" /* offset 5416 */ "\xe2\x89\xbb\xcc\xb8\0" /* offset 5422 */ "\xe2\x8a\x82\xcc\xb8\0" /* offset 5428 */ "\xe2\x8a\x83\xcc\xb8\0" /* offset 5434 */ "\xe2\x8a\x86\xcc\xb8\0" /* offset 5440 */ "\xe2\x8a\x87\xcc\xb8\0" /* offset 5446 */ "\xe2\x8a\xa2\xcc\xb8\0" /* offset 5452 */ "\xe2\x8a\xa8\xcc\xb8\0" /* offset 5458 */ "\xe2\x8a\xa9\xcc\xb8\0" /* offset 5464 */ "\xe2\x8a\xab\xcc\xb8\0" /* offset 5470 */ "\xe2\x89\xbc\xcc\xb8\0" /* offset 5476 */ "\xe2\x89\xbd\xcc\xb8\0" /* offset 5482 */ "\xe2\x8a\x91\xcc\xb8\0" /* offset 5488 */ "\xe2\x8a\x92\xcc\xb8\0" /* offset 5494 */ "\xe2\x8a\xb2\xcc\xb8\0" /* offset 5500 */ "\xe2\x8a\xb3\xcc\xb8\0" /* offset 5506 */ "\xe2\x8a\xb4\xcc\xb8\0" /* offset 5512 */ "\xe2\x8a\xb5\xcc\xb8\0" /* offset 5518 */ "\xe3\x80\x88\0" /* offset 5524 */ "\xe3\x80\x89\0" /* offset 5528 */ "\x31\x30\0" /* offset 5532 */ "\x31\x31\0" /* offset 5535 */ "\x31\x32\0" /* offset 5538 */ "\x31\x33\0" /* offset 5541 */ "\x31\x34\0" /* offset 5544 */ "\x31\x35\0" /* offset 5547 */ "\x31\x36\0" /* offset 5550 */ "\x31\x37\0" /* offset 5553 */ "\x31\x38\0" /* offset 5556 */ "\x31\x39\0" /* offset 5559 */ "\x32\x30\0" /* offset 5562 */ "\x28\x31\x29\0" /* offset 5565 */ "\x28\x32\x29\0" /* offset 5569 */ "\x28\x33\x29\0" /* offset 5573 */ "\x28\x34\x29\0" /* offset 5577 */ "\x28\x35\x29\0" /* offset 5581 */ "\x28\x36\x29\0" /* offset 5585 */ "\x28\x37\x29\0" /* offset 5589 */ "\x28\x38\x29\0" /* offset 5593 */ "\x28\x39\x29\0" /* offset 5597 */ "\x28\x31\x30\x29\0" /* offset 5601 */ "\x28\x31\x31\x29\0" /* offset 5606 */ "\x28\x31\x32\x29\0" /* offset 5611 */ "\x28\x31\x33\x29\0" /* offset 5616 */ "\x28\x31\x34\x29\0" /* offset 5621 */ "\x28\x31\x35\x29\0" /* offset 5626 */ "\x28\x31\x36\x29\0" /* offset 5631 */ "\x28\x31\x37\x29\0" /* offset 5636 */ "\x28\x31\x38\x29\0" /* offset 5641 */ "\x28\x31\x39\x29\0" /* offset 5646 */ "\x28\x32\x30\x29\0" /* offset 5651 */ "\x31\x2e\0" /* offset 5656 */ "\x32\x2e\0" /* offset 5659 */ "\x33\x2e\0" /* offset 5662 */ "\x34\x2e\0" /* offset 5665 */ "\x35\x2e\0" /* offset 5668 */ "\x36\x2e\0" /* offset 5671 */ "\x37\x2e\0" /* offset 5674 */ "\x38\x2e\0" /* offset 5677 */ "\x39\x2e\0" /* offset 5680 */ "\x31\x30\x2e\0" /* offset 5683 */ "\x31\x31\x2e\0" /* offset 5687 */ "\x31\x32\x2e\0" /* offset 5691 */ "\x31\x33\x2e\0" /* offset 5695 */ "\x31\x34\x2e\0" /* offset 5699 */ "\x31\x35\x2e\0" /* offset 5703 */ "\x31\x36\x2e\0" /* offset 5707 */ "\x31\x37\x2e\0" /* offset 5711 */ "\x31\x38\x2e\0" /* offset 5715 */ "\x31\x39\x2e\0" /* offset 5719 */ "\x32\x30\x2e\0" /* offset 5723 */ "\x28\x61\x29\0" /* offset 5727 */ "\x28\x62\x29\0" /* offset 5731 */ "\x28\x63\x29\0" /* offset 5735 */ "\x28\x64\x29\0" /* offset 5739 */ "\x28\x65\x29\0" /* offset 5743 */ "\x28\x66\x29\0" /* offset 5747 */ "\x28\x67\x29\0" /* offset 5751 */ "\x28\x68\x29\0" /* offset 5755 */ "\x28\x69\x29\0" /* offset 5759 */ "\x28\x6a\x29\0" /* offset 5763 */ "\x28\x6b\x29\0" /* offset 5767 */ "\x28\x6c\x29\0" /* offset 5771 */ "\x28\x6d\x29\0" /* offset 5775 */ "\x28\x6e\x29\0" /* offset 5779 */ "\x28\x6f\x29\0" /* offset 5783 */ "\x28\x70\x29\0" /* offset 5787 */ "\x28\x71\x29\0" /* offset 5791 */ "\x28\x72\x29\0" /* offset 5795 */ "\x28\x73\x29\0" /* offset 5799 */ "\x28\x74\x29\0" /* offset 5803 */ "\x28\x75\x29\0" /* offset 5807 */ "\x28\x76\x29\0" /* offset 5811 */ "\x28\x77\x29\0" /* offset 5815 */ "\x28\x78\x29\0" /* offset 5819 */ "\x28\x79\x29\0" /* offset 5823 */ "\x28\x7a\x29\0" /* offset 5827 */ "\x41\0" /* offset 5831 */ "\x47\0" /* offset 5833 */ "\x4a\0" /* offset 5835 */ "\x4f\0" /* offset 5837 */ "\x53\0" /* offset 5839 */ "\x54\0" /* offset 5841 */ "\x55\0" /* offset 5843 */ "\x57\0" /* offset 5845 */ "\x59\0" /* offset 5847 */ "\x62\0" /* offset 5849 */ "\x66\0" /* offset 5851 */ "\x6b\0" /* offset 5853 */ "\x70\0" /* offset 5855 */ "\x71\0" /* offset 5857 */ "\x74\0" /* offset 5859 */ "\x75\0" /* offset 5861 */ "\x7a\0" /* offset 5863 */ "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5865 */ "\x3a\x3a\x3d\0" /* offset 5878 */ "\x3d\x3d\0" /* offset 5882 */ "\x3d\x3d\x3d\0" /* offset 5885 */ "\xe2\xab\x9d\xcc\xb8\0" /* offset 5889 */ "\xe6\xaf\x8d\0" /* offset 5895 */ "\xe9\xbe\x9f\0" /* offset 5899 */ "\xe4\xb8\x80\0" /* offset 5903 */ "\xe4\xb8\xa8\0" /* offset 5907 */ "\xe4\xb8\xb6\0" /* offset 5911 */ "\xe4\xb8\xbf\0" /* offset 5915 */ "\xe4\xb9\x99\0" /* offset 5919 */ "\xe4\xba\x85\0" /* offset 5923 */ "\xe4\xba\x8c\0" /* offset 5927 */ "\xe4\xba\xa0\0" /* offset 5931 */ "\xe4\xba\xba\0" /* offset 5935 */ "\xe5\x84\xbf\0" /* offset 5939 */ "\xe5\x85\xa5\0" /* offset 5943 */ "\xe5\x85\xab\0" /* offset 5947 */ "\xe5\x86\x82\0" /* offset 5951 */ "\xe5\x86\x96\0" /* offset 5955 */ "\xe5\x86\xab\0" /* offset 5959 */ "\xe5\x87\xa0\0" /* offset 5963 */ "\xe5\x87\xb5\0" /* offset 5967 */ "\xe5\x88\x80\0" /* offset 5971 */ "\xe5\x8a\x9b\0" /* offset 5975 */ "\xe5\x8b\xb9\0" /* offset 5979 */ "\xe5\x8c\x95\0" /* offset 5983 */ "\xe5\x8c\x9a\0" /* offset 5987 */ "\xe5\x8c\xb8\0" /* offset 5991 */ "\xe5\x8d\x81\0" /* offset 5995 */ "\xe5\x8d\x9c\0" /* offset 5999 */ "\xe5\x8d\xa9\0" /* offset 6003 */ "\xe5\x8e\x82\0" /* offset 6007 */ "\xe5\x8e\xb6\0" /* offset 6011 */ "\xe5\x8f\x88\0" /* offset 6015 */ "\xe5\x8f\xa3\0" /* offset 6019 */ "\xe5\x9b\x97\0" /* offset 6023 */ "\xe5\x9c\x9f\0" /* offset 6027 */ "\xe5\xa3\xab\0" /* offset 6031 */ "\xe5\xa4\x82\0" /* offset 6035 */ "\xe5\xa4\x8a\0" /* offset 6039 */ "\xe5\xa4\x95\0" /* offset 6043 */ "\xe5\xa4\xa7\0" /* offset 6047 */ "\xe5\xa5\xb3\0" /* offset 6051 */ "\xe5\xad\x90\0" /* offset 6055 */ "\xe5\xae\x80\0" /* offset 6059 */ "\xe5\xaf\xb8\0" /* offset 6063 */ "\xe5\xb0\x8f\0" /* offset 6067 */ "\xe5\xb0\xa2\0" /* offset 6071 */ "\xe5\xb0\xb8\0" /* offset 6075 */ "\xe5\xb1\xae\0" /* offset 6079 */ "\xe5\xb1\xb1\0" /* offset 6083 */ "\xe5\xb7\x9b\0" /* offset 6087 */ "\xe5\xb7\xa5\0" /* offset 6091 */ "\xe5\xb7\xb1\0" /* offset 6095 */ "\xe5\xb7\xbe\0" /* offset 6099 */ "\xe5\xb9\xb2\0" /* offset 6103 */ "\xe5\xb9\xba\0" /* offset 6107 */ "\xe5\xb9\xbf\0" /* offset 6111 */ "\xe5\xbb\xb4\0" /* offset 6115 */ "\xe5\xbb\xbe\0" /* offset 6119 */ "\xe5\xbc\x8b\0" /* offset 6123 */ "\xe5\xbc\x93\0" /* offset 6127 */ "\xe5\xbd\x90\0" /* offset 6131 */ "\xe5\xbd\xa1\0" /* offset 6135 */ "\xe5\xbd\xb3\0" /* offset 6139 */ "\xe5\xbf\x83\0" /* offset 6143 */ "\xe6\x88\x88\0" /* offset 6147 */ "\xe6\x88\xb6\0" /* offset 6151 */ "\xe6\x89\x8b\0" /* offset 6155 */ "\xe6\x94\xaf\0" /* offset 6159 */ "\xe6\x94\xb4\0" /* offset 6163 */ "\xe6\x96\x87\0" /* offset 6167 */ "\xe6\x96\x97\0" /* offset 6171 */ "\xe6\x96\xa4\0" /* offset 6175 */ "\xe6\x96\xb9\0" /* offset 6179 */ "\xe6\x97\xa0\0" /* offset 6183 */ "\xe6\x97\xa5\0" /* offset 6187 */ "\xe6\x9b\xb0\0" /* offset 6191 */ "\xe6\x9c\x88\0" /* offset 6195 */ "\xe6\x9c\xa8\0" /* offset 6199 */ "\xe6\xac\xa0\0" /* offset 6203 */ "\xe6\xad\xa2\0" /* offset 6207 */ "\xe6\xad\xb9\0" /* offset 6211 */ "\xe6\xae\xb3\0" /* offset 6215 */ "\xe6\xaf\x8b\0" /* offset 6219 */ "\xe6\xaf\x94\0" /* offset 6223 */ "\xe6\xaf\x9b\0" /* offset 6227 */ "\xe6\xb0\x8f\0" /* offset 6231 */ "\xe6\xb0\x94\0" /* offset 6235 */ "\xe6\xb0\xb4\0" /* offset 6239 */ "\xe7\x81\xab\0" /* offset 6243 */ "\xe7\x88\xaa\0" /* offset 6247 */ "\xe7\x88\xb6\0" /* offset 6251 */ "\xe7\x88\xbb\0" /* offset 6255 */ "\xe7\x88\xbf\0" /* offset 6259 */ "\xe7\x89\x87\0" /* offset 6263 */ "\xe7\x89\x99\0" /* offset 6267 */ "\xe7\x89\x9b\0" /* offset 6271 */ "\xe7\x8a\xac\0" /* offset 6275 */ "\xe7\x8e\x84\0" /* offset 6279 */ "\xe7\x8e\x89\0" /* offset 6283 */ "\xe7\x93\x9c\0" /* offset 6287 */ "\xe7\x93\xa6\0" /* offset 6291 */ "\xe7\x94\x98\0" /* offset 6295 */ "\xe7\x94\x9f\0" /* offset 6299 */ "\xe7\x94\xa8\0" /* offset 6303 */ "\xe7\x94\xb0\0" /* offset 6307 */ "\xe7\x96\x8b\0" /* offset 6311 */ "\xe7\x96\x92\0" /* offset 6315 */ "\xe7\x99\xb6\0" /* offset 6319 */ "\xe7\x99\xbd\0" /* offset 6323 */ "\xe7\x9a\xae\0" /* offset 6327 */ "\xe7\x9a\xbf\0" /* offset 6331 */ "\xe7\x9b\xae\0" /* offset 6335 */ "\xe7\x9f\x9b\0" /* offset 6339 */ "\xe7\x9f\xa2\0" /* offset 6343 */ "\xe7\x9f\xb3\0" /* offset 6347 */ "\xe7\xa4\xba\0" /* offset 6351 */ "\xe7\xa6\xb8\0" /* offset 6355 */ "\xe7\xa6\xbe\0" /* offset 6359 */ "\xe7\xa9\xb4\0" /* offset 6363 */ "\xe7\xab\x8b\0" /* offset 6367 */ "\xe7\xab\xb9\0" /* offset 6371 */ "\xe7\xb1\xb3\0" /* offset 6375 */ "\xe7\xb3\xb8\0" /* offset 6379 */ "\xe7\xbc\xb6\0" /* offset 6383 */ "\xe7\xbd\x91\0" /* offset 6387 */ "\xe7\xbe\x8a\0" /* offset 6391 */ "\xe7\xbe\xbd\0" /* offset 6395 */ "\xe8\x80\x81\0" /* offset 6399 */ "\xe8\x80\x8c\0" /* offset 6403 */ "\xe8\x80\x92\0" /* offset 6407 */ "\xe8\x80\xb3\0" /* offset 6411 */ "\xe8\x81\xbf\0" /* offset 6415 */ "\xe8\x82\x89\0" /* offset 6419 */ "\xe8\x87\xa3\0" /* offset 6423 */ "\xe8\x87\xaa\0" /* offset 6427 */ "\xe8\x87\xb3\0" /* offset 6431 */ "\xe8\x87\xbc\0" /* offset 6435 */ "\xe8\x88\x8c\0" /* offset 6439 */ "\xe8\x88\x9b\0" /* offset 6443 */ "\xe8\x88\x9f\0" /* offset 6447 */ "\xe8\x89\xae\0" /* offset 6451 */ "\xe8\x89\xb2\0" /* offset 6455 */ "\xe8\x89\xb8\0" /* offset 6459 */ "\xe8\x99\x8d\0" /* offset 6463 */ "\xe8\x99\xab\0" /* offset 6467 */ "\xe8\xa1\x80\0" /* offset 6471 */ "\xe8\xa1\x8c\0" /* offset 6475 */ "\xe8\xa1\xa3\0" /* offset 6479 */ "\xe8\xa5\xbe\0" /* offset 6483 */ "\xe8\xa6\x8b\0" /* offset 6487 */ "\xe8\xa7\x92\0" /* offset 6491 */ "\xe8\xa8\x80\0" /* offset 6495 */ "\xe8\xb0\xb7\0" /* offset 6499 */ "\xe8\xb1\x86\0" /* offset 6503 */ "\xe8\xb1\x95\0" /* offset 6507 */ "\xe8\xb1\xb8\0" /* offset 6511 */ "\xe8\xb2\x9d\0" /* offset 6515 */ "\xe8\xb5\xa4\0" /* offset 6519 */ "\xe8\xb5\xb0\0" /* offset 6523 */ "\xe8\xb6\xb3\0" /* offset 6527 */ "\xe8\xba\xab\0" /* offset 6531 */ "\xe8\xbb\x8a\0" /* offset 6535 */ "\xe8\xbe\x9b\0" /* offset 6539 */ "\xe8\xbe\xb0\0" /* offset 6543 */ "\xe8\xbe\xb5\0" /* offset 6547 */ "\xe9\x82\x91\0" /* offset 6551 */ "\xe9\x85\x89\0" /* offset 6555 */ "\xe9\x87\x86\0" /* offset 6559 */ "\xe9\x87\x8c\0" /* offset 6563 */ "\xe9\x87\x91\0" /* offset 6567 */ "\xe9\x95\xb7\0" /* offset 6571 */ "\xe9\x96\x80\0" /* offset 6575 */ "\xe9\x98\x9c\0" /* offset 6579 */ "\xe9\x9a\xb6\0" /* offset 6583 */ "\xe9\x9a\xb9\0" /* offset 6587 */ "\xe9\x9b\xa8\0" /* offset 6591 */ "\xe9\x9d\x91\0" /* offset 6595 */ "\xe9\x9d\x9e\0" /* offset 6599 */ "\xe9\x9d\xa2\0" /* offset 6603 */ "\xe9\x9d\xa9\0" /* offset 6607 */ "\xe9\x9f\x8b\0" /* offset 6611 */ "\xe9\x9f\xad\0" /* offset 6615 */ "\xe9\x9f\xb3\0" /* offset 6619 */ "\xe9\xa0\x81\0" /* offset 6623 */ "\xe9\xa2\xa8\0" /* offset 6627 */ "\xe9\xa3\x9b\0" /* offset 6631 */ "\xe9\xa3\x9f\0" /* offset 6635 */ "\xe9\xa6\x96\0" /* offset 6639 */ "\xe9\xa6\x99\0" /* offset 6643 */ "\xe9\xa6\xac\0" /* offset 6647 */ "\xe9\xaa\xa8\0" /* offset 6651 */ "\xe9\xab\x98\0" /* offset 6655 */ "\xe9\xab\x9f\0" /* offset 6659 */ "\xe9\xac\xa5\0" /* offset 6663 */ "\xe9\xac\xaf\0" /* offset 6667 */ "\xe9\xac\xb2\0" /* offset 6671 */ "\xe9\xac\xbc\0" /* offset 6675 */ "\xe9\xad\x9a\0" /* offset 6679 */ "\xe9\xb3\xa5\0" /* offset 6683 */ "\xe9\xb9\xb5\0" /* offset 6687 */ "\xe9\xb9\xbf\0" /* offset 6691 */ "\xe9\xba\xa5\0" /* offset 6695 */ "\xe9\xba\xbb\0" /* offset 6699 */ "\xe9\xbb\x83\0" /* offset 6703 */ "\xe9\xbb\x8d\0" /* offset 6707 */ "\xe9\xbb\x91\0" /* offset 6711 */ "\xe9\xbb\xb9\0" /* offset 6715 */ "\xe9\xbb\xbd\0" /* offset 6719 */ "\xe9\xbc\x8e\0" /* offset 6723 */ "\xe9\xbc\x93\0" /* offset 6727 */ "\xe9\xbc\xa0\0" /* offset 6731 */ "\xe9\xbc\xbb\0" /* offset 6735 */ "\xe9\xbd\x8a\0" /* offset 6739 */ "\xe9\xbd\x92\0" /* offset 6743 */ "\xe9\xbe\x8d\0" /* offset 6747 */ "\xe9\xbe\x9c\0" /* offset 6751 */ "\xe9\xbe\xa0\0" /* offset 6755 */ "\xe3\x80\x92\0" /* offset 6759 */ "\xe5\x8d\x84\0" /* offset 6763 */ "\xe5\x8d\x85\0" /* offset 6767 */ "\xe3\x81\x8b\xe3\x82\x99\0" /* offset 6771 */ "\xe3\x81\x8d\xe3\x82\x99\0" /* offset 6778 */ "\xe3\x81\x8f\xe3\x82\x99\0" /* offset 6785 */ "\xe3\x81\x91\xe3\x82\x99\0" /* offset 6792 */ "\xe3\x81\x93\xe3\x82\x99\0" /* offset 6799 */ "\xe3\x81\x95\xe3\x82\x99\0" /* offset 6806 */ "\xe3\x81\x97\xe3\x82\x99\0" /* offset 6813 */ "\xe3\x81\x99\xe3\x82\x99\0" /* offset 6820 */ "\xe3\x81\x9b\xe3\x82\x99\0" /* offset 6827 */ "\xe3\x81\x9d\xe3\x82\x99\0" /* offset 6834 */ "\xe3\x81\x9f\xe3\x82\x99\0" /* offset 6841 */ "\xe3\x81\xa1\xe3\x82\x99\0" /* offset 6848 */ "\xe3\x81\xa4\xe3\x82\x99\0" /* offset 6855 */ "\xe3\x81\xa6\xe3\x82\x99\0" /* offset 6862 */ "\xe3\x81\xa8\xe3\x82\x99\0" /* offset 6869 */ "\xe3\x81\xaf\xe3\x82\x99\0" /* offset 6876 */ "\xe3\x81\xaf\xe3\x82\x9a\0" /* offset 6883 */ "\xe3\x81\xb2\xe3\x82\x99\0" /* offset 6890 */ "\xe3\x81\xb2\xe3\x82\x9a\0" /* offset 6897 */ "\xe3\x81\xb5\xe3\x82\x99\0" /* offset 6904 */ "\xe3\x81\xb5\xe3\x82\x9a\0" /* offset 6911 */ "\xe3\x81\xb8\xe3\x82\x99\0" /* offset 6918 */ "\xe3\x81\xb8\xe3\x82\x9a\0" /* offset 6925 */ "\xe3\x81\xbb\xe3\x82\x99\0" /* offset 6932 */ "\xe3\x81\xbb\xe3\x82\x9a\0" /* offset 6939 */ "\xe3\x81\x86\xe3\x82\x99\0" /* offset 6946 */ "\x20\xe3\x82\x99\0" /* offset 6953 */ "\x20\xe3\x82\x9a\0" /* offset 6958 */ "\xe3\x82\x9d\xe3\x82\x99\0" /* offset 6963 */ "\xe3\x82\x88\xe3\x82\x8a\0" /* offset 6970 */ "\xe3\x82\xab\xe3\x82\x99\0" /* offset 6977 */ "\xe3\x82\xad\xe3\x82\x99\0" /* offset 6984 */ "\xe3\x82\xaf\xe3\x82\x99\0" /* offset 6991 */ "\xe3\x82\xb1\xe3\x82\x99\0" /* offset 6998 */ "\xe3\x82\xb3\xe3\x82\x99\0" /* offset 7005 */ "\xe3\x82\xb5\xe3\x82\x99\0" /* offset 7012 */ "\xe3\x82\xb7\xe3\x82\x99\0" /* offset 7019 */ "\xe3\x82\xb9\xe3\x82\x99\0" /* offset 7026 */ "\xe3\x82\xbb\xe3\x82\x99\0" /* offset 7033 */ "\xe3\x82\xbd\xe3\x82\x99\0" /* offset 7040 */ "\xe3\x82\xbf\xe3\x82\x99\0" /* offset 7047 */ "\xe3\x83\x81\xe3\x82\x99\0" /* offset 7054 */ "\xe3\x83\x84\xe3\x82\x99\0" /* offset 7061 */ "\xe3\x83\x86\xe3\x82\x99\0" /* offset 7068 */ "\xe3\x83\x88\xe3\x82\x99\0" /* offset 7075 */ "\xe3\x83\x8f\xe3\x82\x99\0" /* offset 7082 */ "\xe3\x83\x8f\xe3\x82\x9a\0" /* offset 7089 */ "\xe3\x83\x92\xe3\x82\x99\0" /* offset 7096 */ "\xe3\x83\x92\xe3\x82\x9a\0" /* offset 7103 */ "\xe3\x83\x95\xe3\x82\x99\0" /* offset 7110 */ "\xe3\x83\x95\xe3\x82\x9a\0" /* offset 7117 */ "\xe3\x83\x98\xe3\x82\x99\0" /* offset 7124 */ "\xe3\x83\x98\xe3\x82\x9a\0" /* offset 7131 */ "\xe3\x83\x9b\xe3\x82\x99\0" /* offset 7138 */ "\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 7145 */ "\xe3\x82\xa6\xe3\x82\x99\0" /* offset 7152 */ "\xe3\x83\xaf\xe3\x82\x99\0" /* offset 7159 */ "\xe3\x83\xb0\xe3\x82\x99\0" /* offset 7166 */ "\xe3\x83\xb1\xe3\x82\x99\0" /* offset 7173 */ "\xe3\x83\xb2\xe3\x82\x99\0" /* offset 7180 */ "\xe3\x83\xbd\xe3\x82\x99\0" /* offset 7187 */ "\xe3\x82\xb3\xe3\x83\x88\0" /* offset 7194 */ "\xe1\x84\x80\0" /* offset 7201 */ "\xe1\x84\x81\0" /* offset 7205 */ "\xe1\x86\xaa\0" /* offset 7209 */ "\xe1\x84\x82\0" /* offset 7213 */ "\xe1\x86\xac\0" /* offset 7217 */ "\xe1\x86\xad\0" /* offset 7221 */ "\xe1\x84\x83\0" /* offset 7225 */ "\xe1\x84\x84\0" /* offset 7229 */ "\xe1\x84\x85\0" /* offset 7233 */ "\xe1\x86\xb0\0" /* offset 7237 */ "\xe1\x86\xb1\0" /* offset 7241 */ "\xe1\x86\xb2\0" /* offset 7245 */ "\xe1\x86\xb3\0" /* offset 7249 */ "\xe1\x86\xb4\0" /* offset 7253 */ "\xe1\x86\xb5\0" /* offset 7257 */ "\xe1\x84\x9a\0" /* offset 7261 */ "\xe1\x84\x86\0" /* offset 7265 */ "\xe1\x84\x87\0" /* offset 7269 */ "\xe1\x84\x88\0" /* offset 7273 */ "\xe1\x84\xa1\0" /* offset 7277 */ "\xe1\x84\x89\0" /* offset 7281 */ "\xe1\x84\x8a\0" /* offset 7285 */ "\xe1\x84\x8b\0" /* offset 7289 */ "\xe1\x84\x8c\0" /* offset 7293 */ "\xe1\x84\x8d\0" /* offset 7297 */ "\xe1\x84\x8e\0" /* offset 7301 */ "\xe1\x84\x8f\0" /* offset 7305 */ "\xe1\x84\x90\0" /* offset 7309 */ "\xe1\x84\x91\0" /* offset 7313 */ "\xe1\x84\x92\0" /* offset 7317 */ "\xe1\x85\xa1\0" /* offset 7321 */ "\xe1\x85\xa2\0" /* offset 7325 */ "\xe1\x85\xa3\0" /* offset 7329 */ "\xe1\x85\xa4\0" /* offset 7333 */ "\xe1\x85\xa5\0" /* offset 7337 */ "\xe1\x85\xa6\0" /* offset 7341 */ "\xe1\x85\xa7\0" /* offset 7345 */ "\xe1\x85\xa8\0" /* offset 7349 */ "\xe1\x85\xa9\0" /* offset 7353 */ "\xe1\x85\xaa\0" /* offset 7357 */ "\xe1\x85\xab\0" /* offset 7361 */ "\xe1\x85\xac\0" /* offset 7365 */ "\xe1\x85\xad\0" /* offset 7369 */ "\xe1\x85\xae\0" /* offset 7373 */ "\xe1\x85\xaf\0" /* offset 7377 */ "\xe1\x85\xb0\0" /* offset 7381 */ "\xe1\x85\xb1\0" /* offset 7385 */ "\xe1\x85\xb2\0" /* offset 7389 */ "\xe1\x85\xb3\0" /* offset 7393 */ "\xe1\x85\xb4\0" /* offset 7397 */ "\xe1\x85\xb5\0" /* offset 7401 */ "\xe1\x85\xa0\0" /* offset 7405 */ "\xe1\x84\x94\0" /* offset 7409 */ "\xe1\x84\x95\0" /* offset 7413 */ "\xe1\x87\x87\0" /* offset 7417 */ "\xe1\x87\x88\0" /* offset 7421 */ "\xe1\x87\x8c\0" /* offset 7425 */ "\xe1\x87\x8e\0" /* offset 7429 */ "\xe1\x87\x93\0" /* offset 7433 */ "\xe1\x87\x97\0" /* offset 7437 */ "\xe1\x87\x99\0" /* offset 7441 */ "\xe1\x84\x9c\0" /* offset 7445 */ "\xe1\x87\x9d\0" /* offset 7449 */ "\xe1\x87\x9f\0" /* offset 7453 */ "\xe1\x84\x9d\0" /* offset 7457 */ "\xe1\x84\x9e\0" /* offset 7461 */ "\xe1\x84\xa0\0" /* offset 7465 */ "\xe1\x84\xa2\0" /* offset 7469 */ "\xe1\x84\xa3\0" /* offset 7473 */ "\xe1\x84\xa7\0" /* offset 7477 */ "\xe1\x84\xa9\0" /* offset 7481 */ "\xe1\x84\xab\0" /* offset 7485 */ "\xe1\x84\xac\0" /* offset 7489 */ "\xe1\x84\xad\0" /* offset 7493 */ "\xe1\x84\xae\0" /* offset 7497 */ "\xe1\x84\xaf\0" /* offset 7501 */ "\xe1\x84\xb2\0" /* offset 7505 */ "\xe1\x84\xb6\0" /* offset 7509 */ "\xe1\x85\x80\0" /* offset 7513 */ "\xe1\x85\x87\0" /* offset 7517 */ "\xe1\x85\x8c\0" /* offset 7521 */ "\xe1\x87\xb1\0" /* offset 7525 */ "\xe1\x87\xb2\0" /* offset 7529 */ "\xe1\x85\x97\0" /* offset 7533 */ "\xe1\x85\x98\0" /* offset 7537 */ "\xe1\x85\x99\0" /* offset 7541 */ "\xe1\x86\x84\0" /* offset 7545 */ "\xe1\x86\x85\0" /* offset 7549 */ "\xe1\x86\x88\0" /* offset 7553 */ "\xe1\x86\x91\0" /* offset 7557 */ "\xe1\x86\x92\0" /* offset 7561 */ "\xe1\x86\x94\0" /* offset 7565 */ "\xe1\x86\x9e\0" /* offset 7569 */ "\xe1\x86\xa1\0" /* offset 7573 */ "\xe4\xb8\x89\0" /* offset 7577 */ "\xe5\x9b\x9b\0" /* offset 7581 */ "\xe4\xb8\x8a\0" /* offset 7585 */ "\xe4\xb8\xad\0" /* offset 7589 */ "\xe4\xb8\x8b\0" /* offset 7593 */ "\xe7\x94\xb2\0" /* offset 7597 */ "\xe4\xb8\x99\0" /* offset 7601 */ "\xe4\xb8\x81\0" /* offset 7605 */ "\xe5\xa4\xa9\0" /* offset 7609 */ "\xe5\x9c\xb0\0" /* offset 7613 */ "\x28\xe1\x84\x80\x29\0" /* offset 7617 */ "\x28\xe1\x84\x82\x29\0" /* offset 7623 */ "\x28\xe1\x84\x83\x29\0" /* offset 7629 */ "\x28\xe1\x84\x85\x29\0" /* offset 7635 */ "\x28\xe1\x84\x86\x29\0" /* offset 7641 */ "\x28\xe1\x84\x87\x29\0" /* offset 7647 */ "\x28\xe1\x84\x89\x29\0" /* offset 7653 */ "\x28\xe1\x84\x8b\x29\0" /* offset 7659 */ "\x28\xe1\x84\x8c\x29\0" /* offset 7665 */ "\x28\xe1\x84\x8e\x29\0" /* offset 7671 */ "\x28\xe1\x84\x8f\x29\0" /* offset 7677 */ "\x28\xe1\x84\x90\x29\0" /* offset 7683 */ "\x28\xe1\x84\x91\x29\0" /* offset 7689 */ "\x28\xe1\x84\x92\x29\0" /* offset 7695 */ "\x28\xe1\x84\x80\xe1\x85\xa1\x29\0" /* offset 7701 */ "\x28\xe1\x84\x82\xe1\x85\xa1\x29\0" /* offset 7710 */ "\x28\xe1\x84\x83\xe1\x85\xa1\x29\0" /* offset 7719 */ "\x28\xe1\x84\x85\xe1\x85\xa1\x29\0" /* offset 7728 */ "\x28\xe1\x84\x86\xe1\x85\xa1\x29\0" /* offset 7737 */ "\x28\xe1\x84\x87\xe1\x85\xa1\x29\0" /* offset 7746 */ "\x28\xe1\x84\x89\xe1\x85\xa1\x29\0" /* offset 7755 */ "\x28\xe1\x84\x8b\xe1\x85\xa1\x29\0" /* offset 7764 */ "\x28\xe1\x84\x8c\xe1\x85\xa1\x29\0" /* offset 7773 */ "\x28\xe1\x84\x8e\xe1\x85\xa1\x29\0" /* offset 7782 */ "\x28\xe1\x84\x8f\xe1\x85\xa1\x29\0" /* offset 7791 */ "\x28\xe1\x84\x90\xe1\x85\xa1\x29\0" /* offset 7800 */ "\x28\xe1\x84\x91\xe1\x85\xa1\x29\0" /* offset 7809 */ "\x28\xe1\x84\x92\xe1\x85\xa1\x29\0" /* offset 7818 */ "\x28\xe1\x84\x8c\xe1\x85\xae\x29\0" /* offset 7827 */ "\x28\xe4\xb8\x80\x29\0" /* offset 7836 */ "\x28\xe4\xba\x8c\x29\0" /* offset 7842 */ "\x28\xe4\xb8\x89\x29\0" /* offset 7848 */ "\x28\xe5\x9b\x9b\x29\0" /* offset 7854 */ "\x28\xe4\xba\x94\x29\0" /* offset 7860 */ "\x28\xe5\x85\xad\x29\0" /* offset 7866 */ "\x28\xe4\xb8\x83\x29\0" /* offset 7872 */ "\x28\xe5\x85\xab\x29\0" /* offset 7878 */ "\x28\xe4\xb9\x9d\x29\0" /* offset 7884 */ "\x28\xe5\x8d\x81\x29\0" /* offset 7890 */ "\x28\xe6\x9c\x88\x29\0" /* offset 7896 */ "\x28\xe7\x81\xab\x29\0" /* offset 7902 */ "\x28\xe6\xb0\xb4\x29\0" /* offset 7908 */ "\x28\xe6\x9c\xa8\x29\0" /* offset 7914 */ "\x28\xe9\x87\x91\x29\0" /* offset 7920 */ "\x28\xe5\x9c\x9f\x29\0" /* offset 7926 */ "\x28\xe6\x97\xa5\x29\0" /* offset 7932 */ "\x28\xe6\xa0\xaa\x29\0" /* offset 7938 */ "\x28\xe6\x9c\x89\x29\0" /* offset 7944 */ "\x28\xe7\xa4\xbe\x29\0" /* offset 7950 */ "\x28\xe5\x90\x8d\x29\0" /* offset 7956 */ "\x28\xe7\x89\xb9\x29\0" /* offset 7962 */ "\x28\xe8\xb2\xa1\x29\0" /* offset 7968 */ "\x28\xe7\xa5\x9d\x29\0" /* offset 7974 */ "\x28\xe5\x8a\xb4\x29\0" /* offset 7980 */ "\x28\xe4\xbb\xa3\x29\0" /* offset 7986 */ "\x28\xe5\x91\xbc\x29\0" /* offset 7992 */ "\x28\xe5\xad\xa6\x29\0" /* offset 7998 */ "\x28\xe7\x9b\xa3\x29\0" /* offset 8004 */ "\x28\xe4\xbc\x81\x29\0" /* offset 8010 */ "\x28\xe8\xb3\x87\x29\0" /* offset 8016 */ "\x28\xe5\x8d\x94\x29\0" /* offset 8022 */ "\x28\xe7\xa5\xad\x29\0" /* offset 8028 */ "\x28\xe4\xbc\x91\x29\0" /* offset 8034 */ "\x28\xe8\x87\xaa\x29\0" /* offset 8040 */ "\x28\xe8\x87\xb3\x29\0" /* offset 8046 */ "\x32\x31\0" /* offset 8052 */ "\x32\x32\0" /* offset 8055 */ "\x32\x33\0" /* offset 8058 */ "\x32\x34\0" /* offset 8061 */ "\x32\x35\0" /* offset 8064 */ "\x32\x36\0" /* offset 8067 */ "\x32\x37\0" /* offset 8070 */ "\x32\x38\0" /* offset 8073 */ "\x32\x39\0" /* offset 8076 */ "\x33\x30\0" /* offset 8079 */ "\x33\x31\0" /* offset 8082 */ "\x33\x32\0" /* offset 8085 */ "\x33\x33\0" /* offset 8088 */ "\x33\x34\0" /* offset 8091 */ "\x33\x35\0" /* offset 8094 */ "\xe1\x84\x80\xe1\x85\xa1\0" /* offset 8097 */ "\xe1\x84\x82\xe1\x85\xa1\0" /* offset 8104 */ "\xe1\x84\x83\xe1\x85\xa1\0" /* offset 8111 */ "\xe1\x84\x85\xe1\x85\xa1\0" /* offset 8118 */ "\xe1\x84\x86\xe1\x85\xa1\0" /* offset 8125 */ "\xe1\x84\x87\xe1\x85\xa1\0" /* offset 8132 */ "\xe1\x84\x89\xe1\x85\xa1\0" /* offset 8139 */ "\xe1\x84\x8b\xe1\x85\xa1\0" /* offset 8146 */ "\xe1\x84\x8c\xe1\x85\xa1\0" /* offset 8153 */ "\xe1\x84\x8e\xe1\x85\xa1\0" /* offset 8160 */ "\xe1\x84\x8f\xe1\x85\xa1\0" /* offset 8167 */ "\xe1\x84\x90\xe1\x85\xa1\0" /* offset 8174 */ "\xe1\x84\x91\xe1\x85\xa1\0" /* offset 8181 */ "\xe1\x84\x92\xe1\x85\xa1\0" /* offset 8188 */ "\xe4\xba\x94\0" /* offset 8195 */ "\xe5\x85\xad\0" /* offset 8199 */ "\xe4\xb8\x83\0" /* offset 8203 */ "\xe4\xb9\x9d\0" /* offset 8207 */ "\xe6\xa0\xaa\0" /* offset 8211 */ "\xe6\x9c\x89\0" /* offset 8215 */ "\xe7\xa4\xbe\0" /* offset 8219 */ "\xe5\x90\x8d\0" /* offset 8223 */ "\xe7\x89\xb9\0" /* offset 8227 */ "\xe8\xb2\xa1\0" /* offset 8231 */ "\xe7\xa5\x9d\0" /* offset 8235 */ "\xe5\x8a\xb4\0" /* offset 8239 */ "\xe7\xa7\x98\0" /* offset 8243 */ "\xe7\x94\xb7\0" /* offset 8247 */ "\xe9\x81\xa9\0" /* offset 8251 */ "\xe5\x84\xaa\0" /* offset 8255 */ "\xe5\x8d\xb0\0" /* offset 8259 */ "\xe6\xb3\xa8\0" /* offset 8263 */ "\xe9\xa0\x85\0" /* offset 8267 */ "\xe4\xbc\x91\0" /* offset 8271 */ "\xe5\x86\x99\0" /* offset 8275 */ "\xe6\xad\xa3\0" /* offset 8279 */ "\xe5\xb7\xa6\0" /* offset 8283 */ "\xe5\x8f\xb3\0" /* offset 8287 */ "\xe5\x8c\xbb\0" /* offset 8291 */ "\xe5\xae\x97\0" /* offset 8295 */ "\xe5\xad\xa6\0" /* offset 8299 */ "\xe7\x9b\xa3\0" /* offset 8303 */ "\xe4\xbc\x81\0" /* offset 8307 */ "\xe8\xb3\x87\0" /* offset 8311 */ "\xe5\x8d\x94\0" /* offset 8315 */ "\xe5\xa4\x9c\0" /* offset 8319 */ "\x33\x36\0" /* offset 8323 */ "\x33\x37\0" /* offset 8326 */ "\x33\x38\0" /* offset 8329 */ "\x33\x39\0" /* offset 8332 */ "\x34\x30\0" /* offset 8335 */ "\x34\x31\0" /* offset 8338 */ "\x34\x32\0" /* offset 8341 */ "\x34\x33\0" /* offset 8344 */ "\x34\x34\0" /* offset 8347 */ "\x34\x35\0" /* offset 8350 */ "\x34\x36\0" /* offset 8353 */ "\x34\x37\0" /* offset 8356 */ "\x34\x38\0" /* offset 8359 */ "\x34\x39\0" /* offset 8362 */ "\x35\x30\0" /* offset 8365 */ "\x31\xe6\x9c\x88\0" /* offset 8368 */ "\x32\xe6\x9c\x88\0" /* offset 8373 */ "\x33\xe6\x9c\x88\0" /* offset 8378 */ "\x34\xe6\x9c\x88\0" /* offset 8383 */ "\x35\xe6\x9c\x88\0" /* offset 8388 */ "\x36\xe6\x9c\x88\0" /* offset 8393 */ "\x37\xe6\x9c\x88\0" /* offset 8398 */ "\x38\xe6\x9c\x88\0" /* offset 8403 */ "\x39\xe6\x9c\x88\0" /* offset 8408 */ "\x31\x30\xe6\x9c\x88\0" /* offset 8413 */ "\x31\x31\xe6\x9c\x88\0" /* offset 8419 */ "\x31\x32\xe6\x9c\x88\0" /* offset 8425 */ "\xe3\x82\xa2\0" /* offset 8431 */ "\xe3\x82\xa4\0" /* offset 8435 */ "\xe3\x82\xa6\0" /* offset 8439 */ "\xe3\x82\xa8\0" /* offset 8443 */ "\xe3\x82\xaa\0" /* offset 8447 */ "\xe3\x82\xab\0" /* offset 8451 */ "\xe3\x82\xad\0" /* offset 8455 */ "\xe3\x82\xaf\0" /* offset 8459 */ "\xe3\x82\xb1\0" /* offset 8463 */ "\xe3\x82\xb3\0" /* offset 8467 */ "\xe3\x82\xb5\0" /* offset 8471 */ "\xe3\x82\xb7\0" /* offset 8475 */ "\xe3\x82\xb9\0" /* offset 8479 */ "\xe3\x82\xbb\0" /* offset 8483 */ "\xe3\x82\xbd\0" /* offset 8487 */ "\xe3\x82\xbf\0" /* offset 8491 */ "\xe3\x83\x81\0" /* offset 8495 */ "\xe3\x83\x84\0" /* offset 8499 */ "\xe3\x83\x86\0" /* offset 8503 */ "\xe3\x83\x88\0" /* offset 8507 */ "\xe3\x83\x8a\0" /* offset 8511 */ "\xe3\x83\x8b\0" /* offset 8515 */ "\xe3\x83\x8c\0" /* offset 8519 */ "\xe3\x83\x8d\0" /* offset 8523 */ "\xe3\x83\x8e\0" /* offset 8527 */ "\xe3\x83\x8f\0" /* offset 8531 */ "\xe3\x83\x92\0" /* offset 8535 */ "\xe3\x83\x95\0" /* offset 8539 */ "\xe3\x83\x98\0" /* offset 8543 */ "\xe3\x83\x9b\0" /* offset 8547 */ "\xe3\x83\x9e\0" /* offset 8551 */ "\xe3\x83\x9f\0" /* offset 8555 */ "\xe3\x83\xa0\0" /* offset 8559 */ "\xe3\x83\xa1\0" /* offset 8563 */ "\xe3\x83\xa2\0" /* offset 8567 */ "\xe3\x83\xa4\0" /* offset 8571 */ "\xe3\x83\xa6\0" /* offset 8575 */ "\xe3\x83\xa8\0" /* offset 8579 */ "\xe3\x83\xa9\0" /* offset 8583 */ "\xe3\x83\xaa\0" /* offset 8587 */ "\xe3\x83\xab\0" /* offset 8591 */ "\xe3\x83\xac\0" /* offset 8595 */ "\xe3\x83\xad\0" /* offset 8599 */ "\xe3\x83\xaf\0" /* offset 8603 */ "\xe3\x83\xb0\0" /* offset 8607 */ "\xe3\x83\xb1\0" /* offset 8611 */ "\xe3\x83\xb2\0" /* offset 8615 */ "\xe3\x82\xa2\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x88\0" /* offset 8619 */ "\xe3\x82\xa2\xe3\x83\xab\xe3\x83\x95\xe3\x82\xa1\0" /* offset 8635 */ "\xe3\x82\xa2\xe3\x83\xb3\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xa2\0" /* offset 8648 */ "\xe3\x82\xa2\xe3\x83\xbc\xe3\x83\xab\0" /* offset 8664 */ "\xe3\x82\xa4\xe3\x83\x8b\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 8674 */ "\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x81\0" /* offset 8690 */ "\xe3\x82\xa6\xe3\x82\xa9\xe3\x83\xb3\0" /* offset 8700 */ "\xe3\x82\xa8\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 8710 */ "\xe3\x82\xa8\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc\0" /* offset 8729 */ "\xe3\x82\xaa\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 8742 */ "\xe3\x82\xaa\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 8752 */ "\xe3\x82\xab\xe3\x82\xa4\xe3\x83\xaa\0" /* offset 8762 */ "\xe3\x82\xab\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\0" /* offset 8772 */ "\xe3\x82\xab\xe3\x83\xad\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 8785 */ "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xad\xe3\x83\xb3\0" /* offset 8798 */ "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xb3\xe3\x83\x9e\0" /* offset 8811 */ "\xe3\x82\xad\xe3\x82\x99\xe3\x82\xab\xe3\x82\x99\0" /* offset 8824 */ "\xe3\x82\xad\xe3\x82\x99\xe3\x83\x8b\xe3\x83\xbc\0" /* offset 8837 */ "\xe3\x82\xad\xe3\x83\xa5\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 8850 */ "\xe3\x82\xad\xe3\x82\x99\xe3\x83\xab\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\0" /* offset 8863 */ "\xe3\x82\xad\xe3\x83\xad\0" /* offset 8882 */ "\xe3\x82\xad\xe3\x83\xad\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 8889 */ "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 8908 */ "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 8927 */ "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 8943 */ "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\xe3\x83\x88\xe3\x83\xb3\0" /* offset 8956 */ "\xe3\x82\xaf\xe3\x83\xab\xe3\x82\xbb\xe3\x82\x99\xe3\x82\xa4\xe3\x83\xad\0" /* offset 8975 */ "\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xbc\xe3\x83\x8d\0" /* offset 8994 */ "\xe3\x82\xb1\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9007 */ "\xe3\x82\xb3\xe3\x83\xab\xe3\x83\x8a\0" /* offset 9017 */ "\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 9027 */ "\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9040 */ "\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x81\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 9053 */ "\xe3\x82\xb7\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 9069 */ "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81\0" /* offset 9085 */ "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9095 */ "\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9105 */ "\xe3\x83\x86\xe3\x82\x99\xe3\x82\xb7\0" /* offset 9118 */ "\xe3\x83\x88\xe3\x82\x99\xe3\x83\xab\0" /* offset 9128 */ "\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9138 */ "\xe3\x83\x8a\xe3\x83\x8e\0" /* offset 9145 */ "\xe3\x83\x8e\xe3\x83\x83\xe3\x83\x88\0" /* offset 9152 */ "\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84\0" /* offset 9162 */ "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9172 */ "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x84\0" /* offset 9191 */ "\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xac\xe3\x83\xab\0" /* offset 9204 */ "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xa2\xe3\x82\xb9\xe3\x83\x88\xe3\x83\xab\0" /* offset 9220 */ "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9239 */ "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xb3\0" /* offset 9252 */ "\xe3\x83\x92\xe3\x82\x99\xe3\x83\xab\0" /* offset 9262 */ "\xe3\x83\x95\xe3\x82\xa1\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\xe3\x82\x99\0" /* offset 9272 */ "\xe3\x83\x95\xe3\x82\xa3\xe3\x83\xbc\xe3\x83\x88\0" /* offset 9291 */ "\xe3\x83\x95\xe3\x82\x99\xe3\x83\x83\xe3\x82\xb7\xe3\x82\xa7\xe3\x83\xab\0" /* offset 9304 */ "\xe3\x83\x95\xe3\x83\xa9\xe3\x83\xb3\0" /* offset 9323 */ "\xe3\x83\x98\xe3\x82\xaf\xe3\x82\xbf\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9333 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xbd\0" /* offset 9349 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\x8b\xe3\x83\x92\0" /* offset 9359 */ "\xe3\x83\x98\xe3\x83\xab\xe3\x83\x84\0" /* offset 9372 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 9382 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xb7\xe3\x82\x99\0" /* offset 9395 */ "\xe3\x83\x98\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xbf\0" /* offset 9411 */ "\xe3\x83\x9b\xe3\x82\x9a\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9424 */ "\xe3\x83\x9b\xe3\x82\x99\xe3\x83\xab\xe3\x83\x88\0" /* offset 9440 */ "\xe3\x83\x9b\xe3\x83\xb3\0" /* offset 9453 */ "\xe3\x83\x9b\xe3\x82\x9a\xe3\x83\xb3\xe3\x83\x88\xe3\x82\x99\0" /* offset 9460 */ "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9476 */ "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xb3\0" /* offset 9486 */ "\xe3\x83\x9e\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xad\0" /* offset 9496 */ "\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xab\0" /* offset 9509 */ "\xe3\x83\x9e\xe3\x83\x83\xe3\x83\x8f\0" /* offset 9519 */ "\xe3\x83\x9e\xe3\x83\xab\xe3\x82\xaf\0" /* offset 9529 */ "\xe3\x83\x9e\xe3\x83\xb3\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3\0" /* offset 9539 */ "\xe3\x83\x9f\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xb3\0" /* offset 9555 */ "\xe3\x83\x9f\xe3\x83\xaa\0" /* offset 9568 */ "\xe3\x83\x9f\xe3\x83\xaa\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9575 */ "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\0" /* offset 9594 */ "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9604 */ "\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 9620 */ "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 9633 */ "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9646 */ "\xe3\x83\xa6\xe3\x82\xa2\xe3\x83\xb3\0" /* offset 9656 */ "\xe3\x83\xaa\xe3\x83\x83\xe3\x83\x88\xe3\x83\xab\0" /* offset 9666 */ "\xe3\x83\xaa\xe3\x83\xa9\0" /* offset 9679 */ "\xe3\x83\xab\xe3\x83\x92\xe3\x82\x9a\xe3\x83\xbc\0" /* offset 9686 */ "\xe3\x83\xab\xe3\x83\xbc\xe3\x83\x95\xe3\x82\x99\xe3\x83\xab\0" /* offset 9699 */ "\xe3\x83\xac\xe3\x83\xa0\0" /* offset 9715 */ "\xe3\x83\xac\xe3\x83\xb3\xe3\x83\x88\xe3\x82\xb1\xe3\x82\x99\xe3\x83\xb3\0" /* offset 9722 */ "\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 9741 */ "\x30\xe7\x82\xb9\0" /* offset 9751 */ "\x31\xe7\x82\xb9\0" /* offset 9756 */ "\x32\xe7\x82\xb9\0" /* offset 9761 */ "\x33\xe7\x82\xb9\0" /* offset 9766 */ "\x34\xe7\x82\xb9\0" /* offset 9771 */ "\x35\xe7\x82\xb9\0" /* offset 9776 */ "\x36\xe7\x82\xb9\0" /* offset 9781 */ "\x37\xe7\x82\xb9\0" /* offset 9786 */ "\x38\xe7\x82\xb9\0" /* offset 9791 */ "\x39\xe7\x82\xb9\0" /* offset 9796 */ "\x31\x30\xe7\x82\xb9\0" /* offset 9801 */ "\x31\x31\xe7\x82\xb9\0" /* offset 9807 */ "\x31\x32\xe7\x82\xb9\0" /* offset 9813 */ "\x31\x33\xe7\x82\xb9\0" /* offset 9819 */ "\x31\x34\xe7\x82\xb9\0" /* offset 9825 */ "\x31\x35\xe7\x82\xb9\0" /* offset 9831 */ "\x31\x36\xe7\x82\xb9\0" /* offset 9837 */ "\x31\x37\xe7\x82\xb9\0" /* offset 9843 */ "\x31\x38\xe7\x82\xb9\0" /* offset 9849 */ "\x31\x39\xe7\x82\xb9\0" /* offset 9855 */ "\x32\x30\xe7\x82\xb9\0" /* offset 9861 */ "\x32\x31\xe7\x82\xb9\0" /* offset 9867 */ "\x32\x32\xe7\x82\xb9\0" /* offset 9873 */ "\x32\x33\xe7\x82\xb9\0" /* offset 9879 */ "\x32\x34\xe7\x82\xb9\0" /* offset 9885 */ "\x68\x50\x61\0" /* offset 9891 */ "\x64\x61\0" /* offset 9895 */ "\x41\x55\0" /* offset 9898 */ "\x62\x61\x72\0" /* offset 9901 */ "\x6f\x56\0" /* offset 9905 */ "\x70\x63\0" /* offset 9908 */ "\xe5\xb9\xb3\xe6\x88\x90\0" /* offset 9911 */ "\xe6\x98\xad\xe5\x92\x8c\0" /* offset 9918 */ "\xe5\xa4\xa7\xe6\xad\xa3\0" /* offset 9925 */ "\xe6\x98\x8e\xe6\xb2\xbb\0" /* offset 9932 */ "\xe6\xa0\xaa\xe5\xbc\x8f\xe4\xbc\x9a\xe7\xa4\xbe\0" /* offset 9939 */ "\x70\x41\0" /* offset 9952 */ "\x6e\x41\0" /* offset 9955 */ "\xce\xbc\x41\0" /* offset 9958 */ "\x6d\x41\0" /* offset 9962 */ "\x6b\x41\0" /* offset 9965 */ "\x4b\x42\0" /* offset 9968 */ "\x4d\x42\0" /* offset 9971 */ "\x47\x42\0" /* offset 9974 */ "\x63\x61\x6c\0" /* offset 9977 */ "\x6b\x63\x61\x6c\0" /* offset 9981 */ "\x70\x46\0" /* offset 9986 */ "\x6e\x46\0" /* offset 9989 */ "\xce\xbc\x46\0" /* offset 9992 */ "\xce\xbc\x67\0" /* offset 9996 */ "\x6d\x67\0" /* offset 10000 */ "\x6b\x67\0" /* offset 10003 */ "\x48\x7a\0" /* offset 10006 */ "\x6b\x48\x7a\0" /* offset 10009 */ "\x4d\x48\x7a\0" /* offset 10013 */ "\x47\x48\x7a\0" /* offset 10017 */ "\x54\x48\x7a\0" /* offset 10021 */ "\xce\xbc\x6c\0" /* offset 10025 */ "\x6d\x6c\0" /* offset 10029 */ "\x64\x6c\0" /* offset 10032 */ "\x6b\x6c\0" /* offset 10035 */ "\x66\x6d\0" /* offset 10038 */ "\x6e\x6d\0" /* offset 10041 */ "\xce\xbc\x6d\0" /* offset 10044 */ "\x6d\x6d\0" /* offset 10048 */ "\x63\x6d\0" /* offset 10051 */ "\x6b\x6d\0" /* offset 10054 */ "\x6d\x6d\x32\0" /* offset 10057 */ "\x63\x6d\x32\0" /* offset 10061 */ "\x6d\x32\0" /* offset 10065 */ "\x6b\x6d\x32\0" /* offset 10068 */ "\x6d\x6d\x33\0" /* offset 10072 */ "\x63\x6d\x33\0" /* offset 10076 */ "\x6d\x33\0" /* offset 10080 */ "\x6b\x6d\x33\0" /* offset 10083 */ "\x6d\xe2\x88\x95\x73\0" /* offset 10087 */ "\x6d\xe2\x88\x95\x73\x32\0" /* offset 10093 */ "\x50\x61\0" /* offset 10100 */ "\x6b\x50\x61\0" /* offset 10103 */ "\x4d\x50\x61\0" /* offset 10107 */ "\x47\x50\x61\0" /* offset 10111 */ "\x72\x61\x64\0" /* offset 10115 */ "\x72\x61\x64\xe2\x88\x95\x73\0" /* offset 10119 */ "\x72\x61\x64\xe2\x88\x95\x73\x32\0" /* offset 10127 */ "\x70\x73\0" /* offset 10136 */ "\x6e\x73\0" /* offset 10139 */ "\xce\xbc\x73\0" /* offset 10142 */ "\x6d\x73\0" /* offset 10146 */ "\x70\x56\0" /* offset 10149 */ "\x6e\x56\0" /* offset 10152 */ "\xce\xbc\x56\0" /* offset 10155 */ "\x6d\x56\0" /* offset 10159 */ "\x6b\x56\0" /* offset 10162 */ "\x4d\x56\0" /* offset 10165 */ "\x70\x57\0" /* offset 10168 */ "\x6e\x57\0" /* offset 10171 */ "\xce\xbc\x57\0" /* offset 10174 */ "\x6d\x57\0" /* offset 10178 */ "\x6b\x57\0" /* offset 10181 */ "\x4d\x57\0" /* offset 10184 */ "\x6b\xce\xa9\0" /* offset 10187 */ "\x4d\xce\xa9\0" /* offset 10191 */ "\x61\x2e\x6d\x2e\0" /* offset 10195 */ "\x42\x71\0" /* offset 10200 */ "\x63\x63\0" /* offset 10203 */ "\x63\x64\0" /* offset 10206 */ "\x43\xe2\x88\x95\x6b\x67\0" /* offset 10209 */ "\x43\x6f\x2e\0" /* offset 10216 */ "\x64\x42\0" /* offset 10220 */ "\x47\x79\0" /* offset 10223 */ "\x68\x61\0" /* offset 10226 */ "\x48\x50\0" /* offset 10229 */ "\x69\x6e\0" /* offset 10232 */ "\x4b\x4b\0" /* offset 10235 */ "\x4b\x4d\0" /* offset 10238 */ "\x6b\x74\0" /* offset 10241 */ "\x6c\x6d\0" /* offset 10244 */ "\x6c\x6e\0" /* offset 10247 */ "\x6c\x6f\x67\0" /* offset 10250 */ "\x6c\x78\0" /* offset 10254 */ "\x6d\x62\0" /* offset 10257 */ "\x6d\x69\x6c\0" /* offset 10260 */ "\x6d\x6f\x6c\0" /* offset 10264 */ "\x50\x48\0" /* offset 10268 */ "\x70\x2e\x6d\x2e\0" /* offset 10271 */ "\x50\x50\x4d\0" /* offset 10276 */ "\x50\x52\0" /* offset 10280 */ "\x73\x72\0" /* offset 10283 */ "\x53\x76\0" /* offset 10286 */ "\x57\x62\0" /* offset 10289 */ "\x31\xe6\x97\xa5\0" /* offset 10292 */ "\x32\xe6\x97\xa5\0" /* offset 10297 */ "\x33\xe6\x97\xa5\0" /* offset 10302 */ "\x34\xe6\x97\xa5\0" /* offset 10307 */ "\x35\xe6\x97\xa5\0" /* offset 10312 */ "\x36\xe6\x97\xa5\0" /* offset 10317 */ "\x37\xe6\x97\xa5\0" /* offset 10322 */ "\x38\xe6\x97\xa5\0" /* offset 10327 */ "\x39\xe6\x97\xa5\0" /* offset 10332 */ "\x31\x30\xe6\x97\xa5\0" /* offset 10337 */ "\x31\x31\xe6\x97\xa5\0" /* offset 10343 */ "\x31\x32\xe6\x97\xa5\0" /* offset 10349 */ "\x31\x33\xe6\x97\xa5\0" /* offset 10355 */ "\x31\x34\xe6\x97\xa5\0" /* offset 10361 */ "\x31\x35\xe6\x97\xa5\0" /* offset 10367 */ "\x31\x36\xe6\x97\xa5\0" /* offset 10373 */ "\x31\x37\xe6\x97\xa5\0" /* offset 10379 */ "\x31\x38\xe6\x97\xa5\0" /* offset 10385 */ "\x31\x39\xe6\x97\xa5\0" /* offset 10391 */ "\x32\x30\xe6\x97\xa5\0" /* offset 10397 */ "\x32\x31\xe6\x97\xa5\0" /* offset 10403 */ "\x32\x32\xe6\x97\xa5\0" /* offset 10409 */ "\x32\x33\xe6\x97\xa5\0" /* offset 10415 */ "\x32\x34\xe6\x97\xa5\0" /* offset 10421 */ "\x32\x35\xe6\x97\xa5\0" /* offset 10427 */ "\x32\x36\xe6\x97\xa5\0" /* offset 10433 */ "\x32\x37\xe6\x97\xa5\0" /* offset 10439 */ "\x32\x38\xe6\x97\xa5\0" /* offset 10445 */ "\x32\x39\xe6\x97\xa5\0" /* offset 10451 */ "\x33\x30\xe6\x97\xa5\0" /* offset 10457 */ "\x33\x31\xe6\x97\xa5\0" /* offset 10463 */ "\xe8\xb1\x88\0" /* offset 10469 */ "\xe6\x9b\xb4\0" /* offset 10473 */ "\xe8\xb3\x88\0" /* offset 10477 */ "\xe6\xbb\x91\0" /* offset 10481 */ "\xe4\xb8\xb2\0" /* offset 10485 */ "\xe5\x8f\xa5\0" /* offset 10489 */ "\xe5\xa5\x91\0" /* offset 10493 */ "\xe5\x96\x87\0" /* offset 10497 */ "\xe5\xa5\x88\0" /* offset 10501 */ "\xe6\x87\xb6\0" /* offset 10505 */ "\xe7\x99\xa9\0" /* offset 10509 */ "\xe7\xbe\x85\0" /* offset 10513 */ "\xe8\x98\xbf\0" /* offset 10517 */ "\xe8\x9e\xba\0" /* offset 10521 */ "\xe8\xa3\xb8\0" /* offset 10525 */ "\xe9\x82\x8f\0" /* offset 10529 */ "\xe6\xa8\x82\0" /* offset 10533 */ "\xe6\xb4\x9b\0" /* offset 10537 */ "\xe7\x83\x99\0" /* offset 10541 */ "\xe7\x8f\x9e\0" /* offset 10545 */ "\xe8\x90\xbd\0" /* offset 10549 */ "\xe9\x85\xaa\0" /* offset 10553 */ "\xe9\xa7\xb1\0" /* offset 10557 */ "\xe4\xba\x82\0" /* offset 10561 */ "\xe5\x8d\xb5\0" /* offset 10565 */ "\xe6\xac\x84\0" /* offset 10569 */ "\xe7\x88\x9b\0" /* offset 10573 */ "\xe8\x98\xad\0" /* offset 10577 */ "\xe9\xb8\x9e\0" /* offset 10581 */ "\xe5\xb5\x90\0" /* offset 10585 */ "\xe6\xbf\xab\0" /* offset 10589 */ "\xe8\x97\x8d\0" /* offset 10593 */ "\xe8\xa5\xa4\0" /* offset 10597 */ "\xe6\x8b\x89\0" /* offset 10601 */ "\xe8\x87\x98\0" /* offset 10605 */ "\xe8\xa0\x9f\0" /* offset 10609 */ "\xe5\xbb\x8a\0" /* offset 10613 */ "\xe6\x9c\x97\0" /* offset 10617 */ "\xe6\xb5\xaa\0" /* offset 10621 */ "\xe7\x8b\xbc\0" /* offset 10625 */ "\xe9\x83\x8e\0" /* offset 10629 */ "\xe4\xbe\x86\0" /* offset 10633 */ "\xe5\x86\xb7\0" /* offset 10637 */ "\xe5\x8b\x9e\0" /* offset 10641 */ "\xe6\x93\x84\0" /* offset 10645 */ "\xe6\xab\x93\0" /* offset 10649 */ "\xe7\x88\x90\0" /* offset 10653 */ "\xe7\x9b\xa7\0" /* offset 10657 */ "\xe8\x98\x86\0" /* offset 10661 */ "\xe8\x99\x9c\0" /* offset 10665 */ "\xe8\xb7\xaf\0" /* offset 10669 */ "\xe9\x9c\xb2\0" /* offset 10673 */ "\xe9\xad\xaf\0" /* offset 10677 */ "\xe9\xb7\xba\0" /* offset 10681 */ "\xe7\xa2\x8c\0" /* offset 10685 */ "\xe7\xa5\xbf\0" /* offset 10689 */ "\xe7\xb6\xa0\0" /* offset 10693 */ "\xe8\x8f\x89\0" /* offset 10697 */ "\xe9\x8c\x84\0" /* offset 10701 */ "\xe8\xab\x96\0" /* offset 10705 */ "\xe5\xa3\x9f\0" /* offset 10709 */ "\xe5\xbc\x84\0" /* offset 10713 */ "\xe7\xb1\xa0\0" /* offset 10717 */ "\xe8\x81\xbe\0" /* offset 10721 */ "\xe7\x89\xa2\0" /* offset 10725 */ "\xe7\xa3\x8a\0" /* offset 10729 */ "\xe8\xb3\x82\0" /* offset 10733 */ "\xe9\x9b\xb7\0" /* offset 10737 */ "\xe5\xa3\x98\0" /* offset 10741 */ "\xe5\xb1\xa2\0" /* offset 10745 */ "\xe6\xa8\x93\0" /* offset 10749 */ "\xe6\xb7\x9a\0" /* offset 10753 */ "\xe6\xbc\x8f\0" /* offset 10757 */ "\xe7\xb4\xaf\0" /* offset 10761 */ "\xe7\xb8\xb7\0" /* offset 10765 */ "\xe9\x99\x8b\0" /* offset 10769 */ "\xe5\x8b\x92\0" /* offset 10773 */ "\xe8\x82\x8b\0" /* offset 10777 */ "\xe5\x87\x9c\0" /* offset 10781 */ "\xe5\x87\x8c\0" /* offset 10785 */ "\xe7\xa8\x9c\0" /* offset 10789 */ "\xe7\xb6\xbe\0" /* offset 10793 */ "\xe8\x8f\xb1\0" /* offset 10797 */ "\xe9\x99\xb5\0" /* offset 10801 */ "\xe8\xae\x80\0" /* offset 10805 */ "\xe6\x8b\x8f\0" /* offset 10809 */ "\xe8\xab\xbe\0" /* offset 10813 */ "\xe4\xb8\xb9\0" /* offset 10817 */ "\xe5\xaf\xa7\0" /* offset 10821 */ "\xe6\x80\x92\0" /* offset 10825 */ "\xe7\x8e\x87\0" /* offset 10829 */ "\xe7\x95\xb0\0" /* offset 10833 */ "\xe5\x8c\x97\0" /* offset 10837 */ "\xe7\xa3\xbb\0" /* offset 10841 */ "\xe4\xbe\xbf\0" /* offset 10845 */ "\xe5\xbe\xa9\0" /* offset 10849 */ "\xe4\xb8\x8d\0" /* offset 10853 */ "\xe6\xb3\x8c\0" /* offset 10857 */ "\xe6\x95\xb8\0" /* offset 10861 */ "\xe7\xb4\xa2\0" /* offset 10865 */ "\xe5\x8f\x83\0" /* offset 10869 */ "\xe5\xa1\x9e\0" /* offset 10873 */ "\xe7\x9c\x81\0" /* offset 10877 */ "\xe8\x91\x89\0" /* offset 10881 */ "\xe8\xaa\xaa\0" /* offset 10885 */ "\xe6\xae\xba\0" /* offset 10889 */ "\xe6\xb2\x88\0" /* offset 10893 */ "\xe6\x8b\xbe\0" /* offset 10897 */ "\xe8\x8b\xa5\0" /* offset 10901 */ "\xe6\x8e\xa0\0" /* offset 10905 */ "\xe7\x95\xa5\0" /* offset 10909 */ "\xe4\xba\xae\0" /* offset 10913 */ "\xe5\x85\xa9\0" /* offset 10917 */ "\xe5\x87\x89\0" /* offset 10921 */ "\xe6\xa2\x81\0" /* offset 10925 */ "\xe7\xb3\xa7\0" /* offset 10929 */ "\xe8\x89\xaf\0" /* offset 10933 */ "\xe8\xab\x92\0" /* offset 10937 */ "\xe9\x87\x8f\0" /* offset 10941 */ "\xe5\x8b\xb5\0" /* offset 10945 */ "\xe5\x91\x82\0" /* offset 10949 */ "\xe5\xbb\xac\0" /* offset 10953 */ "\xe6\x97\x85\0" /* offset 10957 */ "\xe6\xbf\xbe\0" /* offset 10961 */ "\xe7\xa4\xaa\0" /* offset 10965 */ "\xe9\x96\xad\0" /* offset 10969 */ "\xe9\xa9\xaa\0" /* offset 10973 */ "\xe9\xba\x97\0" /* offset 10977 */ "\xe9\xbb\x8e\0" /* offset 10981 */ "\xe6\x9b\x86\0" /* offset 10985 */ "\xe6\xad\xb7\0" /* offset 10989 */ "\xe8\xbd\xa2\0" /* offset 10993 */ "\xe5\xb9\xb4\0" /* offset 10997 */ "\xe6\x86\x90\0" /* offset 11001 */ "\xe6\x88\x80\0" /* offset 11005 */ "\xe6\x92\x9a\0" /* offset 11009 */ "\xe6\xbc\xa3\0" /* offset 11013 */ "\xe7\x85\x89\0" /* offset 11017 */ "\xe7\x92\x89\0" /* offset 11021 */ "\xe7\xa7\x8a\0" /* offset 11025 */ "\xe7\xb7\xb4\0" /* offset 11029 */ "\xe8\x81\xaf\0" /* offset 11033 */ "\xe8\xbc\xa6\0" /* offset 11037 */ "\xe8\x93\xae\0" /* offset 11041 */ "\xe9\x80\xa3\0" /* offset 11045 */ "\xe9\x8d\x8a\0" /* offset 11049 */ "\xe5\x88\x97\0" /* offset 11053 */ "\xe5\x8a\xa3\0" /* offset 11057 */ "\xe5\x92\xbd\0" /* offset 11061 */ "\xe7\x83\x88\0" /* offset 11065 */ "\xe8\xa3\x82\0" /* offset 11069 */ "\xe5\xbb\x89\0" /* offset 11073 */ "\xe5\xbf\xb5\0" /* offset 11077 */ "\xe6\x8d\xbb\0" /* offset 11081 */ "\xe6\xae\xae\0" /* offset 11085 */ "\xe7\xb0\xbe\0" /* offset 11089 */ "\xe7\x8d\xb5\0" /* offset 11093 */ "\xe4\xbb\xa4\0" /* offset 11097 */ "\xe5\x9b\xb9\0" /* offset 11101 */ "\xe5\xb6\xba\0" /* offset 11105 */ "\xe6\x80\x9c\0" /* offset 11109 */ "\xe7\x8e\xb2\0" /* offset 11113 */ "\xe7\x91\xa9\0" /* offset 11117 */ "\xe7\xbe\x9a\0" /* offset 11121 */ "\xe8\x81\x86\0" /* offset 11125 */ "\xe9\x88\xb4\0" /* offset 11129 */ "\xe9\x9b\xb6\0" /* offset 11133 */ "\xe9\x9d\x88\0" /* offset 11137 */ "\xe9\xa0\x98\0" /* offset 11141 */ "\xe4\xbe\x8b\0" /* offset 11145 */ "\xe7\xa6\xae\0" /* offset 11149 */ "\xe9\x86\xb4\0" /* offset 11153 */ "\xe9\x9a\xb8\0" /* offset 11157 */ "\xe6\x83\xa1\0" /* offset 11161 */ "\xe4\xba\x86\0" /* offset 11165 */ "\xe5\x83\x9a\0" /* offset 11169 */ "\xe5\xaf\xae\0" /* offset 11173 */ "\xe5\xb0\xbf\0" /* offset 11177 */ "\xe6\x96\x99\0" /* offset 11181 */ "\xe7\x87\x8e\0" /* offset 11185 */ "\xe7\x99\x82\0" /* offset 11189 */ "\xe8\x93\xbc\0" /* offset 11193 */ "\xe9\x81\xbc\0" /* offset 11197 */ "\xe6\x9a\x88\0" /* offset 11201 */ "\xe9\x98\xae\0" /* offset 11205 */ "\xe5\x8a\x89\0" /* offset 11209 */ "\xe6\x9d\xbb\0" /* offset 11213 */ "\xe6\x9f\xb3\0" /* offset 11217 */ "\xe6\xb5\x81\0" /* offset 11221 */ "\xe6\xba\x9c\0" /* offset 11225 */ "\xe7\x90\x89\0" /* offset 11229 */ "\xe7\x95\x99\0" /* offset 11233 */ "\xe7\xa1\xab\0" /* offset 11237 */ "\xe7\xb4\x90\0" /* offset 11241 */ "\xe9\xa1\x9e\0" /* offset 11245 */ "\xe6\x88\xae\0" /* offset 11249 */ "\xe9\x99\xb8\0" /* offset 11253 */ "\xe5\x80\xab\0" /* offset 11257 */ "\xe5\xb4\x99\0" /* offset 11261 */ "\xe6\xb7\xaa\0" /* offset 11265 */ "\xe8\xbc\xaa\0" /* offset 11269 */ "\xe5\xbe\x8b\0" /* offset 11273 */ "\xe6\x85\x84\0" /* offset 11277 */ "\xe6\xa0\x97\0" /* offset 11281 */ "\xe9\x9a\x86\0" /* offset 11285 */ "\xe5\x88\xa9\0" /* offset 11289 */ "\xe5\x90\x8f\0" /* offset 11293 */ "\xe5\xb1\xa5\0" /* offset 11297 */ "\xe6\x98\x93\0" /* offset 11301 */ "\xe6\x9d\x8e\0" /* offset 11305 */ "\xe6\xa2\xa8\0" /* offset 11309 */ "\xe6\xb3\xa5\0" /* offset 11313 */ "\xe7\x90\x86\0" /* offset 11317 */ "\xe7\x97\xa2\0" /* offset 11321 */ "\xe7\xbd\xb9\0" /* offset 11325 */ "\xe8\xa3\x8f\0" /* offset 11329 */ "\xe8\xa3\xa1\0" /* offset 11333 */ "\xe9\x9b\xa2\0" /* offset 11337 */ "\xe5\x8c\xbf\0" /* offset 11341 */ "\xe6\xba\xba\0" /* offset 11345 */ "\xe5\x90\x9d\0" /* offset 11349 */ "\xe7\x87\x90\0" /* offset 11353 */ "\xe7\x92\x98\0" /* offset 11357 */ "\xe8\x97\xba\0" /* offset 11361 */ "\xe9\x9a\xa3\0" /* offset 11365 */ "\xe9\xb1\x97\0" /* offset 11369 */ "\xe9\xba\x9f\0" /* offset 11373 */ "\xe6\x9e\x97\0" /* offset 11377 */ "\xe6\xb7\x8b\0" /* offset 11381 */ "\xe8\x87\xa8\0" /* offset 11385 */ "\xe7\xac\xa0\0" /* offset 11389 */ "\xe7\xb2\x92\0" /* offset 11393 */ "\xe7\x8b\x80\0" /* offset 11397 */ "\xe7\x82\x99\0" /* offset 11401 */ "\xe8\xad\x98\0" /* offset 11405 */ "\xe4\xbb\x80\0" /* offset 11409 */ "\xe8\x8c\xb6\0" /* offset 11413 */ "\xe5\x88\xba\0" /* offset 11417 */ "\xe5\x88\x87\0" /* offset 11421 */ "\xe5\xba\xa6\0" /* offset 11425 */ "\xe6\x8b\x93\0" /* offset 11429 */ "\xe7\xb3\x96\0" /* offset 11433 */ "\xe5\xae\x85\0" /* offset 11437 */ "\xe6\xb4\x9e\0" /* offset 11441 */ "\xe6\x9a\xb4\0" /* offset 11445 */ "\xe8\xbc\xbb\0" /* offset 11449 */ "\xe9\x99\x8d\0" /* offset 11453 */ "\xe5\xbb\x93\0" /* offset 11457 */ "\xe5\x85\x80\0" /* offset 11461 */ "\xe5\x97\x80\0" /* offset 11465 */ "\xe5\xa1\x9a\0" /* offset 11469 */ "\xe6\x99\xb4\0" /* offset 11473 */ "\xe5\x87\x9e\0" /* offset 11477 */ "\xe7\x8c\xaa\0" /* offset 11481 */ "\xe7\x9b\x8a\0" /* offset 11485 */ "\xe7\xa4\xbc\0" /* offset 11489 */ "\xe7\xa5\x9e\0" /* offset 11493 */ "\xe7\xa5\xa5\0" /* offset 11497 */ "\xe7\xa6\x8f\0" /* offset 11501 */ "\xe9\x9d\x96\0" /* offset 11505 */ "\xe7\xb2\xbe\0" /* offset 11509 */ "\xe8\x98\x92\0" /* offset 11513 */ "\xe8\xab\xb8\0" /* offset 11517 */ "\xe9\x80\xb8\0" /* offset 11521 */ "\xe9\x83\xbd\0" /* offset 11525 */ "\xe9\xa3\xaf\0" /* offset 11529 */ "\xe9\xa3\xbc\0" /* offset 11533 */ "\xe9\xa4\xa8\0" /* offset 11537 */ "\xe9\xb6\xb4\0" /* offset 11541 */ "\xe4\xbe\xae\0" /* offset 11545 */ "\xe5\x83\xa7\0" /* offset 11549 */ "\xe5\x85\x8d\0" /* offset 11553 */ "\xe5\x8b\x89\0" /* offset 11557 */ "\xe5\x8b\xa4\0" /* offset 11561 */ "\xe5\x8d\x91\0" /* offset 11565 */ "\xe5\x96\x9d\0" /* offset 11569 */ "\xe5\x98\x86\0" /* offset 11573 */ "\xe5\x99\xa8\0" /* offset 11577 */ "\xe5\xa1\x80\0" /* offset 11581 */ "\xe5\xa2\xa8\0" /* offset 11585 */ "\xe5\xb1\xa4\0" /* offset 11589 */ "\xe6\x82\x94\0" /* offset 11593 */ "\xe6\x85\xa8\0" /* offset 11597 */ "\xe6\x86\x8e\0" /* offset 11601 */ "\xe6\x87\xb2\0" /* offset 11605 */ "\xe6\x95\x8f\0" /* offset 11609 */ "\xe6\x97\xa2\0" /* offset 11613 */ "\xe6\x9a\x91\0" /* offset 11617 */ "\xe6\xa2\x85\0" /* offset 11621 */ "\xe6\xb5\xb7\0" /* offset 11625 */ "\xe6\xb8\x9a\0" /* offset 11629 */ "\xe6\xbc\xa2\0" /* offset 11633 */ "\xe7\x85\xae\0" /* offset 11637 */ "\xe7\x88\xab\0" /* offset 11641 */ "\xe7\x90\xa2\0" /* offset 11645 */ "\xe7\xa2\x91\0" /* offset 11649 */ "\xe7\xa5\x89\0" /* offset 11653 */ "\xe7\xa5\x88\0" /* offset 11657 */ "\xe7\xa5\x90\0" /* offset 11661 */ "\xe7\xa5\x96\0" /* offset 11665 */ "\xe7\xa6\x8d\0" /* offset 11669 */ "\xe7\xa6\x8e\0" /* offset 11673 */ "\xe7\xa9\x80\0" /* offset 11677 */ "\xe7\xaa\x81\0" /* offset 11681 */ "\xe7\xaf\x80\0" /* offset 11685 */ "\xe7\xb8\x89\0" /* offset 11689 */ "\xe7\xb9\x81\0" /* offset 11693 */ "\xe7\xbd\xb2\0" /* offset 11697 */ "\xe8\x80\x85\0" /* offset 11701 */ "\xe8\x87\xad\0" /* offset 11705 */ "\xe8\x89\xb9\0" /* offset 11709 */ "\xe8\x91\x97\0" /* offset 11713 */ "\xe8\xa4\x90\0" /* offset 11717 */ "\xe8\xa6\x96\0" /* offset 11721 */ "\xe8\xac\x81\0" /* offset 11725 */ "\xe8\xac\xb9\0" /* offset 11729 */ "\xe8\xb3\x93\0" /* offset 11733 */ "\xe8\xb4\x88\0" /* offset 11737 */ "\xe8\xbe\xb6\0" /* offset 11741 */ "\xe9\x9b\xa3\0" /* offset 11745 */ "\xe9\x9f\xbf\0" /* offset 11749 */ "\xe9\xa0\xbb\0" /* offset 11753 */ "\x66\x66\0" /* offset 11757 */ "\x66\x69\0" /* offset 11760 */ "\x66\x6c\0" /* offset 11763 */ "\x66\x66\x69\0" /* offset 11766 */ "\x66\x66\x6c\0" /* offset 11770 */ "\x73\x74\0" /* offset 11774 */ "\xd5\xb4\xd5\xb6\0" /* offset 11777 */ "\xd5\xb4\xd5\xa5\0" /* offset 11782 */ "\xd5\xb4\xd5\xab\0" /* offset 11787 */ "\xd5\xbe\xd5\xb6\0" /* offset 11792 */ "\xd5\xb4\xd5\xad\0" /* offset 11797 */ "\xd7\x99\xd6\xb4\0" /* offset 11802 */ "\xd7\xb2\xd6\xb7\0" /* offset 11807 */ "\xd7\xa2\0" /* offset 11812 */ "\xd7\x94\0" /* offset 11815 */ "\xd7\x9b\0" /* offset 11818 */ "\xd7\x9c\0" /* offset 11821 */ "\xd7\x9d\0" /* offset 11824 */ "\xd7\xa8\0" /* offset 11827 */ "\xd7\xaa\0" /* offset 11830 */ "\xd7\xa9\xd7\x81\0" /* offset 11833 */ "\xd7\xa9\xd7\x82\0" /* offset 11838 */ "\xd7\xa9\xd6\xbc\xd7\x81\0" /* offset 11843 */ "\xd7\xa9\xd6\xbc\xd7\x82\0" /* offset 11850 */ "\xd7\x90\xd6\xb7\0" /* offset 11857 */ "\xd7\x90\xd6\xb8\0" /* offset 11862 */ "\xd7\x90\xd6\xbc\0" /* offset 11867 */ "\xd7\x91\xd6\xbc\0" /* offset 11872 */ "\xd7\x92\xd6\xbc\0" /* offset 11877 */ "\xd7\x93\xd6\xbc\0" /* offset 11882 */ "\xd7\x94\xd6\xbc\0" /* offset 11887 */ "\xd7\x95\xd6\xbc\0" /* offset 11892 */ "\xd7\x96\xd6\xbc\0" /* offset 11897 */ "\xd7\x98\xd6\xbc\0" /* offset 11902 */ "\xd7\x99\xd6\xbc\0" /* offset 11907 */ "\xd7\x9a\xd6\xbc\0" /* offset 11912 */ "\xd7\x9b\xd6\xbc\0" /* offset 11917 */ "\xd7\x9c\xd6\xbc\0" /* offset 11922 */ "\xd7\x9e\xd6\xbc\0" /* offset 11927 */ "\xd7\xa0\xd6\xbc\0" /* offset 11932 */ "\xd7\xa1\xd6\xbc\0" /* offset 11937 */ "\xd7\xa3\xd6\xbc\0" /* offset 11942 */ "\xd7\xa4\xd6\xbc\0" /* offset 11947 */ "\xd7\xa6\xd6\xbc\0" /* offset 11952 */ "\xd7\xa7\xd6\xbc\0" /* offset 11957 */ "\xd7\xa8\xd6\xbc\0" /* offset 11962 */ "\xd7\xa9\xd6\xbc\0" /* offset 11967 */ "\xd7\xaa\xd6\xbc\0" /* offset 11972 */ "\xd7\x95\xd6\xb9\0" /* offset 11977 */ "\xd7\x91\xd6\xbf\0" /* offset 11982 */ "\xd7\x9b\xd6\xbf\0" /* offset 11987 */ "\xd7\xa4\xd6\xbf\0" /* offset 11992 */ "\xd7\x90\xd7\x9c\0" /* offset 11997 */ "\xd9\xb1\0" /* offset 12002 */ "\xd9\xbb\0" /* offset 12005 */ "\xd9\xbe\0" /* offset 12008 */ "\xda\x80\0" /* offset 12011 */ "\xd9\xba\0" /* offset 12014 */ "\xd9\xbf\0" /* offset 12017 */ "\xd9\xb9\0" /* offset 12020 */ "\xda\xa4\0" /* offset 12023 */ "\xda\xa6\0" /* offset 12026 */ "\xda\x84\0" /* offset 12029 */ "\xda\x83\0" /* offset 12032 */ "\xda\x86\0" /* offset 12035 */ "\xda\x87\0" /* offset 12038 */ "\xda\x8d\0" /* offset 12041 */ "\xda\x8c\0" /* offset 12044 */ "\xda\x8e\0" /* offset 12047 */ "\xda\x88\0" /* offset 12050 */ "\xda\x98\0" /* offset 12053 */ "\xda\x91\0" /* offset 12056 */ "\xda\xa9\0" /* offset 12059 */ "\xda\xaf\0" /* offset 12062 */ "\xda\xb3\0" /* offset 12065 */ "\xda\xb1\0" /* offset 12068 */ "\xda\xba\0" /* offset 12071 */ "\xda\xbb\0" /* offset 12074 */ "\xdb\x81\0" /* offset 12077 */ "\xda\xbe\0" /* offset 12080 */ "\xdb\x92\0" /* offset 12083 */ "\xda\xad\0" /* offset 12086 */ "\xdb\x87\0" /* offset 12089 */ "\xdb\x86\0" /* offset 12092 */ "\xdb\x88\0" /* offset 12095 */ "\xdb\x8b\0" /* offset 12098 */ "\xdb\x85\0" /* offset 12101 */ "\xdb\x89\0" /* offset 12104 */ "\xdb\x90\0" /* offset 12107 */ "\xd9\x89\0" /* offset 12110 */ "\xd9\x8a\xd9\x94\xd8\xa7\0" /* offset 12113 */ "\xd9\x8a\xd9\x94\xdb\x95\0" /* offset 12120 */ "\xd9\x8a\xd9\x94\xd9\x88\0" /* offset 12127 */ "\xd9\x8a\xd9\x94\xdb\x87\0" /* offset 12134 */ "\xd9\x8a\xd9\x94\xdb\x86\0" /* offset 12141 */ "\xd9\x8a\xd9\x94\xdb\x88\0" /* offset 12148 */ "\xd9\x8a\xd9\x94\xdb\x90\0" /* offset 12155 */ "\xd9\x8a\xd9\x94\xd9\x89\0" /* offset 12162 */ "\xdb\x8c\0" /* offset 12169 */ "\xd9\x8a\xd9\x94\xd8\xac\0" /* offset 12172 */ "\xd9\x8a\xd9\x94\xd8\xad\0" /* offset 12179 */ "\xd9\x8a\xd9\x94\xd9\x85\0" /* offset 12186 */ "\xd9\x8a\xd9\x94\xd9\x8a\0" /* offset 12193 */ "\xd8\xa8\xd8\xac\0" /* offset 12200 */ "\xd8\xa8\xd8\xad\0" /* offset 12205 */ "\xd8\xa8\xd8\xae\0" /* offset 12210 */ "\xd8\xa8\xd9\x85\0" /* offset 12215 */ "\xd8\xa8\xd9\x89\0" /* offset 12220 */ "\xd8\xa8\xd9\x8a\0" /* offset 12225 */ "\xd8\xaa\xd8\xac\0" /* offset 12230 */ "\xd8\xaa\xd8\xad\0" /* offset 12235 */ "\xd8\xaa\xd8\xae\0" /* offset 12240 */ "\xd8\xaa\xd9\x85\0" /* offset 12245 */ "\xd8\xaa\xd9\x89\0" /* offset 12250 */ "\xd8\xaa\xd9\x8a\0" /* offset 12255 */ "\xd8\xab\xd8\xac\0" /* offset 12260 */ "\xd8\xab\xd9\x85\0" /* offset 12265 */ "\xd8\xab\xd9\x89\0" /* offset 12270 */ "\xd8\xab\xd9\x8a\0" /* offset 12275 */ "\xd8\xac\xd8\xad\0" /* offset 12280 */ "\xd8\xac\xd9\x85\0" /* offset 12285 */ "\xd8\xad\xd8\xac\0" /* offset 12290 */ "\xd8\xad\xd9\x85\0" /* offset 12295 */ "\xd8\xae\xd8\xac\0" /* offset 12300 */ "\xd8\xae\xd8\xad\0" /* offset 12305 */ "\xd8\xae\xd9\x85\0" /* offset 12310 */ "\xd8\xb3\xd8\xac\0" /* offset 12315 */ "\xd8\xb3\xd8\xad\0" /* offset 12320 */ "\xd8\xb3\xd8\xae\0" /* offset 12325 */ "\xd8\xb3\xd9\x85\0" /* offset 12330 */ "\xd8\xb5\xd8\xad\0" /* offset 12335 */ "\xd8\xb5\xd9\x85\0" /* offset 12340 */ "\xd8\xb6\xd8\xac\0" /* offset 12345 */ "\xd8\xb6\xd8\xad\0" /* offset 12350 */ "\xd8\xb6\xd8\xae\0" /* offset 12355 */ "\xd8\xb6\xd9\x85\0" /* offset 12360 */ "\xd8\xb7\xd8\xad\0" /* offset 12365 */ "\xd8\xb7\xd9\x85\0" /* offset 12370 */ "\xd8\xb8\xd9\x85\0" /* offset 12375 */ "\xd8\xb9\xd8\xac\0" /* offset 12380 */ "\xd8\xb9\xd9\x85\0" /* offset 12385 */ "\xd8\xba\xd8\xac\0" /* offset 12390 */ "\xd8\xba\xd9\x85\0" /* offset 12395 */ "\xd9\x81\xd8\xac\0" /* offset 12400 */ "\xd9\x81\xd8\xad\0" /* offset 12405 */ "\xd9\x81\xd8\xae\0" /* offset 12410 */ "\xd9\x81\xd9\x85\0" /* offset 12415 */ "\xd9\x81\xd9\x89\0" /* offset 12420 */ "\xd9\x81\xd9\x8a\0" /* offset 12425 */ "\xd9\x82\xd8\xad\0" /* offset 12430 */ "\xd9\x82\xd9\x85\0" /* offset 12435 */ "\xd9\x82\xd9\x89\0" /* offset 12440 */ "\xd9\x82\xd9\x8a\0" /* offset 12445 */ "\xd9\x83\xd8\xa7\0" /* offset 12450 */ "\xd9\x83\xd8\xac\0" /* offset 12455 */ "\xd9\x83\xd8\xad\0" /* offset 12460 */ "\xd9\x83\xd8\xae\0" /* offset 12465 */ "\xd9\x83\xd9\x84\0" /* offset 12470 */ "\xd9\x83\xd9\x85\0" /* offset 12475 */ "\xd9\x83\xd9\x89\0" /* offset 12480 */ "\xd9\x83\xd9\x8a\0" /* offset 12485 */ "\xd9\x84\xd8\xac\0" /* offset 12490 */ "\xd9\x84\xd8\xad\0" /* offset 12495 */ "\xd9\x84\xd8\xae\0" /* offset 12500 */ "\xd9\x84\xd9\x85\0" /* offset 12505 */ "\xd9\x84\xd9\x89\0" /* offset 12510 */ "\xd9\x84\xd9\x8a\0" /* offset 12515 */ "\xd9\x85\xd8\xac\0" /* offset 12520 */ "\xd9\x85\xd8\xad\0" /* offset 12525 */ "\xd9\x85\xd8\xae\0" /* offset 12530 */ "\xd9\x85\xd9\x85\0" /* offset 12535 */ "\xd9\x85\xd9\x89\0" /* offset 12540 */ "\xd9\x85\xd9\x8a\0" /* offset 12545 */ "\xd9\x86\xd8\xac\0" /* offset 12550 */ "\xd9\x86\xd8\xad\0" /* offset 12555 */ "\xd9\x86\xd8\xae\0" /* offset 12560 */ "\xd9\x86\xd9\x85\0" /* offset 12565 */ "\xd9\x86\xd9\x89\0" /* offset 12570 */ "\xd9\x86\xd9\x8a\0" /* offset 12575 */ "\xd9\x87\xd8\xac\0" /* offset 12580 */ "\xd9\x87\xd9\x85\0" /* offset 12585 */ "\xd9\x87\xd9\x89\0" /* offset 12590 */ "\xd9\x87\xd9\x8a\0" /* offset 12595 */ "\xd9\x8a\xd8\xac\0" /* offset 12600 */ "\xd9\x8a\xd8\xad\0" /* offset 12605 */ "\xd9\x8a\xd8\xae\0" /* offset 12610 */ "\xd9\x8a\xd9\x85\0" /* offset 12615 */ "\xd9\x8a\xd9\x89\0" /* offset 12620 */ "\xd9\x8a\xd9\x8a\0" /* offset 12625 */ "\xd8\xb0\xd9\xb0\0" /* offset 12630 */ "\xd8\xb1\xd9\xb0\0" /* offset 12635 */ "\xd9\x89\xd9\xb0\0" /* offset 12640 */ "\x20\xd9\x8c\xd9\x91\0" /* offset 12645 */ "\x20\xd9\x8d\xd9\x91\0" /* offset 12651 */ "\x20\xd9\x8e\xd9\x91\0" /* offset 12657 */ "\x20\xd9\x8f\xd9\x91\0" /* offset 12663 */ "\x20\xd9\x90\xd9\x91\0" /* offset 12669 */ "\x20\xd9\x91\xd9\xb0\0" /* offset 12675 */ "\xd9\x8a\xd9\x94\xd8\xb1\0" /* offset 12681 */ "\xd9\x8a\xd9\x94\xd8\xb2\0" /* offset 12688 */ "\xd9\x8a\xd9\x94\xd9\x86\0" /* offset 12695 */ "\xd8\xa8\xd8\xb1\0" /* offset 12702 */ "\xd8\xa8\xd8\xb2\0" /* offset 12707 */ "\xd8\xa8\xd9\x86\0" /* offset 12712 */ "\xd8\xaa\xd8\xb1\0" /* offset 12717 */ "\xd8\xaa\xd8\xb2\0" /* offset 12722 */ "\xd8\xaa\xd9\x86\0" /* offset 12727 */ "\xd8\xab\xd8\xb1\0" /* offset 12732 */ "\xd8\xab\xd8\xb2\0" /* offset 12737 */ "\xd8\xab\xd9\x86\0" /* offset 12742 */ "\xd9\x85\xd8\xa7\0" /* offset 12747 */ "\xd9\x86\xd8\xb1\0" /* offset 12752 */ "\xd9\x86\xd8\xb2\0" /* offset 12757 */ "\xd9\x86\xd9\x86\0" /* offset 12762 */ "\xd9\x8a\xd8\xb1\0" /* offset 12767 */ "\xd9\x8a\xd8\xb2\0" /* offset 12772 */ "\xd9\x8a\xd9\x86\0" /* offset 12777 */ "\xd9\x8a\xd9\x94\xd8\xae\0" /* offset 12782 */ "\xd9\x8a\xd9\x94\xd9\x87\0" /* offset 12789 */ "\xd8\xa8\xd9\x87\0" /* offset 12796 */ "\xd8\xaa\xd9\x87\0" /* offset 12801 */ "\xd8\xb5\xd8\xae\0" /* offset 12806 */ "\xd9\x84\xd9\x87\0" /* offset 12811 */ "\xd9\x86\xd9\x87\0" /* offset 12816 */ "\xd9\x87\xd9\xb0\0" /* offset 12821 */ "\xd9\x8a\xd9\x87\0" /* offset 12826 */ "\xd8\xab\xd9\x87\0" /* offset 12831 */ "\xd8\xb3\xd9\x87\0" /* offset 12836 */ "\xd8\xb4\xd9\x85\0" /* offset 12841 */ "\xd8\xb4\xd9\x87\0" /* offset 12846 */ "\xd9\x80\xd9\x8e\xd9\x91\0" /* offset 12851 */ "\xd9\x80\xd9\x8f\xd9\x91\0" /* offset 12858 */ "\xd9\x80\xd9\x90\xd9\x91\0" /* offset 12865 */ "\xd8\xb7\xd9\x89\0" /* offset 12872 */ "\xd8\xb7\xd9\x8a\0" /* offset 12877 */ "\xd8\xb9\xd9\x89\0" /* offset 12882 */ "\xd8\xb9\xd9\x8a\0" /* offset 12887 */ "\xd8\xba\xd9\x89\0" /* offset 12892 */ "\xd8\xba\xd9\x8a\0" /* offset 12897 */ "\xd8\xb3\xd9\x89\0" /* offset 12902 */ "\xd8\xb3\xd9\x8a\0" /* offset 12907 */ "\xd8\xb4\xd9\x89\0" /* offset 12912 */ "\xd8\xb4\xd9\x8a\0" /* offset 12917 */ "\xd8\xad\xd9\x89\0" /* offset 12922 */ "\xd8\xad\xd9\x8a\0" /* offset 12927 */ "\xd8\xac\xd9\x89\0" /* offset 12932 */ "\xd8\xac\xd9\x8a\0" /* offset 12937 */ "\xd8\xae\xd9\x89\0" /* offset 12942 */ "\xd8\xae\xd9\x8a\0" /* offset 12947 */ "\xd8\xb5\xd9\x89\0" /* offset 12952 */ "\xd8\xb5\xd9\x8a\0" /* offset 12957 */ "\xd8\xb6\xd9\x89\0" /* offset 12962 */ "\xd8\xb6\xd9\x8a\0" /* offset 12967 */ "\xd8\xb4\xd8\xac\0" /* offset 12972 */ "\xd8\xb4\xd8\xad\0" /* offset 12977 */ "\xd8\xb4\xd8\xae\0" /* offset 12982 */ "\xd8\xb4\xd8\xb1\0" /* offset 12987 */ "\xd8\xb3\xd8\xb1\0" /* offset 12992 */ "\xd8\xb5\xd8\xb1\0" /* offset 12997 */ "\xd8\xb6\xd8\xb1\0" /* offset 13002 */ "\xd8\xa7\xd9\x8b\0" /* offset 13007 */ "\xd8\xaa\xd8\xac\xd9\x85\0" /* offset 13012 */ "\xd8\xaa\xd8\xad\xd8\xac\0" /* offset 13019 */ "\xd8\xaa\xd8\xad\xd9\x85\0" /* offset 13026 */ "\xd8\xaa\xd8\xae\xd9\x85\0" /* offset 13033 */ "\xd8\xaa\xd9\x85\xd8\xac\0" /* offset 13040 */ "\xd8\xaa\xd9\x85\xd8\xad\0" /* offset 13047 */ "\xd8\xaa\xd9\x85\xd8\xae\0" /* offset 13054 */ "\xd8\xac\xd9\x85\xd8\xad\0" /* offset 13061 */ "\xd8\xad\xd9\x85\xd9\x8a\0" /* offset 13068 */ "\xd8\xad\xd9\x85\xd9\x89\0" /* offset 13075 */ "\xd8\xb3\xd8\xad\xd8\xac\0" /* offset 13082 */ "\xd8\xb3\xd8\xac\xd8\xad\0" /* offset 13089 */ "\xd8\xb3\xd8\xac\xd9\x89\0" /* offset 13096 */ "\xd8\xb3\xd9\x85\xd8\xad\0" /* offset 13103 */ "\xd8\xb3\xd9\x85\xd8\xac\0" /* offset 13110 */ "\xd8\xb3\xd9\x85\xd9\x85\0" /* offset 13117 */ "\xd8\xb5\xd8\xad\xd8\xad\0" /* offset 13124 */ "\xd8\xb5\xd9\x85\xd9\x85\0" /* offset 13131 */ "\xd8\xb4\xd8\xad\xd9\x85\0" /* offset 13138 */ "\xd8\xb4\xd8\xac\xd9\x8a\0" /* offset 13145 */ "\xd8\xb4\xd9\x85\xd8\xae\0" /* offset 13152 */ "\xd8\xb4\xd9\x85\xd9\x85\0" /* offset 13159 */ "\xd8\xb6\xd8\xad\xd9\x89\0" /* offset 13166 */ "\xd8\xb6\xd8\xae\xd9\x85\0" /* offset 13173 */ "\xd8\xb7\xd9\x85\xd8\xad\0" /* offset 13180 */ "\xd8\xb7\xd9\x85\xd9\x85\0" /* offset 13187 */ "\xd8\xb7\xd9\x85\xd9\x8a\0" /* offset 13194 */ "\xd8\xb9\xd8\xac\xd9\x85\0" /* offset 13201 */ "\xd8\xb9\xd9\x85\xd9\x85\0" /* offset 13208 */ "\xd8\xb9\xd9\x85\xd9\x89\0" /* offset 13215 */ "\xd8\xba\xd9\x85\xd9\x85\0" /* offset 13222 */ "\xd8\xba\xd9\x85\xd9\x8a\0" /* offset 13229 */ "\xd8\xba\xd9\x85\xd9\x89\0" /* offset 13236 */ "\xd9\x81\xd8\xae\xd9\x85\0" /* offset 13243 */ "\xd9\x82\xd9\x85\xd8\xad\0" /* offset 13250 */ "\xd9\x82\xd9\x85\xd9\x85\0" /* offset 13257 */ "\xd9\x84\xd8\xad\xd9\x85\0" /* offset 13264 */ "\xd9\x84\xd8\xad\xd9\x8a\0" /* offset 13271 */ "\xd9\x84\xd8\xad\xd9\x89\0" /* offset 13278 */ "\xd9\x84\xd8\xac\xd8\xac\0" /* offset 13285 */ "\xd9\x84\xd8\xae\xd9\x85\0" /* offset 13292 */ "\xd9\x84\xd9\x85\xd8\xad\0" /* offset 13299 */ "\xd9\x85\xd8\xad\xd8\xac\0" /* offset 13306 */ "\xd9\x85\xd8\xad\xd9\x85\0" /* offset 13313 */ "\xd9\x85\xd8\xad\xd9\x8a\0" /* offset 13320 */ "\xd9\x85\xd8\xac\xd8\xad\0" /* offset 13327 */ "\xd9\x85\xd8\xac\xd9\x85\0" /* offset 13334 */ "\xd9\x85\xd8\xae\xd8\xac\0" /* offset 13341 */ "\xd9\x85\xd8\xae\xd9\x85\0" /* offset 13348 */ "\xd9\x85\xd8\xac\xd8\xae\0" /* offset 13355 */ "\xd9\x87\xd9\x85\xd8\xac\0" /* offset 13362 */ "\xd9\x87\xd9\x85\xd9\x85\0" /* offset 13369 */ "\xd9\x86\xd8\xad\xd9\x85\0" /* offset 13376 */ "\xd9\x86\xd8\xad\xd9\x89\0" /* offset 13383 */ "\xd9\x86\xd8\xac\xd9\x85\0" /* offset 13390 */ "\xd9\x86\xd8\xac\xd9\x89\0" /* offset 13397 */ "\xd9\x86\xd9\x85\xd9\x8a\0" /* offset 13404 */ "\xd9\x86\xd9\x85\xd9\x89\0" /* offset 13411 */ "\xd9\x8a\xd9\x85\xd9\x85\0" /* offset 13418 */ "\xd8\xa8\xd8\xae\xd9\x8a\0" /* offset 13425 */ "\xd8\xaa\xd8\xac\xd9\x8a\0" /* offset 13432 */ "\xd8\xaa\xd8\xac\xd9\x89\0" /* offset 13439 */ "\xd8\xaa\xd8\xae\xd9\x8a\0" /* offset 13446 */ "\xd8\xaa\xd8\xae\xd9\x89\0" /* offset 13453 */ "\xd8\xaa\xd9\x85\xd9\x8a\0" /* offset 13460 */ "\xd8\xaa\xd9\x85\xd9\x89\0" /* offset 13467 */ "\xd8\xac\xd9\x85\xd9\x8a\0" /* offset 13474 */ "\xd8\xac\xd8\xad\xd9\x89\0" /* offset 13481 */ "\xd8\xac\xd9\x85\xd9\x89\0" /* offset 13488 */ "\xd8\xb3\xd8\xae\xd9\x89\0" /* offset 13495 */ "\xd8\xb5\xd8\xad\xd9\x8a\0" /* offset 13502 */ "\xd8\xb4\xd8\xad\xd9\x8a\0" /* offset 13509 */ "\xd8\xb6\xd8\xad\xd9\x8a\0" /* offset 13516 */ "\xd9\x84\xd8\xac\xd9\x8a\0" /* offset 13523 */ "\xd9\x84\xd9\x85\xd9\x8a\0" /* offset 13530 */ "\xd9\x8a\xd8\xad\xd9\x8a\0" /* offset 13537 */ "\xd9\x8a\xd8\xac\xd9\x8a\0" /* offset 13544 */ "\xd9\x8a\xd9\x85\xd9\x8a\0" /* offset 13551 */ "\xd9\x85\xd9\x85\xd9\x8a\0" /* offset 13558 */ "\xd9\x82\xd9\x85\xd9\x8a\0" /* offset 13565 */ "\xd9\x86\xd8\xad\xd9\x8a\0" /* offset 13572 */ "\xd8\xb9\xd9\x85\xd9\x8a\0" /* offset 13579 */ "\xd9\x83\xd9\x85\xd9\x8a\0" /* offset 13586 */ "\xd9\x86\xd8\xac\xd8\xad\0" /* offset 13593 */ "\xd9\x85\xd8\xae\xd9\x8a\0" /* offset 13600 */ "\xd9\x84\xd8\xac\xd9\x85\0" /* offset 13607 */ "\xd9\x83\xd9\x85\xd9\x85\0" /* offset 13614 */ "\xd8\xac\xd8\xad\xd9\x8a\0" /* offset 13621 */ "\xd8\xad\xd8\xac\xd9\x8a\0" /* offset 13628 */ "\xd9\x85\xd8\xac\xd9\x8a\0" /* offset 13635 */ "\xd9\x81\xd9\x85\xd9\x8a\0" /* offset 13642 */ "\xd8\xa8\xd8\xad\xd9\x8a\0" /* offset 13649 */ "\xd8\xb3\xd8\xae\xd9\x8a\0" /* offset 13656 */ "\xd9\x86\xd8\xac\xd9\x8a\0" /* offset 13663 */ "\xd8\xb5\xd9\x84\xdb\x92\0" /* offset 13670 */ "\xd9\x82\xd9\x84\xdb\x92\0" /* offset 13677 */ "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\0" /* offset 13684 */ "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1\0" /* offset 13693 */ "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf\0" /* offset 13702 */ "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85\0" /* offset 13711 */ "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84\0" /* offset 13720 */ "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\0" /* offset 13729 */ "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 13738 */ "\xd8\xb5\xd9\x84\xd9\x89\0" /* offset 13747 */ "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 13754 */ "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87\0" /* offset 13788 */ "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\0" /* offset 13804 */ "\xe2\x80\x94\0" /* offset 13813 */ "\xe2\x80\x93\0" /* offset 13817 */ "\x5f\0" /* offset 13821 */ "\x7b\0" /* offset 13823 */ "\x7d\0" /* offset 13825 */ "\xe3\x80\x94\0" /* offset 13827 */ "\xe3\x80\x95\0" /* offset 13831 */ "\xe3\x80\x90\0" /* offset 13835 */ "\xe3\x80\x91\0" /* offset 13839 */ "\xe3\x80\x8a\0" /* offset 13843 */ "\xe3\x80\x8b\0" /* offset 13847 */ "\xe3\x80\x8c\0" /* offset 13851 */ "\xe3\x80\x8d\0" /* offset 13855 */ "\xe3\x80\x8e\0" /* offset 13859 */ "\xe3\x80\x8f\0" /* offset 13863 */ "\x2c\0" /* offset 13867 */ "\xe3\x80\x81\0" /* offset 13869 */ "\x3a\0" /* offset 13873 */ "\x3f\0" /* offset 13875 */ "\x21\0" /* offset 13877 */ "\x23\0" /* offset 13879 */ "\x26\0" /* offset 13881 */ "\x2a\0" /* offset 13883 */ "\x2d\0" /* offset 13885 */ "\x3c\0" /* offset 13887 */ "\x3e\0" /* offset 13889 */ "\x5c\0" /* offset 13891 */ "\x24\0" /* offset 13893 */ "\x25\0" /* offset 13895 */ "\x40\0" /* offset 13897 */ "\x20\xd9\x8b\0" /* offset 13899 */ "\xd9\x80\xd9\x8b\0" /* offset 13903 */ "\x20\xd9\x8c\0" /* offset 13908 */ "\x20\xd9\x8d\0" /* offset 13912 */ "\x20\xd9\x8e\0" /* offset 13916 */ "\xd9\x80\xd9\x8e\0" /* offset 13920 */ "\x20\xd9\x8f\0" /* offset 13925 */ "\xd9\x80\xd9\x8f\0" /* offset 13929 */ "\x20\xd9\x90\0" /* offset 13934 */ "\xd9\x80\xd9\x90\0" /* offset 13938 */ "\x20\xd9\x91\0" /* offset 13943 */ "\xd9\x80\xd9\x91\0" /* offset 13947 */ "\x20\xd9\x92\0" /* offset 13952 */ "\xd9\x80\xd9\x92\0" /* offset 13956 */ "\xd8\xa1\0" /* offset 13961 */ "\xd8\xa7\0" /* offset 13964 */ "\xd8\xa8\0" /* offset 13967 */ "\xd8\xa9\0" /* offset 13970 */ "\xd8\xaa\0" /* offset 13973 */ "\xd8\xab\0" /* offset 13976 */ "\xd8\xac\0" /* offset 13979 */ "\xd8\xad\0" /* offset 13982 */ "\xd8\xae\0" /* offset 13985 */ "\xd8\xaf\0" /* offset 13988 */ "\xd8\xb0\0" /* offset 13991 */ "\xd8\xb1\0" /* offset 13994 */ "\xd8\xb2\0" /* offset 13997 */ "\xd8\xb3\0" /* offset 14000 */ "\xd8\xb4\0" /* offset 14003 */ "\xd8\xb5\0" /* offset 14006 */ "\xd8\xb6\0" /* offset 14009 */ "\xd8\xb7\0" /* offset 14012 */ "\xd8\xb8\0" /* offset 14015 */ "\xd8\xb9\0" /* offset 14018 */ "\xd8\xba\0" /* offset 14021 */ "\xd9\x81\0" /* offset 14024 */ "\xd9\x82\0" /* offset 14027 */ "\xd9\x83\0" /* offset 14030 */ "\xd9\x84\0" /* offset 14033 */ "\xd9\x85\0" /* offset 14036 */ "\xd9\x86\0" /* offset 14039 */ "\xd9\x87\0" /* offset 14042 */ "\xd9\x88\0" /* offset 14045 */ "\xd9\x8a\0" /* offset 14048 */ "\xd9\x84\xd8\xa7\xd9\x93\0" /* offset 14051 */ "\xd9\x84\xd8\xa7\xd9\x94\0" /* offset 14058 */ "\xd9\x84\xd8\xa7\xd9\x95\0" /* offset 14065 */ "\xd9\x84\xd8\xa7\0" /* offset 14072 */ "\x22\0" /* offset 14077 */ "\x27\0" /* offset 14079 */ "\x2f\0" /* offset 14081 */ "\x5b\0" /* offset 14083 */ "\x5d\0" /* offset 14085 */ "\x5e\0" /* offset 14087 */ "\x7c\0" /* offset 14089 */ "\x7e\0" /* offset 14091 */ "\xe2\xa6\x85\0" /* offset 14093 */ "\xe2\xa6\x86\0" /* offset 14097 */ "\xe3\x80\x82\0" /* offset 14101 */ "\xe3\x83\xbb\0" /* offset 14105 */ "\xe3\x82\xa1\0" /* offset 14109 */ "\xe3\x82\xa3\0" /* offset 14113 */ "\xe3\x82\xa5\0" /* offset 14117 */ "\xe3\x82\xa7\0" /* offset 14121 */ "\xe3\x82\xa9\0" /* offset 14125 */ "\xe3\x83\xa3\0" /* offset 14129 */ "\xe3\x83\xa5\0" /* offset 14133 */ "\xe3\x83\xa7\0" /* offset 14137 */ "\xe3\x83\x83\0" /* offset 14141 */ "\xe3\x83\xbc\0" /* offset 14145 */ "\xe3\x83\xb3\0" /* offset 14149 */ "\xe3\x82\x99\0" /* offset 14153 */ "\xe3\x82\x9a\0" /* offset 14157 */ "\xc2\xa2\0" /* offset 14161 */ "\xc2\xa3\0" /* offset 14164 */ "\xc2\xac\0" /* offset 14167 */ "\xc2\xa6\0" /* offset 14170 */ "\xc2\xa5\0" /* offset 14173 */ "\xe2\x82\xa9\0" /* offset 14176 */ "\xe2\x94\x82\0" /* offset 14180 */ "\xe2\x86\x90\0" /* offset 14184 */ "\xe2\x86\x91\0" /* offset 14188 */ "\xe2\x86\x92\0" /* offset 14192 */ "\xe2\x86\x93\0" /* offset 14196 */ "\xe2\x96\xa0\0" /* offset 14200 */ "\xe2\x97\x8b\0" /* offset 14204 */ "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5\0" /* offset 14208 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\0" /* offset 14217 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14226 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14239 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0\0" /* offset 14252 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1\0" /* offset 14265 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2\0" /* offset 14278 */ "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\0" /* offset 14291 */ "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\0" /* offset 14300 */ "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14309 */ "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14322 */ "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14335 */ "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14348 */ "\xce\x91\0" /* offset 14361 */ "\xce\x92\0" /* offset 14364 */ "\xce\x94\0" /* offset 14367 */ "\xce\x95\0" /* offset 14370 */ "\xce\x96\0" /* offset 14373 */ "\xce\x97\0" /* offset 14376 */ "\xce\x99\0" /* offset 14379 */ "\xce\x9a\0" /* offset 14382 */ "\xce\x9b\0" /* offset 14385 */ "\xce\x9c\0" /* offset 14388 */ "\xce\x9d\0" /* offset 14391 */ "\xce\x9e\0" /* offset 14394 */ "\xce\x9f\0" /* offset 14397 */ "\xce\xa1\0" /* offset 14400 */ "\xce\xa3\0" /* offset 14403 */ "\xce\xa4\0" /* offset 14406 */ "\xce\xa6\0" /* offset 14409 */ "\xce\xa7\0" /* offset 14412 */ "\xce\xa8\0" /* offset 14415 */ "\xe2\x88\x87\0" /* offset 14418 */ "\xce\xb1\0" /* offset 14422 */ "\xce\xb4\0" /* offset 14425 */ "\xce\xb6\0" /* offset 14428 */ "\xce\xb7\0" /* offset 14431 */ "\xce\xbb\0" /* offset 14434 */ "\xce\xbd\0" /* offset 14437 */ "\xce\xbe\0" /* offset 14440 */ "\xce\xbf\0" /* offset 14443 */ "\xcf\x83\0" /* offset 14446 */ "\xcf\x84\0" /* offset 14449 */ "\xcf\x85\0" /* offset 14452 */ "\xcf\x87\0" /* offset 14455 */ "\xcf\x88\0" /* offset 14458 */ "\xcf\x89\0" /* offset 14461 */ "\xe2\x88\x82\0" /* offset 14464 */ "\xe4\xb8\xbd\0" /* offset 14468 */ "\xe4\xb8\xb8\0" /* offset 14472 */ "\xe4\xb9\x81\0" /* offset 14476 */ "\xf0\xa0\x84\xa2\0" /* offset 14480 */ "\xe4\xbd\xa0\0" /* offset 14485 */ "\xe4\xbe\xbb\0" /* offset 14489 */ "\xe5\x80\x82\0" /* offset 14493 */ "\xe5\x81\xba\0" /* offset 14497 */ "\xe5\x82\x99\0" /* offset 14501 */ "\xe5\x83\x8f\0" /* offset 14505 */ "\xe3\x92\x9e\0" /* offset 14509 */ "\xf0\xa0\x98\xba\0" /* offset 14513 */ "\xe5\x85\x94\0" /* offset 14518 */ "\xe5\x85\xa4\0" /* offset 14522 */ "\xe5\x85\xb7\0" /* offset 14526 */ "\xf0\xa0\x94\x9c\0" /* offset 14530 */ "\xe3\x92\xb9\0" /* offset 14535 */ "\xe5\x85\xa7\0" /* offset 14539 */ "\xe5\x86\x8d\0" /* offset 14543 */ "\xf0\xa0\x95\x8b\0" /* offset 14547 */ "\xe5\x86\x97\0" /* offset 14552 */ "\xe5\x86\xa4\0" /* offset 14556 */ "\xe4\xbb\x8c\0" /* offset 14560 */ "\xe5\x86\xac\0" /* offset 14564 */ "\xe5\x86\xb5\0" /* offset 14568 */ "\xf0\xa9\x87\x9f\0" /* offset 14572 */ "\xe5\x88\x83\0" /* offset 14577 */ "\xe3\x93\x9f\0" /* offset 14581 */ "\xe5\x88\xbb\0" /* offset 14585 */ "\xe5\x89\x86\0" /* offset 14589 */ "\xe5\x89\xb2\0" /* offset 14593 */ "\xe5\x89\xb7\0" /* offset 14597 */ "\xe3\x94\x95\0" /* offset 14601 */ "\xe5\x8b\x87\0" /* offset 14605 */ "\xe5\x8b\xba\0" /* offset 14609 */ "\xe5\x8c\x85\0" /* offset 14613 */ "\xe5\x8c\x86\0" /* offset 14617 */ "\xe5\x8d\x89\0" /* offset 14621 */ "\xe5\x8d\x9a\0" /* offset 14625 */ "\xe5\x8d\xb3\0" /* offset 14629 */ "\xe5\x8d\xbd\0" /* offset 14633 */ "\xe5\x8d\xbf\0" /* offset 14637 */ "\xf0\xa0\xa8\xac\0" /* offset 14641 */ "\xe7\x81\xb0\0" /* offset 14646 */ "\xe5\x8f\x8a\0" /* offset 14650 */ "\xe5\x8f\x9f\0" /* offset 14654 */ "\xf0\xa0\xad\xa3\0" /* offset 14658 */ "\xe5\x8f\xab\0" /* offset 14663 */ "\xe5\x8f\xb1\0" /* offset 14667 */ "\xe5\x90\x86\0" /* offset 14671 */ "\xe5\x92\x9e\0" /* offset 14675 */ "\xe5\x90\xb8\0" /* offset 14679 */ "\xe5\x91\x88\0" /* offset 14683 */ "\xe5\x91\xa8\0" /* offset 14687 */ "\xe5\x92\xa2\0" /* offset 14691 */ "\xe5\x93\xb6\0" /* offset 14695 */ "\xe5\x94\x90\0" /* offset 14699 */ "\xe5\x95\x93\0" /* offset 14703 */ "\xe5\x95\xa3\0" /* offset 14707 */ "\xe5\x96\x84\0" /* offset 14711 */ "\xe5\x96\x99\0" /* offset 14715 */ "\xe5\x96\xab\0" /* offset 14719 */ "\xe5\x96\xb3\0" /* offset 14723 */ "\xe5\x97\x82\0" /* offset 14727 */ "\xe5\x9c\x96\0" /* offset 14731 */ "\xe5\x9c\x97\0" /* offset 14735 */ "\xe5\x99\x91\0" /* offset 14739 */ "\xe5\x99\xb4\0" /* offset 14743 */ "\xe5\xa3\xae\0" /* offset 14747 */ "\xe5\x9f\x8e\0" /* offset 14751 */ "\xe5\x9f\xb4\0" /* offset 14755 */ "\xe5\xa0\x8d\0" /* offset 14759 */ "\xe5\x9e\x8b\0" /* offset 14763 */ "\xe5\xa0\xb2\0" /* offset 14767 */ "\xe5\xa0\xb1\0" /* offset 14771 */ "\xe5\xa2\xac\0" /* offset 14775 */ "\xf0\xa1\x93\xa4\0" /* offset 14779 */ "\xe5\xa3\xb2\0" /* offset 14784 */ "\xe5\xa3\xb7\0" /* offset 14788 */ "\xe5\xa4\x86\0" /* offset 14792 */ "\xe5\xa4\x9a\0" /* offset 14796 */ "\xe5\xa4\xa2\0" /* offset 14800 */ "\xe5\xa5\xa2\0" /* offset 14804 */ "\xf0\xa1\x9a\xa8\0" /* offset 14808 */ "\xf0\xa1\x9b\xaa\0" /* offset 14813 */ "\xe5\xa7\xac\0" /* offset 14818 */ "\xe5\xa8\x9b\0" /* offset 14822 */ "\xe5\xa8\xa7\0" /* offset 14826 */ "\xe5\xa7\x98\0" /* offset 14830 */ "\xe5\xa9\xa6\0" /* offset 14834 */ "\xe3\x9b\xae\0" /* offset 14838 */ "\xf0\xa1\x8d\xaa\0" /* offset 14842 */ "\xe5\xac\x88\0" /* offset 14847 */ "\xe5\xac\xbe\0" /* offset 14851 */ "\xf0\xa1\xa7\x88\0" /* offset 14855 */ "\xe5\xaf\x83\0" /* offset 14860 */ "\xe5\xaf\x98\0" /* offset 14864 */ "\xe5\xaf\xb3\0" /* offset 14868 */ "\xf0\xa1\xac\x98\0" /* offset 14872 */ "\xe5\xaf\xbf\0" /* offset 14877 */ "\xe5\xb0\x86\0" /* offset 14881 */ "\xe5\xbc\xb3\0" /* offset 14885 */ "\xe3\x9e\x81\0" /* offset 14889 */ "\xe5\xb1\xa0\0" /* offset 14893 */ "\xe5\xb3\x80\0" /* offset 14897 */ "\xe5\xb2\x8d\0" /* offset 14901 */ "\xf0\xa1\xb7\xa4\0" /* offset 14905 */ "\xe5\xb5\x83\0" /* offset 14910 */ "\xf0\xa1\xb7\xa6\0" /* offset 14914 */ "\xe5\xb5\xae\0" /* offset 14919 */ "\xe5\xb5\xab\0" /* offset 14923 */ "\xe5\xb5\xbc\0" /* offset 14927 */ "\xe5\xb7\xa1\0" /* offset 14931 */ "\xe5\xb7\xa2\0" /* offset 14935 */ "\xe3\xa0\xaf\0" /* offset 14939 */ "\xe5\xb7\xbd\0" /* offset 14943 */ "\xe5\xb8\xa8\0" /* offset 14947 */ "\xe5\xb8\xbd\0" /* offset 14951 */ "\xe5\xb9\xa9\0" /* offset 14955 */ "\xe3\xa1\xa2\0" /* offset 14959 */ "\xf0\xa2\x86\x83\0" /* offset 14963 */ "\xe3\xa1\xbc\0" /* offset 14968 */ "\xe5\xba\xb0\0" /* offset 14972 */ "\xe5\xba\xb3\0" /* offset 14976 */ "\xe5\xba\xb6\0" /* offset 14980 */ "\xf0\xaa\x8e\x92\0" /* offset 14984 */ "\xf0\xa2\x8c\xb1\0" /* offset 14989 */ "\xe8\x88\x81\0" /* offset 14994 */ "\xe5\xbc\xa2\0" /* offset 14998 */ "\xe3\xa3\x87\0" /* offset 15002 */ "\xf0\xa3\x8a\xb8\0" /* offset 15006 */ "\xf0\xa6\x87\x9a\0" /* offset 15011 */ "\xe5\xbd\xa2\0" /* offset 15016 */ "\xe5\xbd\xab\0" /* offset 15020 */ "\xe3\xa3\xa3\0" /* offset 15024 */ "\xe5\xbe\x9a\0" /* offset 15028 */ "\xe5\xbf\x8d\0" /* offset 15032 */ "\xe5\xbf\x97\0" /* offset 15036 */ "\xe5\xbf\xb9\0" /* offset 15040 */ "\xe6\x82\x81\0" /* offset 15044 */ "\xe3\xa4\xba\0" /* offset 15048 */ "\xe3\xa4\x9c\0" /* offset 15052 */ "\xf0\xa2\x9b\x94\0" /* offset 15056 */ "\xe6\x83\x87\0" /* offset 15061 */ "\xe6\x85\x88\0" /* offset 15065 */ "\xe6\x85\x8c\0" /* offset 15069 */ "\xe6\x85\x8e\0" /* offset 15073 */ "\xe6\x85\xba\0" /* offset 15077 */ "\xe6\x86\xb2\0" /* offset 15081 */ "\xe6\x86\xa4\0" /* offset 15085 */ "\xe6\x86\xaf\0" /* offset 15089 */ "\xe6\x87\x9e\0" /* offset 15093 */ "\xe6\x88\x90\0" /* offset 15097 */ "\xe6\x88\x9b\0" /* offset 15101 */ "\xe6\x89\x9d\0" /* offset 15105 */ "\xe6\x8a\xb1\0" /* offset 15109 */ "\xe6\x8b\x94\0" /* offset 15113 */ "\xe6\x8d\x90\0" /* offset 15117 */ "\xf0\xa2\xac\x8c\0" /* offset 15121 */ "\xe6\x8c\xbd\0" /* offset 15126 */ "\xe6\x8b\xbc\0" /* offset 15130 */ "\xe6\x8d\xa8\0" /* offset 15134 */ "\xe6\x8e\x83\0" /* offset 15138 */ "\xe6\x8f\xa4\0" /* offset 15142 */ "\xf0\xa2\xaf\xb1\0" /* offset 15146 */ "\xe6\x90\xa2\0" /* offset 15151 */ "\xe6\x8f\x85\0" /* offset 15155 */ "\xe6\x8e\xa9\0" /* offset 15159 */ "\xe3\xa8\xae\0" /* offset 15163 */ "\xe6\x91\xa9\0" /* offset 15167 */ "\xe6\x91\xbe\0" /* offset 15171 */ "\xe6\x92\x9d\0" /* offset 15175 */ "\xe6\x91\xb7\0" /* offset 15179 */ "\xe3\xa9\xac\0" /* offset 15183 */ "\xe6\x95\xac\0" /* offset 15187 */ "\xf0\xa3\x80\x8a\0" /* offset 15191 */ "\xe6\x97\xa3\0" /* offset 15196 */ "\xe6\x9b\xb8\0" /* offset 15200 */ "\xe6\x99\x89\0" /* offset 15204 */ "\xe3\xac\x99\0" /* offset 15208 */ "\xe3\xac\x88\0" /* offset 15212 */ "\xe3\xab\xa4\0" /* offset 15216 */ "\xe5\x86\x92\0" /* offset 15220 */ "\xe5\x86\x95\0" /* offset 15224 */ "\xe6\x9c\x80\0" /* offset 15228 */ "\xe6\x9a\x9c\0" /* offset 15232 */ "\xe8\x82\xad\0" /* offset 15236 */ "\xe4\x8f\x99\0" /* offset 15240 */ "\xe6\x9c\x9b\0" /* offset 15244 */ "\xe6\x9c\xa1\0" /* offset 15248 */ "\xe6\x9d\x9e\0" /* offset 15252 */ "\xe6\x9d\x93\0" /* offset 15256 */ "\xf0\xa3\x8f\x83\0" /* offset 15260 */ "\xe3\xad\x89\0" /* offset 15265 */ "\xe6\x9f\xba\0" /* offset 15269 */ "\xe6\x9e\x85\0" /* offset 15273 */ "\xe6\xa1\x92\0" /* offset 15277 */ "\xf0\xa3\x91\xad\0" /* offset 15281 */ "\xe6\xa2\x8e\0" /* offset 15286 */ "\xe6\xa0\x9f\0" /* offset 15290 */ "\xe6\xa4\x94\0" /* offset 15294 */ "\xe3\xae\x9d\0" /* offset 15298 */ "\xe6\xa5\x82\0" /* offset 15302 */ "\xe6\xa6\xa3\0" /* offset 15306 */ "\xe6\xa7\xaa\0" /* offset 15310 */ "\xe6\xaa\xa8\0" /* offset 15314 */ "\xf0\xa3\x9a\xa3\0" /* offset 15318 */ "\xe6\xab\x9b\0" /* offset 15323 */ "\xe3\xb0\x98\0" /* offset 15327 */ "\xe6\xac\xa1\0" /* offset 15331 */ "\xf0\xa3\xa2\xa7\0" /* offset 15335 */ "\xe6\xad\x94\0" /* offset 15340 */ "\xe3\xb1\x8e\0" /* offset 15344 */ "\xe6\xad\xb2\0" /* offset 15348 */ "\xe6\xae\x9f\0" /* offset 15352 */ "\xe6\xae\xbb\0" /* offset 15356 */ "\xf0\xa3\xaa\x8d\0" /* offset 15360 */ "\xf0\xa1\xb4\x8b\0" /* offset 15365 */ "\xf0\xa3\xab\xba\0" /* offset 15370 */ "\xe6\xb1\x8e\0" /* offset 15375 */ "\xf0\xa3\xb2\xbc\0" /* offset 15379 */ "\xe6\xb2\xbf\0" /* offset 15384 */ "\xe6\xb3\x8d\0" /* offset 15388 */ "\xe6\xb1\xa7\0" /* offset 15392 */ "\xe6\xb4\x96\0" /* offset 15396 */ "\xe6\xb4\xbe\0" /* offset 15400 */ "\xe6\xb5\xa9\0" /* offset 15404 */ "\xe6\xb5\xb8\0" /* offset 15408 */ "\xe6\xb6\x85\0" /* offset 15412 */ "\xf0\xa3\xb4\x9e\0" /* offset 15416 */ "\xe6\xb4\xb4\0" /* offset 15421 */ "\xe6\xb8\xaf\0" /* offset 15425 */ "\xe6\xb9\xae\0" /* offset 15429 */ "\xe3\xb4\xb3\0" /* offset 15433 */ "\xe6\xbb\x8b\0" /* offset 15437 */ "\xe6\xbb\x87\0" /* offset 15441 */ "\xf0\xa3\xbb\x91\0" /* offset 15445 */ "\xe6\xb7\xb9\0" /* offset 15450 */ "\xe6\xbd\xae\0" /* offset 15454 */ "\xf0\xa3\xbd\x9e\0" /* offset 15458 */ "\xf0\xa3\xbe\x8e\0" /* offset 15463 */ "\xe6\xbf\x86\0" /* offset 15468 */ "\xe7\x80\xb9\0" /* offset 15472 */ "\xe7\x80\x9e\0" /* offset 15476 */ "\xe7\x80\x9b\0" /* offset 15480 */ "\xe3\xb6\x96\0" /* offset 15484 */ "\xe7\x81\x8a\0" /* offset 15488 */ "\xe7\x81\xbd\0" /* offset 15492 */ "\xe7\x81\xb7\0" /* offset 15496 */ "\xe7\x82\xad\0" /* offset 15500 */ "\xf0\xa0\x94\xa5\0" /* offset 15504 */ "\xe7\x85\x85\0" /* offset 15509 */ "\xf0\xa4\x89\xa3\0" /* offset 15513 */ "\xe7\x86\x9c\0" /* offset 15518 */ "\xe4\x8e\xab\0" /* offset 15522 */ "\xe7\x88\xa8\0" /* offset 15526 */ "\xe7\x88\xb5\0" /* offset 15530 */ "\xe7\x89\x90\0" /* offset 15534 */ "\xf0\xa4\x98\x88\0" /* offset 15538 */ "\xe7\x8a\x80\0" /* offset 15543 */ "\xe7\x8a\x95\0" /* offset 15547 */ "\xf0\xa4\x9c\xb5\0" /* offset 15551 */ "\xf0\xa4\xa0\x94\0" /* offset 15556 */ "\xe7\x8d\xba\0" /* offset 15561 */ "\xe7\x8e\x8b\0" /* offset 15565 */ "\xe3\xba\xac\0" /* offset 15569 */ "\xe7\x8e\xa5\0" /* offset 15573 */ "\xe3\xba\xb8\0" /* offset 15577 */ "\xe7\x91\x87\0" /* offset 15581 */ "\xe7\x91\x9c\0" /* offset 15585 */ "\xe7\x91\xb1\0" /* offset 15589 */ "\xe7\x92\x85\0" /* offset 15593 */ "\xe7\x93\x8a\0" /* offset 15597 */ "\xe3\xbc\x9b\0" /* offset 15601 */ "\xe7\x94\xa4\0" /* offset 15605 */ "\xf0\xa4\xb0\xb6\0" /* offset 15609 */ "\xe7\x94\xbe\0" /* offset 15614 */ "\xf0\xa4\xb2\x92\0" /* offset 15618 */ "\xf0\xa2\x86\x9f\0" /* offset 15623 */ "\xe7\x98\x90\0" /* offset 15628 */ "\xf0\xa4\xbe\xa1\0" /* offset 15632 */ "\xf0\xa4\xbe\xb8\0" /* offset 15637 */ "\xf0\xa5\x81\x84\0" /* offset 15642 */ "\xe3\xbf\xbc\0" /* offset 15647 */ "\xe4\x80\x88\0" /* offset 15651 */ "\xe7\x9b\xb4\0" /* offset 15655 */ "\xf0\xa5\x83\xb3\0" /* offset 15659 */ "\xf0\xa5\x83\xb2\0" /* offset 15664 */ "\xf0\xa5\x84\x99\0" /* offset 15669 */ "\xf0\xa5\x84\xb3\0" /* offset 15674 */ "\xe7\x9c\x9e\0" /* offset 15679 */ "\xe7\x9c\x9f\0" /* offset 15683 */ "\xe7\x9d\x8a\0" /* offset 15687 */ "\xe4\x80\xb9\0" /* offset 15691 */ "\xe7\x9e\x8b\0" /* offset 15695 */ "\xe4\x81\x86\0" /* offset 15699 */ "\xe4\x82\x96\0" /* offset 15703 */ "\xf0\xa5\x90\x9d\0" /* offset 15707 */ "\xe7\xa1\x8e\0" /* offset 15712 */ "\xe7\xa3\x8c\0" /* offset 15716 */ "\xe4\x83\xa3\0" /* offset 15720 */ "\xf0\xa5\x98\xa6\0" /* offset 15724 */ "\xf0\xa5\x9a\x9a\0" /* offset 15729 */ "\xf0\xa5\x9b\x85\0" /* offset 15734 */ "\xe7\xa7\xab\0" /* offset 15739 */ "\xe4\x84\xaf\0" /* offset 15743 */ "\xe7\xa9\x8a\0" /* offset 15747 */ "\xe7\xa9\x8f\0" /* offset 15751 */ "\xf0\xa5\xa5\xbc\0" /* offset 15755 */ "\xf0\xa5\xaa\xa7\0" /* offset 15760 */ "\xe7\xaa\xae\0" /* offset 15765 */ "\xe4\x88\x82\0" /* offset 15769 */ "\xf0\xa5\xae\xab\0" /* offset 15773 */ "\xe7\xaf\x86\0" /* offset 15778 */ "\xe7\xaf\x89\0" /* offset 15782 */ "\xe4\x88\xa7\0" /* offset 15786 */ "\xf0\xa5\xb2\x80\0" /* offset 15790 */ "\xe7\xb3\x92\0" /* offset 15795 */ "\xe4\x8a\xa0\0" /* offset 15799 */ "\xe7\xb3\xa8\0" /* offset 15803 */ "\xe7\xb3\xa3\0" /* offset 15807 */ "\xe7\xb4\x80\0" /* offset 15811 */ "\xf0\xa5\xbe\x86\0" /* offset 15815 */ "\xe7\xb5\xa3\0" /* offset 15820 */ "\xe4\x8c\x81\0" /* offset 15824 */ "\xe7\xb7\x87\0" /* offset 15828 */ "\xe7\xb8\x82\0" /* offset 15832 */ "\xe7\xb9\x85\0" /* offset 15836 */ "\xe4\x8c\xb4\0" /* offset 15840 */ "\xf0\xa6\x88\xa8\0" /* offset 15844 */ "\xf0\xa6\x89\x87\0" /* offset 15849 */ "\xe4\x8d\x99\0" /* offset 15854 */ "\xf0\xa6\x8b\x99\0" /* offset 15858 */ "\xe7\xbd\xba\0" /* offset 15863 */ "\xf0\xa6\x8c\xbe\0" /* offset 15867 */ "\xe7\xbe\x95\0" /* offset 15872 */ "\xe7\xbf\xba\0" /* offset 15876 */ "\xf0\xa6\x93\x9a\0" /* offset 15880 */ "\xf0\xa6\x94\xa3\0" /* offset 15885 */ "\xe8\x81\xa0\0" /* offset 15890 */ "\xf0\xa6\x96\xa8\0" /* offset 15894 */ "\xe8\x81\xb0\0" /* offset 15899 */ "\xf0\xa3\x8d\x9f\0" /* offset 15903 */ "\xe4\x8f\x95\0" /* offset 15908 */ "\xe8\x82\xb2\0" /* offset 15912 */ "\xe8\x84\x83\0" /* offset 15916 */ "\xe4\x90\x8b\0" /* offset 15920 */ "\xe8\x84\xbe\0" /* offset 15924 */ "\xe5\xaa\xb5\0" /* offset 15928 */ "\xf0\xa6\x9e\xa7\0" /* offset 15932 */ "\xf0\xa6\x9e\xb5\0" /* offset 15937 */ "\xf0\xa3\x8e\x93\0" /* offset 15942 */ "\xf0\xa3\x8e\x9c\0" /* offset 15947 */ "\xe8\x88\x84\0" /* offset 15952 */ "\xe8\xbe\x9e\0" /* offset 15956 */ "\xe4\x91\xab\0" /* offset 15960 */ "\xe8\x8a\x91\0" /* offset 15964 */ "\xe8\x8a\x8b\0" /* offset 15968 */ "\xe8\x8a\x9d\0" /* offset 15972 */ "\xe5\x8a\xb3\0" /* offset 15976 */ "\xe8\x8a\xb1\0" /* offset 15980 */ "\xe8\x8a\xb3\0" /* offset 15984 */ "\xe8\x8a\xbd\0" /* offset 15988 */ "\xe8\x8b\xa6\0" /* offset 15992 */ "\xf0\xa6\xac\xbc\0" /* offset 15996 */ "\xe8\x8c\x9d\0" /* offset 16001 */ "\xe8\x8d\xa3\0" /* offset 16005 */ "\xe8\x8e\xad\0" /* offset 16009 */ "\xe8\x8c\xa3\0" /* offset 16013 */ "\xe8\x8e\xbd\0" /* offset 16017 */ "\xe8\x8f\xa7\0" /* offset 16021 */ "\xe8\x8d\x93\0" /* offset 16025 */ "\xe8\x8f\x8a\0" /* offset 16029 */ "\xe8\x8f\x8c\0" /* offset 16033 */ "\xe8\x8f\x9c\0" /* offset 16037 */ "\xf0\xa6\xb0\xb6\0" /* offset 16041 */ "\xf0\xa6\xb5\xab\0" /* offset 16046 */ "\xf0\xa6\xb3\x95\0" /* offset 16051 */ "\xe4\x94\xab\0" /* offset 16056 */ "\xe8\x93\xb1\0" /* offset 16060 */ "\xe8\x93\xb3\0" /* offset 16064 */ "\xe8\x94\x96\0" /* offset 16068 */ "\xf0\xa7\x8f\x8a\0" /* offset 16072 */ "\xe8\x95\xa4\0" /* offset 16077 */ "\xf0\xa6\xbc\xac\0" /* offset 16081 */ "\xe4\x95\x9d\0" /* offset 16086 */ "\xe4\x95\xa1\0" /* offset 16090 */ "\xf0\xa6\xbe\xb1\0" /* offset 16094 */ "\xf0\xa7\x83\x92\0" /* offset 16099 */ "\xe4\x95\xab\0" /* offset 16104 */ "\xe8\x99\x90\0" /* offset 16108 */ "\xe8\x99\xa7\0" /* offset 16112 */ "\xe8\x99\xa9\0" /* offset 16116 */ "\xe8\x9a\xa9\0" /* offset 16120 */ "\xe8\x9a\x88\0" /* offset 16124 */ "\xe8\x9c\x8e\0" /* offset 16128 */ "\xe8\x9b\xa2\0" /* offset 16132 */ "\xe8\x9d\xb9\0" /* offset 16136 */ "\xe8\x9c\xa8\0" /* offset 16140 */ "\xe8\x9d\xab\0" /* offset 16144 */ "\xe8\x9e\x86\0" /* offset 16148 */ "\xe4\xb5\x97\0" /* offset 16152 */ "\xe8\x9f\xa1\0" /* offset 16156 */ "\xe8\xa0\x81\0" /* offset 16160 */ "\xe4\x97\xb9\0" /* offset 16164 */ "\xe8\xa1\xa0\0" /* offset 16168 */ "\xf0\xa7\x99\xa7\0" /* offset 16172 */ "\xe8\xa3\x97\0" /* offset 16177 */ "\xe8\xa3\x9e\0" /* offset 16181 */ "\xe4\x98\xb5\0" /* offset 16185 */ "\xe8\xa3\xba\0" /* offset 16189 */ "\xe3\x92\xbb\0" /* offset 16193 */ "\xf0\xa7\xa2\xae\0" /* offset 16197 */ "\xf0\xa7\xa5\xa6\0" /* offset 16202 */ "\xe4\x9a\xbe\0" /* offset 16207 */ "\xe4\x9b\x87\0" /* offset 16211 */ "\xe8\xaa\xa0\0" /* offset 16215 */ "\xe8\xab\xad\0" /* offset 16219 */ "\xe8\xae\x8a\0" /* offset 16223 */ "\xf0\xa7\xb2\xa8\0" /* offset 16227 */ "\xe8\xb2\xab\0" /* offset 16232 */ "\xe8\xb3\x81\0" /* offset 16236 */ "\xe8\xb4\x9b\0" /* offset 16240 */ "\xe8\xb5\xb7\0" /* offset 16244 */ "\xf0\xa7\xbc\xaf\0" /* offset 16248 */ "\xf0\xa0\xa0\x84\0" /* offset 16253 */ "\xe8\xb7\x8b\0" /* offset 16258 */ "\xe8\xb6\xbc\0" /* offset 16262 */ "\xe8\xb7\xb0\0" /* offset 16266 */ "\xf0\xa0\xa3\x9e\0" /* offset 16270 */ "\xe8\xbb\x94\0" /* offset 16275 */ "\xe8\xbc\xb8\0" /* offset 16279 */ "\xf0\xa8\x97\x92\0" /* offset 16283 */ "\xf0\xa8\x97\xad\0" /* offset 16288 */ "\xe9\x82\x94\0" /* offset 16293 */ "\xe9\x83\xb1\0" /* offset 16297 */ "\xe9\x84\x91\0" /* offset 16301 */ "\xf0\xa8\x9c\xae\0" /* offset 16305 */ "\xe9\x84\x9b\0" /* offset 16310 */ "\xe9\x88\xb8\0" /* offset 16314 */ "\xe9\x8b\x97\0" /* offset 16318 */ "\xe9\x8b\x98\0" /* offset 16322 */ "\xe9\x89\xbc\0" /* offset 16326 */ "\xe9\x8f\xb9\0" /* offset 16330 */ "\xe9\x90\x95\0" /* offset 16334 */ "\xf0\xa8\xaf\xba\0" /* offset 16338 */ "\xe9\x96\x8b\0" /* offset 16343 */ "\xe4\xa6\x95\0" /* offset 16347 */ "\xe9\x96\xb7\0" /* offset 16351 */ "\xf0\xa8\xb5\xb7\0" /* offset 16355 */ "\xe4\xa7\xa6\0" /* offset 16360 */ "\xe9\x9b\x83\0" /* offset 16364 */ "\xe5\xb6\xb2\0" /* offset 16368 */ "\xe9\x9c\xa3\0" /* offset 16372 */ "\xf0\xa9\x85\x85\0" /* offset 16376 */ "\xf0\xa9\x88\x9a\0" /* offset 16381 */ "\xe4\xa9\xae\0" /* offset 16386 */ "\xe4\xa9\xb6\0" /* offset 16390 */ "\xe9\x9f\xa0\0" /* offset 16394 */ "\xf0\xa9\x90\x8a\0" /* offset 16398 */ "\xe4\xaa\xb2\0" /* offset 16403 */ "\xf0\xa9\x92\x96\0" /* offset 16407 */ "\xe9\xa0\x8b\0" /* offset 16412 */ "\xe9\xa0\xa9\0" /* offset 16416 */ "\xf0\xa9\x96\xb6\0" /* offset 16420 */ "\xe9\xa3\xa2\0" /* offset 16425 */ "\xe4\xac\xb3\0" /* offset 16429 */ "\xe9\xa4\xa9\0" /* offset 16433 */ "\xe9\xa6\xa7\0" /* offset 16437 */ "\xe9\xa7\x82\0" /* offset 16441 */ "\xe9\xa7\xbe\0" /* offset 16445 */ "\xe4\xaf\x8e\0" /* offset 16449 */ "\xf0\xa9\xac\xb0\0" /* offset 16453 */ "\xe9\xac\x92\0" /* offset 16458 */ "\xe9\xb1\x80\0" /* offset 16462 */ "\xe9\xb3\xbd\0" /* offset 16466 */ "\xe4\xb3\x8e\0" /* offset 16470 */ "\xe4\xb3\xad\0" /* offset 16474 */ "\xe9\xb5\xa7\0" /* offset 16478 */ "\xf0\xaa\x83\x8e\0" /* offset 16482 */ "\xe4\xb3\xb8\0" /* offset 16487 */ "\xf0\xaa\x84\x85\0" /* offset 16491 */ "\xf0\xaa\x88\x8e\0" /* offset 16496 */ "\xf0\xaa\x8a\x91\0" /* offset 16501 */ "\xe4\xb5\x96\0" /* offset 16506 */ "\xe9\xbb\xbe\0" /* offset 16510 */ "\xe9\xbc\x85\0" /* offset 16514 */ "\xe9\xbc\x8f\0" /* offset 16518 */ "\xe9\xbc\x96\0" /* offset 16522 */ "\xf0\xaa\x98\x80\0" /* offset 16526 */; #endif /* DECOMP_H */ libidn-1.38/lib/pr29.c0000644000000000000000000013047314076271517011325 00000000000000/* pr29.h --- Detect strings that are non-idempotent under NFKC in Unicode 3.2. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include #include "pr29.h" /* Get stringprep_utf8_to_ucs4. */ #include /* * The tables used in this file was extracted by Simon Josefsson from * pr-29.html and DerivedCombiningClass-3.2.0.txt, as published by * Unicode Inc., for the GNU Libidn project. * */ /* These are the characters with non-zero combination class, extracted from DerivedCombiningClass-3.2.0.txt. */ static uint32_t nzcc[] = { /* 1 # Mn [5] COMBINING TILDE OVERLAY.. * ..COMBINING LONG SOLIDUS OVERLAY */ 0x0334, 0x0335, 0x0336, 0x0337, 0x0338, /* 1 # Mn [2] COMBINING LONG VERTICAL LINE OVERLAY.. * ..COMBINING SHORT VERTICAL LINE OVERLAY */ 0x20D2, 0x20D3, /* 1 # Mn [3] COMBINING RING OVERLAY.. * ..COMBINING ANTICLOCKWISE RING OVERLAY */ 0x20D8, 0x20D9, 0x20DA, /* 1 # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY.. * ..COMBINING DOUBLE VERTICAL STROKE OVERLAY */ 0x20E5, 0x20E6, /* 1 # Mn COMBINING LEFTWARDS ARROW OVERLAY */ 0x20EA, /* 1 # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1.. * ..MUSICAL SYMBOL COMBINING TREMOLO-3 */ 0x1D167, 0x1D168, 0x1D169, /* 7 # Mn DEVANAGARI SIGN NUKTA */ 0x093C, /* 7 # Mn BENGALI SIGN NUKTA */ 0x09BC, /* 7 # Mn GURMUKHI SIGN NUKTA */ 0x0A3C, /* 7 # Mn GUJARATI SIGN NUKTA */ 0x0ABC, /* 7 # Mn ORIYA SIGN NUKTA */ 0x0B3C, /* 7 # Mn MYANMAR SIGN DOT BELOW */ 0x1037, /* 8 # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK.. * ..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ 0x3099, 0x309A, /* 9 # Mn DEVANAGARI SIGN VIRAMA */ 0x094D, /* 9 # Mn BENGALI SIGN VIRAMA */ 0x09CD, /* 9 # Mn GURMUKHI SIGN VIRAMA */ 0x0A4D, /* 9 # Mn GUJARATI SIGN VIRAMA */ 0x0ACD, /* 9 # Mn ORIYA SIGN VIRAMA */ 0x0B4D, /* 9 # Mn TAMIL SIGN VIRAMA */ 0x0BCD, /* 9 # Mn TELUGU SIGN VIRAMA */ 0x0C4D, /* 9 # Mn KANNADA SIGN VIRAMA */ 0x0CCD, /* 9 # Mn MALAYALAM SIGN VIRAMA */ 0x0D4D, /* 9 # Mn SINHALA SIGN AL-LAKUNA */ 0x0DCA, /* 9 # Mn THAI CHARACTER PHINTHU */ 0x0E3A, /* 9 # Mn TIBETAN MARK HALANTA */ 0x0F84, /* 9 # Mn MYANMAR SIGN VIRAMA */ 0x1039, /* 9 # Mn TAGALOG SIGN VIRAMA */ 0x1714, /* 9 # Mn HANUNOO SIGN PAMUDPOD */ 0x1734, /* 9 # Mn KHMER SIGN COENG */ 0x17D2, /* 10 # Mn HEBREW POINT SHEVA */ 0x05B0, /* 11 # Mn HEBREW POINT HATAF SEGOL */ 0x05B1, /* 12 # Mn HEBREW POINT HATAF PATAH */ 0x05B2, /* 13 # Mn HEBREW POINT HATAF QAMATS */ 0x05B3, /* 14 # Mn HEBREW POINT HIRIQ */ 0x05B4, /* 15 # Mn HEBREW POINT TSERE */ 0x05B5, /* 16 # Mn HEBREW POINT SEGOL */ 0x05B6, /* 17 # Mn HEBREW POINT PATAH */ 0x05B7, /* 18 # Mn HEBREW POINT QAMATS */ 0x05B8, /* 19 # Mn HEBREW POINT HOLAM */ 0x05B9, /* 20 # Mn HEBREW POINT QUBUTS */ 0x05BB, /* 21 # Mn HEBREW POINT DAGESH OR MAPIQ */ 0x05BC, /* 22 # Mn HEBREW POINT METEG */ 0x05BD, /* 23 # Mn HEBREW POINT RAFE */ 0x05BF, /* 24 # Mn HEBREW POINT SHIN DOT */ 0x05C1, /* 25 # Mn HEBREW POINT SIN DOT */ 0x05C2, /* 26 # Mn HEBREW POINT JUDEO-SPANISH VARIKA */ 0xFB1E, /* 27 # Mn ARABIC FATHATAN */ 0x064B, /* 28 # Mn ARABIC DAMMATAN */ 0x064C, /* 29 # Mn ARABIC KASRATAN */ 0x064D, /* 30 # Mn ARABIC FATHA */ 0x064E, /* 31 # Mn ARABIC DAMMA */ 0x064F, /* 32 # Mn ARABIC KASRA */ 0x0650, /* 33 # Mn ARABIC SHADDA */ 0x0651, /* 34 # Mn ARABIC SUKUN */ 0x0652, /* 35 # Mn ARABIC LETTER SUPERSCRIPT ALEF */ 0x0670, /* 36 # Mn SYRIAC LETTER SUPERSCRIPT ALAPH */ 0x0711, /* 84 # Mn TELUGU LENGTH MARK */ 0x0C55, /* 91 # Mn TELUGU AI LENGTH MARK */ 0x0C56, /* 103 # Mn [2] THAI CHARACTER SARA U.. * ..THAI CHARACTER SARA UU */ 0x0E38, 0x0E39, /* 107 # Mn [4] THAI CHARACTER MAI EK.. * ..THAI CHARACTER MAI CHATTAWA */ 0x0E48, 0x0E49, 0x0E4A, 0x04EB, /* 118 # Mn [2] LAO VOWEL SIGN U.. * ..LAO VOWEL SIGN UU */ 0x0EB8, 0x0EB9, /* 122 # Mn [4] LAO TONE MAI EK.. * ..LAO TONE MAI CATAWA */ 0x0EC8, 0x0EC9, 0x0ECA, 0x0ECB, /* 129 # Mn TIBETAN VOWEL SIGN AA */ 0x0F71, /* 130 # Mn TIBETAN VOWEL SIGN I */ 0x0F72, /* 130 # Mn [4] TIBETAN VOWEL SIGN E.. * ..TIBETAN VOWEL SIGN OO */ 0x0F7A, 0x0F7B, 0x0F7C, 0x0F7D, /* 130 # Mn TIBETAN VOWEL SIGN REVERSED I */ 0x0F80, /* 132 # Mn TIBETAN VOWEL SIGN U */ 0x0F74, /* 202 # Mn [2] COMBINING PALATALIZED HOOK BELOW.. * ..COMBINING RETROFLEX HOOK BELOW */ 0x0321, 0x0322, /* 202 # Mn [2] COMBINING CEDILLA.. * ..COMBINING OGONEK */ 0x0327, 0x0328, /* 216 # Mn COMBINING HORN */ 0x031B, /* 216 # Mn TIBETAN MARK TSA -PHRU */ 0x0F39, /* 216 # Mc [2] MUSICAL SYMBOL COMBINING STEM.. * ..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM */ 0x1D165, 0x1D166, /* 216 # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1.. * ..MUSICAL SYMBOL COMBINING FLAG-5 */ 0x1D16E, 0x1D16F, 0x1D170, 0x1D171, 0x1D172, /* 218 # Mn IDEOGRAPHIC LEVEL TONE MARK */ 0x302A, /* 220 # Mn [4] COMBINING GRAVE ACCENT BELOW.. * ..COMBINING RIGHT TACK BELOW */ 0x0316, 0x0317, 0x0318, 0x0319, /* 220 # Mn [5] COMBINING LEFT HALF RING BELOW.. * ..COMBINING MINUS SIGN BELOW */ 0x031C, 0x031D, 0x031E, 0x031F, 0x0320, /* 220 # Mn [4] COMBINING DOT BELOW.. * ..COMBINING COMMA BELOW */ 0x0323, 0x0324, 0x0325, 0x0326, /* 220 # Mn [11] COMBINING VERTICAL LINE BELOW.. * ..COMBINING DOUBLE LOW LINE */ 0x0329, 0x032A, 0x032B, 0x032C, 0x032D, 0x032E, 0x032F, 0x0330, 0x0331, 0x0332, 0x0333, /* 220 # Mn [4] COMBINING RIGHT HALF RING BELOW.. * ..COMBINING SEAGULL BELOW */ 0x0339, 0x033A, 0x033B, 0x033C, /* 220 # Mn [3] COMBINING EQUALS SIGN BELOW.. * ..COMBINING LEFT ANGLE BELOW */ 0x0347, 0x0348, 0x0349, /* 220 # Mn [2] COMBINING LEFT RIGHT ARROW BELOW.. * ..COMBINING UPWARDS ARROW BELOW */ 0x034D, 0x034E, /* 220 # Mn HEBREW ACCENT ETNAHTA */ 0x0591, /* 220 # Mn HEBREW ACCENT TIPEHA */ 0x0596, /* 220 # Mn HEBREW ACCENT TEVIR */ 0x059B, /* 220 # Mn [5] HEBREW ACCENT MUNAH.. * ..HEBREW ACCENT DARGA */ 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7, /* 220 # Mn HEBREW ACCENT YERAH BEN YOMO */ 0x05AA, /* 220 # Mn ARABIC HAMZA BELOW */ 0x0655, /* 220 # Mn ARABIC SMALL LOW SEEN */ 0x06E3, /* 220 # Mn ARABIC EMPTY CENTRE LOW STOP */ 0x06EA, /* 220 # Mn ARABIC SMALL LOW MEEM */ 0x06ED, /* 220 # Mn SYRIAC PTHAHA BELOW */ 0x0731, /* 220 # Mn SYRIAC ZQAPHA BELOW */ 0x0734, /* 220 # Mn [3] SYRIAC RBASA BELOW.. * ..SYRIAC DOTTED ZLAMA ANGULAR */ 0x0737, 0x0738, 0x0739, /* 220 # Mn [2] SYRIAC HBASA BELOW.. * ..SYRIAC HBASA-ESASA DOTTED */ 0x073B, 0x073C, /* 220 # Mn SYRIAC ESASA BELOW */ 0x073E, /* 220 # Mn SYRIAC RUKKAKHA */ 0x0742, /* 220 # Mn SYRIAC TWO VERTICAL DOTS BELOW */ 0x0744, /* 220 # Mn SYRIAC THREE DOTS BELOW */ 0x0746, /* 220 # Mn SYRIAC OBLIQUE LINE BELOW */ 0x0748, /* 220 # Mn DEVANAGARI STRESS SIGN ANUDATTA */ 0x0952, /* 220 # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA.. * ..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS */ 0x0F18, 0x0F19, /* 220 # Mn TIBETAN MARK NGAS BZUNG NYI ZLA */ 0x0F35, /* 220 # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS */ 0x0F37, /* 220 # Mn TIBETAN SYMBOL PADMA GDAN */ 0x0FC6, /* 220 # Mn COMBINING TRIPLE UNDERDOT */ 0x20E8, /* 220 # Mn [8] MUSICAL SYMBOL COMBINING ACCENT.. * ..MUSICAL SYMBOL COMBINING LOURE */ 0x1D17B, 0x1D17C, 0x1D17D, 0x1D17E, 0x1D17F, 0x1D180, 0x1D181, 0x1D182, /* 220 # Mn [2] MUSICAL SYMBOL COMBINING DOUBLE TONGUE.. * ..MUSICAL SYMBOL COMBINING TRIPLE TONGUE */ 0x1D18A, 0x1D18B, /* 222 # Mn HEBREW ACCENT YETIV */ 0x059A, /* 222 # Mn HEBREW ACCENT DEHI */ 0x05AD, /* 222 # Mn IDEOGRAPHIC ENTERING TONE MARK */ 0x302D, /* 224 # Mn [2] HANGUL SINGLE DOT TONE MARK.. * ..HANGUL DOUBLE DOT TONE MARK */ 0x302E, 0x302F, /* 226 # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT */ 0x1D16D, /* 228 # Mn HEBREW ACCENT ZINOR */ 0x05AE, /* 228 # Mn MONGOLIAN LETTER ALI GALI DAGALGA */ 0x18A9, /* 228 # Mn IDEOGRAPHIC RISING TONE MARK */ 0x302B, /* 230 # Mn [21] COMBINING GRAVE ACCENT.. * ..COMBINING REVERSED COMMA ABOVE */ 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 0x030A, 0x030B, 0x030C, 0x030D, 0x030E, 0x030F, 0x0310, 0x0311, 0x0312, 0x0313, 0x0314, /* 230 # Mn [8] COMBINING X ABOVE.. * ..COMBINING GREEK DIALYTIKA TONOS */ 0x033D, 0x033E, 0x033F, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, /* 230 # Mn COMBINING BRIDGE ABOVE */ 0x0346, /* 230 # Mn [3] COMBINING NOT TILDE ABOVE.. * ..COMBINING ALMOST EQUAL TO ABOVE */ 0x034A, 0x034B, 0x034C, /* 230 # Mn [13] COMBINING LATIN SMALL LETTER A.. * ..COMBINING LATIN SMALL LETTER X */ 0x0363, 0x0364, 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036A, 0x036B, 0x036C, 0x036D, 0x036E, 0x036F, /* 230 # Mn [4] COMBINING CYRILLIC TITLO.. * ..COMBINING CYRILLIC PSILI PNEUMATA */ 0x0483, 0x0484, 0x0485, 0x0486, /* 230 # Mn [4] HEBREW ACCENT SEGOL.. * ..HEBREW ACCENT ZAQEF GADOL */ 0x0592, 0x0593, 0x0594, 0x0595, /* 230 # Mn [3] HEBREW ACCENT REVIA.. * ..HEBREW ACCENT PASHTA */ 0x0597, 0x0598, 0x0599, /* 230 # Mn [6] HEBREW ACCENT GERESH.. * ..HEBREW ACCENT PAZER */ 0x059C, 0x059D, 0x059E, 0x059F, 0x05A0, 0x05A1, /* 230 # Mn [2] HEBREW ACCENT QADMA.. * ..HEBREW ACCENT TELISHA QETANA */ 0x05A8, 0x05A9, /* 230 # Mn [2] HEBREW ACCENT OLE.. * ..HEBREW ACCENT ILUY */ 0x05AB, 0x05AC, /* 230 # Mn HEBREW MARK MASORA CIRCLE */ 0x05AF, /* 230 # Mn HEBREW MARK UPPER DOT */ 0x05C4, /* 230 # Mn [2] ARABIC MADDAH ABOVE.. * ..ARABIC HAMZA ABOVE */ 0x0653, 0x0654, /* 230 # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA.. * ..ARABIC SMALL HIGH SEEN */ 0x06D6, 0x06D7, 0x06D8, 0x06D9, 0x06DA, 0x06DB, 0x06DC, /* 230 # Mn [4] ARABIC SMALL HIGH ROUNDED ZERO.. * ..ARABIC SMALL HIGH MEEM ISOLATED FORM */ 0x06DF, 0x06E0, 0x06E1, 0x06E2, /* 230 # Mn ARABIC SMALL HIGH MADDA */ 0x06E4, /* 230 # Mn [2] ARABIC SMALL HIGH YEH.. * ..ARABIC SMALL HIGH NOON */ 0x06E7, 0x06E8, /* 230 # Mn [2] ARABIC EMPTY CENTRE HIGH STOP.. * ..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE */ 0x06EB, 0x06EC, /* 230 # Mn SYRIAC PTHAHA ABOVE */ 0x0730, /* 230 # Mn [2] SYRIAC PTHAHA DOTTED.. * ..SYRIAC ZQAPHA ABOVE */ 0x0732, 0x0733, /* 230 # Mn [2] SYRIAC ZQAPHA DOTTED.. * ..SYRIAC RBASA ABOVE */ 0x0735, 0x0736, /* 230 # Mn SYRIAC HBASA ABOVE */ 0x073A, /* 230 # Mn SYRIAC ESASA ABOVE */ 0x073D, /* 230 # Mn [3] SYRIAC RWAHA.. * ..SYRIAC QUSHSHAYA */ 0x073F, 0x0740, 0x0741, /* 230 # Mn SYRIAC TWO VERTICAL DOTS ABOVE */ 0x0743, /* 230 # Mn SYRIAC THREE DOTS ABOVE */ 0x0745, /* 230 # Mn SYRIAC OBLIQUE LINE ABOVE */ 0x0747, /* 230 # Mn [2] SYRIAC MUSIC.. * ..SYRIAC BARREKH */ 0x0749, 0x074A, /* 230 # Mn DEVANAGARI STRESS SIGN UDATTA */ 0x0951, /* 230 # Mn [2] DEVANAGARI GRAVE ACCENT.. * ..DEVANAGARI ACUTE ACCENT */ 0x0953, 0x0954, /* 230 # Mn [2] TIBETAN SIGN NYI ZLA NAA DA.. * ..TIBETAN SIGN SNA LDAN */ 0x0F82, 0x0F83, /* 230 # Mn [2] TIBETAN SIGN LCI RTAGS.. * ..TIBETAN SIGN YANG RTAGS */ 0x0F86, 0x0F87, /* 230 # Mn [2] COMBINING LEFT HARPOON ABOVE.. * ..COMBINING RIGHT HARPOON ABOVE */ 0x20D0, 0x20D1, /* 230 # Mn [4] COMBINING ANTICLOCKWISE ARROW ABOVE.. * ..COMBINING RIGHT ARROW ABOVE */ 0x20D4, 0x20D5, 0x20D6, 0x20D7, /* 230 # Mn [2] COMBINING THREE DOTS ABOVE.. * ..COMBINING FOUR DOTS ABOVE */ 0x20DB, 0x20DC, /* 230 # Mn COMBINING LEFT RIGHT ARROW ABOVE */ 0x20E1, /* 230 # Mn COMBINING ANNUITY SYMBOL */ 0x20E7, /* 230 # Mn COMBINING WIDE BRIDGE ABOVE */ 0x20E9, /* 230 # Mn [4] COMBINING LIGATURE LEFT HALF.. * ..COMBINING DOUBLE TILDE RIGHT HALF */ 0xFE20, 0xFE21, 0xFE22, 0xFE23, /* 230 # Mn [5] MUSICAL SYMBOL COMBINING DOIT.. * ..MUSICAL SYMBOL COMBINING BEND */ 0x1D185, 0x1D186, 0x1D187, 0x1D188, 0x1D189, /* 230 # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW.. * ..MUSICAL SYMBOL COMBINING SNAP PIZZICATO */ 0x1D1AA, 0x1D1AB, 0x1D1AC, 0x1D1AD, /* 232 # Mn COMBINING COMMA ABOVE RIGHT */ 0x0315, /* 232 # Mn COMBINING LEFT ANGLE ABOVE */ 0x031A, /* 232 # Mn IDEOGRAPHIC DEPARTING TONE MARK */ 0x302C, /* 233 # Mn COMBINING DOUBLE RIGHTWARDS ARROW BELOW */ 0x0362, /* 234 # Mn [2] COMBINING DOUBLE TILDE.. * ..COMBINING DOUBLE INVERTED BREVE */ 0x0360, 0x0361, /* 240 # Mn COMBINING GREEK YPOGEGRAMMENI */ 0x0345, 0 }; /* * 09C7 BENGALI VOWEL SIGN E 09BE BENGALI VOWEL SIGN AA or * 09D7 BENGALI AU LENGTH MARK */ static const uint32_t pr29_1_1[] = { 0x09C7, 0 }; static const uint32_t pr29_1_2[] = { 0x09BE, 0x09D7, 0 }; /* * 0B47 ORIYA VOWEL SIGN E 0B3E ORIYA VOWEL SIGN AA or * 0B56 ORIYA AI LENGTH MARK or * 0B57 ORIYA AU LENGTH MARK */ static const uint32_t pr29_2_1[] = { 0x0B47, 0 }; static const uint32_t pr29_2_2[] = { 0x0B3E, 0x0B56, 0x0B57, 0 }; /* * 0BC6 TAMIL VOWEL SIGN E 0BBE TAMIL VOWEL SIGN AA or * 0BD7 TAMIL AU LENGTH MARK */ static const uint32_t pr29_3_1[] = { 0x0BC6, 0 }; static const uint32_t pr29_3_2[] = { 0x0BBE, 0x0BD7, 0 }; /* * 0BC7 TAMIL VOWEL SIGN EE 0BBE TAMIL VOWEL SIGN AA */ static const uint32_t pr29_4_1[] = { 0x0BC7, 0 }; static const uint32_t pr29_4_2[] = { 0x0BBE, 0 }; /* * 0B92 TAMIL LETTER O 0BD7 TAMIL AU LENGTH MARK */ static const uint32_t pr29_5_1[] = { 0x0B92, 0 }; static const uint32_t pr29_5_2[] = { 0x0BD7, 0 }; /* * 0CC6 KANNADA VOWEL SIGN E 0CC2 KANNADA VOWEL SIGN UU or * 0CD5 KANNADA LENGTH MARK or * 0CD6 KANNADA AI LENGTH MARK */ static const uint32_t pr29_6_1[] = { 0x0CC6, 0 }; static const uint32_t pr29_6_2[] = { 0x0CC2, 0xCD5, 0xCD6, 0 }; /* * 0CBF KANNADA VOWEL SIGN I or * 0CCA KANNADA VOWEL SIGN O 0CD5 KANNADA LENGTH MARK */ static const uint32_t pr29_7_1[] = { 0x0CBF, 0xCCA, 0 }; static const uint32_t pr29_7_2[] = { 0x0CD5, 0 }; /* * 0D47 MALAYALAM VOWEL SIGN EE 0D3E MALAYALAM VOWEL SIGN AA */ static const uint32_t pr29_8_1[] = { 0x0D47, 0 }; static const uint32_t pr29_8_2[] = { 0x0D3E, 0 }; /* * 0D46 MALAYALAM VOWEL SIGN E 0D3E MALAYALAM VOWEL SIGN AA or * 0D57 MALAYALAM AU LENGTH MARK */ static const uint32_t pr29_9_1[] = { 0x0D46, 0 }; static const uint32_t pr29_9_2[] = { 0x0D3E, 0x0D57, 0 }; /* * 1025 MYANMAR LETTER U 102E MYANMAR VOWEL SIGN II */ static const uint32_t pr29_10_1[] = { 0x1025, 0 }; static const uint32_t pr29_10_2[] = { 0x102E, 0 }; /* * 0DD9 SINHALA VOWEL SIGN KOMBUVA 0DCF SINHALA VOWEL SIGN AELA-PILLA or * 0DDF SINHALA VOWEL SIGN GAYANUKITTA */ static const uint32_t pr29_11_1[] = { 0x0DD9, 0 }; static const uint32_t pr29_11_2[] = { 0x0DCF, 0x0DDF, 0 }; /* * 1100..1112 HANGUL CHOSEONG KIYEOK..HIEUH [19 instances] * 1161..1175 HANGUL JUNGSEONG A..I [21 instances] */ static const uint32_t pr29_12_1[] = { 0x1100, 0x1101, 0x1102, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110A, 0x110B, 0x110C, 0x110D, 0x110E, 0x110F, 0x1110, 0x1111, 0x1112, 0 }; static const uint32_t pr29_12_2[] = { 0x1161, 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, 0x116A, 0x116B, 0x116C, 0x116D, 0x116E, 0x116F, 0x1170, 0x1171, 0x1172, 0x1173, 0x1174, 0x1175, 0 }; /* * [:HangulSyllableType=LV:] * 11A8..11C2 HANGUL JONGSEONG KIYEOK..HIEUH [27 instances] */ static const uint32_t pr29_13_1[] = { 0xAC00, /* LV # Lo HANGUL SYLLABLE GA */ 0xAC1C, /* LV # Lo HANGUL SYLLABLE GAE */ 0xAC38, /* LV # Lo HANGUL SYLLABLE GYA */ 0xAC54, /* LV # Lo HANGUL SYLLABLE GYAE */ 0xAC70, /* LV # Lo HANGUL SYLLABLE GEO */ 0xAC8C, /* LV # Lo HANGUL SYLLABLE GE */ 0xACA8, /* LV # Lo HANGUL SYLLABLE GYEO */ 0xACC4, /* LV # Lo HANGUL SYLLABLE GYE */ 0xACE0, /* LV # Lo HANGUL SYLLABLE GO */ 0xACFC, /* LV # Lo HANGUL SYLLABLE GWA */ 0xAD18, /* LV # Lo HANGUL SYLLABLE GWAE */ 0xAD34, /* LV # Lo HANGUL SYLLABLE GOE */ 0xAD50, /* LV # Lo HANGUL SYLLABLE GYO */ 0xAD6C, /* LV # Lo HANGUL SYLLABLE GU */ 0xAD88, /* LV # Lo HANGUL SYLLABLE GWEO */ 0xADA4, /* LV # Lo HANGUL SYLLABLE GWE */ 0xADC0, /* LV # Lo HANGUL SYLLABLE GWI */ 0xADDC, /* LV # Lo HANGUL SYLLABLE GYU */ 0xADF8, /* LV # Lo HANGUL SYLLABLE GEU */ 0xAE14, /* LV # Lo HANGUL SYLLABLE GYI */ 0xAE30, /* LV # Lo HANGUL SYLLABLE GI */ 0xAE4C, /* LV # Lo HANGUL SYLLABLE GGA */ 0xAE68, /* LV # Lo HANGUL SYLLABLE GGAE */ 0xAE84, /* LV # Lo HANGUL SYLLABLE GGYA */ 0xAEA0, /* LV # Lo HANGUL SYLLABLE GGYAE */ 0xAEBC, /* LV # Lo HANGUL SYLLABLE GGEO */ 0xAED8, /* LV # Lo HANGUL SYLLABLE GGE */ 0xAEF4, /* LV # Lo HANGUL SYLLABLE GGYEO */ 0xAF10, /* LV # Lo HANGUL SYLLABLE GGYE */ 0xAF2C, /* LV # Lo HANGUL SYLLABLE GGO */ 0xAF48, /* LV # Lo HANGUL SYLLABLE GGWA */ 0xAF64, /* LV # Lo HANGUL SYLLABLE GGWAE */ 0xAF80, /* LV # Lo HANGUL SYLLABLE GGOE */ 0xAF9C, /* LV # Lo HANGUL SYLLABLE GGYO */ 0xAFB8, /* LV # Lo HANGUL SYLLABLE GGU */ 0xAFD4, /* LV # Lo HANGUL SYLLABLE GGWEO */ 0xAFF0, /* LV # Lo HANGUL SYLLABLE GGWE */ 0xB00C, /* LV # Lo HANGUL SYLLABLE GGWI */ 0xB028, /* LV # Lo HANGUL SYLLABLE GGYU */ 0xB044, /* LV # Lo HANGUL SYLLABLE GGEU */ 0xB060, /* LV # Lo HANGUL SYLLABLE GGYI */ 0xB07C, /* LV # Lo HANGUL SYLLABLE GGI */ 0xB098, /* LV # Lo HANGUL SYLLABLE NA */ 0xB0B4, /* LV # Lo HANGUL SYLLABLE NAE */ 0xB0D0, /* LV # Lo HANGUL SYLLABLE NYA */ 0xB0EC, /* LV # Lo HANGUL SYLLABLE NYAE */ 0xB108, /* LV # Lo HANGUL SYLLABLE NEO */ 0xB124, /* LV # Lo HANGUL SYLLABLE NE */ 0xB140, /* LV # Lo HANGUL SYLLABLE NYEO */ 0xB15C, /* LV # Lo HANGUL SYLLABLE NYE */ 0xB178, /* LV # Lo HANGUL SYLLABLE NO */ 0xB194, /* LV # Lo HANGUL SYLLABLE NWA */ 0xB1B0, /* LV # Lo HANGUL SYLLABLE NWAE */ 0xB1CC, /* LV # Lo HANGUL SYLLABLE NOE */ 0xB1E8, /* LV # Lo HANGUL SYLLABLE NYO */ 0xB204, /* LV # Lo HANGUL SYLLABLE NU */ 0xB220, /* LV # Lo HANGUL SYLLABLE NWEO */ 0xB23C, /* LV # Lo HANGUL SYLLABLE NWE */ 0xB258, /* LV # Lo HANGUL SYLLABLE NWI */ 0xB274, /* LV # Lo HANGUL SYLLABLE NYU */ 0xB290, /* LV # Lo HANGUL SYLLABLE NEU */ 0xB2AC, /* LV # Lo HANGUL SYLLABLE NYI */ 0xB2C8, /* LV # Lo HANGUL SYLLABLE NI */ 0xB2E4, /* LV # Lo HANGUL SYLLABLE DA */ 0xB300, /* LV # Lo HANGUL SYLLABLE DAE */ 0xB31C, /* LV # Lo HANGUL SYLLABLE DYA */ 0xB338, /* LV # Lo HANGUL SYLLABLE DYAE */ 0xB354, /* LV # Lo HANGUL SYLLABLE DEO */ 0xB370, /* LV # Lo HANGUL SYLLABLE DE */ 0xB38C, /* LV # Lo HANGUL SYLLABLE DYEO */ 0xB3A8, /* LV # Lo HANGUL SYLLABLE DYE */ 0xB3C4, /* LV # Lo HANGUL SYLLABLE DO */ 0xB3E0, /* LV # Lo HANGUL SYLLABLE DWA */ 0xB3FC, /* LV # Lo HANGUL SYLLABLE DWAE */ 0xB418, /* LV # Lo HANGUL SYLLABLE DOE */ 0xB434, /* LV # Lo HANGUL SYLLABLE DYO */ 0xB450, /* LV # Lo HANGUL SYLLABLE DU */ 0xB46C, /* LV # Lo HANGUL SYLLABLE DWEO */ 0xB488, /* LV # Lo HANGUL SYLLABLE DWE */ 0xB4A4, /* LV # Lo HANGUL SYLLABLE DWI */ 0xB4C0, /* LV # Lo HANGUL SYLLABLE DYU */ 0xB4DC, /* LV # Lo HANGUL SYLLABLE DEU */ 0xB4F8, /* LV # Lo HANGUL SYLLABLE DYI */ 0xB514, /* LV # Lo HANGUL SYLLABLE DI */ 0xB530, /* LV # Lo HANGUL SYLLABLE DDA */ 0xB54C, /* LV # Lo HANGUL SYLLABLE DDAE */ 0xB568, /* LV # Lo HANGUL SYLLABLE DDYA */ 0xB584, /* LV # Lo HANGUL SYLLABLE DDYAE */ 0xB5A0, /* LV # Lo HANGUL SYLLABLE DDEO */ 0xB5BC, /* LV # Lo HANGUL SYLLABLE DDE */ 0xB5D8, /* LV # Lo HANGUL SYLLABLE DDYEO */ 0xB5F4, /* LV # Lo HANGUL SYLLABLE DDYE */ 0xB610, /* LV # Lo HANGUL SYLLABLE DDO */ 0xB62C, /* LV # Lo HANGUL SYLLABLE DDWA */ 0xB648, /* LV # Lo HANGUL SYLLABLE DDWAE */ 0xB664, /* LV # Lo HANGUL SYLLABLE DDOE */ 0xB680, /* LV # Lo HANGUL SYLLABLE DDYO */ 0xB69C, /* LV # Lo HANGUL SYLLABLE DDU */ 0xB6B8, /* LV # Lo HANGUL SYLLABLE DDWEO */ 0xB6D4, /* LV # Lo HANGUL SYLLABLE DDWE */ 0xB6F0, /* LV # Lo HANGUL SYLLABLE DDWI */ 0xB70C, /* LV # Lo HANGUL SYLLABLE DDYU */ 0xB728, /* LV # Lo HANGUL SYLLABLE DDEU */ 0xB744, /* LV # Lo HANGUL SYLLABLE DDYI */ 0xB760, /* LV # Lo HANGUL SYLLABLE DDI */ 0xB77C, /* LV # Lo HANGUL SYLLABLE RA */ 0xB798, /* LV # Lo HANGUL SYLLABLE RAE */ 0xB7B4, /* LV # Lo HANGUL SYLLABLE RYA */ 0xB7D0, /* LV # Lo HANGUL SYLLABLE RYAE */ 0xB7EC, /* LV # Lo HANGUL SYLLABLE REO */ 0xB808, /* LV # Lo HANGUL SYLLABLE RE */ 0xB824, /* LV # Lo HANGUL SYLLABLE RYEO */ 0xB840, /* LV # Lo HANGUL SYLLABLE RYE */ 0xB85C, /* LV # Lo HANGUL SYLLABLE RO */ 0xB878, /* LV # Lo HANGUL SYLLABLE RWA */ 0xB894, /* LV # Lo HANGUL SYLLABLE RWAE */ 0xB8B0, /* LV # Lo HANGUL SYLLABLE ROE */ 0xB8CC, /* LV # Lo HANGUL SYLLABLE RYO */ 0xB8E8, /* LV # Lo HANGUL SYLLABLE RU */ 0xB904, /* LV # Lo HANGUL SYLLABLE RWEO */ 0xB920, /* LV # Lo HANGUL SYLLABLE RWE */ 0xB93C, /* LV # Lo HANGUL SYLLABLE RWI */ 0xB958, /* LV # Lo HANGUL SYLLABLE RYU */ 0xB974, /* LV # Lo HANGUL SYLLABLE REU */ 0xB990, /* LV # Lo HANGUL SYLLABLE RYI */ 0xB9AC, /* LV # Lo HANGUL SYLLABLE RI */ 0xB9C8, /* LV # Lo HANGUL SYLLABLE MA */ 0xB9E4, /* LV # Lo HANGUL SYLLABLE MAE */ 0xBA00, /* LV # Lo HANGUL SYLLABLE MYA */ 0xBA1C, /* LV # Lo HANGUL SYLLABLE MYAE */ 0xBA38, /* LV # Lo HANGUL SYLLABLE MEO */ 0xBA54, /* LV # Lo HANGUL SYLLABLE ME */ 0xBA70, /* LV # Lo HANGUL SYLLABLE MYEO */ 0xBA8C, /* LV # Lo HANGUL SYLLABLE MYE */ 0xBAA8, /* LV # Lo HANGUL SYLLABLE MO */ 0xBAC4, /* LV # Lo HANGUL SYLLABLE MWA */ 0xBAE0, /* LV # Lo HANGUL SYLLABLE MWAE */ 0xBAFC, /* LV # Lo HANGUL SYLLABLE MOE */ 0xBB18, /* LV # Lo HANGUL SYLLABLE MYO */ 0xBB34, /* LV # Lo HANGUL SYLLABLE MU */ 0xBB50, /* LV # Lo HANGUL SYLLABLE MWEO */ 0xBB6C, /* LV # Lo HANGUL SYLLABLE MWE */ 0xBB88, /* LV # Lo HANGUL SYLLABLE MWI */ 0xBBA4, /* LV # Lo HANGUL SYLLABLE MYU */ 0xBBC0, /* LV # Lo HANGUL SYLLABLE MEU */ 0xBBDC, /* LV # Lo HANGUL SYLLABLE MYI */ 0xBBF8, /* LV # Lo HANGUL SYLLABLE MI */ 0xBC14, /* LV # Lo HANGUL SYLLABLE BA */ 0xBC30, /* LV # Lo HANGUL SYLLABLE BAE */ 0xBC4C, /* LV # Lo HANGUL SYLLABLE BYA */ 0xBC68, /* LV # Lo HANGUL SYLLABLE BYAE */ 0xBC84, /* LV # Lo HANGUL SYLLABLE BEO */ 0xBCA0, /* LV # Lo HANGUL SYLLABLE BE */ 0xBCBC, /* LV # Lo HANGUL SYLLABLE BYEO */ 0xBCD8, /* LV # Lo HANGUL SYLLABLE BYE */ 0xBCF4, /* LV # Lo HANGUL SYLLABLE BO */ 0xBD10, /* LV # Lo HANGUL SYLLABLE BWA */ 0xBD2C, /* LV # Lo HANGUL SYLLABLE BWAE */ 0xBD48, /* LV # Lo HANGUL SYLLABLE BOE */ 0xBD64, /* LV # Lo HANGUL SYLLABLE BYO */ 0xBD80, /* LV # Lo HANGUL SYLLABLE BU */ 0xBD9C, /* LV # Lo HANGUL SYLLABLE BWEO */ 0xBDB8, /* LV # Lo HANGUL SYLLABLE BWE */ 0xBDD4, /* LV # Lo HANGUL SYLLABLE BWI */ 0xBDF0, /* LV # Lo HANGUL SYLLABLE BYU */ 0xBE0C, /* LV # Lo HANGUL SYLLABLE BEU */ 0xBE28, /* LV # Lo HANGUL SYLLABLE BYI */ 0xBE44, /* LV # Lo HANGUL SYLLABLE BI */ 0xBE60, /* LV # Lo HANGUL SYLLABLE BBA */ 0xBE7C, /* LV # Lo HANGUL SYLLABLE BBAE */ 0xBE98, /* LV # Lo HANGUL SYLLABLE BBYA */ 0xBEB4, /* LV # Lo HANGUL SYLLABLE BBYAE */ 0xBED0, /* LV # Lo HANGUL SYLLABLE BBEO */ 0xBEEC, /* LV # Lo HANGUL SYLLABLE BBE */ 0xBF08, /* LV # Lo HANGUL SYLLABLE BBYEO */ 0xBF24, /* LV # Lo HANGUL SYLLABLE BBYE */ 0xBF40, /* LV # Lo HANGUL SYLLABLE BBO */ 0xBF5C, /* LV # Lo HANGUL SYLLABLE BBWA */ 0xBF78, /* LV # Lo HANGUL SYLLABLE BBWAE */ 0xBF94, /* LV # Lo HANGUL SYLLABLE BBOE */ 0xBFB0, /* LV # Lo HANGUL SYLLABLE BBYO */ 0xBFCC, /* LV # Lo HANGUL SYLLABLE BBU */ 0xBFE8, /* LV # Lo HANGUL SYLLABLE BBWEO */ 0xC004, /* LV # Lo HANGUL SYLLABLE BBWE */ 0xC020, /* LV # Lo HANGUL SYLLABLE BBWI */ 0xC03C, /* LV # Lo HANGUL SYLLABLE BBYU */ 0xC058, /* LV # Lo HANGUL SYLLABLE BBEU */ 0xC074, /* LV # Lo HANGUL SYLLABLE BBYI */ 0xC090, /* LV # Lo HANGUL SYLLABLE BBI */ 0xC0AC, /* LV # Lo HANGUL SYLLABLE SA */ 0xC0C8, /* LV # Lo HANGUL SYLLABLE SAE */ 0xC0E4, /* LV # Lo HANGUL SYLLABLE SYA */ 0xC100, /* LV # Lo HANGUL SYLLABLE SYAE */ 0xC11C, /* LV # Lo HANGUL SYLLABLE SEO */ 0xC138, /* LV # Lo HANGUL SYLLABLE SE */ 0xC154, /* LV # Lo HANGUL SYLLABLE SYEO */ 0xC170, /* LV # Lo HANGUL SYLLABLE SYE */ 0xC18C, /* LV # Lo HANGUL SYLLABLE SO */ 0xC1A8, /* LV # Lo HANGUL SYLLABLE SWA */ 0xC1C4, /* LV # Lo HANGUL SYLLABLE SWAE */ 0xC1E0, /* LV # Lo HANGUL SYLLABLE SOE */ 0xC1FC, /* LV # Lo HANGUL SYLLABLE SYO */ 0xC218, /* LV # Lo HANGUL SYLLABLE SU */ 0xC234, /* LV # Lo HANGUL SYLLABLE SWEO */ 0xC250, /* LV # Lo HANGUL SYLLABLE SWE */ 0xC26C, /* LV # Lo HANGUL SYLLABLE SWI */ 0xC288, /* LV # Lo HANGUL SYLLABLE SYU */ 0xC2A4, /* LV # Lo HANGUL SYLLABLE SEU */ 0xC2C0, /* LV # Lo HANGUL SYLLABLE SYI */ 0xC2DC, /* LV # Lo HANGUL SYLLABLE SI */ 0xC2F8, /* LV # Lo HANGUL SYLLABLE SSA */ 0xC314, /* LV # Lo HANGUL SYLLABLE SSAE */ 0xC330, /* LV # Lo HANGUL SYLLABLE SSYA */ 0xC34C, /* LV # Lo HANGUL SYLLABLE SSYAE */ 0xC368, /* LV # Lo HANGUL SYLLABLE SSEO */ 0xC384, /* LV # Lo HANGUL SYLLABLE SSE */ 0xC3A0, /* LV # Lo HANGUL SYLLABLE SSYEO */ 0xC3BC, /* LV # Lo HANGUL SYLLABLE SSYE */ 0xC3D8, /* LV # Lo HANGUL SYLLABLE SSO */ 0xC3F4, /* LV # Lo HANGUL SYLLABLE SSWA */ 0xC410, /* LV # Lo HANGUL SYLLABLE SSWAE */ 0xC42C, /* LV # Lo HANGUL SYLLABLE SSOE */ 0xC448, /* LV # Lo HANGUL SYLLABLE SSYO */ 0xC464, /* LV # Lo HANGUL SYLLABLE SSU */ 0xC480, /* LV # Lo HANGUL SYLLABLE SSWEO */ 0xC49C, /* LV # Lo HANGUL SYLLABLE SSWE */ 0xC4B8, /* LV # Lo HANGUL SYLLABLE SSWI */ 0xC4D4, /* LV # Lo HANGUL SYLLABLE SSYU */ 0xC4F0, /* LV # Lo HANGUL SYLLABLE SSEU */ 0xC50C, /* LV # Lo HANGUL SYLLABLE SSYI */ 0xC528, /* LV # Lo HANGUL SYLLABLE SSI */ 0xC544, /* LV # Lo HANGUL SYLLABLE A */ 0xC560, /* LV # Lo HANGUL SYLLABLE AE */ 0xC57C, /* LV # Lo HANGUL SYLLABLE YA */ 0xC598, /* LV # Lo HANGUL SYLLABLE YAE */ 0xC5B4, /* LV # Lo HANGUL SYLLABLE EO */ 0xC5D0, /* LV # Lo HANGUL SYLLABLE E */ 0xC5EC, /* LV # Lo HANGUL SYLLABLE YEO */ 0xC608, /* LV # Lo HANGUL SYLLABLE YE */ 0xC624, /* LV # Lo HANGUL SYLLABLE O */ 0xC640, /* LV # Lo HANGUL SYLLABLE WA */ 0xC65C, /* LV # Lo HANGUL SYLLABLE WAE */ 0xC678, /* LV # Lo HANGUL SYLLABLE OE */ 0xC694, /* LV # Lo HANGUL SYLLABLE YO */ 0xC6B0, /* LV # Lo HANGUL SYLLABLE U */ 0xC6CC, /* LV # Lo HANGUL SYLLABLE WEO */ 0xC6E8, /* LV # Lo HANGUL SYLLABLE WE */ 0xC704, /* LV # Lo HANGUL SYLLABLE WI */ 0xC720, /* LV # Lo HANGUL SYLLABLE YU */ 0xC73C, /* LV # Lo HANGUL SYLLABLE EU */ 0xC758, /* LV # Lo HANGUL SYLLABLE YI */ 0xC774, /* LV # Lo HANGUL SYLLABLE I */ 0xC790, /* LV # Lo HANGUL SYLLABLE JA */ 0xC7AC, /* LV # Lo HANGUL SYLLABLE JAE */ 0xC7C8, /* LV # Lo HANGUL SYLLABLE JYA */ 0xC7E4, /* LV # Lo HANGUL SYLLABLE JYAE */ 0xC800, /* LV # Lo HANGUL SYLLABLE JEO */ 0xC81C, /* LV # Lo HANGUL SYLLABLE JE */ 0xC838, /* LV # Lo HANGUL SYLLABLE JYEO */ 0xC854, /* LV # Lo HANGUL SYLLABLE JYE */ 0xC870, /* LV # Lo HANGUL SYLLABLE JO */ 0xC88C, /* LV # Lo HANGUL SYLLABLE JWA */ 0xC8A8, /* LV # Lo HANGUL SYLLABLE JWAE */ 0xC8C4, /* LV # Lo HANGUL SYLLABLE JOE */ 0xC8E0, /* LV # Lo HANGUL SYLLABLE JYO */ 0xC8FC, /* LV # Lo HANGUL SYLLABLE JU */ 0xC918, /* LV # Lo HANGUL SYLLABLE JWEO */ 0xC934, /* LV # Lo HANGUL SYLLABLE JWE */ 0xC950, /* LV # Lo HANGUL SYLLABLE JWI */ 0xC96C, /* LV # Lo HANGUL SYLLABLE JYU */ 0xC988, /* LV # Lo HANGUL SYLLABLE JEU */ 0xC9A4, /* LV # Lo HANGUL SYLLABLE JYI */ 0xC9C0, /* LV # Lo HANGUL SYLLABLE JI */ 0xC9DC, /* LV # Lo HANGUL SYLLABLE JJA */ 0xC9F8, /* LV # Lo HANGUL SYLLABLE JJAE */ 0xCA14, /* LV # Lo HANGUL SYLLABLE JJYA */ 0xCA30, /* LV # Lo HANGUL SYLLABLE JJYAE */ 0xCA4C, /* LV # Lo HANGUL SYLLABLE JJEO */ 0xCA68, /* LV # Lo HANGUL SYLLABLE JJE */ 0xCA84, /* LV # Lo HANGUL SYLLABLE JJYEO */ 0xCAA0, /* LV # Lo HANGUL SYLLABLE JJYE */ 0xCABC, /* LV # Lo HANGUL SYLLABLE JJO */ 0xCAD8, /* LV # Lo HANGUL SYLLABLE JJWA */ 0xCAF4, /* LV # Lo HANGUL SYLLABLE JJWAE */ 0xCB10, /* LV # Lo HANGUL SYLLABLE JJOE */ 0xCB2C, /* LV # Lo HANGUL SYLLABLE JJYO */ 0xCB48, /* LV # Lo HANGUL SYLLABLE JJU */ 0xCB64, /* LV # Lo HANGUL SYLLABLE JJWEO */ 0xCB80, /* LV # Lo HANGUL SYLLABLE JJWE */ 0xCB9C, /* LV # Lo HANGUL SYLLABLE JJWI */ 0xCBB8, /* LV # Lo HANGUL SYLLABLE JJYU */ 0xCBD4, /* LV # Lo HANGUL SYLLABLE JJEU */ 0xCBF0, /* LV # Lo HANGUL SYLLABLE JJYI */ 0xCC0C, /* LV # Lo HANGUL SYLLABLE JJI */ 0xCC28, /* LV # Lo HANGUL SYLLABLE CA */ 0xCC44, /* LV # Lo HANGUL SYLLABLE CAE */ 0xCC60, /* LV # Lo HANGUL SYLLABLE CYA */ 0xCC7C, /* LV # Lo HANGUL SYLLABLE CYAE */ 0xCC98, /* LV # Lo HANGUL SYLLABLE CEO */ 0xCCB4, /* LV # Lo HANGUL SYLLABLE CE */ 0xCCD0, /* LV # Lo HANGUL SYLLABLE CYEO */ 0xCCEC, /* LV # Lo HANGUL SYLLABLE CYE */ 0xCD08, /* LV # Lo HANGUL SYLLABLE CO */ 0xCD24, /* LV # Lo HANGUL SYLLABLE CWA */ 0xCD40, /* LV # Lo HANGUL SYLLABLE CWAE */ 0xCD5C, /* LV # Lo HANGUL SYLLABLE COE */ 0xCD78, /* LV # Lo HANGUL SYLLABLE CYO */ 0xCD94, /* LV # Lo HANGUL SYLLABLE CU */ 0xCDB0, /* LV # Lo HANGUL SYLLABLE CWEO */ 0xCDCC, /* LV # Lo HANGUL SYLLABLE CWE */ 0xCDE8, /* LV # Lo HANGUL SYLLABLE CWI */ 0xCE04, /* LV # Lo HANGUL SYLLABLE CYU */ 0xCE20, /* LV # Lo HANGUL SYLLABLE CEU */ 0xCE3C, /* LV # Lo HANGUL SYLLABLE CYI */ 0xCE58, /* LV # Lo HANGUL SYLLABLE CI */ 0xCE74, /* LV # Lo HANGUL SYLLABLE KA */ 0xCE90, /* LV # Lo HANGUL SYLLABLE KAE */ 0xCEAC, /* LV # Lo HANGUL SYLLABLE KYA */ 0xCEC8, /* LV # Lo HANGUL SYLLABLE KYAE */ 0xCEE4, /* LV # Lo HANGUL SYLLABLE KEO */ 0xCF00, /* LV # Lo HANGUL SYLLABLE KE */ 0xCF1C, /* LV # Lo HANGUL SYLLABLE KYEO */ 0xCF38, /* LV # Lo HANGUL SYLLABLE KYE */ 0xCF54, /* LV # Lo HANGUL SYLLABLE KO */ 0xCF70, /* LV # Lo HANGUL SYLLABLE KWA */ 0xCF8C, /* LV # Lo HANGUL SYLLABLE KWAE */ 0xCFA8, /* LV # Lo HANGUL SYLLABLE KOE */ 0xCFC4, /* LV # Lo HANGUL SYLLABLE KYO */ 0xCFE0, /* LV # Lo HANGUL SYLLABLE KU */ 0xCFFC, /* LV # Lo HANGUL SYLLABLE KWEO */ 0xD018, /* LV # Lo HANGUL SYLLABLE KWE */ 0xD034, /* LV # Lo HANGUL SYLLABLE KWI */ 0xD050, /* LV # Lo HANGUL SYLLABLE KYU */ 0xD06C, /* LV # Lo HANGUL SYLLABLE KEU */ 0xD088, /* LV # Lo HANGUL SYLLABLE KYI */ 0xD0A4, /* LV # Lo HANGUL SYLLABLE KI */ 0xD0C0, /* LV # Lo HANGUL SYLLABLE TA */ 0xD0DC, /* LV # Lo HANGUL SYLLABLE TAE */ 0xD0F8, /* LV # Lo HANGUL SYLLABLE TYA */ 0xD114, /* LV # Lo HANGUL SYLLABLE TYAE */ 0xD130, /* LV # Lo HANGUL SYLLABLE TEO */ 0xD14C, /* LV # Lo HANGUL SYLLABLE TE */ 0xD168, /* LV # Lo HANGUL SYLLABLE TYEO */ 0xD184, /* LV # Lo HANGUL SYLLABLE TYE */ 0xD1A0, /* LV # Lo HANGUL SYLLABLE TO */ 0xD1BC, /* LV # Lo HANGUL SYLLABLE TWA */ 0xD1D8, /* LV # Lo HANGUL SYLLABLE TWAE */ 0xD1F4, /* LV # Lo HANGUL SYLLABLE TOE */ 0xD210, /* LV # Lo HANGUL SYLLABLE TYO */ 0xD22C, /* LV # Lo HANGUL SYLLABLE TU */ 0xD248, /* LV # Lo HANGUL SYLLABLE TWEO */ 0xD264, /* LV # Lo HANGUL SYLLABLE TWE */ 0xD280, /* LV # Lo HANGUL SYLLABLE TWI */ 0xD29C, /* LV # Lo HANGUL SYLLABLE TYU */ 0xD2B8, /* LV # Lo HANGUL SYLLABLE TEU */ 0xD2D4, /* LV # Lo HANGUL SYLLABLE TYI */ 0xD2F0, /* LV # Lo HANGUL SYLLABLE TI */ 0xD30C, /* LV # Lo HANGUL SYLLABLE PA */ 0xD328, /* LV # Lo HANGUL SYLLABLE PAE */ 0xD344, /* LV # Lo HANGUL SYLLABLE PYA */ 0xD360, /* LV # Lo HANGUL SYLLABLE PYAE */ 0xD37C, /* LV # Lo HANGUL SYLLABLE PEO */ 0xD398, /* LV # Lo HANGUL SYLLABLE PE */ 0xD3B4, /* LV # Lo HANGUL SYLLABLE PYEO */ 0xD3D0, /* LV # Lo HANGUL SYLLABLE PYE */ 0xD3EC, /* LV # Lo HANGUL SYLLABLE PO */ 0xD408, /* LV # Lo HANGUL SYLLABLE PWA */ 0xD424, /* LV # Lo HANGUL SYLLABLE PWAE */ 0xD440, /* LV # Lo HANGUL SYLLABLE POE */ 0xD45C, /* LV # Lo HANGUL SYLLABLE PYO */ 0xD478, /* LV # Lo HANGUL SYLLABLE PU */ 0xD494, /* LV # Lo HANGUL SYLLABLE PWEO */ 0xD4B0, /* LV # Lo HANGUL SYLLABLE PWE */ 0xD4CC, /* LV # Lo HANGUL SYLLABLE PWI */ 0xD4E8, /* LV # Lo HANGUL SYLLABLE PYU */ 0xD504, /* LV # Lo HANGUL SYLLABLE PEU */ 0xD520, /* LV # Lo HANGUL SYLLABLE PYI */ 0xD53C, /* LV # Lo HANGUL SYLLABLE PI */ 0xD558, /* LV # Lo HANGUL SYLLABLE HA */ 0xD574, /* LV # Lo HANGUL SYLLABLE HAE */ 0xD590, /* LV # Lo HANGUL SYLLABLE HYA */ 0xD5AC, /* LV # Lo HANGUL SYLLABLE HYAE */ 0xD5C8, /* LV # Lo HANGUL SYLLABLE HEO */ 0xD5E4, /* LV # Lo HANGUL SYLLABLE HE */ 0xD600, /* LV # Lo HANGUL SYLLABLE HYEO */ 0xD61C, /* LV # Lo HANGUL SYLLABLE HYE */ 0xD638, /* LV # Lo HANGUL SYLLABLE HO */ 0xD654, /* LV # Lo HANGUL SYLLABLE HWA */ 0xD670, /* LV # Lo HANGUL SYLLABLE HWAE */ 0xD68C, /* LV # Lo HANGUL SYLLABLE HOE */ 0xD6A8, /* LV # Lo HANGUL SYLLABLE HYO */ 0xD6C4, /* LV # Lo HANGUL SYLLABLE HU */ 0xD6E0, /* LV # Lo HANGUL SYLLABLE HWEO */ 0xD6FC, /* LV # Lo HANGUL SYLLABLE HWE */ 0xD718, /* LV # Lo HANGUL SYLLABLE HWI */ 0xD734, /* LV # Lo HANGUL SYLLABLE HYU */ 0xD750, /* LV # Lo HANGUL SYLLABLE HEU */ 0xD76C, /* LV # Lo HANGUL SYLLABLE HYI */ 0xD788, /* LV # Lo HANGUL SYLLABLE HI */ 0 }; static const uint32_t pr29_13_2[] = { 0x11A8, 0x11A9, 0x11AA, 0x11AB, 0x11AC, 0x11AD, 0x11AE, 0x11AF, 0x11B0, 0x11B1, 0x11B2, 0x11B3, 0x11B4, 0x11B5, 0x11B6, 0x11B7, 0x11B8, 0x11B9, 0x11BA, 0x11BB, 0x11BC, 0x11BD, 0x11BE, 0x11BF, 0x11C0, 0x11C1, 0x11C2, 0 }; typedef struct { const uint32_t *first; const uint32_t *last; } Pr29; static const Pr29 pr29[] = { {&pr29_1_1[0], &pr29_1_2[0]}, {&pr29_2_1[0], &pr29_2_2[0]}, {&pr29_3_1[0], &pr29_3_2[0]}, {&pr29_4_1[0], &pr29_4_2[0]}, {&pr29_5_1[0], &pr29_5_2[0]}, {&pr29_6_1[0], &pr29_6_2[0]}, {&pr29_7_1[0], &pr29_7_2[0]}, {&pr29_8_1[0], &pr29_8_2[0]}, {&pr29_9_1[0], &pr29_9_2[0]}, {&pr29_10_1[0], &pr29_10_2[0]}, {&pr29_11_1[0], &pr29_11_2[0]}, {&pr29_12_1[0], &pr29_12_2[0]}, {&pr29_13_1[0], &pr29_13_2[0]}, {NULL, NULL} }; static size_t first_column (uint32_t c) { size_t i, j; for (i = 0; pr29[i].first; i++) for (j = 0; pr29[i].first[j]; j++) if (c == pr29[i].first[j]) return i + 1; return 0; } static int in_last_column_row (uint32_t c, size_t row) { size_t i; for (i = 0; pr29[row - 1].last[i]; i++) if (c == pr29[row - 1].last[i]) return 1; return 0; } static size_t combinationclass (uint32_t c) { size_t i; for (i = 0; nzcc[i]; i++) if (c == nzcc[i]) return i + 1; return 0; } /** * pr29_4: * @in: input array with unicode code points. * @len: length of input array with unicode code points. * * Check the input to see if it may be normalized into different * strings by different NFKC implementations, due to an anomaly in the * NFKC specifications. * * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, * and %PR29_PROBLEM if the input sequence is a "problem sequence" * (i.e., may be normalized into different strings by different * implementations). **/ int pr29_4 (const uint32_t * in, size_t len) { size_t i, j, k, row; /* * The problem sequence are of the form: * * first_character intervening_character+ last_character * * where the first_character and last_character come from the same * row in the following table, and there is at least one * intervening_character with non-zero Canonical Combining * Class. (The '+' above means one or more occurrences.) * */ for (i = 0; i < len; i++) if ((row = first_column (in[i])) > 0) for (j = i + 1; j < len; j++) if (combinationclass (in[j])) for (k = j + 1; k < len; k++) if (in_last_column_row (in[k], row)) return PR29_PROBLEM; return PR29_SUCCESS; } /** * pr29_4z: * @in: zero terminated array of Unicode code points. * * Check the input to see if it may be normalized into different * strings by different NFKC implementations, due to an anomaly in the * NFKC specifications. * * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, * and %PR29_PROBLEM if the input sequence is a "problem sequence" * (i.e., may be normalized into different strings by different * implementations). **/ int pr29_4z (const uint32_t * in) { size_t len; for (len = 0; in[len]; len++) ; return pr29_4 (in, len); } /** * pr29_8z: * @in: zero terminated input UTF-8 string. * * Check the input to see if it may be normalized into different * strings by different NFKC implementations, due to an anomaly in the * NFKC specifications. * * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, * and %PR29_PROBLEM if the input sequence is a "problem sequence" * (i.e., may be normalized into different strings by different * implementations), or %PR29_STRINGPREP_ERROR if there was a * problem converting the string from UTF-8 to UCS-4. **/ int pr29_8z (const char *in) { uint32_t *p; int rc; p = stringprep_utf8_to_ucs4 (in, -1, NULL); if (!p) return PR29_STRINGPREP_ERROR; rc = pr29_4z (p); free (p); return rc; } /** * Pr29_rc: * @PR29_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @PR29_PROBLEM: A problem sequence was encountered. * @PR29_STRINGPREP_ERROR: The character set conversion failed (only * for pr29_8z()). * * Enumerated return codes for pr29_4(), pr29_4z(), pr29_8z(). The * value 0 is guaranteed to always correspond to success. */ libidn-1.38/lib/strerror-pr29.c0000644000000000000000000000441514076271517013201 00000000000000/* strerror-pr29.c --- Convert PR29 errors into text. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "pr29.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * pr29_strerror: * @rc: an #Pr29_rc return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * PR29_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * PR29_PROBLEM: A problem sequence was encountered. * PR29_STRINGPREP_ERROR: The character set conversion failed (only * for pr29_8z()). * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * pr29_strerror (Pr29_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case PR29_SUCCESS: p = _("Success"); break; case PR29_PROBLEM: p = _("String not idempotent under Unicode NFKC normalization"); break; case PR29_STRINGPREP_ERROR: p = _("String preparation failed"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.38/lib/stringprep.c0000644000000000000000000005665514076271517012737 00000000000000/* stringprep.c --- Core stringprep implementation. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "stringprep.h" static int _compare_table_element (const uint32_t * c, const Stringprep_table_element * e) { if (*c < e->start) return -1; if (*c > e->end) return 1; return 0; } static ssize_t stringprep_find_character_in_table (uint32_t ucs4, const Stringprep_table_element * table, size_t table_size) { /* This is where typical uses of Libidn spends very close to all CPU time and causes most cache misses. One could easily do a binary search instead. Before rewriting this, I want hard evidence this slowness is at all relevant in typical applications. (I don't dispute optimization may improve matters significantly, I'm mostly interested in having someone give real-world benchmark on the impact of libidn.) * * Answer (Tim Rühsen rockdaboot@gmx.de): * Testing the fuzz corpora just once via make check takes ~54 billion CPU cycles. * That is almost 20s on my Intel i3 3.1GHz !!! * That even makes fuzzing almost useless, eating up CPU cycles for nothing. * * The bsearch() approach takes ~3 billion CPU cycles. * Almost a factor of 20 faster (but still pretty slow). * There are still ~2 million calls to bsearch() which make ~30% of CPU time used. * Most time is spent in _g_utf8_normalize_wc(). ssize_t i; for (i = 0; table[i].start || table[i].end; i++) if (ucs4 >= table[i].start && ucs4 <= (table[i].end ? table[i].end : table[i].start)) return i; */ const Stringprep_table_element *p = bsearch (&ucs4, table, table_size, sizeof (Stringprep_table_element), (int (*)(const void *, const void *)) _compare_table_element); return p ? (p - table) : -1; } static ssize_t stringprep_find_string_in_table (uint32_t * ucs4, size_t ucs4len, size_t *tablepos, const Stringprep_table_element * table, size_t table_size) { size_t j; ssize_t pos; for (j = 0; j < ucs4len; j++) if ((pos = stringprep_find_character_in_table (ucs4[j], table, table_size)) != -1) { if (tablepos) *tablepos = pos; return j; } return -1; } static int stringprep_apply_table_to_string (uint32_t * ucs4, size_t *ucs4len, size_t maxucs4len, const Stringprep_table_element * table, size_t table_size) { ssize_t pos; size_t i, maplen; uint32_t *src = ucs4; /* points to unprocessed data */ size_t srclen = *ucs4len; /* length of unprocessed data */ while ((pos = stringprep_find_string_in_table (src, srclen, &i, table, table_size)) != -1) { for (maplen = STRINGPREP_MAX_MAP_CHARS; maplen > 0 && table[i].map[maplen - 1] == 0; maplen--) ; if (*ucs4len - 1 + maplen >= maxucs4len) return STRINGPREP_TOO_SMALL_BUFFER; memmove (src + pos + maplen, src + pos + 1, sizeof (uint32_t) * (srclen - pos - 1)); memcpy (src + pos, table[i].map, sizeof (uint32_t) * maplen); *ucs4len = *ucs4len - 1 + maplen; src += pos + maplen; srclen -= pos + 1; } return STRINGPREP_OK; } #define INVERTED(x) ((x) & ((~0UL) >> 1)) #define UNAPPLICAPLEFLAGS(flags, profileflags) \ ((!INVERTED(profileflags) && !(profileflags & flags) && profileflags) || \ ( INVERTED(profileflags) && (profileflags & flags))) /** * stringprep_4i: * @ucs4: input/output array with string to prepare. * @len: on input, length of input array with Unicode code points, * on exit, length of output array with Unicode code points. * @maxucs4len: maximum length of input/output array. * @flags: a #Stringprep_profile_flags value, or 0. * @profile: pointer to #Stringprep_profile to use. * * Prepare the input UCS-4 string according to the stringprep profile, * and write back the result to the input string. * * The input is not required to be zero terminated (@ucs4[@len] = 0). * The output will not be zero terminated unless @ucs4[@len] = 0. * Instead, see stringprep_4zi() if your input is zero terminated or * if you want the output to be. * * Since the stringprep operation can expand the string, @maxucs4len * indicate how large the buffer holding the string is. This function * will not read or write to code points outside that size. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile contain the #Stringprep_profile instructions to * perform. Your application can define new profiles, possibly * re-using the generic stringprep tables that always will be part of * the library, or use one of the currently supported profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an * #Stringprep_rc error code. **/ int stringprep_4i (uint32_t * ucs4, size_t *len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile) { size_t i, j; ssize_t k; size_t ucs4len = *len; int rc; for (i = 0; profile[i].operation; i++) { switch (profile[i].operation) { case STRINGPREP_NFKC: { uint32_t *q = 0; if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) break; if (flags & STRINGPREP_NO_NFKC && !profile[i].flags) /* Profile requires NFKC, but callee asked for no NFKC. */ return STRINGPREP_FLAG_ERROR; q = stringprep_ucs4_nfkc_normalize (ucs4, ucs4len); if (!q) return STRINGPREP_NFKC_FAILED; for (ucs4len = 0; q[ucs4len]; ucs4len++) ; if (ucs4len >= maxucs4len) { free (q); return STRINGPREP_TOO_SMALL_BUFFER; } memcpy (ucs4, q, ucs4len * sizeof (ucs4[0])); free (q); } break; case STRINGPREP_PROHIBIT_TABLE: k = stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[i].table, profile[i].table_size); if (k != -1) return STRINGPREP_CONTAINS_PROHIBITED; break; case STRINGPREP_UNASSIGNED_TABLE: if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) break; if (flags & STRINGPREP_NO_UNASSIGNED) { k = stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[i].table, profile[i].table_size); if (k != -1) return STRINGPREP_CONTAINS_UNASSIGNED; } break; case STRINGPREP_MAP_TABLE: if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) break; rc = stringprep_apply_table_to_string (ucs4, &ucs4len, maxucs4len, profile[i].table, profile[i].table_size); if (rc != STRINGPREP_OK) return rc; break; case STRINGPREP_BIDI_PROHIBIT_TABLE: case STRINGPREP_BIDI_RAL_TABLE: case STRINGPREP_BIDI_L_TABLE: break; case STRINGPREP_BIDI: { int done_prohibited = 0; int done_ral = 0; int done_l = 0; size_t contains_ral = SIZE_MAX; size_t contains_l = SIZE_MAX; for (j = 0; profile[j].operation; j++) if (profile[j].operation == STRINGPREP_BIDI_PROHIBIT_TABLE) { done_prohibited = 1; k = stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[j].table, profile[j].table_size); if (k != -1) return STRINGPREP_BIDI_CONTAINS_PROHIBITED; } else if (profile[j].operation == STRINGPREP_BIDI_RAL_TABLE) { done_ral = 1; if (stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[j].table, profile[j].table_size) != -1) contains_ral = j; } else if (profile[j].operation == STRINGPREP_BIDI_L_TABLE) { done_l = 1; if (stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[j].table, profile[j].table_size) != -1) contains_l = j; } if (!done_prohibited || !done_ral || !done_l) return STRINGPREP_PROFILE_ERROR; if (contains_ral != SIZE_MAX && contains_l != SIZE_MAX) return STRINGPREP_BIDI_BOTH_L_AND_RAL; if (contains_ral != SIZE_MAX) { if (!(stringprep_find_character_in_table (ucs4[0], profile[contains_ral].table, profile[contains_ral].table_size) != -1 && stringprep_find_character_in_table (ucs4[ucs4len - 1], profile [contains_ral].table, profile [contains_ral].table_size) != -1)) return STRINGPREP_BIDI_LEADTRAIL_NOT_RAL; } } break; default: return STRINGPREP_PROFILE_ERROR; break; } } *len = ucs4len; return STRINGPREP_OK; } static int stringprep_4zi_1 (uint32_t * ucs4, size_t ucs4len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile) { int rc; rc = stringprep_4i (ucs4, &ucs4len, maxucs4len, flags, profile); if (rc != STRINGPREP_OK) return rc; if (ucs4len >= maxucs4len) return STRINGPREP_TOO_SMALL_BUFFER; ucs4[ucs4len] = 0; return STRINGPREP_OK; } /** * stringprep_4zi: * @ucs4: input/output array with zero terminated string to prepare. * @maxucs4len: maximum length of input/output array. * @flags: a #Stringprep_profile_flags value, or 0. * @profile: pointer to #Stringprep_profile to use. * * Prepare the input zero terminated UCS-4 string according to the * stringprep profile, and write back the result to the input string. * * Since the stringprep operation can expand the string, @maxucs4len * indicate how large the buffer holding the string is. This function * will not read or write to code points outside that size. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile contain the #Stringprep_profile instructions to * perform. Your application can define new profiles, possibly * re-using the generic stringprep tables that always will be part of * the library, or use one of the currently supported profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an * #Stringprep_rc error code. **/ int stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile) { size_t ucs4len; for (ucs4len = 0; ucs4len < maxucs4len && ucs4[ucs4len] != 0; ucs4len++) ; return stringprep_4zi_1 (ucs4, ucs4len, maxucs4len, flags, profile); } /** * stringprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * @flags: a #Stringprep_profile_flags value, or 0. * @profile: pointer to #Stringprep_profile to use. * * Prepare the input zero terminated UTF-8 string according to the * stringprep profile, and write back the result to the input string. * * Note that you must convert strings entered in the systems locale * into UTF-8 before using this function, see * stringprep_locale_to_utf8(). * * Since the stringprep operation can expand the string, @maxlen * indicate how large the buffer holding the string is. This function * will not read or write to characters outside that size. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile contain the #Stringprep_profile instructions to * perform. Your application can define new profiles, possibly * re-using the generic stringprep tables that always will be part of * the library, or use one of the currently supported profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an error code. **/ int stringprep (char *in, size_t maxlen, Stringprep_profile_flags flags, const Stringprep_profile * profile) { int rc; char *utf8 = NULL; uint32_t *ucs4 = NULL; size_t ucs4len, maxucs4len, adducs4len = strlen (in) / 10 + 1; do { uint32_t *newp; free (ucs4); ucs4 = stringprep_utf8_to_ucs4 (in, -1, &ucs4len); if (ucs4 == NULL) return STRINGPREP_ICONV_ERROR; maxucs4len = ucs4len + adducs4len; newp = realloc (ucs4, maxucs4len * sizeof (uint32_t)); if (!newp) { free (ucs4); return STRINGPREP_MALLOC_ERROR; } ucs4 = newp; rc = stringprep_4i (ucs4, &ucs4len, maxucs4len, flags, profile); adducs4len *= 2; } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc != STRINGPREP_OK) { free (ucs4); return rc; } utf8 = stringprep_ucs4_to_utf8 (ucs4, ucs4len, 0, 0); free (ucs4); if (!utf8) return STRINGPREP_ICONV_ERROR; if (strlen (utf8) >= maxlen) { free (utf8); return STRINGPREP_TOO_SMALL_BUFFER; } strcpy (in, utf8); /* flawfinder: ignore */ free (utf8); return STRINGPREP_OK; } /** * stringprep_profile: * @in: input array with UTF-8 string to prepare. * @out: output variable with pointer to newly allocate string. * @profile: name of stringprep profile to use. * @flags: a #Stringprep_profile_flags value, or 0. * * Prepare the input zero terminated UTF-8 string according to the * stringprep profile, and return the result in a newly allocated * variable. * * Note that you must convert strings entered in the systems locale * into UTF-8 before using this function, see * stringprep_locale_to_utf8(). * * The output @out variable must be deallocated by the caller. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile specifies the name of the stringprep profile to use. * It must be one of the internally supported stringprep profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an error code. **/ int stringprep_profile (const char *in, char **out, const char *profile, Stringprep_profile_flags flags) { const Stringprep_profiles *p; char *str = NULL; size_t len = strlen (in) + 1, addlen = len / 10 + 1; int rc; for (p = &stringprep_profiles[0]; p->name; p++) if (strcmp (p->name, profile) == 0) break; if (!p || !p->name || !p->tables) return STRINGPREP_UNKNOWN_PROFILE; do { free (str); str = (char *) malloc (len); if (str == NULL) return STRINGPREP_MALLOC_ERROR; strcpy (str, in); rc = stringprep (str, len, flags, p->tables); len += addlen; addlen *= 2; } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc == STRINGPREP_OK) *out = str; else free (str); return rc; } /*! \mainpage GNU Internationalized Domain Name Library * * \section intro Introduction * * GNU Libidn is an implementation of the Stringprep, Punycode and IDNA * specifications defined by the IETF Internationalized Domain Names * (IDN) working group, used for internationalized domain names. The * package is available under the GNU Lesser General Public License. * * The library contains a generic Stringprep implementation that does * Unicode 3.2 NFKC normalization, mapping and prohibitation of * characters, and bidirectional character handling. Profiles for * Nameprep, iSCSI, SASL and XMPP are included. Punycode and ASCII * Compatible Encoding (ACE) via IDNA are supported. A mechanism to * define Top-Level Domain (TLD) specific validation tables, and to * compare strings against those tables, is included. Default tables * for some TLDs are also included. * * The Stringprep API consists of two main functions, one for * converting data from the system's native representation into UTF-8, * and one function to perform the Stringprep processing. Adding a * new Stringprep profile for your application within the API is * straightforward. The Punycode API consists of one encoding * function and one decoding function. The IDNA API consists of the * ToASCII and ToUnicode functions, as well as an high-level interface * for converting entire domain names to and from the ACE encoded * form. The TLD API consists of one set of functions to extract the * TLD name from a domain string, one set of functions to locate the * proper TLD table to use based on the TLD name, and core functions * to validate a string against a TLD table, and some utility wrappers * to perform all the steps in one call. * * The library is used by, e.g., GNU SASL and Shishi to process user * names and passwords. Libidn can be built into GNU Libc to enable a * new system-wide getaddrinfo() flag for IDN processing. * * Libidn is developed for the GNU/Linux system, but runs on over 20 Unix * platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. * Libidn is written in C and (parts of) the API is accessible from C, * C++, Emacs Lisp, Python and Java. * * The project web page:\n * http://www.gnu.org/software/libidn/ * * The software archive:\n * ftp://alpha.gnu.org/pub/gnu/libidn/ * * For more information see:\n * http://www.ietf.org/html.charters/idn-charter.html\n * http://www.ietf.org/rfc/rfc3454.txt (stringprep specification)\n * http://www.ietf.org/rfc/rfc3490.txt (idna specification)\n * http://www.ietf.org/rfc/rfc3491.txt (nameprep specification)\n * http://www.ietf.org/rfc/rfc3492.txt (punycode specification)\n * http://www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-string-prep-04.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-utf8-profile-01.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-sasl-anon-00.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-sasl-saslprep-00.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-nodeprep-01.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-resourceprep-01.txt\n * * Further information and paid contract development:\n * Simon Josefsson * * \section examples Examples * * \include example.c * \include example3.c * \include example4.c * \include example5.c */ /** * STRINGPREP_VERSION * * String defined via CPP denoting the header file version number. * Used together with stringprep_check_version() to verify header file * and run-time library consistency. */ /** * STRINGPREP_MAX_MAP_CHARS * * Maximum number of code points that can replace a single code point, * during stringprep mapping. */ /** * Stringprep_rc: * @STRINGPREP_OK: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode * code points, which is forbidden by the profile. * @STRINGPREP_CONTAINS_PROHIBITED: String contain code points * prohibited by the profile. * @STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with * conflicting bidirection category. * @STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character * in string not of proper bidirectional category. * @STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code * points detected by bidirectional code. * @STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too * small. This usually indicate a problem in the calling * application. * @STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. * This usually indicate an internal error in the library. * @STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. * This usually indicate a problem in the calling application. * @STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not * known to the library. * @STRINGPREP_ICONV_ERROR: Character encoding conversion error. * @STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This * usually indicate an internal error in the library. * @STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is * usually a fatal error. * * Enumerated return codes of stringprep(), stringprep_profile() * functions (and macros using those functions). The value 0 is * guaranteed to always correspond to success. */ /** * Stringprep_profile_flags: * @STRINGPREP_NO_NFKC: Disable the NFKC normalization, as well as * selecting the non-NFKC case folding tables. Usually the profile * specifies BIDI and NFKC settings, and applications should not * override it unless in special situations. * @STRINGPREP_NO_BIDI: Disable the BIDI step. Usually the profile * specifies BIDI and NFKC settings, and applications should not * override it unless in special situations. * @STRINGPREP_NO_UNASSIGNED: Make the library return with an error if * string contains unassigned characters according to profile. * * Stringprep profile flags. */ /** * Stringprep_profile_steps: * @STRINGPREP_NFKC: The NFKC step. * @STRINGPREP_BIDI: The BIDI step. * @STRINGPREP_MAP_TABLE: The MAP step. * @STRINGPREP_UNASSIGNED_TABLE: The Unassigned step. * @STRINGPREP_PROHIBIT_TABLE: The Prohibited step. * @STRINGPREP_BIDI_PROHIBIT_TABLE: The BIDI-Prohibited step. * @STRINGPREP_BIDI_RAL_TABLE: The BIDI-RAL step. * @STRINGPREP_BIDI_L_TABLE: The BIDI-L step. * * Various steps in the stringprep algorithm. You really want to * study the source code to understand this one. Only useful if you * want to add another profile. */ /** * stringprep_nameprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the nameprep profile. * The AllowUnassigned flag is true, use * stringprep_nameprep_no_unassigned() if you want a false * AllowUnassigned. Returns 0 iff successful, or an error code. **/ /** * stringprep_nameprep_no_unassigned: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the nameprep profile. * The AllowUnassigned flag is false, use stringprep_nameprep() for * true AllowUnassigned. Returns 0 iff successful, or an error code. **/ /** * stringprep_iscsi: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft iSCSI * stringprep profile. Returns 0 iff successful, or an error code. **/ /** * stringprep_plain: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft SASL * ANONYMOUS profile. Returns 0 iff successful, or an error code. **/ /** * stringprep_kerberos5: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft Kerberos 5 * node identifier profile. Returns 0 iff successful, or an error * code. **/ /** * stringprep_xmpp_nodeprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft XMPP node * identifier profile. Returns 0 iff successful, or an error code. **/ /** * stringprep_xmpp_resourceprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft XMPP resource * identifier profile. Returns 0 iff successful, or an error code. **/ libidn-1.38/lib/strerror-punycode.c0000644000000000000000000000462314076271517014234 00000000000000/* strerror-punycode.c --- Convert punycode errors into text. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "punycode.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * punycode_strerror: * @rc: an #Punycode_status return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * PUNYCODE_SUCCESS: Successful operation. This value is guaranteed * to always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * PUNYCODE_BAD_INPUT: Input is invalid. * PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. * PUNYCODE_OVERFLOW: Input needs wider integers to process. * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * punycode_strerror (Punycode_status rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case PUNYCODE_SUCCESS: p = _("Success"); break; case PUNYCODE_BAD_INPUT: p = _("Invalid input"); break; case PUNYCODE_BIG_OUTPUT: p = _("Output would exceed the buffer space provided"); break; case PUNYCODE_OVERFLOW: p = _("String size limit exceeded"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.38/lib/libidn.pc.in0000644000000000000000000000147314076271517012554 00000000000000# Process this file with autoconf to produce a pkg-config metadata file. # Copyright 2002-2021 Simon Josefsson # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: Libidn Description: IETF stringprep, nameprep, punycode, IDNA text processing. URL: http://www.gnu.org/software/libidn/ Version: @VERSION@ Libs: -L${libdir} -lidn Libs.private: @LTLIBICONV@ Cflags: -I${includedir} libidn-1.38/lib/Makefile.in0000644000000000000000000021327714076273733012440 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Simon Josefsson. # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @TLD_TRUE@am__append_1 = tld.h @TLD_TRUE@am__append_2 = tld.h tld.c tlds.c strerror-tld.c @HAVE_LD_VERSION_SCRIPT_TRUE@am__append_3 = -Wl,--version-script=$(srcdir)/libidn.map @HAVE_LD_VERSION_SCRIPT_FALSE@am__append_4 = -export-symbols-regex \ @HAVE_LD_VERSION_SCRIPT_FALSE@ '^(idn|pr29_|punycode_|stringprep|tld_).*' @HAVE_LD_OUTPUT_DEF_TRUE@am__append_5 = -Wl,--output-def,libidn-$(DLL_VERSION).def subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__include_HEADERS_DIST) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = libidn.pc CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(defexecdir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" \ "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libidn_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ gl/libgnu.la am__libidn_la_SOURCES_DIST = libidn.map gunibreak.h gunicomp.h \ gunidecomp.h nfkc.c toutf8.c version.c stringprep.h \ stringprep.c rfc3454.c rfc3454.h profiles.c punycode.h \ punycode.c idna.h idna.c pr29.h pr29.c idn-free.h idn-free.c \ strerror-idna.c strerror-pr29.c strerror-punycode.c \ strerror-stringprep.c tld.h tld.c tlds.c strerror-tld.c @TLD_TRUE@am__objects_1 = tld.lo tlds.lo strerror-tld.lo am_libidn_la_OBJECTS = nfkc.lo toutf8.lo version.lo stringprep.lo \ rfc3454.lo profiles.lo punycode.lo idna.lo pr29.lo idn-free.lo \ strerror-idna.lo strerror-pr29.lo strerror-punycode.lo \ strerror-stringprep.lo $(am__objects_1) libidn_la_OBJECTS = $(am_libidn_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libidn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libidn_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/idn-free.Plo ./$(DEPDIR)/idna.Plo \ ./$(DEPDIR)/nfkc.Plo ./$(DEPDIR)/pr29.Plo \ ./$(DEPDIR)/profiles.Plo ./$(DEPDIR)/punycode.Plo \ ./$(DEPDIR)/rfc3454.Plo ./$(DEPDIR)/strerror-idna.Plo \ ./$(DEPDIR)/strerror-pr29.Plo \ ./$(DEPDIR)/strerror-punycode.Plo \ ./$(DEPDIR)/strerror-stringprep.Plo \ ./$(DEPDIR)/strerror-tld.Plo ./$(DEPDIR)/stringprep.Plo \ ./$(DEPDIR)/tld.Plo ./$(DEPDIR)/tlds.Plo \ ./$(DEPDIR)/toutf8.Plo ./$(DEPDIR)/version.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libidn_la_SOURCES) DIST_SOURCES = $(am__libidn_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(defexec_DATA) $(pkgconfig_DATA) am__include_HEADERS_DIST = stringprep.h idna.h punycode.h idn-free.h \ pr29.h tld.h HEADERS = $(include_HEADERS) $(nodist_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libidn.pc.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = gen-stringprep-tables.pl gen-unicode-tables.pl gen-tld-tables.pl AM_CPPFLAGS = -I$(srcdir)/gl -Igl -DLIBIDN_BUILDING \ -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = $(WSTACK_CFLAGS) $(WARN_CFLAGS) $(CFLAG_VISIBILITY) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libidn.pc lib_LTLIBRARIES = libidn.la idn_int = idn-int.h BUILT_SOURCES = $(idn_int) gunibreak.h gunicomp.h gunidecomp.h rfc3454.c rfc3454.h tlds.c DISTCLEANFILES = $(idn_int) include_HEADERS = stringprep.h idna.h punycode.h idn-free.h pr29.h \ $(am__append_1) nodist_include_HEADERS = $(idn_int) libidn_la_SOURCES = libidn.map gunibreak.h gunicomp.h gunidecomp.h \ nfkc.c toutf8.c version.c stringprep.h stringprep.c rfc3454.c \ rfc3454.h profiles.c punycode.h punycode.c idna.h idna.c \ pr29.h pr29.c idn-free.h idn-free.c strerror-idna.c \ strerror-pr29.c strerror-punycode.c strerror-stringprep.c \ $(am__append_2) libidn_la_LIBADD = $(LTLIBICONV) $(LTLIBINTL) gl/libgnu.la libidn_la_LDFLAGS = -version-info \ $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -no-undefined \ $(am__append_3) $(am__append_4) $(am__append_5) @HAVE_LD_OUTPUT_DEF_TRUE@defexecdir = $(bindir) @HAVE_LD_OUTPUT_DEF_TRUE@defexec_DATA = libidn-$(DLL_VERSION).def @HAVE_LD_OUTPUT_DEF_TRUE@CLEANFILES = $(defexec_DATA) SPEC = $(top_srcdir)/doc/specifications all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): libidn.pc: $(top_builddir)/config.status $(srcdir)/libidn.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libidn.la: $(libidn_la_OBJECTS) $(libidn_la_DEPENDENCIES) $(EXTRA_libidn_la_DEPENDENCIES) $(AM_V_CCLD)$(libidn_la_LINK) -rpath $(libdir) $(libidn_la_OBJECTS) $(libidn_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idn-free.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idna.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfkc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pr29.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profiles.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/punycode.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc3454.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-idna.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-pr29.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-punycode.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-stringprep.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-tld.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringprep.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tld.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlds.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toutf8.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defexecDATA: $(defexec_DATA) @$(NORMAL_INSTALL) @list='$(defexec_DATA)'; test -n "$(defexecdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(defexecdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(defexecdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defexecdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defexecdir)" || exit $$?; \ done uninstall-defexecDATA: @$(NORMAL_UNINSTALL) @list='$(defexec_DATA)'; test -n "$(defexecdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(defexecdir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) install-nodist_includeHEADERS: $(nodist_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-nodist_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(defexecdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/idn-free.Plo -rm -f ./$(DEPDIR)/idna.Plo -rm -f ./$(DEPDIR)/nfkc.Plo -rm -f ./$(DEPDIR)/pr29.Plo -rm -f ./$(DEPDIR)/profiles.Plo -rm -f ./$(DEPDIR)/punycode.Plo -rm -f ./$(DEPDIR)/rfc3454.Plo -rm -f ./$(DEPDIR)/strerror-idna.Plo -rm -f ./$(DEPDIR)/strerror-pr29.Plo -rm -f ./$(DEPDIR)/strerror-punycode.Plo -rm -f ./$(DEPDIR)/strerror-stringprep.Plo -rm -f ./$(DEPDIR)/strerror-tld.Plo -rm -f ./$(DEPDIR)/stringprep.Plo -rm -f ./$(DEPDIR)/tld.Plo -rm -f ./$(DEPDIR)/tlds.Plo -rm -f ./$(DEPDIR)/toutf8.Plo -rm -f ./$(DEPDIR)/version.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-nodist_includeHEADERS \ install-pkgconfigDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-defexecDATA install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/idn-free.Plo -rm -f ./$(DEPDIR)/idna.Plo -rm -f ./$(DEPDIR)/nfkc.Plo -rm -f ./$(DEPDIR)/pr29.Plo -rm -f ./$(DEPDIR)/profiles.Plo -rm -f ./$(DEPDIR)/punycode.Plo -rm -f ./$(DEPDIR)/rfc3454.Plo -rm -f ./$(DEPDIR)/strerror-idna.Plo -rm -f ./$(DEPDIR)/strerror-pr29.Plo -rm -f ./$(DEPDIR)/strerror-punycode.Plo -rm -f ./$(DEPDIR)/strerror-stringprep.Plo -rm -f ./$(DEPDIR)/strerror-tld.Plo -rm -f ./$(DEPDIR)/stringprep.Plo -rm -f ./$(DEPDIR)/tld.Plo -rm -f ./$(DEPDIR)/tlds.Plo -rm -f ./$(DEPDIR)/toutf8.Plo -rm -f ./$(DEPDIR)/version.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defexecDATA uninstall-includeHEADERS \ uninstall-libLTLIBRARIES uninstall-nodist_includeHEADERS \ uninstall-pkgconfigDATA .MAKE: all check install install-am install-exec install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-defexecDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man \ install-nodist_includeHEADERS install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-defexecDATA \ uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA .PRECIOUS: Makefile idn-int.h: if test -n "$(STDINT_H)"; then \ sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \ else \ echo '#include ' > idn-int.h; \ fi @HAVE_LD_OUTPUT_DEF_TRUE@libidn-$(DLL_VERSION).def: libidn.la #nfkc.c: gunibreak.h gunicomp.h gunidecomp.h #gunibreak.h gunicomp.h gunidecomp.h: gen-unicode-tables.pl $(SPEC)/UnicodeData-3.2.0.txt $(SPEC)/LineBreak-3.2.0.txt $(SPEC)/SpecialCasing-3.2.0.txt $(SPEC)/CaseFolding-3.2.0.txt $(SPEC)/CompositionExclusions-3.2.0.txt # $(PERL) $(srcdir)/gen-unicode-tables.pl -decomp 3.2 $(SPEC) rfc3454.c rfc3454.h: gen-stringprep-tables.pl $(PERL) $(srcdir)/gen-stringprep-tables.pl $(SPEC)/rfc3454.txt tlds.c: gen-tld-tables.pl $(PERL) $(srcdir)/gen-tld-tables.pl $(top_srcdir)/doc/tld/*.tld > tlds.c # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/lib/strerror-stringprep.c0000644000000000000000000001077614076271517014611 00000000000000/* strerror-stringprep.c --- Convert stringprep errors into text. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "stringprep.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * stringprep_strerror: * @rc: a #Stringprep_rc return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * STRINGPREP_OK: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode * code points, which is forbidden by the profile. * STRINGPREP_CONTAINS_PROHIBITED: String contain code points * prohibited by the profile. * STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with * conflicting bidirection category. * STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character * in string not of proper bidirectional category. * STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code * points detected by bidirectional code. * STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too * small. This usually indicate a problem in the calling * application. * STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. * This usually indicate an internal error in the library. * STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. * This usually indicate a problem in the calling application. * STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not * known to the library. * STRINGPREP_ICONV_ERROR: Character encoding conversion error. * STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This * usually indicate an internal error in the library. * STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is * usually a fatal error. * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * stringprep_strerror (Stringprep_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case STRINGPREP_OK: p = _("Success"); break; case STRINGPREP_CONTAINS_UNASSIGNED: p = _("Forbidden unassigned code points in input"); break; case STRINGPREP_CONTAINS_PROHIBITED: p = _("Prohibited code points in input"); break; case STRINGPREP_BIDI_BOTH_L_AND_RAL: p = _("Conflicting bidirectional properties in input"); break; case STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: p = _("Malformed bidirectional string"); break; case STRINGPREP_BIDI_CONTAINS_PROHIBITED: p = _("Prohibited bidirectional code points in input"); break; case STRINGPREP_TOO_SMALL_BUFFER: p = _("Output would exceed the buffer space provided"); break; case STRINGPREP_PROFILE_ERROR: p = _("Error in stringprep profile definition"); break; case STRINGPREP_FLAG_ERROR: p = _("Flag conflict with profile"); break; case STRINGPREP_UNKNOWN_PROFILE: p = _("Unknown profile"); break; case STRINGPREP_ICONV_ERROR: p = _("Character encoding conversion error"); break; case STRINGPREP_NFKC_FAILED: p = _("Unicode normalization failed (internal error)"); break; case STRINGPREP_MALLOC_ERROR: p = _("Cannot allocate memory"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.38/lib/tlds.c0000644000000000000000000000177414076273624011501 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-tld-tables.pl and re-run. */ #include "tld.h" /* TLD fr */ static const Tld_table_element _tld_fr_valid[] = { { 0x2d, 0x2d }, { 0x30, 0x39 }, { 0x61, 0x7a }, { 0xe0, 0xe0 }, { 0xe2, 0xe2 }, { 0xe6, 0xeb }, { 0xee, 0xef }, { 0xf4, 0xf4 }, { 0xf9, 0xf9 }, { 0xfb, 0xfc }, { 0xff, 0xff }, { 0x153, 0x153 } }; static const Tld_table _tld_fr = { "fr", "1.0", 12, &_tld_fr_valid[0] }; /* TLD no */ static const Tld_table_element _tld_no_valid[] = { { 0xe0, 0xe1 }, { 0xe4, 0xea }, { 0xef, 0xef }, { 0xf1, 0xf4 }, { 0xf6, 0xf6 }, { 0xf8, 0xf8 }, { 0xfc, 0xfc }, { 0x10d, 0x10d }, { 0x111, 0x111 }, { 0x144, 0x144 }, { 0x14b, 0x14b }, { 0x161, 0x161 }, { 0x167, 0x167 }, { 0x17e, 0x17e } }; static const Tld_table _tld_no = { "no", "2.0", 14, &_tld_no_valid[0] }; /* Main array */ const Tld_table * _tld_tables[] = { &_tld_fr, &_tld_no, NULL }; libidn-1.38/lib/punycode.c0000644000000000000000000003765714076271517012371 00000000000000/* punycode.c --- Implementation of punycode used to ASCII encode IDN's. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ /* * This file is derived from RFC 3492bis written by Adam M. Costello, * downloaded from http://www.nicemice.net/idn/punycode-spec.gz on * 2015-03-02 with SHA1 a966a8017f6be579d74a50a226accc7607c40133, a * copy of which is stored in the GNU Libidn version controlled * repository under doc/specification/punycode-spec.gz. * * The changes compared to Adam's file include: re-indentation, adding * the license boilerplate and this comment, #include of config.h and * punycode.h, adding GTK-DOC comments, changing the return code of * punycode_encode and punycode_decode from enum to int, renaming the * input_length_orig function input variable to input_length (and * renaming the internal input_length variable to input_len) in * punycode_encode. * * Adam's file contains the following: * * punycode-sample.c 2.0.0 (2004-Mar-21-Sun) * http://www.nicemice.net/idn/ * Adam M. Costello * http://www.nicemice.net/amc/ * * This is ANSI C code (C89) implementing Punycode 1.0.x. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. */ #include /**********************************************************/ /* Implementation (would normally go in its own .c file): */ #include #include "punycode.h" /*** Bootstring parameters for Punycode ***/ enum { base = 36, tmin = 1, tmax = 26, skew = 38, damp = 700, initial_bias = 72, initial_n = 0x80, delimiter = 0x2D }; /* basic(cp) tests whether cp is a basic code point: */ #define basic(cp) ((punycode_uint)(cp) < 0x80) /* delim(cp) tests whether cp is a delimiter: */ #define delim(cp) ((cp) == delimiter) /* decode_digit(cp) returns the numeric value of a basic code */ /* point (for use in representing integers) in the range 0 to */ /* base-1, or base if cp does not represent a value. */ static unsigned decode_digit (int cp) { return (unsigned) (cp - 48 < 10 ? cp - 22 : cp - 65 < 26 ? cp - 65 : cp - 97 < 26 ? cp - 97 : base); } /* encode_digit(d,flag) returns the basic code point whose value */ /* (when used for representing integers) is d, which needs to be in */ /* the range 0 to base-1. The lowercase form is used unless flag is */ /* nonzero, in which case the uppercase form is used. The behavior */ /* is undefined if flag is nonzero and digit d has no uppercase form. */ static char encode_digit (punycode_uint d, int flag) { return d + 22 + 75 * (d < 26) - ((flag != 0) << 5); /* 0..25 map to ASCII a..z or A..Z */ /* 26..35 map to ASCII 0..9 */ } /* flagged(bcp) tests whether a basic code point is flagged */ /* (uppercase). The behavior is undefined if bcp is not a */ /* basic code point. */ #define flagged(bcp) ((punycode_uint)(bcp) - 65 < 26) /* encode_basic(bcp,flag) forces a basic code point to lowercase */ /* if flag is zero, uppercase if flag is nonzero, and returns */ /* the resulting code point. The code point is unchanged if it */ /* is caseless. The behavior is undefined if bcp is not a basic */ /* code point. */ static char encode_basic (punycode_uint bcp, int flag) { bcp -= (bcp - 97 < 26) << 5; return bcp + ((!flag && (bcp - 65 < 26)) << 5); } /*** Platform-specific constants ***/ /* maxint is the maximum value of a punycode_uint variable: */ static const punycode_uint maxint = -1; /* Because maxint is unsigned, -1 becomes the maximum value. */ /*** Bias adaptation function ***/ static punycode_uint adapt (punycode_uint delta, punycode_uint numpoints, int firsttime) { punycode_uint k; delta = firsttime ? delta / damp : delta >> 1; /* delta >> 1 is a faster way of doing delta / 2 */ delta += delta / numpoints; for (k = 0; delta > ((base - tmin) * tmax) / 2; k += base) { delta /= base - tmin; } return k + (base - tmin + 1) * delta / (delta + skew); } /*** Main encode function ***/ /** * punycode_encode: * @input_length: The number of code points in the @input array and * the number of flags in the @case_flags array. * @input: An array of code points. They are presumed to be Unicode * code points, but that is not strictly REQUIRED. The array * contains code points, not code units. UTF-16 uses code units * D800 through DFFF to refer to code points 10000..10FFFF. The * code points D800..DFFF do not occur in any valid Unicode string. * The code points that can occur in Unicode strings (0..D7FF and * E000..10FFFF) are also called Unicode scalar values. * @case_flags: A %NULL pointer or an array of boolean values parallel * to the @input array. Nonzero (true, flagged) suggests that the * corresponding Unicode character be forced to uppercase after * being decoded (if possible), and zero (false, unflagged) suggests * that it be forced to lowercase (if possible). ASCII code points * (0..7F) are encoded literally, except that ASCII letters are * forced to uppercase or lowercase according to the corresponding * case flags. If @case_flags is a %NULL pointer then ASCII letters * are left as they are, and other code points are treated as * unflagged. * @output_length: The caller passes in the maximum number of ASCII * code points that it can receive. On successful return it will * contain the number of ASCII code points actually output. * @output: An array of ASCII code points. It is *not* * null-terminated; it will contain zeros if and only if the @input * contains zeros. (Of course the caller can leave room for a * terminator and add one if needed.) * * Converts a sequence of code points (presumed to be Unicode code * points) to Punycode. * * Return value: The return value can be any of the #Punycode_status * values defined above except %PUNYCODE_BAD_INPUT. If not * %PUNYCODE_SUCCESS, then @output_size and @output might contain * garbage. **/ int punycode_encode (size_t input_length, const punycode_uint input[], const unsigned char case_flags[], size_t *output_length, char output[]) { punycode_uint input_len, n, delta, h, b, bias, j, m, q, k, t; size_t out, max_out; /* The Punycode spec assumes that the input length is the same type */ /* of integer as a code point, so we need to convert the size_t to */ /* a punycode_uint, which could overflow. */ if (input_length > maxint) return punycode_overflow; input_len = (punycode_uint) input_length; /* Initialize the state: */ n = initial_n; delta = 0; out = 0; max_out = *output_length; bias = initial_bias; /* Handle the basic code points: */ for (j = 0; j < input_len; ++j) { if (basic (input[j])) { if (max_out - out < 2) return punycode_big_output; output[out++] = case_flags ? encode_basic (input[j], case_flags[j]) : (char) input[j]; } else if (input[j] > 0x10FFFF || (input[j] >= 0xD800 && input[j] <= 0xDBFF)) return punycode_bad_input; /* else if (input[j] < n) return punycode_bad_input; */ /* (not needed for Punycode with unsigned code points) */ } h = b = (punycode_uint) out; /* cannot overflow because out <= input_len <= maxint */ /* h is the number of code points that have been handled, b is the */ /* number of basic code points, and out is the number of ASCII code */ /* points that have been output. */ if (b > 0) output[out++] = delimiter; /* Main encoding loop: */ while (h < input_len) { /* All non-basic code points < n have been */ /* handled already. Find the next larger one: */ for (m = maxint, j = 0; j < input_len; ++j) { /* if (basic(input[j])) continue; */ /* (not needed for Punycode) */ if (input[j] >= n && input[j] < m) m = input[j]; } /* Increase delta enough to advance the decoder's */ /* state to , but guard against overflow: */ if (m - n > (maxint - delta) / (h + 1)) return punycode_overflow; delta += (m - n) * (h + 1); n = m; for (j = 0; j < input_len; ++j) { /* Punycode does not need to check whether input[j] is basic: */ if (input[j] < n /* || basic(input[j]) */ ) { if (++delta == 0) return punycode_overflow; } if (input[j] == n) { /* Represent delta as a generalized variable-length integer: */ for (q = delta, k = base;; k += base) { if (out >= max_out) return punycode_big_output; t = k <= bias /* + tmin */ ? tmin : /* +tmin not needed */ k >= bias + tmax ? tmax : k - bias; if (q < t) break; output[out++] = encode_digit (t + (q - t) % (base - t), 0); q = (q - t) / (base - t); } output[out++] = encode_digit (q, case_flags && case_flags[j]); bias = adapt (delta, h + 1, h == b); delta = 0; ++h; } } ++delta, ++n; } *output_length = out; return punycode_success; } /*** Main decode function ***/ /** * punycode_decode: * @input_length: The number of ASCII code points in the @input array. * @input: An array of ASCII code points (0..7F). * @output_length: The caller passes in the maximum number of code * points that it can receive into the @output array (which is also * the maximum number of flags that it can receive into the * @case_flags array, if @case_flags is not a %NULL pointer). On * successful return it will contain the number of code points * actually output (which is also the number of flags actually * output, if case_flags is not a null pointer). The decoder will * never need to output more code points than the number of ASCII * code points in the input, because of the way the encoding is * defined. The number of code points output cannot exceed the * maximum possible value of a punycode_uint, even if the supplied * @output_length is greater than that. * @output: An array of code points like the input argument of * punycode_encode() (see above). * @case_flags: A %NULL pointer (if the flags are not needed by the * caller) or an array of boolean values parallel to the @output * array. Nonzero (true, flagged) suggests that the corresponding * Unicode character be forced to uppercase by the caller (if * possible), and zero (false, unflagged) suggests that it be forced * to lowercase (if possible). ASCII code points (0..7F) are output * already in the proper case, but their flags will be set * appropriately so that applying the flags would be harmless. * * Converts Punycode to a sequence of code points (presumed to be * Unicode code points). * * Return value: The return value can be any of the #Punycode_status * values defined above. If not %PUNYCODE_SUCCESS, then * @output_length, @output, and @case_flags might contain garbage. * **/ int punycode_decode (size_t input_length, const char input[], size_t *output_length, punycode_uint output[], unsigned char case_flags[]) { punycode_uint n, out, i, max_out, bias, oldi, w, k, digit, t; size_t b, j, in; /* Initialize the state: */ n = initial_n; out = i = 0; max_out = *output_length > maxint ? maxint : (punycode_uint) * output_length; bias = initial_bias; /* Handle the basic code points: Let b be the number of input code */ /* points before the last delimiter, or 0 if there is none, then */ /* copy the first b code points to the output. */ for (b = j = 0; j < input_length; ++j) if (delim (input[j])) b = j; if (b > max_out) return punycode_big_output; for (j = 0; j < b; ++j) { if (case_flags) case_flags[out] = flagged (input[j]); if (!basic (input[j])) return punycode_bad_input; output[out++] = input[j]; } for (j = b + (b > 0); j < input_length; ++j) if (!basic (input[j])) return punycode_bad_input; /* Main decoding loop: Start just after the last delimiter if any */ /* basic code points were copied; start at the beginning otherwise. */ for (in = b > 0 ? b + 1 : 0; in < input_length; ++out) { /* in is the index of the next ASCII code point to be consumed, */ /* and out is the number of code points in the output array. */ /* Decode a generalized variable-length integer into delta, */ /* which gets added to i. The overflow checking is easier */ /* if we increase i as we go, then subtract off its starting */ /* value at the end to obtain delta. */ for (oldi = i, w = 1, k = base;; k += base) { if (in >= input_length) return punycode_bad_input; digit = decode_digit (input[in++]); if (digit >= base) return punycode_bad_input; if (digit > (maxint - i) / w) return punycode_overflow; i += digit * w; t = k <= bias /* + tmin */ ? tmin : /* +tmin not needed */ k >= bias + tmax ? tmax : k - bias; if (digit < t) break; if (w > maxint / (base - t)) return punycode_overflow; w *= (base - t); } bias = adapt (i - oldi, out + 1, oldi == 0); /* i was supposed to wrap around from out+1 to 0, */ /* incrementing n each time, so we'll fix that now: */ if (i / (out + 1) > maxint - n) return punycode_overflow; n += i / (out + 1); if (n > 0x10FFFF || (n >= 0xD800 && n <= 0xDBFF)) return punycode_bad_input; i %= (out + 1); /* Insert n at position i of the output: */ /* not needed for Punycode: */ /* if (basic(n)) return punycode_bad_input; */ if (out >= max_out) return punycode_big_output; if (case_flags) { memmove (case_flags + i + 1, case_flags + i, out - i); /* Case of last ASCII code point determines case flag: */ case_flags[i] = flagged (input[in - 1]); } memmove (output + i + 1, output + i, (out - i) * sizeof *output); output[i++] = n; } *output_length = (size_t) out; /* cannot overflow because out <= old value of *output_length */ return punycode_success; } /** * punycode_uint * * Unicode code point data type, this is always a 32 bit unsigned * integer. */ /** * Punycode_status * @PUNYCODE_SUCCESS: Successful operation. This value is guaranteed * to always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @PUNYCODE_BAD_INPUT: Input is invalid. * @PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. * @PUNYCODE_OVERFLOW: Input needs wider integers to process. * * Enumerated return codes of punycode_encode() and punycode_decode(). * The value 0 is guaranteed to always correspond to success. */ libidn-1.38/lib/gen-unicode-tables.pl0000755000000000000000000010275014076271517014367 00000000000000#! /usr/bin/perl -w # Copyright (C) 2004-2021 Simon Josefsson # Copyright (C) 1998, 1999 Tom Tromey # Copyright (C) 2001 Red Hat Software # 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 3 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, see . # I consider the output of this program to be unrestricted. Use it as # you will. # Contributer(s): # Andrew Taylor # gen-unicode-tables.pl - Generate tables for libunicode from Unicode data. # See http://www.unicode.org/Public/UNIDATA/UnicodeCharacterDatabase.html # FIXME: # * For decomp table it might make sense to use a shift count other # than 8. We could easily compute the perfect shift count. # * This script no longer works with Perl 5.10. Sigh.. # we use some perl unicode features require 5.006; use vars qw($CODE $NAME $CATEGORY $COMBINING_CLASSES $BIDI_CATEGORY $DECOMPOSITION $DECIMAL_VALUE $DIGIT_VALUE $NUMERIC_VALUE $MIRRORED $OLD_NAME $COMMENT $UPPER $LOWER $TITLE $BREAK_CODE $BREAK_CATEGORY $BREAK_NAME $CASE_CODE $CASE_LOWER $CASE_TITLE $CASE_UPPER $CASE_CONDITION); # Names of fields in Unicode data table. $CODE = 0; $NAME = 1; $CATEGORY = 2; $COMBINING_CLASSES = 3; $BIDI_CATEGORY = 4; $DECOMPOSITION = 5; $DECIMAL_VALUE = 6; $DIGIT_VALUE = 7; $NUMERIC_VALUE = 8; $MIRRORED = 9; $OLD_NAME = 10; $COMMENT = 11; $UPPER = 12; $LOWER = 13; $TITLE = 14; # Names of fields in the line break table $BREAK_CODE = 0; $BREAK_PROPERTY = 1; # Names of fields in the SpecialCasing table $CASE_CODE = 0; $CASE_LOWER = 1; $CASE_TITLE = 2; $CASE_UPPER = 3; $CASE_CONDITION = 4; # Names of fields in the CaseFolding table $FOLDING_CODE = 0; $FOLDING_STATUS = 1; $FOLDING_MAPPING = 2; # Map general category code onto symbolic name. %mappings = ( # Normative. 'Lu' => "G_UNICODE_UPPERCASE_LETTER", 'Ll' => "G_UNICODE_LOWERCASE_LETTER", 'Lt' => "G_UNICODE_TITLECASE_LETTER", 'Mn' => "G_UNICODE_NON_SPACING_MARK", 'Mc' => "G_UNICODE_COMBINING_MARK", 'Me' => "G_UNICODE_ENCLOSING_MARK", 'Nd' => "G_UNICODE_DECIMAL_NUMBER", 'Nl' => "G_UNICODE_LETTER_NUMBER", 'No' => "G_UNICODE_OTHER_NUMBER", 'Zs' => "G_UNICODE_SPACE_SEPARATOR", 'Zl' => "G_UNICODE_LINE_SEPARATOR", 'Zp' => "G_UNICODE_PARAGRAPH_SEPARATOR", 'Cc' => "G_UNICODE_CONTROL", 'Cf' => "G_UNICODE_FORMAT", 'Cs' => "G_UNICODE_SURROGATE", 'Co' => "G_UNICODE_PRIVATE_USE", 'Cn' => "G_UNICODE_UNASSIGNED", # Informative. 'Lm' => "G_UNICODE_MODIFIER_LETTER", 'Lo' => "G_UNICODE_OTHER_LETTER", 'Pc' => "G_UNICODE_CONNECT_PUNCTUATION", 'Pd' => "G_UNICODE_DASH_PUNCTUATION", 'Ps' => "G_UNICODE_OPEN_PUNCTUATION", 'Pe' => "G_UNICODE_CLOSE_PUNCTUATION", 'Pi' => "G_UNICODE_INITIAL_PUNCTUATION", 'Pf' => "G_UNICODE_FINAL_PUNCTUATION", 'Po' => "G_UNICODE_OTHER_PUNCTUATION", 'Sm' => "G_UNICODE_MATH_SYMBOL", 'Sc' => "G_UNICODE_CURRENCY_SYMBOL", 'Sk' => "G_UNICODE_MODIFIER_SYMBOL", 'So' => "G_UNICODE_OTHER_SYMBOL" ); %break_mappings = ( 'BK' => "G_UNICODE_BREAK_MANDATORY", 'CR' => "G_UNICODE_BREAK_CARRIAGE_RETURN", 'LF' => "G_UNICODE_BREAK_LINE_FEED", 'CM' => "G_UNICODE_BREAK_COMBINING_MARK", 'SG' => "G_UNICODE_BREAK_SURROGATE", 'ZW' => "G_UNICODE_BREAK_ZERO_WIDTH_SPACE", 'IN' => "G_UNICODE_BREAK_INSEPARABLE", 'GL' => "G_UNICODE_BREAK_NON_BREAKING_GLUE", 'CB' => "G_UNICODE_BREAK_CONTINGENT", 'SP' => "G_UNICODE_BREAK_SPACE", 'BA' => "G_UNICODE_BREAK_AFTER", 'BB' => "G_UNICODE_BREAK_BEFORE", 'B2' => "G_UNICODE_BREAK_BEFORE_AND_AFTER", 'HY' => "G_UNICODE_BREAK_HYPHEN", 'NS' => "G_UNICODE_BREAK_NON_STARTER", 'OP' => "G_UNICODE_BREAK_OPEN_PUNCTUATION", 'CL' => "G_UNICODE_BREAK_CLOSE_PUNCTUATION", 'QU' => "G_UNICODE_BREAK_QUOTATION", 'EX' => "G_UNICODE_BREAK_EXCLAMATION", 'ID' => "G_UNICODE_BREAK_IDEOGRAPHIC", 'NU' => "G_UNICODE_BREAK_NUMERIC", 'IS' => "G_UNICODE_BREAK_INFIX_SEPARATOR", 'SY' => "G_UNICODE_BREAK_SYMBOL", 'AL' => "G_UNICODE_BREAK_ALPHABETIC", 'PR' => "G_UNICODE_BREAK_PREFIX", 'PO' => "G_UNICODE_BREAK_POSTFIX", 'SA' => "G_UNICODE_BREAK_COMPLEX_CONTEXT", 'AI' => "G_UNICODE_BREAK_AMBIGUOUS", 'NL' => "G_UNICODE_BREAK_NEXT_LINE", 'WJ' => "G_UNICODE_BREAK_WORD_JOINER", 'XX' => "G_UNICODE_BREAK_UNKNOWN" ); # Title case mappings. %title_to_lower = (); %title_to_upper = (); # Maximum length of special-case strings my @special_cases; my @special_case_offsets; my $special_case_offset = 0; $do_decomp = 0; $do_props = 1; if (@ARGV && $ARGV[0] eq '-decomp') { $do_decomp = 1; $do_props = 0; shift @ARGV; } elsif (@ARGV && $ARGV[0] eq '-both') { $do_decomp = 1; shift @ARGV; } if (@ARGV != 2) { $0 =~ s@.*/@@; die "\nUsage: $0 [-decomp | -both] UNICODE-VERSION DIRECTORY\n\n DIRECTORY should contain the following Unicode data files:\n UnicodeData.txt, LineBreak.txt, SpecialCasing.txt, CaseFolding.txt,\n CompositionExclusions.txt, BidiMirroring.txt\n\n"; } my ($unicodedatatxt, $linebreaktxt, $specialcasingtxt, $casefoldingtxt, $compositionexclusionstxt, $bidimirroringtxt); my $d = $ARGV[1]; opendir (my $dir, $d) or die "Cannot open Unicode data dir $d: $!\n"; for my $f (readdir ($dir)) { $unicodedatatxt = "$d/$f" if ($f =~ /UnicodeData.*\.txt/); $linebreaktxt = "$d/$f" if ($f =~ /LineBreak.*\.txt/); $specialcasingtxt = "$d/$f" if ($f =~ /SpecialCasing.*\.txt/); $casefoldingtxt = "$d/$f" if ($f =~ /CaseFolding.*\.txt/); $compositionexclusionstxt = "$d/$f" if ($f =~ /CompositionExclusions.*\.txt/); $bidimirroringtxt = "$d/$f" if ($f =~ /BidiMirroring.*\.txt/); } defined $unicodedatatxt or die "Did not find UnicodeData file"; defined $linebreaktxt or die "Did not find LineBreak file"; defined $specialcasingtxt or die "Did not find SpecialCasing file"; defined $casefoldingtxt or die "Did not find CaseFolding file"; defined $compositionexclusionstxt or die "Did not find CompositionExclusions file"; defined $bidimirroringtxt or die "Did not find BidiMirroring file"; print "Creating decomp table\n" if ($do_decomp); print "Creating property table\n" if ($do_props); print "Composition exlusions from $compositionexclusionstxt\n"; open (INPUT, "< $compositionexclusionstxt") || exit 1; while () { chop; next if /^#/; next if /^\s*$/; s/\s*#.*//; s/^\s*//; s/\s*$//; $composition_exclusions{hex($_)} = 1; } close INPUT; print "Unicode data from $unicodedatatxt\n"; open (INPUT, "< $unicodedatatxt") || exit 1; # we save memory by skipping the huge empty area before U+E0000 my $pages_before_e0000; $last_code = -1; while () { chop; @fields = split (';', $_, 30); if ($#fields != 14) { printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields); } $code = hex ($fields[$CODE]); if ($code >= 0xE0000 and $last_code < 0xE0000) { $pages_before_e0000 = ($last_code >> 8) + 1; } if ($code > $last_code + 1) { # Found a gap. if ($fields[$NAME] =~ /Last>/) { # Fill the gap with the last character read, # since this was a range specified in the char database @gfields = @fields; } else { # The gap represents undefined characters. Only the type # matters. @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', '', '', '', ''); } for (++$last_code; $last_code < $code; ++$last_code) { $gfields{$CODE} = sprintf ("%04x", $last_code); &process_one ($last_code, @gfields); } } &process_one ($code, @fields); $last_code = $code; } close INPUT; @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', '', '', '', ''); for (++$last_code; $last_code <= 0x10FFFF; ++$last_code) { $gfields{$CODE} = sprintf ("%04x", $last_code); &process_one ($last_code, @gfields); } --$last_code; # Want last to be 0x10FFFF. print "Creating line break table\n"; print "Line break data from $linebreaktxt\n"; open (INPUT, "< $linebreaktxt") || exit 1; $last_code = -1; while () { my ($start_code, $end_code); chop; next if /^#/; s/\s*#.*//; @fields = split (';', $_, 30); if ($#fields != 1) { printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields); next; } if ($fields[$CODE] =~ /([A-F0-9]{4,6})\.\.([A-F0-9]{4,6})/) { $start_code = hex ($1); $end_code = hex ($2); } else { $start_code = $end_code = hex ($fields[$CODE]); } if ($start_code > $last_code + 1) { # The gap represents undefined characters. If assigned, # they are AL, if not assigned, XX for (++$last_code; $last_code < $start_code; ++$last_code) { if ($type[$last_code] eq 'Cn') { $break_props[$last_code] = 'XX'; } else { $break_props[$last_code] = 'AL'; } } } for ($last_code = $start_code; $last_code <= $end_code; $last_code++) { $break_props[$last_code] = $fields[$BREAK_PROPERTY]; } $last_code = $end_code; } close INPUT; for (++$last_code; $last_code <= 0x10FFFF; ++$last_code) { if ($type[$last_code] eq 'Cn') { $break_props[$last_code] = 'XX'; } else { $break_props[$last_code] = 'AL'; } } --$last_code; # Want last to be 0x10FFFF. print STDERR "Last code is not 0x10FFFF" if ($last_code != 0x10FFFF); print "Reading special-casing table for case conversion\n"; open (INPUT, "< $specialcasingtxt") || exit 1; while () { my $code; chop; next if /^#/; next if /^\s*$/; s/\s*#.*//; @fields = split ('\s*;\s*', $_, 30); $raw_code = $fields[$CASE_CODE]; $code = hex ($raw_code); if ($#fields != 4 && $#fields != 5) { printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields); next; } if (!defined $type[$code]) { printf STDERR "Special case for code point: $code, which has no defined type\n"; next; } if (defined $fields[5]) { # Ignore conditional special cases - we'll handle them in code next; } if ($type[$code] eq 'Lu') { (hex $fields[$CASE_UPPER] == $code) || die "$raw_code is Lu and UCD_Upper($raw_code) != $raw_code"; &add_special_case ($code, $value[$code], $fields[$CASE_LOWER], $fields[$CASE_TITLE]); } elsif ($type[$code] eq 'Lt') { (hex $fields[$CASE_TITLE] == $code) || die "$raw_code is Lt and UCD_Title($raw_code) != $raw_code"; &add_special_case ($code, undef, $fields[$CASE_LOWER], $fields[$CASE_UPPER]); } elsif ($type[$code] eq 'Ll') { (hex $fields[$CASE_LOWER] == $code) || die "$raw_code is Ll and UCD_Lower($raw_code) != $raw_code"; &add_special_case ($code, $value[$code], $fields[$CASE_UPPER], $fields[$CASE_TITLE]); } else { printf STDERR "Special case for non-alphabetic code point: $raw_code\n"; next; } } close INPUT; open (INPUT, "< $casefoldingtxt") || exit 1; my $casefoldlen = 0; my @casefold; while () { my $code; chop; next if /^#/; next if /^\s*$/; s/\s*#.*//; @fields = split ('\s*;\s*', $_, 30); $raw_code = $fields[$FOLDING_CODE]; $code = hex ($raw_code); if ($#fields != 3) { printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields); next; } # we don't use Simple or Turkic rules here next if ($fields[$FOLDING_STATUS] =~ /^[ST]$/); @values = map { hex ($_) } split /\s+/, $fields[$FOLDING_MAPPING]; # Check simple case if (@values == 1 && !(defined $value[$code] && $value[$code] >= 0x1000000) && defined $type[$code]) { my $lower; if ($type[$code] eq 'Ll') { $lower = $code; } elsif ($type[$code] eq 'Lt') { $lower = $title_to_lower{$code}; } elsif ($type[$code] eq 'Lu') { $lower = $value[$code]; } else { $lower = $code; } if ($lower == $values[0]) { next; } } my $string = pack ("U*", @values); if (1 + &length_in_bytes ($string) > $casefoldlen) { $casefoldlen = 1 + &length_in_bytes ($string); } push @casefold, [ $code, &escape ($string) ]; } close INPUT; open (INPUT, "< $bidimirroringtxt") || exit 1; my @bidimirror; while () { chomp; next if /^#/; next if /^\s*$/; s/\s*#.*//; @fields = split ('\s*;\s*', $_, 30); push @bidimirror, [hex ($fields[0]), hex ($fields[1])]; } if ($do_props) { &print_tables ($last_code) } if ($do_decomp) { &print_decomp ($last_code); &output_composition_table; } &print_line_break ($last_code); exit 0; # perl "length" returns the length in characters sub length_in_bytes { my ($string) = @_; use bytes; return length $string; } # Process a single character. sub process_one { my ($code, @fields) = @_; $type[$code] = $fields[$CATEGORY]; if ($type[$code] eq 'Nd') { $value[$code] = int ($fields[$DECIMAL_VALUE]); } elsif ($type[$code] eq 'Ll') { $value[$code] = hex ($fields[$UPPER]); } elsif ($type[$code] eq 'Lu') { $value[$code] = hex ($fields[$LOWER]); } if ($type[$code] eq 'Lt') { $title_to_lower{$code} = hex ($fields[$LOWER]); $title_to_upper{$code} = hex ($fields[$UPPER]); } $cclass[$code] = $fields[$COMBINING_CLASSES]; # Handle decompositions. if ($fields[$DECOMPOSITION] ne '') { if ($fields[$DECOMPOSITION] =~ s/\<.*\>\s*//) { $decompose_compat[$code] = 1; } else { $decompose_compat[$code] = 0; if (!exists $composition_exclusions{$code}) { $compositions{$code} = $fields[$DECOMPOSITION]; } } $decompositions[$code] = $fields[$DECOMPOSITION]; } } sub print_tables { my ($last) = @_; my ($outfile) = "gunichartables.h"; local ($bytes_out) = 0; print "Writing $outfile...\n"; open (OUT, "> $outfile"); print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; print OUT "#ifndef CHARTABLES_H\n"; print OUT "#define CHARTABLES_H\n\n"; print OUT "#define G_UNICODE_DATA_VERSION \"$ARGV[0]\"\n\n"; printf OUT "#define G_UNICODE_LAST_CHAR 0x%04x\n\n", $last; printf OUT "#define G_UNICODE_MAX_TABLE_INDEX 10000\n\n"; my $last_part1 = ($pages_before_e0000 * 256) - 1; printf OUT "#define G_UNICODE_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; printf OUT "#define G_UNICODE_LAST_PAGE_PART1 %d\n\n", $pages_before_e0000 - 1; $table_index = 0; printf OUT "static const char type_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 1, \&fetch_type); } printf OUT "\n};\n\n"; printf OUT "/* U+0000 through U+%04X */\n", $last_part1; print OUT "static const gint16 type_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; printf OUT "/* U+E0000 through U+%04X */\n", $last; print OUT "static const gint16 type_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; # # Now print attribute table. # $table_index = 0; printf OUT "static const gunichar attr_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 4, \&fetch_attr); } printf OUT "\n};\n\n"; printf OUT "/* U+0000 through U+%04X */\n", $last_part1; print OUT "static const gint16 attr_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; printf OUT "/* U+E0000 through U+%04X */\n", $last; print OUT "static const gint16 attr_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; # # print title case table # print OUT "static const gunichar title_table[][3] = {\n"; my ($item); my ($first) = 1; foreach $item (sort keys %title_to_lower) { print OUT ",\n" unless $first; $first = 0; printf OUT " { 0x%04x, 0x%04x, 0x%04x }", $item, $title_to_upper{$item}, $title_to_lower{$item}; $bytes_out += 12; } print OUT "\n};\n\n"; # # And special case conversion table -- conversions that change length # &output_special_case_table (\*OUT); &output_casefold_table (\*OUT); print OUT "static const struct {\n"; print OUT " gunichar ch;\n"; print OUT " gunichar mirrored_ch;\n"; print OUT "} bidi_mirroring_table[] =\n"; print OUT "{\n"; $first = 1; foreach $item (@bidimirror) { print OUT ",\n" unless $first; $first = 0; printf OUT " { 0x%04x, 0x%04x }", $item->[0], $item->[1]; $bytes_out += 8; } print OUT "\n};\n\n"; print OUT "#endif /* CHARTABLES_H */\n"; close (OUT); printf STDERR "Generated %d bytes in tables\n", $bytes_out; } # A fetch function for the type table. sub fetch_type { my ($index) = @_; return $mappings{$type[$index]}; } # A fetch function for the attribute table. sub fetch_attr { my ($index) = @_; if (defined $value[$index]) { return sprintf ("0x%04x", $value[$index]); } else { return "0x0000"; } } sub print_row { my ($start, $typsize, $fetcher) = @_; my ($i); my (@values); my ($flag) = 1; my ($off); for ($off = 0; $off < 256; ++$off) { $values[$off] = $fetcher->($off + $start); if ($values[$off] ne $values[0]) { $flag = 0; } } if ($flag) { return $values[0] . " + G_UNICODE_MAX_TABLE_INDEX"; } printf OUT ",\n" if ($table_index != 0); printf OUT " { /* page %d, index %d */\n ", $start / 256, $table_index; my ($column) = 4; for ($i = $start; $i < $start + 256; ++$i) { print OUT ", " if $i > $start; my ($text) = $values[$i - $start]; if (length ($text) + $column + 2 > 78) { print OUT "\n "; $column = 4; } print OUT $text; $column += length ($text) + 2; } print OUT "\n }"; $bytes_out += 256 * $typsize; return sprintf "%d /* page %d */", $table_index++, $start / 256; } sub escape { my ($string) = @_; my $escaped = unpack("H*", $string); $escaped =~ s/(.{2})/\\x$1/g; return $escaped; } # Returns the offset of $decomp in the offset string. Updates the # referenced variables as appropriate. sub handle_decomp ($$$$) { my ($decomp, $decomp_offsets_ref, $decomp_string_ref, $decomp_string_offset_ref) = @_; my $offset = "G_UNICODE_NOT_PRESENT_OFFSET"; if (defined $decomp) { if (defined $decomp_offsets_ref->{$decomp}) { $offset = $decomp_offsets_ref->{$decomp}; } else { $offset = ${$decomp_string_offset_ref}; $decomp_offsets_ref->{$decomp} = $offset; ${$decomp_string_ref} .= "\n \"" . &escape ($decomp) . "\\0\" /* offset ${$decomp_string_offset_ref} */"; ${$decomp_string_offset_ref} += &length_in_bytes ($decomp) + 1; } } return $offset; } # Generate the character decomposition header. sub print_decomp { my ($last) = @_; my ($outfile) = "gunidecomp.h"; local ($bytes_out) = 0; print "Writing $outfile...\n"; open (OUT, "> $outfile") || exit 1; print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; print OUT "#ifndef DECOMP_H\n"; print OUT "#define DECOMP_H\n\n"; printf OUT "#define G_UNICODE_LAST_CHAR 0x%04x\n\n", $last; printf OUT "#define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256)\n\n"; my $last_part1 = ($pages_before_e0000 * 256) - 1; printf OUT "#define G_UNICODE_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; printf OUT "#define G_UNICODE_LAST_PAGE_PART1 %d\n\n", $pages_before_e0000 - 1; $NOT_PRESENT_OFFSET = 65535; print OUT "#define G_UNICODE_NOT_PRESENT_OFFSET $NOT_PRESENT_OFFSET\n\n"; my ($count, @row); $table_index = 0; printf OUT "static const guchar cclass_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 1, \&fetch_cclass); } printf OUT "\n};\n\n"; print OUT "static const gint16 combining_class_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; print OUT "static const gint16 combining_class_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; print OUT "typedef struct\n{\n"; print OUT " gunichar ch;\n"; print OUT " guint16 canon_offset;\n"; print OUT " guint16 compat_offset;\n"; print OUT "} decomposition;\n\n"; print OUT "static const decomposition decomp_table[] =\n{\n"; my ($iter); my ($first) = 1; my ($decomp_string) = ""; my ($decomp_string_offset) = 0; for ($count = 0; $count <= $last; ++$count) { if (defined $decompositions[$count]) { print OUT ",\n" if ! $first; $first = 0; my $canon_decomp; my $compat_decomp; if (!$decompose_compat[$count]) { $canon_decomp = make_decomp ($count, 0); } $compat_decomp = make_decomp ($count, 1); if (defined $canon_decomp && $compat_decomp eq $canon_decomp) { undef $compat_decomp; } my $canon_offset = handle_decomp ($canon_decomp, \%decomp_offsets, \$decomp_string, \$decomp_string_offset); my $compat_offset = handle_decomp ($compat_decomp, \%decomp_offsets, \$decomp_string, \$decomp_string_offset); die if $decomp_string_offset > $NOT_PRESENT_OFFSET; printf OUT qq( { 0x%04x, $canon_offset, $compat_offset }), $count; $bytes_out += 8; } } print OUT "\n};\n\n"; $bytes_out += $decomp_string_offset + 1; printf OUT "static const gchar decomp_expansion_string[] = %s;\n\n", $decomp_string; print OUT "#endif /* DECOMP_H */\n"; printf STDERR "Generated %d bytes in decomp tables\n", $bytes_out; } sub print_line_break { my ($last) = @_; my ($outfile) = "gunibreak.h"; local ($bytes_out) = 0; print "Writing $outfile...\n"; open (OUT, "> $outfile"); print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; print OUT "#ifndef BREAKTABLES_H\n"; print OUT "#define BREAKTABLES_H\n\n"; print OUT "#define G_UNICODE_DATA_VERSION \"$ARGV[0]\"\n\n"; printf OUT "#define G_UNICODE_LAST_CHAR 0x%04X\n\n", $last; printf OUT "#define G_UNICODE_MAX_TABLE_INDEX 10000\n\n"; my $last_part1 = ($pages_before_e0000 * 256) - 1; printf OUT "/* the last code point that should be looked up in break_property_table_part1 */\n"; printf OUT "#define G_UNICODE_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; $table_index = 0; printf OUT "static const gint8 break_property_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 1, \&fetch_break_type); } printf OUT "\n};\n\n"; printf OUT "/* U+0000 through U+%04X */\n", $last_part1; print OUT "static const gint16 break_property_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; printf OUT "/* U+E0000 through U+%04X */\n", $last; print OUT "static const gint16 break_property_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; print OUT "#endif /* BREAKTABLES_H */\n"; close (OUT); printf STDERR "Generated %d bytes in break tables\n", $bytes_out; } # A fetch function for the break properties table. sub fetch_break_type { my ($index) = @_; return $break_mappings{$break_props[$index]}; } # Fetcher for combining class. sub fetch_cclass { my ($i) = @_; return $cclass[$i]; } # Expand a character decomposition recursively. sub expand_decomp { my ($code, $compat) = @_; my ($iter, $val); my (@result) = (); foreach $iter (split (' ', $decompositions[$code])) { $val = hex ($iter); if (defined $decompositions[$val] && ($compat || !$decompose_compat[$val])) { push (@result, &expand_decomp ($val, $compat)); } else { push (@result, $val); } } return @result; } sub make_decomp { my ($code, $compat) = @_; my $result = ""; foreach $iter (&expand_decomp ($code, $compat)) { $result .= pack ("U", $iter); # to utf-8 } $result; } # Generate special case data string from two fields sub add_special_case { my ($code, $single, $field1, $field2) = @_; @values = (defined $single ? $single : (), (map { hex ($_) } split /\s+/, $field1), 0, (map { hex ($_) } split /\s+/, $field2)); $result = ""; for $value (@values) { $result .= pack ("U", $value); # to utf-8 } push @special_case_offsets, $special_case_offset; # We encode special cases up in the 0x1000000 space $value[$code] = 0x1000000 + $special_case_offset; $special_case_offset += 1 + &length_in_bytes ($result); push @special_cases, &escape ($result); } sub output_special_case_table { my $out = shift; print $out < $b } keys %$array) { if ($array->{$code} == 1) { delete $array->{$code}; next; } $array->{$code} = $n++; } return $n; } sub output_composition_table { print STDERR "Generating composition table\n"; local ($bytes_out) = 0; my %first; my %second; # First we need to go through and remove decompositions # starting with a non-starter, and single-character # decompositions. At the same time, record # the first and second character of each decomposition for $code (keys %compositions) { @values = map { hex ($_) } split /\s+/, $compositions{$code}; # non-starters if ($cclass[$values[0]]) { delete $compositions{$code}; next; } # single-character decompositions if (@values == 1) { delete $compositions{$code}; next; } if (@values != 2) { die "$code has more than two elements in its decomposition!\n"; } if (exists $first{$values[0]}) { $first{$values[0]}++; } else { $first{$values[0]} = 1; } } # Assign integer indices, removing singletons my $n_first = enumerate_ordered (\%first); # Now record the second character of each (non-singleton) decomposition for $code (keys %compositions) { @values = map { hex ($_) } split /\s+/, $compositions{$code}; if (exists $first{$values[0]}) { if (exists $second{$values[1]}) { $second{$values[1]}++; } else { $second{$values[1]} = 1; } } } # Assign integer indices, removing duplicate my $n_second = enumerate_ordered (\%second); # Build reverse table my @first_singletons; my @second_singletons; my %reverse; for $code (keys %compositions) { @values = map { hex ($_) } split /\s+/, $compositions{$code}; my $first = $first{$values[0]}; my $second = $second{$values[1]}; if (defined $first && defined $second) { $reverse{"$first|$second"} = $code; } elsif (!defined $first) { push @first_singletons, [ $values[0], $values[1], $code ]; } else { push @second_singletons, [ $values[1], $values[0], $code ]; } } @first_singletons = sort { $a->[0] <=> $b->[0] } @first_singletons; @second_singletons = sort { $a->[0] <=> $b->[0] } @second_singletons; my %vals; open OUT, ">gunicomp.h" or die "Cannot open gunicomp.h: $!\n"; print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; # Assign values in lookup table for all code points involved my $total = 1; my $last = 0; printf OUT "#define COMPOSE_FIRST_START %d\n", $total; for $code (keys %first) { $vals{$code} = $first{$code} + $total; $last = $code if $code > $last; } $total += $n_first; $i = 0; printf OUT "#define COMPOSE_FIRST_SINGLE_START %d\n", $total; for $record (@first_singletons) { my $code = $record->[0]; $vals{$code} = $i++ + $total; $last = $code if $code > $last; } $total += @first_singletons; printf OUT "#define COMPOSE_SECOND_START %d\n", $total; for $code (keys %second) { $vals{$code} = $second{$code} + $total; $last = $code if $code > $last; } $total += $n_second; $i = 0; printf OUT "#define COMPOSE_SECOND_SINGLE_START %d\n\n", $total; for $record (@second_singletons) { my $code = $record->[0]; $vals{$code} = $i++ + $total; $last = $code if $code > $last; } printf OUT "#define COMPOSE_TABLE_LAST %d\n\n", $last / 256; # Output lookup table my @row; $table_index = 0; printf OUT "static const guint16 compose_data[][256] = {\n"; for (my $count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 2, sub { exists $vals{$_[0]} ? $vals{$_[0]} : 0; }); } printf OUT "\n};\n\n"; print OUT "static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = {\n"; for (my $count = 0; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; # Output first singletons print OUT "static const guint16 compose_first_single[][2] = {\n"; $i = 0; for $record (@first_singletons) { if ($record->[1] > 0xFFFF or $record->[2] > 0xFFFF) { die "time to switch compose_first_single to gunichar" ; } print OUT ",\n" if $i++ > 0; printf OUT " { %#06x, %#06x }", $record->[1], $record->[2]; } print OUT "\n};\n"; $bytes_out += @first_singletons * 4; # Output second singletons print OUT "static const guint16 compose_second_single[][2] = {\n"; $i = 0; for $record (@second_singletons) { if ($record->[1] > 0xFFFF or $record->[2] > 0xFFFF) { die "time to switch compose_second_single to gunichar"; } print OUT ",\n" if $i++ > 0; printf OUT " { %#06x, %#06x }", $record->[1], $record->[2]; } print OUT "\n};\n"; $bytes_out += @second_singletons * 4; # Output array of composition pairs print OUT < 0xFFFF) { die "time to switch compose_array to gunichar" ; } printf OUT "0x%04x", $reverse{"$i|$j"}; } else { print OUT " 0"; } } print OUT " }"; } print OUT "\n"; print OUT <[0] <=> $b->[0] } @casefold; for $case (@casefold) { $code = $case->[0]; $string = $case->[1]; if ($code > 0xFFFF) { die "time to switch casefold_table to gunichar" ; } print $out sprintf(qq( { 0x%04x, "$string" },\n), $code); } print $out <. LIBIDN_1.0 { global: idn_free; idna_strerror; idna_to_ascii_4i; idna_to_ascii_4z; idna_to_ascii_8z; idna_to_ascii_lz; idna_to_unicode_44i; idna_to_unicode_4z4z; idna_to_unicode_8z4z; idna_to_unicode_8z8z; idna_to_unicode_8zlz; idna_to_unicode_lzlz; pr29_4; pr29_4z; pr29_8z; pr29_strerror; punycode_decode; punycode_encode; punycode_strerror; stringprep; stringprep_4i; stringprep_4zi; stringprep_check_version; stringprep_convert; stringprep_iscsi; stringprep_kerberos5; stringprep_locale_charset; stringprep_locale_to_utf8; stringprep_nameprep; stringprep_plain; stringprep_profile; stringprep_profiles; stringprep_saslprep; stringprep_strerror; stringprep_trace; stringprep_ucs4_nfkc_normalize; stringprep_ucs4_to_utf8; stringprep_unichar_to_utf8; stringprep_utf8_nfkc_normalize; stringprep_utf8_to_locale; stringprep_utf8_to_ucs4; stringprep_utf8_to_unichar; stringprep_xmpp_nodeprep; stringprep_xmpp_nodeprep_prohibit; stringprep_xmpp_resourceprep; tld_check_4; tld_check_4t; tld_check_4tz; tld_check_4z; tld_check_8z; tld_check_lz; tld_default_table; tld_get_4; tld_get_4z; tld_get_table; tld_get_z; tld_strerror; # These symbols were intended to be exported from the beginning, but # by accident they never were. Version 1.17 exported them properly. stringprep_iscsi_prohibit; stringprep_rfc3454_A_1; stringprep_rfc3454_B_1; stringprep_rfc3454_B_2; stringprep_rfc3454_B_3; stringprep_rfc3454_C_1_1; stringprep_rfc3454_C_1_2; stringprep_rfc3454_C_2_1; stringprep_rfc3454_C_2_2; stringprep_rfc3454_C_3; stringprep_rfc3454_C_4; stringprep_rfc3454_C_5; stringprep_rfc3454_C_6; stringprep_rfc3454_C_7; stringprep_rfc3454_C_8; stringprep_rfc3454_C_9; stringprep_rfc3454_D_1; stringprep_rfc3454_D_2; stringprep_saslprep_space_map; local: *; }; libidn-1.38/lib/toutf8.c0000644000000000000000000001063214076271517011754 00000000000000/* toutf8.c --- Convert strings from system locale into UTF-8. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif /* Get prototypes. */ #include "stringprep.h" /* Get fprintf. */ #include /* Get getenv. */ #include /* Get strlen. */ #include /* Get iconv_string. */ #include "striconv.h" #ifdef _LIBC # define HAVE_ICONV 1 # define HAVE_LOCALE_H 1 # define HAVE_LANGINFO_CODESET 1 #endif #include #ifdef HAVE_LANGINFO_CODESET # include #endif #ifdef _LIBC # define stringprep_locale_charset() nl_langinfo (CODESET) #else /** * stringprep_locale_charset: * * Find out current locale charset. The function respect the CHARSET * environment variable, but typically uses nl_langinfo(CODESET) when * it is supported. It fall back on "ASCII" if CHARSET isn't set and * nl_langinfo isn't supported or return anything. * * Note that this function return the application's locale's preferred * charset (or thread's locale's preferred charset, if your system * support thread-specific locales). It does not return what the * system may be using. Thus, if you receive data from external * sources you cannot in general use this function to guess what * charset it is encoded in. Use stringprep_convert from the external * representation into the charset returned by this function, to have * data in the locale encoding. * * Return value: Return the character set used by the current locale. * It will never return NULL, but use "ASCII" as a fallback. **/ const char * stringprep_locale_charset (void) { const char *charset = getenv ("CHARSET"); /* flawfinder: ignore */ if (charset && *charset) return charset; # ifdef HAVE_LANGINFO_CODESET charset = nl_langinfo (CODESET); if (charset && *charset) return charset; # endif return "ASCII"; } #endif /** * stringprep_convert: * @str: input zero-terminated string. * @to_codeset: name of destination character set. * @from_codeset: name of origin character set, as used by @str. * * Convert the string from one character set to another using the * system's iconv() function. * * Return value: Returns newly allocated zero-terminated string which * is @str transcoded into to_codeset. **/ char * stringprep_convert (const char *str, const char *to_codeset, const char *from_codeset) { #if HAVE_ICONV return str_iconv (str, from_codeset, to_codeset); #else char *p; fprintf (stderr, "libidn: warning: libiconv not installed, cannot " "convert data to UTF-8\n"); p = malloc (strlen (str) + 1); if (!p) return NULL; return strcpy (p, str); #endif } /** * stringprep_locale_to_utf8: * @str: input zero terminated string. * * Convert string encoded in the locale's character set into UTF-8 by * using stringprep_convert(). * * Return value: Returns newly allocated zero-terminated string which * is @str transcoded into UTF-8. **/ char * stringprep_locale_to_utf8 (const char *str) { return stringprep_convert (str, "UTF-8", stringprep_locale_charset ()); } /** * stringprep_utf8_to_locale: * @str: input zero terminated string. * * Convert string encoded in UTF-8 into the locale's character set by * using stringprep_convert(). * * Return value: Returns newly allocated zero-terminated string which * is @str transcoded into the locale's character set. **/ char * stringprep_utf8_to_locale (const char *str) { return stringprep_convert (str, stringprep_locale_charset (), "UTF-8"); } libidn-1.38/lib/punycode.h0000644000000000000000000002246314076271517012363 00000000000000/* punycode.h --- Declarations for punycode functions. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ /* * This file is derived from RFC 3492bis written by Adam M. Costello, * downloaded from http://www.nicemice.net/idn/punycode-spec.gz on * 2015-03-02 with SHA1 a966a8017f6be579d74a50a226accc7607c40133, a * copy of which is stored in the GNU Libidn version controlled * repository under doc/specification/punycode-spec.gz. * * The changes compared to Adam's file include: re-indentation, adding * the license boilerplate and this comment, adding the #ifndef * PUNYCODE_H and IDNAPI blocks, changing the return code of * punycode_encode and punycode_decode from enum to int, simplifying * the definition of punycode_uint by #include'ing idn-int.h and using * uint32_t instead of limit.h-based code, adding Punycode_status and * punycode_strerror, adding 'extern IDNAPI' declarations to function * prototypes, and mentioning variable names in function prototypes. * * Adam's file contains the following: * * punycode-sample.c 2.0.0 (2004-Mar-21-Sun) * http://www.nicemice.net/idn/ * Adam M. Costello * http://www.nicemice.net/amc/ * * This is ANSI C code (C89) implementing Punycode 1.0.x. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. */ #ifndef PUNYCODE_H # define PUNYCODE_H /** * SECTION:punycode * @title: punycode.h * @short_description: Punycode-related functions * * Punycode-related functions. */ # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /************************************************************/ /* Public interface (would normally go in its own .h file): */ # include /* size_t */ # include /* uint32_t */ enum punycode_status { punycode_success = 0, punycode_bad_input = 1, /* Input is invalid. */ punycode_big_output = 2, /* Output would exceed the space provided. */ punycode_overflow = 3 /* Wider integers needed to process input. */ }; typedef enum { PUNYCODE_SUCCESS = punycode_success, PUNYCODE_BAD_INPUT = punycode_bad_input, PUNYCODE_BIG_OUTPUT = punycode_big_output, PUNYCODE_OVERFLOW = punycode_overflow } Punycode_status; extern IDNAPI const char *punycode_strerror (Punycode_status rc); /* punycode_uint needs to be unsigned and needs to be */ /* at least 26 bits wide. The particular type can be */ /* specified by defining PUNYCODE_UINT, otherwise a */ /* suitable type will be chosen automatically. */ typedef uint32_t punycode_uint; extern IDNAPI int punycode_encode (size_t input_length, const punycode_uint input[], const unsigned char case_flags[], size_t *output_length, char output[]); /* punycode_encode() converts a sequence of code points (presumed to be Unicode code points) to Punycode. Input arguments (to be supplied by the caller): input_length The number of code points in the input array and the number of flags in the case_flags array. input An array of code points. They are presumed to be Unicode code points, but that is not strictly necessary. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. case_flags A null pointer or an array of boolean values parallel to the input array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If case_flags is a null pointer then ASCII letters are left as they are, and other code points are treated as unflagged. Output arguments (to be filled in by the function): output An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the input contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Input/output arguments (to be supplied by the caller and overwritten by the function): output_length The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. Return value: Can be any of the punycode_status values defined above except punycode_bad_input. If not punycode_success, then output_size and output might contain garbage. */ extern IDNAPI int punycode_decode (size_t input_length, const char input[], size_t *output_length, punycode_uint output[], unsigned char case_flags[]); /* punycode_decode() converts Punycode to a sequence of code points (presumed to be Unicode code points). Input arguments (to be supplied by the caller): input_length The number of ASCII code points in the input array. input An array of ASCII code points (0..7F). Output arguments (to be filled in by the function): output An array of code points like the input argument of punycode_encode() (see above). case_flags A null pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the output array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Input/output arguments (to be supplied by the caller and overwritten by the function): output_length The caller passes in the maximum number of code points that it can receive into the output array (which is also the maximum number of flags that it can receive into the case_flags array, if case_flags is not a null pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied output_length is greater than that. Return value: Can be any of the punycode_status values defined above. If not punycode_success, then output_length, output, and case_flags might contain garbage. */ # ifdef __cplusplus } # endif #endif /* PUNYCODE_H */ libidn-1.38/lib/idna.h0000644000000000000000000000761514076271517011452 00000000000000/* idna.h --- Prototypes for Internationalized Domain Name library. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef IDNA_H # define IDNA_H /** * SECTION:idna * @title: idna.h * @short_description: IDNA-related functions * * IDNA-related functions. */ /** * IDNAPI: * * Symbol holding shared library API visibility decorator. * * This is used internally by the library header file and should never * be used or modified by the application. * * https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html */ # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # include /* size_t */ # include /* uint32_t */ # ifdef __cplusplus extern "C" { # endif /* Error codes. */ typedef enum { IDNA_SUCCESS = 0, IDNA_STRINGPREP_ERROR = 1, IDNA_PUNYCODE_ERROR = 2, IDNA_CONTAINS_NON_LDH = 3, /* Workaround typo in earlier versions. */ IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH, IDNA_CONTAINS_MINUS = 4, IDNA_INVALID_LENGTH = 5, IDNA_NO_ACE_PREFIX = 6, IDNA_ROUNDTRIP_VERIFY_ERROR = 7, IDNA_CONTAINS_ACE_PREFIX = 8, IDNA_ICONV_ERROR = 9, /* Internal errors. */ IDNA_MALLOC_ERROR = 201, IDNA_DLOPEN_ERROR = 202 } Idna_rc; /* IDNA flags */ typedef enum { IDNA_ALLOW_UNASSIGNED = 0x0001, IDNA_USE_STD3_ASCII_RULES = 0x0002 } Idna_flags; # ifndef IDNA_ACE_PREFIX # define IDNA_ACE_PREFIX "xn--" # endif extern IDNAPI const char *idna_strerror (Idna_rc rc); /* Core functions */ extern IDNAPI int idna_to_ascii_4i (const uint32_t * in, size_t inlen, char *out, int flags); extern IDNAPI int idna_to_unicode_44i (const uint32_t * in, size_t inlen, uint32_t * out, size_t *outlen, int flags); /* Wrappers that handle several labels */ extern IDNAPI int idna_to_ascii_4z (const uint32_t * input, char **output, int flags); extern IDNAPI int idna_to_ascii_8z (const char *input, char **output, int flags); extern IDNAPI int idna_to_ascii_lz (const char *input, char **output, int flags); extern IDNAPI int idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags); extern IDNAPI int idna_to_unicode_8z4z (const char *input, uint32_t ** output, int flags); extern IDNAPI int idna_to_unicode_8z8z (const char *input, char **output, int flags); extern IDNAPI int idna_to_unicode_8zlz (const char *input, char **output, int flags); extern IDNAPI int idna_to_unicode_lzlz (const char *input, char **output, int flags); # ifdef __cplusplus } # endif #endif /* IDNA_H */ libidn-1.38/lib/idn-free.c0000644000000000000000000000327014076271517012214 00000000000000/* idn-free.h --- Invoke the free function to release memory Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include /* Get specification. */ #include "idn-free.h" /* Get free. */ #include /** * idn_free: * @ptr: memory region to deallocate, or %NULL. * * Deallocates memory region by calling free(). If @ptr is %NULL no * operation is performed. * * Normally applications de-allocate strings allocated by libidn by * calling free() directly. Under Windows, different parts of the * same application may use different heap memory, and then it is * important to deallocate memory allocated within the same module * that allocated it. This function makes that possible. **/ void idn_free (void *ptr) { free (ptr); } libidn-1.38/lib/profiles.c0000644000000000000000000002440614076271517012352 00000000000000/* profiles.c --- Definitions of stringprep profiles. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include #include "stringprep.h" #include "rfc3454.h" const Stringprep_profiles stringprep_profiles[] = { {"Nameprep", stringprep_nameprep}, {"KRBprep", stringprep_kerberos5}, /* Deprecate? */ {"Nodeprep", stringprep_xmpp_nodeprep}, {"Resourceprep", stringprep_xmpp_resourceprep}, {"plain", stringprep_plain}, /* sasl-anon-00. */ {"trace", stringprep_trace}, /* sasl-anon-01,02,03. */ {"SASLprep", stringprep_saslprep}, {"ISCSIprep", stringprep_iscsi}, /* Obsolete. */ {"iSCSI", stringprep_iscsi}, /* IANA. */ {NULL, NULL} }; /* number of elements within an array */ #define countof(a) (sizeof(a)/sizeof(*(a))) /* helper for profile definitions */ #define TABLE(x) stringprep_rfc3454_##x, N_STRINGPREP_rfc3454_##x const Stringprep_profile stringprep_nameprep[] = { {STRINGPREP_MAP_TABLE, 0, TABLE (B_1)}, {STRINGPREP_MAP_TABLE, 0, TABLE (B_2)}, {STRINGPREP_NFKC, 0, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_7)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, ~STRINGPREP_NO_BIDI, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, 0, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, 0, TABLE (D_2)}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, TABLE (A_1)}, {0} }; const Stringprep_profile stringprep_kerberos5[] = { /* XXX this is likely to be wrong as the specification is a rough draft. */ {STRINGPREP_MAP_TABLE, 0, TABLE (B_1)}, {STRINGPREP_MAP_TABLE, 0, TABLE (B_3)}, {STRINGPREP_NFKC, 0, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_7)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, ~STRINGPREP_NO_BIDI, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, 0, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, 0, TABLE (D_2)}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, TABLE (A_1)}, {0} }; const Stringprep_table_element stringprep_xmpp_nodeprep_prohibit[] = { {0x000022, 0x000022}, /* #x22 (") */ {0x000026, 0x000026}, /* #x26 (&) */ {0x000027, 0x000027}, /* #x27 (') */ {0x00002F, 0x00002F}, /* #x2F (/) */ {0x00003A, 0x00003A}, /* #x3A (:) */ {0x00003C, 0x00003C}, /* #x3C (<) */ {0x00003E, 0x00003E}, /* #x3E (>) */ {0x000040, 0x000040}, /* #x40 (@) */ {0} }; const Stringprep_profile stringprep_xmpp_nodeprep[] = { {STRINGPREP_MAP_TABLE, 0, TABLE (B_1)}, {STRINGPREP_MAP_TABLE, 0, TABLE (B_2)}, {STRINGPREP_NFKC, 0, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_7)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_xmpp_nodeprep_prohibit, countof (stringprep_xmpp_nodeprep_prohibit) - 1}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, 0, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, 0, TABLE (D_2)}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, TABLE (A_1)}, {0} }; const Stringprep_profile stringprep_xmpp_resourceprep[] = { {STRINGPREP_MAP_TABLE, 0, TABLE (B_1)}, {STRINGPREP_NFKC, 0, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_7)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_2)}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, TABLE (A_1)}, {0} }; const Stringprep_profile stringprep_plain[] = { {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_2)}, {0} }; const Stringprep_profile stringprep_trace[] = { {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_2)}, {0} }; const Stringprep_table_element stringprep_iscsi_prohibit[] = { {0x0000, 0x002C}, /* [ASCII CONTROL CHARACTERS and SPACE through ,] */ {0x002F, 0x002F}, /* [ASCII /] */ {0x003B, 0x0040}, /* [ASCII ; through @] */ {0x005B, 0x0060}, /* [ASCII [ through `] */ {0x007B, 0x007F}, /* [ASCII { through DEL] */ {0x3002, 0x3002}, /* ideographic full stop */ {0} }; const Stringprep_profile stringprep_iscsi[] = { {STRINGPREP_MAP_TABLE, 0, TABLE (B_1)}, {STRINGPREP_MAP_TABLE, 0, TABLE (B_2)}, {STRINGPREP_NFKC, 0, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_7)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_iscsi_prohibit, countof (stringprep_iscsi_prohibit) - 1}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_2)}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, TABLE (A_1)}, {0} }; const Stringprep_table_element stringprep_saslprep_space_map[] = { {0x00A0, 0x00A0, {0x0020}}, /* 00A0; NO-BREAK SPACE */ {0x1680, 0x1680, {0x0020}}, /* 1680; OGHAM SPACE MARK */ {0x2000, 0x200B, {0x0020}}, /* 2000; EN QUAD */ /* 2001; EM QUAD */ /* 2002; EN SPACE */ /* 2003; EM SPACE */ /* 2004; THREE-PER-EM SPACE */ /* 2005; FOUR-PER-EM SPACE */ /* 2006; SIX-PER-EM SPACE */ /* 2007; FIGURE SPACE */ /* 2008; PUNCTUATION SPACE */ /* 2009; THIN SPACE */ /* 200A; HAIR SPACE */ /* 200B; ZERO WIDTH SPACE */ {0x202F, 0x202F, {0x0020}}, /* 202F; NARROW NO-BREAK SPACE */ {0x205F, 0x205F, {0x0020}}, /* 205F; MEDIUM MATHEMATICAL SPACE */ {0x3000, 0x3000, {0x0020}}, /* 3000; IDEOGRAPHIC SPACE */ {0} }; const Stringprep_profile stringprep_saslprep[] = { {STRINGPREP_MAP_TABLE, 0, stringprep_saslprep_space_map, countof (stringprep_saslprep_space_map) - 1}, {STRINGPREP_MAP_TABLE, 0, TABLE (B_1)}, {STRINGPREP_NFKC, 0, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_1_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_1)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_2_2)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_3)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_4)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_5)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_6)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_7)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_PROHIBIT_TABLE, 0, TABLE (C_9)}, {STRINGPREP_BIDI, 0, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, TABLE (C_8)}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_1)}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, TABLE (D_2)}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, TABLE (A_1)}, {0} }; libidn-1.38/lib/strerror-idna.c0000644000000000000000000000765114076271517013325 00000000000000/* strerror-idna.c --- Convert IDNA errors into text. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "idna.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * idna_strerror: * @rc: an #Idna_rc return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * IDNA_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * IDNA_STRINGPREP_ERROR: Error during string preparation. * IDNA_PUNYCODE_ERROR: Error during punycode operation. * IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains non-LDH ASCII characters. * IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains a leading or trailing hyphen-minus (U+002D). * IDNA_INVALID_LENGTH: The final output string is not within the * (inclusive) range 1 to 63 characters. * IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix * (for ToUnicode). * IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output * string does not equal the input. * IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for * ToASCII). * IDNA_ICONV_ERROR: Character encoding conversion error. * IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a * fatal error). * IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used * internally in libc). * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * idna_strerror (Idna_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case IDNA_SUCCESS: p = _("Success"); break; case IDNA_STRINGPREP_ERROR: p = _("String preparation failed"); break; case IDNA_PUNYCODE_ERROR: p = _("Punycode failed"); break; case IDNA_CONTAINS_NON_LDH: p = _("Non-digit/letter/hyphen in input"); break; case IDNA_CONTAINS_MINUS: p = _("Forbidden leading or trailing minus sign ('-')"); break; case IDNA_INVALID_LENGTH: p = _("Output would be too large or too small"); break; case IDNA_NO_ACE_PREFIX: p = _("Input does not start with ACE prefix ('xn--')"); break; case IDNA_ROUNDTRIP_VERIFY_ERROR: p = _("String not idempotent under ToASCII"); break; case IDNA_CONTAINS_ACE_PREFIX: p = _("Input already contain ACE prefix ('xn--')"); break; case IDNA_ICONV_ERROR: p = _("Character encoding conversion error"); break; case IDNA_MALLOC_ERROR: p = _("Cannot allocate memory"); break; case IDNA_DLOPEN_ERROR: p = _("System dlopen failed"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.38/lib/gunicomp.h0000644000000000000000000016143014053001337012336 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-unicode-tables.pl and re-run. Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ #define COMPOSE_FIRST_START 1 #define COMPOSE_FIRST_SINGLE_START 147 #define COMPOSE_SECOND_START 357 #define COMPOSE_SECOND_SINGLE_START 388 #define COMPOSE_TABLE_LAST 48 static const guint16 compose_data[][256] = { { /* page 0, index 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 1, 2, 3, 4, 5, 150, 6, 7, 8, 151, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 152, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 153, 154, 50, 155, 0, 0, 51, 0, 0, 0, 0, 156, 0, 0, 0, 0, 52, 53, 157, 0, 158, 0, 0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 159, 160, 56, 161, 0, 0, 57, 0, 0, 0, 0, 162, 0, 0, 0, 0, 58, 59, 163, 0, 164, 0, 0, 0, 60, 0, 0, 0 }, { /* page 1, index 1 */ 0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, 167, 168, 0, 0, 0, 0, 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 2, index 2 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, 181, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 3, index 3 */ 357, 358, 359, 360, 361, 0, 362, 363, 364, 365, 366, 367, 368, 0, 0, 369, 0, 370, 0, 371, 372, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 374, 375, 376, 377, 378, 379, 0, 0, 0, 0, 380, 381, 0, 382, 383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 184, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 185, 0, 186, 0, 0, 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 86, 87, 0, 0, 187, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 4, index 4 */ 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 189, 0, 90, 91, 190, 92, 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, 93, 0, 0, 0, 193, 0, 0, 0, 194, 0, 195, 0, 0, 94, 0, 0, 196, 0, 95, 96, 197, 97, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 98, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 6, index 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 388, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 9, index 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 11, index 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, 102, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 12, index 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 398, 0, 0, 0, 103, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 13, index 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 104, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 224, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 16, index 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 30, index 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 0, 0, 0, 0, 0, 0, 230, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 31, index 12 */ 108, 109, 236, 237, 238, 239, 240, 241, 110, 111, 242, 243, 244, 245, 246, 247, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116, 117, 248, 249, 250, 251, 252, 253, 118, 119, 254, 255, 256, 257, 258, 259, 120, 121, 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0, 0, 0, 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 131, 132, 260, 261, 262, 263, 264, 265, 133, 134, 266, 267, 268, 269, 270, 271, 272, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 136, 0 }, { /* page 33, index 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 279, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 34, index 14 */ 0, 0, 0, 284, 0, 0, 0, 0, 285, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 290, 0, 291, 0, 0, 292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 0, 0, 299, 300, 0, 0, 301, 302, 303, 304, 0, 0, 0, 0, 305, 306, 0, 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 0, 314, 0, 0, 0, 0, 0, 0, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 48, index 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 320, 0, 321, 0, 322, 0, 323, 0, 324, 0, 325, 0, 326, 0, 327, 0, 328, 0, 329, 0, 330, 0, 331, 0, 0, 332, 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, 137, 0, 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, 337, 0, 338, 0, 339, 0, 340, 0, 341, 0, 342, 0, 343, 0, 344, 0, 345, 0, 346, 0, 347, 0, 348, 0, 0, 349, 0, 350, 0, 351, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, 0, 0, 145, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 353, 354, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0 } }; static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = { 0 /* page 0 */, 1 /* page 1 */, 2 /* page 2 */, 3 /* page 3 */, 4 /* page 4 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 5 /* page 6 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 6 /* page 9 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 7 /* page 11 */, 8 /* page 12 */, 9 /* page 13 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 10 /* page 16 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 11 /* page 30 */, 12 /* page 31 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 13 /* page 33 */, 14 /* page 34 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 15 /* page 48 */ }; static const guint16 compose_first_single[][2] = { { 0x0338, 0x226e }, { 0x0338, 0x2260 }, { 0x0338, 0x226f }, { 0x0307, 0x1e1e }, { 0x0302, 0x0134 }, { 0x0307, 0x1e1f }, { 0x0304, 0x01de }, { 0x0301, 0x01fa }, { 0x0301, 0x1e08 }, { 0x0301, 0x1e2e }, { 0x0304, 0x022a }, { 0x0301, 0x01fe }, { 0x0304, 0x01df }, { 0x0301, 0x01fb }, { 0x0301, 0x1e09 }, { 0x0301, 0x1e2f }, { 0x0304, 0x022b }, { 0x0301, 0x01ff }, { 0x0307, 0x1e64 }, { 0x0307, 0x1e65 }, { 0x0307, 0x1e66 }, { 0x0307, 0x1e67 }, { 0x0301, 0x1e78 }, { 0x0301, 0x1e79 }, { 0x0308, 0x1e7a }, { 0x0308, 0x1e7b }, { 0x0307, 0x1e9b }, { 0x030c, 0x01ee }, { 0x0304, 0x01ec }, { 0x0304, 0x01ed }, { 0x0304, 0x01e0 }, { 0x0304, 0x01e1 }, { 0x0306, 0x1e1c }, { 0x0306, 0x1e1d }, { 0x0304, 0x0230 }, { 0x0304, 0x0231 }, { 0x030c, 0x01ef }, { 0x0314, 0x1fec }, { 0x0345, 0x1fb4 }, { 0x0345, 0x1fc4 }, { 0x0345, 0x1ff4 }, { 0x0308, 0x0407 }, { 0x0301, 0x0403 }, { 0x0308, 0x04de }, { 0x0301, 0x040c }, { 0x0308, 0x04e6 }, { 0x0308, 0x04f4 }, { 0x0308, 0x04f8 }, { 0x0308, 0x04ec }, { 0x0301, 0x0453 }, { 0x0308, 0x04df }, { 0x0301, 0x045c }, { 0x0308, 0x04e7 }, { 0x0308, 0x04f5 }, { 0x0308, 0x04f9 }, { 0x0308, 0x04ed }, { 0x0308, 0x0457 }, { 0x030f, 0x0476 }, { 0x030f, 0x0477 }, { 0x0308, 0x04da }, { 0x0308, 0x04db }, { 0x0308, 0x04ea }, { 0x0308, 0x04eb }, { 0x0654, 0x0624 }, { 0x0654, 0x0626 }, { 0x0654, 0x06c2 }, { 0x0654, 0x06d3 }, { 0x0654, 0x06c0 }, { 0x093c, 0x0929 }, { 0x093c, 0x0931 }, { 0x093c, 0x0934 }, { 0x0bd7, 0x0b94 }, { 0x0bbe, 0x0bcb }, { 0x0c56, 0x0c48 }, { 0x0cd5, 0x0cc0 }, { 0x0cd5, 0x0ccb }, { 0x0d3e, 0x0d4b }, { 0x0dca, 0x0ddd }, { 0x102e, 0x1026 }, { 0x0304, 0x1e38 }, { 0x0304, 0x1e39 }, { 0x0304, 0x1e5c }, { 0x0304, 0x1e5d }, { 0x0307, 0x1e68 }, { 0x0307, 0x1e69 }, { 0x0302, 0x1ec6 }, { 0x0302, 0x1ec7 }, { 0x0302, 0x1ed8 }, { 0x0302, 0x1ed9 }, { 0x0345, 0x1f82 }, { 0x0345, 0x1f83 }, { 0x0345, 0x1f84 }, { 0x0345, 0x1f85 }, { 0x0345, 0x1f86 }, { 0x0345, 0x1f87 }, { 0x0345, 0x1f8a }, { 0x0345, 0x1f8b }, { 0x0345, 0x1f8c }, { 0x0345, 0x1f8d }, { 0x0345, 0x1f8e }, { 0x0345, 0x1f8f }, { 0x0345, 0x1f92 }, { 0x0345, 0x1f93 }, { 0x0345, 0x1f94 }, { 0x0345, 0x1f95 }, { 0x0345, 0x1f96 }, { 0x0345, 0x1f97 }, { 0x0345, 0x1f9a }, { 0x0345, 0x1f9b }, { 0x0345, 0x1f9c }, { 0x0345, 0x1f9d }, { 0x0345, 0x1f9e }, { 0x0345, 0x1f9f }, { 0x0345, 0x1fa2 }, { 0x0345, 0x1fa3 }, { 0x0345, 0x1fa4 }, { 0x0345, 0x1fa5 }, { 0x0345, 0x1fa6 }, { 0x0345, 0x1fa7 }, { 0x0345, 0x1faa }, { 0x0345, 0x1fab }, { 0x0345, 0x1fac }, { 0x0345, 0x1fad }, { 0x0345, 0x1fae }, { 0x0345, 0x1faf }, { 0x0345, 0x1fb2 }, { 0x0345, 0x1fc2 }, { 0x0345, 0x1ff2 }, { 0x0345, 0x1fb7 }, { 0x0345, 0x1fc7 }, { 0x0345, 0x1ff7 }, { 0x0338, 0x219a }, { 0x0338, 0x219b }, { 0x0338, 0x21ae }, { 0x0338, 0x21cd }, { 0x0338, 0x21cf }, { 0x0338, 0x21ce }, { 0x0338, 0x2204 }, { 0x0338, 0x2209 }, { 0x0338, 0x220c }, { 0x0338, 0x2224 }, { 0x0338, 0x2226 }, { 0x0338, 0x2241 }, { 0x0338, 0x2244 }, { 0x0338, 0x2247 }, { 0x0338, 0x2249 }, { 0x0338, 0x226d }, { 0x0338, 0x2262 }, { 0x0338, 0x2270 }, { 0x0338, 0x2271 }, { 0x0338, 0x2274 }, { 0x0338, 0x2275 }, { 0x0338, 0x2278 }, { 0x0338, 0x2279 }, { 0x0338, 0x2280 }, { 0x0338, 0x2281 }, { 0x0338, 0x22e0 }, { 0x0338, 0x22e1 }, { 0x0338, 0x2284 }, { 0x0338, 0x2285 }, { 0x0338, 0x2288 }, { 0x0338, 0x2289 }, { 0x0338, 0x22e2 }, { 0x0338, 0x22e3 }, { 0x0338, 0x22ac }, { 0x0338, 0x22ad }, { 0x0338, 0x22ae }, { 0x0338, 0x22af }, { 0x0338, 0x22ea }, { 0x0338, 0x22eb }, { 0x0338, 0x22ec }, { 0x0338, 0x22ed }, { 0x3099, 0x3094 }, { 0x3099, 0x304c }, { 0x3099, 0x304e }, { 0x3099, 0x3050 }, { 0x3099, 0x3052 }, { 0x3099, 0x3054 }, { 0x3099, 0x3056 }, { 0x3099, 0x3058 }, { 0x3099, 0x305a }, { 0x3099, 0x305c }, { 0x3099, 0x305e }, { 0x3099, 0x3060 }, { 0x3099, 0x3062 }, { 0x3099, 0x3065 }, { 0x3099, 0x3067 }, { 0x3099, 0x3069 }, { 0x3099, 0x309e }, { 0x3099, 0x30f4 }, { 0x3099, 0x30ac }, { 0x3099, 0x30ae }, { 0x3099, 0x30b0 }, { 0x3099, 0x30b2 }, { 0x3099, 0x30b4 }, { 0x3099, 0x30b6 }, { 0x3099, 0x30b8 }, { 0x3099, 0x30ba }, { 0x3099, 0x30bc }, { 0x3099, 0x30be }, { 0x3099, 0x30c0 }, { 0x3099, 0x30c2 }, { 0x3099, 0x30c5 }, { 0x3099, 0x30c7 }, { 0x3099, 0x30c9 }, { 0x3099, 0x30f7 }, { 0x3099, 0x30f8 }, { 0x3099, 0x30f9 }, { 0x3099, 0x30fa }, { 0x3099, 0x30fe } }; static const guint16 compose_second_single[][2] = { { 0x0627, 0x0622 }, { 0x0627, 0x0623 }, { 0x0627, 0x0625 }, { 0x09c7, 0x09cb }, { 0x09c7, 0x09cc }, { 0x0b47, 0x0b4b }, { 0x0b47, 0x0b48 }, { 0x0b47, 0x0b4c }, { 0x0bc6, 0x0bca }, { 0x0bc6, 0x0bcc }, { 0x0cc6, 0x0cca }, { 0x0cc6, 0x0cc7 }, { 0x0cc6, 0x0cc8 }, { 0x0d46, 0x0d4a }, { 0x0d46, 0x0d4c }, { 0x0dd9, 0x0dda }, { 0x0dd9, 0x0ddc }, { 0x0dd9, 0x0dde } }; static const guint16 compose_array[146][31] = { { 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x0100, 0x0102, 0x0226, 0x00c4, 0x1ea2, 0x00c5, 0, 0x01cd, 0x0200, 0x0202, 0, 0, 0, 0x1ea0, 0, 0x1e00, 0, 0, 0x0104, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e06, 0, 0, 0, 0 }, { 0, 0x0106, 0x0108, 0, 0, 0, 0x010a, 0, 0, 0, 0, 0x010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00c7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e0a, 0, 0, 0, 0, 0x010e, 0, 0, 0, 0, 0, 0x1e0c, 0, 0, 0, 0x1e10, 0, 0x1e12, 0, 0, 0x1e0e, 0, 0, 0, 0 }, { 0x00c8, 0x00c9, 0x00ca, 0x1ebc, 0x0112, 0x0114, 0x0116, 0x00cb, 0x1eba, 0, 0, 0x011a, 0x0204, 0x0206, 0, 0, 0, 0x1eb8, 0, 0, 0, 0x0228, 0x0118, 0x1e18, 0, 0x1e1a, 0, 0, 0, 0, 0 }, { 0, 0x01f4, 0x011c, 0, 0x1e20, 0x011e, 0x0120, 0, 0, 0, 0, 0x01e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0122, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x0124, 0, 0, 0, 0x1e22, 0x1e26, 0, 0, 0, 0x021e, 0, 0, 0, 0, 0, 0x1e24, 0, 0, 0, 0x1e28, 0, 0, 0x1e2a, 0, 0, 0, 0, 0, 0 }, { 0x00cc, 0x00cd, 0x00ce, 0x0128, 0x012a, 0x012c, 0x0130, 0x00cf, 0x1ec8, 0, 0, 0x01cf, 0x0208, 0x020a, 0, 0, 0, 0x1eca, 0, 0, 0, 0, 0x012e, 0, 0, 0x1e2c, 0, 0, 0, 0, 0 }, { 0, 0x1e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e8, 0, 0, 0, 0, 0, 0x1e32, 0, 0, 0, 0x0136, 0, 0, 0, 0, 0x1e34, 0, 0, 0, 0 }, { 0, 0x0139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013d, 0, 0, 0, 0, 0, 0x1e36, 0, 0, 0, 0x013b, 0, 0x1e3c, 0, 0, 0x1e3a, 0, 0, 0, 0 }, { 0, 0x1e3e, 0, 0, 0, 0, 0x1e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01f8, 0x0143, 0, 0x00d1, 0, 0, 0x1e44, 0, 0, 0, 0, 0x0147, 0, 0, 0, 0, 0, 0x1e46, 0, 0, 0, 0x0145, 0, 0x1e4a, 0, 0, 0x1e48, 0, 0, 0, 0 }, { 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x014c, 0x014e, 0x022e, 0x00d6, 0x1ece, 0, 0x0150, 0x01d1, 0x020c, 0x020e, 0, 0, 0x01a0, 0x1ecc, 0, 0, 0, 0, 0x01ea, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e54, 0, 0, 0, 0, 0x1e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x0154, 0, 0, 0, 0, 0x1e58, 0, 0, 0, 0, 0x0158, 0x0210, 0x0212, 0, 0, 0, 0x1e5a, 0, 0, 0, 0x0156, 0, 0, 0, 0, 0x1e5e, 0, 0, 0, 0 }, { 0, 0x015a, 0x015c, 0, 0, 0, 0x1e60, 0, 0, 0, 0, 0x0160, 0, 0, 0, 0, 0, 0x1e62, 0, 0, 0x0218, 0x015e, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e6a, 0, 0, 0, 0, 0x0164, 0, 0, 0, 0, 0, 0x1e6c, 0, 0, 0x021a, 0x0162, 0, 0x1e70, 0, 0, 0x1e6e, 0, 0, 0, 0 }, { 0x00d9, 0x00da, 0x00db, 0x0168, 0x016a, 0x016c, 0, 0x00dc, 0x1ee6, 0x016e, 0x0170, 0x01d3, 0x0214, 0x0216, 0, 0, 0x01af, 0x1ee4, 0x1e72, 0, 0, 0, 0x0172, 0x1e76, 0, 0x1e74, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0x1e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e80, 0x1e82, 0x0174, 0, 0, 0, 0x1e86, 0x1e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e8a, 0x1e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ef2, 0x00dd, 0x0176, 0x1ef8, 0x0232, 0, 0x1e8e, 0x0178, 0x1ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x0179, 0x1e90, 0, 0, 0, 0x017b, 0, 0, 0, 0, 0x017d, 0, 0, 0, 0, 0, 0x1e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e94, 0, 0, 0, 0 }, { 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x0101, 0x0103, 0x0227, 0x00e4, 0x1ea3, 0x00e5, 0, 0x01ce, 0x0201, 0x0203, 0, 0, 0, 0x1ea1, 0, 0x1e01, 0, 0, 0x0105, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e07, 0, 0, 0, 0 }, { 0, 0x0107, 0x0109, 0, 0, 0, 0x010b, 0, 0, 0, 0, 0x010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00e7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e0b, 0, 0, 0, 0, 0x010f, 0, 0, 0, 0, 0, 0x1e0d, 0, 0, 0, 0x1e11, 0, 0x1e13, 0, 0, 0x1e0f, 0, 0, 0, 0 }, { 0x00e8, 0x00e9, 0x00ea, 0x1ebd, 0x0113, 0x0115, 0x0117, 0x00eb, 0x1ebb, 0, 0, 0x011b, 0x0205, 0x0207, 0, 0, 0, 0x1eb9, 0, 0, 0, 0x0229, 0x0119, 0x1e19, 0, 0x1e1b, 0, 0, 0, 0, 0 }, { 0, 0x01f5, 0x011d, 0, 0x1e21, 0x011f, 0x0121, 0, 0, 0, 0, 0x01e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0123, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x0125, 0, 0, 0, 0x1e23, 0x1e27, 0, 0, 0, 0x021f, 0, 0, 0, 0, 0, 0x1e25, 0, 0, 0, 0x1e29, 0, 0, 0x1e2b, 0, 0x1e96, 0, 0, 0, 0 }, { 0x00ec, 0x00ed, 0x00ee, 0x0129, 0x012b, 0x012d, 0, 0x00ef, 0x1ec9, 0, 0, 0x01d0, 0x0209, 0x020b, 0, 0, 0, 0x1ecb, 0, 0, 0, 0, 0x012f, 0, 0, 0x1e2d, 0, 0, 0, 0, 0 }, { 0, 0, 0x0135, 0, 0, 0, 0, 0, 0, 0, 0, 0x01f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e9, 0, 0, 0, 0, 0, 0x1e33, 0, 0, 0, 0x0137, 0, 0, 0, 0, 0x1e35, 0, 0, 0, 0 }, { 0, 0x013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013e, 0, 0, 0, 0, 0, 0x1e37, 0, 0, 0, 0x013c, 0, 0x1e3d, 0, 0, 0x1e3b, 0, 0, 0, 0 }, { 0, 0x1e3f, 0, 0, 0, 0, 0x1e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01f9, 0x0144, 0, 0x00f1, 0, 0, 0x1e45, 0, 0, 0, 0, 0x0148, 0, 0, 0, 0, 0, 0x1e47, 0, 0, 0, 0x0146, 0, 0x1e4b, 0, 0, 0x1e49, 0, 0, 0, 0 }, { 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x014d, 0x014f, 0x022f, 0x00f6, 0x1ecf, 0, 0x0151, 0x01d2, 0x020d, 0x020f, 0, 0, 0x01a1, 0x1ecd, 0, 0, 0, 0, 0x01eb, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e55, 0, 0, 0, 0, 0x1e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x0155, 0, 0, 0, 0, 0x1e59, 0, 0, 0, 0, 0x0159, 0x0211, 0x0213, 0, 0, 0, 0x1e5b, 0, 0, 0, 0x0157, 0, 0, 0, 0, 0x1e5f, 0, 0, 0, 0 }, { 0, 0x015b, 0x015d, 0, 0, 0, 0x1e61, 0, 0, 0, 0, 0x0161, 0, 0, 0, 0, 0, 0x1e63, 0, 0, 0x0219, 0x015f, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e6b, 0x1e97, 0, 0, 0, 0x0165, 0, 0, 0, 0, 0, 0x1e6d, 0, 0, 0x021b, 0x0163, 0, 0x1e71, 0, 0, 0x1e6f, 0, 0, 0, 0 }, { 0x00f9, 0x00fa, 0x00fb, 0x0169, 0x016b, 0x016d, 0, 0x00fc, 0x1ee7, 0x016f, 0x0171, 0x01d4, 0x0215, 0x0217, 0, 0, 0x01b0, 0x1ee5, 0x1e73, 0, 0, 0, 0x0173, 0x1e77, 0, 0x1e75, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0x1e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e81, 0x1e83, 0x0175, 0, 0, 0, 0x1e87, 0x1e85, 0, 0x1e98, 0, 0, 0, 0, 0, 0, 0, 0x1e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e8b, 0x1e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ef3, 0x00fd, 0x0177, 0x1ef9, 0x0233, 0, 0x1e8f, 0x00ff, 0x1ef7, 0x1e99, 0, 0, 0, 0, 0, 0, 0, 0x1ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x017a, 0x1e91, 0, 0, 0, 0x017c, 0, 0, 0, 0, 0x017e, 0, 0, 0, 0, 0, 0x1e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e95, 0, 0, 0, 0 }, { 0x1fed, 0x0385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc1, 0, 0, 0 }, { 0x1ea6, 0x1ea4, 0, 0x1eaa, 0, 0, 0, 0, 0x1ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x01fc, 0, 0, 0x01e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ec0, 0x1ebe, 0, 0x1ec4, 0, 0, 0, 0, 0x1ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ed2, 0x1ed0, 0, 0x1ed6, 0, 0, 0, 0, 0x1ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e4c, 0, 0, 0x022c, 0, 0, 0x1e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01db, 0x01d7, 0, 0, 0x01d5, 0, 0, 0, 0, 0, 0, 0x01d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ea7, 0x1ea5, 0, 0x1eab, 0, 0, 0, 0, 0x1ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x01fd, 0, 0, 0x01e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ec1, 0x1ebf, 0, 0x1ec5, 0, 0, 0, 0, 0x1ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ed3, 0x1ed1, 0, 0x1ed7, 0, 0, 0, 0, 0x1ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e4d, 0, 0, 0x022d, 0, 0, 0x1e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01dc, 0x01d8, 0, 0, 0x01d6, 0, 0, 0, 0, 0, 0, 0x01da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eb0, 0x1eae, 0, 0x1eb4, 0, 0, 0, 0, 0x1eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eb1, 0x1eaf, 0, 0x1eb5, 0, 0, 0, 0, 0x1eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e14, 0x1e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e15, 0x1e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e50, 0x1e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e51, 0x1e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1edc, 0x1eda, 0, 0x1ee0, 0, 0, 0, 0, 0x1ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1edd, 0x1edb, 0, 0x1ee1, 0, 0, 0, 0, 0x1edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eea, 0x1ee8, 0, 0x1eee, 0, 0, 0, 0, 0x1eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eeb, 0x1ee9, 0, 0x1eef, 0, 0, 0, 0, 0x1eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1fba, 0x0386, 0, 0, 0x1fb9, 0x1fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f08, 0x1f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fbc, 0, 0 }, { 0x1fc8, 0x0388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f18, 0x1f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1fca, 0x0389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f28, 0x1f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcc, 0, 0 }, { 0x1fda, 0x038a, 0, 0, 0x1fd9, 0x1fd8, 0, 0x03aa, 0, 0, 0, 0, 0, 0, 0x1f38, 0x1f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ff8, 0x038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f48, 0x1f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1fea, 0x038e, 0, 0, 0x1fe9, 0x1fe8, 0, 0x03ab, 0, 0, 0, 0, 0, 0, 0, 0x1f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ffa, 0x038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f68, 0x1f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ffc, 0, 0 }, { 0x1f70, 0x03ac, 0, 0, 0x1fb1, 0x1fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f00, 0x1f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fb6, 0x1fb3, 0, 0 }, { 0x1f72, 0x03ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f10, 0x1f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f74, 0x03ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f20, 0x1f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc6, 0x1fc3, 0, 0 }, { 0x1f76, 0x03af, 0, 0, 0x1fd1, 0x1fd0, 0, 0x03ca, 0, 0, 0, 0, 0, 0, 0x1f30, 0x1f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd6, 0, 0, 0 }, { 0x1f78, 0x03cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f40, 0x1f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe4, 0x1fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f7a, 0x03cd, 0, 0, 0x1fe1, 0x1fe0, 0, 0x03cb, 0, 0, 0, 0, 0, 0, 0x1f50, 0x1f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe6, 0, 0, 0 }, { 0x1f7c, 0x03ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f60, 0x1f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ff6, 0x1ff3, 0, 0 }, { 0x1fd2, 0x0390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd7, 0, 0, 0 }, { 0x1fe2, 0x03b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe7, 0, 0, 0 }, { 0, 0x03d3, 0, 0, 0, 0, 0, 0x03d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04d0, 0, 0x04d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x0400, 0, 0, 0, 0, 0x04d6, 0, 0x0401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04c1, 0, 0x04dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x040d, 0, 0, 0, 0x04e2, 0x0419, 0, 0x04e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0x04ee, 0x040e, 0, 0x04f0, 0, 0, 0x04f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04d1, 0, 0x04d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x0450, 0, 0, 0, 0, 0x04d7, 0, 0x0451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04c2, 0, 0x04dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x045d, 0, 0, 0, 0x04e3, 0x0439, 0, 0x04e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0x04ef, 0x045e, 0, 0x04f1, 0, 0, 0x04f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x1eac, 0, 0, 0x1eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x1ead, 0, 0, 0x1eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f02, 0x1f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f06, 0x1f80, 0, 0 }, { 0x1f03, 0x1f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f07, 0x1f81, 0, 0 }, { 0x1f0a, 0x1f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0e, 0x1f88, 0, 0 }, { 0x1f0b, 0x1f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0f, 0x1f89, 0, 0 }, { 0x1f12, 0x1f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f13, 0x1f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f1a, 0x1f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f1b, 0x1f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f22, 0x1f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f26, 0x1f90, 0, 0 }, { 0x1f23, 0x1f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f27, 0x1f91, 0, 0 }, { 0x1f2a, 0x1f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2e, 0x1f98, 0, 0 }, { 0x1f2b, 0x1f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2f, 0x1f99, 0, 0 }, { 0x1f32, 0x1f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f36, 0, 0, 0 }, { 0x1f33, 0x1f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f37, 0, 0, 0 }, { 0x1f3a, 0x1f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3e, 0, 0, 0 }, { 0x1f3b, 0x1f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3f, 0, 0, 0 }, { 0x1f42, 0x1f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f43, 0x1f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f4a, 0x1f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f4b, 0x1f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f52, 0x1f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f56, 0, 0, 0 }, { 0x1f53, 0x1f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f57, 0, 0, 0 }, { 0x1f5b, 0x1f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f5f, 0, 0, 0 }, { 0x1f62, 0x1f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f66, 0x1fa0, 0, 0 }, { 0x1f63, 0x1f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f67, 0x1fa1, 0, 0 }, { 0x1f6a, 0x1f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6e, 0x1fa8, 0, 0 }, { 0x1f6b, 0x1f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6f, 0x1fa9, 0, 0 }, { 0x1fcd, 0x1fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcf, 0, 0, 0 }, { 0x1fdd, 0x1fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fdf, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3070, 0x3071 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3073, 0x3074 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3076, 0x3077 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3079, 0x307a }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x307c, 0x307d }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d0, 0x30d1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d3, 0x30d4 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d6, 0x30d7 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d9, 0x30da }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30dc, 0x30dd } }; libidn-1.38/lib/tld.h0000644000000000000000000001154314076271517011315 00000000000000/* tld.h --- Declarations for TLD restriction checking. Copyright (C) 2004-2021 Simon Josefsson. Copyright (C) 2003-2021 Free Software Foundation, Inc. Author: Thomas Jacob, Internet24.de This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef TLD_H # define TLD_H /** * SECTION:tld * @title: tld.h * @short_description: TLD-related functions * * TLD-related functions. */ # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /* Get size_t. */ # include /* Get uint32_t. */ # include /* *INDENT-OFF* */ /* Why INDENT-OFF? See stringprep.h */ /** * Tld_table_element: * @start: Start of range. * @end: End of range, end == start if single. * * Interval of valid code points in the TLD. */ struct Tld_table_element { uint32_t start; uint32_t end; }; typedef struct Tld_table_element Tld_table_element; /** * Tld_table: * @name: TLD name, e.g., "no". * @version: Version string from TLD file. * @nvalid: Number of entries in data. * @valid: Sorted array (of size @nvalid) of valid code points. * * List valid code points in a TLD. */ struct Tld_table { const char *name; const char *version; size_t nvalid; const Tld_table_element *valid; }; typedef struct Tld_table Tld_table; /* *INDENT-ON* */ /* Error codes. */ typedef enum { TLD_SUCCESS = 0, TLD_INVALID = 1, /* Invalid character found. */ TLD_NODATA = 2, /* Char, domain or inlen = 0. */ TLD_MALLOC_ERROR = 3, TLD_ICONV_ERROR = 4, TLD_NO_TLD = 5, /* Workaround typo in earlier versions. */ TLD_NOTLD = TLD_NO_TLD } Tld_rc; extern IDNAPI const char *tld_strerror (Tld_rc rc); /* Extract TLD, as ASCII string, of UCS4 domain name into "out". */ extern IDNAPI int tld_get_4 (const uint32_t * in, size_t inlen, char **out); extern IDNAPI int tld_get_4z (const uint32_t * in, char **out); extern IDNAPI int tld_get_z (const char *in, char **out); /* Return structure corresponding to the named TLD from specified * list of TLD tables, or return NULL if no matching TLD can be * found. */ extern IDNAPI const Tld_table *tld_get_table (const char *tld, const Tld_table ** tables); /* Return structure corresponding to the named TLD, first looking * thru overrides then thru built-in list, or return NULL if no * matching TLD can be found. */ extern IDNAPI const Tld_table *tld_default_table (const char *tld, const Tld_table ** overrides); /* Check NAMEPREPPED domain name for valid characters as defined by * the relevant registering body (plus [a-z0-9.-]). If error is * TLD_INVALID, set errpos to position of offending character. */ extern IDNAPI int tld_check_4t (const uint32_t * in, size_t inlen, size_t *errpos, const Tld_table * tld); extern IDNAPI int tld_check_4tz (const uint32_t * in, size_t *errpos, const Tld_table * tld); /* Utility interfaces that uses tld_get_4* to find TLD of string, then tld_default_table (with overrides) to find proper TLD table for the string, and then hands over to tld_check_4t*. */ extern IDNAPI int tld_check_4 (const uint32_t * in, size_t inlen, size_t *errpos, const Tld_table ** overrides); extern IDNAPI int tld_check_4z (const uint32_t * in, size_t *errpos, const Tld_table ** overrides); extern IDNAPI int tld_check_8z (const char *in, size_t *errpos, const Tld_table ** overrides); extern IDNAPI int tld_check_lz (const char *in, size_t *errpos, const Tld_table ** overrides); # ifdef __cplusplus } # endif #endif /* TLD_H */ libidn-1.38/lib/m4/0000755000000000000000000000000014076274117010754 500000000000000libidn-1.38/lib/m4/lt~obsolete.m40000644000000000000000000001377414076273511013521 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) libidn-1.38/lib/m4/intlmacosx.m40000644000000000000000000000475314076273510013324 00000000000000# intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) libidn-1.38/lib/m4/gettext.m40000644000000000000000000003561514076273510012630 00000000000000# gettext.m4 serial 66 (gettext-0.18.2) dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value '$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ]])], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) libidn-1.38/lib/m4/progtest.m40000644000000000000000000000604014076273511013002 00000000000000# progtest.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) libidn-1.38/lib/m4/gtk-doc.m40000644000000000000000000001066014010230124012443 00000000000000# -*- mode: autoconf -*- # # gtk-doc.m4 - configure macro to check for gtk-doc # Copyright (C) 2003 James Henstridge # 2007-2017 Stefan Sauer # # 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 3 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, see . # # As a special exception, the above copyright owner gives unlimited # permission to copy, distribute and modify the configure scripts that # are the output of Autoconf when processing the Macro. You need not # follow the terms of the GNU General Public License when using or # distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # serial 2 dnl Usage: dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) AC_DEFUN([GTK_DOC_CHECK], [ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) AC_MSG_CHECKING([for gtk-doc]) PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) AC_MSG_RESULT($have_gtk_doc) if test "$have_gtk_doc" = "no"; then AC_MSG_WARN([ You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found.]) fi dnl check for tools we added during development dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that dnl may not be writable by the user. Currently, automake requires that the dnl test name must end in '.test'. dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) dnl for overriding the documentation installation directory AC_ARG_WITH([html-dir], AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, [with_html_dir='${datadir}/gtk-doc/html']) HTML_DIR="$with_html_dir" AC_SUBST([HTML_DIR]) dnl enable/disable documentation building AC_ARG_ENABLE([gtk-doc], AS_HELP_STRING([--enable-gtk-doc], [use gtk-doc to build documentation [[default=no]]]),, [enable_gtk_doc=no]) AC_MSG_CHECKING([whether to build gtk-doc documentation]) AC_MSG_RESULT($enable_gtk_doc) if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then AC_MSG_ERROR([ You must have $gtk_doc_requires installed to build documentation for $PACKAGE_NAME. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to '[$]0'.]) fi dnl don't check for glib if we build glib if test "x$PACKAGE_NAME" != "xglib"; then dnl don't fail if someone does not have glib PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) fi dnl enable/disable output formats AC_ARG_ENABLE([gtk-doc-html], AS_HELP_STRING([--enable-gtk-doc-html], [build documentation in html format [[default=yes]]]),, [enable_gtk_doc_html=yes]) AC_ARG_ENABLE([gtk-doc-pdf], AS_HELP_STRING([--enable-gtk-doc-pdf], [build documentation in pdf format [[default=no]]]),, [enable_gtk_doc_pdf=no]) if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) ]) libidn-1.38/lib/m4/ltsugar.m40000644000000000000000000001044014076273511012613 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) libidn-1.38/lib/m4/po.m40000644000000000000000000004503714076273511011562 00000000000000# po.m4 serial 22 (gettext-0.19) dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AC_PROG_SED])dnl AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.19]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" tab=`printf '\t'` if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) libidn-1.38/lib/m4/libtool.m40000644000000000000000000112677114076273511012616 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . ]) # serial 58 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS libidn-1.38/lib/m4/ltoptions.m40000644000000000000000000003426214076273511013175 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) libidn-1.38/lib/m4/ltversion.m40000644000000000000000000000127314076273511013163 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) libidn-1.38/lib/gunibreak.h0000644000000000000000000206300714053001337012467 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-unicode-tables.pl and re-run. Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ #ifndef BREAKTABLES_H #define BREAKTABLES_H #define G_UNICODE_DATA_VERSION "3.2" #define G_UNICODE_LAST_CHAR 0x10FFFF #define G_UNICODE_MAX_TABLE_INDEX 10000 /* the last code point that should be looked up in break_property_table_part1 */ #define G_UNICODE_LAST_CHAR_PART1 0x2FAFF static const gint8 break_property_data[][256] = { { /* page 0, index 0 */ G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_LINE_FEED, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_CARRIAGE_RETURN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_SPACE, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_HYPHEN, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_SYMBOL, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC }, { /* page 1, index 1 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 2, index 2 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 3, index 3 */ G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 4, index 4 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 5, index 5 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 6, index 6 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 7, index 7 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 9, index 8 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 10, index 9 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 11, index 10 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 12, index 11 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 13, index 12 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 14, index 13 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 15, index 14 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 16, index 15 */ G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 17, index 16 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 18, index 17 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 19, index 18 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 20, index 19 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 22, index 20 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 23, index 21 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 24, index 22 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 30, index 23 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 31, index 24 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 32, index 25 */ G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ZERO_WIDTH_SPACE, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE_AND_AFTER, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 33, index 26 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 34, index 27 */ G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 35, index 28 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 36, index 29 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN }, { /* page 37, index 30 */ G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 38, index 31 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 39, index 32 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 41, index 33 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 46, index 34 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 47, index 35 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 48, index 36 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC }, { /* page 49, index 37 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER }, { /* page 50, index 38 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 51, index 39 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 77, index 40 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 159, index 41 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 164, index 42 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 215, index 43 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 250, index 44 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 251, index 45 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 253, index 46 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 254, index 47 */ G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE }, { /* page 255, index 48 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_CONTINGENT, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 259, index 49 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 260, index 50 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 464, index 51 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 465, index 52 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 468, index 53 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 469, index 54 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 470, index 55 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 471, index 56 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC }, { /* page 678, index 57 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 762, index 58 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 3584, index 59 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN } }; /* U+0000 through U+2FAFF */ static const gint16 break_property_table_part1[763] = { 0 /* page 0 */, 1 /* page 1 */, 2 /* page 2 */, 3 /* page 3 */, 4 /* page 4 */, 5 /* page 5 */, 6 /* page 6 */, 7 /* page 7 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 8 /* page 9 */, 9 /* page 10 */, 10 /* page 11 */, 11 /* page 12 */, 12 /* page 13 */, 13 /* page 14 */, 14 /* page 15 */, 15 /* page 16 */, 16 /* page 17 */, 17 /* page 18 */, 18 /* page 19 */, 19 /* page 20 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, 20 /* page 22 */, 21 /* page 23 */, 22 /* page 24 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 23 /* page 30 */, 24 /* page 31 */, 25 /* page 32 */, 26 /* page 33 */, 27 /* page 34 */, 28 /* page 35 */, 29 /* page 36 */, 30 /* page 37 */, 31 /* page 38 */, 32 /* page 39 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, 33 /* page 41 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 34 /* page 46 */, 35 /* page 47 */, 36 /* page 48 */, 37 /* page 49 */, 38 /* page 50 */, 39 /* page 51 */, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 40 /* page 77 */, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 41 /* page 159 */, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 42 /* page 164 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 43 /* page 215 */, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 44 /* page 250 */, 45 /* page 251 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, 46 /* page 253 */, 47 /* page 254 */, 48 /* page 255 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 49 /* page 259 */, 50 /* page 260 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 51 /* page 464 */, 52 /* page 465 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 53 /* page 468 */, 54 /* page 469 */, 55 /* page 470 */, 56 /* page 471 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 57 /* page 678 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 58 /* page 762 */ }; /* U+E0000 through U+10FFFF */ static const gint16 break_property_table_part2[768] = { 59 /* page 3584 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX }; #endif /* BREAKTABLES_H */ libidn-1.38/lib/gl/0000755000000000000000000000000014076274120011030 500000000000000libidn-1.38/lib/gl/iconv_open-zos.h0000644000000000000000000003143714076273622014107 00000000000000/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-zos.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 17 "./iconv_open-zos.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 49 #define MIN_WORD_LENGTH 3 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 3 #define MAX_HASH_VALUE 64 /* maximum key range = 62, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 16, 38, 14, 1, 32, 22, 29, 3, 0, 7, 40, 2, 5, 18, 23, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 65, 0, 65, 65, 65, 0, 43, 65, 1, 65, 65, 8, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65 }; register unsigned int hval = len; switch (hval) { default: hval += asso_values[(unsigned char)str[3]+6]; /*FALLTHROUGH*/ case 3: break; } return hval + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str3[sizeof("GBK")]; char stringpool_str5[sizeof("ASCII")]; char stringpool_str7[sizeof("CP1253")]; char stringpool_str8[sizeof("EUC-KR")]; char stringpool_str9[sizeof("CP1257")]; char stringpool_str10[sizeof("CP857")]; char stringpool_str11[sizeof("ISO-8859-8")]; char stringpool_str12[sizeof("ISO-8859-3")]; char stringpool_str13[sizeof("ISO-8859-13")]; char stringpool_str14[sizeof("ISO-8859-7")]; char stringpool_str15[sizeof("CP437")]; char stringpool_str16[sizeof("CP1129")]; char stringpool_str17[sizeof("CP869")]; char stringpool_str18[sizeof("ISO-8859-9")]; char stringpool_str19[sizeof("CP922")]; char stringpool_str20[sizeof("CP1252")]; char stringpool_str21[sizeof("CP852")]; char stringpool_str22[sizeof("CP1250")]; char stringpool_str23[sizeof("CP850")]; char stringpool_str24[sizeof("CP862")]; char stringpool_str25[sizeof("ISO-8859-2")]; char stringpool_str26[sizeof("CP932")]; char stringpool_str27[sizeof("GB2312")]; char stringpool_str28[sizeof("CP1255")]; char stringpool_str29[sizeof("CP855")]; char stringpool_str30[sizeof("KOI8-R")]; char stringpool_str31[sizeof("CP1125")]; char stringpool_str32[sizeof("CP865")]; char stringpool_str33[sizeof("ISO-8859-5")]; char stringpool_str34[sizeof("ISO-8859-15")]; char stringpool_str35[sizeof("CP1256")]; char stringpool_str36[sizeof("CP856")]; char stringpool_str37[sizeof("KOI8-U")]; char stringpool_str38[sizeof("CP1254")]; char stringpool_str39[sizeof("CP866")]; char stringpool_str40[sizeof("ISO-8859-6")]; char stringpool_str41[sizeof("CP1124")]; char stringpool_str42[sizeof("CP864")]; char stringpool_str43[sizeof("ISO-8859-4")]; char stringpool_str44[sizeof("CP1251")]; char stringpool_str45[sizeof("CP775")]; char stringpool_str46[sizeof("CP943")]; char stringpool_str47[sizeof("CP1131")]; char stringpool_str48[sizeof("CP861")]; char stringpool_str49[sizeof("ISO-8859-1")]; char stringpool_str50[sizeof("EUC-JP")]; char stringpool_str52[sizeof("CP949")]; char stringpool_str55[sizeof("CP874")]; char stringpool_str64[sizeof("CP1046")]; }; static const struct stringpool_t stringpool_contents = { "GBK", "ASCII", "CP1253", "EUC-KR", "CP1257", "CP857", "ISO-8859-8", "ISO-8859-3", "ISO-8859-13", "ISO-8859-7", "CP437", "CP1129", "CP869", "ISO-8859-9", "CP922", "CP1252", "CP852", "CP1250", "CP850", "CP862", "ISO-8859-2", "CP932", "GB2312", "CP1255", "CP855", "KOI8-R", "CP1125", "CP865", "ISO-8859-5", "ISO-8859-15", "CP1256", "CP856", "KOI8-U", "CP1254", "CP866", "ISO-8859-6", "CP1124", "CP864", "ISO-8859-4", "CP1251", "CP775", "CP943", "CP1131", "CP861", "ISO-8859-1", "EUC-JP", "CP949", "CP874", "CP1046" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, #line 76 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str3, "IBM-1386"}, {-1}, #line 28 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "00367"}, {-1}, #line 68 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "IBM-5349"}, #line 75 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "IBM-eucKR"}, #line 72 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "09449"}, #line 48 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "00857"}, #line 36 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "05012"}, #line 31 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "00913"}, #line 38 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-13"}, #line 35 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"}, #line 42 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "IBM-437"}, #line 63 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "01129"}, #line 54 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "IBM-869"}, #line 37 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-9"}, #line 56 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "IBM-922"}, #line 67 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "IBM-5348"}, #line 45 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "IBM-852"}, #line 65 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "IBM-5346"}, #line 44 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "09042"}, #line 50 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "IBM-862"}, #line 30 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-2"}, #line 57 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "IBM-943"}, #line 73 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "IBM-eucCN"}, #line 70 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "09447"}, #line 46 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "13143"}, #line 40 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "00878"}, #line 62 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "IBM-1125"}, #line 52 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "00865"}, #line 33 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "ISO8859-5"}, #line 39 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-15"}, #line 71 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "09448"}, #line 47 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "IBM-856"}, #line 41 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "01168"}, #line 69 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "IBM-5350"}, #line 53 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "04962"}, #line 34 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "ISO8859-6"}, #line 61 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"}, #line 51 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "IBM-864"}, #line 32 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"}, #line 66 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "IBM-5347"}, #line 43 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str45, "00775"}, #line 58 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "IBM-943"}, #line 64 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "01131"}, #line 49 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, "IBM-861"}, #line 29 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, "ISO8859-1"}, #line 74 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str50, "01350"}, {-1}, #line 59 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str52, "IBM-1363"}, {-1}, {-1}, #line 55 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str55, "TIS-620"}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 60 "./iconv_open-zos.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, "IBM-1046"} }; const struct mapping * mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.38/lib/gl/iconv_open-aix.h0000644000000000000000000002351514076273622014053 00000000000000/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-aix.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 17 "./iconv_open-aix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 32 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 44 /* maximum key range = 39, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 4, 25, 0, 11, 24, 9, 17, 3, 14, 21, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 3, 45, 1, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 }; return len + asso_values[(unsigned char)str[3]+2] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("EUC-TW")]; char stringpool_str7[sizeof("EUC-KR")]; char stringpool_str8[sizeof("CP852")]; char stringpool_str9[sizeof("EUC-JP")]; char stringpool_str10[sizeof("ISO-8859-2")]; char stringpool_str11[sizeof("CP857")]; char stringpool_str12[sizeof("CP850")]; char stringpool_str13[sizeof("ISO-8859-7")]; char stringpool_str14[sizeof("CP932")]; char stringpool_str15[sizeof("GB2312")]; char stringpool_str16[sizeof("BIG5")]; char stringpool_str17[sizeof("CP437")]; char stringpool_str19[sizeof("ISO-8859-5")]; char stringpool_str20[sizeof("ISO-8859-15")]; char stringpool_str21[sizeof("ISO-8859-3")]; char stringpool_str22[sizeof("ISO-8859-13")]; char stringpool_str23[sizeof("CP1046")]; char stringpool_str24[sizeof("ISO-8859-8")]; char stringpool_str25[sizeof("CP856")]; char stringpool_str26[sizeof("CP1125")]; char stringpool_str27[sizeof("ISO-8859-6")]; char stringpool_str28[sizeof("CP865")]; char stringpool_str29[sizeof("CP922")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("ISO-8859-9")]; char stringpool_str33[sizeof("CP943")]; char stringpool_str34[sizeof("ISO-8859-4")]; char stringpool_str35[sizeof("ISO-8859-1")]; char stringpool_str38[sizeof("CP1129")]; char stringpool_str40[sizeof("CP869")]; char stringpool_str41[sizeof("CP1124")]; char stringpool_str44[sizeof("CP861")]; }; static const struct stringpool_t stringpool_contents = { "EUC-TW", "EUC-KR", "CP852", "EUC-JP", "ISO-8859-2", "CP857", "CP850", "ISO-8859-7", "CP932", "GB2312", "BIG5", "CP437", "ISO-8859-5", "ISO-8859-15", "ISO-8859-3", "ISO-8859-13", "CP1046", "ISO-8859-8", "CP856", "CP1125", "ISO-8859-6", "CP865", "CP922", "CP1252", "ISO-8859-9", "CP943", "ISO-8859-4", "ISO-8859-1", "CP1129", "CP869", "CP1124", "CP861" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 59 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"}, #line 58 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"}, #line 41 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"}, #line 57 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"}, #line 30 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"}, #line 43 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"}, #line 40 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"}, #line 35 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"}, #line 49 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"}, #line 56 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"}, #line 60 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "big5"}, #line 39 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"}, {-1}, #line 33 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"}, #line 38 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"}, #line 31 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"}, #line 47 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"}, #line 51 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"}, #line 36 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"}, #line 42 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"}, #line 53 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"}, #line 34 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, #line 45 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"}, #line 48 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"}, #line 55 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"}, #line 37 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"}, {-1}, #line 50 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"}, #line 32 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"}, #line 29 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"}, {-1}, {-1}, #line 54 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"}, {-1}, #line 46 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"}, #line 52 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"}, {-1}, {-1}, #line 44 "./iconv_open-aix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"} }; const struct mapping * mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.38/lib/gl/iconv_open-hpux.gperf0000644000000000000000000000353114076273531015125 00000000000000/* Character set conversion. Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ struct mapping { int standard_name; const char vendor_name[9 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On HP-UX 11.11, look in /usr/lib/nls/iconv. ISO-8859-1, "iso88591" ISO-8859-2, "iso88592" ISO-8859-5, "iso88595" ISO-8859-6, "iso88596" ISO-8859-7, "iso88597" ISO-8859-8, "iso88598" ISO-8859-9, "iso88599" ISO-8859-15, "iso885915" CP437, "cp437" CP775, "cp775" CP850, "cp850" CP852, "cp852" CP855, "cp855" CP857, "cp857" CP861, "cp861" CP862, "cp862" CP864, "cp864" CP865, "cp865" CP866, "cp866" CP869, "cp869" CP874, "cp874" CP1250, "cp1250" CP1251, "cp1251" CP1252, "cp1252" CP1253, "cp1253" CP1254, "cp1254" CP1255, "cp1255" CP1256, "cp1256" CP1257, "cp1257" CP1258, "cp1258" HP-ROMAN8, "roman8" HP-ARABIC8, "arabic8" HP-GREEK8, "greek8" HP-HEBREW8, "hebrew8" HP-TURKISH8, "turkish8" HP-KANA8, "kana8" TIS-620, "tis620" GB2312, "hp15CN" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" BIG5, "big5" SHIFT_JIS, "sjis" UTF-8, "utf8" libidn-1.38/lib/gl/iconv_open-irix.gperf0000644000000000000000000000275314076273531015121 00000000000000/* Character set conversion. Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On IRIX 6.5, look in /usr/lib/iconv and /usr/lib/international/encodings. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" KOI8-R, "KOI8" CP855, "DOS855" CP1251, "WIN1251" GB2312, "eucCN" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" SHIFT_JIS, "sjis" TIS-620, "TIS620" libidn-1.38/lib/gl/iconv_open.c0000644000000000000000000001301414076273531013257 00000000000000/* Character set conversion. Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include "c-ctype.h" #include "c-strcase.h" #define SIZEOF(a) (sizeof(a) / sizeof(a[0])) /* Namespace cleanliness. */ #define mapping_lookup rpl_iconv_open_mapping_lookup /* The macro ICONV_FLAVOR is defined to one of these or undefined. */ #define ICONV_FLAVOR_AIX "iconv_open-aix.h" #define ICONV_FLAVOR_HPUX "iconv_open-hpux.h" #define ICONV_FLAVOR_IRIX "iconv_open-irix.h" #define ICONV_FLAVOR_OSF "iconv_open-osf.h" #define ICONV_FLAVOR_SOLARIS "iconv_open-solaris.h" #define ICONV_FLAVOR_ZOS "iconv_open-zos.h" #ifdef ICONV_FLAVOR # include ICONV_FLAVOR #endif iconv_t rpl_iconv_open (const char *tocode, const char *fromcode) #undef iconv_open { char fromcode_upper[32]; char tocode_upper[32]; char *fromcode_upper_end; char *tocode_upper_end; #if REPLACE_ICONV_UTF /* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}. Do this here, before calling the real iconv_open(), because OSF/1 5.1 iconv() to these encoding inserts a BOM, which is wrong. We do not need to handle conversion between arbitrary encodings and UTF-{16,32}{BE,LE}, because the 'striconveh' module implements two-step conversion through UTF-8. The _ICONV_* constants are chosen to be disjoint from any iconv_t returned by the system's iconv_open() functions. Recall that iconv_t is a scalar type. */ if (c_toupper (fromcode[0]) == 'U' && c_toupper (fromcode[1]) == 'T' && c_toupper (fromcode[2]) == 'F' && fromcode[3] == '-') { if (c_toupper (tocode[0]) == 'U' && c_toupper (tocode[1]) == 'T' && c_toupper (tocode[2]) == 'F' && tocode[3] == '-') { if (strcmp (fromcode + 4, "8") == 0) { if (c_strcasecmp (tocode + 4, "16BE") == 0) return _ICONV_UTF8_UTF16BE; if (c_strcasecmp (tocode + 4, "16LE") == 0) return _ICONV_UTF8_UTF16LE; if (c_strcasecmp (tocode + 4, "32BE") == 0) return _ICONV_UTF8_UTF32BE; if (c_strcasecmp (tocode + 4, "32LE") == 0) return _ICONV_UTF8_UTF32LE; } else if (strcmp (tocode + 4, "8") == 0) { if (c_strcasecmp (fromcode + 4, "16BE") == 0) return _ICONV_UTF16BE_UTF8; if (c_strcasecmp (fromcode + 4, "16LE") == 0) return _ICONV_UTF16LE_UTF8; if (c_strcasecmp (fromcode + 4, "32BE") == 0) return _ICONV_UTF32BE_UTF8; if (c_strcasecmp (fromcode + 4, "32LE") == 0) return _ICONV_UTF32LE_UTF8; } } } #endif /* Do *not* add special support for 8-bit encodings like ASCII or ISO-8859-1 here. This would lead to programs that work in some locales (such as the "C" or "en_US" locales) but do not work in East Asian locales. It is better if programmers make their programs depend on GNU libiconv (except on glibc systems), e.g. by using the AM_ICONV macro and documenting the dependency in an INSTALL or DEPENDENCIES file. */ /* Try with the original names first. This covers the case when fromcode or tocode is a lowercase encoding name that is understood by the system's iconv_open but not listed in our mappings table. */ { iconv_t cd = iconv_open (tocode, fromcode); if (cd != (iconv_t)(-1)) return cd; } /* Convert the encodings to upper case, because 1. in the arguments of iconv_open() on AIX, HP-UX, and OSF/1 the case matters, 2. it makes searching in the table faster. */ { const char *p = fromcode; char *q = fromcode_upper; while ((*q = c_toupper (*p)) != '\0') { p++; q++; if (q == &fromcode_upper[SIZEOF (fromcode_upper)]) { errno = EINVAL; return (iconv_t)(-1); } } fromcode_upper_end = q; } { const char *p = tocode; char *q = tocode_upper; while ((*q = c_toupper (*p)) != '\0') { p++; q++; if (q == &tocode_upper[SIZEOF (tocode_upper)]) { errno = EINVAL; return (iconv_t)(-1); } } tocode_upper_end = q; } #ifdef ICONV_FLAVOR /* Apply the mappings. */ { const struct mapping *m = mapping_lookup (fromcode_upper, fromcode_upper_end - fromcode_upper); fromcode = (m != NULL ? m->vendor_name : fromcode_upper); } { const struct mapping *m = mapping_lookup (tocode_upper, tocode_upper_end - tocode_upper); tocode = (m != NULL ? m->vendor_name : tocode_upper); } #else fromcode = fromcode_upper; tocode = tocode_upper; #endif return iconv_open (tocode, fromcode); } libidn-1.38/lib/gl/cdefs.h0000644000000000000000000005437214076273531012225 00000000000000/* Copyright (C) 1992-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SYS_CDEFS_H #define _SYS_CDEFS_H 1 /* We are almost always included from features.h. */ #ifndef _FEATURES_H # include #endif /* The GNU libc does not support any K&R compilers or the traditional mode of ISO C compilers anymore. Check for some of the combinations not supported anymore. */ #if defined __GNUC__ && !defined __STDC__ # error "You need a ISO C conforming compiler to use the glibc headers" #endif /* Some user header file might have defined this before. */ #undef __P #undef __PMT /* Compilers that lack __has_attribute may object to #if defined __has_attribute && __has_attribute (...) even though they do not need to evaluate the right-hand side of the &&. Similarly for __has_builtin, etc. */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || 3 < __clang_major__ + (5 <= __clang_minor__))) # define __glibc_has_attribute(attr) __has_attribute (attr) #else # define __glibc_has_attribute(attr) 0 #endif #ifdef __has_builtin # define __glibc_has_builtin(name) __has_builtin (name) #else # define __glibc_has_builtin(name) 0 #endif #ifdef __has_extension # define __glibc_has_extension(ext) __has_extension (ext) #else # define __glibc_has_extension(ext) 0 #endif #if defined __GNUC__ || defined __clang__ /* All functions, except those with callbacks or those that synchronize memory, are leaf functions. */ # if __GNUC_PREREQ (4, 6) && !defined _LIBC # define __LEAF , __leaf__ # define __LEAF_ATTR __attribute__ ((__leaf__)) # else # define __LEAF # define __LEAF_ATTR # endif /* GCC can always grok prototypes. For C++ programs we add throw() to help it optimize the function calls. But this only works with gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions as non-throwing using a function attribute since programs can use the -fexceptions options for C code as well. */ # if !defined __cplusplus \ && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) # define __THROW __attribute__ ((__nothrow__ __LEAF)) # define __THROWNL __attribute__ ((__nothrow__)) # define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct # define __NTHNL(fct) __attribute__ ((__nothrow__)) fct # else # if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4) # if __cplusplus >= 201103L # define __THROW noexcept (true) # else # define __THROW throw () # endif # define __THROWNL __THROW # define __NTH(fct) __LEAF_ATTR fct __THROW # define __NTHNL(fct) fct __THROW # else # define __THROW # define __THROWNL # define __NTH(fct) fct # define __NTHNL(fct) fct # endif # endif #else /* Not GCC or clang. */ # if (defined __cplusplus \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) # define __inline inline # else # define __inline /* No inline functions. */ # endif # define __THROW # define __THROWNL # define __NTH(fct) fct #endif /* GCC || clang. */ /* These two macros are not used in glibc anymore. They are kept here only because some other projects expect the macros to be defined. */ #define __P(args) args #define __PMT(args) args /* For these things, GCC behaves the ANSI way normally, and the non-ANSI way under -traditional. */ #define __CONCAT(x,y) x ## y #define __STRING(x) #x /* This is not a typedef so `const __ptr_t' does the right thing. */ #define __ptr_t void * /* C++ needs to know that types and declarations are C, not C++. */ #ifdef __cplusplus # define __BEGIN_DECLS extern "C" { # define __END_DECLS } #else # define __BEGIN_DECLS # define __END_DECLS #endif /* Fortify support. */ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) /* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ #if __USE_FORTIFY_LEVEL == 3 && __glibc_clang_prereq (9, 0) # define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) # define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) #else # define __glibc_objsize0(__o) __bos0 (__o) # define __glibc_objsize(__o) __bos (__o) #endif #if __GNUC_PREREQ (4,3) # define __warnattr(msg) __attribute__((__warning__ (msg))) # define __errordecl(name, msg) \ extern void name (void) __attribute__((__error__ (msg))) #else # define __warnattr(msg) # define __errordecl(name, msg) extern void name (void) #endif /* Support for flexible arrays. Headers that should use flexible arrays only if they're "real" (e.g. only if they won't affect sizeof()) should test #if __glibc_c99_flexarr_available. */ #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc # define __flexarr [] # define __glibc_c99_flexarr_available 1 #elif __GNUC_PREREQ (2,97) || defined __clang__ /* GCC 2.97 and clang support C99 flexible array members as an extension, even when in C89 mode or compiling C++ (any version). */ # define __flexarr [] # define __glibc_c99_flexarr_available 1 #elif defined __GNUC__ /* Pre-2.97 GCC did not support C99 flexible arrays but did have an equivalent extension with slightly different notation. */ # define __flexarr [0] # define __glibc_c99_flexarr_available 1 #else /* Some other non-C99 compiler. Approximate with [1]. */ # define __flexarr [1] # define __glibc_c99_flexarr_available 0 #endif /* __asm__ ("xyz") is used throughout the headers to rename functions at the assembly language level. This is wrapped by the __REDIRECT macro, in order to support compilers that can do this some other way. When compilers don't support asm-names at all, we have to do preprocessor tricks instead (which don't have exactly the right semantics, but it's the best we can do). Example: int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ #if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) # define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) # ifdef __cplusplus # define __REDIRECT_NTH(name, proto, alias) \ name proto __THROW __asm__ (__ASMNAME (#alias)) # define __REDIRECT_NTHNL(name, proto, alias) \ name proto __THROWNL __asm__ (__ASMNAME (#alias)) # else # define __REDIRECT_NTH(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROW # define __REDIRECT_NTHNL(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROWNL # endif # define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) # define __ASMNAME2(prefix, cname) __STRING (prefix) cname /* #elif __SOME_OTHER_COMPILER__ # define __REDIRECT(name, proto, alias) name proto; \ _Pragma("let " #name " = " #alias) */ #endif /* GCC and clang have various useful declarations that can be made with the '__attribute__' syntax. All of the ways we use this do fine if they are omitted for compilers that don't understand it. */ #if !(defined __GNUC__ || defined __clang__) # define __attribute__(xyz) /* Ignore */ #endif /* At some point during the gcc 2.96 development the `malloc' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) # define __attribute_malloc__ __attribute__ ((__malloc__)) #else # define __attribute_malloc__ /* Ignore */ #endif /* Tell the compiler which arguments to an allocation function indicate the size of the allocation. */ #if __GNUC_PREREQ (4, 3) # define __attribute_alloc_size__(params) \ __attribute__ ((__alloc_size__ params)) #else # define __attribute_alloc_size__(params) /* Ignore. */ #endif /* At some point during the gcc 2.96 development the `pure' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) # define __attribute_pure__ __attribute__ ((__pure__)) #else # define __attribute_pure__ /* Ignore */ #endif /* This declaration tells the compiler that the value is constant. */ #if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) # define __attribute_const__ __attribute__ ((__const__)) #else # define __attribute_const__ /* Ignore */ #endif #if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) # define __attribute_maybe_unused__ __attribute__ ((__unused__)) /* Once the next version of the C standard comes out, we can do something like the following here: #elif defined __STDC_VERSION__ && 202???L <= __STDC_VERSION__ # define __attribute_maybe_unused__ [[__maybe_unused__]] */ #else # define __attribute_maybe_unused__ /* Ignore */ #endif /* At some point during the gcc 3.1 development the `used' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) # define __attribute_used__ __attribute__ ((__used__)) # define __attribute_noinline__ __attribute__ ((__noinline__)) #else # define __attribute_used__ __attribute__ ((__unused__)) # define __attribute_noinline__ /* Ignore */ #endif /* Since version 3.2, gcc allows marking deprecated functions. */ #if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) # define __attribute_deprecated__ __attribute__ ((__deprecated__)) #else # define __attribute_deprecated__ /* Ignore */ #endif /* Since version 4.5, gcc also allows one to specify the message printed when a deprecated function is used. clang claims to be gcc 4.2, but may also support this feature. */ #if __GNUC_PREREQ (4,5) \ || __glibc_has_extension (__attribute_deprecated_with_message__) # define __attribute_deprecated_msg__(msg) \ __attribute__ ((__deprecated__ (msg))) #else # define __attribute_deprecated_msg__(msg) __attribute_deprecated__ #endif /* At some point during the gcc 2.8 development the `format_arg' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. If several `format_arg' attributes are given for the same function, in gcc-3.0 and older, all but the last one are ignored. In newer gccs, all designated arguments are considered. */ #if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) # define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) #else # define __attribute_format_arg__(x) /* Ignore */ #endif /* At some point during the gcc 2.97 development the `strfmon' format attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) # define __attribute_format_strfmon__(a,b) \ __attribute__ ((__format__ (__strfmon__, a, b))) #else # define __attribute_format_strfmon__(a,b) /* Ignore */ #endif /* The nonnull function attribute marks pointer parameters that must not be NULL. This has the name __nonnull in glibc, and __attribute_nonnull__ in files shared with Gnulib to avoid collision with a different __nonnull in DragonFlyBSD 5.9. */ #ifndef __attribute_nonnull__ # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) # define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) # else # define __attribute_nonnull__(params) # endif #endif #ifndef __nonnull # define __nonnull(params) __attribute_nonnull__ (params) #endif /* If fortification mode, we warn about unused results of certain function calls which can lead to problems. */ #if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) # if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 # define __wur __attribute_warn_unused_result__ # endif #else # define __attribute_warn_unused_result__ /* empty */ #endif #ifndef __wur # define __wur /* Ignore */ #endif /* Forces a function to be always inlined. */ #if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) /* The Linux kernel defines __always_inline in stddef.h (283d7573), and it conflicts with this definition. Therefore undefine it first to allow either header to be included first. */ # undef __always_inline # define __always_inline __inline __attribute__ ((__always_inline__)) #else # undef __always_inline # define __always_inline __inline #endif /* Associate error messages with the source location of the call site rather than with the source location inside the function. */ #if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) # define __attribute_artificial__ __attribute__ ((__artificial__)) #else # define __attribute_artificial__ /* Ignore */ #endif /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions older than 4.3 may define these macros and still not guarantee GNU inlining semantics. clang++ identifies itself as gcc-4.2, but has support for GNU inlining semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and __GNUC_GNU_INLINE__ macro definitions. */ #if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ || defined __GNUC_GNU_INLINE__))) # if defined __GNUC_STDC_INLINE__ || defined __cplusplus # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) # define __extern_always_inline \ extern __always_inline __attribute__ ((__gnu_inline__)) # else # define __extern_inline extern __inline # define __extern_always_inline extern __always_inline # endif #endif #ifdef __extern_always_inline # define __fortify_function __extern_always_inline __attribute_artificial__ #endif /* GCC 4.3 and above allow passing all anonymous arguments of an __extern_always_inline function to some other vararg function. */ #if __GNUC_PREREQ (4,3) # define __va_arg_pack() __builtin_va_arg_pack () # define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif /* It is possible to compile containing GCC extensions even if GCC is run in pedantic mode if the uses are carefully marked using the `__extension__' keyword. But this is not generally available before version 2.8. */ #if !(__GNUC_PREREQ (2,8) || defined __clang__) # define __extension__ /* Ignore */ #endif /* __restrict is known in EGCS 1.2 and above, and in clang. It works also in C++ mode (outside of arrays), but only when spelled as '__restrict', not 'restrict'. */ #if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L # define __restrict restrict # else # define __restrict /* Ignore */ # endif #endif /* ISO C99 also allows to declare arrays as non-overlapping. The syntax is array_name[restrict] GCC 3.1 and clang support this. This syntax is not usable in C++ mode. */ #if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus # define __restrict_arr __restrict #else # ifdef __GNUC__ # define __restrict_arr /* Not supported in old GCC. */ # else # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L # define __restrict_arr restrict # else /* Some other non-C99 compiler. */ # define __restrict_arr /* Not supported. */ # endif # endif #endif #if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) # define __glibc_unlikely(cond) __builtin_expect ((cond), 0) # define __glibc_likely(cond) __builtin_expect ((cond), 1) #else # define __glibc_unlikely(cond) (cond) # define __glibc_likely(cond) (cond) #endif #if (!defined _Noreturn \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && !(__GNUC_PREREQ (4,7) \ || (3 < __clang_major__ + (5 <= __clang_minor__)))) # if __GNUC_PREREQ (2,8) # define _Noreturn __attribute__ ((__noreturn__)) # else # define _Noreturn # endif #endif #if __GNUC_PREREQ (8, 0) /* Describes a char array whose address can safely be passed as the first argument to strncpy and strncat, as the char array is not necessarily a NUL-terminated string. */ # define __attribute_nonstring__ __attribute__ ((__nonstring__)) #else # define __attribute_nonstring__ #endif /* Undefine (also defined in libc-symbols.h). */ #undef __attribute_copy__ #if __GNUC_PREREQ (9, 0) /* Copies attributes from the declaration or type referenced by the argument. */ # define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) #else # define __attribute_copy__(arg) #endif #if (!defined _Static_assert && !defined __cplusplus \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ || defined __STRICT_ANSI__)) # define _Static_assert(expr, diagnostic) \ extern int (*__Static_assert_function (void)) \ [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] #endif /* Gnulib avoids including these, as they don't work on non-glibc or older glibc platforms. */ #ifndef __GNULIB_CDEFS # include # include #endif #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # ifdef __REDIRECT /* Alias name defined automatically. */ # define __LDBL_REDIR(name, proto) ... unused__ldbl_redir # define __LDBL_REDIR_DECL(name) \ extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); /* Alias name defined automatically, with leading underscores. */ # define __LDBL_REDIR2_DECL(name) \ extern __typeof (__##name) __##name \ __asm (__ASMNAME ("__" #name "ieee128")); /* Alias name defined manually. */ # define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 # define __LDBL_REDIR1_DECL(name, alias) \ extern __typeof (name) name __asm (__ASMNAME (#alias)); # define __LDBL_REDIR1_NTH(name, proto, alias) \ __REDIRECT_NTH (name, proto, alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) /* Unused. */ # define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl # define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth # else _Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); # endif #elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH # define __LDBL_COMPAT 1 # ifdef __REDIRECT # define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) # define __LDBL_REDIR(name, proto) \ __LDBL_REDIR1 (name, proto, __nldbl_##name) # define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) # define __LDBL_REDIR_NTH(name, proto) \ __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) # define __LDBL_REDIR2_DECL(name) \ extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); # define __LDBL_REDIR1_DECL(name, alias) \ extern __typeof (name) name __asm (__ASMNAME (#alias)); # define __LDBL_REDIR_DECL(name) \ extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); # define __REDIRECT_LDBL(name, proto, alias) \ __LDBL_REDIR1 (name, proto, __nldbl_##alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) # endif #endif #if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ || !defined __REDIRECT # define __LDBL_REDIR1(name, proto, alias) name proto # define __LDBL_REDIR(name, proto) name proto # define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW # define __LDBL_REDIR_NTH(name, proto) name proto __THROW # define __LDBL_REDIR2_DECL(name) # define __LDBL_REDIR_DECL(name) # ifdef __REDIRECT # define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __REDIRECT_NTH (name, proto, alias) # endif #endif /* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is intended for use in preprocessor macros. Note: MESSAGE must be a _single_ string; concatenation of string literals is not supported. */ #if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) # define __glibc_macro_warning1(message) _Pragma (#message) # define __glibc_macro_warning(message) \ __glibc_macro_warning1 (GCC warning message) #else # define __glibc_macro_warning(msg) #endif /* Generic selection (ISO C11) is a C-only feature, available in GCC since version 4.9. Previous versions do not provide generic selection, even though they might set __STDC_VERSION__ to 201112L, when in -std=c11 mode. Thus, we must check for !defined __GNUC__ when testing __STDC_VERSION__ for generic selection support. On the other hand, Clang also defines __GNUC__, so a clang-specific check is required to enable the use of generic selection. */ #if !defined __cplusplus \ && (__GNUC_PREREQ (4, 9) \ || __glibc_has_extension (c_generic_selections) \ || (!defined __GNUC__ && defined __STDC_VERSION__ \ && __STDC_VERSION__ >= 201112L)) # define __HAVE_GENERIC_SELECTION 1 #else # define __HAVE_GENERIC_SELECTION 0 #endif #if __GNUC_PREREQ (10, 0) /* Designates a 1-based positional argument ref-index of pointer type that can be used to access size-index elements of the pointed-to array according to access mode, or at least one element when size-index is not provided: access (access-mode, [, ]) */ #define __attr_access(x) __attribute__ ((__access__ x)) #else # define __attr_access(x) #endif /* Specify that a function such as setjmp or vfork may return twice. */ #if __GNUC_PREREQ (4, 1) # define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) #else # define __attribute_returns_twice__ /* Ignore. */ #endif #endif /* sys/cdefs.h */ libidn-1.38/lib/gl/limits.in.h0000644000000000000000000001037014076273531013035 00000000000000/* A GNU-like . Copyright 2016-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_LIMITS_H /* Special invocation convention: On Haiku/x86_64, we have a sequence of nested includes -> -> . In this situation, LONG_MAX and INT_MAX are not yet defined, therefore we should not attempt to define LONG_BIT. */ #@INCLUDE_NEXT@ @NEXT_LIMITS_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LIMITS_H # define _GL_ALREADY_INCLUDING_LIMITS_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_LIMITS_H@ # undef _GL_ALREADY_INCLUDING_LIMITS_H #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H #ifndef LLONG_MIN # if defined LONG_LONG_MIN /* HP-UX 11.31 */ # define LLONG_MIN LONG_LONG_MIN # elif defined LONGLONG_MIN /* IRIX 6.5 */ # define LLONG_MIN LONGLONG_MIN # elif defined __GNUC__ # define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) # endif #endif #ifndef LLONG_MAX # if defined LONG_LONG_MAX /* HP-UX 11.31 */ # define LLONG_MAX LONG_LONG_MAX # elif defined LONGLONG_MAX /* IRIX 6.5 */ # define LLONG_MAX LONGLONG_MAX # elif defined __GNUC__ # define LLONG_MAX __LONG_LONG_MAX__ # endif #endif #ifndef ULLONG_MAX # if defined ULONG_LONG_MAX /* HP-UX 11.31 */ # define ULLONG_MAX ULONG_LONG_MAX # elif defined ULONGLONG_MAX /* IRIX 6.5 */ # define ULLONG_MAX ULONGLONG_MAX # elif defined __GNUC__ # define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) # endif #endif /* The number of usable bits in an unsigned or signed integer type with minimum value MIN and maximum value MAX, as an int expression suitable in #if. Cover all known practical hosts. This implementation exploits the fact that MAX is 1 less than a power of 2, and merely counts the number of 1 bits in MAX; "COBn" means "count the number of 1 bits in the low-order n bits"). */ #define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) #define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) #define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) #define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) #define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) #ifndef WORD_BIT /* Assume 'int' is 32 bits wide. */ # define WORD_BIT 32 #endif #ifndef LONG_BIT /* Assume 'long' is 32 or 64 bits wide. */ # if LONG_MAX == INT_MAX # define LONG_BIT 32 # else # define LONG_BIT 64 # endif #endif /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) # define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) # define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) # define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) # define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) # define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) # define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) # define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) # define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) # define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) # define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) #endif /* !ULLONG_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif libidn-1.38/lib/gl/iconv_open-irix.h0000644000000000000000000001715414076273622014247 00000000000000/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-irix.gperf */ /* Computed positions: -k'1,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 17 "./iconv_open-irix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 19 #define MIN_WORD_LENGTH 5 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 23 /* maximum key range = 19, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 2, 5, 12, 11, 0, 10, 9, 8, 7, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 24, 0, 24, 5, 24, 0, 24, 7, 24, 24, 24, 24, 7, 24, 1, 0, 8, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 }; return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; } struct stringpool_t { char stringpool_str5[sizeof("CP855")]; char stringpool_str6[sizeof("EUC-TW")]; char stringpool_str7[sizeof("EUC-KR")]; char stringpool_str8[sizeof("CP1251")]; char stringpool_str9[sizeof("SHIFT_JIS")]; char stringpool_str10[sizeof("ISO-8859-5")]; char stringpool_str11[sizeof("ISO-8859-15")]; char stringpool_str12[sizeof("ISO-8859-1")]; char stringpool_str13[sizeof("EUC-JP")]; char stringpool_str14[sizeof("KOI8-R")]; char stringpool_str15[sizeof("ISO-8859-2")]; char stringpool_str16[sizeof("GB2312")]; char stringpool_str17[sizeof("ISO-8859-9")]; char stringpool_str18[sizeof("ISO-8859-8")]; char stringpool_str19[sizeof("ISO-8859-7")]; char stringpool_str20[sizeof("ISO-8859-6")]; char stringpool_str21[sizeof("ISO-8859-4")]; char stringpool_str22[sizeof("ISO-8859-3")]; char stringpool_str23[sizeof("TIS-620")]; }; static const struct stringpool_t stringpool_contents = { "CP855", "EUC-TW", "EUC-KR", "CP1251", "SHIFT_JIS", "ISO-8859-5", "ISO-8859-15", "ISO-8859-1", "EUC-JP", "KOI8-R", "ISO-8859-2", "GB2312", "ISO-8859-9", "ISO-8859-8", "ISO-8859-7", "ISO-8859-6", "ISO-8859-4", "ISO-8859-3", "TIS-620" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, #line 40 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"}, #line 45 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"}, #line 44 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"}, #line 41 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"}, #line 46 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "sjis"}, #line 33 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"}, #line 38 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 29 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"}, #line 43 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"}, #line 39 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"}, #line 30 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"}, #line 42 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"}, #line 37 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"}, #line 36 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"}, #line 35 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"}, #line 34 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"}, #line 32 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"}, #line 31 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"}, #line 47 "./iconv_open-irix.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"} }; const struct mapping * mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.38/lib/gl/iconv_open-osf.h0000644000000000000000000002536514076273622014066 00000000000000/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-osf.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 17 "./iconv_open-osf.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 38 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 47 /* maximum key range = 42, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 2, 29, 24, 34, 31, 0, 15, 14, 10, 13, 2, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 7, 48, 48, 48, 48, 48, 48, 11, 48, 2, 7, 48, 48, 48, 1, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 }; return len + asso_values[(unsigned char)str[3]+3] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("CP1255")]; char stringpool_str7[sizeof("CP775")]; char stringpool_str8[sizeof("CP1250")]; char stringpool_str9[sizeof("EUC-TW")]; char stringpool_str10[sizeof("EUC-KR")]; char stringpool_str11[sizeof("TIS-620")]; char stringpool_str12[sizeof("ISO-8859-5")]; char stringpool_str13[sizeof("ISO-8859-15")]; char stringpool_str14[sizeof("BIG5")]; char stringpool_str15[sizeof("CP855")]; char stringpool_str16[sizeof("CP1258")]; char stringpool_str17[sizeof("CP850")]; char stringpool_str18[sizeof("CP865")]; char stringpool_str19[sizeof("EUC-JP")]; char stringpool_str20[sizeof("CP1257")]; char stringpool_str21[sizeof("CP1256")]; char stringpool_str22[sizeof("ISO-8859-8")]; char stringpool_str23[sizeof("SHIFT_JIS")]; char stringpool_str25[sizeof("ISO-8859-9")]; char stringpool_str26[sizeof("ISO-8859-7")]; char stringpool_str27[sizeof("ISO-8859-6")]; char stringpool_str29[sizeof("CP857")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("CP869")]; char stringpool_str32[sizeof("CP949")]; char stringpool_str33[sizeof("CP866")]; char stringpool_str34[sizeof("CP437")]; char stringpool_str35[sizeof("CP1251")]; char stringpool_str36[sizeof("ISO-8859-2")]; char stringpool_str37[sizeof("CP1254")]; char stringpool_str38[sizeof("CP874")]; char stringpool_str39[sizeof("CP852")]; char stringpool_str40[sizeof("CP1253")]; char stringpool_str41[sizeof("ISO-8859-1")]; char stringpool_str42[sizeof("CP862")]; char stringpool_str43[sizeof("ISO-8859-4")]; char stringpool_str46[sizeof("ISO-8859-3")]; char stringpool_str47[sizeof("CP861")]; }; static const struct stringpool_t stringpool_contents = { "CP1255", "CP775", "CP1250", "EUC-TW", "EUC-KR", "TIS-620", "ISO-8859-5", "ISO-8859-15", "BIG5", "CP855", "CP1258", "CP850", "CP865", "EUC-JP", "CP1257", "CP1256", "ISO-8859-8", "SHIFT_JIS", "ISO-8859-9", "ISO-8859-7", "ISO-8859-6", "CP857", "CP1252", "CP869", "CP949", "CP866", "CP437", "CP1251", "ISO-8859-2", "CP1254", "CP874", "CP852", "CP1253", "ISO-8859-1", "CP862", "ISO-8859-4", "ISO-8859-3", "CP861" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 57 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"}, #line 40 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "cp775"}, #line 52 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"}, #line 63 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"}, #line 62 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"}, #line 66 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"}, #line 33 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"}, #line 38 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"}, #line 64 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "big5"}, #line 43 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "cp855"}, #line 60 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"}, #line 41 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "cp850"}, #line 47 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "cp865"}, #line 61 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"}, #line 59 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"}, #line 58 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"}, #line 36 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"}, #line 65 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"}, {-1}, #line 37 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"}, #line 35 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"}, #line 34 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, {-1}, #line 44 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "cp857"}, #line 54 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 49 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "cp869"}, #line 51 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"}, #line 48 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "cp866"}, #line 39 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "cp437"}, #line 53 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"}, #line 30 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"}, #line 56 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"}, #line 50 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "cp874"}, #line 42 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "cp852"}, #line 55 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"}, #line 29 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"}, #line 46 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "cp862"}, #line 32 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"}, {-1}, {-1}, #line 31 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"}, #line 45 "./iconv_open-osf.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "cp861"} }; const struct mapping * mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.38/lib/gl/gettext.h0000644000000000000000000002502514076273531012616 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option or through "#define ENABLE NLS 0" before including this file. */ #if defined ENABLE_NLS && ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include , which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include /* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. This relates to the -Wvla and -Wvla-larger-than warnings, enabled in the default GCC many warnings set. This allows programs to disable use of VLAs, which may be unintended, or may be awkward to support portably, or may have security implications due to non-deterministic stack usage. */ #if (!defined GNULIB_NO_VLA \ && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc) || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 #endif #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); found_translation = (translation != msg_ctxt_id); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ libidn-1.38/lib/gl/free.c0000644000000000000000000000277214076273531012052 00000000000000/* Make free() preserve errno. Copyright (C) 2003, 2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #include /* Specification. */ #include /* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ #if !HAVE_FREE_POSIX # include void rpl_free (void *p) # undef free { # if defined __GNUC__ && !defined __clang__ /* An invalid GCC optimization would optimize away the assignments in the code below, when link-time optimization (LTO) is enabled. Make the code more complicated, so that GCC does not grok how to optimize it. */ int err[2]; err[0] = errno; err[1] = errno; errno = 0; free (p); errno = err[errno == 0]; # else int err = errno; free (p); errno = err; # endif } #endif libidn-1.38/lib/gl/Makefile.in0000644000000000000000000032666014076273733013043 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import \ # --lib=libgnu \ # --source-base=lib/gl \ # --m4-base=lib/gl/m4 \ # --doc-base=doc \ # --tests-base=tests \ # --aux-dir=build-aux \ # --lgpl=2 \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=lgl \ # --no-vc-files \ # gettext-h \ # langinfo \ # stdint \ # striconv \ # strverscmp \ # unistr/u8-check VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @GL_COND_LIBTOOL_TRUE@am__append_1 = $(LTLIBICONV) @LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_2 = unistr/u8-check.c @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_3 = unistr/u8-mbtoucr.c @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_4 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c subdir = lib/gl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am__libgnu_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \ c-strcasecmp.c c-strncasecmp.c gettext.h striconv.h striconv.c \ unistd.c unistr/u8-check.c unistr/u8-mbtoucr.c \ unistr/u8-uctomb.c unistr/u8-uctomb-aux.c am__dirstamp = $(am__leading_dot)dirstamp @LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_1 = \ @LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@ unistr/u8-check.lo @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_2 = unistr/u8-mbtoucr.lo @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_3 = unistr/u8-uctomb.lo \ @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/u8-uctomb-aux.lo am_libgnu_la_OBJECTS = c-ctype.lo c-strcasecmp.lo c-strncasecmp.lo \ striconv.lo unistd.lo $(am__objects_1) $(am__objects_2) \ $(am__objects_3) libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgnu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgnu_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/c-ctype.Plo \ ./$(DEPDIR)/c-strcasecmp.Plo ./$(DEPDIR)/c-strncasecmp.Plo \ ./$(DEPDIR)/free.Plo ./$(DEPDIR)/iconv.Plo \ ./$(DEPDIR)/iconv_close.Plo ./$(DEPDIR)/iconv_open.Plo \ ./$(DEPDIR)/striconv.Plo ./$(DEPDIR)/strverscmp.Plo \ ./$(DEPDIR)/unistd.Plo unistr/$(DEPDIR)/u8-check.Plo \ unistr/$(DEPDIR)/u8-mbtoucr.Plo \ unistr/$(DEPDIR)/u8-uctomb-aux.Plo \ unistr/$(DEPDIR)/u8-uctomb.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) DIST_SOURCES = $(am__libgnu_la_SOURCES_DIST) \ $(EXTRA_libgnu_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = libgnu.la # No GNU Make output. EXTRA_DIST = m4/gnulib-cache.m4 attribute.h free.c \ $(top_srcdir)/build-aux/config.rpath iconv.in.h \ iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \ iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h iconv.c \ iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf \ iconv_open-irix.gperf iconv_open-osf.gperf \ iconv_open-solaris.gperf iconv_open-zos.gperf iconv_open.c \ langinfo.in.h cdefs.h libc-config.h limits.in.h _Noreturn.h \ arg-nonnull.h c++defs.h unused-parameter.h warn-on-use.h \ stdbool.in.h stddef.in.h stdint.in.h stdlib.in.h string.in.h \ strverscmp.c sys_types.in.h unistd.in.h unistr.in.h \ unitypes.in.h BUILT_SOURCES = $(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \ iconv_open-zos.h langinfo.h $(LIMITS_H) $(STDBOOL_H) \ $(STDDEF_H) $(STDINT_H) stdlib.h string.h sys/types.h unistd.h \ $(LIBUNISTRING_UNISTR_H) $(LIBUNISTRING_UNITYPES_H) SUFFIXES = MOSTLYCLEANFILES = core *.stackdump iconv.h iconv.h-t \ iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t \ iconv_open-osf.h-t iconv_open-solaris.h-t iconv_open-zos.h-t \ langinfo.h langinfo.h-t limits.h limits.h-t stdbool.h \ stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t stdlib.h \ stdlib.h-t string.h string.h-t sys/types.h sys/types.h-t \ unistd.h unistd.h-t unistr.h unistr.h-t unitypes.h \ unitypes.h-t MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \ iconv_open-zos.h AM_CPPFLAGS = AM_CFLAGS = libgnu_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c \ c-strncasecmp.c gettext.h striconv.h striconv.c unistd.c \ $(am__append_2) $(am__append_3) $(am__append_4) libgnu_la_LIBADD = $(lgl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(lgl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = free.c iconv.c iconv_close.c iconv_open.c \ strverscmp.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LTLIBICONV) \ $(LTLIBINTL) $(am__append_1) # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) GPERF = gperf V_GPERF = $(V_GPERF_@AM_V@) V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@) V_GPERF_0 = @echo " GPERF " $@; # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(srcdir)/_Noreturn.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H = $(srcdir)/arg-nonnull.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H = $(srcdir)/c++defs.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. UNUSED_PARAMETER_H = $(srcdir)/unused-parameter.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H = $(srcdir)/warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/gl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits lib/gl/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } unistr/$(am__dirstamp): @$(MKDIR_P) unistr @: > unistr/$(am__dirstamp) unistr/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unistr/$(DEPDIR) @: > unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-check.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtoucr.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-uctomb.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-uctomb-aux.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) libgnu.la: $(libgnu_la_OBJECTS) $(libgnu_la_DEPENDENCIES) $(EXTRA_libgnu_la_DEPENDENCIES) $(AM_V_CCLD)$(libgnu_la_LINK) $(libgnu_la_OBJECTS) $(libgnu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f unistr/*.$(OBJEXT) -rm -f unistr/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/free.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strverscmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-check.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtoucr.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb-aux.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf unistr/.libs unistr/_libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f unistr/$(DEPDIR)/$(am__dirstamp) -rm -f unistr/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/c-ctype.Plo -rm -f ./$(DEPDIR)/c-strcasecmp.Plo -rm -f ./$(DEPDIR)/c-strncasecmp.Plo -rm -f ./$(DEPDIR)/free.Plo -rm -f ./$(DEPDIR)/iconv.Plo -rm -f ./$(DEPDIR)/iconv_close.Plo -rm -f ./$(DEPDIR)/iconv_open.Plo -rm -f ./$(DEPDIR)/striconv.Plo -rm -f ./$(DEPDIR)/strverscmp.Plo -rm -f ./$(DEPDIR)/unistd.Plo -rm -f unistr/$(DEPDIR)/u8-check.Plo -rm -f unistr/$(DEPDIR)/u8-mbtoucr.Plo -rm -f unistr/$(DEPDIR)/u8-uctomb-aux.Plo -rm -f unistr/$(DEPDIR)/u8-uctomb.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/c-ctype.Plo -rm -f ./$(DEPDIR)/c-strcasecmp.Plo -rm -f ./$(DEPDIR)/c-strncasecmp.Plo -rm -f ./$(DEPDIR)/free.Plo -rm -f ./$(DEPDIR)/iconv.Plo -rm -f ./$(DEPDIR)/iconv_close.Plo -rm -f ./$(DEPDIR)/iconv_open.Plo -rm -f ./$(DEPDIR)/striconv.Plo -rm -f ./$(DEPDIR)/strverscmp.Plo -rm -f ./$(DEPDIR)/unistd.Plo -rm -f unistr/$(DEPDIR)/u8-check.Plo -rm -f unistr/$(DEPDIR)/u8-mbtoucr.Plo -rm -f unistr/$(DEPDIR)/u8-uctomb-aux.Plo -rm -f unistr/$(DEPDIR)/u8-uctomb.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-exec install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ICONV_H_TRUE@iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) @GL_GENERATE_ICONV_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ICONV_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ICONV_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's/@''GNULIB_ICONV''@/$(GL_LGL_GNULIB_ICONV)/g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ @GL_GENERATE_ICONV_H_TRUE@ < $(srcdir)/iconv.in.h; \ @GL_GENERATE_ICONV_H_TRUE@ } > $@-t && \ @GL_GENERATE_ICONV_H_TRUE@ mv $@-t $@ @GL_GENERATE_ICONV_H_FALSE@iconv.h: $(top_builddir)/config.status @GL_GENERATE_ICONV_H_FALSE@ rm -f $@ $(srcdir)/iconv_open-aix.h: $(srcdir)/iconv_open-aix.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t && \ mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h $(srcdir)/iconv_open-hpux.h: $(srcdir)/iconv_open-hpux.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t && \ mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h $(srcdir)/iconv_open-irix.h: $(srcdir)/iconv_open-irix.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t && \ mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h $(srcdir)/iconv_open-osf.h: $(srcdir)/iconv_open-osf.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t && \ mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h $(srcdir)/iconv_open-solaris.h: $(srcdir)/iconv_open-solaris.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t && \ mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h $(srcdir)/iconv_open-zos.h: $(srcdir)/iconv_open-zos.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-zos.gperf > $(srcdir)/iconv_open-zos.h-t && \ mv $(srcdir)/iconv_open-zos.h-t $(srcdir)/iconv_open-zos.h # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GL_LGL_GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that is compatible with GNU. @GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_LIMITS_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_LIMITS_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ < $(srcdir)/limits.in.h; \ @GL_GENERATE_LIMITS_H_TRUE@ } > $@-t && \ @GL_GENERATE_LIMITS_H_TRUE@ mv $@-t $@ @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GL_LGL_GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_LGL_GNULIB_ALIGNED_ALLOC)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GL_LGL_GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_LGL_GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_LGL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_LGL_GNULIB_FREE_POSIX)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GL_LGL_GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GL_LGL_GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GL_LGL_GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_LGL_GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GL_LGL_GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GL_LGL_GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GL_LGL_GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_LGL_GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GL_LGL_GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GL_LGL_GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_LGL_GNULIB_POSIX_MEMALIGN)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_LGL_GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GL_LGL_GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GL_LGL_GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GL_LGL_GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GL_LGL_GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GL_LGL_GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GL_LGL_GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_LGL_GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_LGL_GNULIB_REALLOCARRAY)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GL_LGL_GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GL_LGL_GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_LGL_GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GL_LGL_GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GL_LGL_GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOL''@/$(GL_LGL_GNULIB_STRTOL)/g' \ -e 's/@''GNULIB_STRTOLD''@/$(GL_LGL_GNULIB_STRTOLD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GL_LGL_GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOUL''@/$(GL_LGL_GNULIB_STRTOUL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GL_LGL_GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_LGL_GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GL_LGL_GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GL_LGL_GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GL_LGL_GNULIB_WCTOMB)/g' \ -e 's/@''GNULIB_MDA_ECVT''@/$(GL_LGL_GNULIB_MDA_ECVT)/g' \ -e 's/@''GNULIB_MDA_FCVT''@/$(GL_LGL_GNULIB_MDA_FCVT)/g' \ -e 's/@''GNULIB_MDA_GCVT''@/$(GL_LGL_GNULIB_MDA_GCVT)/g' \ -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_LGL_GNULIB_MDA_MKTEMP)/g' \ -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_LGL_GNULIB_MDA_PUTENV)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_LGL_GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GL_LGL_GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GL_LGL_GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GL_LGL_GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GL_LGL_GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GL_LGL_GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GL_LGL_GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GL_LGL_GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_LGL_GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_LGL_GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_LGL_GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_LGL_GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GL_LGL_GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GL_LGL_GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GL_LGL_GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GL_LGL_GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_LGL_GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GL_LGL_GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GL_LGL_GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GL_LGL_GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GL_LGL_GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_LGL_GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GL_LGL_GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GL_LGL_GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_LGL_GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GL_LGL_GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GL_LGL_GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GL_LGL_GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GL_LGL_GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GL_LGL_GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GL_LGL_GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GL_LGL_GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GL_LGL_GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GL_LGL_GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GL_LGL_GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GL_LGL_GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_LGL_GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_LGL_GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_LGL_GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_LGL_GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_LGL_GNULIB_STRVERSCMP)/g' \ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_LGL_GNULIB_MDA_MEMCCPY)/g' \ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_LGL_GNULIB_MDA_STRDUP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_ACCESS''@/$(GL_LGL_GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GL_LGL_GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GL_LGL_GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_LGL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_LGL_GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GL_LGL_GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GL_LGL_GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GL_LGL_GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GL_LGL_GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_LGL_GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_EXECL''@/$(GL_LGL_GNULIB_EXECL)/g' \ -e 's/@''GNULIB_EXECLE''@/$(GL_LGL_GNULIB_EXECLE)/g' \ -e 's/@''GNULIB_EXECLP''@/$(GL_LGL_GNULIB_EXECLP)/g' \ -e 's/@''GNULIB_EXECV''@/$(GL_LGL_GNULIB_EXECV)/g' \ -e 's/@''GNULIB_EXECVE''@/$(GL_LGL_GNULIB_EXECVE)/g' \ -e 's/@''GNULIB_EXECVP''@/$(GL_LGL_GNULIB_EXECVP)/g' \ -e 's/@''GNULIB_EXECVPE''@/$(GL_LGL_GNULIB_EXECVPE)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GL_LGL_GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GL_LGL_GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_LGL_GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GL_LGL_GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GL_LGL_GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_LGL_GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GL_LGL_GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_LGL_GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_LGL_GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETENTROPY''@/$(GL_LGL_GNULIB_GETENTROPY)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GL_LGL_GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_LGL_GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GL_LGL_GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_LGL_GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_LGL_GNULIB_GETOPT_POSIX)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_LGL_GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GL_LGL_GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_LGL_GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_LGL_GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GL_LGL_GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GL_LGL_GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GL_LGL_GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GL_LGL_GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GL_LGL_GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GL_LGL_GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GL_LGL_GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GL_LGL_GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GL_LGL_GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GL_LGL_GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GL_LGL_GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GL_LGL_GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GL_LGL_GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_LGL_GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GL_LGL_GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GL_LGL_GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_LGL_GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GL_LGL_GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_LGL_GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_LGL_GNULIB_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_LGL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_LGL_GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GL_LGL_GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GL_LGL_GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GL_LGL_GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GL_LGL_GNULIB_WRITE)/g' \ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_LGL_GNULIB_MDA_ACCESS)/g' \ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_LGL_GNULIB_MDA_CHDIR)/g' \ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_LGL_GNULIB_MDA_CLOSE)/g' \ -e 's/@''GNULIB_MDA_DUP''@/$(GL_LGL_GNULIB_MDA_DUP)/g' \ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_LGL_GNULIB_MDA_DUP2)/g' \ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_LGL_GNULIB_MDA_EXECL)/g' \ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_LGL_GNULIB_MDA_EXECLE)/g' \ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_LGL_GNULIB_MDA_EXECLP)/g' \ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_LGL_GNULIB_MDA_EXECV)/g' \ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_LGL_GNULIB_MDA_EXECVE)/g' \ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_LGL_GNULIB_MDA_EXECVP)/g' \ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_LGL_GNULIB_MDA_EXECVPE)/g' \ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_LGL_GNULIB_MDA_GETCWD)/g' \ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_LGL_GNULIB_MDA_GETPID)/g' \ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_LGL_GNULIB_MDA_ISATTY)/g' \ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_LGL_GNULIB_MDA_LSEEK)/g' \ -e 's/@''GNULIB_MDA_READ''@/$(GL_LGL_GNULIB_MDA_READ)/g' \ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_LGL_GNULIB_MDA_RMDIR)/g' \ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_LGL_GNULIB_MDA_SWAB)/g' \ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_LGL_GNULIB_MDA_UNLINK)/g' \ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_LGL_GNULIB_MDA_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ unistr.h: unistr.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistr.in.h; \ } > $@-t && \ mv -f $@-t $@ unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/lib/gl/c-strcase.h0000644000000000000000000000405614076273531013017 00000000000000/* Case-insensitive string comparison functions in C locale. Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef C_STRCASE_H #define C_STRCASE_H #include /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. More precisely, one of the string arguments must be an ASCII string; the other one can also contain non-ASCII characters (but then the comparison result will be nonzero). */ #ifdef __cplusplus extern "C" { #endif /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; /* Compare no more than N characters of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* C_STRCASE_H */ libidn-1.38/lib/gl/iconv_open-osf.gperf0000644000000000000000000000337114076273531014732 00000000000000/* Character set conversion. Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On OSF/1 5.1, look in /usr/lib/nls/loc/iconv. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP437, "cp437" CP775, "cp775" CP850, "cp850" CP852, "cp852" CP855, "cp855" CP857, "cp857" CP861, "cp861" CP862, "cp862" CP865, "cp865" CP866, "cp866" CP869, "cp869" CP874, "cp874" CP949, "KSC5601" CP1250, "cp1250" CP1251, "cp1251" CP1252, "cp1252" CP1253, "cp1253" CP1254, "cp1254" CP1255, "cp1255" CP1256, "cp1256" CP1257, "cp1257" CP1258, "cp1258" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" BIG5, "big5" SHIFT_JIS, "SJIS" TIS-620, "TACTIS" libidn-1.38/lib/gl/striconv.h0000644000000000000000000000554214076273531013003 00000000000000/* Charset conversion. Copyright (C) 2001-2004, 2006-2007, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _STRICONV_H #define _STRICONV_H #include #if HAVE_ICONV #include #endif #ifdef __cplusplus extern "C" { #endif #if HAVE_ICONV /* Convert an entire string from one encoding to another, using iconv. The original string is at [SRC,...,SRC+SRCLEN-1]. The conversion descriptor is passed as CD. *RESULTP and *LENGTH should initially be a scratch buffer and its size, or *RESULTP can initially be NULL. May erase the contents of the memory at *RESULTP. Return value: 0 if successful, otherwise -1 and errno set. If successful: The resulting string is stored in *RESULTP and its length in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is unchanged if no dynamic memory allocation was necessary. */ extern int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, char **resultp, size_t *lengthp); /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. The conversion descriptor is passed as CD. Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_cd_iconv (const char *src, iconv_t cd); #endif /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_iconv (const char *src, const char *from_codeset, const char *to_codeset); #ifdef __cplusplus } #endif #endif /* _STRICONV_H */ libidn-1.38/lib/gl/iconv.c0000644000000000000000000002624214076273531012245 00000000000000/* Character set conversion. Copyright (C) 1999-2001, 2007, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #if REPLACE_ICONV_UTF # include # include # include # include "unistr.h" #endif #if REPLACE_ICONV_UTF /* UTF-{16,32}{BE,LE} converters taken from GNU libiconv 1.11. */ /* Return code if invalid. (xxx_mbtowc) */ # define RET_ILSEQ -1 /* Return code if no bytes were read. (xxx_mbtowc) */ # define RET_TOOFEW -2 /* Return code if invalid. (xxx_wctomb) */ # define RET_ILUNI -1 /* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ # define RET_TOOSMALL -2 /* * UTF-16BE */ /* Specification: RFC 2781 */ static int utf16be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 2) { ucs4_t wc = (s[0] << 8) + s[1]; if (wc >= 0xd800 && wc < 0xdc00) { if (n >= 4) { ucs4_t wc2 = (s[2] << 8) + s[3]; if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ; *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); return 4; } } else if (wc >= 0xdc00 && wc < 0xe000) { return RET_ILSEQ; } else { *pwc = wc; return 2; } } return RET_TOOFEW; } static int utf16be_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (!(wc >= 0xd800 && wc < 0xe000)) { if (wc < 0x10000) { if (n >= 2) { r[0] = (unsigned char) (wc >> 8); r[1] = (unsigned char) wc; return 2; } else return RET_TOOSMALL; } else if (wc < 0x110000) { if (n >= 4) { ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); r[0] = (unsigned char) (wc1 >> 8); r[1] = (unsigned char) wc1; r[2] = (unsigned char) (wc2 >> 8); r[3] = (unsigned char) wc2; return 4; } else return RET_TOOSMALL; } } return RET_ILUNI; } /* * UTF-16LE */ /* Specification: RFC 2781 */ static int utf16le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 2) { ucs4_t wc = s[0] + (s[1] << 8); if (wc >= 0xd800 && wc < 0xdc00) { if (n >= 4) { ucs4_t wc2 = s[2] + (s[3] << 8); if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ; *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); return 4; } } else if (wc >= 0xdc00 && wc < 0xe000) { return RET_ILSEQ; } else { *pwc = wc; return 2; } } return RET_TOOFEW; } static int utf16le_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (!(wc >= 0xd800 && wc < 0xe000)) { if (wc < 0x10000) { if (n >= 2) { r[0] = (unsigned char) wc; r[1] = (unsigned char) (wc >> 8); return 2; } else return RET_TOOSMALL; } else if (wc < 0x110000) { if (n >= 4) { ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); r[0] = (unsigned char) wc1; r[1] = (unsigned char) (wc1 >> 8); r[2] = (unsigned char) wc2; r[3] = (unsigned char) (wc2 >> 8); return 4; } else return RET_TOOSMALL; } } return RET_ILUNI; } /* * UTF-32BE */ /* Specification: Unicode 3.1 Standard Annex #19 */ static int utf32be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 4) { ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { *pwc = wc; return 4; } else return RET_ILSEQ; } return RET_TOOFEW; } static int utf32be_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { if (n >= 4) { r[0] = 0; r[1] = (unsigned char) (wc >> 16); r[2] = (unsigned char) (wc >> 8); r[3] = (unsigned char) wc; return 4; } else return RET_TOOSMALL; } return RET_ILUNI; } /* * UTF-32LE */ /* Specification: Unicode 3.1 Standard Annex #19 */ static int utf32le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 4) { ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { *pwc = wc; return 4; } else return RET_ILSEQ; } return RET_TOOFEW; } static int utf32le_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { if (n >= 4) { r[0] = (unsigned char) wc; r[1] = (unsigned char) (wc >> 8); r[2] = (unsigned char) (wc >> 16); r[3] = 0; return 4; } else return RET_TOOSMALL; } return RET_ILUNI; } #endif size_t rpl_iconv (iconv_t cd, ICONV_CONST char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) #undef iconv { #if REPLACE_ICONV_UTF switch ((uintptr_t) cd) { { int (*xxx_wctomb) (unsigned char *, ucs4_t, size_t); case (uintptr_t) _ICONV_UTF8_UTF16BE: xxx_wctomb = utf16be_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF16LE: xxx_wctomb = utf16le_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF32BE: xxx_wctomb = utf32be_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF32LE: xxx_wctomb = utf32le_wctomb; goto loop_from_utf8; loop_from_utf8: if (inbuf == NULL || *inbuf == NULL) return 0; { ICONV_CONST char *inptr = *inbuf; size_t inleft = *inbytesleft; char *outptr = *outbuf; size_t outleft = *outbytesleft; size_t res = 0; while (inleft > 0) { ucs4_t uc; int m = u8_mbtoucr (&uc, (const uint8_t *) inptr, inleft); if (m <= 0) { if (m == -1) { errno = EILSEQ; res = (size_t)(-1); break; } if (m == -2) { errno = EINVAL; res = (size_t)(-1); break; } abort (); } else { int n = xxx_wctomb ((uint8_t *) outptr, uc, outleft); if (n < 0) { if (n == RET_ILUNI) { errno = EILSEQ; res = (size_t)(-1); break; } if (n == RET_TOOSMALL) { errno = E2BIG; res = (size_t)(-1); break; } abort (); } else { inptr += m; inleft -= m; outptr += n; outleft -= n; } } } *inbuf = inptr; *inbytesleft = inleft; *outbuf = outptr; *outbytesleft = outleft; return res; } } { int (*xxx_mbtowc) (ucs4_t *, const unsigned char *, size_t); case (uintptr_t) _ICONV_UTF16BE_UTF8: xxx_mbtowc = utf16be_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF16LE_UTF8: xxx_mbtowc = utf16le_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF32BE_UTF8: xxx_mbtowc = utf32be_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF32LE_UTF8: xxx_mbtowc = utf32le_mbtowc; goto loop_to_utf8; loop_to_utf8: if (inbuf == NULL || *inbuf == NULL) return 0; { ICONV_CONST char *inptr = *inbuf; size_t inleft = *inbytesleft; char *outptr = *outbuf; size_t outleft = *outbytesleft; size_t res = 0; while (inleft > 0) { ucs4_t uc; int m = xxx_mbtowc (&uc, (const uint8_t *) inptr, inleft); if (m <= 0) { if (m == RET_ILSEQ) { errno = EILSEQ; res = (size_t)(-1); break; } if (m == RET_TOOFEW) { errno = EINVAL; res = (size_t)(-1); break; } abort (); } else { int n = u8_uctomb ((uint8_t *) outptr, uc, outleft); if (n < 0) { if (n == -1) { errno = EILSEQ; res = (size_t)(-1); break; } if (n == -2) { errno = E2BIG; res = (size_t)(-1); break; } abort (); } else { inptr += m; inleft -= m; outptr += n; outleft -= n; } } } *inbuf = inptr; *inbytesleft = inleft; *outbuf = outptr; *outbytesleft = outleft; return res; } } } #endif return iconv (cd, inbuf, inbytesleft, outbuf, outbytesleft); } libidn-1.38/lib/gl/arg-nonnull.h0000644000000000000000000000235314076273531013365 00000000000000/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif libidn-1.38/lib/gl/c-ctype.c0000644000000000000000000000151314076273531012465 00000000000000/* Character handling in C locale. Copyright (C) 2003-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #define C_CTYPE_INLINE _GL_EXTERN_INLINE #include "c-ctype.h" libidn-1.38/lib/gl/unistr/0000755000000000000000000000000014076274120012354 500000000000000libidn-1.38/lib/gl/unistr/u8-mbtoucr.c0000644000000000000000000001075614076273531014463 00000000000000/* Look at first character in UTF-8 string, returning an error code. Copyright (C) 1999-2002, 2006-2007, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "unistr.h" int u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xf0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xf8) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } } /* invalid multibyte character */ *puc = 0xfffd; return -1; } libidn-1.38/lib/gl/unistr/u8-check.c0000644000000000000000000000431214076273531014054 00000000000000/* Check UTF-8 string. Copyright (C) 2002, 2006-2007, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "unistr.h" const uint8_t * u8_check (const uint8_t *s, size_t n) { const uint8_t *s_end = s + n; while (s < s_end) { /* Keep in sync with unistr.h and u8-mbtouc-aux.c. */ uint8_t c = *s; if (c < 0x80) { s++; continue; } if (c >= 0xc2) { if (c < 0xe0) { if (s + 2 <= s_end && (s[1] ^ 0x80) < 0x40) { s += 2; continue; } } else if (c < 0xf0) { if (s + 3 <= s_end && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { s += 3; continue; } } else if (c < 0xf8) { if (s + 4 <= s_end && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && (s[3] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))) { s += 4; continue; } } } /* invalid or incomplete multibyte character */ return s; } return NULL; } libidn-1.38/lib/gl/unistr/u8-uctomb-aux.c0000644000000000000000000000322214076273531015062 00000000000000/* Conversion UCS-4 to UTF-8. Copyright (C) 2002, 2006-2007, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "unistr.h" #include "attribute.h" int u8_uctomb_aux (uint8_t *s, ucs4_t uc, ptrdiff_t n) { int count; if (uc < 0x80) /* The case n >= 1 is already handled by the caller. */ return -2; else if (uc < 0x800) count = 2; else if (uc < 0x10000) { if (uc < 0xd800 || uc >= 0xe000) count = 3; else return -1; } else if (uc < 0x110000) count = 4; else return -1; if (n < count) return -2; switch (count) /* note: code falls through cases! */ { case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; FALLTHROUGH; case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; FALLTHROUGH; case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; /*case 1:*/ s[0] = uc; } return count; } libidn-1.38/lib/gl/unistr/u8-uctomb.c0000644000000000000000000000404014076273531014266 00000000000000/* Store a character in UTF-8 string. Copyright (C) 2002, 2005-2006, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #if defined IN_LIBUNISTRING /* Tell unistr.h to declare u8_uctomb as 'extern', not 'static inline'. */ # include "unistring-notinline.h" #endif /* Specification. */ #include "unistr.h" #include "attribute.h" #if !HAVE_INLINE int u8_uctomb (uint8_t *s, ucs4_t uc, ptrdiff_t n) { if (uc < 0x80) { if (n > 0) { s[0] = uc; return 1; } /* else return -2, below. */ } else { int count; if (uc < 0x800) count = 2; else if (uc < 0x10000) { if (uc < 0xd800 || uc >= 0xe000) count = 3; else return -1; } else if (uc < 0x110000) count = 4; else return -1; if (n >= count) { switch (count) /* note: code falls through cases! */ { case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; FALLTHROUGH; case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; FALLTHROUGH; case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; /*case 1:*/ s[0] = uc; } return count; } } return -2; } #endif libidn-1.38/lib/gl/iconv_open-solaris.h0000644000000000000000000001550714076273622014750 00000000000000/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-solaris.gperf */ /* Computed positions: -k'10' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 17 "./iconv_open-solaris.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 13 #define MIN_WORD_LENGTH 5 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 19 /* maximum key range = 15, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 9, 8, 7, 6, 5, 4, 3, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; register unsigned int hval = len; switch (hval) { default: hval += asso_values[(unsigned char)str[9]]; /*FALLTHROUGH*/ case 9: case 8: case 7: case 6: case 5: break; } return hval; } struct stringpool_t { char stringpool_str5[sizeof("ASCII")]; char stringpool_str6[sizeof("CP1251")]; char stringpool_str7[sizeof("$ abc")]; char stringpool_str10[sizeof("ISO-8859-1")]; char stringpool_str11[sizeof("ISO-8859-15")]; char stringpool_str12[sizeof("ISO-8859-9")]; char stringpool_str13[sizeof("ISO-8859-8")]; char stringpool_str14[sizeof("ISO-8859-7")]; char stringpool_str15[sizeof("ISO-8859-6")]; char stringpool_str16[sizeof("ISO-8859-5")]; char stringpool_str17[sizeof("ISO-8859-4")]; char stringpool_str18[sizeof("ISO-8859-3")]; char stringpool_str19[sizeof("ISO-8859-2")]; }; static const struct stringpool_t stringpool_contents = { "ASCII", "CP1251", "$ abc", "ISO-8859-1", "ISO-8859-15", "ISO-8859-9", "ISO-8859-8", "ISO-8859-7", "ISO-8859-6", "ISO-8859-5", "ISO-8859-4", "ISO-8859-3", "ISO-8859-2" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, #line 35 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "646"}, #line 46 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"}, #line 34 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7}, {-1}, {-1}, #line 36 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"}, #line 45 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 44 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"}, #line 43 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"}, #line 42 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"}, #line 41 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"}, #line 40 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"}, #line 39 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"}, #line 38 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"}, #line 37 "./iconv_open-solaris.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"} }; const struct mapping * mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.38/lib/gl/c-strcasecmp.c0000644000000000000000000000306614076273531013512 00000000000000/* c-strcasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strcasecmp (const char *s1, const char *s2) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return _GL_CMP (c1, c2); } libidn-1.38/lib/gl/strverscmp.c0000644000000000000000000000620114076273531013330 00000000000000/* Compare strings while treating digits characters numerically. Copyright (C) 1997-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jean-François Bignolles , 1997. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _LIBC # include # define __strverscmp strverscmp #endif #include #include #include /* states: S_N: normal, S_I: comparing integral part, S_F: comparing fractional parts, S_Z: idem but with leading Zeroes only */ #define S_N 0x0 #define S_I 0x3 #define S_F 0x6 #define S_Z 0x9 /* result_type: CMP: return diff; LEN: compare using len_diff/diff */ #define CMP 2 #define LEN 3 /* Compare S1 and S2 as strings holding indices/version numbers, returning less than, equal to or greater than zero if S1 is less than, equal to or greater than S2 (for more info, see the texinfo doc). */ int __strverscmp (const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p2 = (const unsigned char *) s2; /* Symbol(s) 0 [1-9] others Transition (10) 0 (01) d (00) x */ static const uint_least8_t next_state[] = { /* state x d 0 */ /* S_N */ S_N, S_I, S_Z, /* S_I */ S_N, S_I, S_I, /* S_F */ S_N, S_F, S_F, /* S_Z */ S_N, S_F, S_Z }; static const int_least8_t result_type[] = { /* state x/x x/d x/0 d/x d/d d/0 0/x 0/d 0/0 */ /* S_N */ CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, /* S_I */ CMP, -1, -1, +1, LEN, LEN, +1, LEN, LEN, /* S_F */ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, /* S_Z */ CMP, +1, +1, -1, CMP, CMP, -1, CMP, CMP }; if (p1 == p2) return 0; unsigned char c1 = *p1++; unsigned char c2 = *p2++; /* Hint: '0' is a digit too. */ int state = S_N + ((c1 == '0') + (isdigit (c1) != 0)); int diff; while ((diff = c1 - c2) == 0) { if (c1 == '\0') return diff; state = next_state[state]; c1 = *p1++; c2 = *p2++; state += (c1 == '0') + (isdigit (c1) != 0); } state = result_type[state * 3 + (((c2 == '0') + (isdigit (c2) != 0)))]; switch (state) { case CMP: return diff; case LEN: while (isdigit (*p1++)) if (!isdigit (*p2++)) return 1; return isdigit (*p2) ? -1 : diff; default: return state; } } libc_hidden_def (__strverscmp) weak_alias (__strverscmp, strverscmp) libidn-1.38/lib/gl/c-strncasecmp.c0000644000000000000000000000313014076273531013660 00000000000000/* c-strncasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strncasecmp (const char *s1, const char *s2, size_t n) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2 || n == 0) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (--n == 0 || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return _GL_CMP (c1, c2); } libidn-1.38/lib/gl/libc-config.h0000644000000000000000000001326214076273531013306 00000000000000/* System definitions for code taken from the GNU C Library Copyright 2017-2021 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Paul Eggert. */ /* This is intended to be a good-enough substitute for glibc system macros like those defined in , so that Gnulib code shared with glibc can do this as the first #include: #ifndef _LIBC # include #endif When compiled as part of glibc this is a no-op; when compiled as part of Gnulib this includes Gnulib's and defines macros that glibc library code would normally assume. Note: This header file MUST NOT be included by public header files of Gnulib. */ #include /* On glibc this includes and and #defines _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and DragonFlyBSD 5.9 it includes which defines __nonnull. Elsewhere it is harmless. */ #include /* From glibc . */ #ifndef __set_errno # define __set_errno(val) (errno = (val)) #endif /* From glibc . */ #ifndef __GNUC_PREREQ # if defined __GNUC__ && defined __GNUC_MINOR__ # define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) # else # define __GNUC_PREREQ(maj, min) 0 # endif #endif #ifndef __glibc_clang_prereq # if defined __clang_major__ && defined __clang_minor__ # ifdef __apple_build_version__ /* Apple for some reason renumbers __clang_major__ and __clang_minor__. Gnulib code uses only __glibc_clang_prereq (3, 5); map it to 6000000 <= __apple_build_version__. Support for other calls to __glibc_clang_prereq can be added here as needed. */ # define __glibc_clang_prereq(maj, min) \ ((maj) == 3 && (min) == 5 ? 6000000 <= __apple_build_version__ : 0) # else # define __glibc_clang_prereq(maj, min) \ ((maj) < __clang_major__ + ((min) <= __clang_minor__)) # endif # else # define __glibc_clang_prereq(maj, min) 0 # endif #endif #ifndef __attribute_nonnull__ /* either does not exist, or is too old for Gnulib. Prepare to include , which is Gnulib's version of a more-recent glibc . */ /* Define _FEATURES_H so that does not include . */ # ifndef _FEATURES_H # define _FEATURES_H 1 # endif /* Define __GNULIB_CDEFS so that does not attempt to include nonexistent files. */ # define __GNULIB_CDEFS /* Undef the macros unconditionally defined by our copy of glibc , so that they do not clash with any system-defined versions. */ # undef _SYS_CDEFS_H # undef __ASMNAME # undef __ASMNAME2 # undef __BEGIN_DECLS # undef __CONCAT # undef __END_DECLS # undef __HAVE_GENERIC_SELECTION # undef __LDBL_COMPAT # undef __LDBL_REDIR # undef __LDBL_REDIR1 # undef __LDBL_REDIR1_DECL # undef __LDBL_REDIR1_NTH # undef __LDBL_REDIR2_DECL # undef __LDBL_REDIR_DECL # undef __LDBL_REDIR_NTH # undef __LEAF # undef __LEAF_ATTR # undef __NTH # undef __NTHNL # undef __REDIRECT # undef __REDIRECT_LDBL # undef __REDIRECT_NTH # undef __REDIRECT_NTHNL # undef __REDIRECT_NTH_LDBL # undef __STRING # undef __THROW # undef __THROWNL # undef __attr_access # undef __attribute__ # undef __attribute_alloc_size__ # undef __attribute_artificial__ # undef __attribute_const__ # undef __attribute_deprecated__ # undef __attribute_deprecated_msg__ # undef __attribute_format_arg__ # undef __attribute_format_strfmon__ # undef __attribute_malloc__ # undef __attribute_noinline__ # undef __attribute_nonstring__ # undef __attribute_pure__ # undef __attribute_returns_twice__ # undef __attribute_used__ # undef __attribute_warn_unused_result__ # undef __bos # undef __bos0 # undef __errordecl # undef __extension__ # undef __extern_always_inline # undef __extern_inline # undef __flexarr # undef __fortify_function # undef __glibc_c99_flexarr_available # undef __glibc_has_attribute # undef __glibc_has_builtin # undef __glibc_has_extension # undef __glibc_macro_warning # undef __glibc_macro_warning1 # undef __glibc_objsize # undef __glibc_objsize0 # undef __glibc_unlikely # undef __inline # undef __ptr_t # undef __restrict # undef __restrict_arr # undef __va_arg_pack # undef __va_arg_pack_len # undef __warnattr /* Include our copy of glibc . */ # include /* __inline is too pessimistic for non-GCC. */ # undef __inline # ifndef HAVE___INLINE # if 199901 <= __STDC_VERSION__ || defined inline # define __inline inline # else # define __inline # endif # endif #endif /* defined __glibc_likely */ /* A substitute for glibc , good enough for Gnulib. */ #define attribute_hidden #define libc_hidden_proto(name) #define libc_hidden_def(name) #define libc_hidden_weak(name) #define libc_hidden_ver(local, name) #define strong_alias(name, aliasname) #define weak_alias(name, aliasname) /* A substitute for glibc , good enough for Gnulib. */ #define SHLIB_COMPAT(lib, introduced, obsoleted) 0 #define compat_symbol(lib, local, symbol, version) extern int dummy #define versioned_symbol(lib, local, symbol, version) extern int dummy libidn-1.38/lib/gl/stddef.in.h0000644000000000000000000001203414076273531013004 00000000000000/* A substitute for POSIX 2008 , for platforms that have issues. Copyright (C) 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by . Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On TinyCC, make sure that the macros that indicate the special invocation convention get undefined. */ # undef __need_wchar_t # undef __need_size_t # undef __need_ptrdiff_t # undef __need_NULL # undef __need_wint_t # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* On AIX 7.2, with xlc in 64-bit mode, defines max_align_t to a type with alignment 4, but 'long' has alignment 8. */ # if defined _AIX && defined __LP64__ # if !GNULIB_defined_max_align_t # ifdef _MAX_ALIGN_T /* /usr/include/stddef.h has already defined max_align_t. Override it. */ typedef long rpl_max_align_t; # define max_align_t rpl_max_align_t # else /* Prevent /usr/include/stddef.h from defining max_align_t. */ typedef long max_align_t; # define _MAX_ALIGN_T # endif # define GNULIB_defined_max_align_t 1 # endif # endif /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ # if (@REPLACE_NULL@ \ && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif # endif # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif /* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is a hack in case the configure-time test was done with g++ even though we are currently compiling with gcc. On MSVC, max_align_t is defined only in C++ mode, after was included. Its definition is good since it has an alignment of 8 (on x86 and x86_64). Similarly on OS/2 kLIBC. */ #if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ && defined __cplusplus # include #else # if ! (@HAVE_MAX_ALIGN_T@ || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) # if !GNULIB_defined_max_align_t /* On the x86, the maximum storage alignment of double, long, etc. is 4, but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, and the C11 standard allows this. Work around this problem by using __alignof__ (which returns 8 for double) rather than _Alignof (which returns 4), and align each union member accordingly. */ # if defined __GNUC__ || (__clang_major__ >= 4) # define _GL_STDDEF_ALIGNAS(type) \ __attribute__ ((__aligned__ (__alignof__ (type)))) # else # define _GL_STDDEF_ALIGNAS(type) /* */ # endif typedef union { char *__p _GL_STDDEF_ALIGNAS (char *); double __d _GL_STDDEF_ALIGNAS (double); long double __ld _GL_STDDEF_ALIGNAS (long double); long int __i _GL_STDDEF_ALIGNAS (long int); } rpl_max_align_t; # define max_align_t rpl_max_align_t # define GNULIB_defined_max_align_t 1 # endif # endif #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ libidn-1.38/lib/gl/iconv_open-hpux.h0000644000000000000000000002740114076273622014254 00000000000000/* ANSI-C code produced by gperf version 3.1 */ /* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 17 "./iconv_open-hpux.gperf" struct mapping { int standard_name; const char vendor_name[9 + 1]; }; #define TOTAL_KEYWORDS 44 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 49 /* maximum key range = 44, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register size_t len) { static const unsigned char asso_values[] = { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 1, 2, 24, 43, 5, 10, 0, 13, 32, 3, 19, 18, 50, 50, 50, 50, 50, 50, 50, 50, 50, 5, 50, 50, 50, 50, 14, 5, 0, 50, 50, 0, 27, 50, 12, 14, 50, 50, 0, 5, 2, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }; return len + asso_values[(unsigned char)str[3]+4] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("CP1256")]; char stringpool_str7[sizeof("CP1250")]; char stringpool_str8[sizeof("CP1251")]; char stringpool_str9[sizeof("CP850")]; char stringpool_str10[sizeof("TIS-620")]; char stringpool_str11[sizeof("CP1254")]; char stringpool_str12[sizeof("ISO-8859-6")]; char stringpool_str13[sizeof("EUC-TW")]; char stringpool_str14[sizeof("ISO-8859-1")]; char stringpool_str15[sizeof("ISO-8859-9")]; char stringpool_str16[sizeof("CP1255")]; char stringpool_str17[sizeof("BIG5")]; char stringpool_str18[sizeof("CP855")]; char stringpool_str19[sizeof("CP1257")]; char stringpool_str20[sizeof("EUC-KR")]; char stringpool_str21[sizeof("CP857")]; char stringpool_str22[sizeof("ISO-8859-5")]; char stringpool_str23[sizeof("ISO-8859-15")]; char stringpool_str24[sizeof("CP866")]; char stringpool_str25[sizeof("ISO-8859-7")]; char stringpool_str26[sizeof("CP861")]; char stringpool_str27[sizeof("CP869")]; char stringpool_str28[sizeof("CP874")]; char stringpool_str29[sizeof("CP864")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("CP437")]; char stringpool_str32[sizeof("CP852")]; char stringpool_str33[sizeof("CP775")]; char stringpool_str34[sizeof("CP865")]; char stringpool_str35[sizeof("EUC-JP")]; char stringpool_str36[sizeof("ISO-8859-2")]; char stringpool_str37[sizeof("SHIFT_JIS")]; char stringpool_str38[sizeof("CP1258")]; char stringpool_str39[sizeof("UTF-8")]; char stringpool_str40[sizeof("HP-KANA8")]; char stringpool_str41[sizeof("HP-ROMAN8")]; char stringpool_str42[sizeof("HP-HEBREW8")]; char stringpool_str43[sizeof("GB2312")]; char stringpool_str44[sizeof("ISO-8859-8")]; char stringpool_str45[sizeof("HP-TURKISH8")]; char stringpool_str46[sizeof("HP-GREEK8")]; char stringpool_str47[sizeof("HP-ARABIC8")]; char stringpool_str48[sizeof("CP862")]; char stringpool_str49[sizeof("CP1253")]; }; static const struct stringpool_t stringpool_contents = { "CP1256", "CP1250", "CP1251", "CP850", "TIS-620", "CP1254", "ISO-8859-6", "EUC-TW", "ISO-8859-1", "ISO-8859-9", "CP1255", "BIG5", "CP855", "CP1257", "EUC-KR", "CP857", "ISO-8859-5", "ISO-8859-15", "CP866", "ISO-8859-7", "CP861", "CP869", "CP874", "CP864", "CP1252", "CP437", "CP852", "CP775", "CP865", "EUC-JP", "ISO-8859-2", "SHIFT_JIS", "CP1258", "UTF-8", "HP-KANA8", "HP-ROMAN8", "HP-HEBREW8", "GB2312", "ISO-8859-8", "HP-TURKISH8", "HP-GREEK8", "HP-ARABIC8", "CP862", "CP1253" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 56 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"}, #line 50 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"}, #line 51 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"}, #line 39 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "cp850"}, #line 65 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "tis620"}, #line 54 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"}, #line 32 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"}, #line 69 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"}, #line 29 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"}, #line 35 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"}, #line 55 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"}, #line 70 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "big5"}, #line 41 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "cp855"}, #line 57 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"}, #line 68 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"}, #line 42 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "cp857"}, #line 31 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"}, #line 36 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"}, #line 47 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "cp866"}, #line 33 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"}, #line 43 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "cp861"}, #line 48 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "cp869"}, #line 49 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "cp874"}, #line 45 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "cp864"}, #line 52 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 37 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "cp437"}, #line 40 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "cp852"}, #line 38 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "cp775"}, #line 46 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "cp865"}, #line 67 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"}, #line 30 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"}, #line 71 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "sjis"}, #line 58 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"}, #line 72 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "utf8"}, #line 64 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "kana8"}, #line 59 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "roman8"}, #line 62 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"}, #line 66 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"}, #line 34 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"}, #line 63 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"}, #line 61 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "greek8"}, #line 60 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"}, #line 44 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, "cp862"}, #line 53 "./iconv_open-hpux.gperf" {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"} }; const struct mapping * mapping_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register unsigned int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.38/lib/gl/attribute.h0000644000000000000000000002042714076273531013136 00000000000000/* ATTRIBUTE_* macros for using attributes in GCC and similar compilers Copyright 2020-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ /* Provide public ATTRIBUTE_* names for the private _GL_ATTRIBUTE_* macros used within Gnulib. */ /* These attributes can be placed in two ways: - At the start of a declaration (i.e. even before storage-class specifiers!); then they apply to all entities that are declared by the declaration. - Immediately after the name of an entity being declared by the declaration; then they apply to that entity only. */ #ifndef _GL_ATTRIBUTE_H #define _GL_ATTRIBUTE_H /* This file defines two types of attributes: * C2X standard attributes. These have macro names that do not begin with 'ATTRIBUTE_'. * Selected GCC attributes; see: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html These names begin with 'ATTRIBUTE_' to avoid name clashes. */ /* =============== Attributes for specific kinds of functions =============== */ /* Attributes for functions that should not be used. */ /* Warn if the entity is used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: namespace, class, template specialization. */ #define DEPRECATED _GL_ATTRIBUTE_DEPRECATED /* If a function call is not optimized way, warn with MSG. */ /* Applies to: functions. */ #define ATTRIBUTE_WARNING(msg) _GL_ATTRIBUTE_WARNING (msg) /* If a function call is not optimized way, report an error with MSG. */ /* Applies to: functions. */ #define ATTRIBUTE_ERROR(msg) _GL_ATTRIBUTE_ERROR (msg) /* Attributes for memory-allocating functions. */ /* The function returns a pointer to freshly allocated memory. */ /* Applies to: functions. */ #define ATTRIBUTE_MALLOC _GL_ATTRIBUTE_MALLOC /* ATTRIBUTE_ALLOC_SIZE ((N)) - The Nth argument of the function is the size of the returned memory block. ATTRIBUTE_ALLOC_SIZE ((M, N)) - Multiply the Mth and Nth arguments to determine the size of the returned memory block. */ /* Applies to: function, pointer to function, function types. */ #define ATTRIBUTE_ALLOC_SIZE(args) _GL_ATTRIBUTE_ALLOC_SIZE (args) /* Attributes for variadic functions. */ /* The variadic function expects a trailing NULL argument. ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ /* Applies to: functions. */ #define ATTRIBUTE_SENTINEL(pos) _GL_ATTRIBUTE_SENTINEL (pos) /* ================== Attributes for compiler diagnostics ================== */ /* Attributes that help the compiler diagnose programmer mistakes. Some of them may also help for some compiler optimizations. */ /* ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - The STRING-INDEXth function argument is a format string of style ARCHETYPE, which is one of: printf, gnu_printf scanf, gnu_scanf, strftime, gnu_strftime, strfmon, or the same thing prefixed and suffixed with '__'. If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK are suitable for the format string. */ /* Applies to: functions. */ #define ATTRIBUTE_FORMAT(spec) _GL_ATTRIBUTE_FORMAT (spec) /* ATTRIBUTE_NONNULL ((N1, N2,...)) - Arguments N1, N2,... must not be NULL. ATTRIBUTE_NONNULL () - All pointer arguments must not be null. */ /* Applies to: functions. */ #define ATTRIBUTE_NONNULL(args) _GL_ATTRIBUTE_NONNULL (args) /* The function's return value is a non-NULL pointer. */ /* Applies to: functions. */ #define ATTRIBUTE_RETURNS_NONNULL _GL_ATTRIBUTE_RETURNS_NONNULL /* Warn if the caller does not use the return value, unless the caller uses something like ignore_value. */ /* Applies to: function, enumeration, class. */ #define NODISCARD _GL_ATTRIBUTE_NODISCARD /* Attributes that disable false alarms when the compiler diagnoses programmer "mistakes". */ /* Do not warn if the entity is not used. */ /* Applies to: - function, variable, - struct, union, struct/union member, - enumeration, enumeration item, - typedef, in C++ also: class. */ #define MAYBE_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED /* The contents of a character array is not meant to be NUL-terminated. */ /* Applies to: struct/union members and variables that are arrays of element type '[[un]signed] char'. */ #define ATTRIBUTE_NONSTRING _GL_ATTRIBUTE_NONSTRING /* Do not warn if control flow falls through to the immediately following 'case' or 'default' label. */ /* Applies to: Empty statement (;), inside a 'switch' statement. */ #define FALLTHROUGH _GL_ATTRIBUTE_FALLTHROUGH /* ================== Attributes for debugging information ================== */ /* Attributes regarding debugging information emitted by the compiler. */ /* Omit the function from stack traces when debugging. */ /* Applies to: function. */ #define ATTRIBUTE_ARTIFICIAL _GL_ATTRIBUTE_ARTIFICIAL /* Make the entity visible to debuggers etc., even with '-fwhole-program'. */ /* Applies to: functions, variables. */ #define ATTRIBUTE_EXTERNALLY_VISIBLE _GL_ATTRIBUTE_EXTERNALLY_VISIBLE /* ========== Attributes that mainly direct compiler optimizations ========== */ /* The function does not throw exceptions. */ /* Applies to: functions. */ #define ATTRIBUTE_NOTHROW _GL_ATTRIBUTE_NOTHROW /* Do not inline the function. */ /* Applies to: functions. */ #define ATTRIBUTE_NOINLINE _GL_ATTRIBUTE_NOINLINE /* Always inline the function, and report an error if the compiler cannot inline. */ /* Applies to: function. */ #define ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE /* It is OK for a compiler to omit duplicate calls with the same arguments. This attribute is safe for a function that neither depends on nor affects observable state, and always returns exactly once - e.g., does not loop forever, and does not call longjmp. (This attribute is stricter than ATTRIBUTE_PURE.) */ /* Applies to: functions. */ #define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST /* It is OK for a compiler to omit duplicate calls with the same arguments if observable state is not changed between calls. This attribute is safe for a function that does not affect observable state, and always returns exactly once. (This attribute is looser than ATTRIBUTE_CONST.) */ /* Applies to: functions. */ #define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE /* The function is rarely executed. */ /* Applies to: functions. */ #define ATTRIBUTE_COLD _GL_ATTRIBUTE_COLD /* If called from some other compilation unit, the function executes code from that unit only by return or by exception handling, letting the compiler optimize that unit more aggressively. */ /* Applies to: functions. */ #define ATTRIBUTE_LEAF _GL_ATTRIBUTE_LEAF /* For struct members: The member has the smallest possible alignment. For struct, union, class: All members have the smallest possible alignment, minimizing the memory required. */ /* Applies to: struct members, struct, union, in C++ also: class. */ #define ATTRIBUTE_PACKED _GL_ATTRIBUTE_PACKED /* ================ Attributes that make invalid code valid ================ */ /* Attributes that prevent fatal compiler optimizations for code that is not fully ISO C compliant. */ /* Pointers to the type may point to the same storage as pointers to other types, thus disabling strict aliasing optimization. */ /* Applies to: types. */ #define ATTRIBUTE_MAY_ALIAS _GL_ATTRIBUTE_MAY_ALIAS #endif /* _GL_ATTRIBUTE_H */ libidn-1.38/lib/gl/iconv_open-zos.gperf0000644000000000000000000000363414076273531014760 00000000000000/* Character set conversion. Copyright (C) 2019-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% ASCII, "00367" ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "00913" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "05012" ISO-8859-9, "ISO8859-9" ISO-8859-13, "ISO8859-13" ISO-8859-15, "ISO8859-15" KOI8-R, "00878" KOI8-U, "01168" CP437, "IBM-437" CP775, "00775" CP850, "09042" CP852, "IBM-852" CP855, "13143" CP856, "IBM-856" CP857, "00857" CP861, "IBM-861" CP862, "IBM-862" CP864, "IBM-864" CP865, "00865" CP866, "04962" CP869, "IBM-869" CP874, "TIS-620" CP922, "IBM-922" CP932, "IBM-943" CP943, "IBM-943" CP949, "IBM-1363" CP1046, "IBM-1046" CP1124, "IBM-1124" CP1125, "IBM-1125" CP1129, "01129" CP1131, "01131" CP1250, "IBM-5346" CP1251, "IBM-5347" CP1252, "IBM-5348" CP1253, "IBM-5349" CP1254, "IBM-5350" CP1255, "09447" CP1256, "09448" CP1257, "09449" GB2312, "IBM-eucCN" EUC-JP, "01350" EUC-KR, "IBM-eucKR" GBK, "IBM-1386" libidn-1.38/lib/gl/unused-parameter.h0000644000000000000000000000271214076273531014411 00000000000000/* A C macro for declaring that specific function parameters are not used. Copyright (C) 2008-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter declarations for parameters that are not used. This helps to reduce warnings, such as from GCC -Wunused-parameter. The syntax is as follows: type param _GL_UNUSED_PARAMETER or more generally param_decl _GL_UNUSED_PARAMETER For example: int param _GL_UNUSED_PARAMETER int *(*param)(void) _GL_UNUSED_PARAMETER Other possible, but obscure and discouraged syntaxes: int _GL_UNUSED_PARAMETER *(*param)(void) _GL_UNUSED_PARAMETER int *(*param)(void) */ #ifndef _GL_UNUSED_PARAMETER # define _GL_UNUSED_PARAMETER _GL_ATTRIBUTE_MAYBE_UNUSED #endif libidn-1.38/lib/gl/unistr.in.h0000644000000000000000000005576214076273531013076 00000000000000/* Elementary Unicode string functions. Copyright (C) 2001-2002, 2005-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _UNISTR_H #define _UNISTR_H #include "unitypes.h" /* Get common macros for C. */ #include "unused-parameter.h" /* Get bool. */ #include /* Get size_t, ptrdiff_t. */ #include #ifdef __cplusplus extern "C" { #endif /* Conventions: All functions prefixed with u8_ operate on UTF-8 encoded strings. Their unit is an uint8_t (1 byte). All functions prefixed with u16_ operate on UTF-16 encoded strings. Their unit is an uint16_t (a 2-byte word). All functions prefixed with u32_ operate on UCS-4 encoded strings. Their unit is an uint32_t (a 4-byte word). All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly n units. All arguments starting with "str" and the arguments of functions starting with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string which terminates at the first NUL unit. This termination unit is considered part of the string for all memory allocation purposes, but is not considered part of the string for all other logical purposes. Functions returning a string result take a (resultbuf, lengthp) argument pair. If resultbuf is not NULL and the result fits into *lengthp units, it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly allocated string is returned. In both cases, *lengthp is set to the length (number of units) of the returned string. In case of error, NULL is returned and errno is set. */ /* Elementary string checks. */ /* Check whether an UTF-8 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint8_t * u8_check (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Check whether an UTF-16 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint16_t * u16_check (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Check whether an UCS-4 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint32_t * u32_check (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Elementary string conversions. */ /* Convert an UTF-8 string to an UTF-16 string. */ extern uint16_t * u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf, size_t *lengthp); /* Convert an UTF-8 string to an UCS-4 string. */ extern uint32_t * u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp); /* Convert an UTF-16 string to an UTF-8 string. */ extern uint8_t * u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf, size_t *lengthp); /* Convert an UTF-16 string to an UCS-4 string. */ extern uint32_t * u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp); /* Convert an UCS-4 string to an UTF-8 string. */ extern uint8_t * u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf, size_t *lengthp); /* Convert an UCS-4 string to an UTF-16 string. */ extern uint16_t * u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf, size_t *lengthp); /* Elementary string functions. */ /* Return the length (number of units) of the first character in S, which is no longer than N. Return 0 if it is the NUL character. Return -1 upon failure. */ /* Similar to mblen(), except that s must not be NULL. */ extern int u8_mblen (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_mblen (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_mblen (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, and an appropriate number of units is returned. The number of available units, N, must be > 0. */ /* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, and the NUL character is not treated specially. */ /* The variants with _unsafe suffix are for backward compatibility with libunistring versions < 0.9.7. */ #if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n); # else extern int u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n); static inline int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else return u8_mbtouc_unsafe_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n); # else extern int u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n); static inline int u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } else return u16_mbtouc_unsafe_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n); # else static inline int u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) { uint32_t c = *s; if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) *puc = c; else /* invalid multibyte character */ *puc = 0xfffd; return 1; } # endif #endif #if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n); # else extern int u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n); static inline int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else return u8_mbtouc_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n); # else extern int u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n); static inline int u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } else return u16_mbtouc_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n); # else static inline int u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) { uint32_t c = *s; if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) *puc = c; else /* invalid multibyte character */ *puc = 0xfffd; return 1; } # endif #endif /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, and -1 is returned for an invalid sequence of units, -2 is returned for an incomplete sequence of units. The number of available units, N, must be > 0. */ /* Similar to u*_mbtouc(), except that the return value gives more details about the failure, similar to mbrtowc(). */ #if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING extern int u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n); #endif #if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING extern int u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n); #endif #if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING extern int u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n); #endif /* Put the multibyte character represented by UC in S, returning its length. Return -1 upon failure, -2 if the number of available units, N, is too small. The latter case cannot occur if N >= 6/2/1, respectively. */ /* Similar to wctomb(), except that s must not be NULL, and the argument n must be specified. */ #if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING /* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */ extern int u8_uctomb_aux (uint8_t *s, ucs4_t uc, ptrdiff_t n); # if !HAVE_INLINE extern int u8_uctomb (uint8_t *s, ucs4_t uc, ptrdiff_t n); # else static inline int u8_uctomb (uint8_t *s, ucs4_t uc, ptrdiff_t n) { if (uc < 0x80 && n > 0) { s[0] = uc; return 1; } else return u8_uctomb_aux (s, uc, n); } # endif #endif #if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING /* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */ extern int u16_uctomb_aux (uint16_t *s, ucs4_t uc, ptrdiff_t n); # if !HAVE_INLINE extern int u16_uctomb (uint16_t *s, ucs4_t uc, ptrdiff_t n); # else static inline int u16_uctomb (uint16_t *s, ucs4_t uc, ptrdiff_t n) { if (uc < 0xd800 && n > 0) { s[0] = uc; return 1; } else return u16_uctomb_aux (s, uc, n); } # endif #endif #if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_uctomb (uint32_t *s, ucs4_t uc, ptrdiff_t n); # else static inline int u32_uctomb (uint32_t *s, ucs4_t uc, ptrdiff_t n) { if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000)) { if (n > 0) { *s = uc; return 1; } else return -2; } else return -1; } # endif #endif /* Copy N units from SRC to DEST. */ /* Similar to memcpy(). */ extern uint8_t * u8_cpy (uint8_t *_UC_RESTRICT dest, const uint8_t *src, size_t n); extern uint16_t * u16_cpy (uint16_t *_UC_RESTRICT dest, const uint16_t *src, size_t n); extern uint32_t * u32_cpy (uint32_t *_UC_RESTRICT dest, const uint32_t *src, size_t n); /* Copy N units from SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ /* Similar to memmove(). */ extern uint8_t * u8_move (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_move (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_move (uint32_t *dest, const uint32_t *src, size_t n); /* Set the first N characters of S to UC. UC should be a character that occupies only 1 unit. */ /* Similar to memset(). */ extern uint8_t * u8_set (uint8_t *s, ucs4_t uc, size_t n); extern uint16_t * u16_set (uint16_t *s, ucs4_t uc, size_t n); extern uint32_t * u32_set (uint32_t *s, ucs4_t uc, size_t n); /* Compare S1 and S2, each of length N. */ /* Similar to memcmp(). */ extern int u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) _UC_ATTRIBUTE_PURE; /* Compare S1 and S2. */ /* Similar to the gnulib function memcmp2(). */ extern int u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; extern int u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; extern int u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; /* Search the string at S for UC. */ /* Similar to memchr(). */ extern uint8_t * u8_chr (const uint8_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_chr (const uint16_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_chr (const uint32_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Count the number of Unicode characters in the N units from S. */ /* Similar to mbsnlen(). */ extern size_t u8_mbsnlen (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern size_t u16_mbsnlen (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern size_t u32_mbsnlen (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Elementary string functions with memory allocation. */ /* Make a freshly allocated copy of S, of length N. */ extern uint8_t * u8_cpy_alloc (const uint8_t *s, size_t n); extern uint16_t * u16_cpy_alloc (const uint16_t *s, size_t n); extern uint32_t * u32_cpy_alloc (const uint32_t *s, size_t n); /* Elementary string functions on NUL terminated strings. */ /* Return the length (number of units) of the first character in S. Return 0 if it is the NUL character. Return -1 upon failure. */ extern int u8_strmblen (const uint8_t *s) _UC_ATTRIBUTE_PURE; extern int u16_strmblen (const uint16_t *s) _UC_ATTRIBUTE_PURE; extern int u32_strmblen (const uint32_t *s) _UC_ATTRIBUTE_PURE; /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL character. Return -1 upon failure. */ extern int u8_strmbtouc (ucs4_t *puc, const uint8_t *s); extern int u16_strmbtouc (ucs4_t *puc, const uint16_t *s); extern int u32_strmbtouc (ucs4_t *puc, const uint32_t *s); /* Forward iteration step. Advances the pointer past the next character, or returns NULL if the end of the string has been reached. Puts the character's 'ucs4_t' representation in *PUC. */ extern const uint8_t * u8_next (ucs4_t *puc, const uint8_t *s); extern const uint16_t * u16_next (ucs4_t *puc, const uint16_t *s); extern const uint32_t * u32_next (ucs4_t *puc, const uint32_t *s); /* Backward iteration step. Advances the pointer to point to the previous character, or returns NULL if the beginning of the string had been reached. Puts the character's 'ucs4_t' representation in *PUC. */ extern const uint8_t * u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start); extern const uint16_t * u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start); extern const uint32_t * u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start); /* Return the number of units in S. */ /* Similar to strlen(), wcslen(). */ extern size_t u8_strlen (const uint8_t *s) _UC_ATTRIBUTE_PURE; extern size_t u16_strlen (const uint16_t *s) _UC_ATTRIBUTE_PURE; extern size_t u32_strlen (const uint32_t *s) _UC_ATTRIBUTE_PURE; /* Return the number of units in S, but at most MAXLEN. */ /* Similar to strnlen(), wcsnlen(). */ extern size_t u8_strnlen (const uint8_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; extern size_t u16_strnlen (const uint16_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; extern size_t u32_strnlen (const uint32_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; /* Copy SRC to DEST. */ /* Similar to strcpy(), wcscpy(). */ extern uint8_t * u8_strcpy (uint8_t *_UC_RESTRICT dest, const uint8_t *src); extern uint16_t * u16_strcpy (uint16_t *_UC_RESTRICT dest, const uint16_t *src); extern uint32_t * u32_strcpy (uint32_t *_UC_RESTRICT dest, const uint32_t *src); /* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */ /* Similar to stpcpy(). */ extern uint8_t * u8_stpcpy (uint8_t *_UC_RESTRICT dest, const uint8_t *src); extern uint16_t * u16_stpcpy (uint16_t *_UC_RESTRICT dest, const uint16_t *src); extern uint32_t * u32_stpcpy (uint32_t *_UC_RESTRICT dest, const uint32_t *src); /* Copy no more than N units of SRC to DEST. */ /* Similar to strncpy(), wcsncpy(). */ extern uint8_t * u8_strncpy (uint8_t *_UC_RESTRICT dest, const uint8_t *src, size_t n); extern uint16_t * u16_strncpy (uint16_t *_UC_RESTRICT dest, const uint16_t *src, size_t n); extern uint32_t * u32_strncpy (uint32_t *_UC_RESTRICT dest, const uint32_t *src, size_t n); /* Copy no more than N units of SRC to DEST. Return a pointer past the last non-NUL unit written into DEST. */ /* Similar to stpncpy(). */ extern uint8_t * u8_stpncpy (uint8_t *_UC_RESTRICT dest, const uint8_t *src, size_t n); extern uint16_t * u16_stpncpy (uint16_t *_UC_RESTRICT dest, const uint16_t *src, size_t n); extern uint32_t * u32_stpncpy (uint32_t *_UC_RESTRICT dest, const uint32_t *src, size_t n); /* Append SRC onto DEST. */ /* Similar to strcat(), wcscat(). */ extern uint8_t * u8_strcat (uint8_t *_UC_RESTRICT dest, const uint8_t *src); extern uint16_t * u16_strcat (uint16_t *_UC_RESTRICT dest, const uint16_t *src); extern uint32_t * u32_strcat (uint32_t *_UC_RESTRICT dest, const uint32_t *src); /* Append no more than N units of SRC onto DEST. */ /* Similar to strncat(), wcsncat(). */ extern uint8_t * u8_strncat (uint8_t *_UC_RESTRICT dest, const uint8_t *src, size_t n); extern uint16_t * u16_strncat (uint16_t *_UC_RESTRICT dest, const uint16_t *src, size_t n); extern uint32_t * u32_strncat (uint32_t *_UC_RESTRICT dest, const uint32_t *src, size_t n); /* Compare S1 and S2. */ /* Similar to strcmp(), wcscmp(). */ #ifdef __sun /* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */ extern int u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2) _UC_ATTRIBUTE_PURE; # define u8_strcmp u8_strcmp_gnu #else extern int u8_strcmp (const uint8_t *s1, const uint8_t *s2) _UC_ATTRIBUTE_PURE; #endif extern int u16_strcmp (const uint16_t *s1, const uint16_t *s2) _UC_ATTRIBUTE_PURE; extern int u32_strcmp (const uint32_t *s1, const uint32_t *s2) _UC_ATTRIBUTE_PURE; /* Compare S1 and S2 using the collation rules of the current locale. Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2. Upon failure, set errno and return any value. */ /* Similar to strcoll(), wcscoll(). */ extern int u8_strcoll (const uint8_t *s1, const uint8_t *s2); extern int u16_strcoll (const uint16_t *s1, const uint16_t *s2); extern int u32_strcoll (const uint32_t *s1, const uint32_t *s2); /* Compare no more than N units of S1 and S2. */ /* Similar to strncmp(), wcsncmp(). */ extern int u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n) _UC_ATTRIBUTE_PURE; /* Duplicate S, returning an identical malloc'd string. */ /* Similar to strdup(), wcsdup(). */ extern uint8_t * u8_strdup (const uint8_t *s); extern uint16_t * u16_strdup (const uint16_t *s); extern uint32_t * u32_strdup (const uint32_t *s); /* Find the first occurrence of UC in STR. */ /* Similar to strchr(), wcschr(). */ extern uint8_t * u8_strchr (const uint8_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strchr (const uint16_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strchr (const uint32_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Find the last occurrence of UC in STR. */ /* Similar to strrchr(), wcsrchr(). */ extern uint8_t * u8_strrchr (const uint8_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strrchr (const uint16_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strrchr (const uint32_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Return the length of the initial segment of STR which consists entirely of Unicode characters not in REJECT. */ /* Similar to strcspn(), wcscspn(). */ extern size_t u8_strcspn (const uint8_t *str, const uint8_t *reject) _UC_ATTRIBUTE_PURE; extern size_t u16_strcspn (const uint16_t *str, const uint16_t *reject) _UC_ATTRIBUTE_PURE; extern size_t u32_strcspn (const uint32_t *str, const uint32_t *reject) _UC_ATTRIBUTE_PURE; /* Return the length of the initial segment of STR which consists entirely of Unicode characters in ACCEPT. */ /* Similar to strspn(), wcsspn(). */ extern size_t u8_strspn (const uint8_t *str, const uint8_t *accept) _UC_ATTRIBUTE_PURE; extern size_t u16_strspn (const uint16_t *str, const uint16_t *accept) _UC_ATTRIBUTE_PURE; extern size_t u32_strspn (const uint32_t *str, const uint32_t *accept) _UC_ATTRIBUTE_PURE; /* Find the first occurrence in STR of any character in ACCEPT. */ /* Similar to strpbrk(), wcspbrk(). */ extern uint8_t * u8_strpbrk (const uint8_t *str, const uint8_t *accept) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strpbrk (const uint16_t *str, const uint16_t *accept) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strpbrk (const uint32_t *str, const uint32_t *accept) _UC_ATTRIBUTE_PURE; /* Find the first occurrence of NEEDLE in HAYSTACK. */ /* Similar to strstr(), wcsstr(). */ extern uint8_t * u8_strstr (const uint8_t *haystack, const uint8_t *needle) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strstr (const uint16_t *haystack, const uint16_t *needle) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strstr (const uint32_t *haystack, const uint32_t *needle) _UC_ATTRIBUTE_PURE; /* Test whether STR starts with PREFIX. */ extern bool u8_startswith (const uint8_t *str, const uint8_t *prefix) _UC_ATTRIBUTE_PURE; extern bool u16_startswith (const uint16_t *str, const uint16_t *prefix) _UC_ATTRIBUTE_PURE; extern bool u32_startswith (const uint32_t *str, const uint32_t *prefix) _UC_ATTRIBUTE_PURE; /* Test whether STR ends with SUFFIX. */ extern bool u8_endswith (const uint8_t *str, const uint8_t *suffix) _UC_ATTRIBUTE_PURE; extern bool u16_endswith (const uint16_t *str, const uint16_t *suffix) _UC_ATTRIBUTE_PURE; extern bool u32_endswith (const uint32_t *str, const uint32_t *suffix) _UC_ATTRIBUTE_PURE; /* Divide STR into tokens separated by characters in DELIM. This interface is actually more similar to wcstok than to strtok. */ /* Similar to strtok_r(), wcstok(). */ extern uint8_t * u8_strtok (uint8_t *_UC_RESTRICT str, const uint8_t *delim, uint8_t **ptr); extern uint16_t * u16_strtok (uint16_t *_UC_RESTRICT str, const uint16_t *delim, uint16_t **ptr); extern uint32_t * u32_strtok (uint32_t *_UC_RESTRICT str, const uint32_t *delim, uint32_t **ptr); #ifdef __cplusplus } #endif #endif /* _UNISTR_H */ libidn-1.38/lib/gl/stdint.in.h0000644000000000000000000005475414076273531013057 00000000000000/* Copyright (C) 2001-2002, 2004-2021 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* * ISO C 99 for platforms that lack it. * */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes , use the system , not our substitute. This avoids problems with (for example) VMS, whose includes . */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's . Ideally we should test __BIONIC__ here, but it is only defined after has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ #include /* Override WINT_MIN and WINT_MAX if gnulib's or overrides wint_t. */ #if @GNULIBHEADERS_OVERRIDE_WINT_T@ # undef WINT_MIN # undef WINT_MAX # define WINT_MIN 0x0U # define WINT_MAX 0xffffffffU #endif #if ! @HAVE_C99_STDINT_H@ /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. Mac OS X 10.4.6 includes (which is us), but relies on the system definitions, so include after @NEXT_STDINT_H@. */ # if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include # endif # if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ # include # elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include # endif # if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by . */ # include # endif # undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ /* These are separate macros, because if you try to merge these macros into a single one, HP-UX cc rejects the resulting expression in constant expressions. */ # define _STDINT_UNSIGNED_MIN(bits, zero) \ (zero) # define _STDINT_SIGNED_MIN(bits, zero) \ (~ _STDINT_MAX (1, bits, zero)) # define _STDINT_MAX(signed, bits, zero) \ (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef int8_t # undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; # define int8_t gl_int8_t # define uint8_t gl_uint8_t # undef int16_t # undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; # define int16_t gl_int16_t # define uint16_t gl_uint16_t # undef int32_t # undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; # define int32_t gl_int32_t # define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ # ifdef INT64_MAX # define GL_INT64_T # else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # else # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif # endif # ifdef UINT64_MAX # define GL_UINT64_T # else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # else # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif # endif /* Avoid collision with Solaris 2.5.1 etc. */ # define _UINT8_T # define _UINT32_T # define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef int_least8_t # undef uint_least8_t # undef int_least16_t # undef uint_least16_t # undef int_least32_t # undef uint_least32_t # undef int_least64_t # undef uint_least64_t # define int_least8_t int8_t # define uint_least8_t uint8_t # define int_least16_t int16_t # define uint_least16_t uint16_t # define int_least32_t int32_t # define uint_least32_t uint32_t # ifdef GL_INT64_T # define int_least64_t int64_t # endif # ifdef GL_UINT64_T # define uint_least64_t uint64_t # endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ # undef int_fast8_t # undef uint_fast8_t # undef int_fast16_t # undef uint_fast16_t # undef int_fast32_t # undef uint_fast32_t # undef int_fast64_t # undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; # ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; # else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; # endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; # define int_fast8_t gl_int_fast8_t # define uint_fast8_t gl_uint_fast8_t # define int_fast16_t gl_int_fast16_t # define uint_fast16_t gl_uint_fast16_t # define int_fast32_t gl_int_fast32_t # define uint_fast32_t gl_uint_fast32_t # ifdef GL_INT64_T # define int_fast64_t int64_t # endif # ifdef GL_UINT64_T # define uint_fast64_t uint64_t # endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* kLIBC's defines _INTPTR_T_DECLARED and needs its own definitions of intptr_t and uintptr_t (which use int and unsigned) to avoid clashes with declarations of system functions like sbrk. Similarly, MinGW WSL-5.4.1 needs its own intptr_t and uintptr_t to avoid conflicting declarations of system functions like _findclose in . */ # if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ || defined __MINGW32__) # undef intptr_t # undef uintptr_t # ifdef _WIN64 typedef long long int gl_intptr_t; typedef unsigned long long int gl_uintptr_t; # else typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; # endif # define intptr_t gl_intptr_t # define uintptr_t gl_uintptr_t # endif /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ # ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif # endif # ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif # endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; # define GNULIB_defined_stdint_types 1 # endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef INT8_MIN # undef INT8_MAX # undef UINT8_MAX # define INT8_MIN (~ INT8_MAX) # define INT8_MAX 127 # define UINT8_MAX 255 # undef INT16_MIN # undef INT16_MAX # undef UINT16_MAX # define INT16_MIN (~ INT16_MAX) # define INT16_MAX 32767 # define UINT16_MAX 65535 # undef INT32_MIN # undef INT32_MAX # undef UINT32_MAX # define INT32_MIN (~ INT32_MAX) # define INT32_MAX 2147483647 # define UINT32_MAX 4294967295U # if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) # endif # if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) # endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef INT_LEAST8_MIN # undef INT_LEAST8_MAX # undef UINT_LEAST8_MAX # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST8_MAX INT8_MAX # define UINT_LEAST8_MAX UINT8_MAX # undef INT_LEAST16_MIN # undef INT_LEAST16_MAX # undef UINT_LEAST16_MAX # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST16_MAX INT16_MAX # define UINT_LEAST16_MAX UINT16_MAX # undef INT_LEAST32_MIN # undef INT_LEAST32_MAX # undef UINT_LEAST32_MAX # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST32_MAX INT32_MAX # define UINT_LEAST32_MAX UINT32_MAX # undef INT_LEAST64_MIN # undef INT_LEAST64_MAX # ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX # endif # undef UINT_LEAST64_MAX # ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX # endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ # undef INT_FAST8_MIN # undef INT_FAST8_MAX # undef UINT_FAST8_MAX # define INT_FAST8_MIN SCHAR_MIN # define INT_FAST8_MAX SCHAR_MAX # define UINT_FAST8_MAX UCHAR_MAX # undef INT_FAST16_MIN # undef INT_FAST16_MAX # undef UINT_FAST16_MAX # define INT_FAST16_MIN INT_FAST32_MIN # define INT_FAST16_MAX INT_FAST32_MAX # define UINT_FAST16_MAX UINT_FAST32_MAX # undef INT_FAST32_MIN # undef INT_FAST32_MAX # undef UINT_FAST32_MAX # ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX # else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX # endif # undef INT_FAST64_MIN # undef INT_FAST64_MAX # ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX # endif # undef UINT_FAST64_MAX # ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX # endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ # undef INTPTR_MIN # undef INTPTR_MAX # undef UINTPTR_MAX # ifdef _WIN64 # define INTPTR_MIN LLONG_MIN # define INTPTR_MAX LLONG_MAX # define UINTPTR_MAX ULLONG_MAX # else # define INTPTR_MIN LONG_MIN # define INTPTR_MAX LONG_MAX # define UINTPTR_MAX ULONG_MAX # endif /* 7.18.2.5. Limits of greatest-width integer types */ # ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif # endif # ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif # endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ # undef PTRDIFF_MIN # undef PTRDIFF_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif # else # define PTRDIFF_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # endif /* sig_atomic_t limits */ # undef SIG_ATOMIC_MIN # undef SIG_ATOMIC_MAX # if @HAVE_SIGNED_SIG_ATOMIC_T@ # define SIG_ATOMIC_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # else # define SIG_ATOMIC_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # endif # define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ # undef SIZE_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif # else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) # endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ # if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # endif # undef WCHAR_MIN # undef WCHAR_MAX # if @HAVE_SIGNED_WCHAR_T@ # define WCHAR_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # else # define WCHAR_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # endif # define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ /* If gnulib's or overrides wint_t, @WINT_T_SUFFIX@ is not accurate, therefore use the definitions from above. */ # if !@GNULIBHEADERS_OVERRIDE_WINT_T@ # undef WINT_MIN # undef WINT_MAX # if @HAVE_SIGNED_WINT_T@ # define WINT_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # else # define WINT_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif # define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ # undef INT8_C # undef UINT8_C # define INT8_C(x) x # define UINT8_C(x) x # undef INT16_C # undef UINT16_C # define INT16_C(x) x # define UINT16_C(x) x # undef INT32_C # undef UINT32_C # define INT32_C(x) x # define UINT32_C(x) x ## U # undef INT64_C # undef UINT64_C # if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L # elif defined _MSC_VER # define INT64_C(x) x##i64 # else # define INT64_C(x) x##LL # endif # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL # elif defined _MSC_VER # define UINT64_C(x) x##ui64 # else # define UINT64_C(x) x##ULL # endif /* 7.18.4.2. Macros for greatest-width integer constants */ # ifndef INTMAX_C # if LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif # endif # ifndef UINTMAX_C # if ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif # endif #endif /* !@HAVE_C99_STDINT_H@ */ /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (!defined UINTMAX_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # ifdef INT8_MAX # define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) # endif # ifdef UINT8_MAX # define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) # endif # ifdef INT16_MAX # define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) # endif # ifdef UINT16_MAX # define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) # endif # ifdef INT32_MAX # define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) # endif # ifdef UINT32_MAX # define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) # endif # ifdef INT64_MAX # define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) # endif # ifdef UINT64_MAX # define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) # endif # define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) # define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) # define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) # define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) # define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) # define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) # define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) # define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) # define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) # define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) # define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) # define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) # define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) # define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) # define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) # define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) # define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) # define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) # define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) # define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) # define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) # define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) # define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) # ifdef WINT_MAX # define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) # endif # ifdef SIG_ATOMIC_MAX # define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) # endif #endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ libidn-1.38/lib/gl/langinfo.in.h0000644000000000000000000001512414076273531013333 00000000000000/* Substitute for and wrapper around . Copyright (C) 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* * POSIX for platforms that lack it or have an incomplete one. * */ #ifndef _@GUARD_PREFIX@_LANGINFO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_LANGINFO_H@ # @INCLUDE_NEXT@ @NEXT_LANGINFO_H@ #endif #ifndef _@GUARD_PREFIX@_LANGINFO_H #define _@GUARD_PREFIX@_LANGINFO_H #if !@HAVE_LANGINFO_H@ /* A platform that lacks . */ /* Assume that it also lacks and the nl_item type. */ # if !GNULIB_defined_nl_item typedef int nl_item; # define GNULIB_defined_nl_item 1 # endif /* nl_langinfo items of the LC_CTYPE category */ # define CODESET 10000 /* nl_langinfo items of the LC_NUMERIC category */ # define RADIXCHAR 10001 # define DECIMAL_POINT RADIXCHAR # define THOUSEP 10002 # define THOUSANDS_SEP THOUSEP # define GROUPING 10114 /* nl_langinfo items of the LC_TIME category */ # define D_T_FMT 10003 # define D_FMT 10004 # define T_FMT 10005 # define T_FMT_AMPM 10006 # define AM_STR 10007 # define PM_STR 10008 # define DAY_1 10009 # define DAY_2 (DAY_1 + 1) # define DAY_3 (DAY_1 + 2) # define DAY_4 (DAY_1 + 3) # define DAY_5 (DAY_1 + 4) # define DAY_6 (DAY_1 + 5) # define DAY_7 (DAY_1 + 6) # define ABDAY_1 10016 # define ABDAY_2 (ABDAY_1 + 1) # define ABDAY_3 (ABDAY_1 + 2) # define ABDAY_4 (ABDAY_1 + 3) # define ABDAY_5 (ABDAY_1 + 4) # define ABDAY_6 (ABDAY_1 + 5) # define ABDAY_7 (ABDAY_1 + 6) # define MON_1 10023 # define MON_2 (MON_1 + 1) # define MON_3 (MON_1 + 2) # define MON_4 (MON_1 + 3) # define MON_5 (MON_1 + 4) # define MON_6 (MON_1 + 5) # define MON_7 (MON_1 + 6) # define MON_8 (MON_1 + 7) # define MON_9 (MON_1 + 8) # define MON_10 (MON_1 + 9) # define MON_11 (MON_1 + 10) # define MON_12 (MON_1 + 11) # define ALTMON_1 10200 # define ALTMON_2 (ALTMON_1 + 1) # define ALTMON_3 (ALTMON_1 + 2) # define ALTMON_4 (ALTMON_1 + 3) # define ALTMON_5 (ALTMON_1 + 4) # define ALTMON_6 (ALTMON_1 + 5) # define ALTMON_7 (ALTMON_1 + 6) # define ALTMON_8 (ALTMON_1 + 7) # define ALTMON_9 (ALTMON_1 + 8) # define ALTMON_10 (ALTMON_1 + 9) # define ALTMON_11 (ALTMON_1 + 10) # define ALTMON_12 (ALTMON_1 + 11) # define ABMON_1 10035 # define ABMON_2 (ABMON_1 + 1) # define ABMON_3 (ABMON_1 + 2) # define ABMON_4 (ABMON_1 + 3) # define ABMON_5 (ABMON_1 + 4) # define ABMON_6 (ABMON_1 + 5) # define ABMON_7 (ABMON_1 + 6) # define ABMON_8 (ABMON_1 + 7) # define ABMON_9 (ABMON_1 + 8) # define ABMON_10 (ABMON_1 + 9) # define ABMON_11 (ABMON_1 + 10) # define ABMON_12 (ABMON_1 + 11) # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 /* nl_langinfo items of the LC_MONETARY category */ # define CRNCYSTR 10052 # define CURRENCY_SYMBOL CRNCYSTR # define INT_CURR_SYMBOL 10100 # define MON_DECIMAL_POINT 10101 # define MON_THOUSANDS_SEP 10102 # define MON_GROUPING 10103 # define POSITIVE_SIGN 10104 # define NEGATIVE_SIGN 10105 # define FRAC_DIGITS 10106 # define INT_FRAC_DIGITS 10107 # define P_CS_PRECEDES 10108 # define N_CS_PRECEDES 10109 # define P_SEP_BY_SPACE 10110 # define N_SEP_BY_SPACE 10111 # define P_SIGN_POSN 10112 # define N_SIGN_POSN 10113 /* nl_langinfo items of the LC_MESSAGES category */ # define YESEXPR 10053 # define NOEXPR 10054 #else /* A platform that has . */ # if !@HAVE_LANGINFO_CODESET@ # define CODESET 10000 # define GNULIB_defined_CODESET 1 # endif # if !@HAVE_LANGINFO_T_FMT_AMPM@ # define T_FMT_AMPM 10006 # define GNULIB_defined_T_FMT_AMPM 1 # endif # if !@HAVE_LANGINFO_ALTMON@ # define ALTMON_1 10200 # define ALTMON_2 (ALTMON_1 + 1) # define ALTMON_3 (ALTMON_1 + 2) # define ALTMON_4 (ALTMON_1 + 3) # define ALTMON_5 (ALTMON_1 + 4) # define ALTMON_6 (ALTMON_1 + 5) # define ALTMON_7 (ALTMON_1 + 6) # define ALTMON_8 (ALTMON_1 + 7) # define ALTMON_9 (ALTMON_1 + 8) # define ALTMON_10 (ALTMON_1 + 9) # define ALTMON_11 (ALTMON_1 + 10) # define ALTMON_12 (ALTMON_1 + 11) # define GNULIB_defined_ALTMON 1 # endif # if !@HAVE_LANGINFO_ERA@ # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 # define GNULIB_defined_ERA 1 # endif # if !@HAVE_LANGINFO_YESEXPR@ # define YESEXPR 10053 # define NOEXPR 10054 # define GNULIB_defined_YESEXPR 1 # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ /* Return a piece of locale dependent information. Note: The difference between nl_langinfo (CODESET) and locale_charset () is that the latter normalizes the encoding names to GNU conventions. */ #if @GNULIB_NL_LANGINFO@ # if @REPLACE_NL_LANGINFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef nl_langinfo # define nl_langinfo rpl_nl_langinfo # endif _GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item)); _GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item)); # else # if !@HAVE_NL_LANGINFO@ _GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIASWARN (nl_langinfo); #elif defined GNULIB_POSIXCHECK # undef nl_langinfo # if HAVE_RAW_DECL_NL_LANGINFO _GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - " "use gnulib module nl_langinfo for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LANGINFO_H */ #endif /* _@GUARD_PREFIX@_LANGINFO_H */ libidn-1.38/lib/gl/sys_types.in.h0000644000000000000000000000617114076273531013602 00000000000000/* Provide a more complete sys/types.h. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _WIN32 && !defined __CYGWIN__ \ && (defined __need_off_t || defined __need___off64_t \ || defined __need_ssize_t || defined __need_time_t) /* Special invocation convention inside mingw header files. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ # define _GL_INCLUDING_SYS_TYPES_H #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ # undef _GL_INCLUDING_SYS_TYPES_H #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in . */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* Override dev_t and ino_t if distinguishable inodes support is requested on native Windows. */ #if @WINDOWS_STAT_INODES@ # if @WINDOWS_STAT_INODES@ == 2 /* Experimental, not useful in Windows 10. */ /* Define dev_t to a 64-bit type. */ # if !defined GNULIB_defined_dev_t typedef unsigned long long int rpl_dev_t; # undef dev_t # define dev_t rpl_dev_t # define GNULIB_defined_dev_t 1 # endif /* Define ino_t to a 128-bit type. */ # if !defined GNULIB_defined_ino_t /* MSVC does not have a 128-bit integer type. GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # else /* @WINDOWS_STAT_INODES@ == 1 */ /* Define ino_t to a 64-bit type. */ # if !defined GNULIB_defined_ino_t typedef unsigned long long int rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@ #endif /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* __need_XXX */ libidn-1.38/lib/gl/m4/0000755000000000000000000000000014076274120011350 500000000000000libidn-1.38/lib/gl/m4/libunistring-base.m40000644000000000000000000001426014076273531015163 00000000000000# libunistring-base.m4 serial 5 dnl Copyright (C) 2010-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paolo Bonzini and Bruno Haible. dnl gl_LIBUNISTRING_MODULE([VERSION], [Module]) dnl Declares that the source files of Module should be compiled, unless we dnl are linking with libunistring and its version is >= the given VERSION. dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is dnl true if the source files of Module should be compiled. dnl This macro is to be used for public libunistring API, not for dnl undocumented API. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a change that affects the behaviour of the dnl functions defined in Module (even if the sources of Module itself do not dnl change). AC_DEFUN([gl_LIBUNISTRING_MODULE], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]), [gl_LIBUNISTRING_VERSION_CMP([$1])]) ]) dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile]) dnl Declares that HeaderFile should be created, unless we are linking dnl with libunistring and its version is >= the given VERSION. dnl HeaderFile should be relative to the lib directory and end in '.h'. dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty). dnl dnl When we are linking with the already installed libunistring and its version dnl is < VERSION, we create HeaderFile here, because we may compile functions dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed dnl version. dnl When we are linking with the already installed libunistring and its version dnl is > VERSION, we don't create HeaderFile here: it could cause compilation dnl errors in other libunistring header files if some types are missing. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a non-comment change to the HeaderFile. AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. if gl_LIBUNISTRING_VERSION_CMP([$1]); then LIBUNISTRING_[]AS_TR_CPP([$2])='$2' else LIBUNISTRING_[]AS_TR_CPP([$2])= fi AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2])) ]) dnl Miscellaneous preparations/initializations. AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], [ dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point. m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])]) AC_REQUIRE([AC_PROG_AWK]) dnl Sed expressions to extract the parts of a version number. changequote(,) gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' changequote([,]) if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi ]) dnl gl_LIBUNISTRING_VERSION_CMP([VERSION]) dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION dnl is less than the VERSION argument. AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], [ { test "$HAVE_LIBUNISTRING" != yes \ || { dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least. AS_LITERAL_IF([$1], [dnl This is the optimized variant, that assumes the argument is a literal: m4_pushdef([requested_version_major], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])]) m4_pushdef([requested_version_minor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) m4_pushdef([requested_version_subminor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor } } } m4_popdef([requested_version_subminor]) m4_popdef([requested_version_minor]) m4_popdef([requested_version_major]) ], [dnl This is the unoptimized variant: requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"` requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"` requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"` test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor } } } ]) } }]) dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the dnl same as ORIG, otherwise to 0. m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])]) libidn-1.38/lib/gl/m4/iconv_open.m40000644000000000000000000000406014076273531013676 00000000000000# iconv_open.m4 serial 16 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ICONV_OPEN], [ AC_REQUIRE([AM_ICONV]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test "$am_cv_func_iconv" = yes; then dnl Provide the override, for the sake of the C++ aliases. gl_REPLACE_ICONV_H dnl Test whether iconv_open accepts standardized encoding names. dnl We know that GNU libiconv and GNU libc do. AC_EGREP_CPP([gnu_iconv], [ #include #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__) gnu_iconv #endif ], [gl_func_iconv_gnu=yes], [gl_func_iconv_gnu=no]) if test $gl_func_iconv_gnu = no; then iconv_flavor= case "$host_os" in aix*) iconv_flavor=ICONV_FLAVOR_AIX ;; irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;; hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;; osf*) iconv_flavor=ICONV_FLAVOR_OSF ;; solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;; openedition*) iconv_flavor=ICONV_FLAVOR_ZOS ;; esac if test -n "$iconv_flavor"; then AC_DEFINE_UNQUOTED([ICONV_FLAVOR], [$iconv_flavor], [Define to a symbolic name denoting the flavor of iconv_open() implementation.]) gl_REPLACE_ICONV_OPEN fi fi m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [ gl_FUNC_ICONV_OPEN_UTF_SUPPORT case "$gl_cv_func_iconv_supports_utf" in *yes) ;; *) REPLACE_ICONV_UTF=1 AC_DEFINE([REPLACE_ICONV_UTF], [1], [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.]) REPLACE_ICONV=1 gl_REPLACE_ICONV_OPEN ;; esac ]) fi ]) AC_DEFUN([gl_REPLACE_ICONV_OPEN], [ gl_REPLACE_ICONV_H REPLACE_ICONV_OPEN=1 ]) libidn-1.38/lib/gl/m4/__inline.m40000644000000000000000000000142314076273531013313 00000000000000# Test for __inline keyword dnl Copyright 2017-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl___INLINE], [ AC_CACHE_CHECK([whether the compiler supports the __inline keyword], [gl_cv_c___inline], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[typedef int foo_t; static __inline foo_t foo (void) { return 0; }]], [[return foo ();]])], [gl_cv_c___inline=yes], [gl_cv_c___inline=no])]) if test $gl_cv_c___inline = yes; then AC_DEFINE([HAVE___INLINE], [1], [Define to 1 if the compiler supports the keyword '__inline'.]) fi ]) libidn-1.38/lib/gl/m4/host-cpu-c-abi.m40000644000000000000000000005363214076273531014263 00000000000000# host-cpu-c-abi.m4 serial 14 dnl Copyright (C) 2002-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible and Sam Steingold. dnl Sets the HOST_CPU variable to the canonical name of the CPU. dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its dnl C language ABI (application binary interface). dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in dnl config.h. dnl dnl This canonical name can be used to select a particular assembly language dnl source file that will interoperate with C code on the given host. dnl dnl For example: dnl * 'i386' and 'sparc' are different canonical names, because code for i386 dnl will not run on SPARC CPUs and vice versa. They have different dnl instruction sets. dnl * 'sparc' and 'sparc64' are different canonical names, because code for dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit dnl mode, but not both. dnl * 'mips' and 'mipsn32' are different canonical names, because they use dnl different argument passing and return conventions for C functions, and dnl although the instruction set of 'mips' is a large subset of the dnl instruction set of 'mipsn32'. dnl * 'mipsn32' and 'mips64' are different canonical names, because they use dnl different sizes for the C types like 'int' and 'void *', and although dnl the instruction sets of 'mipsn32' and 'mips64' are the same. dnl * The same canonical name is used for different endiannesses. You can dnl determine the endianness through preprocessor symbols: dnl - 'arm': test __ARMEL__. dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because dnl - Instructions that do not exist on all of these CPUs (cmpxchg, dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your dnl assembly language source files use such instructions, you will dnl need to make the distinction. dnl - Speed of execution of the common instruction set is reasonable across dnl the entire family of CPUs. If you have assembly language source files dnl that are optimized for particular CPU types (like GNU gmp has), you dnl will need to make the distinction. dnl See . AC_DEFUN([gl_HOST_CPU_C_ABI], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_C_ASM]) AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], [case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl gl_cv_host_cpu_c_abi=i386 ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=x86_64-x32], [gl_cv_host_cpu_c_abi=x86_64])], [gl_cv_host_cpu_c_abi=i386]) ;; changequote(,)dnl alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) changequote([,])dnl gl_cv_host_cpu_c_abi=alpha ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __aarch64__ int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=arm64-ilp32], [gl_cv_host_cpu_c_abi=arm64])], [# Don't distinguish little-endian and big-endian arm, since they # don't require different machine code for simple operations and # since the user can distinguish them through the preprocessor # defines __ARMEL__ vs. __ARMEB__. # But distinguish arm which passes floating-point arguments and # return values in integer registers (r0, r1, ...) - this is # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which # passes them in float registers (s0, s1, ...) and double registers # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer # sets the preprocessor defines __ARM_PCS (for the first case) and # __ARM_PCS_VFP (for the second case), but older GCC does not. echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c # Look for a reference to the register d0 in the .s file. AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then gl_cv_host_cpu_c_abi=armhf else gl_cv_host_cpu_c_abi=arm fi rm -f conftest* ]) ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=hppa64], [gl_cv_host_cpu_c_abi=hppa]) ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=ia64-ilp32], [gl_cv_host_cpu_c_abi=ia64]) ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mips64], [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIN32. # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIO32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (_MIPS_SIM == _ABIN32) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mipsn32], [gl_cv_host_cpu_c_abi=mips])]) ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif ]])], [# On powerpc64, there are two ABIs on Linux: The AIX compatible # one and the ELFv2 one. The latter defines _CALL_ELF=2. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _CALL_ELF && _CALL_ELF == 2 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=powerpc64-elfv2], [gl_cv_host_cpu_c_abi=powerpc64]) ], [gl_cv_host_cpu_c_abi=powerpc]) ;; rs6000 ) gl_cv_host_cpu_c_abi=powerpc ;; riscv32 | riscv64 ) # There are 2 architectures (with variants): rv32* and rv64*. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if __riscv_xlen == 64 int ok; #else error fail #endif ]])], [cpu=riscv64], [cpu=riscv32]) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ int ok; #else error fail #endif ]])], [main_abi=lp64], [main_abi=ilp32]) # Float ABIs: # __riscv_float_abi_double: # 'float' and 'double' are passed in floating-point registers. # __riscv_float_abi_single: # 'float' are passed in floating-point registers. # __riscv_float_abi_soft: # No values are passed in floating-point registers. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_double int ok; #else error fail #endif ]])], [float_abi=d], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_single int ok; #else error fail #endif ]])], [float_abi=f], [float_abi='']) ]) gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=s390x], [gl_cv_host_cpu_c_abi=s390]) ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=sparc64], [gl_cv_host_cpu_c_abi=sparc]) ;; *) gl_cv_host_cpu_c_abi="$host_cpu" ;; esac ]) dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" AC_SUBST([HOST_CPU]) AC_SUBST([HOST_CPU_C_ABI]) # This was # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) # earlier, but KAI C++ 3.2d doesn't like this. sed -e 's/-/_/g' >> confdefs.h <= 2.33, thanks to the fix for this bug: dnl dnl * OpenBSD >= 4.5, thanks to this commit: dnl dnl * Solaris, because its malloc() implementation is based on brk(), dnl not mmap(); hence its free() implementation makes no system calls. dnl For other platforms, you can only be sure if they state it in their dnl documentation, or by code inspection of the free() implementation in libc. AC_CACHE_CHECK([whether free is known to preserve errno], [gl_cv_func_free_preserves_errno], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) #elif defined __OpenBSD__ #elif defined __sun #else #error "'free' is not known to preserve errno" #endif ]])], [gl_cv_func_free_preserves_errno=yes], [gl_cv_func_free_preserves_errno=no]) ]) case $gl_cv_func_free_preserves_errno in *yes) AC_DEFINE([HAVE_FREE_POSIX], [1], [Define if the 'free' function is guaranteed to preserve errno.]) ;; *) REPLACE_FREE=1 ;; esac ]) # Prerequisites of lib/free.c. AC_DEFUN([gl_PREREQ_FREE], [:]) libidn-1.38/lib/gl/m4/langinfo_h.m40000644000000000000000000001123414076273531013644 00000000000000# langinfo_h.m4 serial 12 dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_LANGINFO_H], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) dnl Persuade glibc-2.0.6 to define CODESET. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([langinfo.h]) dnl Determine whether exists. It is missing on mingw and BeOS. HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ALTMON=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 AC_CHECK_HEADERS_ONCE([langinfo.h]) if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 dnl Determine what defines. dnl CODESET is missing on OpenBSD 3.8. dnl ERA etc. are missing on OpenBSD 6.7. dnl T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. dnl ALTMON_* are missing on glibc 2.26 and many other systems. AC_CACHE_CHECK([whether langinfo.h defines CODESET], [gl_cv_header_langinfo_codeset], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = CODESET; ]])], [gl_cv_header_langinfo_codeset=yes], [gl_cv_header_langinfo_codeset=no]) ]) if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi AC_CACHE_CHECK([whether langinfo.h defines T_FMT_AMPM], [gl_cv_header_langinfo_t_fmt_ampm], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = T_FMT_AMPM; ]])], [gl_cv_header_langinfo_t_fmt_ampm=yes], [gl_cv_header_langinfo_t_fmt_ampm=no]) ]) if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1], [gl_cv_header_langinfo_altmon], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = ALTMON_1; ]])], [gl_cv_header_langinfo_altmon=yes], [gl_cv_header_langinfo_altmon=no]) ]) if test $gl_cv_header_langinfo_altmon = yes; then HAVE_LANGINFO_ALTMON=1 fi AC_CACHE_CHECK([whether langinfo.h defines ERA], [gl_cv_header_langinfo_era], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = ERA; ]])], [gl_cv_header_langinfo_era=yes], [gl_cv_header_langinfo_era=no]) ]) if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi AC_CACHE_CHECK([whether langinfo.h defines YESEXPR], [gl_cv_header_langinfo_yesexpr], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = YESEXPR; ]])], [gl_cv_header_langinfo_yesexpr=yes], [gl_cv_header_langinfo_yesexpr=no]) ]) if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi AC_SUBST([HAVE_LANGINFO_H]) AC_SUBST([HAVE_LANGINFO_CODESET]) AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM]) AC_SUBST([HAVE_LANGINFO_ALTMON]) AC_SUBST([HAVE_LANGINFO_ERA]) AC_SUBST([HAVE_LANGINFO_YESEXPR]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [nl_langinfo]) ]) # gl_LANGINFO_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_LANGINFO_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_LANGINFO_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NL_LANGINFO]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) ]) AC_DEFUN([gl_LANGINFO_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) ]) libidn-1.38/lib/gl/m4/lib-prefix.m40000644000000000000000000002756614076273531013620 00000000000000# lib-prefix.m4 serial 19 dnl Copyright (C) 2001-2005, 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH([lib-prefix], [[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a function acl_is_expected_elfclass, that tests whether standard input dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing dnl the basename of the libdir to try in turn, either "lib" or "lib64" or dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib, lib32, and lib64. dnl On most glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. dnl We determine the compiler's default mode by looking at the compiler's dnl library search path. If at least one of its elements ends in /lib64 or dnl points to a directory whose absolute pathname ends in /lib64, we use that dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, dnl namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], [AC_EGREP_CPP([Extensible Linking Format], [#ifdef __ELF__ Extensible Linking Format #endif ], [gl_cv_elf=yes], [gl_cv_elf=no]) ]) if test $gl_cv_elf = yes; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then # Use POSIX od. func_elfclass () { od -A n -t d1 -j 4 -N 1 } else # Use BSD hexdump. func_elfclass () { dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' echo } fi # Use 'expr', not 'test', to compare the values of func_elfclass, because on # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, # not 1 or 2. changequote(,)dnl case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null } ;; *) # Unknown. acl_is_expected_elfclass () { : } ;; esac changequote([,])dnl else acl_is_expected_elfclass () { : } fi dnl Allow the user to override the result by setting acl_cv_libdirstems. AC_CACHE_CHECK([for the common suffixes of directories in the library search path], [acl_cv_libdirstems], [dnl Try 'lib' first, because that's the default for libdir in GNU, see dnl . acl_libdirstem=lib acl_libdirstem2= acl_libdirstem3= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. if test $HOST_CPU_C_ABI_32BIT = no; then acl_libdirstem2=lib/64 case "$host_cpu" in sparc*) acl_libdirstem3=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; esac fi ;; *) dnl If $CC generates code for a 32-bit ABI, the libraries are dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. dnl Find the compiler's search path. However, non-system compilers dnl sometimes have odd library search paths. But we can't simply invoke dnl '/usr/bin/gcc -print-search-dirs' because that would not take into dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test $HOST_CPU_C_ABI_32BIT != no; then # 32-bit or unknown ABI. if test -d /usr/lib32; then acl_libdirstem2=lib32 fi fi if test $HOST_CPU_C_ABI_32BIT != yes; then # 64-bit or unknown ABI. if test -d /usr/lib64; then acl_libdirstem3=lib64 fi fi if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib32 ) acl_libdirstem2=lib32 ;; */lib64 ) acl_libdirstem3=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" if test $HOST_CPU_C_ABI_32BIT = yes; then # 32-bit ABI. acl_libdirstem3= fi if test $HOST_CPU_C_ABI_32BIT = no; then # 64-bit ABI. acl_libdirstem2= fi fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" ]) dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and dnl acl_libdirstem3. changequote(,)dnl acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` changequote([,])dnl ]) libidn-1.38/lib/gl/m4/stdlib_h.m40000644000000000000000000002233314076273531013332 00000000000000# stdlib_h.m4 serial 63 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include #if HAVE_SYS_LOADAVG_H /* OpenIndiana has a bug: must be included before . */ # include # include #endif #if HAVE_RANDOM_H # include #endif ]], [_Exit aligned_alloc atoll canonicalize_file_name free getloadavg getsubopt grantpt initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps posix_memalign posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS_ONCE([ecvt]) if test $ac_cv_have_decl_ecvt = no; then HAVE_DECL_ECVT=0 fi AC_CHECK_DECLS_ONCE([fcvt]) if test $ac_cv_have_decl_fcvt = no; then HAVE_DECL_FCVT=0 fi AC_CHECK_DECLS_ONCE([gcvt]) if test $ac_cv_have_decl_gcvt = no; then HAVE_DECL_GCVT=0 fi ]) # gl_STDLIB_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STDLIB_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) HAVE_DECL_ECVT=1; AC_SUBST([HAVE_DECL_ECVT]) HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT]) HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_POSIX_MEMALIGN=1; AC_SUBST([HAVE_POSIX_MEMALIGN]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOL=1; AC_SUBST([HAVE_STRTOL]) HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOUL=1; AC_SUBST([HAVE_STRTOUL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_FREE=0; AC_SUBST([REPLACE_FREE]) REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_STRTOL=0; AC_SUBST([REPLACE_STRTOL]) REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) REPLACE_STRTOLL=0; AC_SUBST([REPLACE_STRTOLL]) REPLACE_STRTOUL=0; AC_SUBST([REPLACE_STRTOUL]) REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) libidn-1.38/lib/gl/m4/lib-ld.m40000644000000000000000000001237014076273531012705 00000000000000# lib-ld.m4 serial 10 dnl Copyright (C) 1996-2003, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 /dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then AC_MSG_CHECKING([for ld]) elif test "$GCC" = yes; then AC_MSG_CHECKING([for ld used by $CC]) elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi if test -n "$LD"; then # Let the user override the test with a path. : else AC_CACHE_VAL([acl_cv_path_LD], [ acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 to declare strverscmp(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([strverscmp]) if test $ac_cv_func_strverscmp = no; then HAVE_STRVERSCMP=0 fi ]) # Prerequisites of lib/strverscmp.c. AC_DEFUN([gl_PREREQ_STRVERSCMP], [ : ]) libidn-1.38/lib/gl/m4/inline.m40000644000000000000000000000315414076273531013020 00000000000000# inline.m4 serial 4 dnl Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Test for the 'inline' keyword or equivalent. dnl Define 'inline' to a supported equivalent, or to nothing if not supported, dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an dnl equivalent is effectively supported, i.e. if the compiler is likely to dnl drop unused 'static inline' functions. AC_DEFUN([gl_INLINE], [ AC_REQUIRE([AC_C_INLINE]) AC_CACHE_CHECK([whether the compiler generally respects inline], [gl_cv_c_inline_effective], [if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no else dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is dnl specified. dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result dnl depends on optimization flags, which can be in CFLAGS. dnl (AC_EGREP_CPP looks only at the CPPFLAGS.) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[#ifdef __NO_INLINE__ #error "inline is not effective" #endif]])], [gl_cv_c_inline_effective=yes], [gl_cv_c_inline_effective=no]) fi ]) if test $gl_cv_c_inline_effective = yes; then AC_DEFINE([HAVE_INLINE], [1], [Define to 1 if the compiler supports one of the keywords 'inline', '__inline__', '__inline' and effectively inlines functions marked as such.]) fi ]) libidn-1.38/lib/gl/m4/iconv.m40000644000000000000000000002250614076273531012662 00000000000000# iconv.m4 serial 24 dnl Copyright (C) 2000-2002, 2007-2014, 2016-2021 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.64]) dnl Note: AM_ICONV is documented in the GNU gettext manual dnl . dnl Don't make changes that are incompatible with that documentation! AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif ]], [[int result = 0; /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from successful returns. This is even documented in */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ { /* Try standardized names. */ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); /* Try IRIX, OSF/1 names. */ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); /* Try AIX names. */ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); /* Try HP-UX names. */ iconv_t cd4 = iconv_open ("utf8", "eucJP"); if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) result |= 16; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd2 != (iconv_t)(-1)) iconv_close (cd2); if (cd3 != (iconv_t)(-1)) iconv_close (cd3); if (cd4 != (iconv_t)(-1)) iconv_close (cd4); } return result; ]])], [am_cv_func_iconv_works=yes], , [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. AC_DEFUN_ONCE([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], [gl_cv_iconv_nonconst], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include extern #ifdef __cplusplus "C" #endif size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); ]], [[]])], [gl_cv_iconv_nonconst=yes], [gl_cv_iconv_nonconst=no]) ]) else dnl When compiling GNU libiconv on a system that does not have iconv yet, dnl pick the POSIX compliant declaration without 'const'. gl_cv_iconv_nonconst=yes fi if test $gl_cv_iconv_nonconst = yes; then iconv_arg1="" else iconv_arg1="const" fi AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated . m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test $gl_cv_iconv_nonconst != yes; then ICONV_CONST="const" fi ]) ]) libidn-1.38/lib/gl/m4/gnulib-comp.m40000644000000000000000000003124614076273533013763 00000000000000# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([lgl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable # Pre-early section. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_PROG_AR_RANLIB]) AC_REQUIRE([AM_PROG_CC_C_O]) # Code from module absolute-header: # Code from module attribute: # Code from module c-ctype: # Code from module c-strcase: # Code from module c99: # Code from module extensions: # Code from module extern-inline: # Code from module free-posix: # Code from module gettext-h: # Code from module gperf: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module iconv_open: # Code from module include_next: # Code from module inline: # Code from module langinfo: # Code from module libc-config: # Code from module limits-h: # Code from module multiarch: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module std-gnu11: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdlib: # Code from module striconv: # Code from module string: # Code from module strverscmp: # Code from module sys_types: # Code from module unistd: # Code from module unistr/base: # Code from module unistr/u8-check: # Code from module unistr/u8-mbtoucr: # Code from module unistr/u8-uctomb: # Code from module unitypes: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([lgl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [true]) gl_cond_libtool=true gl_m4_base='lib/gl/m4' m4_pushdef([AC_LIBOBJ], m4_defn([lgl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([lgl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([lgl_LIBSOURCES])) m4_pushdef([lgl_LIBSOURCES_LIST], []) m4_pushdef([lgl_LIBSOURCES_DIR], []) m4_pushdef([GL_MACRO_PREFIX], [lgl]) m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL_LGL]) gl_COMMON gl_source_base='lib/gl' AC_REQUIRE([gl_EXTERN_INLINE]) gl_FUNC_FREE if test $REPLACE_FREE = 1; then AC_LIBOBJ([free]) gl_PREREQ_FREE fi gl_STDLIB_MODULE_INDICATOR([free-posix]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_DEFUN([gl_HAVE_MODULE_HAVELIB]) AM_ICONV m4_ifdef([gl_ICONV_MODULE_INDICATOR], [gl_ICONV_MODULE_INDICATOR([iconv])]) gl_ICONV_H gl_ICONV_H_REQUIRE_DEFAULTS gl_FUNC_ICONV_OPEN if test $REPLACE_ICONV_OPEN = 1; then AC_LIBOBJ([iconv_open]) fi if test $REPLACE_ICONV = 1; then AC_LIBOBJ([iconv]) AC_LIBOBJ([iconv_close]) fi gl_INLINE gl_LANGINFO_H gl_LANGINFO_H_REQUIRE_DEFAULTS gl___INLINE gl_LIMITS_H gl_MULTIARCH gt_TYPE_SSIZE_T AM_STDBOOL_H gl_STDDEF_H gl_STDDEF_H_REQUIRE_DEFAULTS gl_STDINT_H gl_STDLIB_H gl_STDLIB_H_REQUIRE_DEFAULTS if test $gl_cond_libtool = false; then gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV" gl_libdeps="$gl_libdeps $LIBICONV" fi gl_STRING_H gl_STRING_H_REQUIRE_DEFAULTS gl_FUNC_STRVERSCMP if test $HAVE_STRVERSCMP = 0; then AC_LIBOBJ([strverscmp]) gl_PREREQ_STRVERSCMP fi gl_STRING_MODULE_INDICATOR([strverscmp]) gl_SYS_TYPES_H gl_SYS_TYPES_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_UNISTD_H gl_UNISTD_H_REQUIRE_DEFAULTS gl_LIBUNISTRING_LIBHEADER([0.9.11], [unistr.h]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-check]) gl_MODULE_INDICATOR([unistr/u8-mbtoucr]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtoucr]) gl_MODULE_INDICATOR([unistr/u8-uctomb]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb]) gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h]) AH_VERBATIM([unitypes_restrict], [ /* This definition is a duplicate of the one in unitypes.h. It is here so that we can cope with an older version of unitypes.h that does not contain this definition and that is pre-installed among the public header files. */ # if defined __restrict \ || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ || __clang_major__ >= 3 # define _UC_RESTRICT __restrict # elif 199901L <= __STDC_VERSION__ || defined restrict # define _UC_RESTRICT restrict # else # define _UC_RESTRICT # endif ]) # End of code from modules m4_ifval(lgl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([lgl_LIBSOURCES_DIR])[ || for gl_file in ]lgl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([lgl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([lgl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([GL_MODULE_INDICATOR_PREFIX]) m4_popdef([GL_MACRO_PREFIX]) m4_popdef([lgl_LIBSOURCES_DIR]) m4_popdef([lgl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ lgl_libobjs= lgl_ltlibobjs= if test -n "$lgl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgl_libobjs="$lgl_libobjs $i.$ac_objext" lgl_ltlibobjs="$lgl_ltlibobjs $i.lo" done fi AC_SUBST([lgl_LIBOBJS], [$lgl_libobjs]) AC_SUBST([lgl_LTLIBOBJS], [$lgl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([lgltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([lgltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([lgltests_LIBSOURCES])) m4_pushdef([lgltests_LIBSOURCES_LIST], []) m4_pushdef([lgltests_LIBSOURCES_DIR], []) m4_pushdef([GL_MACRO_PREFIX], [lgltests]) m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL_LGL]) gl_COMMON gl_source_base='tests' changequote(,)dnl lgltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([lgltests_WITNESS]) gl_module_indicator_condition=$lgltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(lgltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([lgltests_LIBSOURCES_DIR])[ || for gl_file in ]lgltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([lgltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([lgltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([GL_MODULE_INDICATOR_PREFIX]) m4_popdef([GL_MACRO_PREFIX]) m4_popdef([lgltests_LIBSOURCES_DIR]) m4_popdef([lgltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ lgltests_libobjs= lgltests_ltlibobjs= if test -n "$lgltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgltests_libobjs="$lgltests_libobjs $i.$ac_objext" lgltests_ltlibobjs="$lgltests_ltlibobjs $i.lo" done fi AC_SUBST([lgltests_LIBOBJS], [$lgltests_libobjs]) AC_SUBST([lgltests_LTLIBOBJS], [$lgltests_ltlibobjs]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into lgl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgl_LIBOBJ], [ AS_LITERAL_IF([$1], [lgl_LIBSOURCES([$1.c])])dnl lgl_LIBOBJS="$lgl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into lgl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [lgl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([lgl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([lgl_LIBSOURCES_DIR], [lib/gl]) m4_append([lgl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into lgltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgltests_LIBOBJ], [ AS_LITERAL_IF([$1], [lgltests_LIBSOURCES([$1.c])])dnl lgltests_LIBOBJS="$lgltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into lgltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [lgltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([lgltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([lgltests_LIBSOURCES_DIR], [tests]) m4_append([lgltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([lgl_FILE_LIST], [ build-aux/config.rpath lib/_Noreturn.h lib/arg-nonnull.h lib/attribute.h lib/c++defs.h lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h lib/c-strcasecmp.c lib/c-strncasecmp.c lib/cdefs.h lib/free.c lib/gettext.h lib/iconv.c lib/iconv.in.h lib/iconv_close.c lib/iconv_open-aix.gperf lib/iconv_open-hpux.gperf lib/iconv_open-irix.gperf lib/iconv_open-osf.gperf lib/iconv_open-solaris.gperf lib/iconv_open-zos.gperf lib/iconv_open.c lib/langinfo.in.h lib/libc-config.h lib/limits.in.h lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdlib.in.h lib/striconv.c lib/striconv.h lib/string.in.h lib/strverscmp.c lib/sys_types.in.h lib/unistd.c lib/unistd.in.h lib/unistr.in.h lib/unistr/u8-check.c lib/unistr/u8-mbtoucr.c lib/unistr/u8-uctomb-aux.c lib/unistr/u8-uctomb.c lib/unitypes.in.h lib/unused-parameter.h lib/warn-on-use.h m4/00gnulib.m4 m4/__inline.m4 m4/absolute-header.m4 m4/extensions.m4 m4/extern-inline.m4 m4/free.m4 m4/gnulib-common.m4 m4/host-cpu-c-abi.m4 m4/iconv.m4 m4/iconv_h.m4 m4/iconv_open.m4 m4/include_next.m4 m4/inline.m4 m4/langinfo_h.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/libunistring-base.m4 m4/limits-h.m4 m4/multiarch.m4 m4/off_t.m4 m4/pid_t.m4 m4/ssize_t.m4 m4/std-gnu11.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdlib_h.m4 m4/string_h.m4 m4/strverscmp.m4 m4/sys_types_h.m4 m4/unistd_h.m4 m4/warn-on-use.m4 m4/wchar_t.m4 m4/wint_t.m4 m4/zzgnulib.m4 ]) libidn-1.38/lib/gl/m4/iconv_h.m40000644000000000000000000000503614076273531013170 00000000000000# iconv_h.m4 serial 15 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_ICONV_H], [ AC_REQUIRE([gl_ICONV_H_DEFAULTS]) dnl Execute this unconditionally, because ICONV_H may be set by other dnl modules, after this code is executed. gl_CHECK_NEXT_HEADERS([iconv.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include ]], [iconv iconv_open]) AC_REQUIRE([AC_C_RESTRICT]) ]) dnl Unconditionally enables the replacement of . AC_DEFUN([gl_REPLACE_ICONV_H], [ gl_ICONV_H_REQUIRE_DEFAULTS ICONV_H='iconv.h' AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) # gl_ICONV_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_ICONV_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_ICONV_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_ICONV_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_ICONV_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ICONV]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_ICONV_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_ICONV_H_DEFAULTS]) ]) AC_DEFUN([gl_ICONV_H_DEFAULTS], [ m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])]) dnl Assume proper GNU behavior unless another module says otherwise. ICONV_CONST=; AC_SUBST([ICONV_CONST]) REPLACE_ICONV=0; AC_SUBST([REPLACE_ICONV]) REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN]) REPLACE_ICONV_UTF=0; AC_SUBST([REPLACE_ICONV_UTF]) ICONV_H=''; AC_SUBST([ICONV_H]) m4_ifdef([gl_POSIXCHECK], [ICONV_H='iconv.h'], [if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then dnl Override always, to support the C++ GNULIB_NAMESPACE. ICONV_H='iconv.h' fi ]) AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) libidn-1.38/lib/gl/m4/lib-link.m40000644000000000000000000010560714076273531013251 00000000000000# lib-link.m4 serial 32 dnl Copyright (C) 2001-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.61]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_LINK_IFELSE( [AC_LANG_PROGRAM([[$3]], [[$4]])], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_libname_spec, dnl acl_library_names_spec, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Complain if config.rpath is missing. AC_REQUIRE_AUX_FILE([config.rpath]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) AC_ARG_WITH(PACK[-prefix], [[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi ]) if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then dnl Really add $dependency_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then dnl Really add $dependency_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. dnl But on GNU systems, ignore -lc options, because dnl - linking with libc is the default anyway, dnl - linking with libc.a may produce an error dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" dnl or may produce an executable that always crashes, see dnl . dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2" \ && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2" \ && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) libidn-1.38/lib/gl/m4/gnulib-cache.m40000644000000000000000000000406314076273533014065 00000000000000# Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import \ # --lib=libgnu \ # --source-base=lib/gl \ # --m4-base=lib/gl/m4 \ # --doc-base=doc \ # --tests-base=tests \ # --aux-dir=build-aux \ # --lgpl=2 \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=lgl \ # --no-vc-files \ # gettext-h \ # langinfo \ # stdint \ # striconv \ # strverscmp \ # unistr/u8-check # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ gettext-h langinfo stdint striconv strverscmp unistr/u8-check ]) gl_AVOID([]) gl_SOURCE_BASE([lib/gl]) gl_M4_BASE([lib/gl/m4]) gl_PO_BASE([]) gl_DOC_BASE([doc]) gl_TESTS_BASE([tests]) gl_LIB([libgnu]) gl_LGPL([2]) gl_MAKEFILE_NAME([]) gl_LIBTOOL gl_MACRO_PREFIX([lgl]) gl_PO_DOMAIN([]) gl_WITNESS_C_MACRO([]) gl_VC_FILES([false]) libidn-1.38/lib/gl/iconv_open-solaris.gperf0000644000000000000000000000314014076273531015611 00000000000000/* Character set conversion. Copyright (C) 2007, 2009, 2020-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On Solaris 10, look in the "iconv -l" output. Some aliases are advertised but # not actually supported by the iconv() function and by the 'iconv' program. # For example: # $ echo abc | iconv -f 646 -t ISO-8859-1 # Not supported 646 to ISO-8859-1 # $ echo abc | iconv -f 646 -t ISO8859-1 $ abc ASCII, "646" ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP1251, "ansi-1251" libidn-1.38/lib/gl/string.in.h0000644000000000000000000013126314076273531013047 00000000000000/* A GNU-like . Copyright (C) 1995-1996, 2001-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_STRING_H /* Special invocation convention: - On OS X/NetBSD we have a sequence of nested includes -> -> "string.h" In this situation system _chk variants due to -D_FORTIFY_SOURCE might be used after any replacements defined here. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STRING_H #define _GL_ALREADY_INCLUDING_STRING_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #undef _GL_ALREADY_INCLUDING_STRING_H #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* NetBSD 5.0 declares strsignal in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include #endif /* AIX 7.2 declares ffsl and ffsll in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if ((@GNULIB_FFSL@ || @GNULIB_FFSLL@ || defined GNULIB_POSIXCHECK) \ && defined _AIX) \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Clear a block of memory. The compiler will not delete a call to this function, even if the block is dead after the call. */ #if @GNULIB_EXPLICIT_BZERO@ # if ! @HAVE_EXPLICIT_BZERO@ _GL_FUNCDECL_SYS (explicit_bzero, void, (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); _GL_CXXALIASWARN (explicit_bzero); #elif defined GNULIB_POSIXCHECK # undef explicit_bzero # if HAVE_RAW_DECL_EXPLICIT_BZERO _GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " "use gnulib module explicit_bzero for portability"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if @REPLACE_FFSLL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ffsll rpl_ffsll # endif _GL_FUNCDECL_RPL (ffsll, int, (long long int i)); _GL_CXXALIAS_RPL (ffsll, int, (long long int i)); # else # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif #if @GNULIB_MDA_MEMCCPY@ /* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::memccpy always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef memccpy # define memccpy _memccpy # endif _GL_CXXALIAS_MDA (memccpy, void *, (void *dest, const void *src, int c, size_t n)); # else _GL_CXXALIAS_SYS (memccpy, void *, (void *dest, const void *src, int c, size_t n)); # endif _GL_CXXALIASWARN (memccpy); #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef memchr # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE_CXX (strchr, const char *, char *, (const char *, int), "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup _strdup # endif _GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #elif @GNULIB_MDA_STRDUP@ /* On native Windows, map 'creat' to '_creat', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::strdup always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup _strdup # endif _GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup # undef strdup # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *restrict dest, const char *restrict src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *restrict dest, const char *restrict src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *restrict dest, const char *restrict src, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strncat); # endif #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE_CXX (strpbrk, const char *, char *, (const char *, const char *), "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE_CXX (strpbrk, const char *, char *, (const char *, const char *), "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE_CXX (strrchr, const char *, char *, (const char *, int), "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strerror); # endif #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif /* Return the name of the system error code ERRNUM. */ #if @GNULIB_STRERRORNAME_NP@ # if @REPLACE_STRERRORNAME_NP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerrorname_np # define strerrorname_np rpl_strerrorname_np # endif _GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum)); _GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); # else # if !@HAVE_STRERRORNAME_NP@ _GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum)); # endif _GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); # endif _GL_CXXALIASWARN (strerrorname_np); #elif defined GNULIB_POSIXCHECK # undef strerrorname_np # if HAVE_RAW_DECL_STRERRORNAME_NP _GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " "use gnulib module strerrorname_np for portability"); # endif #endif /* Return an abbreviation string for the signal number SIG. */ #if @GNULIB_SIGABBREV_NP@ # if ! @HAVE_SIGABBREV_NP@ _GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig)); # endif _GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); _GL_CXXALIASWARN (sigabbrev_np); #elif defined GNULIB_POSIXCHECK # undef sigabbrev_np # if HAVE_RAW_DECL_SIGABBREV_NP _GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " "use gnulib module sigabbrev_np for portability"); # endif #endif /* Return an English description string for the signal number SIG. */ #if @GNULIB_SIGDESCR_NP@ # if ! @HAVE_SIGDESCR_NP@ _GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig)); # endif _GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); _GL_CXXALIASWARN (sigdescr_np); #elif defined GNULIB_POSIXCHECK # undef sigdescr_np # if HAVE_RAW_DECL_SIGDESCR_NP _GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " "use gnulib module sigdescr_np for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ #endif libidn-1.38/lib/gl/warn-on-use.h0000644000000000000000000001547114076273531013311 00000000000000/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the attribute used in _GL_WARN_ON_USE. If the compiler does not support this feature, it expands to empty. These macros are useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. _GL_WARN_ON_USE is for functions with 'extern' linkage. _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' linkage. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system : #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif or better (avoiding contradictory use of 'static' and 'extern'): #if HAVE_RAW_DECL_ENVIRON static char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__warning__ (message))) # elif __clang_major__ >= 4 /* Another compiler attribute is available in clang. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function \ __attribute__ ((__diagnose_if__ (1, message, "warning"))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__diagnose_if__ (1, message, "warning"))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if !defined __cplusplus # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ _GL_WARN_ON_USE (function, msg) # else # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_gcc function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __clang_major__ >= 4 /* Another compiler attribute is available in clang. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_clang function parameters_and_attributes \ __attribute__ ((__diagnose_if__ (1, msg, "warning"))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_gcc function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif libidn-1.38/lib/gl/unistd.in.h0000644000000000000000000023437614076273531013060 00000000000000/* Substitute for and wrapper around . Copyright (C) 2003-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_UNISTD_H@ && defined _GL_INCLUDING_UNISTD_H /* Special invocation convention: - On Mac OS X 10.3.9 we have a sequence of nested includes -> -> -> In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_UNISTD_H@ #else /* Normal invocation convention. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # define _GL_INCLUDING_UNISTD_H # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ # undef _GL_INCLUDING_UNISTD_H #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ /* But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ /* MSVC declares 'unlink' in , not in . We must include it before we #define unlink rpl_unlink. */ /* Cygwin 1.7.1 declares symlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \ && (defined __CYGWIN__ || defined __ANDROID__) \ && ! defined __GLIBC__ # include #endif /* mingw fails to declare _exit in . */ /* mingw, MSVC, BeOS, Haiku declare environ in , not in . */ /* Solaris declares getcwd not only in but also in . */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include # undef __need_system_stdlib_h #endif /* Native Windows platforms declare _chdir, _getcwd, _rmdir in and/or , not in . They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), _lseek(), _read(), _unlink(), _write() in . */ #if defined _WIN32 && !defined __CYGWIN__ # include # include #endif /* Native Windows platforms declare _execl*, _execv* in . */ #if defined _WIN32 && !defined __CYGWIN__ # include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . NonStop Kernel declares gethostname in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include #endif /* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_GETENTROPY@ || defined GNULIB_POSIXCHECK) \ && ((defined __APPLE__ && defined __MACH__) || defined __sun \ || defined __ANDROID__) \ && @UNISTD_H_HAVE_SYS_RANDOM_H@ \ && !defined __GLIBC__ # include #endif /* Android 4.3 declares fchownat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ && !defined __GLIBC__ # include #endif /* MSVC defines off_t in . May also define off_t to a 64-bit type on native Windows. */ /* Get off_t, ssize_t, mode_t. */ #include /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Get getopt(), optarg, optind, opterr, optopt. */ #if @GNULIB_GETOPT_POSIX@ && @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT # include # include #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* Hide some function declarations from . */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if @GNULIB_ACCESS@ # if @REPLACE_ACCESS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access rpl_access # endif _GL_FUNCDECL_RPL (access, int, (const char *file, int mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access _access # endif _GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); # else _GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); # endif _GL_CXXALIASWARN (access); #elif defined GNULIB_POSIXCHECK # undef access # if HAVE_RAW_DECL_ACCESS /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "access does not always support X_OK - " "use gnulib module access for portability; " "also, this function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif @GNULIB_MDA_ACCESS@ /* On native Windows, map 'access' to '_access', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::access always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access _access # endif _GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); # else _GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); # endif _GL_CXXALIASWARN (access); #endif #if @GNULIB_CHDIR@ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chdir # define chdir _chdir # endif _GL_CXXALIAS_MDA (chdir, int, (const char *file)); # else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in - " "use gnulib module chdir for portability"); # endif #elif @GNULIB_MDA_CHDIR@ /* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::chdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chdir # define chdir _chdir # endif _GL_CXXALIAS_MDA (chdir, int, (const char *file)); # else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIASWARN (chdir); #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup2 # define dup2 _dup2 # endif _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #elif @GNULIB_MDA_DUP2@ /* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::dup2 always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup2 # define dup2 _dup2 # endif _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if defined __CYGWIN__ && !defined __i386__ /* The 'environ' variable is defined in a DLL. Therefore its declaration needs the '__declspec(dllimport)' attribute, but the system's lacks it. This leads to a link error on 64-bit Cygwin when the option -Wl,--disable-auto-import is in use. */ _GL_EXTERN_C __declspec(dllimport) char **environ; # endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include # if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR # define _GL_USE_CRT_EXTERNS # endif # endif # ifdef _GL_USE_CRT_EXTERNS # include # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " "use gnulib module environ for portability") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_EXECL@ # if @REPLACE_EXECL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execl # define execl rpl_execl # endif _GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execl); #elif defined GNULIB_POSIXCHECK # undef execl # if HAVE_RAW_DECL_EXECL _GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " "use gnulib module execl for portability"); # endif #elif @GNULIB_MDA_EXECL@ /* On native Windows, map 'execl' to '_execl', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execl always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execl # define execl _execl # endif _GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execl); #endif #if @GNULIB_EXECLE@ # if @REPLACE_EXECLE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execle # define execle rpl_execle # endif _GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execle); #elif defined GNULIB_POSIXCHECK # undef execle # if HAVE_RAW_DECL_EXECLE _GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " "use gnulib module execle for portability"); # endif #elif @GNULIB_MDA_EXECLE@ /* On native Windows, map 'execle' to '_execle', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execle always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execle # define execle _execle # endif _GL_CXXALIAS_MDA (execle, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execle); #endif #if @GNULIB_EXECLP@ # if @REPLACE_EXECLP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execlp # define execlp rpl_execlp # endif _GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execlp); #elif defined GNULIB_POSIXCHECK # undef execlp # if HAVE_RAW_DECL_EXECLP _GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " "use gnulib module execlp for portability"); # endif #elif @GNULIB_MDA_EXECLP@ /* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execlp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execlp # define execlp _execlp # endif _GL_CXXALIAS_MDA (execlp, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execlp); #endif #if @GNULIB_EXECV@ # if @REPLACE_EXECV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execv # define execv rpl_execv # endif _GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execv); #elif defined GNULIB_POSIXCHECK # undef execv # if HAVE_RAW_DECL_EXECV _GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " "use gnulib module execv for portability"); # endif #elif @GNULIB_MDA_EXECV@ /* On native Windows, map 'execv' to '_execv', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execv always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execv # define execv _execv # endif _GL_CXXALIAS_MDA_CAST (execv, intptr_t, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execv); #endif #if @GNULIB_EXECVE@ # if @REPLACE_EXECVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execve # define execve rpl_execve # endif _GL_FUNCDECL_RPL (execve, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execve, int, (const char *program, char * const *argv, char * const *env)); # else _GL_CXXALIAS_SYS (execve, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execve); #elif defined GNULIB_POSIXCHECK # undef execve # if HAVE_RAW_DECL_EXECVE _GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " "use gnulib module execve for portability"); # endif #elif @GNULIB_MDA_EXECVE@ /* On native Windows, map 'execve' to '_execve', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execve always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execve # define execve _execve # endif _GL_CXXALIAS_MDA_CAST (execve, intptr_t, (const char *program, char * const *argv, char * const *env)); # else _GL_CXXALIAS_SYS (execve, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execve); #endif #if @GNULIB_EXECVP@ # if @REPLACE_EXECVP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvp # define execvp rpl_execvp # endif _GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execvp); #elif defined GNULIB_POSIXCHECK # undef execvp # if HAVE_RAW_DECL_EXECVP _GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " "use gnulib module execvp for portability"); # endif #elif @GNULIB_MDA_EXECVP@ /* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execvp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvp # define execvp _execvp # endif _GL_CXXALIAS_MDA_CAST (execvp, intptr_t, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execvp); #endif #if @GNULIB_EXECVPE@ # if @REPLACE_EXECVPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvpe # define execvpe rpl_execvpe # endif _GL_FUNCDECL_RPL (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execvpe, int, (const char *program, char * const *argv, char * const *env)); # else # if !@HAVE_DECL_EXECVPE@ _GL_FUNCDECL_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execvpe); #elif defined GNULIB_POSIXCHECK # undef execvpe # if HAVE_RAW_DECL_EXECVPE _GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " "use gnulib module execvpe for portability"); # endif #elif @GNULIB_MDA_EXECVPE@ /* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvpe # define execvpe _execvpe # endif _GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, (const char *program, char * const *argv, char * const *env)); # elif @HAVE_EXECVPE@ # if !@HAVE_DECL_EXECVPE@ _GL_FUNCDECL_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env)); # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_EXECVPE@ _GL_CXXALIASWARN (execvpe); # endif #endif #if @GNULIB_FACCESSAT@ # if @REPLACE_FACCESSAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef faccessat # define faccessat rpl_faccessat # endif _GL_FUNCDECL_RPL (faccessat, int, (int fd, char const *name, int mode, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (faccessat, int, (int fd, char const *name, int mode, int flag)); # else # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); # endif _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module fchownat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getcwd # define getcwd _getcwd # endif _GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #elif @GNULIB_MDA_GETCWD@ /* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getcwd always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getcwd # define getcwd _getcwd # endif /* Need to cast, because on mingw, the second parameter is either 'int size' or 'size_t size'. */ _GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); # else _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if @REPLACE_GETDTABLESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdtablesize # define getdtablesize rpl_getdtablesize # endif _GL_FUNCDECL_RPL (getdtablesize, int, (void)); _GL_CXXALIAS_RPL (getdtablesize, int, (void)); # else # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif /* Need to cast, because on AIX, the parameter list is (...). */ _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); # endif _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETENTROPY@ /* Fill a buffer with random bytes. */ # if !@HAVE_GETENTROPY@ _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); # endif _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); _GL_CXXALIASWARN (getentropy); #elif defined GNULIB_POSIXCHECK # undef getentropy # if HAVE_RAW_DECL_GETENTROPY _GL_WARN_ON_USE (getentropy, "getentropy is unportable - " "use gnulib module getentropy for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_DECL_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else /* On HP-UX, getpagesize exists, but it is not declared in even if the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ # if defined __hpux _GL_FUNCDECL_SYS (getpagesize, int, (void)); # endif # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETPASS@ /* Function getpass() from module 'getpass': Read a password from /dev/tty or stdin. Function getpass() from module 'getpass-gnu': Read a password of arbitrary length from /dev/tty or stdin. */ # if @REPLACE_GETPASS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpass # define getpass rpl_getpass # endif _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); # else # if !@HAVE_GETPASS@ _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); # endif _GL_CXXALIASWARN (getpass); #elif defined GNULIB_POSIXCHECK # undef getpass # if HAVE_RAW_DECL_GETPASS _GL_WARN_ON_USE (getpass, "getpass is unportable - " "use gnulib module getpass or getpass-gnu for portability"); # endif #endif #if @GNULIB_MDA_GETPID@ /* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getpid always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpid # define getpid _getpid # endif _GL_CXXALIAS_MDA (getpid, int, (void)); # else _GL_CXXALIAS_SYS (getpid, pid_t, (void)); # endif _GL_CXXALIASWARN (getpid); #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif # define GNULIB_defined_isatty 1 _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty _isatty # endif _GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #elif @GNULIB_MDA_ISATTY@ /* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::isatty always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty _isatty # endif _GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lseek # define lseek _lseek # endif _GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #elif @GNULIB_MDA_LSEEK@ /* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::lseek always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lseek # define lseek _lseek # endif _GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read _read # endif _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); # else _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #elif @GNULIB_MDA_READ@ /* On native Windows, map 'read' to '_read', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::read always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read _read # endif # ifdef __MINGW32__ _GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count)); # else _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count)); # endif # else _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if @REPLACE_READLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlinkat rpl_readlinkat # endif _GL_FUNCDECL_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); # else # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); # endif _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rmdir # define rmdir _rmdir # endif _GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #elif @GNULIB_MDA_RMDIR@ /* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::rmdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rmdir # define rmdir _rmdir # endif _GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_MDA_SWAB@ /* On native Windows, map 'swab' to '_swab', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::swab always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef swab # define swab _swab # endif /* Need to cast, because in old mingw the arguments are (const char *from, char *to, size_t n). */ _GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); # else # if defined __hpux /* HP-UX */ _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); # elif defined __sun && !defined _XPG4 /* Solaris */ _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); # else _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); # endif # endif _GL_CXXALIASWARN (swab); #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if @REPLACE_SYMLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlinkat # define symlinkat rpl_symlinkat # endif _GL_FUNCDECL_RPL (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (symlinkat, int, (char const *contents, int fd, char const *file)); # else # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); # endif _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TRUNCATE@ /* Change the size of the file designated by FILENAME to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_TRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncate # define truncate rpl_truncate # endif _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else # if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); # endif _GL_CXXALIASWARN (truncate); #elif defined GNULIB_POSIXCHECK # undef truncate # if HAVE_RAW_DECL_TRUNCATE _GL_WARN_ON_USE (truncate, "truncate is unportable - " "use gnulib module truncate for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink _unlink # endif _GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #elif @GNULIB_MDA_UNLINK@ /* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::unlink always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink _unlink # endif _GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module unlinkat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif /* Need to cast, because on Haiku, the first parameter is unsigned int n. */ _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); # else _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #elif @GNULIB_MDA_WRITE@ /* On native Windows, map 'write' to '_write', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::write always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif # ifdef __MINGW32__ _GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count)); # else _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count)); # endif # else _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _GL_INCLUDING_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ libidn-1.38/lib/gl/c-ctype.h0000644000000000000000000002246714076273531012505 00000000000000/* Character handling in C locale. These functions work like the corresponding functions in , except that they have the C (POSIX) locale hardwired, whereas the functions' behaviour depends on the current locale set via setlocale. Copyright (C) 2000-2003, 2006, 2008-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef C_CTYPE_H #define C_CTYPE_H #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef C_CTYPE_INLINE # define C_CTYPE_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. */ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ASCII or one of its variants or extensions, not EBCDIC. Testing the value of '\n' and '\r' is not relevant. */ # define C_CTYPE_ASCII 1 #elif ! (' ' == '\x40' && '0' == '\xf0' \ && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') # error "Only ASCII and EBCDIC are supported" #endif #if 'A' < 0 # error "EBCDIC and char is signed -- not supported" #endif /* Cases for control characters. */ #define _C_CTYPE_CNTRL \ case '\a': case '\b': case '\f': case '\n': \ case '\r': case '\t': case '\v': \ _C_CTYPE_OTHER_CNTRL /* ASCII control characters other than those with \-letter escapes. */ #if C_CTYPE_ASCII # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x04': case '\x05': case '\x06': case '\x0e': \ case '\x0f': case '\x10': case '\x11': case '\x12': \ case '\x13': case '\x14': case '\x15': case '\x16': \ case '\x17': case '\x18': case '\x19': case '\x1a': \ case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x7f' #else /* Use EBCDIC code page 1047's assignments for ASCII control chars; assume all EBCDIC code pages agree about these assignments. */ # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x07': case '\x0e': case '\x0f': case '\x10': \ case '\x11': case '\x12': case '\x13': case '\x18': \ case '\x19': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x26': case '\x27': case '\x2d': \ case '\x2e': case '\x32': case '\x37': case '\x3c': \ case '\x3d': case '\x3f' #endif /* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ #define _C_CTYPE_LOWER_A_THRU_F_N(N) \ case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ case 'e' + (N): case 'f' + (N) #define _C_CTYPE_LOWER_N(N) \ _C_CTYPE_LOWER_A_THRU_F_N(N): \ case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) /* Cases for hex letters, digits, lower, punct, and upper. */ #define _C_CTYPE_A_THRU_F \ _C_CTYPE_LOWER_A_THRU_F_N (0): \ _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') #define _C_CTYPE_DIGIT \ case '0': case '1': case '2': case '3': \ case '4': case '5': case '6': case '7': \ case '8': case '9' #define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) #define _C_CTYPE_PUNCT \ case '!': case '"': case '#': case '$': \ case '%': case '&': case '\'': case '(': \ case ')': case '*': case '+': case ',': \ case '-': case '.': case '/': case ':': \ case ';': case '<': case '=': case '>': \ case '?': case '@': case '[': case '\\': \ case ']': case '^': case '_': case '`': \ case '{': case '|': case '}': case '~' #define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') /* Function definitions. */ /* Unlike the functions in , which require an argument in the range of the 'unsigned char' type, the functions here operate on values that are in the 'unsigned char' range or in the 'char' range. In other words, when you have a 'char' value, you need to cast it before using it as argument to a function: const char *s = ...; if (isalpha ((unsigned char) *s)) ... but you don't need to cast it for the functions defined in this file: const char *s = ...; if (c_isalpha (*s)) ... */ C_CTYPE_INLINE bool c_isalnum (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isalpha (int c) { switch (c) { _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } /* The function isascii is not locale dependent. Its use in EBCDIC is questionable. */ C_CTYPE_INLINE bool c_isascii (int c) { switch (c) { case ' ': _C_CTYPE_CNTRL: _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isblank (int c) { return c == ' ' || c == '\t'; } C_CTYPE_INLINE bool c_iscntrl (int c) { switch (c) { _C_CTYPE_CNTRL: return true; default: return false; } } C_CTYPE_INLINE bool c_isdigit (int c) { switch (c) { _C_CTYPE_DIGIT: return true; default: return false; } } C_CTYPE_INLINE bool c_isgraph (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_islower (int c) { switch (c) { _C_CTYPE_LOWER: return true; default: return false; } } C_CTYPE_INLINE bool c_isprint (int c) { switch (c) { case ' ': _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_ispunct (int c) { switch (c) { _C_CTYPE_PUNCT: return true; default: return false; } } C_CTYPE_INLINE bool c_isspace (int c) { switch (c) { case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': return true; default: return false; } } C_CTYPE_INLINE bool c_isupper (int c) { switch (c) { _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isxdigit (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_A_THRU_F: return true; default: return false; } } C_CTYPE_INLINE int c_tolower (int c) { switch (c) { _C_CTYPE_UPPER: return c - 'A' + 'a'; default: return c; } } C_CTYPE_INLINE int c_toupper (int c) { switch (c) { _C_CTYPE_LOWER: return c - 'a' + 'A'; default: return c; } } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* C_CTYPE_H */ libidn-1.38/lib/gl/iconv_open-aix.gperf0000644000000000000000000000331314076273531014720 00000000000000/* Character set conversion. Copyright (C) 2007, 2020-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On AIX 5.1, look in /usr/lib/nls/loc/uconvTable. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP437, "IBM-437" CP850, "IBM-850" CP852, "IBM-852" CP856, "IBM-856" CP857, "IBM-857" CP861, "IBM-861" CP865, "IBM-865" CP869, "IBM-869" ISO-8859-13, "IBM-921" CP922, "IBM-922" CP932, "IBM-932" CP943, "IBM-943" CP1046, "IBM-1046" CP1124, "IBM-1124" CP1125, "IBM-1125" CP1129, "IBM-1129" CP1252, "IBM-1252" GB2312, "IBM-eucCN" EUC-JP, "IBM-eucJP" EUC-KR, "IBM-eucKR" EUC-TW, "IBM-eucTW" BIG5, "big5" libidn-1.38/lib/gl/unistd.c0000644000000000000000000000154114076273531012430 00000000000000/* Inline functions for . Copyright (C) 2012-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" typedef int dummy; libidn-1.38/lib/gl/Makefile.am0000644000000000000000000012666314076273533013031 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import \ # --lib=libgnu \ # --source-base=lib/gl \ # --m4-base=lib/gl/m4 \ # --doc-base=doc \ # --tests-base=tests \ # --aux-dir=build-aux \ # --lgpl=2 \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=lgl \ # --no-vc-files \ # gettext-h \ # langinfo \ # stdint \ # striconv \ # strverscmp \ # unistr/u8-check AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = # No GNU Make output. EXTRA_DIST += m4/gnulib-cache.m4 AM_CPPFLAGS = AM_CFLAGS = noinst_LTLIBRARIES += libgnu.la libgnu_la_SOURCES = libgnu_la_LIBADD = $(lgl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(lgl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = libgnu_la_LDFLAGS = $(AM_LDFLAGS) libgnu_la_LDFLAGS += -no-undefined libgnu_la_LDFLAGS += $(LTLIBICONV) libgnu_la_LDFLAGS += $(LTLIBINTL) ## begin gnulib module absolute-header # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) ## end gnulib module absolute-header ## begin gnulib module attribute EXTRA_DIST += attribute.h ## end gnulib module attribute ## begin gnulib module c-ctype libgnu_la_SOURCES += c-ctype.h c-ctype.c ## end gnulib module c-ctype ## begin gnulib module c-strcase libgnu_la_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c ## end gnulib module c-strcase ## begin gnulib module free-posix EXTRA_DIST += free.c EXTRA_libgnu_la_SOURCES += free.c ## end gnulib module free-posix ## begin gnulib module gettext-h libgnu_la_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module gperf GPERF = gperf V_GPERF = $(V_GPERF_@AM_V@) V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@) V_GPERF_0 = @echo " GPERF " $@; ## end gnulib module gperf ## begin gnulib module havelib EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module havelib ## begin gnulib module iconv-h BUILT_SOURCES += $(ICONV_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ICONV_H iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \ -e 's/@''GNULIB_ICONV''@/$(GL_LGL_GNULIB_ICONV)/g' \ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/iconv.in.h; \ } > $@-t && \ mv $@-t $@ else iconv.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += iconv.h iconv.h-t EXTRA_DIST += iconv.in.h ## end gnulib module iconv-h ## begin gnulib module iconv_open $(srcdir)/iconv_open-aix.h: $(srcdir)/iconv_open-aix.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t && \ mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h $(srcdir)/iconv_open-hpux.h: $(srcdir)/iconv_open-hpux.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t && \ mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h $(srcdir)/iconv_open-irix.h: $(srcdir)/iconv_open-irix.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t && \ mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h $(srcdir)/iconv_open-osf.h: $(srcdir)/iconv_open-osf.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t && \ mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h $(srcdir)/iconv_open-solaris.h: $(srcdir)/iconv_open-solaris.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t && \ mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h $(srcdir)/iconv_open-zos.h: $(srcdir)/iconv_open-zos.gperf $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-zos.gperf > $(srcdir)/iconv_open-zos.h-t && \ mv $(srcdir)/iconv_open-zos.h-t $(srcdir)/iconv_open-zos.h BUILT_SOURCES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h MOSTLYCLEANFILES += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t iconv_open-zos.h-t MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h EXTRA_DIST += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h iconv_open-zos.h EXTRA_DIST += iconv.c iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open-zos.gperf iconv_open.c EXTRA_libgnu_la_SOURCES += iconv.c iconv_close.c iconv_open.c ## end gnulib module iconv_open ## begin gnulib module langinfo BUILT_SOURCES += langinfo.h # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GL_LGL_GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += langinfo.h langinfo.h-t EXTRA_DIST += langinfo.in.h ## end gnulib module langinfo ## begin gnulib module libc-config EXTRA_DIST += cdefs.h libc-config.h ## end gnulib module libc-config ## begin gnulib module limits-h BUILT_SOURCES += $(LIMITS_H) # We need the following in order to create when the system # doesn't have one that is compatible with GNU. if GL_GENERATE_LIMITS_H limits.h: limits.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ < $(srcdir)/limits.in.h; \ } > $@-t && \ mv $@-t $@ else limits.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += limits.h limits.h-t EXTRA_DIST += limits.in.h ## end gnulib module limits-h ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(srcdir)/_Noreturn.h EXTRA_DIST += _Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H=$(srcdir)/arg-nonnull.h EXTRA_DIST += arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H=$(srcdir)/c++defs.h EXTRA_DIST += c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/unused-parameter # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. UNUSED_PARAMETER_H=$(srcdir)/unused-parameter.h EXTRA_DIST += unused-parameter.h ## end gnulib module snippet/unused-parameter ## begin gnulib module snippet/warn-on-use # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H=$(srcdir)/warn-on-use.h EXTRA_DIST += warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GL_LGL_GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_LGL_GNULIB_ALIGNED_ALLOC)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GL_LGL_GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_LGL_GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_LGL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_FREE_POSIX''@/$(GL_LGL_GNULIB_FREE_POSIX)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GL_LGL_GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GL_LGL_GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GL_LGL_GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_LGL_GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GL_LGL_GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GL_LGL_GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GL_LGL_GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_LGL_GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GL_LGL_GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GL_LGL_GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_LGL_GNULIB_POSIX_MEMALIGN)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_LGL_GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GL_LGL_GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GL_LGL_GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GL_LGL_GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GL_LGL_GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GL_LGL_GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GL_LGL_GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_LGL_GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_LGL_GNULIB_REALLOCARRAY)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GL_LGL_GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GL_LGL_GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_LGL_GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GL_LGL_GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GL_LGL_GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOL''@/$(GL_LGL_GNULIB_STRTOL)/g' \ -e 's/@''GNULIB_STRTOLD''@/$(GL_LGL_GNULIB_STRTOLD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GL_LGL_GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOUL''@/$(GL_LGL_GNULIB_STRTOUL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GL_LGL_GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_LGL_GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GL_LGL_GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GL_LGL_GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GL_LGL_GNULIB_WCTOMB)/g' \ -e 's/@''GNULIB_MDA_ECVT''@/$(GL_LGL_GNULIB_MDA_ECVT)/g' \ -e 's/@''GNULIB_MDA_FCVT''@/$(GL_LGL_GNULIB_MDA_FCVT)/g' \ -e 's/@''GNULIB_MDA_GCVT''@/$(GL_LGL_GNULIB_MDA_GCVT)/g' \ -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_LGL_GNULIB_MDA_MKTEMP)/g' \ -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_LGL_GNULIB_MDA_PUTENV)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module striconv libgnu_la_SOURCES += striconv.h striconv.c if GL_COND_LIBTOOL libgnu_la_LDFLAGS += $(LTLIBICONV) endif ## end gnulib module striconv ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_LGL_GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GL_LGL_GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GL_LGL_GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GL_LGL_GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GL_LGL_GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GL_LGL_GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GL_LGL_GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GL_LGL_GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_LGL_GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_LGL_GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_LGL_GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_LGL_GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GL_LGL_GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GL_LGL_GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GL_LGL_GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GL_LGL_GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_LGL_GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GL_LGL_GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GL_LGL_GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GL_LGL_GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GL_LGL_GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_LGL_GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GL_LGL_GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GL_LGL_GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_LGL_GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GL_LGL_GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GL_LGL_GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GL_LGL_GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GL_LGL_GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GL_LGL_GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GL_LGL_GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GL_LGL_GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GL_LGL_GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GL_LGL_GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GL_LGL_GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GL_LGL_GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_LGL_GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_LGL_GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_LGL_GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_LGL_GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_LGL_GNULIB_STRVERSCMP)/g' \ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_LGL_GNULIB_MDA_MEMCCPY)/g' \ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_LGL_GNULIB_MDA_STRDUP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module strverscmp EXTRA_DIST += strverscmp.c EXTRA_libgnu_la_SOURCES += strverscmp.c ## end gnulib module strverscmp ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module unistd BUILT_SOURCES += unistd.h libgnu_la_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_ACCESS''@/$(GL_LGL_GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GL_LGL_GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GL_LGL_GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_LGL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_LGL_GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GL_LGL_GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GL_LGL_GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GL_LGL_GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GL_LGL_GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_LGL_GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_EXECL''@/$(GL_LGL_GNULIB_EXECL)/g' \ -e 's/@''GNULIB_EXECLE''@/$(GL_LGL_GNULIB_EXECLE)/g' \ -e 's/@''GNULIB_EXECLP''@/$(GL_LGL_GNULIB_EXECLP)/g' \ -e 's/@''GNULIB_EXECV''@/$(GL_LGL_GNULIB_EXECV)/g' \ -e 's/@''GNULIB_EXECVE''@/$(GL_LGL_GNULIB_EXECVE)/g' \ -e 's/@''GNULIB_EXECVP''@/$(GL_LGL_GNULIB_EXECVP)/g' \ -e 's/@''GNULIB_EXECVPE''@/$(GL_LGL_GNULIB_EXECVPE)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GL_LGL_GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GL_LGL_GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_LGL_GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GL_LGL_GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GL_LGL_GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_LGL_GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GL_LGL_GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_LGL_GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_LGL_GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETENTROPY''@/$(GL_LGL_GNULIB_GETENTROPY)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GL_LGL_GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_LGL_GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GL_LGL_GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_LGL_GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_LGL_GNULIB_GETOPT_POSIX)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_LGL_GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GL_LGL_GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_LGL_GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_LGL_GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GL_LGL_GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GL_LGL_GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GL_LGL_GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GL_LGL_GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GL_LGL_GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GL_LGL_GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GL_LGL_GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GL_LGL_GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GL_LGL_GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GL_LGL_GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GL_LGL_GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GL_LGL_GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GL_LGL_GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_LGL_GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GL_LGL_GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GL_LGL_GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_LGL_GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GL_LGL_GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_LGL_GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_LGL_GNULIB_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_LGL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_LGL_GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GL_LGL_GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GL_LGL_GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GL_LGL_GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GL_LGL_GNULIB_WRITE)/g' \ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_LGL_GNULIB_MDA_ACCESS)/g' \ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_LGL_GNULIB_MDA_CHDIR)/g' \ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_LGL_GNULIB_MDA_CLOSE)/g' \ -e 's/@''GNULIB_MDA_DUP''@/$(GL_LGL_GNULIB_MDA_DUP)/g' \ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_LGL_GNULIB_MDA_DUP2)/g' \ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_LGL_GNULIB_MDA_EXECL)/g' \ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_LGL_GNULIB_MDA_EXECLE)/g' \ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_LGL_GNULIB_MDA_EXECLP)/g' \ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_LGL_GNULIB_MDA_EXECV)/g' \ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_LGL_GNULIB_MDA_EXECVE)/g' \ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_LGL_GNULIB_MDA_EXECVP)/g' \ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_LGL_GNULIB_MDA_EXECVPE)/g' \ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_LGL_GNULIB_MDA_GETCWD)/g' \ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_LGL_GNULIB_MDA_GETPID)/g' \ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_LGL_GNULIB_MDA_ISATTY)/g' \ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_LGL_GNULIB_MDA_LSEEK)/g' \ -e 's/@''GNULIB_MDA_READ''@/$(GL_LGL_GNULIB_MDA_READ)/g' \ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_LGL_GNULIB_MDA_RMDIR)/g' \ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_LGL_GNULIB_MDA_SWAB)/g' \ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_LGL_GNULIB_MDA_UNLINK)/g' \ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_LGL_GNULIB_MDA_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module unistr/base BUILT_SOURCES += $(LIBUNISTRING_UNISTR_H) unistr.h: unistr.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistr.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unistr.h unistr.h-t EXTRA_DIST += unistr.in.h ## end gnulib module unistr/base ## begin gnulib module unistr/u8-check if LIBUNISTRING_COMPILE_UNISTR_U8_CHECK libgnu_la_SOURCES += unistr/u8-check.c endif ## end gnulib module unistr/u8-check ## begin gnulib module unistr/u8-mbtoucr if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR libgnu_la_SOURCES += unistr/u8-mbtoucr.c endif ## end gnulib module unistr/u8-mbtoucr ## begin gnulib module unistr/u8-uctomb if LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB libgnu_la_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c endif ## end gnulib module unistr/u8-uctomb ## begin gnulib module unitypes BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H) unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unitypes.h unitypes.h-t EXTRA_DIST += unitypes.in.h ## end gnulib module unitypes mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libidn-1.38/lib/gl/c++defs.h0000644000000000000000000003557714076273531012361 00000000000000/* C++ compatible function declaration macros. Copyright (C) 2010-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* Begin/end the GNULIB_NAMESPACE namespace. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { # define _GL_END_NAMESPACE } #else # define _GL_BEGIN_NAMESPACE # define _GL_END_NAMESPACE #endif /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); Wrapping rpl_func in an object with an inline conversion operator avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is actually used in the program. */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::rpl_func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_MDA (func, rettype, parameters); is to be used when func is a Microsoft deprecated alias, on native Windows. It declares a C++ alias called GNULIB_NAMESPACE::func that redirects to _func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); */ #define _GL_CXXALIAS_MDA(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::rpl_func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); is like _GL_CXXALIAS_MDA (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); Wrapping func in an object with an inline conversion operator avoids a reference to func unless GNULIB_NAMESPACE::func is actually used in the program. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ libidn-1.38/lib/gl/_Noreturn.h0000644000000000000000000000415014076273531013101 00000000000000/* A C macro for declaring that a function does not return. Copyright (C) 2011-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (defined _MSC_VER && 1900 <= _MSC_VER)) \ && 0) /* [[noreturn]] is not practically usable, because with it the syntax extern _Noreturn void func (...); would not be valid; such a declaration would only be valid with 'extern' and '_Noreturn' swapped, or without the 'extern' keyword. However, some AIX system header files and several gnulib header files use precisely this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif ((!defined __cplusplus || defined __clang__) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ || (!defined __STRICT_ANSI__ \ && (__4 < __GNUC__ + (7 <= __GNUC_MINOR__) \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ # elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif libidn-1.38/lib/gl/striconv.c0000644000000000000000000003047014076273531012774 00000000000000/* Charset conversion. Copyright (C) 2001-2007, 2010-2021 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "striconv.h" #include #include #include #if HAVE_ICONV # include /* Get MB_LEN_MAX, CHAR_BIT. */ # include #endif #include "c-strcase.h" #ifndef SIZE_MAX # define SIZE_MAX ((size_t) -1) #endif #if HAVE_ICONV int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, char **resultp, size_t *lengthp) { # define tmpbufsize 4096 size_t length; char *result; /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Set to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif /* Determine the length we need. */ { size_t count = 0; /* The alignment is needed when converting e.g. to glibc's WCHAR_T or libiconv's UCS-4-INTERNAL encoding. */ union { unsigned int align; char buf[tmpbufsize]; } tmp; # define tmpbuf tmp.buf const char *inptr = src; size_t insize = srclen; while (insize > 0) { char *outptr = tmpbuf; size_t outsize = tmpbufsize; size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize); if (res == (size_t)(-1)) { if (errno == E2BIG) ; else if (errno == EINVAL) break; else return -1; } # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ else if (res > 0) { errno = EILSEQ; return -1; } # endif count += outptr - tmpbuf; } /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) { char *outptr = tmpbuf; size_t outsize = tmpbufsize; size_t res = iconv (cd, NULL, NULL, &outptr, &outsize); if (res == (size_t)(-1)) return -1; count += outptr - tmpbuf; } # endif length = count; # undef tmpbuf } if (length == 0) { *lengthp = 0; return 0; } if (*resultp != NULL && *lengthp >= length) result = *resultp; else { result = (char *) malloc (length); if (result == NULL) { errno = ENOMEM; return -1; } } /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Return to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif /* Do the conversion for real. */ { const char *inptr = src; size_t insize = srclen; char *outptr = result; size_t outsize = length; while (insize > 0) { size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize); if (res == (size_t)(-1)) { if (errno == EINVAL) break; else goto fail; } # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ else if (res > 0) { errno = EILSEQ; goto fail; } # endif } /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) { size_t res = iconv (cd, NULL, NULL, &outptr, &outsize); if (res == (size_t)(-1)) goto fail; } # endif if (outsize != 0) abort (); } *resultp = result; *lengthp = length; return 0; fail: { if (result != *resultp) free (result); return -1; } # undef tmpbufsize } char * str_cd_iconv (const char *src, iconv_t cd) { /* For most encodings, a trailing NUL byte in the input will be converted to a trailing NUL byte in the output. But not for UTF-7. So that this function is usable for UTF-7, we have to exclude the NUL byte from the conversion and add it by hand afterwards. */ # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. For other iconv() implementations, we have to look at the number of irreversible conversions returned; but this information is lost when iconv() returns for an E2BIG reason. Therefore we cannot use the second, faster algorithm. */ char *result = NULL; size_t length = 0; int retval = mem_cd_iconv (src, strlen (src), cd, &result, &length); char *final_result; if (retval < 0) { if (result != NULL) abort (); return NULL; } /* Add the terminating NUL byte. */ final_result = (result != NULL ? realloc (result, length + 1) : malloc (length + 1)); if (final_result == NULL) { free (result); errno = ENOMEM; return NULL; } final_result[length] = '\0'; return final_result; # else /* This algorithm is likely faster than the one above. But it may produce iconv() returns for an E2BIG reason, when the output size guess is too small. Therefore it can only be used when we don't need the number of irreversible conversions performed. */ char *result; size_t result_size; size_t length; const char *inptr = src; size_t inbytes_remaining = strlen (src); /* Make a guess for the worst-case output size, in order to avoid a realloc. It's OK if the guess is wrong as long as it is not zero and doesn't lead to an integer overflow. */ result_size = inbytes_remaining; { size_t approx_sqrt_SIZE_MAX = SIZE_MAX >> (sizeof (size_t) * CHAR_BIT / 2); if (result_size <= approx_sqrt_SIZE_MAX / MB_LEN_MAX) result_size *= MB_LEN_MAX; } result_size += 1; /* for the terminating NUL */ result = (char *) malloc (result_size); if (result == NULL) { errno = ENOMEM; return NULL; } /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Set to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif /* Do the conversion. */ { char *outptr = result; size_t outbytes_remaining = result_size - 1; for (;;) { /* Here inptr + inbytes_remaining = src + strlen (src), outptr + outbytes_remaining = result + result_size - 1. */ size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &inbytes_remaining, &outptr, &outbytes_remaining); if (res == (size_t)(-1)) { if (errno == EINVAL) break; else if (errno == E2BIG) { size_t used = outptr - result; size_t newsize = result_size * 2; char *newresult; if (!(newsize > result_size)) { errno = ENOMEM; goto failed; } newresult = (char *) realloc (result, newsize); if (newresult == NULL) { errno = ENOMEM; goto failed; } result = newresult; result_size = newsize; outptr = result + used; outbytes_remaining = result_size - 1 - used; } else goto failed; } else break; } /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) for (;;) { /* Here outptr + outbytes_remaining = result + result_size - 1. */ size_t res = iconv (cd, NULL, NULL, &outptr, &outbytes_remaining); if (res == (size_t)(-1)) { if (errno == E2BIG) { size_t used = outptr - result; size_t newsize = result_size * 2; char *newresult; if (!(newsize > result_size)) { errno = ENOMEM; goto failed; } newresult = (char *) realloc (result, newsize); if (newresult == NULL) { errno = ENOMEM; goto failed; } result = newresult; result_size = newsize; outptr = result + used; outbytes_remaining = result_size - 1 - used; } else goto failed; } else break; } # endif /* Add the terminating NUL byte. */ *outptr++ = '\0'; length = outptr - result; } /* Give away unused memory. */ if (length < result_size) { char *smaller_result = (char *) realloc (result, length); if (smaller_result != NULL) result = smaller_result; } return result; failed: free (result); return NULL; # endif } #endif char * str_iconv (const char *src, const char *from_codeset, const char *to_codeset) { if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0) { char *result = strdup (src); if (result == NULL) errno = ENOMEM; return result; } else { #if HAVE_ICONV iconv_t cd; char *result; /* Avoid glibc-2.1 bug with EUC-KR. */ # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ && !defined _LIBICONV_VERSION if (c_strcasecmp (from_codeset, "EUC-KR") == 0 || c_strcasecmp (to_codeset, "EUC-KR") == 0) { errno = EINVAL; return NULL; } # endif cd = iconv_open (to_codeset, from_codeset); if (cd == (iconv_t) -1) return NULL; result = str_cd_iconv (src, cd); if (result == NULL) { /* Close cd, but preserve the errno from str_cd_iconv. */ int saved_errno = errno; iconv_close (cd); errno = saved_errno; } else { if (iconv_close (cd) < 0) { free (result); return NULL; } } return result; #else /* This is a different error code than if iconv_open existed but didn't support from_codeset and to_codeset, so that the caller can emit an error message such as "iconv() is not supported. Installing GNU libiconv and then reinstalling this package would fix this." */ errno = ENOSYS; return NULL; #endif } } libidn-1.38/lib/gl/iconv.in.h0000644000000000000000000001035614076273531012656 00000000000000/* A GNU-like . Copyright (C) 2007-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_ICONV_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ICONV_H@ #ifndef _@GUARD_PREFIX@_ICONV_H #define _@GUARD_PREFIX@_ICONV_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if @GNULIB_ICONV@ # if @REPLACE_ICONV_OPEN@ /* An iconv_open wrapper that supports the IANA standardized encoding names ("ISO-8859-1" etc.) as far as possible. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv_open rpl_iconv_open # endif _GL_FUNCDECL_RPL (iconv_open, iconv_t, (const char *tocode, const char *fromcode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # else _GL_CXXALIAS_SYS (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # endif _GL_CXXALIASWARN (iconv_open); #elif defined GNULIB_POSIXCHECK # undef iconv_open # if HAVE_RAW_DECL_ICONV_OPEN _GL_WARN_ON_USE (iconv_open, "iconv_open is not working correctly everywhere - " "use gnulib module iconv for portability"); # endif #endif #if @REPLACE_ICONV_UTF@ /* Special constants for supporting UTF-{16,32}{BE,LE} encodings. Not public. */ # define _ICONV_UTF8_UTF16BE (iconv_t)(-161) # define _ICONV_UTF8_UTF16LE (iconv_t)(-162) # define _ICONV_UTF8_UTF32BE (iconv_t)(-163) # define _ICONV_UTF8_UTF32LE (iconv_t)(-164) # define _ICONV_UTF16BE_UTF8 (iconv_t)(-165) # define _ICONV_UTF16LE_UTF8 (iconv_t)(-166) # define _ICONV_UTF32BE_UTF8 (iconv_t)(-167) # define _ICONV_UTF32LE_UTF8 (iconv_t)(-168) #endif #if @GNULIB_ICONV@ # if @REPLACE_ICONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv rpl_iconv # endif _GL_FUNCDECL_RPL (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **restrict inbuf, size_t *restrict inbytesleft, char **restrict outbuf, size_t *restrict outbytesleft)); _GL_CXXALIAS_RPL (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **restrict inbuf, size_t *restrict inbytesleft, char **restrict outbuf, size_t *restrict outbytesleft)); # else /* Need to cast, because on some versions of Solaris, ICONV_CONST does not have the right value for C++. */ _GL_CXXALIAS_SYS_CAST (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **restrict inbuf, size_t *restrict inbytesleft, char **restrict outbuf, size_t *restrict outbytesleft)); # endif _GL_CXXALIASWARN (iconv); # ifndef ICONV_CONST # define ICONV_CONST @ICONV_CONST@ # endif #elif defined GNULIB_POSIXCHECK # undef iconv # if HAVE_RAW_DECL_ICONV _GL_WARN_ON_USE (iconv, "iconv is not working correctly everywhere - " "use gnulib module iconv for portability"); # endif #endif #if @GNULIB_ICONV@ # if @REPLACE_ICONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv_close rpl_iconv_close # endif _GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd)); _GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd)); # else _GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd)); # endif _GL_CXXALIASWARN (iconv_close); #endif #endif /* _@GUARD_PREFIX@_ICONV_H */ #endif /* _@GUARD_PREFIX@_ICONV_H */ libidn-1.38/lib/gl/stdbool.in.h0000644000000000000000000001201114076273531013174 00000000000000/* Copyright (C) 2001-2003, 2006-2021 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 for platforms that lack it. */ /* Usage suggestions: Programs that use should be aware of some limitations and standards compliance issues. Standards compliance: - must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ libidn-1.38/lib/gl/unitypes.in.h0000644000000000000000000000422214076273531013413 00000000000000/* Elementary types and macros for the GNU UniString library. Copyright (C) 2002, 2005-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _UNITYPES_H #define _UNITYPES_H /* Get uint8_t, uint16_t, uint32_t. */ #include /* Type representing a Unicode character. */ typedef uint32_t ucs4_t; /* Attribute of a function whose result depends only on the arguments (not pointers!) and which has no side effects. */ #ifndef _UC_ATTRIBUTE_CONST # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ # define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) # else # define _UC_ATTRIBUTE_CONST # endif #endif /* Attribute of a function whose result depends only on the arguments (possibly pointers) and global memory, and which has no side effects. */ #ifndef _UC_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _UC_ATTRIBUTE_PURE # endif #endif /* Qualifier in a function declaration, that asserts that the caller must pass a pointer to a different object in the specified pointer argument than in the other pointer arguments. */ #ifndef _UC_RESTRICT # if defined __restrict \ || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ || __clang_major__ >= 3 # define _UC_RESTRICT __restrict # elif 199901L <= __STDC_VERSION__ || defined restrict # define _UC_RESTRICT restrict # else # define _UC_RESTRICT # endif #endif #endif /* _UNITYPES_H */ libidn-1.38/lib/gl/stdlib.in.h0000644000000000000000000014236714076273531013031 00000000000000/* A GNU-like . Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD 10 defines WEXITSTATUS in , not in . */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include #endif /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ /* OpenIndiana has a bug: must be included before . */ # include # include #endif /* Native Windows platforms declare _mktemp() in . */ #if defined _WIN32 && !defined __CYGWIN__ # include #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in , which is included from if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ /* On Mac OS X 10.13, only declares mkostemp and mkostemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif /* Allocate memory with indefinite extent and specified alignment. */ #if @GNULIB_ALIGNED_ALLOC@ # if @REPLACE_ALIGNED_ALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef aligned_alloc # define aligned_alloc rpl_aligned_alloc # endif _GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); # else # if @HAVE_ALIGNED_ALLOC@ _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); # endif # endif # if @HAVE_ALIGNED_ALLOC@ _GL_CXXALIASWARN (aligned_alloc); # endif #elif defined GNULIB_POSIXCHECK # undef aligned_alloc # if HAVE_RAW_DECL_ALIGNED_ALLOC _GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " "use gnulib module aligned_alloc for portability"); # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (calloc); # endif #elif defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif # ifndef GNULIB_defined_canonicalize_file_name # define GNULIB_defined_canonicalize_file_name \ (!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@) # endif _GL_CXXALIASWARN (canonicalize_file_name); #elif defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_MDA_ECVT@ /* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ecvt # define ecvt _ecvt # endif _GL_CXXALIAS_MDA (ecvt, char *, (double number, int ndigits, int *decptp, int *signp)); # else # if @HAVE_DECL_ECVT@ _GL_CXXALIAS_SYS (ecvt, char *, (double number, int ndigits, int *decptp, int *signp)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_ECVT@ _GL_CXXALIASWARN (ecvt); # endif #endif #if @GNULIB_MDA_FCVT@ /* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcvt # define fcvt _fcvt # endif _GL_CXXALIAS_MDA (fcvt, char *, (double number, int ndigits, int *decptp, int *signp)); # else # if @HAVE_DECL_FCVT@ _GL_CXXALIAS_SYS (fcvt, char *, (double number, int ndigits, int *decptp, int *signp)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCVT@ _GL_CXXALIASWARN (fcvt); # endif #endif #if @GNULIB_FREE_POSIX@ # if @REPLACE_FREE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef free # define free rpl_free # endif _GL_FUNCDECL_RPL (free, void, (void *ptr)); _GL_CXXALIAS_RPL (free, void, (void *ptr)); # else _GL_CXXALIAS_SYS (free, void, (void *ptr)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (free); # endif #elif defined GNULIB_POSIXCHECK # undef free /* Assume free is always declared. */ _GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " "use gnulib module free for portability"); #endif #if @GNULIB_MDA_GCVT@ /* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gcvt # define gcvt _gcvt # endif _GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf)); # else # if @HAVE_DECL_GCVT@ _GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf)); # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_GCVT@ _GL_CXXALIASWARN (gcvt); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIASWARN (getloadavg); #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX specification. https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); _GL_CXXALIASWARN (getsubopt); #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (malloc); # endif #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); # else # if !@HAVE_MBTOWC@ _GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); # endif _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *restrict pwc, const char *restrict s, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mbtowc); # endif #elif defined GNULIB_POSIXCHECK # undef mbtowc # if HAVE_RAW_DECL_MBTOWC _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " "use gnulib module mbtowc for portability"); # endif #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemp); #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemps); #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_MDA_MKTEMP@ /* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::mktemp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mktemp # define mktemp _mktemp # endif _GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/)); # else _GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/)); # endif _GL_CXXALIASWARN (mktemp); #endif /* Allocate memory with indefinite extent and specified alignment. */ #if @GNULIB_POSIX_MEMALIGN@ # if @REPLACE_POSIX_MEMALIGN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef posix_memalign # define posix_memalign rpl_posix_memalign # endif _GL_FUNCDECL_RPL (posix_memalign, int, (void **memptr, size_t alignment, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_memalign, int, (void **memptr, size_t alignment, size_t size)); # else # if @HAVE_POSIX_MEMALIGN@ _GL_CXXALIAS_SYS (posix_memalign, int, (void **memptr, size_t alignment, size_t size)); # endif # endif # if @HAVE_POSIX_MEMALIGN@ _GL_CXXALIASWARN (posix_memalign); # endif #elif defined GNULIB_POSIXCHECK # undef posix_memalign # if HAVE_RAW_DECL_POSIX_MEMALIGN _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " "use gnulib module posix_memalign for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIASWARN (posix_openpt); #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif # ifndef GNULIB_defined_ptsname_r # define GNULIB_defined_ptsname_r (!@HAVE_PTSNAME_R@ || @REPLACE_PTSNAME_R@) # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv _putenv # endif _GL_CXXALIAS_MDA (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #elif @GNULIB_MDA_PUTENV@ /* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::putenv always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv _putenv # endif /* Need to cast, because on mingw, the parameter is either 'const char *string' or 'char *string'. */ _GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_QSORT_R@ /* Sort an array of NMEMB elements, starting at address BASE, each element occupying SIZE bytes, in ascending order according to the comparison function COMPARE. */ # if @REPLACE_QSORT_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef qsort_r # define qsort_r rpl_qsort_r # endif _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg)); # else # if !@HAVE_QSORT_R@ _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg) _GL_ARG_NONNULL ((1, 4))); # endif _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg)); # endif _GL_CXXALIASWARN (qsort_r); #elif defined GNULIB_POSIXCHECK # undef qsort_r # if HAVE_RAW_DECL_QSORT_R _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " "use gnulib module qsort_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_RANDOM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random # define random rpl_random # endif _GL_FUNCDECL_RPL (random, long, (void)); _GL_CXXALIAS_RPL (random, long, (void)); # else # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif /* Need to cast, because on Haiku, the return type is int. */ _GL_CXXALIAS_SYS_CAST (random, long, (void)); # endif _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_RANDOM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom # define srandom rpl_srandom # endif _GL_FUNCDECL_RPL (srandom, void, (unsigned int seed)); _GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); # else # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif /* Need to cast, because on FreeBSD, the first parameter is unsigned long seed. */ _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); # endif _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_INITSTATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate # define initstate rpl_initstate # endif _GL_FUNCDECL_RPL (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); # else # if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on FreeBSD, the first parameter is unsigned long seed. */ _GL_CXXALIAS_SYS_CAST (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); # endif _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if @REPLACE_SETSTATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate # define setstate rpl_setstate # endif _GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); # else # if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter is const char *arg_state. */ _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); # endif _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif /* Need to cast, because on Haiku, the third parameter is unsigned long buf_size. */ _GL_CXXALIAS_SYS_CAST (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif /* Need to cast, because on Haiku, the first parameter is void *arg_state. */ _GL_CXXALIAS_SYS_CAST (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (realloc); # endif #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); #endif #if @GNULIB_REALLOCARRAY@ # if @REPLACE_REALLOCARRAY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef reallocarray # define reallocarray rpl_reallocarray # endif _GL_FUNCDECL_RPL (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # else # if ! @HAVE_REALLOCARRAY@ _GL_FUNCDECL_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # endif _GL_CXXALIAS_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # endif _GL_CXXALIASWARN (reallocarray); #elif defined GNULIB_POSIXCHECK # undef reallocarray # if HAVE_RAW_DECL_REALLOCARRAY _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " "use gnulib module reallocarray for portability"); # endif #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *restrict name, char *restrict resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *restrict name, char *restrict resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *restrict name, char *restrict resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *restrict name, char *restrict resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif # define GNULIB_defined_strtod_function 1 _GL_FUNCDECL_RPL (strtod, double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *restrict str, char **restrict endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *restrict str, char **restrict endp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strtod); # endif #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLD@ /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOLD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtold rpl_strtold # endif # define GNULIB_defined_strtold_function 1 _GL_FUNCDECL_RPL (strtold, long double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtold, long double, (const char *restrict str, char **restrict endp)); # else # if !@HAVE_STRTOLD@ _GL_FUNCDECL_SYS (strtold, long double, (const char *restrict str, char **restrict endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtold, long double, (const char *restrict str, char **restrict endp)); # endif _GL_CXXALIASWARN (strtold); #elif defined GNULIB_POSIXCHECK # undef strtold # if HAVE_RAW_DECL_STRTOLD _GL_WARN_ON_USE (strtold, "strtold is unportable - " "use gnulib module strtold for portability"); # endif #endif #if @GNULIB_STRTOL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set to ERANGE. */ # if @REPLACE_STRTOL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtol rpl_strtol # endif # define GNULIB_defined_strtol_function 1 _GL_FUNCDECL_RPL (strtol, long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtol, long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOL@ _GL_FUNCDECL_SYS (strtol, long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtol, long, (const char *restrict string, char **restrict endptr, int base)); # endif _GL_CXXALIASWARN (strtol); #elif defined GNULIB_POSIXCHECK # undef strtol # if HAVE_RAW_DECL_STRTOL _GL_WARN_ON_USE (strtol, "strtol is unportable - " "use gnulib module strtol for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if @REPLACE_STRTOLL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtoll rpl_strtoll # endif # define GNULIB_defined_strtoll_function 1 _GL_FUNCDECL_RPL (strtoll, long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoll, long long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *restrict string, char **restrict endptr, int base)); # endif _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOUL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ # if @REPLACE_STRTOUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtoul rpl_strtoul # endif # define GNULIB_defined_strtoul_function 1 _GL_FUNCDECL_RPL (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOUL@ _GL_FUNCDECL_SYS (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoul, unsigned long, (const char *restrict string, char **restrict endptr, int base)); # endif _GL_CXXALIASWARN (strtoul); #elif defined GNULIB_POSIXCHECK # undef strtoul # if HAVE_RAW_DECL_STRTOUL _GL_WARN_ON_USE (strtoul, "strtoul is unportable - " "use gnulib module strtoul for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if @REPLACE_STRTOULL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtoull rpl_strtoull # endif # define GNULIB_defined_strtoull_function 1 _GL_FUNCDECL_RPL (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base)); # else # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *restrict string, char **restrict endptr, int base)); # endif _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (wctomb); # endif #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif libidn-1.38/lib/gl/iconv_close.c0000644000000000000000000000250114076273531013422 00000000000000/* Character set conversion. Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include int rpl_iconv_close (iconv_t cd) #undef iconv_close { #if REPLACE_ICONV_UTF switch ((uintptr_t) cd) { case (uintptr_t) _ICONV_UTF8_UTF16BE: case (uintptr_t) _ICONV_UTF8_UTF16LE: case (uintptr_t) _ICONV_UTF8_UTF32BE: case (uintptr_t) _ICONV_UTF8_UTF32LE: case (uintptr_t) _ICONV_UTF16BE_UTF8: case (uintptr_t) _ICONV_UTF16LE_UTF8: case (uintptr_t) _ICONV_UTF32BE_UTF8: case (uintptr_t) _ICONV_UTF32LE_UTF8: return 0; } #endif return iconv_close (cd); } libidn-1.38/lib/Makefile.am0000644000000000000000000000612514076271517012415 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson. # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 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, see . EXTRA_DIST = gen-stringprep-tables.pl gen-unicode-tables.pl gen-tld-tables.pl AM_CPPFLAGS = -I$(srcdir)/gl -Igl -DLIBIDN_BUILDING AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = $(WSTACK_CFLAGS) $(WARN_CFLAGS) AM_CFLAGS += $(CFLAG_VISIBILITY) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libidn.pc lib_LTLIBRARIES = libidn.la idn_int = idn-int.h BUILT_SOURCES = $(idn_int) gunibreak.h gunicomp.h gunidecomp.h rfc3454.c rfc3454.h tlds.c DISTCLEANFILES = $(idn_int) include_HEADERS = stringprep.h idna.h punycode.h idn-free.h pr29.h if TLD include_HEADERS += tld.h endif nodist_include_HEADERS = $(idn_int) idn-int.h: if test -n "$(STDINT_H)"; then \ sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \ else \ echo '#include ' > idn-int.h; \ fi libidn_la_SOURCES = libidn.map \ gunibreak.h gunicomp.h gunidecomp.h \ nfkc.c toutf8.c version.c \ stringprep.h stringprep.c rfc3454.c rfc3454.h profiles.c \ punycode.h punycode.c \ idna.h idna.c \ pr29.h pr29.c \ idn-free.h idn-free.c \ strerror-idna.c strerror-pr29.c strerror-punycode.c \ strerror-stringprep.c if TLD libidn_la_SOURCES += tld.h tld.c tlds.c strerror-tld.c endif libidn_la_LIBADD = $(LTLIBICONV) $(LTLIBINTL) gl/libgnu.la libidn_la_LDFLAGS = \ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -no-undefined if HAVE_LD_VERSION_SCRIPT libidn_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libidn.map else libidn_la_LDFLAGS += -export-symbols-regex \ '^(idn|pr29_|punycode_|stringprep|tld_).*' endif if HAVE_LD_OUTPUT_DEF libidn_la_LDFLAGS += -Wl,--output-def,libidn-$(DLL_VERSION).def defexecdir = $(bindir) defexec_DATA = libidn-$(DLL_VERSION).def CLEANFILES = $(defexec_DATA) libidn-$(DLL_VERSION).def: libidn.la endif SPEC = $(top_srcdir)/doc/specifications #nfkc.c: gunibreak.h gunicomp.h gunidecomp.h #gunibreak.h gunicomp.h gunidecomp.h: gen-unicode-tables.pl $(SPEC)/UnicodeData-3.2.0.txt $(SPEC)/LineBreak-3.2.0.txt $(SPEC)/SpecialCasing-3.2.0.txt $(SPEC)/CaseFolding-3.2.0.txt $(SPEC)/CompositionExclusions-3.2.0.txt # $(PERL) $(srcdir)/gen-unicode-tables.pl -decomp 3.2 $(SPEC) rfc3454.c rfc3454.h: gen-stringprep-tables.pl $(PERL) $(srcdir)/gen-stringprep-tables.pl $(SPEC)/rfc3454.txt tlds.c: gen-tld-tables.pl $(PERL) $(srcdir)/gen-tld-tables.pl $(top_srcdir)/doc/tld/*.tld > tlds.c libidn-1.38/lib/tld.c0000644000000000000000000003554114076271517011314 00000000000000/* tld.c --- Declarations for TLD restriction checking. Copyright (C) 2004-2021 Simon Josefsson. Copyright (C) 2003-2021 Free Software Foundation, Inc. Author: Thomas Jacob, Internet24.de This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include /* Get stringprep_utf8_to_ucs4, stringprep_locale_to_utf8. */ #include /* Get strcmp(). */ #include /* Get specifications. */ #include /* Array of built-in domain restriction structures. See tlds.c. */ extern const Tld_table *_tld_tables[]; /** * tld_get_table: * @tld: TLD name (e.g. "com") as zero terminated ASCII byte string. * @tables: Zero terminated array of #Tld_table info-structures for * TLDs. * * Get the TLD table for a named TLD by searching through the given * TLD table array. * * Return value: Return structure corresponding to TLD @tld by going * thru @tables, or return %NULL if no such structure is found. */ const Tld_table * tld_get_table (const char *tld, const Tld_table ** tables) { const Tld_table **tldtable = NULL; if (!tld || !tables) return NULL; for (tldtable = tables; *tldtable; tldtable++) if (!strcmp ((*tldtable)->name, tld)) return *tldtable; return NULL; } /** * tld_default_table: * @tld: TLD name (e.g. "com") as zero terminated ASCII byte string. * @overrides: Additional zero terminated array of #Tld_table * info-structures for TLDs, or %NULL to only use library default * tables. * * Get the TLD table for a named TLD, using the internal defaults, * possibly overridden by the (optional) supplied tables. * * Return value: Return structure corresponding to TLD @tld_str, first * looking through @overrides then thru built-in list, or %NULL if * no such structure found. */ const Tld_table * tld_default_table (const char *tld, const Tld_table ** overrides) { const Tld_table *tldtable = NULL; if (!tld) return NULL; if (overrides) tldtable = tld_get_table (tld, overrides); if (!tldtable) tldtable = tld_get_table (tld, _tld_tables); return tldtable; } #define DOTP(c) ((c) == 0x002E || (c) == 0x3002 || \ (c) == 0xFF0E || (c) == 0xFF61) /** * tld_get_4: * @in: Array of unicode code points to process. Does not need to be * zero terminated. * @inlen: Number of unicode code points. * @out: Zero terminated ascii result string pointer. * * Isolate the top-level domain of @in and return it as an ASCII * string in @out. * * Return value: Return %TLD_SUCCESS on success, or the corresponding * #Tld_rc error code otherwise. */ int tld_get_4 (const uint32_t * in, size_t inlen, char **out) { const uint32_t *ipos; size_t olen; *out = NULL; if (!in || inlen == 0) return TLD_NODATA; ipos = &in[inlen - 1]; olen = 0; /* Scan backwards for non(latin)letters. */ while (ipos >= in && ((*ipos >= 0x41 && *ipos <= 0x5A) || (*ipos >= 0x61 && *ipos <= 0x7A))) ipos--, olen++; if (olen > 0 && ipos >= in && DOTP (*ipos)) { /* Found something that appears a TLD. */ char *out_s = malloc (sizeof (char) * (olen + 1)); char *opos = out_s; if (!opos) return TLD_MALLOC_ERROR; ipos++; /* Transcribe to lowercase ascii string. */ for (; ipos < &in[inlen]; ipos++, opos++) *opos = *ipos > 0x5A ? *ipos : *ipos + 0x20; *opos = 0; *out = out_s; return TLD_SUCCESS; } return TLD_NO_TLD; } /** * tld_get_4z: * @in: Zero terminated array of unicode code points to process. * @out: Zero terminated ascii result string pointer. * * Isolate the top-level domain of @in and return it as an ASCII * string in @out. * * Return value: Return %TLD_SUCCESS on success, or the corresponding * #Tld_rc error code otherwise. */ int tld_get_4z (const uint32_t * in, char **out) { const uint32_t *ipos = in; if (!in) return TLD_NODATA; while (*ipos) ipos++; return tld_get_4 (in, ipos - in, out); } /** * tld_get_z: * @in: Zero terminated character array to process. * @out: Zero terminated ascii result string pointer. * * Isolate the top-level domain of @in and return it as an ASCII * string in @out. The input string @in may be UTF-8, ISO-8859-1 or * any ASCII compatible character encoding. * * Return value: Return %TLD_SUCCESS on success, or the corresponding * #Tld_rc error code otherwise. */ int tld_get_z (const char *in, char **out) { uint32_t *iucs; size_t i, ilen; int rc; ilen = strlen (in); iucs = calloc (ilen, sizeof (*iucs)); if (!iucs) return TLD_MALLOC_ERROR; for (i = 0; i < ilen; i++) iucs[i] = in[i]; rc = tld_get_4 (iucs, ilen, out); free (iucs); return rc; } /* * tld_checkchar - verify that character is permitted * @ch: 32 bit unicode character to check. * @tld: A #Tld_table data structure to check @ch against. * * Verify if @ch is either in [a-z0-9-.] or mentioned as a valid * character in @tld. * * Return value: Return the #Tld_rc value %TLD_SUCCESS if @ch is a * valid character for the TLD @tld or if @tld is %NULL, * %TLD_INVALID if @ch is invalid as defined by @tld. */ static int _tld_checkchar (uint32_t ch, const Tld_table * tld) { const Tld_table_element *s, *e, *m; if (!tld) return TLD_SUCCESS; /* Check for [-a-z0-9.]. */ if ((ch >= 0x61 && ch <= 0x7A) || (ch >= 0x30 && ch <= 0x39) || ch == 0x2D || DOTP (ch)) return TLD_SUCCESS; s = tld->valid; e = s + tld->nvalid; while (s < e) { m = s + ((e - s) >> 1); if (ch < m->start) e = m; else if (ch > m->end) s = m + 1; else return TLD_SUCCESS; } return TLD_INVALID; } /** * tld_check_4t: * @in: Array of unicode code points to process. Does not need to be * zero terminated. * @inlen: Number of unicode code points. * @errpos: Position of offending character is returned here. * @tld: A #Tld_table data structure representing the restrictions for * which the input should be tested. * * Test each of the code points in @in for whether or not * they are allowed by the data structure in @tld, return * the position of the first character for which this is not * the case in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4t (const uint32_t * in, size_t inlen, size_t *errpos, const Tld_table * tld) { const uint32_t *ipos; int rc; if (!tld) /* No data for TLD so everything is valid. */ return TLD_SUCCESS; ipos = in; while (ipos < &in[inlen]) { rc = _tld_checkchar (*ipos, tld); if (rc != TLD_SUCCESS) { if (errpos) *errpos = ipos - in; return rc; } ipos++; } return TLD_SUCCESS; } /** * tld_check_4tz: * @in: Zero terminated array of unicode code points to process. * @errpos: Position of offending character is returned here. * @tld: A #Tld_table data structure representing the restrictions for * which the input should be tested. * * Test each of the code points in @in for whether or not * they are allowed by the data structure in @tld, return * the position of the first character for which this is not * the case in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4tz (const uint32_t * in, size_t *errpos, const Tld_table * tld) { const uint32_t *ipos = in; if (!ipos) return TLD_NODATA; while (*ipos) ipos++; return tld_check_4t (in, ipos - in, errpos, tld); } /** * tld_check_4: * @in: Array of unicode code points to process. Does not need to be * zero terminated. * @inlen: Number of unicode code points. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the code points in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4 (const uint32_t * in, size_t inlen, size_t *errpos, const Tld_table ** overrides) { const Tld_table *tld; char *domain; int rc; if (errpos) *errpos = 0; /* Get TLD name. */ rc = tld_get_4 (in, inlen, &domain); if (rc != TLD_SUCCESS) { if (rc == TLD_NO_TLD) /* No TLD, say OK */ return TLD_SUCCESS; else return rc; } /* Retrieve appropriate data structure. */ tld = tld_default_table (domain, overrides); free (domain); return tld_check_4t (in, inlen, errpos, tld); } /** * tld_check_4z: * @in: Zero-terminated array of unicode code points to process. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the code points in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4z (const uint32_t * in, size_t *errpos, const Tld_table ** overrides) { const uint32_t *ipos = in; if (!ipos) return TLD_NODATA; while (*ipos) ipos++; return tld_check_4 (in, ipos - in, errpos, overrides); } /** * tld_check_8z: * @in: Zero-terminated UTF8 string to process. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the characters in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. Note that the error position refers to the * decoded character offset rather than the byte position in the * string. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all * characters are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_8z (const char *in, size_t *errpos, const Tld_table ** overrides) { uint32_t *iucs; size_t ilen; int rc; if (!in) return TLD_NODATA; iucs = stringprep_utf8_to_ucs4 (in, -1, &ilen); if (!iucs) return TLD_MALLOC_ERROR; rc = tld_check_4 (iucs, ilen, errpos, overrides); free (iucs); return rc; } /** * tld_check_lz: * @in: Zero-terminated string in the current locales encoding to process. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the characters in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. Note that the error position refers to the * decoded character offset rather than the byte position in the * string. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all * characters are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_lz (const char *in, size_t *errpos, const Tld_table ** overrides) { char *utf8; int rc; if (!in) return TLD_NODATA; utf8 = stringprep_locale_to_utf8 (in); if (!utf8) return TLD_ICONV_ERROR; rc = tld_check_8z (utf8, errpos, overrides); free (utf8); return rc; } /** * Tld_rc: * @TLD_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @TLD_INVALID: Invalid character found. * @TLD_NODATA: No input data was provided. * @TLD_MALLOC_ERROR: Error during memory allocation. * @TLD_ICONV_ERROR: Character encoding conversion error. * @TLD_NO_TLD: No top-level domain found in domain string. * @TLD_NOTLD: Same as @TLD_NO_TLD, for compatibility * with typo in earlier versions. * * Enumerated return codes of the TLD checking functions. * The value 0 is guaranteed to always correspond to success. */ libidn-1.38/lib/idna.c0000644000000000000000000005477314076271517011454 00000000000000/* idna.c --- Prototypes for Internationalized Domain Name library. Copyright (C) 2002-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "idna.h" /* Get c_strcasecmp. */ #include #define DOTP(c) ((c) == 0x002E || (c) == 0x3002 || \ (c) == 0xFF0E || (c) == 0xFF61) /* Core functions */ /** * idna_to_ascii_4i: * @in: input array with unicode code points. * @inlen: length of input array with unicode code points. * @out: output zero terminated string that must have room for at * least 63 characters plus the terminating zero. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * The ToASCII operation takes a sequence of Unicode code points that * make up one domain label and transforms it into a sequence of code * points in the ASCII range (0..7F). If ToASCII succeeds, the * original sequence and the resulting sequence are equivalent labels. * * It is important to note that the ToASCII operation can fail. ToASCII * fails if any step of it fails. If any step of the ToASCII operation * fails on any label in a domain name, that domain name MUST NOT be used * as an internationalized domain name. The method for deadling with this * failure is application-specific. * * The inputs to ToASCII are a sequence of code points, the AllowUnassigned * flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a * sequence of ASCII code points or a failure condition. * * ToASCII never alters a sequence of code points that are all in the ASCII * range to begin with (although it could fail). Applying the ToASCII * operation multiple times has exactly the same effect as applying it just * once. * * Return value: Returns 0 on success, or an #Idna_rc error code. */ int idna_to_ascii_4i (const uint32_t * in, size_t inlen, char *out, int flags) { size_t len, outlen; uint32_t *src; /* XXX don't need to copy data? */ int rc; /* * ToASCII consists of the following steps: * * 1. If all code points in the sequence are in the ASCII range (0..7F) * then skip to step 3. */ { size_t i; int inasciirange; inasciirange = 1; for (i = 0; i < inlen; i++) if (in[i] > 0x7F) inasciirange = 0; if (inasciirange) { src = malloc (sizeof (in[0]) * (inlen + 1)); if (src == NULL) return IDNA_MALLOC_ERROR; memcpy (src, in, sizeof (in[0]) * inlen); src[inlen] = 0; goto step3; } } /* * 2. Perform the steps specified in [NAMEPREP] and fail if there is * an error. The AllowUnassigned flag is used in [NAMEPREP]. */ { char *p; p = stringprep_ucs4_to_utf8 (in, (ssize_t) inlen, NULL, NULL); if (p == NULL) return IDNA_MALLOC_ERROR; len = strlen (p); do { char *newp; len = 2 * len + 10; /* XXX better guess? */ newp = realloc (p, len); if (newp == NULL) { free (p); return IDNA_MALLOC_ERROR; } p = newp; if (flags & IDNA_ALLOW_UNASSIGNED) rc = stringprep_nameprep (p, len); else rc = stringprep_nameprep_no_unassigned (p, len); } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc != STRINGPREP_OK) { free (p); return IDNA_STRINGPREP_ERROR; } src = stringprep_utf8_to_ucs4 (p, -1, NULL); free (p); if (!src) return IDNA_MALLOC_ERROR; } step3: /* * 3. If the UseSTD3ASCIIRules flag is set, then perform these checks: * * (a) Verify the absence of non-LDH ASCII code points; that is, * the absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F. * * (b) Verify the absence of leading and trailing hyphen-minus; * that is, the absence of U+002D at the beginning and end of * the sequence. */ if (flags & IDNA_USE_STD3_ASCII_RULES) { size_t i; for (i = 0; src[i]; i++) if (src[i] <= 0x2C || src[i] == 0x2E || src[i] == 0x2F || (src[i] >= 0x3A && src[i] <= 0x40) || (src[i] >= 0x5B && src[i] <= 0x60) || (src[i] >= 0x7B && src[i] <= 0x7F)) { free (src); return IDNA_CONTAINS_NON_LDH; } if (src[0] == 0x002D || (i > 0 && src[i - 1] == 0x002D)) { free (src); return IDNA_CONTAINS_MINUS; } } /* * 4. If all code points in the sequence are in the ASCII range * (0..7F), then skip to step 8. */ { size_t i; int inasciirange; inasciirange = 1; for (i = 0; src[i]; i++) { if (src[i] > 0x7F) inasciirange = 0; /* copy string to output buffer if we are about to skip to step8 */ if (i < 64) out[i] = src[i]; } if (i < 64) out[i] = '\0'; else { free (src); return IDNA_INVALID_LENGTH; } if (inasciirange) goto step8; } /* * 5. Verify that the sequence does NOT begin with the ACE prefix. * */ { size_t i; int match; match = 1; for (i = 0; match && i < strlen (IDNA_ACE_PREFIX); i++) if (((uint32_t) IDNA_ACE_PREFIX[i] & 0xFF) != src[i]) match = 0; if (match) { free (src); return IDNA_CONTAINS_ACE_PREFIX; } } /* * 6. Encode the sequence using the encoding algorithm in [PUNYCODE] * and fail if there is an error. */ for (len = 0; src[len]; len++) ; src[len] = '\0'; outlen = 63 - strlen (IDNA_ACE_PREFIX); rc = punycode_encode (len, src, NULL, &outlen, &out[strlen (IDNA_ACE_PREFIX)]); if (rc != PUNYCODE_SUCCESS) { free (src); return IDNA_PUNYCODE_ERROR; } out[strlen (IDNA_ACE_PREFIX) + outlen] = '\0'; /* * 7. Prepend the ACE prefix. */ memcpy (out, IDNA_ACE_PREFIX, strlen (IDNA_ACE_PREFIX)); /* * 8. Verify that the number of code points is in the range 1 to 63 * inclusive (0 is excluded). */ step8: free (src); if (strlen (out) < 1) return IDNA_INVALID_LENGTH; return IDNA_SUCCESS; } /* ToUnicode(). May realloc() utf8in. Will free utf8in unconditionally. */ static int idna_to_unicode_internal (char *utf8in, uint32_t * out, size_t *outlen, int flags) { int rc; char tmpout[64]; size_t utf8len = strlen (utf8in) + 1; size_t addlen = 0, addinc = utf8len / 10 + 1; /* * ToUnicode consists of the following steps: * * 1. If the sequence contains any code points outside the ASCII range * (0..7F) then proceed to step 2, otherwise skip to step 3. */ { size_t i; int inasciirange; inasciirange = 1; for (i = 0; utf8in[i]; i++) if (utf8in[i] & ~0x7F) inasciirange = 0; if (inasciirange) goto step3; } /* * 2. Perform the steps specified in [NAMEPREP] and fail if there is an * error. (If step 3 of ToASCII is also performed here, it will not * affect the overall behavior of ToUnicode, but it is not * necessary.) The AllowUnassigned flag is used in [NAMEPREP]. */ do { char *newp = realloc (utf8in, utf8len + addlen); if (newp == NULL) { free (utf8in); return IDNA_MALLOC_ERROR; } utf8in = newp; if (flags & IDNA_ALLOW_UNASSIGNED) rc = stringprep_nameprep (utf8in, utf8len + addlen); else rc = stringprep_nameprep_no_unassigned (utf8in, utf8len + addlen); addlen += addinc; addinc *= 2; } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc != STRINGPREP_OK) { free (utf8in); return IDNA_STRINGPREP_ERROR; } /* 3. Verify that the sequence begins with the ACE prefix, and save a * copy of the sequence. * ... The ToASCII and ToUnicode operations MUST recognize the ACE prefix in a case-insensitive manner. */ step3: if (c_strncasecmp (utf8in, IDNA_ACE_PREFIX, strlen (IDNA_ACE_PREFIX)) != 0) { free (utf8in); return IDNA_NO_ACE_PREFIX; } /* 4. Remove the ACE prefix. */ memmove (utf8in, &utf8in[strlen (IDNA_ACE_PREFIX)], strlen (utf8in) - strlen (IDNA_ACE_PREFIX) + 1); /* 5. Decode the sequence using the decoding algorithm in [PUNYCODE] * and fail if there is an error. Save a copy of the result of * this step. */ (*outlen)--; /* reserve one for the zero */ rc = punycode_decode (strlen (utf8in), utf8in, outlen, out, NULL); if (rc != PUNYCODE_SUCCESS) { free (utf8in); return IDNA_PUNYCODE_ERROR; } out[*outlen] = 0; /* add zero */ /* 6. Apply ToASCII. */ rc = idna_to_ascii_4i (out, *outlen, tmpout, flags); if (rc != IDNA_SUCCESS) { free (utf8in); return rc; } /* 7. Verify that the result of step 6 matches the saved copy from * step 3, using a case-insensitive ASCII comparison. */ if (c_strcasecmp (utf8in, tmpout + strlen (IDNA_ACE_PREFIX)) != 0) { free (utf8in); return IDNA_ROUNDTRIP_VERIFY_ERROR; } /* 8. Return the saved copy from step 5. */ free (utf8in); return IDNA_SUCCESS; } /** * idna_to_unicode_44i: * @in: input array with unicode code points. * @inlen: length of input array with unicode code points. * @out: output array with unicode code points. * @outlen: on input, maximum size of output array with unicode code points, * on exit, actual size of output array with unicode code points. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * The ToUnicode operation takes a sequence of Unicode code points * that make up one domain label and returns a sequence of Unicode * code points. If the input sequence is a label in ACE form, then the * result is an equivalent internationalized label that is not in ACE * form, otherwise the original sequence is returned unaltered. * * ToUnicode never fails. If any step fails, then the original input * sequence is returned immediately in that step. * * The Punycode decoder can never output more code points than it * inputs, but Nameprep can, and therefore ToUnicode can. Note that * the number of octets needed to represent a sequence of code points * depends on the particular character encoding used. * * The inputs to ToUnicode are a sequence of code points, the * AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of * ToUnicode is always a sequence of Unicode code points. * * Return value: Returns #Idna_rc error condition, but it must only be * used for debugging purposes. The output buffer is always * guaranteed to contain the correct data according to the * specification (sans malloc induced errors). NB! This means that * you normally ignore the return code from this function, as * checking it means breaking the standard. */ int idna_to_unicode_44i (const uint32_t * in, size_t inlen, uint32_t * out, size_t *outlen, int flags) { int rc; size_t outlensave = *outlen; char *p; p = stringprep_ucs4_to_utf8 (in, (ssize_t) inlen, NULL, NULL); if (p == NULL) return IDNA_MALLOC_ERROR; rc = idna_to_unicode_internal (p, out, outlen, flags); if (rc != IDNA_SUCCESS) { memcpy (out, in, sizeof (in[0]) * (inlen < outlensave ? inlen : outlensave)); *outlen = inlen; } /* p is freed in idna_to_unicode_internal. */ return rc; } /* Wrappers that handle several labels */ /** * idna_to_ascii_4z: * @input: zero terminated input Unicode string. * @output: pointer to newly allocated output string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert UCS-4 domain name to ASCII string. The domain name may * contain several labels, separated by dots. The output buffer must * be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_ascii_4z (const uint32_t * input, char **output, int flags) { const uint32_t *start = input; const uint32_t *end; char buf[64]; char *out = NULL; int rc; /* 1) Whenever dots are used as label separators, the following characters MUST be recognized as dots: U+002E (full stop), U+3002 (ideographic full stop), U+FF0E (fullwidth full stop), U+FF61 (halfwidth ideographic full stop). */ if (input[0] == 0) { /* Handle implicit zero-length root label. */ *output = malloc (1); if (!*output) return IDNA_MALLOC_ERROR; strcpy (*output, ""); return IDNA_SUCCESS; } if (DOTP (input[0]) && input[1] == 0) { /* Handle explicit zero-length root label. */ *output = malloc (2); if (!*output) return IDNA_MALLOC_ERROR; strcpy (*output, "."); return IDNA_SUCCESS; } *output = NULL; do { end = start; for (; *end && !DOTP (*end); end++) ; if (*end == '\0' && start == end) { /* Handle explicit zero-length root label. */ buf[0] = '\0'; } else { rc = idna_to_ascii_4i (start, (size_t) (end - start), buf, flags); if (rc != IDNA_SUCCESS) { free (out); return rc; } } if (out) { size_t l = strlen (out) + 1 + strlen (buf) + 1; char *newp = realloc (out, l); if (!newp) { free (out); return IDNA_MALLOC_ERROR; } out = newp; strcat (out, "."); strcat (out, buf); } else { out = strdup (buf); if (!out) return IDNA_MALLOC_ERROR; } start = end + 1; } while (*end); *output = out; return IDNA_SUCCESS; } /** * idna_to_ascii_8z: * @input: zero terminated input UTF-8 string. * @output: pointer to newly allocated output string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert UTF-8 domain name to ASCII string. The domain name may * contain several labels, separated by dots. The output buffer must * be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_ascii_8z (const char *input, char **output, int flags) { uint32_t *ucs4; size_t ucs4len; int rc; ucs4 = stringprep_utf8_to_ucs4 (input, -1, &ucs4len); if (!ucs4) return IDNA_ICONV_ERROR; rc = idna_to_ascii_4z (ucs4, output, flags); free (ucs4); return rc; } /** * idna_to_ascii_lz: * @input: zero terminated input string encoded in the current locale's * character set. * @output: pointer to newly allocated output string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert domain name in the locale's encoding to ASCII string. The * domain name may contain several labels, separated by dots. The * output buffer must be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_ascii_lz (const char *input, char **output, int flags) { char *utf8; int rc; utf8 = stringprep_locale_to_utf8 (input); if (!utf8) return IDNA_ICONV_ERROR; rc = idna_to_ascii_8z (utf8, output, flags); free (utf8); return rc; } /** * idna_to_unicode_4z4z: * @input: zero-terminated Unicode string. * @output: pointer to newly allocated output Unicode string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UCS-4 format into a * UCS-4 string. The domain name may contain several labels, * separated by dots. The output buffer must be deallocated by the * caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags) { const uint32_t *start = input; const uint32_t *end; uint32_t *buf; size_t buflen; uint32_t *out = NULL; size_t outlen = 0; *output = NULL; do { end = start; for (; *end && !DOTP (*end); end++) ; buflen = (size_t) (end - start); buf = malloc (sizeof (buf[0]) * (buflen + 1)); if (!buf) { free (out); return IDNA_MALLOC_ERROR; } /* don't check return code as per specification! */ idna_to_unicode_44i (start, (size_t) (end - start), buf, &buflen, flags); if (out) { uint32_t *newp = realloc (out, sizeof (out[0]) * (outlen + 1 + buflen + 1)); if (!newp) { free (buf); free (out); return IDNA_MALLOC_ERROR; } out = newp; out[outlen++] = 0x002E; /* '.' (full stop) */ memcpy (out + outlen, buf, sizeof (buf[0]) * buflen); outlen += buflen; out[outlen] = 0x0; free (buf); } else { out = buf; outlen = buflen; out[outlen] = 0x0; } start = end + 1; } while (*end); *output = out; return IDNA_SUCCESS; } /** * idna_to_unicode_8z4z: * @input: zero-terminated UTF-8 string. * @output: pointer to newly allocated output Unicode string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UTF-8 format into a * UCS-4 string. The domain name may contain several labels, * separated by dots. The output buffer must be deallocated by the * caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_8z4z (const char *input, uint32_t ** output, int flags) { uint32_t *ucs4; size_t ucs4len; int rc; ucs4 = stringprep_utf8_to_ucs4 (input, -1, &ucs4len); if (!ucs4) return IDNA_ICONV_ERROR; rc = idna_to_unicode_4z4z (ucs4, output, flags); free (ucs4); return rc; } /** * idna_to_unicode_8z8z: * @input: zero-terminated UTF-8 string. * @output: pointer to newly allocated output UTF-8 string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UTF-8 format into a * UTF-8 string. The domain name may contain several labels, * separated by dots. The output buffer must be deallocated by the * caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_8z8z (const char *input, char **output, int flags) { uint32_t *ucs4; int rc; rc = idna_to_unicode_8z4z (input, &ucs4, flags); if (rc != IDNA_SUCCESS) return rc; *output = stringprep_ucs4_to_utf8 (ucs4, -1, NULL, NULL); free (ucs4); if (!*output) return IDNA_ICONV_ERROR; return IDNA_SUCCESS; } /** * idna_to_unicode_8zlz: * @input: zero-terminated UTF-8 string. * @output: pointer to newly allocated output string encoded in the * current locale's character set. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UTF-8 format into a * string encoded in the current locale's character set. The domain * name may contain several labels, separated by dots. The output * buffer must be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_8zlz (const char *input, char **output, int flags) { char *utf8; int rc; rc = idna_to_unicode_8z8z (input, &utf8, flags); if (rc != IDNA_SUCCESS) return rc; *output = stringprep_utf8_to_locale (utf8); free (utf8); if (!*output) return IDNA_ICONV_ERROR; return IDNA_SUCCESS; } /** * idna_to_unicode_lzlz: * @input: zero-terminated string encoded in the current locale's * character set. * @output: pointer to newly allocated output string encoded in the * current locale's character set. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in the locale's character * set into a string encoded in the current locale's character set. * The domain name may contain several labels, separated by dots. The * output buffer must be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_lzlz (const char *input, char **output, int flags) { char *utf8; int rc; utf8 = stringprep_locale_to_utf8 (input); if (!utf8) return IDNA_ICONV_ERROR; rc = idna_to_unicode_8zlz (utf8, output, flags); free (utf8); return rc; } /** * IDNA_ACE_PREFIX * * The IANA allocated prefix to use for IDNA. "xn--" */ /** * Idna_rc: * @IDNA_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @IDNA_STRINGPREP_ERROR: Error during string preparation. * @IDNA_PUNYCODE_ERROR: Error during punycode operation. * @IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains non-LDH ASCII characters. * @IDNA_CONTAINS_LDH: Same as @IDNA_CONTAINS_NON_LDH, for compatibility * with typo in earlier versions. * @IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains a leading or trailing hyphen-minus (U+002D). * @IDNA_INVALID_LENGTH: The final output string is not within the * (inclusive) range 1 to 63 characters. * @IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix * (for ToUnicode). * @IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output * string does not equal the input. * @IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for * ToASCII). * @IDNA_ICONV_ERROR: Character encoding conversion error. * @IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a * fatal error). * @IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used * internally in libc). * * Enumerated return codes of idna_to_ascii_4i(), * idna_to_unicode_44i() functions (and functions derived from those * functions). The value 0 is guaranteed to always correspond to * success. */ /** * Idna_flags: * @IDNA_ALLOW_UNASSIGNED: Don't reject strings containing unassigned * Unicode code points. * @IDNA_USE_STD3_ASCII_RULES: Validate strings according to STD3 * rules (i.e., normal host name rules). * * Flags to pass to idna_to_ascii_4i(), idna_to_unicode_44i() etc. */ libidn-1.38/lib/gen-stringprep-tables.pl0000755000000000000000000001015314076271517015131 00000000000000#! /usr/bin/perl -w # Copyright (C) 2002-2021 Simon Josefsson # 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 3 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, see . # I consider the output of this program to be unrestricted. Use it as # you will. use strict; my ($tab) = 59; my ($intable) = 0; my ($entries) = 0; my ($tablename); my ($varname); my ($starheader, $header); my ($profile) = "rfc3454"; my ($filename) = "$profile.c"; my ($headername) = "$profile.h"; my ($line, $start, $end, @map); open(FH, ">$filename") or die "cannot open $filename for writing"; print FH "/* This file is automatically generated. DO NOT EDIT!\n"; print FH " Instead, edit gen-stringprep-tables.pl and re-run. */\n\n"; print FH "#include \n"; print FH "#include \"stringprep.h\"\n"; open(FHH, ">$headername") or die "cannot open $headername for writing"; print FHH "/* This file is automatically generated. DO NOT EDIT!\n"; print FHH " Instead, edit gen-stringprep-tables.pl and re-run. */\n\n"; while(<>) { s/^ (.*)/$1/g; # for rfc $line = $_; die "already in table" if $intable && m,^----- Start Table (.*) -----,; die "not in table" if !$intable && m,^----- End Table (.*) -----,; if ($intable && m,^----- End Table (.*) -----,) { die "table error" unless $1 eq $tablename || ($1 eq "C.1.2" && $tablename eq "C.1.1"); # Typo in draft print FH " { 0 },\n"; print FH "};\n\n"; print FHH "#define N_STRINGPREP_${profile}_${varname} ${entries}\n"; $intable = 0; $entries = 0; } if (m,^[A-Z],) { $header = $line; } elsif (!m,^[ -],) { $header .= $line; } next unless ($intable || m,^----- Start Table (.*) -----,); if ($intable) { $_ = $line; chop $line; next if m,^$,; next if m,^Hoffman & Blanchet Standards Track \[Page [0-9]+\]$,; next if m,^ $,; next if m,RFC 3454 Preparation of Internationalized Strings December 2002,; die "regexp failed on line: $line" unless m,^([0-9A-F]+)(-([0-9A-F]+))?(; ([0-9A-F]+)( ([0-9A-F]+))?( ([0-9A-F]+))?( ([0-9A-F]+))?;)?,; die "too many mapping targets on line: $line" if $12; $start = $1; $end = $3; $map[0] = $5; $map[1] = $7; $map[2] = $9; $map[3] = $11; die "tables tried to map a range" if $end && $map[0]; if ($map[3]) { printf FH " { 0x%06s, 0x%06s, { 0x%06s,%*s/* %s */\n 0x%06s, 0x%06s, 0x%06s }},\n", $start, $start, $map[0], $tab-length($line)-13, " ", $line, $map[1], $map[2], $map[3]; } elsif ($map[2]) { printf FH " { 0x%06s, 0x%06s, { 0x%06s,%*s/* %s */\n 0x%06s, 0x%06s }},\n", $start, $start, $map[0], $tab-length($line)-14, " ", $line, $map[1], $map[2]; } elsif ($map[1]) { printf FH " { 0x%06s, 0x%06s, { 0x%06s,%*s/* %s */\n 0x%06s }},\n", $start, $start, $map[0], $tab-length($line)-14, " ", $line, $map[1]; } elsif ($map[0]) { printf FH " { 0x%06s, 0x%06s, { 0x%06s }},%*s/* %s */\n", $start, $start, $map[0], $tab-length($line)-17, " ", $line; } elsif ($end) { printf FH " { 0x%06s, 0x%06s },%*s/* %s */\n", $start, $end, $tab-length($line)-11, " ", $line; } else { printf FH " { 0x%06s, 0x%06s },%*s/* %s */\n", $start, $start, $tab-length($line)-11, " ", $line; } $entries++; } else { $intable = 1 if !$intable; $tablename = $1; ($varname = $tablename) =~ tr/./_/; $header =~ s/\n/\n * /s; print FH "\n/*\n * $header */\n\n"; print FH "const Stringprep_table_element stringprep_${profile}_${varname}\[\] = {\n"; } } close FHH or die "cannot close $headername"; close FH or die "cannot close $filename"; libidn-1.38/lib/pr29.h0000644000000000000000000000430214076271517011321 00000000000000/* pr29.h --- Detect strings which are non-idempotent under NFKC. Copyright (C) 2004-2021 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef PR29_H # define PR29_H /** * SECTION:pr29 * @title: pr29.h * @short_description: PR29-related functions * * PR29-related functions. */ # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /* Get size_t. */ # include /* Get uint32_t. */ # include /* Error codes. */ typedef enum { PR29_SUCCESS = 0, PR29_PROBLEM = 1, /* String is a problem sequence. */ PR29_STRINGPREP_ERROR = 2 /* Charset conversion failed (p29_8*). */ } Pr29_rc; extern IDNAPI const char *pr29_strerror (Pr29_rc rc); extern IDNAPI int pr29_4 (const uint32_t * in, size_t len); extern IDNAPI int pr29_4z (const uint32_t * in); extern IDNAPI int pr29_8z (const char *in); # ifdef __cplusplus } # endif #endif /* PR29_H */ libidn-1.38/lib/rfc3454.c0000644000000000000000000110063214076273624011617 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-stringprep-tables.pl and re-run. */ #include #include "stringprep.h" /* * So we can use this material. There may be other legal analysis that * also reach the same conclusion. */ const Stringprep_table_element stringprep_rfc3454_A_1[] = { { 0x000221, 0x000221 }, /* 0221 */ { 0x000234, 0x00024F }, /* 0234-024F */ { 0x0002AE, 0x0002AF }, /* 02AE-02AF */ { 0x0002EF, 0x0002FF }, /* 02EF-02FF */ { 0x000350, 0x00035F }, /* 0350-035F */ { 0x000370, 0x000373 }, /* 0370-0373 */ { 0x000376, 0x000379 }, /* 0376-0379 */ { 0x00037B, 0x00037D }, /* 037B-037D */ { 0x00037F, 0x000383 }, /* 037F-0383 */ { 0x00038B, 0x00038B }, /* 038B */ { 0x00038D, 0x00038D }, /* 038D */ { 0x0003A2, 0x0003A2 }, /* 03A2 */ { 0x0003CF, 0x0003CF }, /* 03CF */ { 0x0003F7, 0x0003FF }, /* 03F7-03FF */ { 0x000487, 0x000487 }, /* 0487 */ { 0x0004CF, 0x0004CF }, /* 04CF */ { 0x0004F6, 0x0004F7 }, /* 04F6-04F7 */ { 0x0004FA, 0x0004FF }, /* 04FA-04FF */ { 0x000510, 0x000530 }, /* 0510-0530 */ { 0x000557, 0x000558 }, /* 0557-0558 */ { 0x000560, 0x000560 }, /* 0560 */ { 0x000588, 0x000588 }, /* 0588 */ { 0x00058B, 0x000590 }, /* 058B-0590 */ { 0x0005A2, 0x0005A2 }, /* 05A2 */ { 0x0005BA, 0x0005BA }, /* 05BA */ { 0x0005C5, 0x0005CF }, /* 05C5-05CF */ { 0x0005EB, 0x0005EF }, /* 05EB-05EF */ { 0x0005F5, 0x00060B }, /* 05F5-060B */ { 0x00060D, 0x00061A }, /* 060D-061A */ { 0x00061C, 0x00061E }, /* 061C-061E */ { 0x000620, 0x000620 }, /* 0620 */ { 0x00063B, 0x00063F }, /* 063B-063F */ { 0x000656, 0x00065F }, /* 0656-065F */ { 0x0006EE, 0x0006EF }, /* 06EE-06EF */ { 0x0006FF, 0x0006FF }, /* 06FF */ { 0x00070E, 0x00070E }, /* 070E */ { 0x00072D, 0x00072F }, /* 072D-072F */ { 0x00074B, 0x00077F }, /* 074B-077F */ { 0x0007B2, 0x000900 }, /* 07B2-0900 */ { 0x000904, 0x000904 }, /* 0904 */ { 0x00093A, 0x00093B }, /* 093A-093B */ { 0x00094E, 0x00094F }, /* 094E-094F */ { 0x000955, 0x000957 }, /* 0955-0957 */ { 0x000971, 0x000980 }, /* 0971-0980 */ { 0x000984, 0x000984 }, /* 0984 */ { 0x00098D, 0x00098E }, /* 098D-098E */ { 0x000991, 0x000992 }, /* 0991-0992 */ { 0x0009A9, 0x0009A9 }, /* 09A9 */ { 0x0009B1, 0x0009B1 }, /* 09B1 */ { 0x0009B3, 0x0009B5 }, /* 09B3-09B5 */ { 0x0009BA, 0x0009BB }, /* 09BA-09BB */ { 0x0009BD, 0x0009BD }, /* 09BD */ { 0x0009C5, 0x0009C6 }, /* 09C5-09C6 */ { 0x0009C9, 0x0009CA }, /* 09C9-09CA */ { 0x0009CE, 0x0009D6 }, /* 09CE-09D6 */ { 0x0009D8, 0x0009DB }, /* 09D8-09DB */ { 0x0009DE, 0x0009DE }, /* 09DE */ { 0x0009E4, 0x0009E5 }, /* 09E4-09E5 */ { 0x0009FB, 0x000A01 }, /* 09FB-0A01 */ { 0x000A03, 0x000A04 }, /* 0A03-0A04 */ { 0x000A0B, 0x000A0E }, /* 0A0B-0A0E */ { 0x000A11, 0x000A12 }, /* 0A11-0A12 */ { 0x000A29, 0x000A29 }, /* 0A29 */ { 0x000A31, 0x000A31 }, /* 0A31 */ { 0x000A34, 0x000A34 }, /* 0A34 */ { 0x000A37, 0x000A37 }, /* 0A37 */ { 0x000A3A, 0x000A3B }, /* 0A3A-0A3B */ { 0x000A3D, 0x000A3D }, /* 0A3D */ { 0x000A43, 0x000A46 }, /* 0A43-0A46 */ { 0x000A49, 0x000A4A }, /* 0A49-0A4A */ { 0x000A4E, 0x000A58 }, /* 0A4E-0A58 */ { 0x000A5D, 0x000A5D }, /* 0A5D */ { 0x000A5F, 0x000A65 }, /* 0A5F-0A65 */ { 0x000A75, 0x000A80 }, /* 0A75-0A80 */ { 0x000A84, 0x000A84 }, /* 0A84 */ { 0x000A8C, 0x000A8C }, /* 0A8C */ { 0x000A8E, 0x000A8E }, /* 0A8E */ { 0x000A92, 0x000A92 }, /* 0A92 */ { 0x000AA9, 0x000AA9 }, /* 0AA9 */ { 0x000AB1, 0x000AB1 }, /* 0AB1 */ { 0x000AB4, 0x000AB4 }, /* 0AB4 */ { 0x000ABA, 0x000ABB }, /* 0ABA-0ABB */ { 0x000AC6, 0x000AC6 }, /* 0AC6 */ { 0x000ACA, 0x000ACA }, /* 0ACA */ { 0x000ACE, 0x000ACF }, /* 0ACE-0ACF */ { 0x000AD1, 0x000ADF }, /* 0AD1-0ADF */ { 0x000AE1, 0x000AE5 }, /* 0AE1-0AE5 */ { 0x000AF0, 0x000B00 }, /* 0AF0-0B00 */ { 0x000B04, 0x000B04 }, /* 0B04 */ { 0x000B0D, 0x000B0E }, /* 0B0D-0B0E */ { 0x000B11, 0x000B12 }, /* 0B11-0B12 */ { 0x000B29, 0x000B29 }, /* 0B29 */ { 0x000B31, 0x000B31 }, /* 0B31 */ { 0x000B34, 0x000B35 }, /* 0B34-0B35 */ { 0x000B3A, 0x000B3B }, /* 0B3A-0B3B */ { 0x000B44, 0x000B46 }, /* 0B44-0B46 */ { 0x000B49, 0x000B4A }, /* 0B49-0B4A */ { 0x000B4E, 0x000B55 }, /* 0B4E-0B55 */ { 0x000B58, 0x000B5B }, /* 0B58-0B5B */ { 0x000B5E, 0x000B5E }, /* 0B5E */ { 0x000B62, 0x000B65 }, /* 0B62-0B65 */ { 0x000B71, 0x000B81 }, /* 0B71-0B81 */ { 0x000B84, 0x000B84 }, /* 0B84 */ { 0x000B8B, 0x000B8D }, /* 0B8B-0B8D */ { 0x000B91, 0x000B91 }, /* 0B91 */ { 0x000B96, 0x000B98 }, /* 0B96-0B98 */ { 0x000B9B, 0x000B9B }, /* 0B9B */ { 0x000B9D, 0x000B9D }, /* 0B9D */ { 0x000BA0, 0x000BA2 }, /* 0BA0-0BA2 */ { 0x000BA5, 0x000BA7 }, /* 0BA5-0BA7 */ { 0x000BAB, 0x000BAD }, /* 0BAB-0BAD */ { 0x000BB6, 0x000BB6 }, /* 0BB6 */ { 0x000BBA, 0x000BBD }, /* 0BBA-0BBD */ { 0x000BC3, 0x000BC5 }, /* 0BC3-0BC5 */ { 0x000BC9, 0x000BC9 }, /* 0BC9 */ { 0x000BCE, 0x000BD6 }, /* 0BCE-0BD6 */ { 0x000BD8, 0x000BE6 }, /* 0BD8-0BE6 */ { 0x000BF3, 0x000C00 }, /* 0BF3-0C00 */ { 0x000C04, 0x000C04 }, /* 0C04 */ { 0x000C0D, 0x000C0D }, /* 0C0D */ { 0x000C11, 0x000C11 }, /* 0C11 */ { 0x000C29, 0x000C29 }, /* 0C29 */ { 0x000C34, 0x000C34 }, /* 0C34 */ { 0x000C3A, 0x000C3D }, /* 0C3A-0C3D */ { 0x000C45, 0x000C45 }, /* 0C45 */ { 0x000C49, 0x000C49 }, /* 0C49 */ { 0x000C4E, 0x000C54 }, /* 0C4E-0C54 */ { 0x000C57, 0x000C5F }, /* 0C57-0C5F */ { 0x000C62, 0x000C65 }, /* 0C62-0C65 */ { 0x000C70, 0x000C81 }, /* 0C70-0C81 */ { 0x000C84, 0x000C84 }, /* 0C84 */ { 0x000C8D, 0x000C8D }, /* 0C8D */ { 0x000C91, 0x000C91 }, /* 0C91 */ { 0x000CA9, 0x000CA9 }, /* 0CA9 */ { 0x000CB4, 0x000CB4 }, /* 0CB4 */ { 0x000CBA, 0x000CBD }, /* 0CBA-0CBD */ { 0x000CC5, 0x000CC5 }, /* 0CC5 */ { 0x000CC9, 0x000CC9 }, /* 0CC9 */ { 0x000CCE, 0x000CD4 }, /* 0CCE-0CD4 */ { 0x000CD7, 0x000CDD }, /* 0CD7-0CDD */ { 0x000CDF, 0x000CDF }, /* 0CDF */ { 0x000CE2, 0x000CE5 }, /* 0CE2-0CE5 */ { 0x000CF0, 0x000D01 }, /* 0CF0-0D01 */ { 0x000D04, 0x000D04 }, /* 0D04 */ { 0x000D0D, 0x000D0D }, /* 0D0D */ { 0x000D11, 0x000D11 }, /* 0D11 */ { 0x000D29, 0x000D29 }, /* 0D29 */ { 0x000D3A, 0x000D3D }, /* 0D3A-0D3D */ { 0x000D44, 0x000D45 }, /* 0D44-0D45 */ { 0x000D49, 0x000D49 }, /* 0D49 */ { 0x000D4E, 0x000D56 }, /* 0D4E-0D56 */ { 0x000D58, 0x000D5F }, /* 0D58-0D5F */ { 0x000D62, 0x000D65 }, /* 0D62-0D65 */ { 0x000D70, 0x000D81 }, /* 0D70-0D81 */ { 0x000D84, 0x000D84 }, /* 0D84 */ { 0x000D97, 0x000D99 }, /* 0D97-0D99 */ { 0x000DB2, 0x000DB2 }, /* 0DB2 */ { 0x000DBC, 0x000DBC }, /* 0DBC */ { 0x000DBE, 0x000DBF }, /* 0DBE-0DBF */ { 0x000DC7, 0x000DC9 }, /* 0DC7-0DC9 */ { 0x000DCB, 0x000DCE }, /* 0DCB-0DCE */ { 0x000DD5, 0x000DD5 }, /* 0DD5 */ { 0x000DD7, 0x000DD7 }, /* 0DD7 */ { 0x000DE0, 0x000DF1 }, /* 0DE0-0DF1 */ { 0x000DF5, 0x000E00 }, /* 0DF5-0E00 */ { 0x000E3B, 0x000E3E }, /* 0E3B-0E3E */ { 0x000E5C, 0x000E80 }, /* 0E5C-0E80 */ { 0x000E83, 0x000E83 }, /* 0E83 */ { 0x000E85, 0x000E86 }, /* 0E85-0E86 */ { 0x000E89, 0x000E89 }, /* 0E89 */ { 0x000E8B, 0x000E8C }, /* 0E8B-0E8C */ { 0x000E8E, 0x000E93 }, /* 0E8E-0E93 */ { 0x000E98, 0x000E98 }, /* 0E98 */ { 0x000EA0, 0x000EA0 }, /* 0EA0 */ { 0x000EA4, 0x000EA4 }, /* 0EA4 */ { 0x000EA6, 0x000EA6 }, /* 0EA6 */ { 0x000EA8, 0x000EA9 }, /* 0EA8-0EA9 */ { 0x000EAC, 0x000EAC }, /* 0EAC */ { 0x000EBA, 0x000EBA }, /* 0EBA */ { 0x000EBE, 0x000EBF }, /* 0EBE-0EBF */ { 0x000EC5, 0x000EC5 }, /* 0EC5 */ { 0x000EC7, 0x000EC7 }, /* 0EC7 */ { 0x000ECE, 0x000ECF }, /* 0ECE-0ECF */ { 0x000EDA, 0x000EDB }, /* 0EDA-0EDB */ { 0x000EDE, 0x000EFF }, /* 0EDE-0EFF */ { 0x000F48, 0x000F48 }, /* 0F48 */ { 0x000F6B, 0x000F70 }, /* 0F6B-0F70 */ { 0x000F8C, 0x000F8F }, /* 0F8C-0F8F */ { 0x000F98, 0x000F98 }, /* 0F98 */ { 0x000FBD, 0x000FBD }, /* 0FBD */ { 0x000FCD, 0x000FCE }, /* 0FCD-0FCE */ { 0x000FD0, 0x000FFF }, /* 0FD0-0FFF */ { 0x001022, 0x001022 }, /* 1022 */ { 0x001028, 0x001028 }, /* 1028 */ { 0x00102B, 0x00102B }, /* 102B */ { 0x001033, 0x001035 }, /* 1033-1035 */ { 0x00103A, 0x00103F }, /* 103A-103F */ { 0x00105A, 0x00109F }, /* 105A-109F */ { 0x0010C6, 0x0010CF }, /* 10C6-10CF */ { 0x0010F9, 0x0010FA }, /* 10F9-10FA */ { 0x0010FC, 0x0010FF }, /* 10FC-10FF */ { 0x00115A, 0x00115E }, /* 115A-115E */ { 0x0011A3, 0x0011A7 }, /* 11A3-11A7 */ { 0x0011FA, 0x0011FF }, /* 11FA-11FF */ { 0x001207, 0x001207 }, /* 1207 */ { 0x001247, 0x001247 }, /* 1247 */ { 0x001249, 0x001249 }, /* 1249 */ { 0x00124E, 0x00124F }, /* 124E-124F */ { 0x001257, 0x001257 }, /* 1257 */ { 0x001259, 0x001259 }, /* 1259 */ { 0x00125E, 0x00125F }, /* 125E-125F */ { 0x001287, 0x001287 }, /* 1287 */ { 0x001289, 0x001289 }, /* 1289 */ { 0x00128E, 0x00128F }, /* 128E-128F */ { 0x0012AF, 0x0012AF }, /* 12AF */ { 0x0012B1, 0x0012B1 }, /* 12B1 */ { 0x0012B6, 0x0012B7 }, /* 12B6-12B7 */ { 0x0012BF, 0x0012BF }, /* 12BF */ { 0x0012C1, 0x0012C1 }, /* 12C1 */ { 0x0012C6, 0x0012C7 }, /* 12C6-12C7 */ { 0x0012CF, 0x0012CF }, /* 12CF */ { 0x0012D7, 0x0012D7 }, /* 12D7 */ { 0x0012EF, 0x0012EF }, /* 12EF */ { 0x00130F, 0x00130F }, /* 130F */ { 0x001311, 0x001311 }, /* 1311 */ { 0x001316, 0x001317 }, /* 1316-1317 */ { 0x00131F, 0x00131F }, /* 131F */ { 0x001347, 0x001347 }, /* 1347 */ { 0x00135B, 0x001360 }, /* 135B-1360 */ { 0x00137D, 0x00139F }, /* 137D-139F */ { 0x0013F5, 0x001400 }, /* 13F5-1400 */ { 0x001677, 0x00167F }, /* 1677-167F */ { 0x00169D, 0x00169F }, /* 169D-169F */ { 0x0016F1, 0x0016FF }, /* 16F1-16FF */ { 0x00170D, 0x00170D }, /* 170D */ { 0x001715, 0x00171F }, /* 1715-171F */ { 0x001737, 0x00173F }, /* 1737-173F */ { 0x001754, 0x00175F }, /* 1754-175F */ { 0x00176D, 0x00176D }, /* 176D */ { 0x001771, 0x001771 }, /* 1771 */ { 0x001774, 0x00177F }, /* 1774-177F */ { 0x0017DD, 0x0017DF }, /* 17DD-17DF */ { 0x0017EA, 0x0017FF }, /* 17EA-17FF */ { 0x00180F, 0x00180F }, /* 180F */ { 0x00181A, 0x00181F }, /* 181A-181F */ { 0x001878, 0x00187F }, /* 1878-187F */ { 0x0018AA, 0x001DFF }, /* 18AA-1DFF */ { 0x001E9C, 0x001E9F }, /* 1E9C-1E9F */ { 0x001EFA, 0x001EFF }, /* 1EFA-1EFF */ { 0x001F16, 0x001F17 }, /* 1F16-1F17 */ { 0x001F1E, 0x001F1F }, /* 1F1E-1F1F */ { 0x001F46, 0x001F47 }, /* 1F46-1F47 */ { 0x001F4E, 0x001F4F }, /* 1F4E-1F4F */ { 0x001F58, 0x001F58 }, /* 1F58 */ { 0x001F5A, 0x001F5A }, /* 1F5A */ { 0x001F5C, 0x001F5C }, /* 1F5C */ { 0x001F5E, 0x001F5E }, /* 1F5E */ { 0x001F7E, 0x001F7F }, /* 1F7E-1F7F */ { 0x001FB5, 0x001FB5 }, /* 1FB5 */ { 0x001FC5, 0x001FC5 }, /* 1FC5 */ { 0x001FD4, 0x001FD5 }, /* 1FD4-1FD5 */ { 0x001FDC, 0x001FDC }, /* 1FDC */ { 0x001FF0, 0x001FF1 }, /* 1FF0-1FF1 */ { 0x001FF5, 0x001FF5 }, /* 1FF5 */ { 0x001FFF, 0x001FFF }, /* 1FFF */ { 0x002053, 0x002056 }, /* 2053-2056 */ { 0x002058, 0x00205E }, /* 2058-205E */ { 0x002064, 0x002069 }, /* 2064-2069 */ { 0x002072, 0x002073 }, /* 2072-2073 */ { 0x00208F, 0x00209F }, /* 208F-209F */ { 0x0020B2, 0x0020CF }, /* 20B2-20CF */ { 0x0020EB, 0x0020FF }, /* 20EB-20FF */ { 0x00213B, 0x00213C }, /* 213B-213C */ { 0x00214C, 0x002152 }, /* 214C-2152 */ { 0x002184, 0x00218F }, /* 2184-218F */ { 0x0023CF, 0x0023FF }, /* 23CF-23FF */ { 0x002427, 0x00243F }, /* 2427-243F */ { 0x00244B, 0x00245F }, /* 244B-245F */ { 0x0024FF, 0x0024FF }, /* 24FF */ { 0x002614, 0x002615 }, /* 2614-2615 */ { 0x002618, 0x002618 }, /* 2618 */ { 0x00267E, 0x00267F }, /* 267E-267F */ { 0x00268A, 0x002700 }, /* 268A-2700 */ { 0x002705, 0x002705 }, /* 2705 */ { 0x00270A, 0x00270B }, /* 270A-270B */ { 0x002728, 0x002728 }, /* 2728 */ { 0x00274C, 0x00274C }, /* 274C */ { 0x00274E, 0x00274E }, /* 274E */ { 0x002753, 0x002755 }, /* 2753-2755 */ { 0x002757, 0x002757 }, /* 2757 */ { 0x00275F, 0x002760 }, /* 275F-2760 */ { 0x002795, 0x002797 }, /* 2795-2797 */ { 0x0027B0, 0x0027B0 }, /* 27B0 */ { 0x0027BF, 0x0027CF }, /* 27BF-27CF */ { 0x0027EC, 0x0027EF }, /* 27EC-27EF */ { 0x002B00, 0x002E7F }, /* 2B00-2E7F */ { 0x002E9A, 0x002E9A }, /* 2E9A */ { 0x002EF4, 0x002EFF }, /* 2EF4-2EFF */ { 0x002FD6, 0x002FEF }, /* 2FD6-2FEF */ { 0x002FFC, 0x002FFF }, /* 2FFC-2FFF */ { 0x003040, 0x003040 }, /* 3040 */ { 0x003097, 0x003098 }, /* 3097-3098 */ { 0x003100, 0x003104 }, /* 3100-3104 */ { 0x00312D, 0x003130 }, /* 312D-3130 */ { 0x00318F, 0x00318F }, /* 318F */ { 0x0031B8, 0x0031EF }, /* 31B8-31EF */ { 0x00321D, 0x00321F }, /* 321D-321F */ { 0x003244, 0x003250 }, /* 3244-3250 */ { 0x00327C, 0x00327E }, /* 327C-327E */ { 0x0032CC, 0x0032CF }, /* 32CC-32CF */ { 0x0032FF, 0x0032FF }, /* 32FF */ { 0x003377, 0x00337A }, /* 3377-337A */ { 0x0033DE, 0x0033DF }, /* 33DE-33DF */ { 0x0033FF, 0x0033FF }, /* 33FF */ { 0x004DB6, 0x004DFF }, /* 4DB6-4DFF */ { 0x009FA6, 0x009FFF }, /* 9FA6-9FFF */ { 0x00A48D, 0x00A48F }, /* A48D-A48F */ { 0x00A4C7, 0x00ABFF }, /* A4C7-ABFF */ { 0x00D7A4, 0x00D7FF }, /* D7A4-D7FF */ { 0x00FA2E, 0x00FA2F }, /* FA2E-FA2F */ { 0x00FA6B, 0x00FAFF }, /* FA6B-FAFF */ { 0x00FB07, 0x00FB12 }, /* FB07-FB12 */ { 0x00FB18, 0x00FB1C }, /* FB18-FB1C */ { 0x00FB37, 0x00FB37 }, /* FB37 */ { 0x00FB3D, 0x00FB3D }, /* FB3D */ { 0x00FB3F, 0x00FB3F }, /* FB3F */ { 0x00FB42, 0x00FB42 }, /* FB42 */ { 0x00FB45, 0x00FB45 }, /* FB45 */ { 0x00FBB2, 0x00FBD2 }, /* FBB2-FBD2 */ { 0x00FD40, 0x00FD4F }, /* FD40-FD4F */ { 0x00FD90, 0x00FD91 }, /* FD90-FD91 */ { 0x00FDC8, 0x00FDCF }, /* FDC8-FDCF */ { 0x00FDFD, 0x00FDFF }, /* FDFD-FDFF */ { 0x00FE10, 0x00FE1F }, /* FE10-FE1F */ { 0x00FE24, 0x00FE2F }, /* FE24-FE2F */ { 0x00FE47, 0x00FE48 }, /* FE47-FE48 */ { 0x00FE53, 0x00FE53 }, /* FE53 */ { 0x00FE67, 0x00FE67 }, /* FE67 */ { 0x00FE6C, 0x00FE6F }, /* FE6C-FE6F */ { 0x00FE75, 0x00FE75 }, /* FE75 */ { 0x00FEFD, 0x00FEFE }, /* FEFD-FEFE */ { 0x00FF00, 0x00FF00 }, /* FF00 */ { 0x00FFBF, 0x00FFC1 }, /* FFBF-FFC1 */ { 0x00FFC8, 0x00FFC9 }, /* FFC8-FFC9 */ { 0x00FFD0, 0x00FFD1 }, /* FFD0-FFD1 */ { 0x00FFD8, 0x00FFD9 }, /* FFD8-FFD9 */ { 0x00FFDD, 0x00FFDF }, /* FFDD-FFDF */ { 0x00FFE7, 0x00FFE7 }, /* FFE7 */ { 0x00FFEF, 0x00FFF8 }, /* FFEF-FFF8 */ { 0x010000, 0x0102FF }, /* 10000-102FF */ { 0x01031F, 0x01031F }, /* 1031F */ { 0x010324, 0x01032F }, /* 10324-1032F */ { 0x01034B, 0x0103FF }, /* 1034B-103FF */ { 0x010426, 0x010427 }, /* 10426-10427 */ { 0x01044E, 0x01CFFF }, /* 1044E-1CFFF */ { 0x01D0F6, 0x01D0FF }, /* 1D0F6-1D0FF */ { 0x01D127, 0x01D129 }, /* 1D127-1D129 */ { 0x01D1DE, 0x01D3FF }, /* 1D1DE-1D3FF */ { 0x01D455, 0x01D455 }, /* 1D455 */ { 0x01D49D, 0x01D49D }, /* 1D49D */ { 0x01D4A0, 0x01D4A1 }, /* 1D4A0-1D4A1 */ { 0x01D4A3, 0x01D4A4 }, /* 1D4A3-1D4A4 */ { 0x01D4A7, 0x01D4A8 }, /* 1D4A7-1D4A8 */ { 0x01D4AD, 0x01D4AD }, /* 1D4AD */ { 0x01D4BA, 0x01D4BA }, /* 1D4BA */ { 0x01D4BC, 0x01D4BC }, /* 1D4BC */ { 0x01D4C1, 0x01D4C1 }, /* 1D4C1 */ { 0x01D4C4, 0x01D4C4 }, /* 1D4C4 */ { 0x01D506, 0x01D506 }, /* 1D506 */ { 0x01D50B, 0x01D50C }, /* 1D50B-1D50C */ { 0x01D515, 0x01D515 }, /* 1D515 */ { 0x01D51D, 0x01D51D }, /* 1D51D */ { 0x01D53A, 0x01D53A }, /* 1D53A */ { 0x01D53F, 0x01D53F }, /* 1D53F */ { 0x01D545, 0x01D545 }, /* 1D545 */ { 0x01D547, 0x01D549 }, /* 1D547-1D549 */ { 0x01D551, 0x01D551 }, /* 1D551 */ { 0x01D6A4, 0x01D6A7 }, /* 1D6A4-1D6A7 */ { 0x01D7CA, 0x01D7CD }, /* 1D7CA-1D7CD */ { 0x01D800, 0x01FFFD }, /* 1D800-1FFFD */ { 0x02A6D7, 0x02F7FF }, /* 2A6D7-2F7FF */ { 0x02FA1E, 0x02FFFD }, /* 2FA1E-2FFFD */ { 0x030000, 0x03FFFD }, /* 30000-3FFFD */ { 0x040000, 0x04FFFD }, /* 40000-4FFFD */ { 0x050000, 0x05FFFD }, /* 50000-5FFFD */ { 0x060000, 0x06FFFD }, /* 60000-6FFFD */ { 0x070000, 0x07FFFD }, /* 70000-7FFFD */ { 0x080000, 0x08FFFD }, /* 80000-8FFFD */ { 0x090000, 0x09FFFD }, /* 90000-9FFFD */ { 0x0A0000, 0x0AFFFD }, /* A0000-AFFFD */ { 0x0B0000, 0x0BFFFD }, /* B0000-BFFFD */ { 0x0C0000, 0x0CFFFD }, /* C0000-CFFFD */ { 0x0D0000, 0x0DFFFD }, /* D0000-DFFFD */ { 0x0E0000, 0x0E0000 }, /* E0000 */ { 0x0E0002, 0x0E001F }, /* E0002-E001F */ { 0x0E0080, 0x0EFFFD }, /* E0080-EFFFD */ { 0 }, }; /* * E0080-EFFFD * */ const Stringprep_table_element stringprep_rfc3454_B_1[] = { { 0x0000AD, 0x0000AD }, /* 00AD; ; Map to nothing */ { 0x00034F, 0x00034F }, /* 034F; ; Map to nothing */ { 0x001806, 0x001806 }, /* 1806; ; Map to nothing */ { 0x00180B, 0x00180B }, /* 180B; ; Map to nothing */ { 0x00180C, 0x00180C }, /* 180C; ; Map to nothing */ { 0x00180D, 0x00180D }, /* 180D; ; Map to nothing */ { 0x00200B, 0x00200B }, /* 200B; ; Map to nothing */ { 0x00200C, 0x00200C }, /* 200C; ; Map to nothing */ { 0x00200D, 0x00200D }, /* 200D; ; Map to nothing */ { 0x002060, 0x002060 }, /* 2060; ; Map to nothing */ { 0x00FE00, 0x00FE00 }, /* FE00; ; Map to nothing */ { 0x00FE01, 0x00FE01 }, /* FE01; ; Map to nothing */ { 0x00FE02, 0x00FE02 }, /* FE02; ; Map to nothing */ { 0x00FE03, 0x00FE03 }, /* FE03; ; Map to nothing */ { 0x00FE04, 0x00FE04 }, /* FE04; ; Map to nothing */ { 0x00FE05, 0x00FE05 }, /* FE05; ; Map to nothing */ { 0x00FE06, 0x00FE06 }, /* FE06; ; Map to nothing */ { 0x00FE07, 0x00FE07 }, /* FE07; ; Map to nothing */ { 0x00FE08, 0x00FE08 }, /* FE08; ; Map to nothing */ { 0x00FE09, 0x00FE09 }, /* FE09; ; Map to nothing */ { 0x00FE0A, 0x00FE0A }, /* FE0A; ; Map to nothing */ { 0x00FE0B, 0x00FE0B }, /* FE0B; ; Map to nothing */ { 0x00FE0C, 0x00FE0C }, /* FE0C; ; Map to nothing */ { 0x00FE0D, 0x00FE0D }, /* FE0D; ; Map to nothing */ { 0x00FE0E, 0x00FE0E }, /* FE0E; ; Map to nothing */ { 0x00FE0F, 0x00FE0F }, /* FE0F; ; Map to nothing */ { 0x00FEFF, 0x00FEFF }, /* FEFF; ; Map to nothing */ { 0 }, }; /* * FEFF; ; Map to nothing * */ const Stringprep_table_element stringprep_rfc3454_B_2[] = { { 0x000041, 0x000041, { 0x000061 }}, /* 0041; 0061; Case map */ { 0x000042, 0x000042, { 0x000062 }}, /* 0042; 0062; Case map */ { 0x000043, 0x000043, { 0x000063 }}, /* 0043; 0063; Case map */ { 0x000044, 0x000044, { 0x000064 }}, /* 0044; 0064; Case map */ { 0x000045, 0x000045, { 0x000065 }}, /* 0045; 0065; Case map */ { 0x000046, 0x000046, { 0x000066 }}, /* 0046; 0066; Case map */ { 0x000047, 0x000047, { 0x000067 }}, /* 0047; 0067; Case map */ { 0x000048, 0x000048, { 0x000068 }}, /* 0048; 0068; Case map */ { 0x000049, 0x000049, { 0x000069 }}, /* 0049; 0069; Case map */ { 0x00004A, 0x00004A, { 0x00006A }}, /* 004A; 006A; Case map */ { 0x00004B, 0x00004B, { 0x00006B }}, /* 004B; 006B; Case map */ { 0x00004C, 0x00004C, { 0x00006C }}, /* 004C; 006C; Case map */ { 0x00004D, 0x00004D, { 0x00006D }}, /* 004D; 006D; Case map */ { 0x00004E, 0x00004E, { 0x00006E }}, /* 004E; 006E; Case map */ { 0x00004F, 0x00004F, { 0x00006F }}, /* 004F; 006F; Case map */ { 0x000050, 0x000050, { 0x000070 }}, /* 0050; 0070; Case map */ { 0x000051, 0x000051, { 0x000071 }}, /* 0051; 0071; Case map */ { 0x000052, 0x000052, { 0x000072 }}, /* 0052; 0072; Case map */ { 0x000053, 0x000053, { 0x000073 }}, /* 0053; 0073; Case map */ { 0x000054, 0x000054, { 0x000074 }}, /* 0054; 0074; Case map */ { 0x000055, 0x000055, { 0x000075 }}, /* 0055; 0075; Case map */ { 0x000056, 0x000056, { 0x000076 }}, /* 0056; 0076; Case map */ { 0x000057, 0x000057, { 0x000077 }}, /* 0057; 0077; Case map */ { 0x000058, 0x000058, { 0x000078 }}, /* 0058; 0078; Case map */ { 0x000059, 0x000059, { 0x000079 }}, /* 0059; 0079; Case map */ { 0x00005A, 0x00005A, { 0x00007A }}, /* 005A; 007A; Case map */ { 0x0000B5, 0x0000B5, { 0x0003BC }}, /* 00B5; 03BC; Case map */ { 0x0000C0, 0x0000C0, { 0x0000E0 }}, /* 00C0; 00E0; Case map */ { 0x0000C1, 0x0000C1, { 0x0000E1 }}, /* 00C1; 00E1; Case map */ { 0x0000C2, 0x0000C2, { 0x0000E2 }}, /* 00C2; 00E2; Case map */ { 0x0000C3, 0x0000C3, { 0x0000E3 }}, /* 00C3; 00E3; Case map */ { 0x0000C4, 0x0000C4, { 0x0000E4 }}, /* 00C4; 00E4; Case map */ { 0x0000C5, 0x0000C5, { 0x0000E5 }}, /* 00C5; 00E5; Case map */ { 0x0000C6, 0x0000C6, { 0x0000E6 }}, /* 00C6; 00E6; Case map */ { 0x0000C7, 0x0000C7, { 0x0000E7 }}, /* 00C7; 00E7; Case map */ { 0x0000C8, 0x0000C8, { 0x0000E8 }}, /* 00C8; 00E8; Case map */ { 0x0000C9, 0x0000C9, { 0x0000E9 }}, /* 00C9; 00E9; Case map */ { 0x0000CA, 0x0000CA, { 0x0000EA }}, /* 00CA; 00EA; Case map */ { 0x0000CB, 0x0000CB, { 0x0000EB }}, /* 00CB; 00EB; Case map */ { 0x0000CC, 0x0000CC, { 0x0000EC }}, /* 00CC; 00EC; Case map */ { 0x0000CD, 0x0000CD, { 0x0000ED }}, /* 00CD; 00ED; Case map */ { 0x0000CE, 0x0000CE, { 0x0000EE }}, /* 00CE; 00EE; Case map */ { 0x0000CF, 0x0000CF, { 0x0000EF }}, /* 00CF; 00EF; Case map */ { 0x0000D0, 0x0000D0, { 0x0000F0 }}, /* 00D0; 00F0; Case map */ { 0x0000D1, 0x0000D1, { 0x0000F1 }}, /* 00D1; 00F1; Case map */ { 0x0000D2, 0x0000D2, { 0x0000F2 }}, /* 00D2; 00F2; Case map */ { 0x0000D3, 0x0000D3, { 0x0000F3 }}, /* 00D3; 00F3; Case map */ { 0x0000D4, 0x0000D4, { 0x0000F4 }}, /* 00D4; 00F4; Case map */ { 0x0000D5, 0x0000D5, { 0x0000F5 }}, /* 00D5; 00F5; Case map */ { 0x0000D6, 0x0000D6, { 0x0000F6 }}, /* 00D6; 00F6; Case map */ { 0x0000D8, 0x0000D8, { 0x0000F8 }}, /* 00D8; 00F8; Case map */ { 0x0000D9, 0x0000D9, { 0x0000F9 }}, /* 00D9; 00F9; Case map */ { 0x0000DA, 0x0000DA, { 0x0000FA }}, /* 00DA; 00FA; Case map */ { 0x0000DB, 0x0000DB, { 0x0000FB }}, /* 00DB; 00FB; Case map */ { 0x0000DC, 0x0000DC, { 0x0000FC }}, /* 00DC; 00FC; Case map */ { 0x0000DD, 0x0000DD, { 0x0000FD }}, /* 00DD; 00FD; Case map */ { 0x0000DE, 0x0000DE, { 0x0000FE }}, /* 00DE; 00FE; Case map */ { 0x0000DF, 0x0000DF, { 0x000073, /* 00DF; 0073 0073; Case map */ 0x000073 }}, { 0x000100, 0x000100, { 0x000101 }}, /* 0100; 0101; Case map */ { 0x000102, 0x000102, { 0x000103 }}, /* 0102; 0103; Case map */ { 0x000104, 0x000104, { 0x000105 }}, /* 0104; 0105; Case map */ { 0x000106, 0x000106, { 0x000107 }}, /* 0106; 0107; Case map */ { 0x000108, 0x000108, { 0x000109 }}, /* 0108; 0109; Case map */ { 0x00010A, 0x00010A, { 0x00010B }}, /* 010A; 010B; Case map */ { 0x00010C, 0x00010C, { 0x00010D }}, /* 010C; 010D; Case map */ { 0x00010E, 0x00010E, { 0x00010F }}, /* 010E; 010F; Case map */ { 0x000110, 0x000110, { 0x000111 }}, /* 0110; 0111; Case map */ { 0x000112, 0x000112, { 0x000113 }}, /* 0112; 0113; Case map */ { 0x000114, 0x000114, { 0x000115 }}, /* 0114; 0115; Case map */ { 0x000116, 0x000116, { 0x000117 }}, /* 0116; 0117; Case map */ { 0x000118, 0x000118, { 0x000119 }}, /* 0118; 0119; Case map */ { 0x00011A, 0x00011A, { 0x00011B }}, /* 011A; 011B; Case map */ { 0x00011C, 0x00011C, { 0x00011D }}, /* 011C; 011D; Case map */ { 0x00011E, 0x00011E, { 0x00011F }}, /* 011E; 011F; Case map */ { 0x000120, 0x000120, { 0x000121 }}, /* 0120; 0121; Case map */ { 0x000122, 0x000122, { 0x000123 }}, /* 0122; 0123; Case map */ { 0x000124, 0x000124, { 0x000125 }}, /* 0124; 0125; Case map */ { 0x000126, 0x000126, { 0x000127 }}, /* 0126; 0127; Case map */ { 0x000128, 0x000128, { 0x000129 }}, /* 0128; 0129; Case map */ { 0x00012A, 0x00012A, { 0x00012B }}, /* 012A; 012B; Case map */ { 0x00012C, 0x00012C, { 0x00012D }}, /* 012C; 012D; Case map */ { 0x00012E, 0x00012E, { 0x00012F }}, /* 012E; 012F; Case map */ { 0x000130, 0x000130, { 0x000069, /* 0130; 0069 0307; Case map */ 0x000307 }}, { 0x000132, 0x000132, { 0x000133 }}, /* 0132; 0133; Case map */ { 0x000134, 0x000134, { 0x000135 }}, /* 0134; 0135; Case map */ { 0x000136, 0x000136, { 0x000137 }}, /* 0136; 0137; Case map */ { 0x000139, 0x000139, { 0x00013A }}, /* 0139; 013A; Case map */ { 0x00013B, 0x00013B, { 0x00013C }}, /* 013B; 013C; Case map */ { 0x00013D, 0x00013D, { 0x00013E }}, /* 013D; 013E; Case map */ { 0x00013F, 0x00013F, { 0x000140 }}, /* 013F; 0140; Case map */ { 0x000141, 0x000141, { 0x000142 }}, /* 0141; 0142; Case map */ { 0x000143, 0x000143, { 0x000144 }}, /* 0143; 0144; Case map */ { 0x000145, 0x000145, { 0x000146 }}, /* 0145; 0146; Case map */ { 0x000147, 0x000147, { 0x000148 }}, /* 0147; 0148; Case map */ { 0x000149, 0x000149, { 0x0002BC, /* 0149; 02BC 006E; Case map */ 0x00006E }}, { 0x00014A, 0x00014A, { 0x00014B }}, /* 014A; 014B; Case map */ { 0x00014C, 0x00014C, { 0x00014D }}, /* 014C; 014D; Case map */ { 0x00014E, 0x00014E, { 0x00014F }}, /* 014E; 014F; Case map */ { 0x000150, 0x000150, { 0x000151 }}, /* 0150; 0151; Case map */ { 0x000152, 0x000152, { 0x000153 }}, /* 0152; 0153; Case map */ { 0x000154, 0x000154, { 0x000155 }}, /* 0154; 0155; Case map */ { 0x000156, 0x000156, { 0x000157 }}, /* 0156; 0157; Case map */ { 0x000158, 0x000158, { 0x000159 }}, /* 0158; 0159; Case map */ { 0x00015A, 0x00015A, { 0x00015B }}, /* 015A; 015B; Case map */ { 0x00015C, 0x00015C, { 0x00015D }}, /* 015C; 015D; Case map */ { 0x00015E, 0x00015E, { 0x00015F }}, /* 015E; 015F; Case map */ { 0x000160, 0x000160, { 0x000161 }}, /* 0160; 0161; Case map */ { 0x000162, 0x000162, { 0x000163 }}, /* 0162; 0163; Case map */ { 0x000164, 0x000164, { 0x000165 }}, /* 0164; 0165; Case map */ { 0x000166, 0x000166, { 0x000167 }}, /* 0166; 0167; Case map */ { 0x000168, 0x000168, { 0x000169 }}, /* 0168; 0169; Case map */ { 0x00016A, 0x00016A, { 0x00016B }}, /* 016A; 016B; Case map */ { 0x00016C, 0x00016C, { 0x00016D }}, /* 016C; 016D; Case map */ { 0x00016E, 0x00016E, { 0x00016F }}, /* 016E; 016F; Case map */ { 0x000170, 0x000170, { 0x000171 }}, /* 0170; 0171; Case map */ { 0x000172, 0x000172, { 0x000173 }}, /* 0172; 0173; Case map */ { 0x000174, 0x000174, { 0x000175 }}, /* 0174; 0175; Case map */ { 0x000176, 0x000176, { 0x000177 }}, /* 0176; 0177; Case map */ { 0x000178, 0x000178, { 0x0000FF }}, /* 0178; 00FF; Case map */ { 0x000179, 0x000179, { 0x00017A }}, /* 0179; 017A; Case map */ { 0x00017B, 0x00017B, { 0x00017C }}, /* 017B; 017C; Case map */ { 0x00017D, 0x00017D, { 0x00017E }}, /* 017D; 017E; Case map */ { 0x00017F, 0x00017F, { 0x000073 }}, /* 017F; 0073; Case map */ { 0x000181, 0x000181, { 0x000253 }}, /* 0181; 0253; Case map */ { 0x000182, 0x000182, { 0x000183 }}, /* 0182; 0183; Case map */ { 0x000184, 0x000184, { 0x000185 }}, /* 0184; 0185; Case map */ { 0x000186, 0x000186, { 0x000254 }}, /* 0186; 0254; Case map */ { 0x000187, 0x000187, { 0x000188 }}, /* 0187; 0188; Case map */ { 0x000189, 0x000189, { 0x000256 }}, /* 0189; 0256; Case map */ { 0x00018A, 0x00018A, { 0x000257 }}, /* 018A; 0257; Case map */ { 0x00018B, 0x00018B, { 0x00018C }}, /* 018B; 018C; Case map */ { 0x00018E, 0x00018E, { 0x0001DD }}, /* 018E; 01DD; Case map */ { 0x00018F, 0x00018F, { 0x000259 }}, /* 018F; 0259; Case map */ { 0x000190, 0x000190, { 0x00025B }}, /* 0190; 025B; Case map */ { 0x000191, 0x000191, { 0x000192 }}, /* 0191; 0192; Case map */ { 0x000193, 0x000193, { 0x000260 }}, /* 0193; 0260; Case map */ { 0x000194, 0x000194, { 0x000263 }}, /* 0194; 0263; Case map */ { 0x000196, 0x000196, { 0x000269 }}, /* 0196; 0269; Case map */ { 0x000197, 0x000197, { 0x000268 }}, /* 0197; 0268; Case map */ { 0x000198, 0x000198, { 0x000199 }}, /* 0198; 0199; Case map */ { 0x00019C, 0x00019C, { 0x00026F }}, /* 019C; 026F; Case map */ { 0x00019D, 0x00019D, { 0x000272 }}, /* 019D; 0272; Case map */ { 0x00019F, 0x00019F, { 0x000275 }}, /* 019F; 0275; Case map */ { 0x0001A0, 0x0001A0, { 0x0001A1 }}, /* 01A0; 01A1; Case map */ { 0x0001A2, 0x0001A2, { 0x0001A3 }}, /* 01A2; 01A3; Case map */ { 0x0001A4, 0x0001A4, { 0x0001A5 }}, /* 01A4; 01A5; Case map */ { 0x0001A6, 0x0001A6, { 0x000280 }}, /* 01A6; 0280; Case map */ { 0x0001A7, 0x0001A7, { 0x0001A8 }}, /* 01A7; 01A8; Case map */ { 0x0001A9, 0x0001A9, { 0x000283 }}, /* 01A9; 0283; Case map */ { 0x0001AC, 0x0001AC, { 0x0001AD }}, /* 01AC; 01AD; Case map */ { 0x0001AE, 0x0001AE, { 0x000288 }}, /* 01AE; 0288; Case map */ { 0x0001AF, 0x0001AF, { 0x0001B0 }}, /* 01AF; 01B0; Case map */ { 0x0001B1, 0x0001B1, { 0x00028A }}, /* 01B1; 028A; Case map */ { 0x0001B2, 0x0001B2, { 0x00028B }}, /* 01B2; 028B; Case map */ { 0x0001B3, 0x0001B3, { 0x0001B4 }}, /* 01B3; 01B4; Case map */ { 0x0001B5, 0x0001B5, { 0x0001B6 }}, /* 01B5; 01B6; Case map */ { 0x0001B7, 0x0001B7, { 0x000292 }}, /* 01B7; 0292; Case map */ { 0x0001B8, 0x0001B8, { 0x0001B9 }}, /* 01B8; 01B9; Case map */ { 0x0001BC, 0x0001BC, { 0x0001BD }}, /* 01BC; 01BD; Case map */ { 0x0001C4, 0x0001C4, { 0x0001C6 }}, /* 01C4; 01C6; Case map */ { 0x0001C5, 0x0001C5, { 0x0001C6 }}, /* 01C5; 01C6; Case map */ { 0x0001C7, 0x0001C7, { 0x0001C9 }}, /* 01C7; 01C9; Case map */ { 0x0001C8, 0x0001C8, { 0x0001C9 }}, /* 01C8; 01C9; Case map */ { 0x0001CA, 0x0001CA, { 0x0001CC }}, /* 01CA; 01CC; Case map */ { 0x0001CB, 0x0001CB, { 0x0001CC }}, /* 01CB; 01CC; Case map */ { 0x0001CD, 0x0001CD, { 0x0001CE }}, /* 01CD; 01CE; Case map */ { 0x0001CF, 0x0001CF, { 0x0001D0 }}, /* 01CF; 01D0; Case map */ { 0x0001D1, 0x0001D1, { 0x0001D2 }}, /* 01D1; 01D2; Case map */ { 0x0001D3, 0x0001D3, { 0x0001D4 }}, /* 01D3; 01D4; Case map */ { 0x0001D5, 0x0001D5, { 0x0001D6 }}, /* 01D5; 01D6; Case map */ { 0x0001D7, 0x0001D7, { 0x0001D8 }}, /* 01D7; 01D8; Case map */ { 0x0001D9, 0x0001D9, { 0x0001DA }}, /* 01D9; 01DA; Case map */ { 0x0001DB, 0x0001DB, { 0x0001DC }}, /* 01DB; 01DC; Case map */ { 0x0001DE, 0x0001DE, { 0x0001DF }}, /* 01DE; 01DF; Case map */ { 0x0001E0, 0x0001E0, { 0x0001E1 }}, /* 01E0; 01E1; Case map */ { 0x0001E2, 0x0001E2, { 0x0001E3 }}, /* 01E2; 01E3; Case map */ { 0x0001E4, 0x0001E4, { 0x0001E5 }}, /* 01E4; 01E5; Case map */ { 0x0001E6, 0x0001E6, { 0x0001E7 }}, /* 01E6; 01E7; Case map */ { 0x0001E8, 0x0001E8, { 0x0001E9 }}, /* 01E8; 01E9; Case map */ { 0x0001EA, 0x0001EA, { 0x0001EB }}, /* 01EA; 01EB; Case map */ { 0x0001EC, 0x0001EC, { 0x0001ED }}, /* 01EC; 01ED; Case map */ { 0x0001EE, 0x0001EE, { 0x0001EF }}, /* 01EE; 01EF; Case map */ { 0x0001F0, 0x0001F0, { 0x00006A, /* 01F0; 006A 030C; Case map */ 0x00030C }}, { 0x0001F1, 0x0001F1, { 0x0001F3 }}, /* 01F1; 01F3; Case map */ { 0x0001F2, 0x0001F2, { 0x0001F3 }}, /* 01F2; 01F3; Case map */ { 0x0001F4, 0x0001F4, { 0x0001F5 }}, /* 01F4; 01F5; Case map */ { 0x0001F6, 0x0001F6, { 0x000195 }}, /* 01F6; 0195; Case map */ { 0x0001F7, 0x0001F7, { 0x0001BF }}, /* 01F7; 01BF; Case map */ { 0x0001F8, 0x0001F8, { 0x0001F9 }}, /* 01F8; 01F9; Case map */ { 0x0001FA, 0x0001FA, { 0x0001FB }}, /* 01FA; 01FB; Case map */ { 0x0001FC, 0x0001FC, { 0x0001FD }}, /* 01FC; 01FD; Case map */ { 0x0001FE, 0x0001FE, { 0x0001FF }}, /* 01FE; 01FF; Case map */ { 0x000200, 0x000200, { 0x000201 }}, /* 0200; 0201; Case map */ { 0x000202, 0x000202, { 0x000203 }}, /* 0202; 0203; Case map */ { 0x000204, 0x000204, { 0x000205 }}, /* 0204; 0205; Case map */ { 0x000206, 0x000206, { 0x000207 }}, /* 0206; 0207; Case map */ { 0x000208, 0x000208, { 0x000209 }}, /* 0208; 0209; Case map */ { 0x00020A, 0x00020A, { 0x00020B }}, /* 020A; 020B; Case map */ { 0x00020C, 0x00020C, { 0x00020D }}, /* 020C; 020D; Case map */ { 0x00020E, 0x00020E, { 0x00020F }}, /* 020E; 020F; Case map */ { 0x000210, 0x000210, { 0x000211 }}, /* 0210; 0211; Case map */ { 0x000212, 0x000212, { 0x000213 }}, /* 0212; 0213; Case map */ { 0x000214, 0x000214, { 0x000215 }}, /* 0214; 0215; Case map */ { 0x000216, 0x000216, { 0x000217 }}, /* 0216; 0217; Case map */ { 0x000218, 0x000218, { 0x000219 }}, /* 0218; 0219; Case map */ { 0x00021A, 0x00021A, { 0x00021B }}, /* 021A; 021B; Case map */ { 0x00021C, 0x00021C, { 0x00021D }}, /* 021C; 021D; Case map */ { 0x00021E, 0x00021E, { 0x00021F }}, /* 021E; 021F; Case map */ { 0x000220, 0x000220, { 0x00019E }}, /* 0220; 019E; Case map */ { 0x000222, 0x000222, { 0x000223 }}, /* 0222; 0223; Case map */ { 0x000224, 0x000224, { 0x000225 }}, /* 0224; 0225; Case map */ { 0x000226, 0x000226, { 0x000227 }}, /* 0226; 0227; Case map */ { 0x000228, 0x000228, { 0x000229 }}, /* 0228; 0229; Case map */ { 0x00022A, 0x00022A, { 0x00022B }}, /* 022A; 022B; Case map */ { 0x00022C, 0x00022C, { 0x00022D }}, /* 022C; 022D; Case map */ { 0x00022E, 0x00022E, { 0x00022F }}, /* 022E; 022F; Case map */ { 0x000230, 0x000230, { 0x000231 }}, /* 0230; 0231; Case map */ { 0x000232, 0x000232, { 0x000233 }}, /* 0232; 0233; Case map */ { 0x000345, 0x000345, { 0x0003B9 }}, /* 0345; 03B9; Case map */ { 0x00037A, 0x00037A, { 0x000020, /* 037A; 0020 03B9; Additional folding */ 0x0003B9 }}, { 0x000386, 0x000386, { 0x0003AC }}, /* 0386; 03AC; Case map */ { 0x000388, 0x000388, { 0x0003AD }}, /* 0388; 03AD; Case map */ { 0x000389, 0x000389, { 0x0003AE }}, /* 0389; 03AE; Case map */ { 0x00038A, 0x00038A, { 0x0003AF }}, /* 038A; 03AF; Case map */ { 0x00038C, 0x00038C, { 0x0003CC }}, /* 038C; 03CC; Case map */ { 0x00038E, 0x00038E, { 0x0003CD }}, /* 038E; 03CD; Case map */ { 0x00038F, 0x00038F, { 0x0003CE }}, /* 038F; 03CE; Case map */ { 0x000390, 0x000390, { 0x0003B9, /* 0390; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x000391, 0x000391, { 0x0003B1 }}, /* 0391; 03B1; Case map */ { 0x000392, 0x000392, { 0x0003B2 }}, /* 0392; 03B2; Case map */ { 0x000393, 0x000393, { 0x0003B3 }}, /* 0393; 03B3; Case map */ { 0x000394, 0x000394, { 0x0003B4 }}, /* 0394; 03B4; Case map */ { 0x000395, 0x000395, { 0x0003B5 }}, /* 0395; 03B5; Case map */ { 0x000396, 0x000396, { 0x0003B6 }}, /* 0396; 03B6; Case map */ { 0x000397, 0x000397, { 0x0003B7 }}, /* 0397; 03B7; Case map */ { 0x000398, 0x000398, { 0x0003B8 }}, /* 0398; 03B8; Case map */ { 0x000399, 0x000399, { 0x0003B9 }}, /* 0399; 03B9; Case map */ { 0x00039A, 0x00039A, { 0x0003BA }}, /* 039A; 03BA; Case map */ { 0x00039B, 0x00039B, { 0x0003BB }}, /* 039B; 03BB; Case map */ { 0x00039C, 0x00039C, { 0x0003BC }}, /* 039C; 03BC; Case map */ { 0x00039D, 0x00039D, { 0x0003BD }}, /* 039D; 03BD; Case map */ { 0x00039E, 0x00039E, { 0x0003BE }}, /* 039E; 03BE; Case map */ { 0x00039F, 0x00039F, { 0x0003BF }}, /* 039F; 03BF; Case map */ { 0x0003A0, 0x0003A0, { 0x0003C0 }}, /* 03A0; 03C0; Case map */ { 0x0003A1, 0x0003A1, { 0x0003C1 }}, /* 03A1; 03C1; Case map */ { 0x0003A3, 0x0003A3, { 0x0003C3 }}, /* 03A3; 03C3; Case map */ { 0x0003A4, 0x0003A4, { 0x0003C4 }}, /* 03A4; 03C4; Case map */ { 0x0003A5, 0x0003A5, { 0x0003C5 }}, /* 03A5; 03C5; Case map */ { 0x0003A6, 0x0003A6, { 0x0003C6 }}, /* 03A6; 03C6; Case map */ { 0x0003A7, 0x0003A7, { 0x0003C7 }}, /* 03A7; 03C7; Case map */ { 0x0003A8, 0x0003A8, { 0x0003C8 }}, /* 03A8; 03C8; Case map */ { 0x0003A9, 0x0003A9, { 0x0003C9 }}, /* 03A9; 03C9; Case map */ { 0x0003AA, 0x0003AA, { 0x0003CA }}, /* 03AA; 03CA; Case map */ { 0x0003AB, 0x0003AB, { 0x0003CB }}, /* 03AB; 03CB; Case map */ { 0x0003B0, 0x0003B0, { 0x0003C5, /* 03B0; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x0003C2, 0x0003C2, { 0x0003C3 }}, /* 03C2; 03C3; Case map */ { 0x0003D0, 0x0003D0, { 0x0003B2 }}, /* 03D0; 03B2; Case map */ { 0x0003D1, 0x0003D1, { 0x0003B8 }}, /* 03D1; 03B8; Case map */ { 0x0003D2, 0x0003D2, { 0x0003C5 }}, /* 03D2; 03C5; Additional folding */ { 0x0003D3, 0x0003D3, { 0x0003CD }}, /* 03D3; 03CD; Additional folding */ { 0x0003D4, 0x0003D4, { 0x0003CB }}, /* 03D4; 03CB; Additional folding */ { 0x0003D5, 0x0003D5, { 0x0003C6 }}, /* 03D5; 03C6; Case map */ { 0x0003D6, 0x0003D6, { 0x0003C0 }}, /* 03D6; 03C0; Case map */ { 0x0003D8, 0x0003D8, { 0x0003D9 }}, /* 03D8; 03D9; Case map */ { 0x0003DA, 0x0003DA, { 0x0003DB }}, /* 03DA; 03DB; Case map */ { 0x0003DC, 0x0003DC, { 0x0003DD }}, /* 03DC; 03DD; Case map */ { 0x0003DE, 0x0003DE, { 0x0003DF }}, /* 03DE; 03DF; Case map */ { 0x0003E0, 0x0003E0, { 0x0003E1 }}, /* 03E0; 03E1; Case map */ { 0x0003E2, 0x0003E2, { 0x0003E3 }}, /* 03E2; 03E3; Case map */ { 0x0003E4, 0x0003E4, { 0x0003E5 }}, /* 03E4; 03E5; Case map */ { 0x0003E6, 0x0003E6, { 0x0003E7 }}, /* 03E6; 03E7; Case map */ { 0x0003E8, 0x0003E8, { 0x0003E9 }}, /* 03E8; 03E9; Case map */ { 0x0003EA, 0x0003EA, { 0x0003EB }}, /* 03EA; 03EB; Case map */ { 0x0003EC, 0x0003EC, { 0x0003ED }}, /* 03EC; 03ED; Case map */ { 0x0003EE, 0x0003EE, { 0x0003EF }}, /* 03EE; 03EF; Case map */ { 0x0003F0, 0x0003F0, { 0x0003BA }}, /* 03F0; 03BA; Case map */ { 0x0003F1, 0x0003F1, { 0x0003C1 }}, /* 03F1; 03C1; Case map */ { 0x0003F2, 0x0003F2, { 0x0003C3 }}, /* 03F2; 03C3; Case map */ { 0x0003F4, 0x0003F4, { 0x0003B8 }}, /* 03F4; 03B8; Case map */ { 0x0003F5, 0x0003F5, { 0x0003B5 }}, /* 03F5; 03B5; Case map */ { 0x000400, 0x000400, { 0x000450 }}, /* 0400; 0450; Case map */ { 0x000401, 0x000401, { 0x000451 }}, /* 0401; 0451; Case map */ { 0x000402, 0x000402, { 0x000452 }}, /* 0402; 0452; Case map */ { 0x000403, 0x000403, { 0x000453 }}, /* 0403; 0453; Case map */ { 0x000404, 0x000404, { 0x000454 }}, /* 0404; 0454; Case map */ { 0x000405, 0x000405, { 0x000455 }}, /* 0405; 0455; Case map */ { 0x000406, 0x000406, { 0x000456 }}, /* 0406; 0456; Case map */ { 0x000407, 0x000407, { 0x000457 }}, /* 0407; 0457; Case map */ { 0x000408, 0x000408, { 0x000458 }}, /* 0408; 0458; Case map */ { 0x000409, 0x000409, { 0x000459 }}, /* 0409; 0459; Case map */ { 0x00040A, 0x00040A, { 0x00045A }}, /* 040A; 045A; Case map */ { 0x00040B, 0x00040B, { 0x00045B }}, /* 040B; 045B; Case map */ { 0x00040C, 0x00040C, { 0x00045C }}, /* 040C; 045C; Case map */ { 0x00040D, 0x00040D, { 0x00045D }}, /* 040D; 045D; Case map */ { 0x00040E, 0x00040E, { 0x00045E }}, /* 040E; 045E; Case map */ { 0x00040F, 0x00040F, { 0x00045F }}, /* 040F; 045F; Case map */ { 0x000410, 0x000410, { 0x000430 }}, /* 0410; 0430; Case map */ { 0x000411, 0x000411, { 0x000431 }}, /* 0411; 0431; Case map */ { 0x000412, 0x000412, { 0x000432 }}, /* 0412; 0432; Case map */ { 0x000413, 0x000413, { 0x000433 }}, /* 0413; 0433; Case map */ { 0x000414, 0x000414, { 0x000434 }}, /* 0414; 0434; Case map */ { 0x000415, 0x000415, { 0x000435 }}, /* 0415; 0435; Case map */ { 0x000416, 0x000416, { 0x000436 }}, /* 0416; 0436; Case map */ { 0x000417, 0x000417, { 0x000437 }}, /* 0417; 0437; Case map */ { 0x000418, 0x000418, { 0x000438 }}, /* 0418; 0438; Case map */ { 0x000419, 0x000419, { 0x000439 }}, /* 0419; 0439; Case map */ { 0x00041A, 0x00041A, { 0x00043A }}, /* 041A; 043A; Case map */ { 0x00041B, 0x00041B, { 0x00043B }}, /* 041B; 043B; Case map */ { 0x00041C, 0x00041C, { 0x00043C }}, /* 041C; 043C; Case map */ { 0x00041D, 0x00041D, { 0x00043D }}, /* 041D; 043D; Case map */ { 0x00041E, 0x00041E, { 0x00043E }}, /* 041E; 043E; Case map */ { 0x00041F, 0x00041F, { 0x00043F }}, /* 041F; 043F; Case map */ { 0x000420, 0x000420, { 0x000440 }}, /* 0420; 0440; Case map */ { 0x000421, 0x000421, { 0x000441 }}, /* 0421; 0441; Case map */ { 0x000422, 0x000422, { 0x000442 }}, /* 0422; 0442; Case map */ { 0x000423, 0x000423, { 0x000443 }}, /* 0423; 0443; Case map */ { 0x000424, 0x000424, { 0x000444 }}, /* 0424; 0444; Case map */ { 0x000425, 0x000425, { 0x000445 }}, /* 0425; 0445; Case map */ { 0x000426, 0x000426, { 0x000446 }}, /* 0426; 0446; Case map */ { 0x000427, 0x000427, { 0x000447 }}, /* 0427; 0447; Case map */ { 0x000428, 0x000428, { 0x000448 }}, /* 0428; 0448; Case map */ { 0x000429, 0x000429, { 0x000449 }}, /* 0429; 0449; Case map */ { 0x00042A, 0x00042A, { 0x00044A }}, /* 042A; 044A; Case map */ { 0x00042B, 0x00042B, { 0x00044B }}, /* 042B; 044B; Case map */ { 0x00042C, 0x00042C, { 0x00044C }}, /* 042C; 044C; Case map */ { 0x00042D, 0x00042D, { 0x00044D }}, /* 042D; 044D; Case map */ { 0x00042E, 0x00042E, { 0x00044E }}, /* 042E; 044E; Case map */ { 0x00042F, 0x00042F, { 0x00044F }}, /* 042F; 044F; Case map */ { 0x000460, 0x000460, { 0x000461 }}, /* 0460; 0461; Case map */ { 0x000462, 0x000462, { 0x000463 }}, /* 0462; 0463; Case map */ { 0x000464, 0x000464, { 0x000465 }}, /* 0464; 0465; Case map */ { 0x000466, 0x000466, { 0x000467 }}, /* 0466; 0467; Case map */ { 0x000468, 0x000468, { 0x000469 }}, /* 0468; 0469; Case map */ { 0x00046A, 0x00046A, { 0x00046B }}, /* 046A; 046B; Case map */ { 0x00046C, 0x00046C, { 0x00046D }}, /* 046C; 046D; Case map */ { 0x00046E, 0x00046E, { 0x00046F }}, /* 046E; 046F; Case map */ { 0x000470, 0x000470, { 0x000471 }}, /* 0470; 0471; Case map */ { 0x000472, 0x000472, { 0x000473 }}, /* 0472; 0473; Case map */ { 0x000474, 0x000474, { 0x000475 }}, /* 0474; 0475; Case map */ { 0x000476, 0x000476, { 0x000477 }}, /* 0476; 0477; Case map */ { 0x000478, 0x000478, { 0x000479 }}, /* 0478; 0479; Case map */ { 0x00047A, 0x00047A, { 0x00047B }}, /* 047A; 047B; Case map */ { 0x00047C, 0x00047C, { 0x00047D }}, /* 047C; 047D; Case map */ { 0x00047E, 0x00047E, { 0x00047F }}, /* 047E; 047F; Case map */ { 0x000480, 0x000480, { 0x000481 }}, /* 0480; 0481; Case map */ { 0x00048A, 0x00048A, { 0x00048B }}, /* 048A; 048B; Case map */ { 0x00048C, 0x00048C, { 0x00048D }}, /* 048C; 048D; Case map */ { 0x00048E, 0x00048E, { 0x00048F }}, /* 048E; 048F; Case map */ { 0x000490, 0x000490, { 0x000491 }}, /* 0490; 0491; Case map */ { 0x000492, 0x000492, { 0x000493 }}, /* 0492; 0493; Case map */ { 0x000494, 0x000494, { 0x000495 }}, /* 0494; 0495; Case map */ { 0x000496, 0x000496, { 0x000497 }}, /* 0496; 0497; Case map */ { 0x000498, 0x000498, { 0x000499 }}, /* 0498; 0499; Case map */ { 0x00049A, 0x00049A, { 0x00049B }}, /* 049A; 049B; Case map */ { 0x00049C, 0x00049C, { 0x00049D }}, /* 049C; 049D; Case map */ { 0x00049E, 0x00049E, { 0x00049F }}, /* 049E; 049F; Case map */ { 0x0004A0, 0x0004A0, { 0x0004A1 }}, /* 04A0; 04A1; Case map */ { 0x0004A2, 0x0004A2, { 0x0004A3 }}, /* 04A2; 04A3; Case map */ { 0x0004A4, 0x0004A4, { 0x0004A5 }}, /* 04A4; 04A5; Case map */ { 0x0004A6, 0x0004A6, { 0x0004A7 }}, /* 04A6; 04A7; Case map */ { 0x0004A8, 0x0004A8, { 0x0004A9 }}, /* 04A8; 04A9; Case map */ { 0x0004AA, 0x0004AA, { 0x0004AB }}, /* 04AA; 04AB; Case map */ { 0x0004AC, 0x0004AC, { 0x0004AD }}, /* 04AC; 04AD; Case map */ { 0x0004AE, 0x0004AE, { 0x0004AF }}, /* 04AE; 04AF; Case map */ { 0x0004B0, 0x0004B0, { 0x0004B1 }}, /* 04B0; 04B1; Case map */ { 0x0004B2, 0x0004B2, { 0x0004B3 }}, /* 04B2; 04B3; Case map */ { 0x0004B4, 0x0004B4, { 0x0004B5 }}, /* 04B4; 04B5; Case map */ { 0x0004B6, 0x0004B6, { 0x0004B7 }}, /* 04B6; 04B7; Case map */ { 0x0004B8, 0x0004B8, { 0x0004B9 }}, /* 04B8; 04B9; Case map */ { 0x0004BA, 0x0004BA, { 0x0004BB }}, /* 04BA; 04BB; Case map */ { 0x0004BC, 0x0004BC, { 0x0004BD }}, /* 04BC; 04BD; Case map */ { 0x0004BE, 0x0004BE, { 0x0004BF }}, /* 04BE; 04BF; Case map */ { 0x0004C1, 0x0004C1, { 0x0004C2 }}, /* 04C1; 04C2; Case map */ { 0x0004C3, 0x0004C3, { 0x0004C4 }}, /* 04C3; 04C4; Case map */ { 0x0004C5, 0x0004C5, { 0x0004C6 }}, /* 04C5; 04C6; Case map */ { 0x0004C7, 0x0004C7, { 0x0004C8 }}, /* 04C7; 04C8; Case map */ { 0x0004C9, 0x0004C9, { 0x0004CA }}, /* 04C9; 04CA; Case map */ { 0x0004CB, 0x0004CB, { 0x0004CC }}, /* 04CB; 04CC; Case map */ { 0x0004CD, 0x0004CD, { 0x0004CE }}, /* 04CD; 04CE; Case map */ { 0x0004D0, 0x0004D0, { 0x0004D1 }}, /* 04D0; 04D1; Case map */ { 0x0004D2, 0x0004D2, { 0x0004D3 }}, /* 04D2; 04D3; Case map */ { 0x0004D4, 0x0004D4, { 0x0004D5 }}, /* 04D4; 04D5; Case map */ { 0x0004D6, 0x0004D6, { 0x0004D7 }}, /* 04D6; 04D7; Case map */ { 0x0004D8, 0x0004D8, { 0x0004D9 }}, /* 04D8; 04D9; Case map */ { 0x0004DA, 0x0004DA, { 0x0004DB }}, /* 04DA; 04DB; Case map */ { 0x0004DC, 0x0004DC, { 0x0004DD }}, /* 04DC; 04DD; Case map */ { 0x0004DE, 0x0004DE, { 0x0004DF }}, /* 04DE; 04DF; Case map */ { 0x0004E0, 0x0004E0, { 0x0004E1 }}, /* 04E0; 04E1; Case map */ { 0x0004E2, 0x0004E2, { 0x0004E3 }}, /* 04E2; 04E3; Case map */ { 0x0004E4, 0x0004E4, { 0x0004E5 }}, /* 04E4; 04E5; Case map */ { 0x0004E6, 0x0004E6, { 0x0004E7 }}, /* 04E6; 04E7; Case map */ { 0x0004E8, 0x0004E8, { 0x0004E9 }}, /* 04E8; 04E9; Case map */ { 0x0004EA, 0x0004EA, { 0x0004EB }}, /* 04EA; 04EB; Case map */ { 0x0004EC, 0x0004EC, { 0x0004ED }}, /* 04EC; 04ED; Case map */ { 0x0004EE, 0x0004EE, { 0x0004EF }}, /* 04EE; 04EF; Case map */ { 0x0004F0, 0x0004F0, { 0x0004F1 }}, /* 04F0; 04F1; Case map */ { 0x0004F2, 0x0004F2, { 0x0004F3 }}, /* 04F2; 04F3; Case map */ { 0x0004F4, 0x0004F4, { 0x0004F5 }}, /* 04F4; 04F5; Case map */ { 0x0004F8, 0x0004F8, { 0x0004F9 }}, /* 04F8; 04F9; Case map */ { 0x000500, 0x000500, { 0x000501 }}, /* 0500; 0501; Case map */ { 0x000502, 0x000502, { 0x000503 }}, /* 0502; 0503; Case map */ { 0x000504, 0x000504, { 0x000505 }}, /* 0504; 0505; Case map */ { 0x000506, 0x000506, { 0x000507 }}, /* 0506; 0507; Case map */ { 0x000508, 0x000508, { 0x000509 }}, /* 0508; 0509; Case map */ { 0x00050A, 0x00050A, { 0x00050B }}, /* 050A; 050B; Case map */ { 0x00050C, 0x00050C, { 0x00050D }}, /* 050C; 050D; Case map */ { 0x00050E, 0x00050E, { 0x00050F }}, /* 050E; 050F; Case map */ { 0x000531, 0x000531, { 0x000561 }}, /* 0531; 0561; Case map */ { 0x000532, 0x000532, { 0x000562 }}, /* 0532; 0562; Case map */ { 0x000533, 0x000533, { 0x000563 }}, /* 0533; 0563; Case map */ { 0x000534, 0x000534, { 0x000564 }}, /* 0534; 0564; Case map */ { 0x000535, 0x000535, { 0x000565 }}, /* 0535; 0565; Case map */ { 0x000536, 0x000536, { 0x000566 }}, /* 0536; 0566; Case map */ { 0x000537, 0x000537, { 0x000567 }}, /* 0537; 0567; Case map */ { 0x000538, 0x000538, { 0x000568 }}, /* 0538; 0568; Case map */ { 0x000539, 0x000539, { 0x000569 }}, /* 0539; 0569; Case map */ { 0x00053A, 0x00053A, { 0x00056A }}, /* 053A; 056A; Case map */ { 0x00053B, 0x00053B, { 0x00056B }}, /* 053B; 056B; Case map */ { 0x00053C, 0x00053C, { 0x00056C }}, /* 053C; 056C; Case map */ { 0x00053D, 0x00053D, { 0x00056D }}, /* 053D; 056D; Case map */ { 0x00053E, 0x00053E, { 0x00056E }}, /* 053E; 056E; Case map */ { 0x00053F, 0x00053F, { 0x00056F }}, /* 053F; 056F; Case map */ { 0x000540, 0x000540, { 0x000570 }}, /* 0540; 0570; Case map */ { 0x000541, 0x000541, { 0x000571 }}, /* 0541; 0571; Case map */ { 0x000542, 0x000542, { 0x000572 }}, /* 0542; 0572; Case map */ { 0x000543, 0x000543, { 0x000573 }}, /* 0543; 0573; Case map */ { 0x000544, 0x000544, { 0x000574 }}, /* 0544; 0574; Case map */ { 0x000545, 0x000545, { 0x000575 }}, /* 0545; 0575; Case map */ { 0x000546, 0x000546, { 0x000576 }}, /* 0546; 0576; Case map */ { 0x000547, 0x000547, { 0x000577 }}, /* 0547; 0577; Case map */ { 0x000548, 0x000548, { 0x000578 }}, /* 0548; 0578; Case map */ { 0x000549, 0x000549, { 0x000579 }}, /* 0549; 0579; Case map */ { 0x00054A, 0x00054A, { 0x00057A }}, /* 054A; 057A; Case map */ { 0x00054B, 0x00054B, { 0x00057B }}, /* 054B; 057B; Case map */ { 0x00054C, 0x00054C, { 0x00057C }}, /* 054C; 057C; Case map */ { 0x00054D, 0x00054D, { 0x00057D }}, /* 054D; 057D; Case map */ { 0x00054E, 0x00054E, { 0x00057E }}, /* 054E; 057E; Case map */ { 0x00054F, 0x00054F, { 0x00057F }}, /* 054F; 057F; Case map */ { 0x000550, 0x000550, { 0x000580 }}, /* 0550; 0580; Case map */ { 0x000551, 0x000551, { 0x000581 }}, /* 0551; 0581; Case map */ { 0x000552, 0x000552, { 0x000582 }}, /* 0552; 0582; Case map */ { 0x000553, 0x000553, { 0x000583 }}, /* 0553; 0583; Case map */ { 0x000554, 0x000554, { 0x000584 }}, /* 0554; 0584; Case map */ { 0x000555, 0x000555, { 0x000585 }}, /* 0555; 0585; Case map */ { 0x000556, 0x000556, { 0x000586 }}, /* 0556; 0586; Case map */ { 0x000587, 0x000587, { 0x000565, /* 0587; 0565 0582; Case map */ 0x000582 }}, { 0x001E00, 0x001E00, { 0x001E01 }}, /* 1E00; 1E01; Case map */ { 0x001E02, 0x001E02, { 0x001E03 }}, /* 1E02; 1E03; Case map */ { 0x001E04, 0x001E04, { 0x001E05 }}, /* 1E04; 1E05; Case map */ { 0x001E06, 0x001E06, { 0x001E07 }}, /* 1E06; 1E07; Case map */ { 0x001E08, 0x001E08, { 0x001E09 }}, /* 1E08; 1E09; Case map */ { 0x001E0A, 0x001E0A, { 0x001E0B }}, /* 1E0A; 1E0B; Case map */ { 0x001E0C, 0x001E0C, { 0x001E0D }}, /* 1E0C; 1E0D; Case map */ { 0x001E0E, 0x001E0E, { 0x001E0F }}, /* 1E0E; 1E0F; Case map */ { 0x001E10, 0x001E10, { 0x001E11 }}, /* 1E10; 1E11; Case map */ { 0x001E12, 0x001E12, { 0x001E13 }}, /* 1E12; 1E13; Case map */ { 0x001E14, 0x001E14, { 0x001E15 }}, /* 1E14; 1E15; Case map */ { 0x001E16, 0x001E16, { 0x001E17 }}, /* 1E16; 1E17; Case map */ { 0x001E18, 0x001E18, { 0x001E19 }}, /* 1E18; 1E19; Case map */ { 0x001E1A, 0x001E1A, { 0x001E1B }}, /* 1E1A; 1E1B; Case map */ { 0x001E1C, 0x001E1C, { 0x001E1D }}, /* 1E1C; 1E1D; Case map */ { 0x001E1E, 0x001E1E, { 0x001E1F }}, /* 1E1E; 1E1F; Case map */ { 0x001E20, 0x001E20, { 0x001E21 }}, /* 1E20; 1E21; Case map */ { 0x001E22, 0x001E22, { 0x001E23 }}, /* 1E22; 1E23; Case map */ { 0x001E24, 0x001E24, { 0x001E25 }}, /* 1E24; 1E25; Case map */ { 0x001E26, 0x001E26, { 0x001E27 }}, /* 1E26; 1E27; Case map */ { 0x001E28, 0x001E28, { 0x001E29 }}, /* 1E28; 1E29; Case map */ { 0x001E2A, 0x001E2A, { 0x001E2B }}, /* 1E2A; 1E2B; Case map */ { 0x001E2C, 0x001E2C, { 0x001E2D }}, /* 1E2C; 1E2D; Case map */ { 0x001E2E, 0x001E2E, { 0x001E2F }}, /* 1E2E; 1E2F; Case map */ { 0x001E30, 0x001E30, { 0x001E31 }}, /* 1E30; 1E31; Case map */ { 0x001E32, 0x001E32, { 0x001E33 }}, /* 1E32; 1E33; Case map */ { 0x001E34, 0x001E34, { 0x001E35 }}, /* 1E34; 1E35; Case map */ { 0x001E36, 0x001E36, { 0x001E37 }}, /* 1E36; 1E37; Case map */ { 0x001E38, 0x001E38, { 0x001E39 }}, /* 1E38; 1E39; Case map */ { 0x001E3A, 0x001E3A, { 0x001E3B }}, /* 1E3A; 1E3B; Case map */ { 0x001E3C, 0x001E3C, { 0x001E3D }}, /* 1E3C; 1E3D; Case map */ { 0x001E3E, 0x001E3E, { 0x001E3F }}, /* 1E3E; 1E3F; Case map */ { 0x001E40, 0x001E40, { 0x001E41 }}, /* 1E40; 1E41; Case map */ { 0x001E42, 0x001E42, { 0x001E43 }}, /* 1E42; 1E43; Case map */ { 0x001E44, 0x001E44, { 0x001E45 }}, /* 1E44; 1E45; Case map */ { 0x001E46, 0x001E46, { 0x001E47 }}, /* 1E46; 1E47; Case map */ { 0x001E48, 0x001E48, { 0x001E49 }}, /* 1E48; 1E49; Case map */ { 0x001E4A, 0x001E4A, { 0x001E4B }}, /* 1E4A; 1E4B; Case map */ { 0x001E4C, 0x001E4C, { 0x001E4D }}, /* 1E4C; 1E4D; Case map */ { 0x001E4E, 0x001E4E, { 0x001E4F }}, /* 1E4E; 1E4F; Case map */ { 0x001E50, 0x001E50, { 0x001E51 }}, /* 1E50; 1E51; Case map */ { 0x001E52, 0x001E52, { 0x001E53 }}, /* 1E52; 1E53; Case map */ { 0x001E54, 0x001E54, { 0x001E55 }}, /* 1E54; 1E55; Case map */ { 0x001E56, 0x001E56, { 0x001E57 }}, /* 1E56; 1E57; Case map */ { 0x001E58, 0x001E58, { 0x001E59 }}, /* 1E58; 1E59; Case map */ { 0x001E5A, 0x001E5A, { 0x001E5B }}, /* 1E5A; 1E5B; Case map */ { 0x001E5C, 0x001E5C, { 0x001E5D }}, /* 1E5C; 1E5D; Case map */ { 0x001E5E, 0x001E5E, { 0x001E5F }}, /* 1E5E; 1E5F; Case map */ { 0x001E60, 0x001E60, { 0x001E61 }}, /* 1E60; 1E61; Case map */ { 0x001E62, 0x001E62, { 0x001E63 }}, /* 1E62; 1E63; Case map */ { 0x001E64, 0x001E64, { 0x001E65 }}, /* 1E64; 1E65; Case map */ { 0x001E66, 0x001E66, { 0x001E67 }}, /* 1E66; 1E67; Case map */ { 0x001E68, 0x001E68, { 0x001E69 }}, /* 1E68; 1E69; Case map */ { 0x001E6A, 0x001E6A, { 0x001E6B }}, /* 1E6A; 1E6B; Case map */ { 0x001E6C, 0x001E6C, { 0x001E6D }}, /* 1E6C; 1E6D; Case map */ { 0x001E6E, 0x001E6E, { 0x001E6F }}, /* 1E6E; 1E6F; Case map */ { 0x001E70, 0x001E70, { 0x001E71 }}, /* 1E70; 1E71; Case map */ { 0x001E72, 0x001E72, { 0x001E73 }}, /* 1E72; 1E73; Case map */ { 0x001E74, 0x001E74, { 0x001E75 }}, /* 1E74; 1E75; Case map */ { 0x001E76, 0x001E76, { 0x001E77 }}, /* 1E76; 1E77; Case map */ { 0x001E78, 0x001E78, { 0x001E79 }}, /* 1E78; 1E79; Case map */ { 0x001E7A, 0x001E7A, { 0x001E7B }}, /* 1E7A; 1E7B; Case map */ { 0x001E7C, 0x001E7C, { 0x001E7D }}, /* 1E7C; 1E7D; Case map */ { 0x001E7E, 0x001E7E, { 0x001E7F }}, /* 1E7E; 1E7F; Case map */ { 0x001E80, 0x001E80, { 0x001E81 }}, /* 1E80; 1E81; Case map */ { 0x001E82, 0x001E82, { 0x001E83 }}, /* 1E82; 1E83; Case map */ { 0x001E84, 0x001E84, { 0x001E85 }}, /* 1E84; 1E85; Case map */ { 0x001E86, 0x001E86, { 0x001E87 }}, /* 1E86; 1E87; Case map */ { 0x001E88, 0x001E88, { 0x001E89 }}, /* 1E88; 1E89; Case map */ { 0x001E8A, 0x001E8A, { 0x001E8B }}, /* 1E8A; 1E8B; Case map */ { 0x001E8C, 0x001E8C, { 0x001E8D }}, /* 1E8C; 1E8D; Case map */ { 0x001E8E, 0x001E8E, { 0x001E8F }}, /* 1E8E; 1E8F; Case map */ { 0x001E90, 0x001E90, { 0x001E91 }}, /* 1E90; 1E91; Case map */ { 0x001E92, 0x001E92, { 0x001E93 }}, /* 1E92; 1E93; Case map */ { 0x001E94, 0x001E94, { 0x001E95 }}, /* 1E94; 1E95; Case map */ { 0x001E96, 0x001E96, { 0x000068, /* 1E96; 0068 0331; Case map */ 0x000331 }}, { 0x001E97, 0x001E97, { 0x000074, /* 1E97; 0074 0308; Case map */ 0x000308 }}, { 0x001E98, 0x001E98, { 0x000077, /* 1E98; 0077 030A; Case map */ 0x00030A }}, { 0x001E99, 0x001E99, { 0x000079, /* 1E99; 0079 030A; Case map */ 0x00030A }}, { 0x001E9A, 0x001E9A, { 0x000061, /* 1E9A; 0061 02BE; Case map */ 0x0002BE }}, { 0x001E9B, 0x001E9B, { 0x001E61 }}, /* 1E9B; 1E61; Case map */ { 0x001EA0, 0x001EA0, { 0x001EA1 }}, /* 1EA0; 1EA1; Case map */ { 0x001EA2, 0x001EA2, { 0x001EA3 }}, /* 1EA2; 1EA3; Case map */ { 0x001EA4, 0x001EA4, { 0x001EA5 }}, /* 1EA4; 1EA5; Case map */ { 0x001EA6, 0x001EA6, { 0x001EA7 }}, /* 1EA6; 1EA7; Case map */ { 0x001EA8, 0x001EA8, { 0x001EA9 }}, /* 1EA8; 1EA9; Case map */ { 0x001EAA, 0x001EAA, { 0x001EAB }}, /* 1EAA; 1EAB; Case map */ { 0x001EAC, 0x001EAC, { 0x001EAD }}, /* 1EAC; 1EAD; Case map */ { 0x001EAE, 0x001EAE, { 0x001EAF }}, /* 1EAE; 1EAF; Case map */ { 0x001EB0, 0x001EB0, { 0x001EB1 }}, /* 1EB0; 1EB1; Case map */ { 0x001EB2, 0x001EB2, { 0x001EB3 }}, /* 1EB2; 1EB3; Case map */ { 0x001EB4, 0x001EB4, { 0x001EB5 }}, /* 1EB4; 1EB5; Case map */ { 0x001EB6, 0x001EB6, { 0x001EB7 }}, /* 1EB6; 1EB7; Case map */ { 0x001EB8, 0x001EB8, { 0x001EB9 }}, /* 1EB8; 1EB9; Case map */ { 0x001EBA, 0x001EBA, { 0x001EBB }}, /* 1EBA; 1EBB; Case map */ { 0x001EBC, 0x001EBC, { 0x001EBD }}, /* 1EBC; 1EBD; Case map */ { 0x001EBE, 0x001EBE, { 0x001EBF }}, /* 1EBE; 1EBF; Case map */ { 0x001EC0, 0x001EC0, { 0x001EC1 }}, /* 1EC0; 1EC1; Case map */ { 0x001EC2, 0x001EC2, { 0x001EC3 }}, /* 1EC2; 1EC3; Case map */ { 0x001EC4, 0x001EC4, { 0x001EC5 }}, /* 1EC4; 1EC5; Case map */ { 0x001EC6, 0x001EC6, { 0x001EC7 }}, /* 1EC6; 1EC7; Case map */ { 0x001EC8, 0x001EC8, { 0x001EC9 }}, /* 1EC8; 1EC9; Case map */ { 0x001ECA, 0x001ECA, { 0x001ECB }}, /* 1ECA; 1ECB; Case map */ { 0x001ECC, 0x001ECC, { 0x001ECD }}, /* 1ECC; 1ECD; Case map */ { 0x001ECE, 0x001ECE, { 0x001ECF }}, /* 1ECE; 1ECF; Case map */ { 0x001ED0, 0x001ED0, { 0x001ED1 }}, /* 1ED0; 1ED1; Case map */ { 0x001ED2, 0x001ED2, { 0x001ED3 }}, /* 1ED2; 1ED3; Case map */ { 0x001ED4, 0x001ED4, { 0x001ED5 }}, /* 1ED4; 1ED5; Case map */ { 0x001ED6, 0x001ED6, { 0x001ED7 }}, /* 1ED6; 1ED7; Case map */ { 0x001ED8, 0x001ED8, { 0x001ED9 }}, /* 1ED8; 1ED9; Case map */ { 0x001EDA, 0x001EDA, { 0x001EDB }}, /* 1EDA; 1EDB; Case map */ { 0x001EDC, 0x001EDC, { 0x001EDD }}, /* 1EDC; 1EDD; Case map */ { 0x001EDE, 0x001EDE, { 0x001EDF }}, /* 1EDE; 1EDF; Case map */ { 0x001EE0, 0x001EE0, { 0x001EE1 }}, /* 1EE0; 1EE1; Case map */ { 0x001EE2, 0x001EE2, { 0x001EE3 }}, /* 1EE2; 1EE3; Case map */ { 0x001EE4, 0x001EE4, { 0x001EE5 }}, /* 1EE4; 1EE5; Case map */ { 0x001EE6, 0x001EE6, { 0x001EE7 }}, /* 1EE6; 1EE7; Case map */ { 0x001EE8, 0x001EE8, { 0x001EE9 }}, /* 1EE8; 1EE9; Case map */ { 0x001EEA, 0x001EEA, { 0x001EEB }}, /* 1EEA; 1EEB; Case map */ { 0x001EEC, 0x001EEC, { 0x001EED }}, /* 1EEC; 1EED; Case map */ { 0x001EEE, 0x001EEE, { 0x001EEF }}, /* 1EEE; 1EEF; Case map */ { 0x001EF0, 0x001EF0, { 0x001EF1 }}, /* 1EF0; 1EF1; Case map */ { 0x001EF2, 0x001EF2, { 0x001EF3 }}, /* 1EF2; 1EF3; Case map */ { 0x001EF4, 0x001EF4, { 0x001EF5 }}, /* 1EF4; 1EF5; Case map */ { 0x001EF6, 0x001EF6, { 0x001EF7 }}, /* 1EF6; 1EF7; Case map */ { 0x001EF8, 0x001EF8, { 0x001EF9 }}, /* 1EF8; 1EF9; Case map */ { 0x001F08, 0x001F08, { 0x001F00 }}, /* 1F08; 1F00; Case map */ { 0x001F09, 0x001F09, { 0x001F01 }}, /* 1F09; 1F01; Case map */ { 0x001F0A, 0x001F0A, { 0x001F02 }}, /* 1F0A; 1F02; Case map */ { 0x001F0B, 0x001F0B, { 0x001F03 }}, /* 1F0B; 1F03; Case map */ { 0x001F0C, 0x001F0C, { 0x001F04 }}, /* 1F0C; 1F04; Case map */ { 0x001F0D, 0x001F0D, { 0x001F05 }}, /* 1F0D; 1F05; Case map */ { 0x001F0E, 0x001F0E, { 0x001F06 }}, /* 1F0E; 1F06; Case map */ { 0x001F0F, 0x001F0F, { 0x001F07 }}, /* 1F0F; 1F07; Case map */ { 0x001F18, 0x001F18, { 0x001F10 }}, /* 1F18; 1F10; Case map */ { 0x001F19, 0x001F19, { 0x001F11 }}, /* 1F19; 1F11; Case map */ { 0x001F1A, 0x001F1A, { 0x001F12 }}, /* 1F1A; 1F12; Case map */ { 0x001F1B, 0x001F1B, { 0x001F13 }}, /* 1F1B; 1F13; Case map */ { 0x001F1C, 0x001F1C, { 0x001F14 }}, /* 1F1C; 1F14; Case map */ { 0x001F1D, 0x001F1D, { 0x001F15 }}, /* 1F1D; 1F15; Case map */ { 0x001F28, 0x001F28, { 0x001F20 }}, /* 1F28; 1F20; Case map */ { 0x001F29, 0x001F29, { 0x001F21 }}, /* 1F29; 1F21; Case map */ { 0x001F2A, 0x001F2A, { 0x001F22 }}, /* 1F2A; 1F22; Case map */ { 0x001F2B, 0x001F2B, { 0x001F23 }}, /* 1F2B; 1F23; Case map */ { 0x001F2C, 0x001F2C, { 0x001F24 }}, /* 1F2C; 1F24; Case map */ { 0x001F2D, 0x001F2D, { 0x001F25 }}, /* 1F2D; 1F25; Case map */ { 0x001F2E, 0x001F2E, { 0x001F26 }}, /* 1F2E; 1F26; Case map */ { 0x001F2F, 0x001F2F, { 0x001F27 }}, /* 1F2F; 1F27; Case map */ { 0x001F38, 0x001F38, { 0x001F30 }}, /* 1F38; 1F30; Case map */ { 0x001F39, 0x001F39, { 0x001F31 }}, /* 1F39; 1F31; Case map */ { 0x001F3A, 0x001F3A, { 0x001F32 }}, /* 1F3A; 1F32; Case map */ { 0x001F3B, 0x001F3B, { 0x001F33 }}, /* 1F3B; 1F33; Case map */ { 0x001F3C, 0x001F3C, { 0x001F34 }}, /* 1F3C; 1F34; Case map */ { 0x001F3D, 0x001F3D, { 0x001F35 }}, /* 1F3D; 1F35; Case map */ { 0x001F3E, 0x001F3E, { 0x001F36 }}, /* 1F3E; 1F36; Case map */ { 0x001F3F, 0x001F3F, { 0x001F37 }}, /* 1F3F; 1F37; Case map */ { 0x001F48, 0x001F48, { 0x001F40 }}, /* 1F48; 1F40; Case map */ { 0x001F49, 0x001F49, { 0x001F41 }}, /* 1F49; 1F41; Case map */ { 0x001F4A, 0x001F4A, { 0x001F42 }}, /* 1F4A; 1F42; Case map */ { 0x001F4B, 0x001F4B, { 0x001F43 }}, /* 1F4B; 1F43; Case map */ { 0x001F4C, 0x001F4C, { 0x001F44 }}, /* 1F4C; 1F44; Case map */ { 0x001F4D, 0x001F4D, { 0x001F45 }}, /* 1F4D; 1F45; Case map */ { 0x001F50, 0x001F50, { 0x0003C5, /* 1F50; 03C5 0313; Case map */ 0x000313 }}, { 0x001F52, 0x001F52, { 0x0003C5, /* 1F52; 03C5 0313 0300; Case map */ 0x000313, 0x000300 }}, { 0x001F54, 0x001F54, { 0x0003C5, /* 1F54; 03C5 0313 0301; Case map */ 0x000313, 0x000301 }}, { 0x001F56, 0x001F56, { 0x0003C5, /* 1F56; 03C5 0313 0342; Case map */ 0x000313, 0x000342 }}, { 0x001F59, 0x001F59, { 0x001F51 }}, /* 1F59; 1F51; Case map */ { 0x001F5B, 0x001F5B, { 0x001F53 }}, /* 1F5B; 1F53; Case map */ { 0x001F5D, 0x001F5D, { 0x001F55 }}, /* 1F5D; 1F55; Case map */ { 0x001F5F, 0x001F5F, { 0x001F57 }}, /* 1F5F; 1F57; Case map */ { 0x001F68, 0x001F68, { 0x001F60 }}, /* 1F68; 1F60; Case map */ { 0x001F69, 0x001F69, { 0x001F61 }}, /* 1F69; 1F61; Case map */ { 0x001F6A, 0x001F6A, { 0x001F62 }}, /* 1F6A; 1F62; Case map */ { 0x001F6B, 0x001F6B, { 0x001F63 }}, /* 1F6B; 1F63; Case map */ { 0x001F6C, 0x001F6C, { 0x001F64 }}, /* 1F6C; 1F64; Case map */ { 0x001F6D, 0x001F6D, { 0x001F65 }}, /* 1F6D; 1F65; Case map */ { 0x001F6E, 0x001F6E, { 0x001F66 }}, /* 1F6E; 1F66; Case map */ { 0x001F6F, 0x001F6F, { 0x001F67 }}, /* 1F6F; 1F67; Case map */ { 0x001F80, 0x001F80, { 0x001F00, /* 1F80; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F81, 0x001F81, { 0x001F01, /* 1F81; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F82, 0x001F82, { 0x001F02, /* 1F82; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F83, 0x001F83, { 0x001F03, /* 1F83; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F84, 0x001F84, { 0x001F04, /* 1F84; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F85, 0x001F85, { 0x001F05, /* 1F85; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F86, 0x001F86, { 0x001F06, /* 1F86; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F87, 0x001F87, { 0x001F07, /* 1F87; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F88, 0x001F88, { 0x001F00, /* 1F88; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F89, 0x001F89, { 0x001F01, /* 1F89; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F8A, 0x001F8A, { 0x001F02, /* 1F8A; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F8B, 0x001F8B, { 0x001F03, /* 1F8B; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F8C, 0x001F8C, { 0x001F04, /* 1F8C; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F8D, 0x001F8D, { 0x001F05, /* 1F8D; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F8E, 0x001F8E, { 0x001F06, /* 1F8E; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F8F, 0x001F8F, { 0x001F07, /* 1F8F; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F90, 0x001F90, { 0x001F20, /* 1F90; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F91, 0x001F91, { 0x001F21, /* 1F91; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F92, 0x001F92, { 0x001F22, /* 1F92; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F93, 0x001F93, { 0x001F23, /* 1F93; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F94, 0x001F94, { 0x001F24, /* 1F94; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F95, 0x001F95, { 0x001F25, /* 1F95; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F96, 0x001F96, { 0x001F26, /* 1F96; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F97, 0x001F97, { 0x001F27, /* 1F97; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001F98, 0x001F98, { 0x001F20, /* 1F98; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F99, 0x001F99, { 0x001F21, /* 1F99; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F9A, 0x001F9A, { 0x001F22, /* 1F9A; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F9B, 0x001F9B, { 0x001F23, /* 1F9B; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F9C, 0x001F9C, { 0x001F24, /* 1F9C; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F9D, 0x001F9D, { 0x001F25, /* 1F9D; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F9E, 0x001F9E, { 0x001F26, /* 1F9E; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F9F, 0x001F9F, { 0x001F27, /* 1F9F; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001FA0, 0x001FA0, { 0x001F60, /* 1FA0; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA1, 0x001FA1, { 0x001F61, /* 1FA1; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FA2, 0x001FA2, { 0x001F62, /* 1FA2; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FA3, 0x001FA3, { 0x001F63, /* 1FA3; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FA4, 0x001FA4, { 0x001F64, /* 1FA4; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FA5, 0x001FA5, { 0x001F65, /* 1FA5; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FA6, 0x001FA6, { 0x001F66, /* 1FA6; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FA7, 0x001FA7, { 0x001F67, /* 1FA7; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FA8, 0x001FA8, { 0x001F60, /* 1FA8; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA9, 0x001FA9, { 0x001F61, /* 1FA9; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FAA, 0x001FAA, { 0x001F62, /* 1FAA; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FAB, 0x001FAB, { 0x001F63, /* 1FAB; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FAC, 0x001FAC, { 0x001F64, /* 1FAC; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FAD, 0x001FAD, { 0x001F65, /* 1FAD; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FAE, 0x001FAE, { 0x001F66, /* 1FAE; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FAF, 0x001FAF, { 0x001F67, /* 1FAF; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FB2, 0x001FB2, { 0x001F70, /* 1FB2; 1F70 03B9; Case map */ 0x0003B9 }}, { 0x001FB3, 0x001FB3, { 0x0003B1, /* 1FB3; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FB4, 0x001FB4, { 0x0003AC, /* 1FB4; 03AC 03B9; Case map */ 0x0003B9 }}, { 0x001FB6, 0x001FB6, { 0x0003B1, /* 1FB6; 03B1 0342; Case map */ 0x000342 }}, { 0x001FB7, 0x001FB7, { 0x0003B1, /* 1FB7; 03B1 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FB8, 0x001FB8, { 0x001FB0 }}, /* 1FB8; 1FB0; Case map */ { 0x001FB9, 0x001FB9, { 0x001FB1 }}, /* 1FB9; 1FB1; Case map */ { 0x001FBA, 0x001FBA, { 0x001F70 }}, /* 1FBA; 1F70; Case map */ { 0x001FBB, 0x001FBB, { 0x001F71 }}, /* 1FBB; 1F71; Case map */ { 0x001FBC, 0x001FBC, { 0x0003B1, /* 1FBC; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FBE, 0x001FBE, { 0x0003B9 }}, /* 1FBE; 03B9; Case map */ { 0x001FC2, 0x001FC2, { 0x001F74, /* 1FC2; 1F74 03B9; Case map */ 0x0003B9 }}, { 0x001FC3, 0x001FC3, { 0x0003B7, /* 1FC3; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FC4, 0x001FC4, { 0x0003AE, /* 1FC4; 03AE 03B9; Case map */ 0x0003B9 }}, { 0x001FC6, 0x001FC6, { 0x0003B7, /* 1FC6; 03B7 0342; Case map */ 0x000342 }}, { 0x001FC7, 0x001FC7, { 0x0003B7, /* 1FC7; 03B7 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FC8, 0x001FC8, { 0x001F72 }}, /* 1FC8; 1F72; Case map */ { 0x001FC9, 0x001FC9, { 0x001F73 }}, /* 1FC9; 1F73; Case map */ { 0x001FCA, 0x001FCA, { 0x001F74 }}, /* 1FCA; 1F74; Case map */ { 0x001FCB, 0x001FCB, { 0x001F75 }}, /* 1FCB; 1F75; Case map */ { 0x001FCC, 0x001FCC, { 0x0003B7, /* 1FCC; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FD2, 0x001FD2, { 0x0003B9, /* 1FD2; 03B9 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FD3, 0x001FD3, { 0x0003B9, /* 1FD3; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FD6, 0x001FD6, { 0x0003B9, /* 1FD6; 03B9 0342; Case map */ 0x000342 }}, { 0x001FD7, 0x001FD7, { 0x0003B9, /* 1FD7; 03B9 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FD8, 0x001FD8, { 0x001FD0 }}, /* 1FD8; 1FD0; Case map */ { 0x001FD9, 0x001FD9, { 0x001FD1 }}, /* 1FD9; 1FD1; Case map */ { 0x001FDA, 0x001FDA, { 0x001F76 }}, /* 1FDA; 1F76; Case map */ { 0x001FDB, 0x001FDB, { 0x001F77 }}, /* 1FDB; 1F77; Case map */ { 0x001FE2, 0x001FE2, { 0x0003C5, /* 1FE2; 03C5 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FE3, 0x001FE3, { 0x0003C5, /* 1FE3; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FE4, 0x001FE4, { 0x0003C1, /* 1FE4; 03C1 0313; Case map */ 0x000313 }}, { 0x001FE6, 0x001FE6, { 0x0003C5, /* 1FE6; 03C5 0342; Case map */ 0x000342 }}, { 0x001FE7, 0x001FE7, { 0x0003C5, /* 1FE7; 03C5 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FE8, 0x001FE8, { 0x001FE0 }}, /* 1FE8; 1FE0; Case map */ { 0x001FE9, 0x001FE9, { 0x001FE1 }}, /* 1FE9; 1FE1; Case map */ { 0x001FEA, 0x001FEA, { 0x001F7A }}, /* 1FEA; 1F7A; Case map */ { 0x001FEB, 0x001FEB, { 0x001F7B }}, /* 1FEB; 1F7B; Case map */ { 0x001FEC, 0x001FEC, { 0x001FE5 }}, /* 1FEC; 1FE5; Case map */ { 0x001FF2, 0x001FF2, { 0x001F7C, /* 1FF2; 1F7C 03B9; Case map */ 0x0003B9 }}, { 0x001FF3, 0x001FF3, { 0x0003C9, /* 1FF3; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x001FF4, 0x001FF4, { 0x0003CE, /* 1FF4; 03CE 03B9; Case map */ 0x0003B9 }}, { 0x001FF6, 0x001FF6, { 0x0003C9, /* 1FF6; 03C9 0342; Case map */ 0x000342 }}, { 0x001FF7, 0x001FF7, { 0x0003C9, /* 1FF7; 03C9 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FF8, 0x001FF8, { 0x001F78 }}, /* 1FF8; 1F78; Case map */ { 0x001FF9, 0x001FF9, { 0x001F79 }}, /* 1FF9; 1F79; Case map */ { 0x001FFA, 0x001FFA, { 0x001F7C }}, /* 1FFA; 1F7C; Case map */ { 0x001FFB, 0x001FFB, { 0x001F7D }}, /* 1FFB; 1F7D; Case map */ { 0x001FFC, 0x001FFC, { 0x0003C9, /* 1FFC; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x0020A8, 0x0020A8, { 0x000072, /* 20A8; 0072 0073; Additional folding */ 0x000073 }}, { 0x002102, 0x002102, { 0x000063 }}, /* 2102; 0063; Additional folding */ { 0x002103, 0x002103, { 0x0000B0, /* 2103; 00B0 0063; Additional folding */ 0x000063 }}, { 0x002107, 0x002107, { 0x00025B }}, /* 2107; 025B; Additional folding */ { 0x002109, 0x002109, { 0x0000B0, /* 2109; 00B0 0066; Additional folding */ 0x000066 }}, { 0x00210B, 0x00210B, { 0x000068 }}, /* 210B; 0068; Additional folding */ { 0x00210C, 0x00210C, { 0x000068 }}, /* 210C; 0068; Additional folding */ { 0x00210D, 0x00210D, { 0x000068 }}, /* 210D; 0068; Additional folding */ { 0x002110, 0x002110, { 0x000069 }}, /* 2110; 0069; Additional folding */ { 0x002111, 0x002111, { 0x000069 }}, /* 2111; 0069; Additional folding */ { 0x002112, 0x002112, { 0x00006C }}, /* 2112; 006C; Additional folding */ { 0x002115, 0x002115, { 0x00006E }}, /* 2115; 006E; Additional folding */ { 0x002116, 0x002116, { 0x00006E, /* 2116; 006E 006F; Additional folding */ 0x00006F }}, { 0x002119, 0x002119, { 0x000070 }}, /* 2119; 0070; Additional folding */ { 0x00211A, 0x00211A, { 0x000071 }}, /* 211A; 0071; Additional folding */ { 0x00211B, 0x00211B, { 0x000072 }}, /* 211B; 0072; Additional folding */ { 0x00211C, 0x00211C, { 0x000072 }}, /* 211C; 0072; Additional folding */ { 0x00211D, 0x00211D, { 0x000072 }}, /* 211D; 0072; Additional folding */ { 0x002120, 0x002120, { 0x000073, /* 2120; 0073 006D; Additional folding */ 0x00006D }}, { 0x002121, 0x002121, { 0x000074, /* 2121; 0074 0065 006C; Additional folding */ 0x000065, 0x00006C }}, { 0x002122, 0x002122, { 0x000074, /* 2122; 0074 006D; Additional folding */ 0x00006D }}, { 0x002124, 0x002124, { 0x00007A }}, /* 2124; 007A; Additional folding */ { 0x002126, 0x002126, { 0x0003C9 }}, /* 2126; 03C9; Case map */ { 0x002128, 0x002128, { 0x00007A }}, /* 2128; 007A; Additional folding */ { 0x00212A, 0x00212A, { 0x00006B }}, /* 212A; 006B; Case map */ { 0x00212B, 0x00212B, { 0x0000E5 }}, /* 212B; 00E5; Case map */ { 0x00212C, 0x00212C, { 0x000062 }}, /* 212C; 0062; Additional folding */ { 0x00212D, 0x00212D, { 0x000063 }}, /* 212D; 0063; Additional folding */ { 0x002130, 0x002130, { 0x000065 }}, /* 2130; 0065; Additional folding */ { 0x002131, 0x002131, { 0x000066 }}, /* 2131; 0066; Additional folding */ { 0x002133, 0x002133, { 0x00006D }}, /* 2133; 006D; Additional folding */ { 0x00213E, 0x00213E, { 0x0003B3 }}, /* 213E; 03B3; Additional folding */ { 0x00213F, 0x00213F, { 0x0003C0 }}, /* 213F; 03C0; Additional folding */ { 0x002145, 0x002145, { 0x000064 }}, /* 2145; 0064; Additional folding */ { 0x002160, 0x002160, { 0x002170 }}, /* 2160; 2170; Case map */ { 0x002161, 0x002161, { 0x002171 }}, /* 2161; 2171; Case map */ { 0x002162, 0x002162, { 0x002172 }}, /* 2162; 2172; Case map */ { 0x002163, 0x002163, { 0x002173 }}, /* 2163; 2173; Case map */ { 0x002164, 0x002164, { 0x002174 }}, /* 2164; 2174; Case map */ { 0x002165, 0x002165, { 0x002175 }}, /* 2165; 2175; Case map */ { 0x002166, 0x002166, { 0x002176 }}, /* 2166; 2176; Case map */ { 0x002167, 0x002167, { 0x002177 }}, /* 2167; 2177; Case map */ { 0x002168, 0x002168, { 0x002178 }}, /* 2168; 2178; Case map */ { 0x002169, 0x002169, { 0x002179 }}, /* 2169; 2179; Case map */ { 0x00216A, 0x00216A, { 0x00217A }}, /* 216A; 217A; Case map */ { 0x00216B, 0x00216B, { 0x00217B }}, /* 216B; 217B; Case map */ { 0x00216C, 0x00216C, { 0x00217C }}, /* 216C; 217C; Case map */ { 0x00216D, 0x00216D, { 0x00217D }}, /* 216D; 217D; Case map */ { 0x00216E, 0x00216E, { 0x00217E }}, /* 216E; 217E; Case map */ { 0x00216F, 0x00216F, { 0x00217F }}, /* 216F; 217F; Case map */ { 0x0024B6, 0x0024B6, { 0x0024D0 }}, /* 24B6; 24D0; Case map */ { 0x0024B7, 0x0024B7, { 0x0024D1 }}, /* 24B7; 24D1; Case map */ { 0x0024B8, 0x0024B8, { 0x0024D2 }}, /* 24B8; 24D2; Case map */ { 0x0024B9, 0x0024B9, { 0x0024D3 }}, /* 24B9; 24D3; Case map */ { 0x0024BA, 0x0024BA, { 0x0024D4 }}, /* 24BA; 24D4; Case map */ { 0x0024BB, 0x0024BB, { 0x0024D5 }}, /* 24BB; 24D5; Case map */ { 0x0024BC, 0x0024BC, { 0x0024D6 }}, /* 24BC; 24D6; Case map */ { 0x0024BD, 0x0024BD, { 0x0024D7 }}, /* 24BD; 24D7; Case map */ { 0x0024BE, 0x0024BE, { 0x0024D8 }}, /* 24BE; 24D8; Case map */ { 0x0024BF, 0x0024BF, { 0x0024D9 }}, /* 24BF; 24D9; Case map */ { 0x0024C0, 0x0024C0, { 0x0024DA }}, /* 24C0; 24DA; Case map */ { 0x0024C1, 0x0024C1, { 0x0024DB }}, /* 24C1; 24DB; Case map */ { 0x0024C2, 0x0024C2, { 0x0024DC }}, /* 24C2; 24DC; Case map */ { 0x0024C3, 0x0024C3, { 0x0024DD }}, /* 24C3; 24DD; Case map */ { 0x0024C4, 0x0024C4, { 0x0024DE }}, /* 24C4; 24DE; Case map */ { 0x0024C5, 0x0024C5, { 0x0024DF }}, /* 24C5; 24DF; Case map */ { 0x0024C6, 0x0024C6, { 0x0024E0 }}, /* 24C6; 24E0; Case map */ { 0x0024C7, 0x0024C7, { 0x0024E1 }}, /* 24C7; 24E1; Case map */ { 0x0024C8, 0x0024C8, { 0x0024E2 }}, /* 24C8; 24E2; Case map */ { 0x0024C9, 0x0024C9, { 0x0024E3 }}, /* 24C9; 24E3; Case map */ { 0x0024CA, 0x0024CA, { 0x0024E4 }}, /* 24CA; 24E4; Case map */ { 0x0024CB, 0x0024CB, { 0x0024E5 }}, /* 24CB; 24E5; Case map */ { 0x0024CC, 0x0024CC, { 0x0024E6 }}, /* 24CC; 24E6; Case map */ { 0x0024CD, 0x0024CD, { 0x0024E7 }}, /* 24CD; 24E7; Case map */ { 0x0024CE, 0x0024CE, { 0x0024E8 }}, /* 24CE; 24E8; Case map */ { 0x0024CF, 0x0024CF, { 0x0024E9 }}, /* 24CF; 24E9; Case map */ { 0x003371, 0x003371, { 0x000068, /* 3371; 0068 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x003373, 0x003373, { 0x000061, /* 3373; 0061 0075; Additional folding */ 0x000075 }}, { 0x003375, 0x003375, { 0x00006F, /* 3375; 006F 0076; Additional folding */ 0x000076 }}, { 0x003380, 0x003380, { 0x000070, /* 3380; 0070 0061; Additional folding */ 0x000061 }}, { 0x003381, 0x003381, { 0x00006E, /* 3381; 006E 0061; Additional folding */ 0x000061 }}, { 0x003382, 0x003382, { 0x0003BC, /* 3382; 03BC 0061; Additional folding */ 0x000061 }}, { 0x003383, 0x003383, { 0x00006D, /* 3383; 006D 0061; Additional folding */ 0x000061 }}, { 0x003384, 0x003384, { 0x00006B, /* 3384; 006B 0061; Additional folding */ 0x000061 }}, { 0x003385, 0x003385, { 0x00006B, /* 3385; 006B 0062; Additional folding */ 0x000062 }}, { 0x003386, 0x003386, { 0x00006D, /* 3386; 006D 0062; Additional folding */ 0x000062 }}, { 0x003387, 0x003387, { 0x000067, /* 3387; 0067 0062; Additional folding */ 0x000062 }}, { 0x00338A, 0x00338A, { 0x000070, /* 338A; 0070 0066; Additional folding */ 0x000066 }}, { 0x00338B, 0x00338B, { 0x00006E, /* 338B; 006E 0066; Additional folding */ 0x000066 }}, { 0x00338C, 0x00338C, { 0x0003BC, /* 338C; 03BC 0066; Additional folding */ 0x000066 }}, { 0x003390, 0x003390, { 0x000068, /* 3390; 0068 007A; Additional folding */ 0x00007A }}, { 0x003391, 0x003391, { 0x00006B, /* 3391; 006B 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x003392, 0x003392, { 0x00006D, /* 3392; 006D 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x003393, 0x003393, { 0x000067, /* 3393; 0067 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x003394, 0x003394, { 0x000074, /* 3394; 0074 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x0033A9, 0x0033A9, { 0x000070, /* 33A9; 0070 0061; Additional folding */ 0x000061 }}, { 0x0033AA, 0x0033AA, { 0x00006B, /* 33AA; 006B 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x0033AB, 0x0033AB, { 0x00006D, /* 33AB; 006D 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x0033AC, 0x0033AC, { 0x000067, /* 33AC; 0067 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x0033B4, 0x0033B4, { 0x000070, /* 33B4; 0070 0076; Additional folding */ 0x000076 }}, { 0x0033B5, 0x0033B5, { 0x00006E, /* 33B5; 006E 0076; Additional folding */ 0x000076 }}, { 0x0033B6, 0x0033B6, { 0x0003BC, /* 33B6; 03BC 0076; Additional folding */ 0x000076 }}, { 0x0033B7, 0x0033B7, { 0x00006D, /* 33B7; 006D 0076; Additional folding */ 0x000076 }}, { 0x0033B8, 0x0033B8, { 0x00006B, /* 33B8; 006B 0076; Additional folding */ 0x000076 }}, { 0x0033B9, 0x0033B9, { 0x00006D, /* 33B9; 006D 0076; Additional folding */ 0x000076 }}, { 0x0033BA, 0x0033BA, { 0x000070, /* 33BA; 0070 0077; Additional folding */ 0x000077 }}, { 0x0033BB, 0x0033BB, { 0x00006E, /* 33BB; 006E 0077; Additional folding */ 0x000077 }}, { 0x0033BC, 0x0033BC, { 0x0003BC, /* 33BC; 03BC 0077; Additional folding */ 0x000077 }}, { 0x0033BD, 0x0033BD, { 0x00006D, /* 33BD; 006D 0077; Additional folding */ 0x000077 }}, { 0x0033BE, 0x0033BE, { 0x00006B, /* 33BE; 006B 0077; Additional folding */ 0x000077 }}, { 0x0033BF, 0x0033BF, { 0x00006D, /* 33BF; 006D 0077; Additional folding */ 0x000077 }}, { 0x0033C0, 0x0033C0, { 0x00006B, /* 33C0; 006B 03C9; Additional folding */ 0x0003C9 }}, { 0x0033C1, 0x0033C1, { 0x00006D, /* 33C1; 006D 03C9; Additional folding */ 0x0003C9 }}, { 0x0033C3, 0x0033C3, { 0x000062, /* 33C3; 0062 0071; Additional folding */ 0x000071 }}, { 0x0033C6, 0x0033C6, { 0x000063, /* 33C6; 0063 2215 006B 0067; Additional folding */ 0x002215, 0x00006B, 0x000067 }}, { 0x0033C7, 0x0033C7, { 0x000063, /* 33C7; 0063 006F 002E; Additional folding */ 0x00006F, 0x00002E }}, { 0x0033C8, 0x0033C8, { 0x000064, /* 33C8; 0064 0062; Additional folding */ 0x000062 }}, { 0x0033C9, 0x0033C9, { 0x000067, /* 33C9; 0067 0079; Additional folding */ 0x000079 }}, { 0x0033CB, 0x0033CB, { 0x000068, /* 33CB; 0068 0070; Additional folding */ 0x000070 }}, { 0x0033CD, 0x0033CD, { 0x00006B, /* 33CD; 006B 006B; Additional folding */ 0x00006B }}, { 0x0033CE, 0x0033CE, { 0x00006B, /* 33CE; 006B 006D; Additional folding */ 0x00006D }}, { 0x0033D7, 0x0033D7, { 0x000070, /* 33D7; 0070 0068; Additional folding */ 0x000068 }}, { 0x0033D9, 0x0033D9, { 0x000070, /* 33D9; 0070 0070 006D; Additional folding */ 0x000070, 0x00006D }}, { 0x0033DA, 0x0033DA, { 0x000070, /* 33DA; 0070 0072; Additional folding */ 0x000072 }}, { 0x0033DC, 0x0033DC, { 0x000073, /* 33DC; 0073 0076; Additional folding */ 0x000076 }}, { 0x0033DD, 0x0033DD, { 0x000077, /* 33DD; 0077 0062; Additional folding */ 0x000062 }}, { 0x00FB00, 0x00FB00, { 0x000066, /* FB00; 0066 0066; Case map */ 0x000066 }}, { 0x00FB01, 0x00FB01, { 0x000066, /* FB01; 0066 0069; Case map */ 0x000069 }}, { 0x00FB02, 0x00FB02, { 0x000066, /* FB02; 0066 006C; Case map */ 0x00006C }}, { 0x00FB03, 0x00FB03, { 0x000066, /* FB03; 0066 0066 0069; Case map */ 0x000066, 0x000069 }}, { 0x00FB04, 0x00FB04, { 0x000066, /* FB04; 0066 0066 006C; Case map */ 0x000066, 0x00006C }}, { 0x00FB05, 0x00FB05, { 0x000073, /* FB05; 0073 0074; Case map */ 0x000074 }}, { 0x00FB06, 0x00FB06, { 0x000073, /* FB06; 0073 0074; Case map */ 0x000074 }}, { 0x00FB13, 0x00FB13, { 0x000574, /* FB13; 0574 0576; Case map */ 0x000576 }}, { 0x00FB14, 0x00FB14, { 0x000574, /* FB14; 0574 0565; Case map */ 0x000565 }}, { 0x00FB15, 0x00FB15, { 0x000574, /* FB15; 0574 056B; Case map */ 0x00056B }}, { 0x00FB16, 0x00FB16, { 0x00057E, /* FB16; 057E 0576; Case map */ 0x000576 }}, { 0x00FB17, 0x00FB17, { 0x000574, /* FB17; 0574 056D; Case map */ 0x00056D }}, { 0x00FF21, 0x00FF21, { 0x00FF41 }}, /* FF21; FF41; Case map */ { 0x00FF22, 0x00FF22, { 0x00FF42 }}, /* FF22; FF42; Case map */ { 0x00FF23, 0x00FF23, { 0x00FF43 }}, /* FF23; FF43; Case map */ { 0x00FF24, 0x00FF24, { 0x00FF44 }}, /* FF24; FF44; Case map */ { 0x00FF25, 0x00FF25, { 0x00FF45 }}, /* FF25; FF45; Case map */ { 0x00FF26, 0x00FF26, { 0x00FF46 }}, /* FF26; FF46; Case map */ { 0x00FF27, 0x00FF27, { 0x00FF47 }}, /* FF27; FF47; Case map */ { 0x00FF28, 0x00FF28, { 0x00FF48 }}, /* FF28; FF48; Case map */ { 0x00FF29, 0x00FF29, { 0x00FF49 }}, /* FF29; FF49; Case map */ { 0x00FF2A, 0x00FF2A, { 0x00FF4A }}, /* FF2A; FF4A; Case map */ { 0x00FF2B, 0x00FF2B, { 0x00FF4B }}, /* FF2B; FF4B; Case map */ { 0x00FF2C, 0x00FF2C, { 0x00FF4C }}, /* FF2C; FF4C; Case map */ { 0x00FF2D, 0x00FF2D, { 0x00FF4D }}, /* FF2D; FF4D; Case map */ { 0x00FF2E, 0x00FF2E, { 0x00FF4E }}, /* FF2E; FF4E; Case map */ { 0x00FF2F, 0x00FF2F, { 0x00FF4F }}, /* FF2F; FF4F; Case map */ { 0x00FF30, 0x00FF30, { 0x00FF50 }}, /* FF30; FF50; Case map */ { 0x00FF31, 0x00FF31, { 0x00FF51 }}, /* FF31; FF51; Case map */ { 0x00FF32, 0x00FF32, { 0x00FF52 }}, /* FF32; FF52; Case map */ { 0x00FF33, 0x00FF33, { 0x00FF53 }}, /* FF33; FF53; Case map */ { 0x00FF34, 0x00FF34, { 0x00FF54 }}, /* FF34; FF54; Case map */ { 0x00FF35, 0x00FF35, { 0x00FF55 }}, /* FF35; FF55; Case map */ { 0x00FF36, 0x00FF36, { 0x00FF56 }}, /* FF36; FF56; Case map */ { 0x00FF37, 0x00FF37, { 0x00FF57 }}, /* FF37; FF57; Case map */ { 0x00FF38, 0x00FF38, { 0x00FF58 }}, /* FF38; FF58; Case map */ { 0x00FF39, 0x00FF39, { 0x00FF59 }}, /* FF39; FF59; Case map */ { 0x00FF3A, 0x00FF3A, { 0x00FF5A }}, /* FF3A; FF5A; Case map */ { 0x010400, 0x010400, { 0x010428 }}, /* 10400; 10428; Case map */ { 0x010401, 0x010401, { 0x010429 }}, /* 10401; 10429; Case map */ { 0x010402, 0x010402, { 0x01042A }}, /* 10402; 1042A; Case map */ { 0x010403, 0x010403, { 0x01042B }}, /* 10403; 1042B; Case map */ { 0x010404, 0x010404, { 0x01042C }}, /* 10404; 1042C; Case map */ { 0x010405, 0x010405, { 0x01042D }}, /* 10405; 1042D; Case map */ { 0x010406, 0x010406, { 0x01042E }}, /* 10406; 1042E; Case map */ { 0x010407, 0x010407, { 0x01042F }}, /* 10407; 1042F; Case map */ { 0x010408, 0x010408, { 0x010430 }}, /* 10408; 10430; Case map */ { 0x010409, 0x010409, { 0x010431 }}, /* 10409; 10431; Case map */ { 0x01040A, 0x01040A, { 0x010432 }}, /* 1040A; 10432; Case map */ { 0x01040B, 0x01040B, { 0x010433 }}, /* 1040B; 10433; Case map */ { 0x01040C, 0x01040C, { 0x010434 }}, /* 1040C; 10434; Case map */ { 0x01040D, 0x01040D, { 0x010435 }}, /* 1040D; 10435; Case map */ { 0x01040E, 0x01040E, { 0x010436 }}, /* 1040E; 10436; Case map */ { 0x01040F, 0x01040F, { 0x010437 }}, /* 1040F; 10437; Case map */ { 0x010410, 0x010410, { 0x010438 }}, /* 10410; 10438; Case map */ { 0x010411, 0x010411, { 0x010439 }}, /* 10411; 10439; Case map */ { 0x010412, 0x010412, { 0x01043A }}, /* 10412; 1043A; Case map */ { 0x010413, 0x010413, { 0x01043B }}, /* 10413; 1043B; Case map */ { 0x010414, 0x010414, { 0x01043C }}, /* 10414; 1043C; Case map */ { 0x010415, 0x010415, { 0x01043D }}, /* 10415; 1043D; Case map */ { 0x010416, 0x010416, { 0x01043E }}, /* 10416; 1043E; Case map */ { 0x010417, 0x010417, { 0x01043F }}, /* 10417; 1043F; Case map */ { 0x010418, 0x010418, { 0x010440 }}, /* 10418; 10440; Case map */ { 0x010419, 0x010419, { 0x010441 }}, /* 10419; 10441; Case map */ { 0x01041A, 0x01041A, { 0x010442 }}, /* 1041A; 10442; Case map */ { 0x01041B, 0x01041B, { 0x010443 }}, /* 1041B; 10443; Case map */ { 0x01041C, 0x01041C, { 0x010444 }}, /* 1041C; 10444; Case map */ { 0x01041D, 0x01041D, { 0x010445 }}, /* 1041D; 10445; Case map */ { 0x01041E, 0x01041E, { 0x010446 }}, /* 1041E; 10446; Case map */ { 0x01041F, 0x01041F, { 0x010447 }}, /* 1041F; 10447; Case map */ { 0x010420, 0x010420, { 0x010448 }}, /* 10420; 10448; Case map */ { 0x010421, 0x010421, { 0x010449 }}, /* 10421; 10449; Case map */ { 0x010422, 0x010422, { 0x01044A }}, /* 10422; 1044A; Case map */ { 0x010423, 0x010423, { 0x01044B }}, /* 10423; 1044B; Case map */ { 0x010424, 0x010424, { 0x01044C }}, /* 10424; 1044C; Case map */ { 0x010425, 0x010425, { 0x01044D }}, /* 10425; 1044D; Case map */ { 0x01D400, 0x01D400, { 0x000061 }}, /* 1D400; 0061; Additional folding */ { 0x01D401, 0x01D401, { 0x000062 }}, /* 1D401; 0062; Additional folding */ { 0x01D402, 0x01D402, { 0x000063 }}, /* 1D402; 0063; Additional folding */ { 0x01D403, 0x01D403, { 0x000064 }}, /* 1D403; 0064; Additional folding */ { 0x01D404, 0x01D404, { 0x000065 }}, /* 1D404; 0065; Additional folding */ { 0x01D405, 0x01D405, { 0x000066 }}, /* 1D405; 0066; Additional folding */ { 0x01D406, 0x01D406, { 0x000067 }}, /* 1D406; 0067; Additional folding */ { 0x01D407, 0x01D407, { 0x000068 }}, /* 1D407; 0068; Additional folding */ { 0x01D408, 0x01D408, { 0x000069 }}, /* 1D408; 0069; Additional folding */ { 0x01D409, 0x01D409, { 0x00006A }}, /* 1D409; 006A; Additional folding */ { 0x01D40A, 0x01D40A, { 0x00006B }}, /* 1D40A; 006B; Additional folding */ { 0x01D40B, 0x01D40B, { 0x00006C }}, /* 1D40B; 006C; Additional folding */ { 0x01D40C, 0x01D40C, { 0x00006D }}, /* 1D40C; 006D; Additional folding */ { 0x01D40D, 0x01D40D, { 0x00006E }}, /* 1D40D; 006E; Additional folding */ { 0x01D40E, 0x01D40E, { 0x00006F }}, /* 1D40E; 006F; Additional folding */ { 0x01D40F, 0x01D40F, { 0x000070 }}, /* 1D40F; 0070; Additional folding */ { 0x01D410, 0x01D410, { 0x000071 }}, /* 1D410; 0071; Additional folding */ { 0x01D411, 0x01D411, { 0x000072 }}, /* 1D411; 0072; Additional folding */ { 0x01D412, 0x01D412, { 0x000073 }}, /* 1D412; 0073; Additional folding */ { 0x01D413, 0x01D413, { 0x000074 }}, /* 1D413; 0074; Additional folding */ { 0x01D414, 0x01D414, { 0x000075 }}, /* 1D414; 0075; Additional folding */ { 0x01D415, 0x01D415, { 0x000076 }}, /* 1D415; 0076; Additional folding */ { 0x01D416, 0x01D416, { 0x000077 }}, /* 1D416; 0077; Additional folding */ { 0x01D417, 0x01D417, { 0x000078 }}, /* 1D417; 0078; Additional folding */ { 0x01D418, 0x01D418, { 0x000079 }}, /* 1D418; 0079; Additional folding */ { 0x01D419, 0x01D419, { 0x00007A }}, /* 1D419; 007A; Additional folding */ { 0x01D434, 0x01D434, { 0x000061 }}, /* 1D434; 0061; Additional folding */ { 0x01D435, 0x01D435, { 0x000062 }}, /* 1D435; 0062; Additional folding */ { 0x01D436, 0x01D436, { 0x000063 }}, /* 1D436; 0063; Additional folding */ { 0x01D437, 0x01D437, { 0x000064 }}, /* 1D437; 0064; Additional folding */ { 0x01D438, 0x01D438, { 0x000065 }}, /* 1D438; 0065; Additional folding */ { 0x01D439, 0x01D439, { 0x000066 }}, /* 1D439; 0066; Additional folding */ { 0x01D43A, 0x01D43A, { 0x000067 }}, /* 1D43A; 0067; Additional folding */ { 0x01D43B, 0x01D43B, { 0x000068 }}, /* 1D43B; 0068; Additional folding */ { 0x01D43C, 0x01D43C, { 0x000069 }}, /* 1D43C; 0069; Additional folding */ { 0x01D43D, 0x01D43D, { 0x00006A }}, /* 1D43D; 006A; Additional folding */ { 0x01D43E, 0x01D43E, { 0x00006B }}, /* 1D43E; 006B; Additional folding */ { 0x01D43F, 0x01D43F, { 0x00006C }}, /* 1D43F; 006C; Additional folding */ { 0x01D440, 0x01D440, { 0x00006D }}, /* 1D440; 006D; Additional folding */ { 0x01D441, 0x01D441, { 0x00006E }}, /* 1D441; 006E; Additional folding */ { 0x01D442, 0x01D442, { 0x00006F }}, /* 1D442; 006F; Additional folding */ { 0x01D443, 0x01D443, { 0x000070 }}, /* 1D443; 0070; Additional folding */ { 0x01D444, 0x01D444, { 0x000071 }}, /* 1D444; 0071; Additional folding */ { 0x01D445, 0x01D445, { 0x000072 }}, /* 1D445; 0072; Additional folding */ { 0x01D446, 0x01D446, { 0x000073 }}, /* 1D446; 0073; Additional folding */ { 0x01D447, 0x01D447, { 0x000074 }}, /* 1D447; 0074; Additional folding */ { 0x01D448, 0x01D448, { 0x000075 }}, /* 1D448; 0075; Additional folding */ { 0x01D449, 0x01D449, { 0x000076 }}, /* 1D449; 0076; Additional folding */ { 0x01D44A, 0x01D44A, { 0x000077 }}, /* 1D44A; 0077; Additional folding */ { 0x01D44B, 0x01D44B, { 0x000078 }}, /* 1D44B; 0078; Additional folding */ { 0x01D44C, 0x01D44C, { 0x000079 }}, /* 1D44C; 0079; Additional folding */ { 0x01D44D, 0x01D44D, { 0x00007A }}, /* 1D44D; 007A; Additional folding */ { 0x01D468, 0x01D468, { 0x000061 }}, /* 1D468; 0061; Additional folding */ { 0x01D469, 0x01D469, { 0x000062 }}, /* 1D469; 0062; Additional folding */ { 0x01D46A, 0x01D46A, { 0x000063 }}, /* 1D46A; 0063; Additional folding */ { 0x01D46B, 0x01D46B, { 0x000064 }}, /* 1D46B; 0064; Additional folding */ { 0x01D46C, 0x01D46C, { 0x000065 }}, /* 1D46C; 0065; Additional folding */ { 0x01D46D, 0x01D46D, { 0x000066 }}, /* 1D46D; 0066; Additional folding */ { 0x01D46E, 0x01D46E, { 0x000067 }}, /* 1D46E; 0067; Additional folding */ { 0x01D46F, 0x01D46F, { 0x000068 }}, /* 1D46F; 0068; Additional folding */ { 0x01D470, 0x01D470, { 0x000069 }}, /* 1D470; 0069; Additional folding */ { 0x01D471, 0x01D471, { 0x00006A }}, /* 1D471; 006A; Additional folding */ { 0x01D472, 0x01D472, { 0x00006B }}, /* 1D472; 006B; Additional folding */ { 0x01D473, 0x01D473, { 0x00006C }}, /* 1D473; 006C; Additional folding */ { 0x01D474, 0x01D474, { 0x00006D }}, /* 1D474; 006D; Additional folding */ { 0x01D475, 0x01D475, { 0x00006E }}, /* 1D475; 006E; Additional folding */ { 0x01D476, 0x01D476, { 0x00006F }}, /* 1D476; 006F; Additional folding */ { 0x01D477, 0x01D477, { 0x000070 }}, /* 1D477; 0070; Additional folding */ { 0x01D478, 0x01D478, { 0x000071 }}, /* 1D478; 0071; Additional folding */ { 0x01D479, 0x01D479, { 0x000072 }}, /* 1D479; 0072; Additional folding */ { 0x01D47A, 0x01D47A, { 0x000073 }}, /* 1D47A; 0073; Additional folding */ { 0x01D47B, 0x01D47B, { 0x000074 }}, /* 1D47B; 0074; Additional folding */ { 0x01D47C, 0x01D47C, { 0x000075 }}, /* 1D47C; 0075; Additional folding */ { 0x01D47D, 0x01D47D, { 0x000076 }}, /* 1D47D; 0076; Additional folding */ { 0x01D47E, 0x01D47E, { 0x000077 }}, /* 1D47E; 0077; Additional folding */ { 0x01D47F, 0x01D47F, { 0x000078 }}, /* 1D47F; 0078; Additional folding */ { 0x01D480, 0x01D480, { 0x000079 }}, /* 1D480; 0079; Additional folding */ { 0x01D481, 0x01D481, { 0x00007A }}, /* 1D481; 007A; Additional folding */ { 0x01D49C, 0x01D49C, { 0x000061 }}, /* 1D49C; 0061; Additional folding */ { 0x01D49E, 0x01D49E, { 0x000063 }}, /* 1D49E; 0063; Additional folding */ { 0x01D49F, 0x01D49F, { 0x000064 }}, /* 1D49F; 0064; Additional folding */ { 0x01D4A2, 0x01D4A2, { 0x000067 }}, /* 1D4A2; 0067; Additional folding */ { 0x01D4A5, 0x01D4A5, { 0x00006A }}, /* 1D4A5; 006A; Additional folding */ { 0x01D4A6, 0x01D4A6, { 0x00006B }}, /* 1D4A6; 006B; Additional folding */ { 0x01D4A9, 0x01D4A9, { 0x00006E }}, /* 1D4A9; 006E; Additional folding */ { 0x01D4AA, 0x01D4AA, { 0x00006F }}, /* 1D4AA; 006F; Additional folding */ { 0x01D4AB, 0x01D4AB, { 0x000070 }}, /* 1D4AB; 0070; Additional folding */ { 0x01D4AC, 0x01D4AC, { 0x000071 }}, /* 1D4AC; 0071; Additional folding */ { 0x01D4AE, 0x01D4AE, { 0x000073 }}, /* 1D4AE; 0073; Additional folding */ { 0x01D4AF, 0x01D4AF, { 0x000074 }}, /* 1D4AF; 0074; Additional folding */ { 0x01D4B0, 0x01D4B0, { 0x000075 }}, /* 1D4B0; 0075; Additional folding */ { 0x01D4B1, 0x01D4B1, { 0x000076 }}, /* 1D4B1; 0076; Additional folding */ { 0x01D4B2, 0x01D4B2, { 0x000077 }}, /* 1D4B2; 0077; Additional folding */ { 0x01D4B3, 0x01D4B3, { 0x000078 }}, /* 1D4B3; 0078; Additional folding */ { 0x01D4B4, 0x01D4B4, { 0x000079 }}, /* 1D4B4; 0079; Additional folding */ { 0x01D4B5, 0x01D4B5, { 0x00007A }}, /* 1D4B5; 007A; Additional folding */ { 0x01D4D0, 0x01D4D0, { 0x000061 }}, /* 1D4D0; 0061; Additional folding */ { 0x01D4D1, 0x01D4D1, { 0x000062 }}, /* 1D4D1; 0062; Additional folding */ { 0x01D4D2, 0x01D4D2, { 0x000063 }}, /* 1D4D2; 0063; Additional folding */ { 0x01D4D3, 0x01D4D3, { 0x000064 }}, /* 1D4D3; 0064; Additional folding */ { 0x01D4D4, 0x01D4D4, { 0x000065 }}, /* 1D4D4; 0065; Additional folding */ { 0x01D4D5, 0x01D4D5, { 0x000066 }}, /* 1D4D5; 0066; Additional folding */ { 0x01D4D6, 0x01D4D6, { 0x000067 }}, /* 1D4D6; 0067; Additional folding */ { 0x01D4D7, 0x01D4D7, { 0x000068 }}, /* 1D4D7; 0068; Additional folding */ { 0x01D4D8, 0x01D4D8, { 0x000069 }}, /* 1D4D8; 0069; Additional folding */ { 0x01D4D9, 0x01D4D9, { 0x00006A }}, /* 1D4D9; 006A; Additional folding */ { 0x01D4DA, 0x01D4DA, { 0x00006B }}, /* 1D4DA; 006B; Additional folding */ { 0x01D4DB, 0x01D4DB, { 0x00006C }}, /* 1D4DB; 006C; Additional folding */ { 0x01D4DC, 0x01D4DC, { 0x00006D }}, /* 1D4DC; 006D; Additional folding */ { 0x01D4DD, 0x01D4DD, { 0x00006E }}, /* 1D4DD; 006E; Additional folding */ { 0x01D4DE, 0x01D4DE, { 0x00006F }}, /* 1D4DE; 006F; Additional folding */ { 0x01D4DF, 0x01D4DF, { 0x000070 }}, /* 1D4DF; 0070; Additional folding */ { 0x01D4E0, 0x01D4E0, { 0x000071 }}, /* 1D4E0; 0071; Additional folding */ { 0x01D4E1, 0x01D4E1, { 0x000072 }}, /* 1D4E1; 0072; Additional folding */ { 0x01D4E2, 0x01D4E2, { 0x000073 }}, /* 1D4E2; 0073; Additional folding */ { 0x01D4E3, 0x01D4E3, { 0x000074 }}, /* 1D4E3; 0074; Additional folding */ { 0x01D4E4, 0x01D4E4, { 0x000075 }}, /* 1D4E4; 0075; Additional folding */ { 0x01D4E5, 0x01D4E5, { 0x000076 }}, /* 1D4E5; 0076; Additional folding */ { 0x01D4E6, 0x01D4E6, { 0x000077 }}, /* 1D4E6; 0077; Additional folding */ { 0x01D4E7, 0x01D4E7, { 0x000078 }}, /* 1D4E7; 0078; Additional folding */ { 0x01D4E8, 0x01D4E8, { 0x000079 }}, /* 1D4E8; 0079; Additional folding */ { 0x01D4E9, 0x01D4E9, { 0x00007A }}, /* 1D4E9; 007A; Additional folding */ { 0x01D504, 0x01D504, { 0x000061 }}, /* 1D504; 0061; Additional folding */ { 0x01D505, 0x01D505, { 0x000062 }}, /* 1D505; 0062; Additional folding */ { 0x01D507, 0x01D507, { 0x000064 }}, /* 1D507; 0064; Additional folding */ { 0x01D508, 0x01D508, { 0x000065 }}, /* 1D508; 0065; Additional folding */ { 0x01D509, 0x01D509, { 0x000066 }}, /* 1D509; 0066; Additional folding */ { 0x01D50A, 0x01D50A, { 0x000067 }}, /* 1D50A; 0067; Additional folding */ { 0x01D50D, 0x01D50D, { 0x00006A }}, /* 1D50D; 006A; Additional folding */ { 0x01D50E, 0x01D50E, { 0x00006B }}, /* 1D50E; 006B; Additional folding */ { 0x01D50F, 0x01D50F, { 0x00006C }}, /* 1D50F; 006C; Additional folding */ { 0x01D510, 0x01D510, { 0x00006D }}, /* 1D510; 006D; Additional folding */ { 0x01D511, 0x01D511, { 0x00006E }}, /* 1D511; 006E; Additional folding */ { 0x01D512, 0x01D512, { 0x00006F }}, /* 1D512; 006F; Additional folding */ { 0x01D513, 0x01D513, { 0x000070 }}, /* 1D513; 0070; Additional folding */ { 0x01D514, 0x01D514, { 0x000071 }}, /* 1D514; 0071; Additional folding */ { 0x01D516, 0x01D516, { 0x000073 }}, /* 1D516; 0073; Additional folding */ { 0x01D517, 0x01D517, { 0x000074 }}, /* 1D517; 0074; Additional folding */ { 0x01D518, 0x01D518, { 0x000075 }}, /* 1D518; 0075; Additional folding */ { 0x01D519, 0x01D519, { 0x000076 }}, /* 1D519; 0076; Additional folding */ { 0x01D51A, 0x01D51A, { 0x000077 }}, /* 1D51A; 0077; Additional folding */ { 0x01D51B, 0x01D51B, { 0x000078 }}, /* 1D51B; 0078; Additional folding */ { 0x01D51C, 0x01D51C, { 0x000079 }}, /* 1D51C; 0079; Additional folding */ { 0x01D538, 0x01D538, { 0x000061 }}, /* 1D538; 0061; Additional folding */ { 0x01D539, 0x01D539, { 0x000062 }}, /* 1D539; 0062; Additional folding */ { 0x01D53B, 0x01D53B, { 0x000064 }}, /* 1D53B; 0064; Additional folding */ { 0x01D53C, 0x01D53C, { 0x000065 }}, /* 1D53C; 0065; Additional folding */ { 0x01D53D, 0x01D53D, { 0x000066 }}, /* 1D53D; 0066; Additional folding */ { 0x01D53E, 0x01D53E, { 0x000067 }}, /* 1D53E; 0067; Additional folding */ { 0x01D540, 0x01D540, { 0x000069 }}, /* 1D540; 0069; Additional folding */ { 0x01D541, 0x01D541, { 0x00006A }}, /* 1D541; 006A; Additional folding */ { 0x01D542, 0x01D542, { 0x00006B }}, /* 1D542; 006B; Additional folding */ { 0x01D543, 0x01D543, { 0x00006C }}, /* 1D543; 006C; Additional folding */ { 0x01D544, 0x01D544, { 0x00006D }}, /* 1D544; 006D; Additional folding */ { 0x01D546, 0x01D546, { 0x00006F }}, /* 1D546; 006F; Additional folding */ { 0x01D54A, 0x01D54A, { 0x000073 }}, /* 1D54A; 0073; Additional folding */ { 0x01D54B, 0x01D54B, { 0x000074 }}, /* 1D54B; 0074; Additional folding */ { 0x01D54C, 0x01D54C, { 0x000075 }}, /* 1D54C; 0075; Additional folding */ { 0x01D54D, 0x01D54D, { 0x000076 }}, /* 1D54D; 0076; Additional folding */ { 0x01D54E, 0x01D54E, { 0x000077 }}, /* 1D54E; 0077; Additional folding */ { 0x01D54F, 0x01D54F, { 0x000078 }}, /* 1D54F; 0078; Additional folding */ { 0x01D550, 0x01D550, { 0x000079 }}, /* 1D550; 0079; Additional folding */ { 0x01D56C, 0x01D56C, { 0x000061 }}, /* 1D56C; 0061; Additional folding */ { 0x01D56D, 0x01D56D, { 0x000062 }}, /* 1D56D; 0062; Additional folding */ { 0x01D56E, 0x01D56E, { 0x000063 }}, /* 1D56E; 0063; Additional folding */ { 0x01D56F, 0x01D56F, { 0x000064 }}, /* 1D56F; 0064; Additional folding */ { 0x01D570, 0x01D570, { 0x000065 }}, /* 1D570; 0065; Additional folding */ { 0x01D571, 0x01D571, { 0x000066 }}, /* 1D571; 0066; Additional folding */ { 0x01D572, 0x01D572, { 0x000067 }}, /* 1D572; 0067; Additional folding */ { 0x01D573, 0x01D573, { 0x000068 }}, /* 1D573; 0068; Additional folding */ { 0x01D574, 0x01D574, { 0x000069 }}, /* 1D574; 0069; Additional folding */ { 0x01D575, 0x01D575, { 0x00006A }}, /* 1D575; 006A; Additional folding */ { 0x01D576, 0x01D576, { 0x00006B }}, /* 1D576; 006B; Additional folding */ { 0x01D577, 0x01D577, { 0x00006C }}, /* 1D577; 006C; Additional folding */ { 0x01D578, 0x01D578, { 0x00006D }}, /* 1D578; 006D; Additional folding */ { 0x01D579, 0x01D579, { 0x00006E }}, /* 1D579; 006E; Additional folding */ { 0x01D57A, 0x01D57A, { 0x00006F }}, /* 1D57A; 006F; Additional folding */ { 0x01D57B, 0x01D57B, { 0x000070 }}, /* 1D57B; 0070; Additional folding */ { 0x01D57C, 0x01D57C, { 0x000071 }}, /* 1D57C; 0071; Additional folding */ { 0x01D57D, 0x01D57D, { 0x000072 }}, /* 1D57D; 0072; Additional folding */ { 0x01D57E, 0x01D57E, { 0x000073 }}, /* 1D57E; 0073; Additional folding */ { 0x01D57F, 0x01D57F, { 0x000074 }}, /* 1D57F; 0074; Additional folding */ { 0x01D580, 0x01D580, { 0x000075 }}, /* 1D580; 0075; Additional folding */ { 0x01D581, 0x01D581, { 0x000076 }}, /* 1D581; 0076; Additional folding */ { 0x01D582, 0x01D582, { 0x000077 }}, /* 1D582; 0077; Additional folding */ { 0x01D583, 0x01D583, { 0x000078 }}, /* 1D583; 0078; Additional folding */ { 0x01D584, 0x01D584, { 0x000079 }}, /* 1D584; 0079; Additional folding */ { 0x01D585, 0x01D585, { 0x00007A }}, /* 1D585; 007A; Additional folding */ { 0x01D5A0, 0x01D5A0, { 0x000061 }}, /* 1D5A0; 0061; Additional folding */ { 0x01D5A1, 0x01D5A1, { 0x000062 }}, /* 1D5A1; 0062; Additional folding */ { 0x01D5A2, 0x01D5A2, { 0x000063 }}, /* 1D5A2; 0063; Additional folding */ { 0x01D5A3, 0x01D5A3, { 0x000064 }}, /* 1D5A3; 0064; Additional folding */ { 0x01D5A4, 0x01D5A4, { 0x000065 }}, /* 1D5A4; 0065; Additional folding */ { 0x01D5A5, 0x01D5A5, { 0x000066 }}, /* 1D5A5; 0066; Additional folding */ { 0x01D5A6, 0x01D5A6, { 0x000067 }}, /* 1D5A6; 0067; Additional folding */ { 0x01D5A7, 0x01D5A7, { 0x000068 }}, /* 1D5A7; 0068; Additional folding */ { 0x01D5A8, 0x01D5A8, { 0x000069 }}, /* 1D5A8; 0069; Additional folding */ { 0x01D5A9, 0x01D5A9, { 0x00006A }}, /* 1D5A9; 006A; Additional folding */ { 0x01D5AA, 0x01D5AA, { 0x00006B }}, /* 1D5AA; 006B; Additional folding */ { 0x01D5AB, 0x01D5AB, { 0x00006C }}, /* 1D5AB; 006C; Additional folding */ { 0x01D5AC, 0x01D5AC, { 0x00006D }}, /* 1D5AC; 006D; Additional folding */ { 0x01D5AD, 0x01D5AD, { 0x00006E }}, /* 1D5AD; 006E; Additional folding */ { 0x01D5AE, 0x01D5AE, { 0x00006F }}, /* 1D5AE; 006F; Additional folding */ { 0x01D5AF, 0x01D5AF, { 0x000070 }}, /* 1D5AF; 0070; Additional folding */ { 0x01D5B0, 0x01D5B0, { 0x000071 }}, /* 1D5B0; 0071; Additional folding */ { 0x01D5B1, 0x01D5B1, { 0x000072 }}, /* 1D5B1; 0072; Additional folding */ { 0x01D5B2, 0x01D5B2, { 0x000073 }}, /* 1D5B2; 0073; Additional folding */ { 0x01D5B3, 0x01D5B3, { 0x000074 }}, /* 1D5B3; 0074; Additional folding */ { 0x01D5B4, 0x01D5B4, { 0x000075 }}, /* 1D5B4; 0075; Additional folding */ { 0x01D5B5, 0x01D5B5, { 0x000076 }}, /* 1D5B5; 0076; Additional folding */ { 0x01D5B6, 0x01D5B6, { 0x000077 }}, /* 1D5B6; 0077; Additional folding */ { 0x01D5B7, 0x01D5B7, { 0x000078 }}, /* 1D5B7; 0078; Additional folding */ { 0x01D5B8, 0x01D5B8, { 0x000079 }}, /* 1D5B8; 0079; Additional folding */ { 0x01D5B9, 0x01D5B9, { 0x00007A }}, /* 1D5B9; 007A; Additional folding */ { 0x01D5D4, 0x01D5D4, { 0x000061 }}, /* 1D5D4; 0061; Additional folding */ { 0x01D5D5, 0x01D5D5, { 0x000062 }}, /* 1D5D5; 0062; Additional folding */ { 0x01D5D6, 0x01D5D6, { 0x000063 }}, /* 1D5D6; 0063; Additional folding */ { 0x01D5D7, 0x01D5D7, { 0x000064 }}, /* 1D5D7; 0064; Additional folding */ { 0x01D5D8, 0x01D5D8, { 0x000065 }}, /* 1D5D8; 0065; Additional folding */ { 0x01D5D9, 0x01D5D9, { 0x000066 }}, /* 1D5D9; 0066; Additional folding */ { 0x01D5DA, 0x01D5DA, { 0x000067 }}, /* 1D5DA; 0067; Additional folding */ { 0x01D5DB, 0x01D5DB, { 0x000068 }}, /* 1D5DB; 0068; Additional folding */ { 0x01D5DC, 0x01D5DC, { 0x000069 }}, /* 1D5DC; 0069; Additional folding */ { 0x01D5DD, 0x01D5DD, { 0x00006A }}, /* 1D5DD; 006A; Additional folding */ { 0x01D5DE, 0x01D5DE, { 0x00006B }}, /* 1D5DE; 006B; Additional folding */ { 0x01D5DF, 0x01D5DF, { 0x00006C }}, /* 1D5DF; 006C; Additional folding */ { 0x01D5E0, 0x01D5E0, { 0x00006D }}, /* 1D5E0; 006D; Additional folding */ { 0x01D5E1, 0x01D5E1, { 0x00006E }}, /* 1D5E1; 006E; Additional folding */ { 0x01D5E2, 0x01D5E2, { 0x00006F }}, /* 1D5E2; 006F; Additional folding */ { 0x01D5E3, 0x01D5E3, { 0x000070 }}, /* 1D5E3; 0070; Additional folding */ { 0x01D5E4, 0x01D5E4, { 0x000071 }}, /* 1D5E4; 0071; Additional folding */ { 0x01D5E5, 0x01D5E5, { 0x000072 }}, /* 1D5E5; 0072; Additional folding */ { 0x01D5E6, 0x01D5E6, { 0x000073 }}, /* 1D5E6; 0073; Additional folding */ { 0x01D5E7, 0x01D5E7, { 0x000074 }}, /* 1D5E7; 0074; Additional folding */ { 0x01D5E8, 0x01D5E8, { 0x000075 }}, /* 1D5E8; 0075; Additional folding */ { 0x01D5E9, 0x01D5E9, { 0x000076 }}, /* 1D5E9; 0076; Additional folding */ { 0x01D5EA, 0x01D5EA, { 0x000077 }}, /* 1D5EA; 0077; Additional folding */ { 0x01D5EB, 0x01D5EB, { 0x000078 }}, /* 1D5EB; 0078; Additional folding */ { 0x01D5EC, 0x01D5EC, { 0x000079 }}, /* 1D5EC; 0079; Additional folding */ { 0x01D5ED, 0x01D5ED, { 0x00007A }}, /* 1D5ED; 007A; Additional folding */ { 0x01D608, 0x01D608, { 0x000061 }}, /* 1D608; 0061; Additional folding */ { 0x01D609, 0x01D609, { 0x000062 }}, /* 1D609; 0062; Additional folding */ { 0x01D60A, 0x01D60A, { 0x000063 }}, /* 1D60A; 0063; Additional folding */ { 0x01D60B, 0x01D60B, { 0x000064 }}, /* 1D60B; 0064; Additional folding */ { 0x01D60C, 0x01D60C, { 0x000065 }}, /* 1D60C; 0065; Additional folding */ { 0x01D60D, 0x01D60D, { 0x000066 }}, /* 1D60D; 0066; Additional folding */ { 0x01D60E, 0x01D60E, { 0x000067 }}, /* 1D60E; 0067; Additional folding */ { 0x01D60F, 0x01D60F, { 0x000068 }}, /* 1D60F; 0068; Additional folding */ { 0x01D610, 0x01D610, { 0x000069 }}, /* 1D610; 0069; Additional folding */ { 0x01D611, 0x01D611, { 0x00006A }}, /* 1D611; 006A; Additional folding */ { 0x01D612, 0x01D612, { 0x00006B }}, /* 1D612; 006B; Additional folding */ { 0x01D613, 0x01D613, { 0x00006C }}, /* 1D613; 006C; Additional folding */ { 0x01D614, 0x01D614, { 0x00006D }}, /* 1D614; 006D; Additional folding */ { 0x01D615, 0x01D615, { 0x00006E }}, /* 1D615; 006E; Additional folding */ { 0x01D616, 0x01D616, { 0x00006F }}, /* 1D616; 006F; Additional folding */ { 0x01D617, 0x01D617, { 0x000070 }}, /* 1D617; 0070; Additional folding */ { 0x01D618, 0x01D618, { 0x000071 }}, /* 1D618; 0071; Additional folding */ { 0x01D619, 0x01D619, { 0x000072 }}, /* 1D619; 0072; Additional folding */ { 0x01D61A, 0x01D61A, { 0x000073 }}, /* 1D61A; 0073; Additional folding */ { 0x01D61B, 0x01D61B, { 0x000074 }}, /* 1D61B; 0074; Additional folding */ { 0x01D61C, 0x01D61C, { 0x000075 }}, /* 1D61C; 0075; Additional folding */ { 0x01D61D, 0x01D61D, { 0x000076 }}, /* 1D61D; 0076; Additional folding */ { 0x01D61E, 0x01D61E, { 0x000077 }}, /* 1D61E; 0077; Additional folding */ { 0x01D61F, 0x01D61F, { 0x000078 }}, /* 1D61F; 0078; Additional folding */ { 0x01D620, 0x01D620, { 0x000079 }}, /* 1D620; 0079; Additional folding */ { 0x01D621, 0x01D621, { 0x00007A }}, /* 1D621; 007A; Additional folding */ { 0x01D63C, 0x01D63C, { 0x000061 }}, /* 1D63C; 0061; Additional folding */ { 0x01D63D, 0x01D63D, { 0x000062 }}, /* 1D63D; 0062; Additional folding */ { 0x01D63E, 0x01D63E, { 0x000063 }}, /* 1D63E; 0063; Additional folding */ { 0x01D63F, 0x01D63F, { 0x000064 }}, /* 1D63F; 0064; Additional folding */ { 0x01D640, 0x01D640, { 0x000065 }}, /* 1D640; 0065; Additional folding */ { 0x01D641, 0x01D641, { 0x000066 }}, /* 1D641; 0066; Additional folding */ { 0x01D642, 0x01D642, { 0x000067 }}, /* 1D642; 0067; Additional folding */ { 0x01D643, 0x01D643, { 0x000068 }}, /* 1D643; 0068; Additional folding */ { 0x01D644, 0x01D644, { 0x000069 }}, /* 1D644; 0069; Additional folding */ { 0x01D645, 0x01D645, { 0x00006A }}, /* 1D645; 006A; Additional folding */ { 0x01D646, 0x01D646, { 0x00006B }}, /* 1D646; 006B; Additional folding */ { 0x01D647, 0x01D647, { 0x00006C }}, /* 1D647; 006C; Additional folding */ { 0x01D648, 0x01D648, { 0x00006D }}, /* 1D648; 006D; Additional folding */ { 0x01D649, 0x01D649, { 0x00006E }}, /* 1D649; 006E; Additional folding */ { 0x01D64A, 0x01D64A, { 0x00006F }}, /* 1D64A; 006F; Additional folding */ { 0x01D64B, 0x01D64B, { 0x000070 }}, /* 1D64B; 0070; Additional folding */ { 0x01D64C, 0x01D64C, { 0x000071 }}, /* 1D64C; 0071; Additional folding */ { 0x01D64D, 0x01D64D, { 0x000072 }}, /* 1D64D; 0072; Additional folding */ { 0x01D64E, 0x01D64E, { 0x000073 }}, /* 1D64E; 0073; Additional folding */ { 0x01D64F, 0x01D64F, { 0x000074 }}, /* 1D64F; 0074; Additional folding */ { 0x01D650, 0x01D650, { 0x000075 }}, /* 1D650; 0075; Additional folding */ { 0x01D651, 0x01D651, { 0x000076 }}, /* 1D651; 0076; Additional folding */ { 0x01D652, 0x01D652, { 0x000077 }}, /* 1D652; 0077; Additional folding */ { 0x01D653, 0x01D653, { 0x000078 }}, /* 1D653; 0078; Additional folding */ { 0x01D654, 0x01D654, { 0x000079 }}, /* 1D654; 0079; Additional folding */ { 0x01D655, 0x01D655, { 0x00007A }}, /* 1D655; 007A; Additional folding */ { 0x01D670, 0x01D670, { 0x000061 }}, /* 1D670; 0061; Additional folding */ { 0x01D671, 0x01D671, { 0x000062 }}, /* 1D671; 0062; Additional folding */ { 0x01D672, 0x01D672, { 0x000063 }}, /* 1D672; 0063; Additional folding */ { 0x01D673, 0x01D673, { 0x000064 }}, /* 1D673; 0064; Additional folding */ { 0x01D674, 0x01D674, { 0x000065 }}, /* 1D674; 0065; Additional folding */ { 0x01D675, 0x01D675, { 0x000066 }}, /* 1D675; 0066; Additional folding */ { 0x01D676, 0x01D676, { 0x000067 }}, /* 1D676; 0067; Additional folding */ { 0x01D677, 0x01D677, { 0x000068 }}, /* 1D677; 0068; Additional folding */ { 0x01D678, 0x01D678, { 0x000069 }}, /* 1D678; 0069; Additional folding */ { 0x01D679, 0x01D679, { 0x00006A }}, /* 1D679; 006A; Additional folding */ { 0x01D67A, 0x01D67A, { 0x00006B }}, /* 1D67A; 006B; Additional folding */ { 0x01D67B, 0x01D67B, { 0x00006C }}, /* 1D67B; 006C; Additional folding */ { 0x01D67C, 0x01D67C, { 0x00006D }}, /* 1D67C; 006D; Additional folding */ { 0x01D67D, 0x01D67D, { 0x00006E }}, /* 1D67D; 006E; Additional folding */ { 0x01D67E, 0x01D67E, { 0x00006F }}, /* 1D67E; 006F; Additional folding */ { 0x01D67F, 0x01D67F, { 0x000070 }}, /* 1D67F; 0070; Additional folding */ { 0x01D680, 0x01D680, { 0x000071 }}, /* 1D680; 0071; Additional folding */ { 0x01D681, 0x01D681, { 0x000072 }}, /* 1D681; 0072; Additional folding */ { 0x01D682, 0x01D682, { 0x000073 }}, /* 1D682; 0073; Additional folding */ { 0x01D683, 0x01D683, { 0x000074 }}, /* 1D683; 0074; Additional folding */ { 0x01D684, 0x01D684, { 0x000075 }}, /* 1D684; 0075; Additional folding */ { 0x01D685, 0x01D685, { 0x000076 }}, /* 1D685; 0076; Additional folding */ { 0x01D686, 0x01D686, { 0x000077 }}, /* 1D686; 0077; Additional folding */ { 0x01D687, 0x01D687, { 0x000078 }}, /* 1D687; 0078; Additional folding */ { 0x01D688, 0x01D688, { 0x000079 }}, /* 1D688; 0079; Additional folding */ { 0x01D689, 0x01D689, { 0x00007A }}, /* 1D689; 007A; Additional folding */ { 0x01D6A8, 0x01D6A8, { 0x0003B1 }}, /* 1D6A8; 03B1; Additional folding */ { 0x01D6A9, 0x01D6A9, { 0x0003B2 }}, /* 1D6A9; 03B2; Additional folding */ { 0x01D6AA, 0x01D6AA, { 0x0003B3 }}, /* 1D6AA; 03B3; Additional folding */ { 0x01D6AB, 0x01D6AB, { 0x0003B4 }}, /* 1D6AB; 03B4; Additional folding */ { 0x01D6AC, 0x01D6AC, { 0x0003B5 }}, /* 1D6AC; 03B5; Additional folding */ { 0x01D6AD, 0x01D6AD, { 0x0003B6 }}, /* 1D6AD; 03B6; Additional folding */ { 0x01D6AE, 0x01D6AE, { 0x0003B7 }}, /* 1D6AE; 03B7; Additional folding */ { 0x01D6AF, 0x01D6AF, { 0x0003B8 }}, /* 1D6AF; 03B8; Additional folding */ { 0x01D6B0, 0x01D6B0, { 0x0003B9 }}, /* 1D6B0; 03B9; Additional folding */ { 0x01D6B1, 0x01D6B1, { 0x0003BA }}, /* 1D6B1; 03BA; Additional folding */ { 0x01D6B2, 0x01D6B2, { 0x0003BB }}, /* 1D6B2; 03BB; Additional folding */ { 0x01D6B3, 0x01D6B3, { 0x0003BC }}, /* 1D6B3; 03BC; Additional folding */ { 0x01D6B4, 0x01D6B4, { 0x0003BD }}, /* 1D6B4; 03BD; Additional folding */ { 0x01D6B5, 0x01D6B5, { 0x0003BE }}, /* 1D6B5; 03BE; Additional folding */ { 0x01D6B6, 0x01D6B6, { 0x0003BF }}, /* 1D6B6; 03BF; Additional folding */ { 0x01D6B7, 0x01D6B7, { 0x0003C0 }}, /* 1D6B7; 03C0; Additional folding */ { 0x01D6B8, 0x01D6B8, { 0x0003C1 }}, /* 1D6B8; 03C1; Additional folding */ { 0x01D6B9, 0x01D6B9, { 0x0003B8 }}, /* 1D6B9; 03B8; Additional folding */ { 0x01D6BA, 0x01D6BA, { 0x0003C3 }}, /* 1D6BA; 03C3; Additional folding */ { 0x01D6BB, 0x01D6BB, { 0x0003C4 }}, /* 1D6BB; 03C4; Additional folding */ { 0x01D6BC, 0x01D6BC, { 0x0003C5 }}, /* 1D6BC; 03C5; Additional folding */ { 0x01D6BD, 0x01D6BD, { 0x0003C6 }}, /* 1D6BD; 03C6; Additional folding */ { 0x01D6BE, 0x01D6BE, { 0x0003C7 }}, /* 1D6BE; 03C7; Additional folding */ { 0x01D6BF, 0x01D6BF, { 0x0003C8 }}, /* 1D6BF; 03C8; Additional folding */ { 0x01D6C0, 0x01D6C0, { 0x0003C9 }}, /* 1D6C0; 03C9; Additional folding */ { 0x01D6D3, 0x01D6D3, { 0x0003C3 }}, /* 1D6D3; 03C3; Additional folding */ { 0x01D6E2, 0x01D6E2, { 0x0003B1 }}, /* 1D6E2; 03B1; Additional folding */ { 0x01D6E3, 0x01D6E3, { 0x0003B2 }}, /* 1D6E3; 03B2; Additional folding */ { 0x01D6E4, 0x01D6E4, { 0x0003B3 }}, /* 1D6E4; 03B3; Additional folding */ { 0x01D6E5, 0x01D6E5, { 0x0003B4 }}, /* 1D6E5; 03B4; Additional folding */ { 0x01D6E6, 0x01D6E6, { 0x0003B5 }}, /* 1D6E6; 03B5; Additional folding */ { 0x01D6E7, 0x01D6E7, { 0x0003B6 }}, /* 1D6E7; 03B6; Additional folding */ { 0x01D6E8, 0x01D6E8, { 0x0003B7 }}, /* 1D6E8; 03B7; Additional folding */ { 0x01D6E9, 0x01D6E9, { 0x0003B8 }}, /* 1D6E9; 03B8; Additional folding */ { 0x01D6EA, 0x01D6EA, { 0x0003B9 }}, /* 1D6EA; 03B9; Additional folding */ { 0x01D6EB, 0x01D6EB, { 0x0003BA }}, /* 1D6EB; 03BA; Additional folding */ { 0x01D6EC, 0x01D6EC, { 0x0003BB }}, /* 1D6EC; 03BB; Additional folding */ { 0x01D6ED, 0x01D6ED, { 0x0003BC }}, /* 1D6ED; 03BC; Additional folding */ { 0x01D6EE, 0x01D6EE, { 0x0003BD }}, /* 1D6EE; 03BD; Additional folding */ { 0x01D6EF, 0x01D6EF, { 0x0003BE }}, /* 1D6EF; 03BE; Additional folding */ { 0x01D6F0, 0x01D6F0, { 0x0003BF }}, /* 1D6F0; 03BF; Additional folding */ { 0x01D6F1, 0x01D6F1, { 0x0003C0 }}, /* 1D6F1; 03C0; Additional folding */ { 0x01D6F2, 0x01D6F2, { 0x0003C1 }}, /* 1D6F2; 03C1; Additional folding */ { 0x01D6F3, 0x01D6F3, { 0x0003B8 }}, /* 1D6F3; 03B8; Additional folding */ { 0x01D6F4, 0x01D6F4, { 0x0003C3 }}, /* 1D6F4; 03C3; Additional folding */ { 0x01D6F5, 0x01D6F5, { 0x0003C4 }}, /* 1D6F5; 03C4; Additional folding */ { 0x01D6F6, 0x01D6F6, { 0x0003C5 }}, /* 1D6F6; 03C5; Additional folding */ { 0x01D6F7, 0x01D6F7, { 0x0003C6 }}, /* 1D6F7; 03C6; Additional folding */ { 0x01D6F8, 0x01D6F8, { 0x0003C7 }}, /* 1D6F8; 03C7; Additional folding */ { 0x01D6F9, 0x01D6F9, { 0x0003C8 }}, /* 1D6F9; 03C8; Additional folding */ { 0x01D6FA, 0x01D6FA, { 0x0003C9 }}, /* 1D6FA; 03C9; Additional folding */ { 0x01D70D, 0x01D70D, { 0x0003C3 }}, /* 1D70D; 03C3; Additional folding */ { 0x01D71C, 0x01D71C, { 0x0003B1 }}, /* 1D71C; 03B1; Additional folding */ { 0x01D71D, 0x01D71D, { 0x0003B2 }}, /* 1D71D; 03B2; Additional folding */ { 0x01D71E, 0x01D71E, { 0x0003B3 }}, /* 1D71E; 03B3; Additional folding */ { 0x01D71F, 0x01D71F, { 0x0003B4 }}, /* 1D71F; 03B4; Additional folding */ { 0x01D720, 0x01D720, { 0x0003B5 }}, /* 1D720; 03B5; Additional folding */ { 0x01D721, 0x01D721, { 0x0003B6 }}, /* 1D721; 03B6; Additional folding */ { 0x01D722, 0x01D722, { 0x0003B7 }}, /* 1D722; 03B7; Additional folding */ { 0x01D723, 0x01D723, { 0x0003B8 }}, /* 1D723; 03B8; Additional folding */ { 0x01D724, 0x01D724, { 0x0003B9 }}, /* 1D724; 03B9; Additional folding */ { 0x01D725, 0x01D725, { 0x0003BA }}, /* 1D725; 03BA; Additional folding */ { 0x01D726, 0x01D726, { 0x0003BB }}, /* 1D726; 03BB; Additional folding */ { 0x01D727, 0x01D727, { 0x0003BC }}, /* 1D727; 03BC; Additional folding */ { 0x01D728, 0x01D728, { 0x0003BD }}, /* 1D728; 03BD; Additional folding */ { 0x01D729, 0x01D729, { 0x0003BE }}, /* 1D729; 03BE; Additional folding */ { 0x01D72A, 0x01D72A, { 0x0003BF }}, /* 1D72A; 03BF; Additional folding */ { 0x01D72B, 0x01D72B, { 0x0003C0 }}, /* 1D72B; 03C0; Additional folding */ { 0x01D72C, 0x01D72C, { 0x0003C1 }}, /* 1D72C; 03C1; Additional folding */ { 0x01D72D, 0x01D72D, { 0x0003B8 }}, /* 1D72D; 03B8; Additional folding */ { 0x01D72E, 0x01D72E, { 0x0003C3 }}, /* 1D72E; 03C3; Additional folding */ { 0x01D72F, 0x01D72F, { 0x0003C4 }}, /* 1D72F; 03C4; Additional folding */ { 0x01D730, 0x01D730, { 0x0003C5 }}, /* 1D730; 03C5; Additional folding */ { 0x01D731, 0x01D731, { 0x0003C6 }}, /* 1D731; 03C6; Additional folding */ { 0x01D732, 0x01D732, { 0x0003C7 }}, /* 1D732; 03C7; Additional folding */ { 0x01D733, 0x01D733, { 0x0003C8 }}, /* 1D733; 03C8; Additional folding */ { 0x01D734, 0x01D734, { 0x0003C9 }}, /* 1D734; 03C9; Additional folding */ { 0x01D747, 0x01D747, { 0x0003C3 }}, /* 1D747; 03C3; Additional folding */ { 0x01D756, 0x01D756, { 0x0003B1 }}, /* 1D756; 03B1; Additional folding */ { 0x01D757, 0x01D757, { 0x0003B2 }}, /* 1D757; 03B2; Additional folding */ { 0x01D758, 0x01D758, { 0x0003B3 }}, /* 1D758; 03B3; Additional folding */ { 0x01D759, 0x01D759, { 0x0003B4 }}, /* 1D759; 03B4; Additional folding */ { 0x01D75A, 0x01D75A, { 0x0003B5 }}, /* 1D75A; 03B5; Additional folding */ { 0x01D75B, 0x01D75B, { 0x0003B6 }}, /* 1D75B; 03B6; Additional folding */ { 0x01D75C, 0x01D75C, { 0x0003B7 }}, /* 1D75C; 03B7; Additional folding */ { 0x01D75D, 0x01D75D, { 0x0003B8 }}, /* 1D75D; 03B8; Additional folding */ { 0x01D75E, 0x01D75E, { 0x0003B9 }}, /* 1D75E; 03B9; Additional folding */ { 0x01D75F, 0x01D75F, { 0x0003BA }}, /* 1D75F; 03BA; Additional folding */ { 0x01D760, 0x01D760, { 0x0003BB }}, /* 1D760; 03BB; Additional folding */ { 0x01D761, 0x01D761, { 0x0003BC }}, /* 1D761; 03BC; Additional folding */ { 0x01D762, 0x01D762, { 0x0003BD }}, /* 1D762; 03BD; Additional folding */ { 0x01D763, 0x01D763, { 0x0003BE }}, /* 1D763; 03BE; Additional folding */ { 0x01D764, 0x01D764, { 0x0003BF }}, /* 1D764; 03BF; Additional folding */ { 0x01D765, 0x01D765, { 0x0003C0 }}, /* 1D765; 03C0; Additional folding */ { 0x01D766, 0x01D766, { 0x0003C1 }}, /* 1D766; 03C1; Additional folding */ { 0x01D767, 0x01D767, { 0x0003B8 }}, /* 1D767; 03B8; Additional folding */ { 0x01D768, 0x01D768, { 0x0003C3 }}, /* 1D768; 03C3; Additional folding */ { 0x01D769, 0x01D769, { 0x0003C4 }}, /* 1D769; 03C4; Additional folding */ { 0x01D76A, 0x01D76A, { 0x0003C5 }}, /* 1D76A; 03C5; Additional folding */ { 0x01D76B, 0x01D76B, { 0x0003C6 }}, /* 1D76B; 03C6; Additional folding */ { 0x01D76C, 0x01D76C, { 0x0003C7 }}, /* 1D76C; 03C7; Additional folding */ { 0x01D76D, 0x01D76D, { 0x0003C8 }}, /* 1D76D; 03C8; Additional folding */ { 0x01D76E, 0x01D76E, { 0x0003C9 }}, /* 1D76E; 03C9; Additional folding */ { 0x01D781, 0x01D781, { 0x0003C3 }}, /* 1D781; 03C3; Additional folding */ { 0x01D790, 0x01D790, { 0x0003B1 }}, /* 1D790; 03B1; Additional folding */ { 0x01D791, 0x01D791, { 0x0003B2 }}, /* 1D791; 03B2; Additional folding */ { 0x01D792, 0x01D792, { 0x0003B3 }}, /* 1D792; 03B3; Additional folding */ { 0x01D793, 0x01D793, { 0x0003B4 }}, /* 1D793; 03B4; Additional folding */ { 0x01D794, 0x01D794, { 0x0003B5 }}, /* 1D794; 03B5; Additional folding */ { 0x01D795, 0x01D795, { 0x0003B6 }}, /* 1D795; 03B6; Additional folding */ { 0x01D796, 0x01D796, { 0x0003B7 }}, /* 1D796; 03B7; Additional folding */ { 0x01D797, 0x01D797, { 0x0003B8 }}, /* 1D797; 03B8; Additional folding */ { 0x01D798, 0x01D798, { 0x0003B9 }}, /* 1D798; 03B9; Additional folding */ { 0x01D799, 0x01D799, { 0x0003BA }}, /* 1D799; 03BA; Additional folding */ { 0x01D79A, 0x01D79A, { 0x0003BB }}, /* 1D79A; 03BB; Additional folding */ { 0x01D79B, 0x01D79B, { 0x0003BC }}, /* 1D79B; 03BC; Additional folding */ { 0x01D79C, 0x01D79C, { 0x0003BD }}, /* 1D79C; 03BD; Additional folding */ { 0x01D79D, 0x01D79D, { 0x0003BE }}, /* 1D79D; 03BE; Additional folding */ { 0x01D79E, 0x01D79E, { 0x0003BF }}, /* 1D79E; 03BF; Additional folding */ { 0x01D79F, 0x01D79F, { 0x0003C0 }}, /* 1D79F; 03C0; Additional folding */ { 0x01D7A0, 0x01D7A0, { 0x0003C1 }}, /* 1D7A0; 03C1; Additional folding */ { 0x01D7A1, 0x01D7A1, { 0x0003B8 }}, /* 1D7A1; 03B8; Additional folding */ { 0x01D7A2, 0x01D7A2, { 0x0003C3 }}, /* 1D7A2; 03C3; Additional folding */ { 0x01D7A3, 0x01D7A3, { 0x0003C4 }}, /* 1D7A3; 03C4; Additional folding */ { 0x01D7A4, 0x01D7A4, { 0x0003C5 }}, /* 1D7A4; 03C5; Additional folding */ { 0x01D7A5, 0x01D7A5, { 0x0003C6 }}, /* 1D7A5; 03C6; Additional folding */ { 0x01D7A6, 0x01D7A6, { 0x0003C7 }}, /* 1D7A6; 03C7; Additional folding */ { 0x01D7A7, 0x01D7A7, { 0x0003C8 }}, /* 1D7A7; 03C8; Additional folding */ { 0x01D7A8, 0x01D7A8, { 0x0003C9 }}, /* 1D7A8; 03C9; Additional folding */ { 0x01D7BB, 0x01D7BB, { 0x0003C3 }}, /* 1D7BB; 03C3; Additional folding */ { 0 }, }; /* * FF3A; FF5A; Case map * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 1D400; 0061; Additional folding 1D401; 0062; Additional folding 1D402; 0063; Additional folding 1D403; 0064; Additional folding 1D404; 0065; Additional folding 1D405; 0066; Additional folding 1D406; 0067; Additional folding 1D407; 0068; Additional folding 1D408; 0069; Additional folding 1D409; 006A; Additional folding 1D40A; 006B; Additional folding 1D40B; 006C; Additional folding 1D40C; 006D; Additional folding 1D40D; 006E; Additional folding 1D40E; 006F; Additional folding 1D40F; 0070; Additional folding 1D410; 0071; Additional folding 1D411; 0072; Additional folding 1D412; 0073; Additional folding 1D413; 0074; Additional folding 1D414; 0075; Additional folding 1D415; 0076; Additional folding 1D416; 0077; Additional folding 1D417; 0078; Additional folding 1D418; 0079; Additional folding 1D419; 007A; Additional folding 1D434; 0061; Additional folding 1D435; 0062; Additional folding 1D436; 0063; Additional folding 1D437; 0064; Additional folding 1D438; 0065; Additional folding 1D439; 0066; Additional folding 1D43A; 0067; Additional folding 1D43B; 0068; Additional folding 1D43C; 0069; Additional folding 1D43D; 006A; Additional folding 1D43E; 006B; Additional folding 1D43F; 006C; Additional folding 1D440; 006D; Additional folding 1D441; 006E; Additional folding 1D442; 006F; Additional folding 1D443; 0070; Additional folding 1D444; 0071; Additional folding 1D445; 0072; Additional folding 1D446; 0073; Additional folding 1D447; 0074; Additional folding 1D448; 0075; Additional folding 1D449; 0076; Additional folding 1D44A; 0077; Additional folding 1D44B; 0078; Additional folding 1D44C; 0079; Additional folding 1D44D; 007A; Additional folding 1D468; 0061; Additional folding 1D469; 0062; Additional folding 1D46A; 0063; Additional folding 1D46B; 0064; Additional folding 1D46C; 0065; Additional folding 1D46D; 0066; Additional folding 1D46E; 0067; Additional folding 1D46F; 0068; Additional folding 1D470; 0069; Additional folding 1D471; 006A; Additional folding 1D472; 006B; Additional folding 1D473; 006C; Additional folding 1D474; 006D; Additional folding 1D475; 006E; Additional folding 1D476; 006F; Additional folding 1D477; 0070; Additional folding 1D478; 0071; Additional folding 1D479; 0072; Additional folding 1D47A; 0073; Additional folding 1D47B; 0074; Additional folding 1D47C; 0075; Additional folding 1D47D; 0076; Additional folding 1D47E; 0077; Additional folding 1D47F; 0078; Additional folding 1D480; 0079; Additional folding 1D481; 007A; Additional folding 1D49C; 0061; Additional folding 1D49E; 0063; Additional folding 1D49F; 0064; Additional folding 1D4A2; 0067; Additional folding 1D4A5; 006A; Additional folding 1D4A6; 006B; Additional folding 1D4A9; 006E; Additional folding 1D4AA; 006F; Additional folding 1D4AB; 0070; Additional folding 1D4AC; 0071; Additional folding 1D4AE; 0073; Additional folding 1D4AF; 0074; Additional folding 1D4B0; 0075; Additional folding 1D4B1; 0076; Additional folding 1D4B2; 0077; Additional folding 1D4B3; 0078; Additional folding 1D4B4; 0079; Additional folding 1D4B5; 007A; Additional folding 1D4D0; 0061; Additional folding 1D4D1; 0062; Additional folding 1D4D2; 0063; Additional folding 1D4D3; 0064; Additional folding 1D4D4; 0065; Additional folding 1D4D5; 0066; Additional folding 1D4D6; 0067; Additional folding 1D4D7; 0068; Additional folding 1D4D8; 0069; Additional folding 1D4D9; 006A; Additional folding 1D4DA; 006B; Additional folding 1D4DB; 006C; Additional folding 1D4DC; 006D; Additional folding 1D4DD; 006E; Additional folding 1D4DE; 006F; Additional folding 1D4DF; 0070; Additional folding 1D4E0; 0071; Additional folding 1D4E1; 0072; Additional folding 1D4E2; 0073; Additional folding 1D4E3; 0074; Additional folding 1D4E4; 0075; Additional folding 1D4E5; 0076; Additional folding 1D4E6; 0077; Additional folding 1D4E7; 0078; Additional folding 1D4E8; 0079; Additional folding 1D4E9; 007A; Additional folding 1D504; 0061; Additional folding 1D505; 0062; Additional folding 1D507; 0064; Additional folding 1D508; 0065; Additional folding 1D509; 0066; Additional folding 1D50A; 0067; Additional folding 1D50D; 006A; Additional folding 1D50E; 006B; Additional folding 1D50F; 006C; Additional folding 1D510; 006D; Additional folding 1D511; 006E; Additional folding 1D512; 006F; Additional folding 1D513; 0070; Additional folding 1D514; 0071; Additional folding 1D516; 0073; Additional folding 1D517; 0074; Additional folding 1D518; 0075; Additional folding 1D519; 0076; Additional folding 1D51A; 0077; Additional folding 1D51B; 0078; Additional folding 1D51C; 0079; Additional folding 1D538; 0061; Additional folding 1D539; 0062; Additional folding 1D53B; 0064; Additional folding 1D53C; 0065; Additional folding 1D53D; 0066; Additional folding 1D53E; 0067; Additional folding 1D540; 0069; Additional folding 1D541; 006A; Additional folding 1D542; 006B; Additional folding 1D543; 006C; Additional folding 1D544; 006D; Additional folding 1D546; 006F; Additional folding 1D54A; 0073; Additional folding 1D54B; 0074; Additional folding 1D54C; 0075; Additional folding 1D54D; 0076; Additional folding 1D54E; 0077; Additional folding 1D54F; 0078; Additional folding 1D550; 0079; Additional folding 1D56C; 0061; Additional folding 1D56D; 0062; Additional folding 1D56E; 0063; Additional folding 1D56F; 0064; Additional folding 1D570; 0065; Additional folding 1D571; 0066; Additional folding 1D572; 0067; Additional folding 1D573; 0068; Additional folding 1D574; 0069; Additional folding 1D575; 006A; Additional folding 1D576; 006B; Additional folding 1D577; 006C; Additional folding 1D578; 006D; Additional folding 1D579; 006E; Additional folding 1D57A; 006F; Additional folding 1D57B; 0070; Additional folding 1D57C; 0071; Additional folding 1D57D; 0072; Additional folding 1D57E; 0073; Additional folding 1D57F; 0074; Additional folding 1D580; 0075; Additional folding 1D581; 0076; Additional folding 1D582; 0077; Additional folding 1D583; 0078; Additional folding 1D584; 0079; Additional folding 1D585; 007A; Additional folding 1D5A0; 0061; Additional folding 1D5A1; 0062; Additional folding 1D5A2; 0063; Additional folding 1D5A3; 0064; Additional folding 1D5A4; 0065; Additional folding 1D5A5; 0066; Additional folding 1D5A6; 0067; Additional folding 1D5A7; 0068; Additional folding 1D5A8; 0069; Additional folding 1D5A9; 006A; Additional folding 1D5AA; 006B; Additional folding 1D5AB; 006C; Additional folding 1D5AC; 006D; Additional folding 1D5AD; 006E; Additional folding 1D5AE; 006F; Additional folding 1D5AF; 0070; Additional folding 1D5B0; 0071; Additional folding 1D5B1; 0072; Additional folding 1D5B2; 0073; Additional folding 1D5B3; 0074; Additional folding 1D5B4; 0075; Additional folding 1D5B5; 0076; Additional folding 1D5B6; 0077; Additional folding 1D5B7; 0078; Additional folding 1D5B8; 0079; Additional folding 1D5B9; 007A; Additional folding 1D5D4; 0061; Additional folding 1D5D5; 0062; Additional folding 1D5D6; 0063; Additional folding 1D5D7; 0064; Additional folding 1D5D8; 0065; Additional folding 1D5D9; 0066; Additional folding 1D5DA; 0067; Additional folding 1D5DB; 0068; Additional folding 1D5DC; 0069; Additional folding 1D5DD; 006A; Additional folding 1D5DE; 006B; Additional folding 1D5DF; 006C; Additional folding 1D5E0; 006D; Additional folding 1D5E1; 006E; Additional folding 1D5E2; 006F; Additional folding 1D5E3; 0070; Additional folding 1D5E4; 0071; Additional folding 1D5E5; 0072; Additional folding 1D5E6; 0073; Additional folding 1D5E7; 0074; Additional folding 1D5E8; 0075; Additional folding 1D5E9; 0076; Additional folding 1D5EA; 0077; Additional folding 1D5EB; 0078; Additional folding 1D5EC; 0079; Additional folding 1D5ED; 007A; Additional folding 1D608; 0061; Additional folding 1D609; 0062; Additional folding 1D60A; 0063; Additional folding 1D60B; 0064; Additional folding 1D60C; 0065; Additional folding 1D60D; 0066; Additional folding 1D60E; 0067; Additional folding 1D60F; 0068; Additional folding 1D610; 0069; Additional folding 1D611; 006A; Additional folding 1D612; 006B; Additional folding 1D613; 006C; Additional folding 1D614; 006D; Additional folding 1D615; 006E; Additional folding 1D616; 006F; Additional folding 1D617; 0070; Additional folding 1D618; 0071; Additional folding 1D619; 0072; Additional folding 1D61A; 0073; Additional folding 1D61B; 0074; Additional folding 1D61C; 0075; Additional folding 1D61D; 0076; Additional folding 1D61E; 0077; Additional folding 1D61F; 0078; Additional folding 1D620; 0079; Additional folding 1D621; 007A; Additional folding 1D63C; 0061; Additional folding 1D63D; 0062; Additional folding 1D63E; 0063; Additional folding 1D63F; 0064; Additional folding 1D640; 0065; Additional folding 1D641; 0066; Additional folding 1D642; 0067; Additional folding 1D643; 0068; Additional folding 1D644; 0069; Additional folding 1D645; 006A; Additional folding 1D646; 006B; Additional folding 1D647; 006C; Additional folding 1D648; 006D; Additional folding 1D649; 006E; Additional folding 1D64A; 006F; Additional folding 1D64B; 0070; Additional folding 1D64C; 0071; Additional folding 1D64D; 0072; Additional folding 1D64E; 0073; Additional folding 1D64F; 0074; Additional folding 1D650; 0075; Additional folding 1D651; 0076; Additional folding 1D652; 0077; Additional folding 1D653; 0078; Additional folding 1D654; 0079; Additional folding 1D655; 007A; Additional folding 1D670; 0061; Additional folding 1D671; 0062; Additional folding 1D672; 0063; Additional folding 1D673; 0064; Additional folding 1D674; 0065; Additional folding 1D675; 0066; Additional folding 1D676; 0067; Additional folding 1D677; 0068; Additional folding 1D678; 0069; Additional folding 1D679; 006A; Additional folding 1D67A; 006B; Additional folding 1D67B; 006C; Additional folding 1D67C; 006D; Additional folding 1D67D; 006E; Additional folding 1D67E; 006F; Additional folding 1D67F; 0070; Additional folding 1D680; 0071; Additional folding 1D681; 0072; Additional folding 1D682; 0073; Additional folding 1D683; 0074; Additional folding 1D684; 0075; Additional folding 1D685; 0076; Additional folding 1D686; 0077; Additional folding 1D687; 0078; Additional folding 1D688; 0079; Additional folding 1D689; 007A; Additional folding 1D6A8; 03B1; Additional folding 1D6A9; 03B2; Additional folding 1D6AA; 03B3; Additional folding 1D6AB; 03B4; Additional folding 1D6AC; 03B5; Additional folding 1D6AD; 03B6; Additional folding 1D6AE; 03B7; Additional folding 1D6AF; 03B8; Additional folding 1D6B0; 03B9; Additional folding 1D6B1; 03BA; Additional folding 1D6B2; 03BB; Additional folding 1D6B3; 03BC; Additional folding 1D6B4; 03BD; Additional folding 1D6B5; 03BE; Additional folding 1D6B6; 03BF; Additional folding 1D6B7; 03C0; Additional folding 1D6B8; 03C1; Additional folding 1D6B9; 03B8; Additional folding 1D6BA; 03C3; Additional folding 1D6BB; 03C4; Additional folding 1D6BC; 03C5; Additional folding 1D6BD; 03C6; Additional folding 1D6BE; 03C7; Additional folding 1D6BF; 03C8; Additional folding 1D6C0; 03C9; Additional folding 1D6D3; 03C3; Additional folding 1D6E2; 03B1; Additional folding 1D6E3; 03B2; Additional folding 1D6E4; 03B3; Additional folding 1D6E5; 03B4; Additional folding 1D6E6; 03B5; Additional folding 1D6E7; 03B6; Additional folding 1D6E8; 03B7; Additional folding 1D6E9; 03B8; Additional folding 1D6EA; 03B9; Additional folding 1D6EB; 03BA; Additional folding 1D6EC; 03BB; Additional folding 1D6ED; 03BC; Additional folding 1D6EE; 03BD; Additional folding 1D6EF; 03BE; Additional folding 1D6F0; 03BF; Additional folding 1D6F1; 03C0; Additional folding 1D6F2; 03C1; Additional folding 1D6F3; 03B8; Additional folding 1D6F4; 03C3; Additional folding 1D6F5; 03C4; Additional folding 1D6F6; 03C5; Additional folding 1D6F7; 03C6; Additional folding 1D6F8; 03C7; Additional folding 1D6F9; 03C8; Additional folding 1D6FA; 03C9; Additional folding 1D70D; 03C3; Additional folding 1D71C; 03B1; Additional folding 1D71D; 03B2; Additional folding 1D71E; 03B3; Additional folding 1D71F; 03B4; Additional folding 1D720; 03B5; Additional folding 1D721; 03B6; Additional folding 1D722; 03B7; Additional folding 1D723; 03B8; Additional folding 1D724; 03B9; Additional folding 1D725; 03BA; Additional folding 1D726; 03BB; Additional folding 1D727; 03BC; Additional folding 1D728; 03BD; Additional folding 1D729; 03BE; Additional folding 1D72A; 03BF; Additional folding 1D72B; 03C0; Additional folding 1D72C; 03C1; Additional folding 1D72D; 03B8; Additional folding 1D72E; 03C3; Additional folding 1D72F; 03C4; Additional folding 1D730; 03C5; Additional folding 1D731; 03C6; Additional folding 1D732; 03C7; Additional folding 1D733; 03C8; Additional folding 1D734; 03C9; Additional folding 1D747; 03C3; Additional folding 1D756; 03B1; Additional folding 1D757; 03B2; Additional folding 1D758; 03B3; Additional folding 1D759; 03B4; Additional folding 1D75A; 03B5; Additional folding 1D75B; 03B6; Additional folding 1D75C; 03B7; Additional folding 1D75D; 03B8; Additional folding 1D75E; 03B9; Additional folding 1D75F; 03BA; Additional folding 1D760; 03BB; Additional folding 1D761; 03BC; Additional folding 1D762; 03BD; Additional folding 1D763; 03BE; Additional folding 1D764; 03BF; Additional folding 1D765; 03C0; Additional folding 1D766; 03C1; Additional folding 1D767; 03B8; Additional folding 1D768; 03C3; Additional folding 1D769; 03C4; Additional folding 1D76A; 03C5; Additional folding 1D76B; 03C6; Additional folding 1D76C; 03C7; Additional folding 1D76D; 03C8; Additional folding 1D76E; 03C9; Additional folding 1D781; 03C3; Additional folding 1D790; 03B1; Additional folding 1D791; 03B2; Additional folding 1D792; 03B3; Additional folding 1D793; 03B4; Additional folding 1D794; 03B5; Additional folding 1D795; 03B6; Additional folding 1D796; 03B7; Additional folding 1D797; 03B8; Additional folding 1D798; 03B9; Additional folding 1D799; 03BA; Additional folding 1D79A; 03BB; Additional folding 1D79B; 03BC; Additional folding 1D79C; 03BD; Additional folding 1D79D; 03BE; Additional folding 1D79E; 03BF; Additional folding 1D79F; 03C0; Additional folding 1D7A0; 03C1; Additional folding 1D7A1; 03B8; Additional folding 1D7A2; 03C3; Additional folding 1D7A3; 03C4; Additional folding 1D7A4; 03C5; Additional folding 1D7A5; 03C6; Additional folding 1D7A6; 03C7; Additional folding 1D7A7; 03C8; Additional folding 1D7A8; 03C9; Additional folding 1D7BB; 03C3; Additional folding */ const Stringprep_table_element stringprep_rfc3454_B_3[] = { { 0x000041, 0x000041, { 0x000061 }}, /* 0041; 0061; Case map */ { 0x000042, 0x000042, { 0x000062 }}, /* 0042; 0062; Case map */ { 0x000043, 0x000043, { 0x000063 }}, /* 0043; 0063; Case map */ { 0x000044, 0x000044, { 0x000064 }}, /* 0044; 0064; Case map */ { 0x000045, 0x000045, { 0x000065 }}, /* 0045; 0065; Case map */ { 0x000046, 0x000046, { 0x000066 }}, /* 0046; 0066; Case map */ { 0x000047, 0x000047, { 0x000067 }}, /* 0047; 0067; Case map */ { 0x000048, 0x000048, { 0x000068 }}, /* 0048; 0068; Case map */ { 0x000049, 0x000049, { 0x000069 }}, /* 0049; 0069; Case map */ { 0x00004A, 0x00004A, { 0x00006A }}, /* 004A; 006A; Case map */ { 0x00004B, 0x00004B, { 0x00006B }}, /* 004B; 006B; Case map */ { 0x00004C, 0x00004C, { 0x00006C }}, /* 004C; 006C; Case map */ { 0x00004D, 0x00004D, { 0x00006D }}, /* 004D; 006D; Case map */ { 0x00004E, 0x00004E, { 0x00006E }}, /* 004E; 006E; Case map */ { 0x00004F, 0x00004F, { 0x00006F }}, /* 004F; 006F; Case map */ { 0x000050, 0x000050, { 0x000070 }}, /* 0050; 0070; Case map */ { 0x000051, 0x000051, { 0x000071 }}, /* 0051; 0071; Case map */ { 0x000052, 0x000052, { 0x000072 }}, /* 0052; 0072; Case map */ { 0x000053, 0x000053, { 0x000073 }}, /* 0053; 0073; Case map */ { 0x000054, 0x000054, { 0x000074 }}, /* 0054; 0074; Case map */ { 0x000055, 0x000055, { 0x000075 }}, /* 0055; 0075; Case map */ { 0x000056, 0x000056, { 0x000076 }}, /* 0056; 0076; Case map */ { 0x000057, 0x000057, { 0x000077 }}, /* 0057; 0077; Case map */ { 0x000058, 0x000058, { 0x000078 }}, /* 0058; 0078; Case map */ { 0x000059, 0x000059, { 0x000079 }}, /* 0059; 0079; Case map */ { 0x00005A, 0x00005A, { 0x00007A }}, /* 005A; 007A; Case map */ { 0x0000B5, 0x0000B5, { 0x0003BC }}, /* 00B5; 03BC; Case map */ { 0x0000C0, 0x0000C0, { 0x0000E0 }}, /* 00C0; 00E0; Case map */ { 0x0000C1, 0x0000C1, { 0x0000E1 }}, /* 00C1; 00E1; Case map */ { 0x0000C2, 0x0000C2, { 0x0000E2 }}, /* 00C2; 00E2; Case map */ { 0x0000C3, 0x0000C3, { 0x0000E3 }}, /* 00C3; 00E3; Case map */ { 0x0000C4, 0x0000C4, { 0x0000E4 }}, /* 00C4; 00E4; Case map */ { 0x0000C5, 0x0000C5, { 0x0000E5 }}, /* 00C5; 00E5; Case map */ { 0x0000C6, 0x0000C6, { 0x0000E6 }}, /* 00C6; 00E6; Case map */ { 0x0000C7, 0x0000C7, { 0x0000E7 }}, /* 00C7; 00E7; Case map */ { 0x0000C8, 0x0000C8, { 0x0000E8 }}, /* 00C8; 00E8; Case map */ { 0x0000C9, 0x0000C9, { 0x0000E9 }}, /* 00C9; 00E9; Case map */ { 0x0000CA, 0x0000CA, { 0x0000EA }}, /* 00CA; 00EA; Case map */ { 0x0000CB, 0x0000CB, { 0x0000EB }}, /* 00CB; 00EB; Case map */ { 0x0000CC, 0x0000CC, { 0x0000EC }}, /* 00CC; 00EC; Case map */ { 0x0000CD, 0x0000CD, { 0x0000ED }}, /* 00CD; 00ED; Case map */ { 0x0000CE, 0x0000CE, { 0x0000EE }}, /* 00CE; 00EE; Case map */ { 0x0000CF, 0x0000CF, { 0x0000EF }}, /* 00CF; 00EF; Case map */ { 0x0000D0, 0x0000D0, { 0x0000F0 }}, /* 00D0; 00F0; Case map */ { 0x0000D1, 0x0000D1, { 0x0000F1 }}, /* 00D1; 00F1; Case map */ { 0x0000D2, 0x0000D2, { 0x0000F2 }}, /* 00D2; 00F2; Case map */ { 0x0000D3, 0x0000D3, { 0x0000F3 }}, /* 00D3; 00F3; Case map */ { 0x0000D4, 0x0000D4, { 0x0000F4 }}, /* 00D4; 00F4; Case map */ { 0x0000D5, 0x0000D5, { 0x0000F5 }}, /* 00D5; 00F5; Case map */ { 0x0000D6, 0x0000D6, { 0x0000F6 }}, /* 00D6; 00F6; Case map */ { 0x0000D8, 0x0000D8, { 0x0000F8 }}, /* 00D8; 00F8; Case map */ { 0x0000D9, 0x0000D9, { 0x0000F9 }}, /* 00D9; 00F9; Case map */ { 0x0000DA, 0x0000DA, { 0x0000FA }}, /* 00DA; 00FA; Case map */ { 0x0000DB, 0x0000DB, { 0x0000FB }}, /* 00DB; 00FB; Case map */ { 0x0000DC, 0x0000DC, { 0x0000FC }}, /* 00DC; 00FC; Case map */ { 0x0000DD, 0x0000DD, { 0x0000FD }}, /* 00DD; 00FD; Case map */ { 0x0000DE, 0x0000DE, { 0x0000FE }}, /* 00DE; 00FE; Case map */ { 0x0000DF, 0x0000DF, { 0x000073, /* 00DF; 0073 0073; Case map */ 0x000073 }}, { 0x000100, 0x000100, { 0x000101 }}, /* 0100; 0101; Case map */ { 0x000102, 0x000102, { 0x000103 }}, /* 0102; 0103; Case map */ { 0x000104, 0x000104, { 0x000105 }}, /* 0104; 0105; Case map */ { 0x000106, 0x000106, { 0x000107 }}, /* 0106; 0107; Case map */ { 0x000108, 0x000108, { 0x000109 }}, /* 0108; 0109; Case map */ { 0x00010A, 0x00010A, { 0x00010B }}, /* 010A; 010B; Case map */ { 0x00010C, 0x00010C, { 0x00010D }}, /* 010C; 010D; Case map */ { 0x00010E, 0x00010E, { 0x00010F }}, /* 010E; 010F; Case map */ { 0x000110, 0x000110, { 0x000111 }}, /* 0110; 0111; Case map */ { 0x000112, 0x000112, { 0x000113 }}, /* 0112; 0113; Case map */ { 0x000114, 0x000114, { 0x000115 }}, /* 0114; 0115; Case map */ { 0x000116, 0x000116, { 0x000117 }}, /* 0116; 0117; Case map */ { 0x000118, 0x000118, { 0x000119 }}, /* 0118; 0119; Case map */ { 0x00011A, 0x00011A, { 0x00011B }}, /* 011A; 011B; Case map */ { 0x00011C, 0x00011C, { 0x00011D }}, /* 011C; 011D; Case map */ { 0x00011E, 0x00011E, { 0x00011F }}, /* 011E; 011F; Case map */ { 0x000120, 0x000120, { 0x000121 }}, /* 0120; 0121; Case map */ { 0x000122, 0x000122, { 0x000123 }}, /* 0122; 0123; Case map */ { 0x000124, 0x000124, { 0x000125 }}, /* 0124; 0125; Case map */ { 0x000126, 0x000126, { 0x000127 }}, /* 0126; 0127; Case map */ { 0x000128, 0x000128, { 0x000129 }}, /* 0128; 0129; Case map */ { 0x00012A, 0x00012A, { 0x00012B }}, /* 012A; 012B; Case map */ { 0x00012C, 0x00012C, { 0x00012D }}, /* 012C; 012D; Case map */ { 0x00012E, 0x00012E, { 0x00012F }}, /* 012E; 012F; Case map */ { 0x000130, 0x000130, { 0x000069, /* 0130; 0069 0307; Case map */ 0x000307 }}, { 0x000132, 0x000132, { 0x000133 }}, /* 0132; 0133; Case map */ { 0x000134, 0x000134, { 0x000135 }}, /* 0134; 0135; Case map */ { 0x000136, 0x000136, { 0x000137 }}, /* 0136; 0137; Case map */ { 0x000139, 0x000139, { 0x00013A }}, /* 0139; 013A; Case map */ { 0x00013B, 0x00013B, { 0x00013C }}, /* 013B; 013C; Case map */ { 0x00013D, 0x00013D, { 0x00013E }}, /* 013D; 013E; Case map */ { 0x00013F, 0x00013F, { 0x000140 }}, /* 013F; 0140; Case map */ { 0x000141, 0x000141, { 0x000142 }}, /* 0141; 0142; Case map */ { 0x000143, 0x000143, { 0x000144 }}, /* 0143; 0144; Case map */ { 0x000145, 0x000145, { 0x000146 }}, /* 0145; 0146; Case map */ { 0x000147, 0x000147, { 0x000148 }}, /* 0147; 0148; Case map */ { 0x000149, 0x000149, { 0x0002BC, /* 0149; 02BC 006E; Case map */ 0x00006E }}, { 0x00014A, 0x00014A, { 0x00014B }}, /* 014A; 014B; Case map */ { 0x00014C, 0x00014C, { 0x00014D }}, /* 014C; 014D; Case map */ { 0x00014E, 0x00014E, { 0x00014F }}, /* 014E; 014F; Case map */ { 0x000150, 0x000150, { 0x000151 }}, /* 0150; 0151; Case map */ { 0x000152, 0x000152, { 0x000153 }}, /* 0152; 0153; Case map */ { 0x000154, 0x000154, { 0x000155 }}, /* 0154; 0155; Case map */ { 0x000156, 0x000156, { 0x000157 }}, /* 0156; 0157; Case map */ { 0x000158, 0x000158, { 0x000159 }}, /* 0158; 0159; Case map */ { 0x00015A, 0x00015A, { 0x00015B }}, /* 015A; 015B; Case map */ { 0x00015C, 0x00015C, { 0x00015D }}, /* 015C; 015D; Case map */ { 0x00015E, 0x00015E, { 0x00015F }}, /* 015E; 015F; Case map */ { 0x000160, 0x000160, { 0x000161 }}, /* 0160; 0161; Case map */ { 0x000162, 0x000162, { 0x000163 }}, /* 0162; 0163; Case map */ { 0x000164, 0x000164, { 0x000165 }}, /* 0164; 0165; Case map */ { 0x000166, 0x000166, { 0x000167 }}, /* 0166; 0167; Case map */ { 0x000168, 0x000168, { 0x000169 }}, /* 0168; 0169; Case map */ { 0x00016A, 0x00016A, { 0x00016B }}, /* 016A; 016B; Case map */ { 0x00016C, 0x00016C, { 0x00016D }}, /* 016C; 016D; Case map */ { 0x00016E, 0x00016E, { 0x00016F }}, /* 016E; 016F; Case map */ { 0x000170, 0x000170, { 0x000171 }}, /* 0170; 0171; Case map */ { 0x000172, 0x000172, { 0x000173 }}, /* 0172; 0173; Case map */ { 0x000174, 0x000174, { 0x000175 }}, /* 0174; 0175; Case map */ { 0x000176, 0x000176, { 0x000177 }}, /* 0176; 0177; Case map */ { 0x000178, 0x000178, { 0x0000FF }}, /* 0178; 00FF; Case map */ { 0x000179, 0x000179, { 0x00017A }}, /* 0179; 017A; Case map */ { 0x00017B, 0x00017B, { 0x00017C }}, /* 017B; 017C; Case map */ { 0x00017D, 0x00017D, { 0x00017E }}, /* 017D; 017E; Case map */ { 0x00017F, 0x00017F, { 0x000073 }}, /* 017F; 0073; Case map */ { 0x000181, 0x000181, { 0x000253 }}, /* 0181; 0253; Case map */ { 0x000182, 0x000182, { 0x000183 }}, /* 0182; 0183; Case map */ { 0x000184, 0x000184, { 0x000185 }}, /* 0184; 0185; Case map */ { 0x000186, 0x000186, { 0x000254 }}, /* 0186; 0254; Case map */ { 0x000187, 0x000187, { 0x000188 }}, /* 0187; 0188; Case map */ { 0x000189, 0x000189, { 0x000256 }}, /* 0189; 0256; Case map */ { 0x00018A, 0x00018A, { 0x000257 }}, /* 018A; 0257; Case map */ { 0x00018B, 0x00018B, { 0x00018C }}, /* 018B; 018C; Case map */ { 0x00018E, 0x00018E, { 0x0001DD }}, /* 018E; 01DD; Case map */ { 0x00018F, 0x00018F, { 0x000259 }}, /* 018F; 0259; Case map */ { 0x000190, 0x000190, { 0x00025B }}, /* 0190; 025B; Case map */ { 0x000191, 0x000191, { 0x000192 }}, /* 0191; 0192; Case map */ { 0x000193, 0x000193, { 0x000260 }}, /* 0193; 0260; Case map */ { 0x000194, 0x000194, { 0x000263 }}, /* 0194; 0263; Case map */ { 0x000196, 0x000196, { 0x000269 }}, /* 0196; 0269; Case map */ { 0x000197, 0x000197, { 0x000268 }}, /* 0197; 0268; Case map */ { 0x000198, 0x000198, { 0x000199 }}, /* 0198; 0199; Case map */ { 0x00019C, 0x00019C, { 0x00026F }}, /* 019C; 026F; Case map */ { 0x00019D, 0x00019D, { 0x000272 }}, /* 019D; 0272; Case map */ { 0x00019F, 0x00019F, { 0x000275 }}, /* 019F; 0275; Case map */ { 0x0001A0, 0x0001A0, { 0x0001A1 }}, /* 01A0; 01A1; Case map */ { 0x0001A2, 0x0001A2, { 0x0001A3 }}, /* 01A2; 01A3; Case map */ { 0x0001A4, 0x0001A4, { 0x0001A5 }}, /* 01A4; 01A5; Case map */ { 0x0001A6, 0x0001A6, { 0x000280 }}, /* 01A6; 0280; Case map */ { 0x0001A7, 0x0001A7, { 0x0001A8 }}, /* 01A7; 01A8; Case map */ { 0x0001A9, 0x0001A9, { 0x000283 }}, /* 01A9; 0283; Case map */ { 0x0001AC, 0x0001AC, { 0x0001AD }}, /* 01AC; 01AD; Case map */ { 0x0001AE, 0x0001AE, { 0x000288 }}, /* 01AE; 0288; Case map */ { 0x0001AF, 0x0001AF, { 0x0001B0 }}, /* 01AF; 01B0; Case map */ { 0x0001B1, 0x0001B1, { 0x00028A }}, /* 01B1; 028A; Case map */ { 0x0001B2, 0x0001B2, { 0x00028B }}, /* 01B2; 028B; Case map */ { 0x0001B3, 0x0001B3, { 0x0001B4 }}, /* 01B3; 01B4; Case map */ { 0x0001B5, 0x0001B5, { 0x0001B6 }}, /* 01B5; 01B6; Case map */ { 0x0001B7, 0x0001B7, { 0x000292 }}, /* 01B7; 0292; Case map */ { 0x0001B8, 0x0001B8, { 0x0001B9 }}, /* 01B8; 01B9; Case map */ { 0x0001BC, 0x0001BC, { 0x0001BD }}, /* 01BC; 01BD; Case map */ { 0x0001C4, 0x0001C4, { 0x0001C6 }}, /* 01C4; 01C6; Case map */ { 0x0001C5, 0x0001C5, { 0x0001C6 }}, /* 01C5; 01C6; Case map */ { 0x0001C7, 0x0001C7, { 0x0001C9 }}, /* 01C7; 01C9; Case map */ { 0x0001C8, 0x0001C8, { 0x0001C9 }}, /* 01C8; 01C9; Case map */ { 0x0001CA, 0x0001CA, { 0x0001CC }}, /* 01CA; 01CC; Case map */ { 0x0001CB, 0x0001CB, { 0x0001CC }}, /* 01CB; 01CC; Case map */ { 0x0001CD, 0x0001CD, { 0x0001CE }}, /* 01CD; 01CE; Case map */ { 0x0001CF, 0x0001CF, { 0x0001D0 }}, /* 01CF; 01D0; Case map */ { 0x0001D1, 0x0001D1, { 0x0001D2 }}, /* 01D1; 01D2; Case map */ { 0x0001D3, 0x0001D3, { 0x0001D4 }}, /* 01D3; 01D4; Case map */ { 0x0001D5, 0x0001D5, { 0x0001D6 }}, /* 01D5; 01D6; Case map */ { 0x0001D7, 0x0001D7, { 0x0001D8 }}, /* 01D7; 01D8; Case map */ { 0x0001D9, 0x0001D9, { 0x0001DA }}, /* 01D9; 01DA; Case map */ { 0x0001DB, 0x0001DB, { 0x0001DC }}, /* 01DB; 01DC; Case map */ { 0x0001DE, 0x0001DE, { 0x0001DF }}, /* 01DE; 01DF; Case map */ { 0x0001E0, 0x0001E0, { 0x0001E1 }}, /* 01E0; 01E1; Case map */ { 0x0001E2, 0x0001E2, { 0x0001E3 }}, /* 01E2; 01E3; Case map */ { 0x0001E4, 0x0001E4, { 0x0001E5 }}, /* 01E4; 01E5; Case map */ { 0x0001E6, 0x0001E6, { 0x0001E7 }}, /* 01E6; 01E7; Case map */ { 0x0001E8, 0x0001E8, { 0x0001E9 }}, /* 01E8; 01E9; Case map */ { 0x0001EA, 0x0001EA, { 0x0001EB }}, /* 01EA; 01EB; Case map */ { 0x0001EC, 0x0001EC, { 0x0001ED }}, /* 01EC; 01ED; Case map */ { 0x0001EE, 0x0001EE, { 0x0001EF }}, /* 01EE; 01EF; Case map */ { 0x0001F0, 0x0001F0, { 0x00006A, /* 01F0; 006A 030C; Case map */ 0x00030C }}, { 0x0001F1, 0x0001F1, { 0x0001F3 }}, /* 01F1; 01F3; Case map */ { 0x0001F2, 0x0001F2, { 0x0001F3 }}, /* 01F2; 01F3; Case map */ { 0x0001F4, 0x0001F4, { 0x0001F5 }}, /* 01F4; 01F5; Case map */ { 0x0001F6, 0x0001F6, { 0x000195 }}, /* 01F6; 0195; Case map */ { 0x0001F7, 0x0001F7, { 0x0001BF }}, /* 01F7; 01BF; Case map */ { 0x0001F8, 0x0001F8, { 0x0001F9 }}, /* 01F8; 01F9; Case map */ { 0x0001FA, 0x0001FA, { 0x0001FB }}, /* 01FA; 01FB; Case map */ { 0x0001FC, 0x0001FC, { 0x0001FD }}, /* 01FC; 01FD; Case map */ { 0x0001FE, 0x0001FE, { 0x0001FF }}, /* 01FE; 01FF; Case map */ { 0x000200, 0x000200, { 0x000201 }}, /* 0200; 0201; Case map */ { 0x000202, 0x000202, { 0x000203 }}, /* 0202; 0203; Case map */ { 0x000204, 0x000204, { 0x000205 }}, /* 0204; 0205; Case map */ { 0x000206, 0x000206, { 0x000207 }}, /* 0206; 0207; Case map */ { 0x000208, 0x000208, { 0x000209 }}, /* 0208; 0209; Case map */ { 0x00020A, 0x00020A, { 0x00020B }}, /* 020A; 020B; Case map */ { 0x00020C, 0x00020C, { 0x00020D }}, /* 020C; 020D; Case map */ { 0x00020E, 0x00020E, { 0x00020F }}, /* 020E; 020F; Case map */ { 0x000210, 0x000210, { 0x000211 }}, /* 0210; 0211; Case map */ { 0x000212, 0x000212, { 0x000213 }}, /* 0212; 0213; Case map */ { 0x000214, 0x000214, { 0x000215 }}, /* 0214; 0215; Case map */ { 0x000216, 0x000216, { 0x000217 }}, /* 0216; 0217; Case map */ { 0x000218, 0x000218, { 0x000219 }}, /* 0218; 0219; Case map */ { 0x00021A, 0x00021A, { 0x00021B }}, /* 021A; 021B; Case map */ { 0x00021C, 0x00021C, { 0x00021D }}, /* 021C; 021D; Case map */ { 0x00021E, 0x00021E, { 0x00021F }}, /* 021E; 021F; Case map */ { 0x000220, 0x000220, { 0x00019E }}, /* 0220; 019E; Case map */ { 0x000222, 0x000222, { 0x000223 }}, /* 0222; 0223; Case map */ { 0x000224, 0x000224, { 0x000225 }}, /* 0224; 0225; Case map */ { 0x000226, 0x000226, { 0x000227 }}, /* 0226; 0227; Case map */ { 0x000228, 0x000228, { 0x000229 }}, /* 0228; 0229; Case map */ { 0x00022A, 0x00022A, { 0x00022B }}, /* 022A; 022B; Case map */ { 0x00022C, 0x00022C, { 0x00022D }}, /* 022C; 022D; Case map */ { 0x00022E, 0x00022E, { 0x00022F }}, /* 022E; 022F; Case map */ { 0x000230, 0x000230, { 0x000231 }}, /* 0230; 0231; Case map */ { 0x000232, 0x000232, { 0x000233 }}, /* 0232; 0233; Case map */ { 0x000345, 0x000345, { 0x0003B9 }}, /* 0345; 03B9; Case map */ { 0x000386, 0x000386, { 0x0003AC }}, /* 0386; 03AC; Case map */ { 0x000388, 0x000388, { 0x0003AD }}, /* 0388; 03AD; Case map */ { 0x000389, 0x000389, { 0x0003AE }}, /* 0389; 03AE; Case map */ { 0x00038A, 0x00038A, { 0x0003AF }}, /* 038A; 03AF; Case map */ { 0x00038C, 0x00038C, { 0x0003CC }}, /* 038C; 03CC; Case map */ { 0x00038E, 0x00038E, { 0x0003CD }}, /* 038E; 03CD; Case map */ { 0x00038F, 0x00038F, { 0x0003CE }}, /* 038F; 03CE; Case map */ { 0x000390, 0x000390, { 0x0003B9, /* 0390; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x000391, 0x000391, { 0x0003B1 }}, /* 0391; 03B1; Case map */ { 0x000392, 0x000392, { 0x0003B2 }}, /* 0392; 03B2; Case map */ { 0x000393, 0x000393, { 0x0003B3 }}, /* 0393; 03B3; Case map */ { 0x000394, 0x000394, { 0x0003B4 }}, /* 0394; 03B4; Case map */ { 0x000395, 0x000395, { 0x0003B5 }}, /* 0395; 03B5; Case map */ { 0x000396, 0x000396, { 0x0003B6 }}, /* 0396; 03B6; Case map */ { 0x000397, 0x000397, { 0x0003B7 }}, /* 0397; 03B7; Case map */ { 0x000398, 0x000398, { 0x0003B8 }}, /* 0398; 03B8; Case map */ { 0x000399, 0x000399, { 0x0003B9 }}, /* 0399; 03B9; Case map */ { 0x00039A, 0x00039A, { 0x0003BA }}, /* 039A; 03BA; Case map */ { 0x00039B, 0x00039B, { 0x0003BB }}, /* 039B; 03BB; Case map */ { 0x00039C, 0x00039C, { 0x0003BC }}, /* 039C; 03BC; Case map */ { 0x00039D, 0x00039D, { 0x0003BD }}, /* 039D; 03BD; Case map */ { 0x00039E, 0x00039E, { 0x0003BE }}, /* 039E; 03BE; Case map */ { 0x00039F, 0x00039F, { 0x0003BF }}, /* 039F; 03BF; Case map */ { 0x0003A0, 0x0003A0, { 0x0003C0 }}, /* 03A0; 03C0; Case map */ { 0x0003A1, 0x0003A1, { 0x0003C1 }}, /* 03A1; 03C1; Case map */ { 0x0003A3, 0x0003A3, { 0x0003C3 }}, /* 03A3; 03C3; Case map */ { 0x0003A4, 0x0003A4, { 0x0003C4 }}, /* 03A4; 03C4; Case map */ { 0x0003A5, 0x0003A5, { 0x0003C5 }}, /* 03A5; 03C5; Case map */ { 0x0003A6, 0x0003A6, { 0x0003C6 }}, /* 03A6; 03C6; Case map */ { 0x0003A7, 0x0003A7, { 0x0003C7 }}, /* 03A7; 03C7; Case map */ { 0x0003A8, 0x0003A8, { 0x0003C8 }}, /* 03A8; 03C8; Case map */ { 0x0003A9, 0x0003A9, { 0x0003C9 }}, /* 03A9; 03C9; Case map */ { 0x0003AA, 0x0003AA, { 0x0003CA }}, /* 03AA; 03CA; Case map */ { 0x0003AB, 0x0003AB, { 0x0003CB }}, /* 03AB; 03CB; Case map */ { 0x0003B0, 0x0003B0, { 0x0003C5, /* 03B0; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x0003C2, 0x0003C2, { 0x0003C3 }}, /* 03C2; 03C3; Case map */ { 0x0003D0, 0x0003D0, { 0x0003B2 }}, /* 03D0; 03B2; Case map */ { 0x0003D1, 0x0003D1, { 0x0003B8 }}, /* 03D1; 03B8; Case map */ { 0x0003D5, 0x0003D5, { 0x0003C6 }}, /* 03D5; 03C6; Case map */ { 0x0003D6, 0x0003D6, { 0x0003C0 }}, /* 03D6; 03C0; Case map */ { 0x0003D8, 0x0003D8, { 0x0003D9 }}, /* 03D8; 03D9; Case map */ { 0x0003DA, 0x0003DA, { 0x0003DB }}, /* 03DA; 03DB; Case map */ { 0x0003DC, 0x0003DC, { 0x0003DD }}, /* 03DC; 03DD; Case map */ { 0x0003DE, 0x0003DE, { 0x0003DF }}, /* 03DE; 03DF; Case map */ { 0x0003E0, 0x0003E0, { 0x0003E1 }}, /* 03E0; 03E1; Case map */ { 0x0003E2, 0x0003E2, { 0x0003E3 }}, /* 03E2; 03E3; Case map */ { 0x0003E4, 0x0003E4, { 0x0003E5 }}, /* 03E4; 03E5; Case map */ { 0x0003E6, 0x0003E6, { 0x0003E7 }}, /* 03E6; 03E7; Case map */ { 0x0003E8, 0x0003E8, { 0x0003E9 }}, /* 03E8; 03E9; Case map */ { 0x0003EA, 0x0003EA, { 0x0003EB }}, /* 03EA; 03EB; Case map */ { 0x0003EC, 0x0003EC, { 0x0003ED }}, /* 03EC; 03ED; Case map */ { 0x0003EE, 0x0003EE, { 0x0003EF }}, /* 03EE; 03EF; Case map */ { 0x0003F0, 0x0003F0, { 0x0003BA }}, /* 03F0; 03BA; Case map */ { 0x0003F1, 0x0003F1, { 0x0003C1 }}, /* 03F1; 03C1; Case map */ { 0x0003F2, 0x0003F2, { 0x0003C3 }}, /* 03F2; 03C3; Case map */ { 0x0003F4, 0x0003F4, { 0x0003B8 }}, /* 03F4; 03B8; Case map */ { 0x0003F5, 0x0003F5, { 0x0003B5 }}, /* 03F5; 03B5; Case map */ { 0x000400, 0x000400, { 0x000450 }}, /* 0400; 0450; Case map */ { 0x000401, 0x000401, { 0x000451 }}, /* 0401; 0451; Case map */ { 0x000402, 0x000402, { 0x000452 }}, /* 0402; 0452; Case map */ { 0x000403, 0x000403, { 0x000453 }}, /* 0403; 0453; Case map */ { 0x000404, 0x000404, { 0x000454 }}, /* 0404; 0454; Case map */ { 0x000405, 0x000405, { 0x000455 }}, /* 0405; 0455; Case map */ { 0x000406, 0x000406, { 0x000456 }}, /* 0406; 0456; Case map */ { 0x000407, 0x000407, { 0x000457 }}, /* 0407; 0457; Case map */ { 0x000408, 0x000408, { 0x000458 }}, /* 0408; 0458; Case map */ { 0x000409, 0x000409, { 0x000459 }}, /* 0409; 0459; Case map */ { 0x00040A, 0x00040A, { 0x00045A }}, /* 040A; 045A; Case map */ { 0x00040B, 0x00040B, { 0x00045B }}, /* 040B; 045B; Case map */ { 0x00040C, 0x00040C, { 0x00045C }}, /* 040C; 045C; Case map */ { 0x00040D, 0x00040D, { 0x00045D }}, /* 040D; 045D; Case map */ { 0x00040E, 0x00040E, { 0x00045E }}, /* 040E; 045E; Case map */ { 0x00040F, 0x00040F, { 0x00045F }}, /* 040F; 045F; Case map */ { 0x000410, 0x000410, { 0x000430 }}, /* 0410; 0430; Case map */ { 0x000411, 0x000411, { 0x000431 }}, /* 0411; 0431; Case map */ { 0x000412, 0x000412, { 0x000432 }}, /* 0412; 0432; Case map */ { 0x000413, 0x000413, { 0x000433 }}, /* 0413; 0433; Case map */ { 0x000414, 0x000414, { 0x000434 }}, /* 0414; 0434; Case map */ { 0x000415, 0x000415, { 0x000435 }}, /* 0415; 0435; Case map */ { 0x000416, 0x000416, { 0x000436 }}, /* 0416; 0436; Case map */ { 0x000417, 0x000417, { 0x000437 }}, /* 0417; 0437; Case map */ { 0x000418, 0x000418, { 0x000438 }}, /* 0418; 0438; Case map */ { 0x000419, 0x000419, { 0x000439 }}, /* 0419; 0439; Case map */ { 0x00041A, 0x00041A, { 0x00043A }}, /* 041A; 043A; Case map */ { 0x00041B, 0x00041B, { 0x00043B }}, /* 041B; 043B; Case map */ { 0x00041C, 0x00041C, { 0x00043C }}, /* 041C; 043C; Case map */ { 0x00041D, 0x00041D, { 0x00043D }}, /* 041D; 043D; Case map */ { 0x00041E, 0x00041E, { 0x00043E }}, /* 041E; 043E; Case map */ { 0x00041F, 0x00041F, { 0x00043F }}, /* 041F; 043F; Case map */ { 0x000420, 0x000420, { 0x000440 }}, /* 0420; 0440; Case map */ { 0x000421, 0x000421, { 0x000441 }}, /* 0421; 0441; Case map */ { 0x000422, 0x000422, { 0x000442 }}, /* 0422; 0442; Case map */ { 0x000423, 0x000423, { 0x000443 }}, /* 0423; 0443; Case map */ { 0x000424, 0x000424, { 0x000444 }}, /* 0424; 0444; Case map */ { 0x000425, 0x000425, { 0x000445 }}, /* 0425; 0445; Case map */ { 0x000426, 0x000426, { 0x000446 }}, /* 0426; 0446; Case map */ { 0x000427, 0x000427, { 0x000447 }}, /* 0427; 0447; Case map */ { 0x000428, 0x000428, { 0x000448 }}, /* 0428; 0448; Case map */ { 0x000429, 0x000429, { 0x000449 }}, /* 0429; 0449; Case map */ { 0x00042A, 0x00042A, { 0x00044A }}, /* 042A; 044A; Case map */ { 0x00042B, 0x00042B, { 0x00044B }}, /* 042B; 044B; Case map */ { 0x00042C, 0x00042C, { 0x00044C }}, /* 042C; 044C; Case map */ { 0x00042D, 0x00042D, { 0x00044D }}, /* 042D; 044D; Case map */ { 0x00042E, 0x00042E, { 0x00044E }}, /* 042E; 044E; Case map */ { 0x00042F, 0x00042F, { 0x00044F }}, /* 042F; 044F; Case map */ { 0x000460, 0x000460, { 0x000461 }}, /* 0460; 0461; Case map */ { 0x000462, 0x000462, { 0x000463 }}, /* 0462; 0463; Case map */ { 0x000464, 0x000464, { 0x000465 }}, /* 0464; 0465; Case map */ { 0x000466, 0x000466, { 0x000467 }}, /* 0466; 0467; Case map */ { 0x000468, 0x000468, { 0x000469 }}, /* 0468; 0469; Case map */ { 0x00046A, 0x00046A, { 0x00046B }}, /* 046A; 046B; Case map */ { 0x00046C, 0x00046C, { 0x00046D }}, /* 046C; 046D; Case map */ { 0x00046E, 0x00046E, { 0x00046F }}, /* 046E; 046F; Case map */ { 0x000470, 0x000470, { 0x000471 }}, /* 0470; 0471; Case map */ { 0x000472, 0x000472, { 0x000473 }}, /* 0472; 0473; Case map */ { 0x000474, 0x000474, { 0x000475 }}, /* 0474; 0475; Case map */ { 0x000476, 0x000476, { 0x000477 }}, /* 0476; 0477; Case map */ { 0x000478, 0x000478, { 0x000479 }}, /* 0478; 0479; Case map */ { 0x00047A, 0x00047A, { 0x00047B }}, /* 047A; 047B; Case map */ { 0x00047C, 0x00047C, { 0x00047D }}, /* 047C; 047D; Case map */ { 0x00047E, 0x00047E, { 0x00047F }}, /* 047E; 047F; Case map */ { 0x000480, 0x000480, { 0x000481 }}, /* 0480; 0481; Case map */ { 0x00048A, 0x00048A, { 0x00048B }}, /* 048A; 048B; Case map */ { 0x00048C, 0x00048C, { 0x00048D }}, /* 048C; 048D; Case map */ { 0x00048E, 0x00048E, { 0x00048F }}, /* 048E; 048F; Case map */ { 0x000490, 0x000490, { 0x000491 }}, /* 0490; 0491; Case map */ { 0x000492, 0x000492, { 0x000493 }}, /* 0492; 0493; Case map */ { 0x000494, 0x000494, { 0x000495 }}, /* 0494; 0495; Case map */ { 0x000496, 0x000496, { 0x000497 }}, /* 0496; 0497; Case map */ { 0x000498, 0x000498, { 0x000499 }}, /* 0498; 0499; Case map */ { 0x00049A, 0x00049A, { 0x00049B }}, /* 049A; 049B; Case map */ { 0x00049C, 0x00049C, { 0x00049D }}, /* 049C; 049D; Case map */ { 0x00049E, 0x00049E, { 0x00049F }}, /* 049E; 049F; Case map */ { 0x0004A0, 0x0004A0, { 0x0004A1 }}, /* 04A0; 04A1; Case map */ { 0x0004A2, 0x0004A2, { 0x0004A3 }}, /* 04A2; 04A3; Case map */ { 0x0004A4, 0x0004A4, { 0x0004A5 }}, /* 04A4; 04A5; Case map */ { 0x0004A6, 0x0004A6, { 0x0004A7 }}, /* 04A6; 04A7; Case map */ { 0x0004A8, 0x0004A8, { 0x0004A9 }}, /* 04A8; 04A9; Case map */ { 0x0004AA, 0x0004AA, { 0x0004AB }}, /* 04AA; 04AB; Case map */ { 0x0004AC, 0x0004AC, { 0x0004AD }}, /* 04AC; 04AD; Case map */ { 0x0004AE, 0x0004AE, { 0x0004AF }}, /* 04AE; 04AF; Case map */ { 0x0004B0, 0x0004B0, { 0x0004B1 }}, /* 04B0; 04B1; Case map */ { 0x0004B2, 0x0004B2, { 0x0004B3 }}, /* 04B2; 04B3; Case map */ { 0x0004B4, 0x0004B4, { 0x0004B5 }}, /* 04B4; 04B5; Case map */ { 0x0004B6, 0x0004B6, { 0x0004B7 }}, /* 04B6; 04B7; Case map */ { 0x0004B8, 0x0004B8, { 0x0004B9 }}, /* 04B8; 04B9; Case map */ { 0x0004BA, 0x0004BA, { 0x0004BB }}, /* 04BA; 04BB; Case map */ { 0x0004BC, 0x0004BC, { 0x0004BD }}, /* 04BC; 04BD; Case map */ { 0x0004BE, 0x0004BE, { 0x0004BF }}, /* 04BE; 04BF; Case map */ { 0x0004C1, 0x0004C1, { 0x0004C2 }}, /* 04C1; 04C2; Case map */ { 0x0004C3, 0x0004C3, { 0x0004C4 }}, /* 04C3; 04C4; Case map */ { 0x0004C5, 0x0004C5, { 0x0004C6 }}, /* 04C5; 04C6; Case map */ { 0x0004C7, 0x0004C7, { 0x0004C8 }}, /* 04C7; 04C8; Case map */ { 0x0004C9, 0x0004C9, { 0x0004CA }}, /* 04C9; 04CA; Case map */ { 0x0004CB, 0x0004CB, { 0x0004CC }}, /* 04CB; 04CC; Case map */ { 0x0004CD, 0x0004CD, { 0x0004CE }}, /* 04CD; 04CE; Case map */ { 0x0004D0, 0x0004D0, { 0x0004D1 }}, /* 04D0; 04D1; Case map */ { 0x0004D2, 0x0004D2, { 0x0004D3 }}, /* 04D2; 04D3; Case map */ { 0x0004D4, 0x0004D4, { 0x0004D5 }}, /* 04D4; 04D5; Case map */ { 0x0004D6, 0x0004D6, { 0x0004D7 }}, /* 04D6; 04D7; Case map */ { 0x0004D8, 0x0004D8, { 0x0004D9 }}, /* 04D8; 04D9; Case map */ { 0x0004DA, 0x0004DA, { 0x0004DB }}, /* 04DA; 04DB; Case map */ { 0x0004DC, 0x0004DC, { 0x0004DD }}, /* 04DC; 04DD; Case map */ { 0x0004DE, 0x0004DE, { 0x0004DF }}, /* 04DE; 04DF; Case map */ { 0x0004E0, 0x0004E0, { 0x0004E1 }}, /* 04E0; 04E1; Case map */ { 0x0004E2, 0x0004E2, { 0x0004E3 }}, /* 04E2; 04E3; Case map */ { 0x0004E4, 0x0004E4, { 0x0004E5 }}, /* 04E4; 04E5; Case map */ { 0x0004E6, 0x0004E6, { 0x0004E7 }}, /* 04E6; 04E7; Case map */ { 0x0004E8, 0x0004E8, { 0x0004E9 }}, /* 04E8; 04E9; Case map */ { 0x0004EA, 0x0004EA, { 0x0004EB }}, /* 04EA; 04EB; Case map */ { 0x0004EC, 0x0004EC, { 0x0004ED }}, /* 04EC; 04ED; Case map */ { 0x0004EE, 0x0004EE, { 0x0004EF }}, /* 04EE; 04EF; Case map */ { 0x0004F0, 0x0004F0, { 0x0004F1 }}, /* 04F0; 04F1; Case map */ { 0x0004F2, 0x0004F2, { 0x0004F3 }}, /* 04F2; 04F3; Case map */ { 0x0004F4, 0x0004F4, { 0x0004F5 }}, /* 04F4; 04F5; Case map */ { 0x0004F8, 0x0004F8, { 0x0004F9 }}, /* 04F8; 04F9; Case map */ { 0x000500, 0x000500, { 0x000501 }}, /* 0500; 0501; Case map */ { 0x000502, 0x000502, { 0x000503 }}, /* 0502; 0503; Case map */ { 0x000504, 0x000504, { 0x000505 }}, /* 0504; 0505; Case map */ { 0x000506, 0x000506, { 0x000507 }}, /* 0506; 0507; Case map */ { 0x000508, 0x000508, { 0x000509 }}, /* 0508; 0509; Case map */ { 0x00050A, 0x00050A, { 0x00050B }}, /* 050A; 050B; Case map */ { 0x00050C, 0x00050C, { 0x00050D }}, /* 050C; 050D; Case map */ { 0x00050E, 0x00050E, { 0x00050F }}, /* 050E; 050F; Case map */ { 0x000531, 0x000531, { 0x000561 }}, /* 0531; 0561; Case map */ { 0x000532, 0x000532, { 0x000562 }}, /* 0532; 0562; Case map */ { 0x000533, 0x000533, { 0x000563 }}, /* 0533; 0563; Case map */ { 0x000534, 0x000534, { 0x000564 }}, /* 0534; 0564; Case map */ { 0x000535, 0x000535, { 0x000565 }}, /* 0535; 0565; Case map */ { 0x000536, 0x000536, { 0x000566 }}, /* 0536; 0566; Case map */ { 0x000537, 0x000537, { 0x000567 }}, /* 0537; 0567; Case map */ { 0x000538, 0x000538, { 0x000568 }}, /* 0538; 0568; Case map */ { 0x000539, 0x000539, { 0x000569 }}, /* 0539; 0569; Case map */ { 0x00053A, 0x00053A, { 0x00056A }}, /* 053A; 056A; Case map */ { 0x00053B, 0x00053B, { 0x00056B }}, /* 053B; 056B; Case map */ { 0x00053C, 0x00053C, { 0x00056C }}, /* 053C; 056C; Case map */ { 0x00053D, 0x00053D, { 0x00056D }}, /* 053D; 056D; Case map */ { 0x00053E, 0x00053E, { 0x00056E }}, /* 053E; 056E; Case map */ { 0x00053F, 0x00053F, { 0x00056F }}, /* 053F; 056F; Case map */ { 0x000540, 0x000540, { 0x000570 }}, /* 0540; 0570; Case map */ { 0x000541, 0x000541, { 0x000571 }}, /* 0541; 0571; Case map */ { 0x000542, 0x000542, { 0x000572 }}, /* 0542; 0572; Case map */ { 0x000543, 0x000543, { 0x000573 }}, /* 0543; 0573; Case map */ { 0x000544, 0x000544, { 0x000574 }}, /* 0544; 0574; Case map */ { 0x000545, 0x000545, { 0x000575 }}, /* 0545; 0575; Case map */ { 0x000546, 0x000546, { 0x000576 }}, /* 0546; 0576; Case map */ { 0x000547, 0x000547, { 0x000577 }}, /* 0547; 0577; Case map */ { 0x000548, 0x000548, { 0x000578 }}, /* 0548; 0578; Case map */ { 0x000549, 0x000549, { 0x000579 }}, /* 0549; 0579; Case map */ { 0x00054A, 0x00054A, { 0x00057A }}, /* 054A; 057A; Case map */ { 0x00054B, 0x00054B, { 0x00057B }}, /* 054B; 057B; Case map */ { 0x00054C, 0x00054C, { 0x00057C }}, /* 054C; 057C; Case map */ { 0x00054D, 0x00054D, { 0x00057D }}, /* 054D; 057D; Case map */ { 0x00054E, 0x00054E, { 0x00057E }}, /* 054E; 057E; Case map */ { 0x00054F, 0x00054F, { 0x00057F }}, /* 054F; 057F; Case map */ { 0x000550, 0x000550, { 0x000580 }}, /* 0550; 0580; Case map */ { 0x000551, 0x000551, { 0x000581 }}, /* 0551; 0581; Case map */ { 0x000552, 0x000552, { 0x000582 }}, /* 0552; 0582; Case map */ { 0x000553, 0x000553, { 0x000583 }}, /* 0553; 0583; Case map */ { 0x000554, 0x000554, { 0x000584 }}, /* 0554; 0584; Case map */ { 0x000555, 0x000555, { 0x000585 }}, /* 0555; 0585; Case map */ { 0x000556, 0x000556, { 0x000586 }}, /* 0556; 0586; Case map */ { 0x000587, 0x000587, { 0x000565, /* 0587; 0565 0582; Case map */ 0x000582 }}, { 0x001E00, 0x001E00, { 0x001E01 }}, /* 1E00; 1E01; Case map */ { 0x001E02, 0x001E02, { 0x001E03 }}, /* 1E02; 1E03; Case map */ { 0x001E04, 0x001E04, { 0x001E05 }}, /* 1E04; 1E05; Case map */ { 0x001E06, 0x001E06, { 0x001E07 }}, /* 1E06; 1E07; Case map */ { 0x001E08, 0x001E08, { 0x001E09 }}, /* 1E08; 1E09; Case map */ { 0x001E0A, 0x001E0A, { 0x001E0B }}, /* 1E0A; 1E0B; Case map */ { 0x001E0C, 0x001E0C, { 0x001E0D }}, /* 1E0C; 1E0D; Case map */ { 0x001E0E, 0x001E0E, { 0x001E0F }}, /* 1E0E; 1E0F; Case map */ { 0x001E10, 0x001E10, { 0x001E11 }}, /* 1E10; 1E11; Case map */ { 0x001E12, 0x001E12, { 0x001E13 }}, /* 1E12; 1E13; Case map */ { 0x001E14, 0x001E14, { 0x001E15 }}, /* 1E14; 1E15; Case map */ { 0x001E16, 0x001E16, { 0x001E17 }}, /* 1E16; 1E17; Case map */ { 0x001E18, 0x001E18, { 0x001E19 }}, /* 1E18; 1E19; Case map */ { 0x001E1A, 0x001E1A, { 0x001E1B }}, /* 1E1A; 1E1B; Case map */ { 0x001E1C, 0x001E1C, { 0x001E1D }}, /* 1E1C; 1E1D; Case map */ { 0x001E1E, 0x001E1E, { 0x001E1F }}, /* 1E1E; 1E1F; Case map */ { 0x001E20, 0x001E20, { 0x001E21 }}, /* 1E20; 1E21; Case map */ { 0x001E22, 0x001E22, { 0x001E23 }}, /* 1E22; 1E23; Case map */ { 0x001E24, 0x001E24, { 0x001E25 }}, /* 1E24; 1E25; Case map */ { 0x001E26, 0x001E26, { 0x001E27 }}, /* 1E26; 1E27; Case map */ { 0x001E28, 0x001E28, { 0x001E29 }}, /* 1E28; 1E29; Case map */ { 0x001E2A, 0x001E2A, { 0x001E2B }}, /* 1E2A; 1E2B; Case map */ { 0x001E2C, 0x001E2C, { 0x001E2D }}, /* 1E2C; 1E2D; Case map */ { 0x001E2E, 0x001E2E, { 0x001E2F }}, /* 1E2E; 1E2F; Case map */ { 0x001E30, 0x001E30, { 0x001E31 }}, /* 1E30; 1E31; Case map */ { 0x001E32, 0x001E32, { 0x001E33 }}, /* 1E32; 1E33; Case map */ { 0x001E34, 0x001E34, { 0x001E35 }}, /* 1E34; 1E35; Case map */ { 0x001E36, 0x001E36, { 0x001E37 }}, /* 1E36; 1E37; Case map */ { 0x001E38, 0x001E38, { 0x001E39 }}, /* 1E38; 1E39; Case map */ { 0x001E3A, 0x001E3A, { 0x001E3B }}, /* 1E3A; 1E3B; Case map */ { 0x001E3C, 0x001E3C, { 0x001E3D }}, /* 1E3C; 1E3D; Case map */ { 0x001E3E, 0x001E3E, { 0x001E3F }}, /* 1E3E; 1E3F; Case map */ { 0x001E40, 0x001E40, { 0x001E41 }}, /* 1E40; 1E41; Case map */ { 0x001E42, 0x001E42, { 0x001E43 }}, /* 1E42; 1E43; Case map */ { 0x001E44, 0x001E44, { 0x001E45 }}, /* 1E44; 1E45; Case map */ { 0x001E46, 0x001E46, { 0x001E47 }}, /* 1E46; 1E47; Case map */ { 0x001E48, 0x001E48, { 0x001E49 }}, /* 1E48; 1E49; Case map */ { 0x001E4A, 0x001E4A, { 0x001E4B }}, /* 1E4A; 1E4B; Case map */ { 0x001E4C, 0x001E4C, { 0x001E4D }}, /* 1E4C; 1E4D; Case map */ { 0x001E4E, 0x001E4E, { 0x001E4F }}, /* 1E4E; 1E4F; Case map */ { 0x001E50, 0x001E50, { 0x001E51 }}, /* 1E50; 1E51; Case map */ { 0x001E52, 0x001E52, { 0x001E53 }}, /* 1E52; 1E53; Case map */ { 0x001E54, 0x001E54, { 0x001E55 }}, /* 1E54; 1E55; Case map */ { 0x001E56, 0x001E56, { 0x001E57 }}, /* 1E56; 1E57; Case map */ { 0x001E58, 0x001E58, { 0x001E59 }}, /* 1E58; 1E59; Case map */ { 0x001E5A, 0x001E5A, { 0x001E5B }}, /* 1E5A; 1E5B; Case map */ { 0x001E5C, 0x001E5C, { 0x001E5D }}, /* 1E5C; 1E5D; Case map */ { 0x001E5E, 0x001E5E, { 0x001E5F }}, /* 1E5E; 1E5F; Case map */ { 0x001E60, 0x001E60, { 0x001E61 }}, /* 1E60; 1E61; Case map */ { 0x001E62, 0x001E62, { 0x001E63 }}, /* 1E62; 1E63; Case map */ { 0x001E64, 0x001E64, { 0x001E65 }}, /* 1E64; 1E65; Case map */ { 0x001E66, 0x001E66, { 0x001E67 }}, /* 1E66; 1E67; Case map */ { 0x001E68, 0x001E68, { 0x001E69 }}, /* 1E68; 1E69; Case map */ { 0x001E6A, 0x001E6A, { 0x001E6B }}, /* 1E6A; 1E6B; Case map */ { 0x001E6C, 0x001E6C, { 0x001E6D }}, /* 1E6C; 1E6D; Case map */ { 0x001E6E, 0x001E6E, { 0x001E6F }}, /* 1E6E; 1E6F; Case map */ { 0x001E70, 0x001E70, { 0x001E71 }}, /* 1E70; 1E71; Case map */ { 0x001E72, 0x001E72, { 0x001E73 }}, /* 1E72; 1E73; Case map */ { 0x001E74, 0x001E74, { 0x001E75 }}, /* 1E74; 1E75; Case map */ { 0x001E76, 0x001E76, { 0x001E77 }}, /* 1E76; 1E77; Case map */ { 0x001E78, 0x001E78, { 0x001E79 }}, /* 1E78; 1E79; Case map */ { 0x001E7A, 0x001E7A, { 0x001E7B }}, /* 1E7A; 1E7B; Case map */ { 0x001E7C, 0x001E7C, { 0x001E7D }}, /* 1E7C; 1E7D; Case map */ { 0x001E7E, 0x001E7E, { 0x001E7F }}, /* 1E7E; 1E7F; Case map */ { 0x001E80, 0x001E80, { 0x001E81 }}, /* 1E80; 1E81; Case map */ { 0x001E82, 0x001E82, { 0x001E83 }}, /* 1E82; 1E83; Case map */ { 0x001E84, 0x001E84, { 0x001E85 }}, /* 1E84; 1E85; Case map */ { 0x001E86, 0x001E86, { 0x001E87 }}, /* 1E86; 1E87; Case map */ { 0x001E88, 0x001E88, { 0x001E89 }}, /* 1E88; 1E89; Case map */ { 0x001E8A, 0x001E8A, { 0x001E8B }}, /* 1E8A; 1E8B; Case map */ { 0x001E8C, 0x001E8C, { 0x001E8D }}, /* 1E8C; 1E8D; Case map */ { 0x001E8E, 0x001E8E, { 0x001E8F }}, /* 1E8E; 1E8F; Case map */ { 0x001E90, 0x001E90, { 0x001E91 }}, /* 1E90; 1E91; Case map */ { 0x001E92, 0x001E92, { 0x001E93 }}, /* 1E92; 1E93; Case map */ { 0x001E94, 0x001E94, { 0x001E95 }}, /* 1E94; 1E95; Case map */ { 0x001E96, 0x001E96, { 0x000068, /* 1E96; 0068 0331; Case map */ 0x000331 }}, { 0x001E97, 0x001E97, { 0x000074, /* 1E97; 0074 0308; Case map */ 0x000308 }}, { 0x001E98, 0x001E98, { 0x000077, /* 1E98; 0077 030A; Case map */ 0x00030A }}, { 0x001E99, 0x001E99, { 0x000079, /* 1E99; 0079 030A; Case map */ 0x00030A }}, { 0x001E9A, 0x001E9A, { 0x000061, /* 1E9A; 0061 02BE; Case map */ 0x0002BE }}, { 0x001E9B, 0x001E9B, { 0x001E61 }}, /* 1E9B; 1E61; Case map */ { 0x001EA0, 0x001EA0, { 0x001EA1 }}, /* 1EA0; 1EA1; Case map */ { 0x001EA2, 0x001EA2, { 0x001EA3 }}, /* 1EA2; 1EA3; Case map */ { 0x001EA4, 0x001EA4, { 0x001EA5 }}, /* 1EA4; 1EA5; Case map */ { 0x001EA6, 0x001EA6, { 0x001EA7 }}, /* 1EA6; 1EA7; Case map */ { 0x001EA8, 0x001EA8, { 0x001EA9 }}, /* 1EA8; 1EA9; Case map */ { 0x001EAA, 0x001EAA, { 0x001EAB }}, /* 1EAA; 1EAB; Case map */ { 0x001EAC, 0x001EAC, { 0x001EAD }}, /* 1EAC; 1EAD; Case map */ { 0x001EAE, 0x001EAE, { 0x001EAF }}, /* 1EAE; 1EAF; Case map */ { 0x001EB0, 0x001EB0, { 0x001EB1 }}, /* 1EB0; 1EB1; Case map */ { 0x001EB2, 0x001EB2, { 0x001EB3 }}, /* 1EB2; 1EB3; Case map */ { 0x001EB4, 0x001EB4, { 0x001EB5 }}, /* 1EB4; 1EB5; Case map */ { 0x001EB6, 0x001EB6, { 0x001EB7 }}, /* 1EB6; 1EB7; Case map */ { 0x001EB8, 0x001EB8, { 0x001EB9 }}, /* 1EB8; 1EB9; Case map */ { 0x001EBA, 0x001EBA, { 0x001EBB }}, /* 1EBA; 1EBB; Case map */ { 0x001EBC, 0x001EBC, { 0x001EBD }}, /* 1EBC; 1EBD; Case map */ { 0x001EBE, 0x001EBE, { 0x001EBF }}, /* 1EBE; 1EBF; Case map */ { 0x001EC0, 0x001EC0, { 0x001EC1 }}, /* 1EC0; 1EC1; Case map */ { 0x001EC2, 0x001EC2, { 0x001EC3 }}, /* 1EC2; 1EC3; Case map */ { 0x001EC4, 0x001EC4, { 0x001EC5 }}, /* 1EC4; 1EC5; Case map */ { 0x001EC6, 0x001EC6, { 0x001EC7 }}, /* 1EC6; 1EC7; Case map */ { 0x001EC8, 0x001EC8, { 0x001EC9 }}, /* 1EC8; 1EC9; Case map */ { 0x001ECA, 0x001ECA, { 0x001ECB }}, /* 1ECA; 1ECB; Case map */ { 0x001ECC, 0x001ECC, { 0x001ECD }}, /* 1ECC; 1ECD; Case map */ { 0x001ECE, 0x001ECE, { 0x001ECF }}, /* 1ECE; 1ECF; Case map */ { 0x001ED0, 0x001ED0, { 0x001ED1 }}, /* 1ED0; 1ED1; Case map */ { 0x001ED2, 0x001ED2, { 0x001ED3 }}, /* 1ED2; 1ED3; Case map */ { 0x001ED4, 0x001ED4, { 0x001ED5 }}, /* 1ED4; 1ED5; Case map */ { 0x001ED6, 0x001ED6, { 0x001ED7 }}, /* 1ED6; 1ED7; Case map */ { 0x001ED8, 0x001ED8, { 0x001ED9 }}, /* 1ED8; 1ED9; Case map */ { 0x001EDA, 0x001EDA, { 0x001EDB }}, /* 1EDA; 1EDB; Case map */ { 0x001EDC, 0x001EDC, { 0x001EDD }}, /* 1EDC; 1EDD; Case map */ { 0x001EDE, 0x001EDE, { 0x001EDF }}, /* 1EDE; 1EDF; Case map */ { 0x001EE0, 0x001EE0, { 0x001EE1 }}, /* 1EE0; 1EE1; Case map */ { 0x001EE2, 0x001EE2, { 0x001EE3 }}, /* 1EE2; 1EE3; Case map */ { 0x001EE4, 0x001EE4, { 0x001EE5 }}, /* 1EE4; 1EE5; Case map */ { 0x001EE6, 0x001EE6, { 0x001EE7 }}, /* 1EE6; 1EE7; Case map */ { 0x001EE8, 0x001EE8, { 0x001EE9 }}, /* 1EE8; 1EE9; Case map */ { 0x001EEA, 0x001EEA, { 0x001EEB }}, /* 1EEA; 1EEB; Case map */ { 0x001EEC, 0x001EEC, { 0x001EED }}, /* 1EEC; 1EED; Case map */ { 0x001EEE, 0x001EEE, { 0x001EEF }}, /* 1EEE; 1EEF; Case map */ { 0x001EF0, 0x001EF0, { 0x001EF1 }}, /* 1EF0; 1EF1; Case map */ { 0x001EF2, 0x001EF2, { 0x001EF3 }}, /* 1EF2; 1EF3; Case map */ { 0x001EF4, 0x001EF4, { 0x001EF5 }}, /* 1EF4; 1EF5; Case map */ { 0x001EF6, 0x001EF6, { 0x001EF7 }}, /* 1EF6; 1EF7; Case map */ { 0x001EF8, 0x001EF8, { 0x001EF9 }}, /* 1EF8; 1EF9; Case map */ { 0x001F08, 0x001F08, { 0x001F00 }}, /* 1F08; 1F00; Case map */ { 0x001F09, 0x001F09, { 0x001F01 }}, /* 1F09; 1F01; Case map */ { 0x001F0A, 0x001F0A, { 0x001F02 }}, /* 1F0A; 1F02; Case map */ { 0x001F0B, 0x001F0B, { 0x001F03 }}, /* 1F0B; 1F03; Case map */ { 0x001F0C, 0x001F0C, { 0x001F04 }}, /* 1F0C; 1F04; Case map */ { 0x001F0D, 0x001F0D, { 0x001F05 }}, /* 1F0D; 1F05; Case map */ { 0x001F0E, 0x001F0E, { 0x001F06 }}, /* 1F0E; 1F06; Case map */ { 0x001F0F, 0x001F0F, { 0x001F07 }}, /* 1F0F; 1F07; Case map */ { 0x001F18, 0x001F18, { 0x001F10 }}, /* 1F18; 1F10; Case map */ { 0x001F19, 0x001F19, { 0x001F11 }}, /* 1F19; 1F11; Case map */ { 0x001F1A, 0x001F1A, { 0x001F12 }}, /* 1F1A; 1F12; Case map */ { 0x001F1B, 0x001F1B, { 0x001F13 }}, /* 1F1B; 1F13; Case map */ { 0x001F1C, 0x001F1C, { 0x001F14 }}, /* 1F1C; 1F14; Case map */ { 0x001F1D, 0x001F1D, { 0x001F15 }}, /* 1F1D; 1F15; Case map */ { 0x001F28, 0x001F28, { 0x001F20 }}, /* 1F28; 1F20; Case map */ { 0x001F29, 0x001F29, { 0x001F21 }}, /* 1F29; 1F21; Case map */ { 0x001F2A, 0x001F2A, { 0x001F22 }}, /* 1F2A; 1F22; Case map */ { 0x001F2B, 0x001F2B, { 0x001F23 }}, /* 1F2B; 1F23; Case map */ { 0x001F2C, 0x001F2C, { 0x001F24 }}, /* 1F2C; 1F24; Case map */ { 0x001F2D, 0x001F2D, { 0x001F25 }}, /* 1F2D; 1F25; Case map */ { 0x001F2E, 0x001F2E, { 0x001F26 }}, /* 1F2E; 1F26; Case map */ { 0x001F2F, 0x001F2F, { 0x001F27 }}, /* 1F2F; 1F27; Case map */ { 0x001F38, 0x001F38, { 0x001F30 }}, /* 1F38; 1F30; Case map */ { 0x001F39, 0x001F39, { 0x001F31 }}, /* 1F39; 1F31; Case map */ { 0x001F3A, 0x001F3A, { 0x001F32 }}, /* 1F3A; 1F32; Case map */ { 0x001F3B, 0x001F3B, { 0x001F33 }}, /* 1F3B; 1F33; Case map */ { 0x001F3C, 0x001F3C, { 0x001F34 }}, /* 1F3C; 1F34; Case map */ { 0x001F3D, 0x001F3D, { 0x001F35 }}, /* 1F3D; 1F35; Case map */ { 0x001F3E, 0x001F3E, { 0x001F36 }}, /* 1F3E; 1F36; Case map */ { 0x001F3F, 0x001F3F, { 0x001F37 }}, /* 1F3F; 1F37; Case map */ { 0x001F48, 0x001F48, { 0x001F40 }}, /* 1F48; 1F40; Case map */ { 0x001F49, 0x001F49, { 0x001F41 }}, /* 1F49; 1F41; Case map */ { 0x001F4A, 0x001F4A, { 0x001F42 }}, /* 1F4A; 1F42; Case map */ { 0x001F4B, 0x001F4B, { 0x001F43 }}, /* 1F4B; 1F43; Case map */ { 0x001F4C, 0x001F4C, { 0x001F44 }}, /* 1F4C; 1F44; Case map */ { 0x001F4D, 0x001F4D, { 0x001F45 }}, /* 1F4D; 1F45; Case map */ { 0x001F50, 0x001F50, { 0x0003C5, /* 1F50; 03C5 0313; Case map */ 0x000313 }}, { 0x001F52, 0x001F52, { 0x0003C5, /* 1F52; 03C5 0313 0300; Case map */ 0x000313, 0x000300 }}, { 0x001F54, 0x001F54, { 0x0003C5, /* 1F54; 03C5 0313 0301; Case map */ 0x000313, 0x000301 }}, { 0x001F56, 0x001F56, { 0x0003C5, /* 1F56; 03C5 0313 0342; Case map */ 0x000313, 0x000342 }}, { 0x001F59, 0x001F59, { 0x001F51 }}, /* 1F59; 1F51; Case map */ { 0x001F5B, 0x001F5B, { 0x001F53 }}, /* 1F5B; 1F53; Case map */ { 0x001F5D, 0x001F5D, { 0x001F55 }}, /* 1F5D; 1F55; Case map */ { 0x001F5F, 0x001F5F, { 0x001F57 }}, /* 1F5F; 1F57; Case map */ { 0x001F68, 0x001F68, { 0x001F60 }}, /* 1F68; 1F60; Case map */ { 0x001F69, 0x001F69, { 0x001F61 }}, /* 1F69; 1F61; Case map */ { 0x001F6A, 0x001F6A, { 0x001F62 }}, /* 1F6A; 1F62; Case map */ { 0x001F6B, 0x001F6B, { 0x001F63 }}, /* 1F6B; 1F63; Case map */ { 0x001F6C, 0x001F6C, { 0x001F64 }}, /* 1F6C; 1F64; Case map */ { 0x001F6D, 0x001F6D, { 0x001F65 }}, /* 1F6D; 1F65; Case map */ { 0x001F6E, 0x001F6E, { 0x001F66 }}, /* 1F6E; 1F66; Case map */ { 0x001F6F, 0x001F6F, { 0x001F67 }}, /* 1F6F; 1F67; Case map */ { 0x001F80, 0x001F80, { 0x001F00, /* 1F80; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F81, 0x001F81, { 0x001F01, /* 1F81; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F82, 0x001F82, { 0x001F02, /* 1F82; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F83, 0x001F83, { 0x001F03, /* 1F83; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F84, 0x001F84, { 0x001F04, /* 1F84; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F85, 0x001F85, { 0x001F05, /* 1F85; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F86, 0x001F86, { 0x001F06, /* 1F86; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F87, 0x001F87, { 0x001F07, /* 1F87; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F88, 0x001F88, { 0x001F00, /* 1F88; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F89, 0x001F89, { 0x001F01, /* 1F89; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F8A, 0x001F8A, { 0x001F02, /* 1F8A; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F8B, 0x001F8B, { 0x001F03, /* 1F8B; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F8C, 0x001F8C, { 0x001F04, /* 1F8C; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F8D, 0x001F8D, { 0x001F05, /* 1F8D; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F8E, 0x001F8E, { 0x001F06, /* 1F8E; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F8F, 0x001F8F, { 0x001F07, /* 1F8F; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F90, 0x001F90, { 0x001F20, /* 1F90; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F91, 0x001F91, { 0x001F21, /* 1F91; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F92, 0x001F92, { 0x001F22, /* 1F92; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F93, 0x001F93, { 0x001F23, /* 1F93; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F94, 0x001F94, { 0x001F24, /* 1F94; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F95, 0x001F95, { 0x001F25, /* 1F95; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F96, 0x001F96, { 0x001F26, /* 1F96; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F97, 0x001F97, { 0x001F27, /* 1F97; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001F98, 0x001F98, { 0x001F20, /* 1F98; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F99, 0x001F99, { 0x001F21, /* 1F99; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F9A, 0x001F9A, { 0x001F22, /* 1F9A; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F9B, 0x001F9B, { 0x001F23, /* 1F9B; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F9C, 0x001F9C, { 0x001F24, /* 1F9C; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F9D, 0x001F9D, { 0x001F25, /* 1F9D; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F9E, 0x001F9E, { 0x001F26, /* 1F9E; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F9F, 0x001F9F, { 0x001F27, /* 1F9F; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001FA0, 0x001FA0, { 0x001F60, /* 1FA0; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA1, 0x001FA1, { 0x001F61, /* 1FA1; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FA2, 0x001FA2, { 0x001F62, /* 1FA2; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FA3, 0x001FA3, { 0x001F63, /* 1FA3; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FA4, 0x001FA4, { 0x001F64, /* 1FA4; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FA5, 0x001FA5, { 0x001F65, /* 1FA5; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FA6, 0x001FA6, { 0x001F66, /* 1FA6; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FA7, 0x001FA7, { 0x001F67, /* 1FA7; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FA8, 0x001FA8, { 0x001F60, /* 1FA8; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA9, 0x001FA9, { 0x001F61, /* 1FA9; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FAA, 0x001FAA, { 0x001F62, /* 1FAA; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FAB, 0x001FAB, { 0x001F63, /* 1FAB; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FAC, 0x001FAC, { 0x001F64, /* 1FAC; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FAD, 0x001FAD, { 0x001F65, /* 1FAD; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FAE, 0x001FAE, { 0x001F66, /* 1FAE; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FAF, 0x001FAF, { 0x001F67, /* 1FAF; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FB2, 0x001FB2, { 0x001F70, /* 1FB2; 1F70 03B9; Case map */ 0x0003B9 }}, { 0x001FB3, 0x001FB3, { 0x0003B1, /* 1FB3; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FB4, 0x001FB4, { 0x0003AC, /* 1FB4; 03AC 03B9; Case map */ 0x0003B9 }}, { 0x001FB6, 0x001FB6, { 0x0003B1, /* 1FB6; 03B1 0342; Case map */ 0x000342 }}, { 0x001FB7, 0x001FB7, { 0x0003B1, /* 1FB7; 03B1 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FB8, 0x001FB8, { 0x001FB0 }}, /* 1FB8; 1FB0; Case map */ { 0x001FB9, 0x001FB9, { 0x001FB1 }}, /* 1FB9; 1FB1; Case map */ { 0x001FBA, 0x001FBA, { 0x001F70 }}, /* 1FBA; 1F70; Case map */ { 0x001FBB, 0x001FBB, { 0x001F71 }}, /* 1FBB; 1F71; Case map */ { 0x001FBC, 0x001FBC, { 0x0003B1, /* 1FBC; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FBE, 0x001FBE, { 0x0003B9 }}, /* 1FBE; 03B9; Case map */ { 0x001FC2, 0x001FC2, { 0x001F74, /* 1FC2; 1F74 03B9; Case map */ 0x0003B9 }}, { 0x001FC3, 0x001FC3, { 0x0003B7, /* 1FC3; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FC4, 0x001FC4, { 0x0003AE, /* 1FC4; 03AE 03B9; Case map */ 0x0003B9 }}, { 0x001FC6, 0x001FC6, { 0x0003B7, /* 1FC6; 03B7 0342; Case map */ 0x000342 }}, { 0x001FC7, 0x001FC7, { 0x0003B7, /* 1FC7; 03B7 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FC8, 0x001FC8, { 0x001F72 }}, /* 1FC8; 1F72; Case map */ { 0x001FC9, 0x001FC9, { 0x001F73 }}, /* 1FC9; 1F73; Case map */ { 0x001FCA, 0x001FCA, { 0x001F74 }}, /* 1FCA; 1F74; Case map */ { 0x001FCB, 0x001FCB, { 0x001F75 }}, /* 1FCB; 1F75; Case map */ { 0x001FCC, 0x001FCC, { 0x0003B7, /* 1FCC; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FD2, 0x001FD2, { 0x0003B9, /* 1FD2; 03B9 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FD3, 0x001FD3, { 0x0003B9, /* 1FD3; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FD6, 0x001FD6, { 0x0003B9, /* 1FD6; 03B9 0342; Case map */ 0x000342 }}, { 0x001FD7, 0x001FD7, { 0x0003B9, /* 1FD7; 03B9 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FD8, 0x001FD8, { 0x001FD0 }}, /* 1FD8; 1FD0; Case map */ { 0x001FD9, 0x001FD9, { 0x001FD1 }}, /* 1FD9; 1FD1; Case map */ { 0x001FDA, 0x001FDA, { 0x001F76 }}, /* 1FDA; 1F76; Case map */ { 0x001FDB, 0x001FDB, { 0x001F77 }}, /* 1FDB; 1F77; Case map */ { 0x001FE2, 0x001FE2, { 0x0003C5, /* 1FE2; 03C5 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FE3, 0x001FE3, { 0x0003C5, /* 1FE3; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FE4, 0x001FE4, { 0x0003C1, /* 1FE4; 03C1 0313; Case map */ 0x000313 }}, { 0x001FE6, 0x001FE6, { 0x0003C5, /* 1FE6; 03C5 0342; Case map */ 0x000342 }}, { 0x001FE7, 0x001FE7, { 0x0003C5, /* 1FE7; 03C5 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FE8, 0x001FE8, { 0x001FE0 }}, /* 1FE8; 1FE0; Case map */ { 0x001FE9, 0x001FE9, { 0x001FE1 }}, /* 1FE9; 1FE1; Case map */ { 0x001FEA, 0x001FEA, { 0x001F7A }}, /* 1FEA; 1F7A; Case map */ { 0x001FEB, 0x001FEB, { 0x001F7B }}, /* 1FEB; 1F7B; Case map */ { 0x001FEC, 0x001FEC, { 0x001FE5 }}, /* 1FEC; 1FE5; Case map */ { 0x001FF2, 0x001FF2, { 0x001F7C, /* 1FF2; 1F7C 03B9; Case map */ 0x0003B9 }}, { 0x001FF3, 0x001FF3, { 0x0003C9, /* 1FF3; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x001FF4, 0x001FF4, { 0x0003CE, /* 1FF4; 03CE 03B9; Case map */ 0x0003B9 }}, { 0x001FF6, 0x001FF6, { 0x0003C9, /* 1FF6; 03C9 0342; Case map */ 0x000342 }}, { 0x001FF7, 0x001FF7, { 0x0003C9, /* 1FF7; 03C9 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FF8, 0x001FF8, { 0x001F78 }}, /* 1FF8; 1F78; Case map */ { 0x001FF9, 0x001FF9, { 0x001F79 }}, /* 1FF9; 1F79; Case map */ { 0x001FFA, 0x001FFA, { 0x001F7C }}, /* 1FFA; 1F7C; Case map */ { 0x001FFB, 0x001FFB, { 0x001F7D }}, /* 1FFB; 1F7D; Case map */ { 0x001FFC, 0x001FFC, { 0x0003C9, /* 1FFC; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x002126, 0x002126, { 0x0003C9 }}, /* 2126; 03C9; Case map */ { 0x00212A, 0x00212A, { 0x00006B }}, /* 212A; 006B; Case map */ { 0x00212B, 0x00212B, { 0x0000E5 }}, /* 212B; 00E5; Case map */ { 0x002160, 0x002160, { 0x002170 }}, /* 2160; 2170; Case map */ { 0x002161, 0x002161, { 0x002171 }}, /* 2161; 2171; Case map */ { 0x002162, 0x002162, { 0x002172 }}, /* 2162; 2172; Case map */ { 0x002163, 0x002163, { 0x002173 }}, /* 2163; 2173; Case map */ { 0x002164, 0x002164, { 0x002174 }}, /* 2164; 2174; Case map */ { 0x002165, 0x002165, { 0x002175 }}, /* 2165; 2175; Case map */ { 0x002166, 0x002166, { 0x002176 }}, /* 2166; 2176; Case map */ { 0x002167, 0x002167, { 0x002177 }}, /* 2167; 2177; Case map */ { 0x002168, 0x002168, { 0x002178 }}, /* 2168; 2178; Case map */ { 0x002169, 0x002169, { 0x002179 }}, /* 2169; 2179; Case map */ { 0x00216A, 0x00216A, { 0x00217A }}, /* 216A; 217A; Case map */ { 0x00216B, 0x00216B, { 0x00217B }}, /* 216B; 217B; Case map */ { 0x00216C, 0x00216C, { 0x00217C }}, /* 216C; 217C; Case map */ { 0x00216D, 0x00216D, { 0x00217D }}, /* 216D; 217D; Case map */ { 0x00216E, 0x00216E, { 0x00217E }}, /* 216E; 217E; Case map */ { 0x00216F, 0x00216F, { 0x00217F }}, /* 216F; 217F; Case map */ { 0x0024B6, 0x0024B6, { 0x0024D0 }}, /* 24B6; 24D0; Case map */ { 0x0024B7, 0x0024B7, { 0x0024D1 }}, /* 24B7; 24D1; Case map */ { 0x0024B8, 0x0024B8, { 0x0024D2 }}, /* 24B8; 24D2; Case map */ { 0x0024B9, 0x0024B9, { 0x0024D3 }}, /* 24B9; 24D3; Case map */ { 0x0024BA, 0x0024BA, { 0x0024D4 }}, /* 24BA; 24D4; Case map */ { 0x0024BB, 0x0024BB, { 0x0024D5 }}, /* 24BB; 24D5; Case map */ { 0x0024BC, 0x0024BC, { 0x0024D6 }}, /* 24BC; 24D6; Case map */ { 0x0024BD, 0x0024BD, { 0x0024D7 }}, /* 24BD; 24D7; Case map */ { 0x0024BE, 0x0024BE, { 0x0024D8 }}, /* 24BE; 24D8; Case map */ { 0x0024BF, 0x0024BF, { 0x0024D9 }}, /* 24BF; 24D9; Case map */ { 0x0024C0, 0x0024C0, { 0x0024DA }}, /* 24C0; 24DA; Case map */ { 0x0024C1, 0x0024C1, { 0x0024DB }}, /* 24C1; 24DB; Case map */ { 0x0024C2, 0x0024C2, { 0x0024DC }}, /* 24C2; 24DC; Case map */ { 0x0024C3, 0x0024C3, { 0x0024DD }}, /* 24C3; 24DD; Case map */ { 0x0024C4, 0x0024C4, { 0x0024DE }}, /* 24C4; 24DE; Case map */ { 0x0024C5, 0x0024C5, { 0x0024DF }}, /* 24C5; 24DF; Case map */ { 0x0024C6, 0x0024C6, { 0x0024E0 }}, /* 24C6; 24E0; Case map */ { 0x0024C7, 0x0024C7, { 0x0024E1 }}, /* 24C7; 24E1; Case map */ { 0x0024C8, 0x0024C8, { 0x0024E2 }}, /* 24C8; 24E2; Case map */ { 0x0024C9, 0x0024C9, { 0x0024E3 }}, /* 24C9; 24E3; Case map */ { 0x0024CA, 0x0024CA, { 0x0024E4 }}, /* 24CA; 24E4; Case map */ { 0x0024CB, 0x0024CB, { 0x0024E5 }}, /* 24CB; 24E5; Case map */ { 0x0024CC, 0x0024CC, { 0x0024E6 }}, /* 24CC; 24E6; Case map */ { 0x0024CD, 0x0024CD, { 0x0024E7 }}, /* 24CD; 24E7; Case map */ { 0x0024CE, 0x0024CE, { 0x0024E8 }}, /* 24CE; 24E8; Case map */ { 0x0024CF, 0x0024CF, { 0x0024E9 }}, /* 24CF; 24E9; Case map */ { 0x00FB00, 0x00FB00, { 0x000066, /* FB00; 0066 0066; Case map */ 0x000066 }}, { 0x00FB01, 0x00FB01, { 0x000066, /* FB01; 0066 0069; Case map */ 0x000069 }}, { 0x00FB02, 0x00FB02, { 0x000066, /* FB02; 0066 006C; Case map */ 0x00006C }}, { 0x00FB03, 0x00FB03, { 0x000066, /* FB03; 0066 0066 0069; Case map */ 0x000066, 0x000069 }}, { 0x00FB04, 0x00FB04, { 0x000066, /* FB04; 0066 0066 006C; Case map */ 0x000066, 0x00006C }}, { 0x00FB05, 0x00FB05, { 0x000073, /* FB05; 0073 0074; Case map */ 0x000074 }}, { 0x00FB06, 0x00FB06, { 0x000073, /* FB06; 0073 0074; Case map */ 0x000074 }}, { 0x00FB13, 0x00FB13, { 0x000574, /* FB13; 0574 0576; Case map */ 0x000576 }}, { 0x00FB14, 0x00FB14, { 0x000574, /* FB14; 0574 0565; Case map */ 0x000565 }}, { 0x00FB15, 0x00FB15, { 0x000574, /* FB15; 0574 056B; Case map */ 0x00056B }}, { 0x00FB16, 0x00FB16, { 0x00057E, /* FB16; 057E 0576; Case map */ 0x000576 }}, { 0x00FB17, 0x00FB17, { 0x000574, /* FB17; 0574 056D; Case map */ 0x00056D }}, { 0x00FF21, 0x00FF21, { 0x00FF41 }}, /* FF21; FF41; Case map */ { 0x00FF22, 0x00FF22, { 0x00FF42 }}, /* FF22; FF42; Case map */ { 0x00FF23, 0x00FF23, { 0x00FF43 }}, /* FF23; FF43; Case map */ { 0x00FF24, 0x00FF24, { 0x00FF44 }}, /* FF24; FF44; Case map */ { 0x00FF25, 0x00FF25, { 0x00FF45 }}, /* FF25; FF45; Case map */ { 0x00FF26, 0x00FF26, { 0x00FF46 }}, /* FF26; FF46; Case map */ { 0x00FF27, 0x00FF27, { 0x00FF47 }}, /* FF27; FF47; Case map */ { 0x00FF28, 0x00FF28, { 0x00FF48 }}, /* FF28; FF48; Case map */ { 0x00FF29, 0x00FF29, { 0x00FF49 }}, /* FF29; FF49; Case map */ { 0x00FF2A, 0x00FF2A, { 0x00FF4A }}, /* FF2A; FF4A; Case map */ { 0x00FF2B, 0x00FF2B, { 0x00FF4B }}, /* FF2B; FF4B; Case map */ { 0x00FF2C, 0x00FF2C, { 0x00FF4C }}, /* FF2C; FF4C; Case map */ { 0x00FF2D, 0x00FF2D, { 0x00FF4D }}, /* FF2D; FF4D; Case map */ { 0x00FF2E, 0x00FF2E, { 0x00FF4E }}, /* FF2E; FF4E; Case map */ { 0x00FF2F, 0x00FF2F, { 0x00FF4F }}, /* FF2F; FF4F; Case map */ { 0x00FF30, 0x00FF30, { 0x00FF50 }}, /* FF30; FF50; Case map */ { 0x00FF31, 0x00FF31, { 0x00FF51 }}, /* FF31; FF51; Case map */ { 0x00FF32, 0x00FF32, { 0x00FF52 }}, /* FF32; FF52; Case map */ { 0x00FF33, 0x00FF33, { 0x00FF53 }}, /* FF33; FF53; Case map */ { 0x00FF34, 0x00FF34, { 0x00FF54 }}, /* FF34; FF54; Case map */ { 0x00FF35, 0x00FF35, { 0x00FF55 }}, /* FF35; FF55; Case map */ { 0x00FF36, 0x00FF36, { 0x00FF56 }}, /* FF36; FF56; Case map */ { 0x00FF37, 0x00FF37, { 0x00FF57 }}, /* FF37; FF57; Case map */ { 0x00FF38, 0x00FF38, { 0x00FF58 }}, /* FF38; FF58; Case map */ { 0x00FF39, 0x00FF39, { 0x00FF59 }}, /* FF39; FF59; Case map */ { 0x00FF3A, 0x00FF3A, { 0x00FF5A }}, /* FF3A; FF5A; Case map */ { 0x010400, 0x010400, { 0x010428 }}, /* 10400; 10428; Case map */ { 0x010401, 0x010401, { 0x010429 }}, /* 10401; 10429; Case map */ { 0x010402, 0x010402, { 0x01042A }}, /* 10402; 1042A; Case map */ { 0x010403, 0x010403, { 0x01042B }}, /* 10403; 1042B; Case map */ { 0x010404, 0x010404, { 0x01042C }}, /* 10404; 1042C; Case map */ { 0x010405, 0x010405, { 0x01042D }}, /* 10405; 1042D; Case map */ { 0x010406, 0x010406, { 0x01042E }}, /* 10406; 1042E; Case map */ { 0x010407, 0x010407, { 0x01042F }}, /* 10407; 1042F; Case map */ { 0x010408, 0x010408, { 0x010430 }}, /* 10408; 10430; Case map */ { 0x010409, 0x010409, { 0x010431 }}, /* 10409; 10431; Case map */ { 0x01040A, 0x01040A, { 0x010432 }}, /* 1040A; 10432; Case map */ { 0x01040B, 0x01040B, { 0x010433 }}, /* 1040B; 10433; Case map */ { 0x01040C, 0x01040C, { 0x010434 }}, /* 1040C; 10434; Case map */ { 0x01040D, 0x01040D, { 0x010435 }}, /* 1040D; 10435; Case map */ { 0x01040E, 0x01040E, { 0x010436 }}, /* 1040E; 10436; Case map */ { 0x01040F, 0x01040F, { 0x010437 }}, /* 1040F; 10437; Case map */ { 0x010410, 0x010410, { 0x010438 }}, /* 10410; 10438; Case map */ { 0x010411, 0x010411, { 0x010439 }}, /* 10411; 10439; Case map */ { 0x010412, 0x010412, { 0x01043A }}, /* 10412; 1043A; Case map */ { 0x010413, 0x010413, { 0x01043B }}, /* 10413; 1043B; Case map */ { 0x010414, 0x010414, { 0x01043C }}, /* 10414; 1043C; Case map */ { 0x010415, 0x010415, { 0x01043D }}, /* 10415; 1043D; Case map */ { 0x010416, 0x010416, { 0x01043E }}, /* 10416; 1043E; Case map */ { 0x010417, 0x010417, { 0x01043F }}, /* 10417; 1043F; Case map */ { 0x010418, 0x010418, { 0x010440 }}, /* 10418; 10440; Case map */ { 0x010419, 0x010419, { 0x010441 }}, /* 10419; 10441; Case map */ { 0x01041A, 0x01041A, { 0x010442 }}, /* 1041A; 10442; Case map */ { 0x01041B, 0x01041B, { 0x010443 }}, /* 1041B; 10443; Case map */ { 0x01041C, 0x01041C, { 0x010444 }}, /* 1041C; 10444; Case map */ { 0x01041D, 0x01041D, { 0x010445 }}, /* 1041D; 10445; Case map */ { 0x01041E, 0x01041E, { 0x010446 }}, /* 1041E; 10446; Case map */ { 0x01041F, 0x01041F, { 0x010447 }}, /* 1041F; 10447; Case map */ { 0x010420, 0x010420, { 0x010448 }}, /* 10420; 10448; Case map */ { 0x010421, 0x010421, { 0x010449 }}, /* 10421; 10449; Case map */ { 0x010422, 0x010422, { 0x01044A }}, /* 10422; 1044A; Case map */ { 0x010423, 0x010423, { 0x01044B }}, /* 10423; 1044B; Case map */ { 0x010424, 0x010424, { 0x01044C }}, /* 10424; 1044C; Case map */ { 0x010425, 0x010425, { 0x01044D }}, /* 10425; 1044D; Case map */ { 0 }, }; /* * FF3A; FF5A; Case map * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map */ const Stringprep_table_element stringprep_rfc3454_C_1_1[] = { { 0x000020, 0x000020 }, /* 0020; SPACE */ { 0 }, }; /* * FF3A; FF5A; Case map * * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 0020; SPACE */ const Stringprep_table_element stringprep_rfc3454_C_1_2[] = { { 0x0000A0, 0x0000A0 }, /* 00A0; NO-BREAK SPACE */ { 0x001680, 0x001680 }, /* 1680; OGHAM SPACE MARK */ { 0x002000, 0x002000 }, /* 2000; EN QUAD */ { 0x002001, 0x002001 }, /* 2001; EM QUAD */ { 0x002002, 0x002002 }, /* 2002; EN SPACE */ { 0x002003, 0x002003 }, /* 2003; EM SPACE */ { 0x002004, 0x002004 }, /* 2004; THREE-PER-EM SPACE */ { 0x002005, 0x002005 }, /* 2005; FOUR-PER-EM SPACE */ { 0x002006, 0x002006 }, /* 2006; SIX-PER-EM SPACE */ { 0x002007, 0x002007 }, /* 2007; FIGURE SPACE */ { 0x002008, 0x002008 }, /* 2008; PUNCTUATION SPACE */ { 0x002009, 0x002009 }, /* 2009; THIN SPACE */ { 0x00200A, 0x00200A }, /* 200A; HAIR SPACE */ { 0x00200B, 0x00200B }, /* 200B; ZERO WIDTH SPACE */ { 0x00202F, 0x00202F }, /* 202F; NARROW NO-BREAK SPACE */ { 0x00205F, 0x00205F }, /* 205F; MEDIUM MATHEMATICAL SPACE */ { 0x003000, 0x003000 }, /* 3000; IDEOGRAPHIC SPACE */ { 0 }, }; /* * FF3A; FF5A; Case map * * * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 0020; SPACE 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 200B; ZERO WIDTH SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE */ const Stringprep_table_element stringprep_rfc3454_C_2_1[] = { { 0x000000, 0x00001F }, /* 0000-001F; [CONTROL CHARACTERS] */ { 0x00007F, 0x00007F }, /* 007F; DELETE */ { 0 }, }; /* * FF3A; FF5A; Case map * * * * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 0020; SPACE 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 200B; ZERO WIDTH SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE 0000-001F; [CONTROL CHARACTERS] 007F; DELETE */ const Stringprep_table_element stringprep_rfc3454_C_2_2[] = { { 0x000080, 0x00009F }, /* 0080-009F; [CONTROL CHARACTERS] */ { 0x0006DD, 0x0006DD }, /* 06DD; ARABIC END OF AYAH */ { 0x00070F, 0x00070F }, /* 070F; SYRIAC ABBREVIATION MARK */ { 0x00180E, 0x00180E }, /* 180E; MONGOLIAN VOWEL SEPARATOR */ { 0x00200C, 0x00200C }, /* 200C; ZERO WIDTH NON-JOINER */ { 0x00200D, 0x00200D }, /* 200D; ZERO WIDTH JOINER */ { 0x002028, 0x002028 }, /* 2028; LINE SEPARATOR */ { 0x002029, 0x002029 }, /* 2029; PARAGRAPH SEPARATOR */ { 0x002060, 0x002060 }, /* 2060; WORD JOINER */ { 0x002061, 0x002061 }, /* 2061; FUNCTION APPLICATION */ { 0x002062, 0x002062 }, /* 2062; INVISIBLE TIMES */ { 0x002063, 0x002063 }, /* 2063; INVISIBLE SEPARATOR */ { 0x00206A, 0x00206F }, /* 206A-206F; [CONTROL CHARACTERS] */ { 0x00FEFF, 0x00FEFF }, /* FEFF; ZERO WIDTH NO-BREAK SPACE */ { 0x00FFF9, 0x00FFFC }, /* FFF9-FFFC; [CONTROL CHARACTERS] */ { 0x01D173, 0x01D17A }, /* 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] */ { 0 }, }; /* * FFF9-FFFC; [CONTROL CHARACTERS] * 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] */ const Stringprep_table_element stringprep_rfc3454_C_3[] = { { 0x00E000, 0x00F8FF }, /* E000-F8FF; [PRIVATE USE, PLANE 0] */ { 0x0F0000, 0x0FFFFD }, /* F0000-FFFFD; [PRIVATE USE, PLANE 15] */ { 0x100000, 0x10FFFD }, /* 100000-10FFFD; [PRIVATE USE, PLANE 16] */ { 0 }, }; /* * F0000-FFFFD; [PRIVATE USE, PLANE 15] * 100000-10FFFD; [PRIVATE USE, PLANE 16] */ const Stringprep_table_element stringprep_rfc3454_C_4[] = { { 0x00FDD0, 0x00FDEF }, /* FDD0-FDEF; [NONCHARACTER CODE POINTS] */ { 0x00FFFE, 0x00FFFF }, /* FFFE-FFFF; [NONCHARACTER CODE POINTS] */ { 0x01FFFE, 0x01FFFF }, /* 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] */ { 0x02FFFE, 0x02FFFF }, /* 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] */ { 0x03FFFE, 0x03FFFF }, /* 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] */ { 0x04FFFE, 0x04FFFF }, /* 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] */ { 0x05FFFE, 0x05FFFF }, /* 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] */ { 0x06FFFE, 0x06FFFF }, /* 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] */ { 0x07FFFE, 0x07FFFF }, /* 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] */ { 0x08FFFE, 0x08FFFF }, /* 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] */ { 0x09FFFE, 0x09FFFF }, /* 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] */ { 0x0AFFFE, 0x0AFFFF }, /* AFFFE-AFFFF; [NONCHARACTER CODE POINTS] */ { 0x0BFFFE, 0x0BFFFF }, /* BFFFE-BFFFF; [NONCHARACTER CODE POINTS] */ { 0x0CFFFE, 0x0CFFFF }, /* CFFFE-CFFFF; [NONCHARACTER CODE POINTS] */ { 0x0DFFFE, 0x0DFFFF }, /* DFFFE-DFFFF; [NONCHARACTER CODE POINTS] */ { 0x0EFFFE, 0x0EFFFF }, /* EFFFE-EFFFF; [NONCHARACTER CODE POINTS] */ { 0x0FFFFE, 0x0FFFFF }, /* FFFFE-FFFFF; [NONCHARACTER CODE POINTS] */ { 0x10FFFE, 0x10FFFF }, /* 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] */ { 0 }, }; /* * FFFFE-FFFFF; [NONCHARACTER CODE POINTS] * 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] */ const Stringprep_table_element stringprep_rfc3454_C_5[] = { { 0x00D800, 0x00DFFF }, /* D800-DFFF; [SURROGATE CODES] */ { 0 }, }; /* * D800-DFFF; [SURROGATE CODES] * */ const Stringprep_table_element stringprep_rfc3454_C_6[] = { { 0x00FFF9, 0x00FFF9 }, /* FFF9; INTERLINEAR ANNOTATION ANCHOR */ { 0x00FFFA, 0x00FFFA }, /* FFFA; INTERLINEAR ANNOTATION SEPARATOR */ { 0x00FFFB, 0x00FFFB }, /* FFFB; INTERLINEAR ANNOTATION TERMINATOR */ { 0x00FFFC, 0x00FFFC }, /* FFFC; OBJECT REPLACEMENT CHARACTER */ { 0x00FFFD, 0x00FFFD }, /* FFFD; REPLACEMENT CHARACTER */ { 0 }, }; /* * FFFD; REPLACEMENT CHARACTER * */ const Stringprep_table_element stringprep_rfc3454_C_7[] = { { 0x002FF0, 0x002FFB }, /* 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ { 0 }, }; /* * FFFD; REPLACEMENT CHARACTER * * 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ const Stringprep_table_element stringprep_rfc3454_C_8[] = { { 0x000340, 0x000340 }, /* 0340; COMBINING GRAVE TONE MARK */ { 0x000341, 0x000341 }, /* 0341; COMBINING ACUTE TONE MARK */ { 0x00200E, 0x00200E }, /* 200E; LEFT-TO-RIGHT MARK */ { 0x00200F, 0x00200F }, /* 200F; RIGHT-TO-LEFT MARK */ { 0x00202A, 0x00202A }, /* 202A; LEFT-TO-RIGHT EMBEDDING */ { 0x00202B, 0x00202B }, /* 202B; RIGHT-TO-LEFT EMBEDDING */ { 0x00202C, 0x00202C }, /* 202C; POP DIRECTIONAL FORMATTING */ { 0x00202D, 0x00202D }, /* 202D; LEFT-TO-RIGHT OVERRIDE */ { 0x00202E, 0x00202E }, /* 202E; RIGHT-TO-LEFT OVERRIDE */ { 0x00206A, 0x00206A }, /* 206A; INHIBIT SYMMETRIC SWAPPING */ { 0x00206B, 0x00206B }, /* 206B; ACTIVATE SYMMETRIC SWAPPING */ { 0x00206C, 0x00206C }, /* 206C; INHIBIT ARABIC FORM SHAPING */ { 0x00206D, 0x00206D }, /* 206D; ACTIVATE ARABIC FORM SHAPING */ { 0x00206E, 0x00206E }, /* 206E; NATIONAL DIGIT SHAPES */ { 0x00206F, 0x00206F }, /* 206F; NOMINAL DIGIT SHAPES */ { 0 }, }; /* * FFFD; REPLACEMENT CHARACTER * * * 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] 0340; COMBINING GRAVE TONE MARK 0341; COMBINING ACUTE TONE MARK 200E; LEFT-TO-RIGHT MARK 200F; RIGHT-TO-LEFT MARK 202A; LEFT-TO-RIGHT EMBEDDING 202B; RIGHT-TO-LEFT EMBEDDING 202C; POP DIRECTIONAL FORMATTING 202D; LEFT-TO-RIGHT OVERRIDE 202E; RIGHT-TO-LEFT OVERRIDE 206A; INHIBIT SYMMETRIC SWAPPING 206B; ACTIVATE SYMMETRIC SWAPPING 206C; INHIBIT ARABIC FORM SHAPING 206D; ACTIVATE ARABIC FORM SHAPING 206E; NATIONAL DIGIT SHAPES 206F; NOMINAL DIGIT SHAPES */ const Stringprep_table_element stringprep_rfc3454_C_9[] = { { 0x0E0001, 0x0E0001 }, /* E0001; LANGUAGE TAG */ { 0x0E0020, 0x0E007F }, /* E0020-E007F; [TAGGING CHARACTERS] */ { 0 }, }; /* * E0020-E007F; [TAGGING CHARACTERS] * */ const Stringprep_table_element stringprep_rfc3454_D_1[] = { { 0x0005BE, 0x0005BE }, /* 05BE */ { 0x0005C0, 0x0005C0 }, /* 05C0 */ { 0x0005C3, 0x0005C3 }, /* 05C3 */ { 0x0005D0, 0x0005EA }, /* 05D0-05EA */ { 0x0005F0, 0x0005F4 }, /* 05F0-05F4 */ { 0x00061B, 0x00061B }, /* 061B */ { 0x00061F, 0x00061F }, /* 061F */ { 0x000621, 0x00063A }, /* 0621-063A */ { 0x000640, 0x00064A }, /* 0640-064A */ { 0x00066D, 0x00066F }, /* 066D-066F */ { 0x000671, 0x0006D5 }, /* 0671-06D5 */ { 0x0006DD, 0x0006DD }, /* 06DD */ { 0x0006E5, 0x0006E6 }, /* 06E5-06E6 */ { 0x0006FA, 0x0006FE }, /* 06FA-06FE */ { 0x000700, 0x00070D }, /* 0700-070D */ { 0x000710, 0x000710 }, /* 0710 */ { 0x000712, 0x00072C }, /* 0712-072C */ { 0x000780, 0x0007A5 }, /* 0780-07A5 */ { 0x0007B1, 0x0007B1 }, /* 07B1 */ { 0x00200F, 0x00200F }, /* 200F */ { 0x00FB1D, 0x00FB1D }, /* FB1D */ { 0x00FB1F, 0x00FB28 }, /* FB1F-FB28 */ { 0x00FB2A, 0x00FB36 }, /* FB2A-FB36 */ { 0x00FB38, 0x00FB3C }, /* FB38-FB3C */ { 0x00FB3E, 0x00FB3E }, /* FB3E */ { 0x00FB40, 0x00FB41 }, /* FB40-FB41 */ { 0x00FB43, 0x00FB44 }, /* FB43-FB44 */ { 0x00FB46, 0x00FBB1 }, /* FB46-FBB1 */ { 0x00FBD3, 0x00FD3D }, /* FBD3-FD3D */ { 0x00FD50, 0x00FD8F }, /* FD50-FD8F */ { 0x00FD92, 0x00FDC7 }, /* FD92-FDC7 */ { 0x00FDF0, 0x00FDFC }, /* FDF0-FDFC */ { 0x00FE70, 0x00FE74 }, /* FE70-FE74 */ { 0x00FE76, 0x00FEFC }, /* FE76-FEFC */ { 0 }, }; /* * FE76-FEFC * */ const Stringprep_table_element stringprep_rfc3454_D_2[] = { { 0x000041, 0x00005A }, /* 0041-005A */ { 0x000061, 0x00007A }, /* 0061-007A */ { 0x0000AA, 0x0000AA }, /* 00AA */ { 0x0000B5, 0x0000B5 }, /* 00B5 */ { 0x0000BA, 0x0000BA }, /* 00BA */ { 0x0000C0, 0x0000D6 }, /* 00C0-00D6 */ { 0x0000D8, 0x0000F6 }, /* 00D8-00F6 */ { 0x0000F8, 0x000220 }, /* 00F8-0220 */ { 0x000222, 0x000233 }, /* 0222-0233 */ { 0x000250, 0x0002AD }, /* 0250-02AD */ { 0x0002B0, 0x0002B8 }, /* 02B0-02B8 */ { 0x0002BB, 0x0002C1 }, /* 02BB-02C1 */ { 0x0002D0, 0x0002D1 }, /* 02D0-02D1 */ { 0x0002E0, 0x0002E4 }, /* 02E0-02E4 */ { 0x0002EE, 0x0002EE }, /* 02EE */ { 0x00037A, 0x00037A }, /* 037A */ { 0x000386, 0x000386 }, /* 0386 */ { 0x000388, 0x00038A }, /* 0388-038A */ { 0x00038C, 0x00038C }, /* 038C */ { 0x00038E, 0x0003A1 }, /* 038E-03A1 */ { 0x0003A3, 0x0003CE }, /* 03A3-03CE */ { 0x0003D0, 0x0003F5 }, /* 03D0-03F5 */ { 0x000400, 0x000482 }, /* 0400-0482 */ { 0x00048A, 0x0004CE }, /* 048A-04CE */ { 0x0004D0, 0x0004F5 }, /* 04D0-04F5 */ { 0x0004F8, 0x0004F9 }, /* 04F8-04F9 */ { 0x000500, 0x00050F }, /* 0500-050F */ { 0x000531, 0x000556 }, /* 0531-0556 */ { 0x000559, 0x00055F }, /* 0559-055F */ { 0x000561, 0x000587 }, /* 0561-0587 */ { 0x000589, 0x000589 }, /* 0589 */ { 0x000903, 0x000903 }, /* 0903 */ { 0x000905, 0x000939 }, /* 0905-0939 */ { 0x00093D, 0x000940 }, /* 093D-0940 */ { 0x000949, 0x00094C }, /* 0949-094C */ { 0x000950, 0x000950 }, /* 0950 */ { 0x000958, 0x000961 }, /* 0958-0961 */ { 0x000964, 0x000970 }, /* 0964-0970 */ { 0x000982, 0x000983 }, /* 0982-0983 */ { 0x000985, 0x00098C }, /* 0985-098C */ { 0x00098F, 0x000990 }, /* 098F-0990 */ { 0x000993, 0x0009A8 }, /* 0993-09A8 */ { 0x0009AA, 0x0009B0 }, /* 09AA-09B0 */ { 0x0009B2, 0x0009B2 }, /* 09B2 */ { 0x0009B6, 0x0009B9 }, /* 09B6-09B9 */ { 0x0009BE, 0x0009C0 }, /* 09BE-09C0 */ { 0x0009C7, 0x0009C8 }, /* 09C7-09C8 */ { 0x0009CB, 0x0009CC }, /* 09CB-09CC */ { 0x0009D7, 0x0009D7 }, /* 09D7 */ { 0x0009DC, 0x0009DD }, /* 09DC-09DD */ { 0x0009DF, 0x0009E1 }, /* 09DF-09E1 */ { 0x0009E6, 0x0009F1 }, /* 09E6-09F1 */ { 0x0009F4, 0x0009FA }, /* 09F4-09FA */ { 0x000A05, 0x000A0A }, /* 0A05-0A0A */ { 0x000A0F, 0x000A10 }, /* 0A0F-0A10 */ { 0x000A13, 0x000A28 }, /* 0A13-0A28 */ { 0x000A2A, 0x000A30 }, /* 0A2A-0A30 */ { 0x000A32, 0x000A33 }, /* 0A32-0A33 */ { 0x000A35, 0x000A36 }, /* 0A35-0A36 */ { 0x000A38, 0x000A39 }, /* 0A38-0A39 */ { 0x000A3E, 0x000A40 }, /* 0A3E-0A40 */ { 0x000A59, 0x000A5C }, /* 0A59-0A5C */ { 0x000A5E, 0x000A5E }, /* 0A5E */ { 0x000A66, 0x000A6F }, /* 0A66-0A6F */ { 0x000A72, 0x000A74 }, /* 0A72-0A74 */ { 0x000A83, 0x000A83 }, /* 0A83 */ { 0x000A85, 0x000A8B }, /* 0A85-0A8B */ { 0x000A8D, 0x000A8D }, /* 0A8D */ { 0x000A8F, 0x000A91 }, /* 0A8F-0A91 */ { 0x000A93, 0x000AA8 }, /* 0A93-0AA8 */ { 0x000AAA, 0x000AB0 }, /* 0AAA-0AB0 */ { 0x000AB2, 0x000AB3 }, /* 0AB2-0AB3 */ { 0x000AB5, 0x000AB9 }, /* 0AB5-0AB9 */ { 0x000ABD, 0x000AC0 }, /* 0ABD-0AC0 */ { 0x000AC9, 0x000AC9 }, /* 0AC9 */ { 0x000ACB, 0x000ACC }, /* 0ACB-0ACC */ { 0x000AD0, 0x000AD0 }, /* 0AD0 */ { 0x000AE0, 0x000AE0 }, /* 0AE0 */ { 0x000AE6, 0x000AEF }, /* 0AE6-0AEF */ { 0x000B02, 0x000B03 }, /* 0B02-0B03 */ { 0x000B05, 0x000B0C }, /* 0B05-0B0C */ { 0x000B0F, 0x000B10 }, /* 0B0F-0B10 */ { 0x000B13, 0x000B28 }, /* 0B13-0B28 */ { 0x000B2A, 0x000B30 }, /* 0B2A-0B30 */ { 0x000B32, 0x000B33 }, /* 0B32-0B33 */ { 0x000B36, 0x000B39 }, /* 0B36-0B39 */ { 0x000B3D, 0x000B3E }, /* 0B3D-0B3E */ { 0x000B40, 0x000B40 }, /* 0B40 */ { 0x000B47, 0x000B48 }, /* 0B47-0B48 */ { 0x000B4B, 0x000B4C }, /* 0B4B-0B4C */ { 0x000B57, 0x000B57 }, /* 0B57 */ { 0x000B5C, 0x000B5D }, /* 0B5C-0B5D */ { 0x000B5F, 0x000B61 }, /* 0B5F-0B61 */ { 0x000B66, 0x000B70 }, /* 0B66-0B70 */ { 0x000B83, 0x000B83 }, /* 0B83 */ { 0x000B85, 0x000B8A }, /* 0B85-0B8A */ { 0x000B8E, 0x000B90 }, /* 0B8E-0B90 */ { 0x000B92, 0x000B95 }, /* 0B92-0B95 */ { 0x000B99, 0x000B9A }, /* 0B99-0B9A */ { 0x000B9C, 0x000B9C }, /* 0B9C */ { 0x000B9E, 0x000B9F }, /* 0B9E-0B9F */ { 0x000BA3, 0x000BA4 }, /* 0BA3-0BA4 */ { 0x000BA8, 0x000BAA }, /* 0BA8-0BAA */ { 0x000BAE, 0x000BB5 }, /* 0BAE-0BB5 */ { 0x000BB7, 0x000BB9 }, /* 0BB7-0BB9 */ { 0x000BBE, 0x000BBF }, /* 0BBE-0BBF */ { 0x000BC1, 0x000BC2 }, /* 0BC1-0BC2 */ { 0x000BC6, 0x000BC8 }, /* 0BC6-0BC8 */ { 0x000BCA, 0x000BCC }, /* 0BCA-0BCC */ { 0x000BD7, 0x000BD7 }, /* 0BD7 */ { 0x000BE7, 0x000BF2 }, /* 0BE7-0BF2 */ { 0x000C01, 0x000C03 }, /* 0C01-0C03 */ { 0x000C05, 0x000C0C }, /* 0C05-0C0C */ { 0x000C0E, 0x000C10 }, /* 0C0E-0C10 */ { 0x000C12, 0x000C28 }, /* 0C12-0C28 */ { 0x000C2A, 0x000C33 }, /* 0C2A-0C33 */ { 0x000C35, 0x000C39 }, /* 0C35-0C39 */ { 0x000C41, 0x000C44 }, /* 0C41-0C44 */ { 0x000C60, 0x000C61 }, /* 0C60-0C61 */ { 0x000C66, 0x000C6F }, /* 0C66-0C6F */ { 0x000C82, 0x000C83 }, /* 0C82-0C83 */ { 0x000C85, 0x000C8C }, /* 0C85-0C8C */ { 0x000C8E, 0x000C90 }, /* 0C8E-0C90 */ { 0x000C92, 0x000CA8 }, /* 0C92-0CA8 */ { 0x000CAA, 0x000CB3 }, /* 0CAA-0CB3 */ { 0x000CB5, 0x000CB9 }, /* 0CB5-0CB9 */ { 0x000CBE, 0x000CBE }, /* 0CBE */ { 0x000CC0, 0x000CC4 }, /* 0CC0-0CC4 */ { 0x000CC7, 0x000CC8 }, /* 0CC7-0CC8 */ { 0x000CCA, 0x000CCB }, /* 0CCA-0CCB */ { 0x000CD5, 0x000CD6 }, /* 0CD5-0CD6 */ { 0x000CDE, 0x000CDE }, /* 0CDE */ { 0x000CE0, 0x000CE1 }, /* 0CE0-0CE1 */ { 0x000CE6, 0x000CEF }, /* 0CE6-0CEF */ { 0x000D02, 0x000D03 }, /* 0D02-0D03 */ { 0x000D05, 0x000D0C }, /* 0D05-0D0C */ { 0x000D0E, 0x000D10 }, /* 0D0E-0D10 */ { 0x000D12, 0x000D28 }, /* 0D12-0D28 */ { 0x000D2A, 0x000D39 }, /* 0D2A-0D39 */ { 0x000D3E, 0x000D40 }, /* 0D3E-0D40 */ { 0x000D46, 0x000D48 }, /* 0D46-0D48 */ { 0x000D4A, 0x000D4C }, /* 0D4A-0D4C */ { 0x000D57, 0x000D57 }, /* 0D57 */ { 0x000D60, 0x000D61 }, /* 0D60-0D61 */ { 0x000D66, 0x000D6F }, /* 0D66-0D6F */ { 0x000D82, 0x000D83 }, /* 0D82-0D83 */ { 0x000D85, 0x000D96 }, /* 0D85-0D96 */ { 0x000D9A, 0x000DB1 }, /* 0D9A-0DB1 */ { 0x000DB3, 0x000DBB }, /* 0DB3-0DBB */ { 0x000DBD, 0x000DBD }, /* 0DBD */ { 0x000DC0, 0x000DC6 }, /* 0DC0-0DC6 */ { 0x000DCF, 0x000DD1 }, /* 0DCF-0DD1 */ { 0x000DD8, 0x000DDF }, /* 0DD8-0DDF */ { 0x000DF2, 0x000DF4 }, /* 0DF2-0DF4 */ { 0x000E01, 0x000E30 }, /* 0E01-0E30 */ { 0x000E32, 0x000E33 }, /* 0E32-0E33 */ { 0x000E40, 0x000E46 }, /* 0E40-0E46 */ { 0x000E4F, 0x000E5B }, /* 0E4F-0E5B */ { 0x000E81, 0x000E82 }, /* 0E81-0E82 */ { 0x000E84, 0x000E84 }, /* 0E84 */ { 0x000E87, 0x000E88 }, /* 0E87-0E88 */ { 0x000E8A, 0x000E8A }, /* 0E8A */ { 0x000E8D, 0x000E8D }, /* 0E8D */ { 0x000E94, 0x000E97 }, /* 0E94-0E97 */ { 0x000E99, 0x000E9F }, /* 0E99-0E9F */ { 0x000EA1, 0x000EA3 }, /* 0EA1-0EA3 */ { 0x000EA5, 0x000EA5 }, /* 0EA5 */ { 0x000EA7, 0x000EA7 }, /* 0EA7 */ { 0x000EAA, 0x000EAB }, /* 0EAA-0EAB */ { 0x000EAD, 0x000EB0 }, /* 0EAD-0EB0 */ { 0x000EB2, 0x000EB3 }, /* 0EB2-0EB3 */ { 0x000EBD, 0x000EBD }, /* 0EBD */ { 0x000EC0, 0x000EC4 }, /* 0EC0-0EC4 */ { 0x000EC6, 0x000EC6 }, /* 0EC6 */ { 0x000ED0, 0x000ED9 }, /* 0ED0-0ED9 */ { 0x000EDC, 0x000EDD }, /* 0EDC-0EDD */ { 0x000F00, 0x000F17 }, /* 0F00-0F17 */ { 0x000F1A, 0x000F34 }, /* 0F1A-0F34 */ { 0x000F36, 0x000F36 }, /* 0F36 */ { 0x000F38, 0x000F38 }, /* 0F38 */ { 0x000F3E, 0x000F47 }, /* 0F3E-0F47 */ { 0x000F49, 0x000F6A }, /* 0F49-0F6A */ { 0x000F7F, 0x000F7F }, /* 0F7F */ { 0x000F85, 0x000F85 }, /* 0F85 */ { 0x000F88, 0x000F8B }, /* 0F88-0F8B */ { 0x000FBE, 0x000FC5 }, /* 0FBE-0FC5 */ { 0x000FC7, 0x000FCC }, /* 0FC7-0FCC */ { 0x000FCF, 0x000FCF }, /* 0FCF */ { 0x001000, 0x001021 }, /* 1000-1021 */ { 0x001023, 0x001027 }, /* 1023-1027 */ { 0x001029, 0x00102A }, /* 1029-102A */ { 0x00102C, 0x00102C }, /* 102C */ { 0x001031, 0x001031 }, /* 1031 */ { 0x001038, 0x001038 }, /* 1038 */ { 0x001040, 0x001057 }, /* 1040-1057 */ { 0x0010A0, 0x0010C5 }, /* 10A0-10C5 */ { 0x0010D0, 0x0010F8 }, /* 10D0-10F8 */ { 0x0010FB, 0x0010FB }, /* 10FB */ { 0x001100, 0x001159 }, /* 1100-1159 */ { 0x00115F, 0x0011A2 }, /* 115F-11A2 */ { 0x0011A8, 0x0011F9 }, /* 11A8-11F9 */ { 0x001200, 0x001206 }, /* 1200-1206 */ { 0x001208, 0x001246 }, /* 1208-1246 */ { 0x001248, 0x001248 }, /* 1248 */ { 0x00124A, 0x00124D }, /* 124A-124D */ { 0x001250, 0x001256 }, /* 1250-1256 */ { 0x001258, 0x001258 }, /* 1258 */ { 0x00125A, 0x00125D }, /* 125A-125D */ { 0x001260, 0x001286 }, /* 1260-1286 */ { 0x001288, 0x001288 }, /* 1288 */ { 0x00128A, 0x00128D }, /* 128A-128D */ { 0x001290, 0x0012AE }, /* 1290-12AE */ { 0x0012B0, 0x0012B0 }, /* 12B0 */ { 0x0012B2, 0x0012B5 }, /* 12B2-12B5 */ { 0x0012B8, 0x0012BE }, /* 12B8-12BE */ { 0x0012C0, 0x0012C0 }, /* 12C0 */ { 0x0012C2, 0x0012C5 }, /* 12C2-12C5 */ { 0x0012C8, 0x0012CE }, /* 12C8-12CE */ { 0x0012D0, 0x0012D6 }, /* 12D0-12D6 */ { 0x0012D8, 0x0012EE }, /* 12D8-12EE */ { 0x0012F0, 0x00130E }, /* 12F0-130E */ { 0x001310, 0x001310 }, /* 1310 */ { 0x001312, 0x001315 }, /* 1312-1315 */ { 0x001318, 0x00131E }, /* 1318-131E */ { 0x001320, 0x001346 }, /* 1320-1346 */ { 0x001348, 0x00135A }, /* 1348-135A */ { 0x001361, 0x00137C }, /* 1361-137C */ { 0x0013A0, 0x0013F4 }, /* 13A0-13F4 */ { 0x001401, 0x001676 }, /* 1401-1676 */ { 0x001681, 0x00169A }, /* 1681-169A */ { 0x0016A0, 0x0016F0 }, /* 16A0-16F0 */ { 0x001700, 0x00170C }, /* 1700-170C */ { 0x00170E, 0x001711 }, /* 170E-1711 */ { 0x001720, 0x001731 }, /* 1720-1731 */ { 0x001735, 0x001736 }, /* 1735-1736 */ { 0x001740, 0x001751 }, /* 1740-1751 */ { 0x001760, 0x00176C }, /* 1760-176C */ { 0x00176E, 0x001770 }, /* 176E-1770 */ { 0x001780, 0x0017B6 }, /* 1780-17B6 */ { 0x0017BE, 0x0017C5 }, /* 17BE-17C5 */ { 0x0017C7, 0x0017C8 }, /* 17C7-17C8 */ { 0x0017D4, 0x0017DA }, /* 17D4-17DA */ { 0x0017DC, 0x0017DC }, /* 17DC */ { 0x0017E0, 0x0017E9 }, /* 17E0-17E9 */ { 0x001810, 0x001819 }, /* 1810-1819 */ { 0x001820, 0x001877 }, /* 1820-1877 */ { 0x001880, 0x0018A8 }, /* 1880-18A8 */ { 0x001E00, 0x001E9B }, /* 1E00-1E9B */ { 0x001EA0, 0x001EF9 }, /* 1EA0-1EF9 */ { 0x001F00, 0x001F15 }, /* 1F00-1F15 */ { 0x001F18, 0x001F1D }, /* 1F18-1F1D */ { 0x001F20, 0x001F45 }, /* 1F20-1F45 */ { 0x001F48, 0x001F4D }, /* 1F48-1F4D */ { 0x001F50, 0x001F57 }, /* 1F50-1F57 */ { 0x001F59, 0x001F59 }, /* 1F59 */ { 0x001F5B, 0x001F5B }, /* 1F5B */ { 0x001F5D, 0x001F5D }, /* 1F5D */ { 0x001F5F, 0x001F7D }, /* 1F5F-1F7D */ { 0x001F80, 0x001FB4 }, /* 1F80-1FB4 */ { 0x001FB6, 0x001FBC }, /* 1FB6-1FBC */ { 0x001FBE, 0x001FBE }, /* 1FBE */ { 0x001FC2, 0x001FC4 }, /* 1FC2-1FC4 */ { 0x001FC6, 0x001FCC }, /* 1FC6-1FCC */ { 0x001FD0, 0x001FD3 }, /* 1FD0-1FD3 */ { 0x001FD6, 0x001FDB }, /* 1FD6-1FDB */ { 0x001FE0, 0x001FEC }, /* 1FE0-1FEC */ { 0x001FF2, 0x001FF4 }, /* 1FF2-1FF4 */ { 0x001FF6, 0x001FFC }, /* 1FF6-1FFC */ { 0x00200E, 0x00200E }, /* 200E */ { 0x002071, 0x002071 }, /* 2071 */ { 0x00207F, 0x00207F }, /* 207F */ { 0x002102, 0x002102 }, /* 2102 */ { 0x002107, 0x002107 }, /* 2107 */ { 0x00210A, 0x002113 }, /* 210A-2113 */ { 0x002115, 0x002115 }, /* 2115 */ { 0x002119, 0x00211D }, /* 2119-211D */ { 0x002124, 0x002124 }, /* 2124 */ { 0x002126, 0x002126 }, /* 2126 */ { 0x002128, 0x002128 }, /* 2128 */ { 0x00212A, 0x00212D }, /* 212A-212D */ { 0x00212F, 0x002131 }, /* 212F-2131 */ { 0x002133, 0x002139 }, /* 2133-2139 */ { 0x00213D, 0x00213F }, /* 213D-213F */ { 0x002145, 0x002149 }, /* 2145-2149 */ { 0x002160, 0x002183 }, /* 2160-2183 */ { 0x002336, 0x00237A }, /* 2336-237A */ { 0x002395, 0x002395 }, /* 2395 */ { 0x00249C, 0x0024E9 }, /* 249C-24E9 */ { 0x003005, 0x003007 }, /* 3005-3007 */ { 0x003021, 0x003029 }, /* 3021-3029 */ { 0x003031, 0x003035 }, /* 3031-3035 */ { 0x003038, 0x00303C }, /* 3038-303C */ { 0x003041, 0x003096 }, /* 3041-3096 */ { 0x00309D, 0x00309F }, /* 309D-309F */ { 0x0030A1, 0x0030FA }, /* 30A1-30FA */ { 0x0030FC, 0x0030FF }, /* 30FC-30FF */ { 0x003105, 0x00312C }, /* 3105-312C */ { 0x003131, 0x00318E }, /* 3131-318E */ { 0x003190, 0x0031B7 }, /* 3190-31B7 */ { 0x0031F0, 0x00321C }, /* 31F0-321C */ { 0x003220, 0x003243 }, /* 3220-3243 */ { 0x003260, 0x00327B }, /* 3260-327B */ { 0x00327F, 0x0032B0 }, /* 327F-32B0 */ { 0x0032C0, 0x0032CB }, /* 32C0-32CB */ { 0x0032D0, 0x0032FE }, /* 32D0-32FE */ { 0x003300, 0x003376 }, /* 3300-3376 */ { 0x00337B, 0x0033DD }, /* 337B-33DD */ { 0x0033E0, 0x0033FE }, /* 33E0-33FE */ { 0x003400, 0x004DB5 }, /* 3400-4DB5 */ { 0x004E00, 0x009FA5 }, /* 4E00-9FA5 */ { 0x00A000, 0x00A48C }, /* A000-A48C */ { 0x00AC00, 0x00D7A3 }, /* AC00-D7A3 */ { 0x00D800, 0x00FA2D }, /* D800-FA2D */ { 0x00FA30, 0x00FA6A }, /* FA30-FA6A */ { 0x00FB00, 0x00FB06 }, /* FB00-FB06 */ { 0x00FB13, 0x00FB17 }, /* FB13-FB17 */ { 0x00FF21, 0x00FF3A }, /* FF21-FF3A */ { 0x00FF41, 0x00FF5A }, /* FF41-FF5A */ { 0x00FF66, 0x00FFBE }, /* FF66-FFBE */ { 0x00FFC2, 0x00FFC7 }, /* FFC2-FFC7 */ { 0x00FFCA, 0x00FFCF }, /* FFCA-FFCF */ { 0x00FFD2, 0x00FFD7 }, /* FFD2-FFD7 */ { 0x00FFDA, 0x00FFDC }, /* FFDA-FFDC */ { 0x010300, 0x01031E }, /* 10300-1031E */ { 0x010320, 0x010323 }, /* 10320-10323 */ { 0x010330, 0x01034A }, /* 10330-1034A */ { 0x010400, 0x010425 }, /* 10400-10425 */ { 0x010428, 0x01044D }, /* 10428-1044D */ { 0x01D000, 0x01D0F5 }, /* 1D000-1D0F5 */ { 0x01D100, 0x01D126 }, /* 1D100-1D126 */ { 0x01D12A, 0x01D166 }, /* 1D12A-1D166 */ { 0x01D16A, 0x01D172 }, /* 1D16A-1D172 */ { 0x01D183, 0x01D184 }, /* 1D183-1D184 */ { 0x01D18C, 0x01D1A9 }, /* 1D18C-1D1A9 */ { 0x01D1AE, 0x01D1DD }, /* 1D1AE-1D1DD */ { 0x01D400, 0x01D454 }, /* 1D400-1D454 */ { 0x01D456, 0x01D49C }, /* 1D456-1D49C */ { 0x01D49E, 0x01D49F }, /* 1D49E-1D49F */ { 0x01D4A2, 0x01D4A2 }, /* 1D4A2 */ { 0x01D4A5, 0x01D4A6 }, /* 1D4A5-1D4A6 */ { 0x01D4A9, 0x01D4AC }, /* 1D4A9-1D4AC */ { 0x01D4AE, 0x01D4B9 }, /* 1D4AE-1D4B9 */ { 0x01D4BB, 0x01D4BB }, /* 1D4BB */ { 0x01D4BD, 0x01D4C0 }, /* 1D4BD-1D4C0 */ { 0x01D4C2, 0x01D4C3 }, /* 1D4C2-1D4C3 */ { 0x01D4C5, 0x01D505 }, /* 1D4C5-1D505 */ { 0x01D507, 0x01D50A }, /* 1D507-1D50A */ { 0x01D50D, 0x01D514 }, /* 1D50D-1D514 */ { 0x01D516, 0x01D51C }, /* 1D516-1D51C */ { 0x01D51E, 0x01D539 }, /* 1D51E-1D539 */ { 0x01D53B, 0x01D53E }, /* 1D53B-1D53E */ { 0x01D540, 0x01D544 }, /* 1D540-1D544 */ { 0x01D546, 0x01D546 }, /* 1D546 */ { 0x01D54A, 0x01D550 }, /* 1D54A-1D550 */ { 0x01D552, 0x01D6A3 }, /* 1D552-1D6A3 */ { 0x01D6A8, 0x01D7C9 }, /* 1D6A8-1D7C9 */ { 0x020000, 0x02A6D6 }, /* 20000-2A6D6 */ { 0x02F800, 0x02FA1D }, /* 2F800-2FA1D */ { 0x0F0000, 0x0FFFFD }, /* F0000-FFFFD */ { 0x100000, 0x10FFFD }, /* 100000-10FFFD */ { 0 }, }; libidn-1.38/lib/gen-tld-tables.pl0000755000000000000000000001155714076271517013530 00000000000000#!/usr/bin/perl # Author: Thomas Jacob, Internet24.de # Copyright (C) 2004-2021 Simon Josefsson. # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # # I consider the output of this program to be unrestricted. Use it as # you will. # See doc/tld/README and draft-hoffman-idn-reg-*.txt inside Libidn for # more information on the input file syntax. # Use this to generate TLD tables: # $ ./gen-tld-tables *.tld > tlds.c use strict; use warnings; die "Usage: $0 " if ($#ARGV == -1); print "/* This file is automatically generated. DO NOT EDIT!\n"; print " Instead, edit gen-tld-tables.pl and re-run. */\n"; print "\n"; print "#include \"tld.h\"\n"; print "\n"; my @tlds; foreach my $tldfile (@ARGV) { my ($tld, $version); my $data = process_definition ($tldfile, \$tld, \$version); push @tlds, $tld; optimize($data); print_tld_domain($tld, \@$data, $version); } print "/* Main array */\n"; print "const Tld_table * _tld_tables[] =\n"; print "{\n"; foreach (@tlds) { print " &_tld_${_},\n"; } print " NULL\n"; print "};\n"; # Print tld domain structure. # void print_tld_domain($tldfile, \$tld, \@intervals, $version); sub print_tld_domain { my $tld = shift; my $intervals = shift; my $version = shift; my $num_intervals = @$intervals; print "/* TLD $tld */\n"; print "static const Tld_table_element _tld_${tld}_valid[] =\n"; print "{\n"; if (@$intervals) { my $last = pop @$intervals; foreach (@$intervals) { printf " { 0x%x, 0x%x },\n", $_->[0], $_->[1]; } printf " { 0x%x, 0x%x }\n", $last->[0], $last->[1]; } print "};\n"; print "\n"; print "static const Tld_table _tld_${tld} =\n"; print "{\n"; print " \"$tld\",\n"; print " \"$version\",\n"; print " $num_intervals,\n"; print " &_tld_${tld}_valid[0]\n"; print "};\n\n"; } # process a definition file # $filename, \$tld, \$version # return @data on success, die otherwise sub process_definition { my $filename = shift; my $tld = shift; my $version = shift; my $incversion; my $path; my @data; local * FILE; open(FILE, "<$filename") or die "Cannot open $filename"; $path = $filename; $path =~ s/\/[^\/]+$//; my ($is_int,$have_num,$num,$cnum); my $line = 1; while() { chomp; s/#.*$//; if (m/^include\s+(\S+)\s*$/i) { my $incfile = $1; my ($junk, $ver); my $incdata = process_definition("$path/$incfile", \$junk, \$ver); $incversion = $incversion . " $incfile ($ver)"; push @data, @$incdata; next; } if (m/^version\s+"(.*)"\s*$/i) { $$version = $1; next; } if (m/^tld\s+(\S+)\s*$/i) { $$tld = $1; next; } while ($_ ne "") { s/^\s*//; if ( (s/^(0x)([a-f0-9]+)//i) || (s/^(U\+)([a-f0-9]+)//i) || (s/^(0)(\d+)//) || (s/^(\d+)//) ) { $cnum = $1; if (((lc($1) eq "0x") || (lc($1) eq "u+")) && $2) { $cnum = hex($2); } elsif (($1 eq "0") && $2) { $cnum = oct($2); } if ($have_num) { if ($is_int) { push @data, [$num, $cnum]; $have_num = 0; $is_int = 0; } else { push @data, [$num,$num]; $num = $cnum; } } else { $have_num = 1; $num = $cnum; } } elsif (s/^\-//) { $is_int = 1; } elsif (s/^\|//) { $is_int = 0; } elsif (s/^\://) { $is_int = 0; } else { die "Parser error in file $filename at line $line near $_, " if $_ ne ""; } } $line++; } close(FILE); if ($have_num) { if ($is_int) { push @data, [$num, $cnum]; } else { push @data, [$num, $num]; } } $$version = $$version . $incversion if $incversion; return \@data; } # Build minimal set of intervals. # void optimize(\@intervals) sub optimize { my $intervals = shift; return undef unless (@$intervals); my @intervals = sort {$a->[0] <=> $b->[0]} @$intervals; @$intervals = (); my $cur_int = shift @intervals; foreach (@intervals) { if ($_->[0]>($cur_int->[1]+1)) { push @$intervals, $cur_int; $cur_int = $_; } else { if ($_->[1] > $cur_int->[1]) { $cur_int->[1] = $_->[1]; } } } push @$intervals, $cur_int; } libidn-1.38/HACKING0000644000000000000000000000632514076271517010604 00000000000000Libidn HACKING -- Information for contributors. -*- outline -*- Copyright (C) 2009-2021 Simon Josefsson See the end for copying conditions. This file contains instructions for developers and advanced users that wants to build from version controlled sources. We rely on several tools to build the software, including: - Make - C compiler - Automake - Autoconf - Libtool - Gettext - Texinfo - Gperf - help2man - Gengetopt - Tar - Gzip - Texlive & epsf (for PDF manual) - GTK-DOC (for API manual) - Git - Perl - Valgrind (optional) - OpenJDK (for java port) - Mono mcs (for C# port) - fig2dev The software is typically distributed with your operating system, and the instructions for installing them differ. Here are some hints: Debian 10.x, Ubuntu 20.04: apt-get install make git autoconf automake libtool gettext autopoint cvs apt-get install texinfo texlive texlive-plain-genric texlive-extra-utils apt-get install help2man gtk-doc-tools dblatex valgrind gengetopt apt-get install transfig mono-mcs gperf default-jdk-headless Fedora 33: dnf install -y make git autoconf automake libtool gettext-devel cvs dnf install -y texinfo texinfo-tex texlive dnf install -y help2man gtk-doc gengetopt dblatex valgrind dnf install -y gperf java-latest-openjdk-devel To download the version controlled sources: git clone https://git.savannah.gnu.org/git/libidn.git cd libidn The next step is to import gnulib files, run autoreconf etc: ./bootstrap If you have a local checkout of gnulib and wants to avoid download another copy, you may want to use: ./bootstrap --gnulib-srcdir=../gnulib Then configure the project as you would normally, for example: ./configure --enable-java --enable-gtk-doc-pdf Then build the project: make make check To prepare releases you need some additional tools: - Mingw (to produce Windows binaries) - Wine (to self-check Windows binaries) - Lcov (to produce coverage HTML pages) - Zip (to pack Windows binaries) - Clang (to produce clang analysis) - Doxygen (to produce doxygen manual) - pmccabe (to produce cyclomatic code complexity report) - ncftpput (to upload source tarballs) gNewSense/Debian/Ubuntu: apt-get install mingw-w64 wine binfmt-support lcov zip apt-get install clang doxygen pmccabe ncftp See README-release on how to make a release. Happy hacking! ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/GNUmakefile0000644000000000000000000001074114076273517011666 00000000000000# Having a separate GNUmakefile lets me 'include' the dynamically # generated rules created via cfg.mk (package-local configuration) # as well as maint.mk (generic maintainer rules). # This makefile is used only if you run GNU Make. # It is necessary if you want to build targets usually of interest # only to the maintainer. # Copyright (C) 2001, 2003, 2006-2021 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. _gl-Makefile := $(wildcard [M]akefile) ifneq ($(_gl-Makefile),) # Make tar archive easier to reproduce. export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner # Allow the user to add to this in the Makefile. ALL_RECURSIVE_TARGETS = include Makefile # Some projects override e.g., _autoreconf here. -include $(srcdir)/cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include $(srcdir)/maint.mk # Ensure that $(VERSION) is up to date for dist-related targets, but not # for others: rerunning autoreconf and recompiling everything isn't cheap. _have-git-version-gen := \ $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes) ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) _is-dist-target ?= $(filter-out %clean, \ $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS))) _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) ifneq (,$(_is-dist-target)$(_is-install-target)) _curr-ver := $(shell cd $(srcdir) \ && $(_build-aux)/git-version-gen \ .tarball-version \ $(git-version-gen-tag-sed-script)) ifneq ($(_curr-ver),$(VERSION)) ifeq ($(_curr-ver),UNKNOWN) $(info WARNING: unable to verify if $(VERSION) is the correct version) else ifneq (,$(_is-install-target)) # GNU Coding Standards state that 'make install' should not cause # recompilation after 'make all'. But as long as changing the version # string alters config.h, the cost of having 'make all' always have an # up-to-date version is prohibitive. So, as a compromise, we merely # warn when installing a version string that is out of date; the user # should run 'autoreconf' (or something like 'make distcheck') to # fix the version, 'make all' to propagate it, then 'make install'. $(info WARNING: version string $(VERSION) is out of date;) $(info run '$(MAKE) _version' to fix it) else $(info INFO: running autoreconf for new version string: $(_curr-ver)) GNUmakefile: _version touch GNUmakefile endif endif endif endif endif .PHONY: _version _version: cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf) $(MAKE) $(AM_MAKEFLAGS) Makefile else .DEFAULT_GOAL := abort-due-to-no-makefile srcdir = . # The package can override .DEFAULT_GOAL to run actions like autoreconf. -include ./cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include ./maint.mk ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) $(MAKECMDGOALS): abort-due-to-no-makefile endif abort-due-to-no-makefile: @echo There seems to be no Makefile in this directory. 1>&2 @echo "You must run ./configure before running '$(MAKE)'." 1>&2 @exit 1 endif # Tell version 3.79 and up of GNU make to not build goals in this # directory in parallel, in case someone tries to build multiple # targets, and one of them can cause a recursive target to be invoked. # Only set this if Automake doesn't provide it. AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) \ dist distcheck tags ctags ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS) ifneq ($(word 2, $(MAKECMDGOALS)), ) ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), ) .NOTPARALLEL: endif endif libidn-1.38/AUTHORS0000644000000000000000000000172014076271517010657 00000000000000Libidn AUTHORS -- Information about the authors. Copyright (C) 2002-2021 Simon Josefsson See the end for copying conditions. Simon Josefsson Designed and implemented libidn. Thomas Jacob Contributed TLD support. Oliver Hitz Contributed Java implementation. Stefan Larsson Optimized Java implementation. Added Maven support. Alexander Gnauck Contributed C# port. Adam Strzelecki Contributed Windows Visual Studio project files. Tim Ruehsen Added fuzzing and OSS-Fuzz integration. Fixed bugs and performance issues found by fuzzing. Modernized GTK-Doc build. Fixed build issues. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/contrib/0000755000000000000000000000000014076274117011326 500000000000000libidn-1.38/contrib/web/0000755000000000000000000000000014076274117012103 500000000000000libidn-1.38/contrib/web/idn.php0000644000000000000000000005770014053001337013302 00000000000000 Try GNU Libidn

Try GNU Libidn

This page allows you to try the string preparation, punycode encode/decode and ToASCII/ToUnicode operations of GNU Libidn. If you encounter a problem with this page, write a (detailed!) report to bug-libidn@gnu.org.

If you are interested in commercial support or enhancement of Libidn, you can contact me.

Free shrimp sandwiches are served over here (or here if you want the experimental flavour).

This page ignores any Accept-Charset headers sent by your browser. Instead, the Unicode repertoire encoded as UTF-8 is used. If you are using software that cannot handle this, you must select another MIME charset below. BIG5, ISO-2022-JP-2, ISO-8859-1, and KOI-8 are popular choices. I am sorry for the inconvenience.


Input

The following string must only contain characters that your browser is able to represent in when submitting this form. If you wish to use another charset you must select it below, submit the form and wait for a new page to load, and then enter your string.

>Prepare string using profile:
>Punycode encode
> Punycode decode
>IDNA ToASCII
>IDNA ToUnicode
>Allow Unassigned
>UseSTD3ASCIIRules
>Debug
Change MIME charset of page to:


Output

&1";
   $h = popen($cmd, "r");
   while($s = fgets($h, 1024)) { $out .= $s; };
   pclose($h);
   print "$ CHARSET=" .  escapeshellarg($charset) . " $cmd\n";
   print $out;
   print "$ \n";
?>

Examples


Error codes


  enum
  {
    PUNYCODE_SUCCESS = 0,
    PUNYCODE_BAD_INPUT,		/* Input is invalid.                       */
    PUNYCODE_BIG_OUTPUT,	/* Output would exceed the space provided. */
    PUNYCODE_OVERFLOW		/* Input needs wider integers to process.  */
  };


  typedef enum
  {
    STRINGPREP_OK = 0,
    /* Stringprep errors. */
    STRINGPREP_CONTAINS_UNASSIGNED = 1,
    STRINGPREP_CONTAINS_PROHIBITED = 2,
    STRINGPREP_BIDI_BOTH_L_AND_RAL = 3,
    STRINGPREP_BIDI_LEADTRAIL_NOT_RAL = 4,
    STRINGPREP_BIDI_CONTAINS_PROHIBITED = 5,
    /* Error in calling application. */
    STRINGPREP_TOO_SMALL_BUFFER = 100,
    STRINGPREP_PROFILE_ERROR = 101,
    STRINGPREP_FLAG_ERROR = 102,
    STRINGPREP_UNKNOWN_PROFILE = 103,
    /* Internal errors. */
    STRINGPREP_NFKC_FAILED = 200,
    STRINGPREP_MALLOC_ERROR = 201
  } Stringprep_rc;

  typedef enum
  {
    IDNA_SUCCESS = 0,
    IDNA_STRINGPREP_ERROR = 1,
    IDNA_PUNYCODE_ERROR = 2,
    IDNA_CONTAINS_NON_LDH = 3,
    /* Workaround typo in earlier versions. */
    IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH,
    IDNA_CONTAINS_MINUS = 4,
    IDNA_INVALID_LENGTH = 5,
    IDNA_NO_ACE_PREFIX = 6,
    IDNA_ROUNDTRIP_VERIFY_ERROR = 7,
    IDNA_CONTAINS_ACE_PREFIX = 8,
    IDNA_ICONV_ERROR = 9,
    /* Internal errors. */
    IDNA_MALLOC_ERROR = 201
  } Idna_rc;

libidn-1.38/contrib/java/0000755000000000000000000000000014076274117012247 500000000000000libidn-1.38/contrib/java/IDNA.java0000644000000000000000000000017114053001337013527 00000000000000class IDNA { public native String toAscii(String str); static { System.loadLibrary("idn-java"); } } libidn-1.38/contrib/java/ExampleIDNA.java0000644000000000000000000000017314053001337015045 00000000000000class ExampleIDNA { public static void main(String[] args) { System.out.println(new IDNA().toAscii(args[0])); } } libidn-1.38/contrib/java/IDNA.c0000644000000000000000000000055614075620644013053 00000000000000#include #include "IDNA.h" JNIEXPORT jstring JNICALL Java_IDNA_toAscii (JNIEnv * env, jobject obj, jstring jstr) { const char *in; const char *out; int rc; in = (*env)->GetStringUTFChars (env, jstr, 0); rc = idna_to_ascii_from_utf8 (in, &out, 0, 0); (*env)->ReleaseStringUTFChars (env, jstr, in); return (*env)->NewStringUTF (env, out); } libidn-1.38/contrib/java/autogen.sh0000755000000000000000000000006414053001337014153 00000000000000#!/bin/sh -x autoreconf --install --force --verbose libidn-1.38/contrib/java/configure.ac0000644000000000000000000000025114053001337014436 00000000000000AC_INIT(libidn-java, 0.0.0, bug-libidn@gnu.org) AM_INIT_AUTOMAKE(foreign) AM_CONFIG_HEADER(config.h) AC_PROG_LIBTOOL AC_PROG_CC AC_CONFIG_FILES([Makefile]) AC_OUTPUT libidn-1.38/contrib/java/README0000644000000000000000000000245614076271517013057 00000000000000Libidn README -- Notes for the JAVA API proof of concept. Copyright (C) 2003-2021 Simon Josefsson See the end for copying conditions. This directory builds Java *.class files that implement the Libidn API. Note! It is unfinished and left as a proof of concept. A developer with knowledge about Java is encouraged to take over it. The current Makefile.am require GCJ. It was tested with Sun JDK 1.1 and IBM JDK 1.1.8 too, after replacing "gcj" with "javac" and "gcjh" with "javah" in Makefile.am. Some combinations of compilation with one package and executing using another package (e.g., compile with GCJ, run with Sun's JRE) also seemed to work. $ ./autogen.sh $ ./configure $ make $ su # make install # exit $ make ExampleIDNA $ gij ExampleIDNA räksmörgÃ¥s xn--rksmrgs-5wao1o $ Please let me know if you want to finish and maintain the Java API glue. It may involve some tedious work initially, but could be useful for Java developers. Eventually I think the Java API Glue functions should be merged into libidn, instead of having a separate libidn-java library. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/contrib/java/Makefile.am0000644000000000000000000000175414076271517014233 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . lib_LTLIBRARIES = libidn-java.la libidn_java_la_SOURCES = IDNA.c libidn_java_la_LIBADD = -lidn %.class: %.java gcj -C $< %.h: %.class gcjh -jni $* IDNA.c: IDNA.h clean-local: rm -f IDNA.h IDNA.class ExampleIDNA.class *~ libidn-1.38/contrib/idn-python/0000755000000000000000000000000014076274117013417 500000000000000libidn-1.38/contrib/idn-python/idn.c0000644000000000000000000000346514075620644014264 00000000000000/* * This is a Python interface over Simon Josefsson's libidn * . * * Stephane Bortzmeyer * */ #include #include #include #define MESSAGE_SIZE 512 static PyObject *IDNError; static PyObject *IDNInvLengthError; #define onError(message) { PyErr_SetString(IDNError, message); free(message); return NULL; } static PyObject * idn2ace (PyObject * self, PyObject * args) { char *instr, *result; int rc; PyObject *outstr; if (!PyArg_ParseTuple (args, "s", &instr)) onError ("Invalid argument"); rc = idna_to_ascii_8z (instr, &result); if (rc != IDNA_SUCCESS) { switch (rc) { case IDNA_INVALID_LENGTH: result = malloc (MESSAGE_SIZE); sprintf (result, "%d bytes", strlen (instr)); PyErr_SetString (IDNInvLengthError, result); free (result); return NULL; break; default: result = malloc (MESSAGE_SIZE); sprintf (result, "IDN error: %d (see idna.h)", rc); onError (result); } } outstr = Py_BuildValue ("s", result); return outstr; } static PyObject * ace2idn (PyObject * self, PyObject * args) { char *instr, *result; int rc; PyObject *outstr; if (!PyArg_ParseTuple (args, "s", &instr)) onError ("Invalid argument"); rc = idna_to_unicode_8z8z (instr, &result); if (rc != IDNA_SUCCESS) { result = malloc (MESSAGE_SIZE); sprintf (result, "IDN error: %d (see idna.h)", rc); onError (result); } outstr = Py_BuildValue ("s", result); return outstr; } static struct PyMethodDef methods[] = { {"idn2ace", idn2ace, 1}, {"ace2idn", ace2idn, 1}, {NULL, NULL} }; void initidn () { Py_InitModule ("idn", methods); IDNError = PyErr_NewException ("idn.error", NULL, NULL); IDNInvLengthError = PyErr_NewException ("idn.invalidLength", NULL, NULL); } libidn-1.38/contrib/idn-python/Makefile0000644000000000000000000000032614053001337014763 00000000000000INCLUDE=/usr/include/python2.1 INSTDIR=/usr/local/lib/python2.1/site-packages LIBS=-lidn all: idn.so %.so: %.c gcc -I${INCLUDE} ${LIBS} -shared -fPIC -o $@ $< install: cp idn.so ${INSTDIR} clean: rm -f *.so libidn-1.38/contrib/idn-python/README0000644000000000000000000000121714053001337014203 00000000000000*** Note that as of version 2.3 Python has native IDN support, see *** . This is a Python interface over Simon Josefsson's libidn . To install, be sure you have libidn installed, check the Makefile, and type "make" and "make install". Sample use: import idn print idn.idn2ace("Café"); # The string must be in UTF-8 With a conversion to UTF-8 first, assuming your locale is Latin-1: import idn name = sys.argv[1] ustring = unicode(name, "Latin-1") print idn.idn2ace(ustring.encode("UTF-8")) ------------------ Stephane Bortzmeyer libidn-1.38/contrib/idn-python/test.py0000644000000000000000000000036214053001337014654 00000000000000#!/usr/bin/python locale = "Latin-1" import idn import sys if len(sys.argv) <= 1: print "Usage: %s name" % sys.argv[0] sys.exit(1) name = sys.argv[1] ustring = unicode(name, locale) print idn.idn2ace(ustring.encode("UTF-8")) libidn-1.38/contrib/doxygen/0000755000000000000000000000000014076274117013003 500000000000000libidn-1.38/contrib/doxygen/gdoc2doxygen0000755000000000000000000000151214076271517015245 00000000000000#!/usr/bin/perl # Copyright (C) 2003-2021 Simon Josefsson # 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 3 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, see . # I consider the output of this program to be unrestricted. Use it as # you will. while (<>) { s, \* @(.*):, * \\param $1,g; print $_; } libidn-1.38/contrib/doxygen/Doxyfile.orig0000644000000000000000000016374214053001337015370 00000000000000# Doxyfile 1.5.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, # and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hiererachy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NONE # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is enabled by default, which results in a transparent # background. Warning: Depending on the platform used, enabling this option # may lead to badly anti-aliased labels on the edges of a graph (i.e. they # become hard to read). DOT_TRANSPARENT = YES # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO libidn-1.38/contrib/doxygen/Doxyfile.in0000644000000000000000000016404514053001337015033 00000000000000# Doxyfile 1.5.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = @PACKAGE@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, # and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../../lib # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = ../../examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = example*.c # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = ./gdoc2doxygen # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hiererachy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NONE # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is enabled by default, which results in a transparent # background. Warning: Depending on the platform used, enabling this option # may lead to badly anti-aliased labels on the edges of a graph (i.e. they # become hard to read). DOT_TRANSPARENT = YES # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO libidn-1.38/contrib/README0000644000000000000000000000216314076271517012131 00000000000000Libidn contrib/README -- Notes for the contrib/ subdirectory. Copyright (C) 2003-2021 Simon Josefsson See the end for copying conditions. The idn-python/ sub-directory contains a Python interface for Libidn, contributed by Stephane Bortzmeyer . It is licensed under the same licence as Libidn itself. Note that as of version 2.3 Python has native IDN support, see . The web/ sub-directory contains a online libidn interface in PHP. The java/ sub-directory builds Java *.class files that implement the Libidn API. Note! It is unfinished and left as a proof of concept. A developer with knowledge about Java is encouraged to take over it. The doxygen/ sub-directory builds Doxygen documentation (HTML, LaTeX/PDF and MAN). Simply invoke "doxygen" in that directory and it should build the documentation. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/COPYING.LESSERv20000644000000000000000000006364214053001337012103 00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 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. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, 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 library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with the Library. 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 Library or any portion of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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 Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you 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. If distribution of 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 satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be 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. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library 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. 9. 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 Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library 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 with this License. 11. 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 Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library 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 Library. 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. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library 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. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser 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 Library 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 Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, 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 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. 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 library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libidn-1.38/examples/0000755000000000000000000000000014076274121011477 500000000000000libidn-1.38/examples/example4.c0000644000000000000000000000443514076271517013316 00000000000000/* example4.c --- Example ToUnicode() code showing how to use Libidn. * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_unicode_lzlz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn` * $ ./example4 * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * ACE label (length 23): 'www.räksmörgÃ¥sa.example' * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = idna_to_unicode_lzlz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", (unsigned) p[i] & 0xFF); printf ("\n"); free (p); return 0; } libidn-1.38/examples/Makefile.in0000644000000000000000000016552614076273732013512 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = example$(EXEEXT) example2$(EXEEXT) example3$(EXEEXT) \ example4$(EXEEXT) $(am__EXEEXT_1) @TLD_TRUE@am__append_1 = example5 subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @TLD_TRUE@am__EXEEXT_1 = example5$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) example_SOURCES = example.c example_OBJECTS = example.$(OBJEXT) example_LDADD = $(LDADD) example_DEPENDENCIES = ../lib/libidn.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = example2_SOURCES = example2.c example2_OBJECTS = example2.$(OBJEXT) example2_LDADD = $(LDADD) example2_DEPENDENCIES = ../lib/libidn.la example3_SOURCES = example3.c example3_OBJECTS = example3.$(OBJEXT) example3_LDADD = $(LDADD) example3_DEPENDENCIES = ../lib/libidn.la example4_SOURCES = example4.c example4_OBJECTS = example4.$(OBJEXT) example4_LDADD = $(LDADD) example4_DEPENDENCIES = ../lib/libidn.la example5_SOURCES = example5.c example5_OBJECTS = example5.$(OBJEXT) example5_LDADD = $(LDADD) example5_DEPENDENCIES = ../lib/libidn.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/example.Po ./$(DEPDIR)/example2.Po \ ./$(DEPDIR)/example3.Po ./$(DEPDIR)/example4.Po \ ./$(DEPDIR)/example5.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = example.c example2.c example3.c example4.c example5.c DIST_SOURCES = example.c example2.c example3.c example4.c example5.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib LDADD = ../lib/libidn.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) $(EXTRA_example_DEPENDENCIES) @rm -f example$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example_OBJECTS) $(example_LDADD) $(LIBS) example2$(EXEEXT): $(example2_OBJECTS) $(example2_DEPENDENCIES) $(EXTRA_example2_DEPENDENCIES) @rm -f example2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example2_OBJECTS) $(example2_LDADD) $(LIBS) example3$(EXEEXT): $(example3_OBJECTS) $(example3_DEPENDENCIES) $(EXTRA_example3_DEPENDENCIES) @rm -f example3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example3_OBJECTS) $(example3_LDADD) $(LIBS) example4$(EXEEXT): $(example4_OBJECTS) $(example4_DEPENDENCIES) $(EXTRA_example4_DEPENDENCIES) @rm -f example4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example4_OBJECTS) $(example4_LDADD) $(LIBS) example5$(EXEEXT): $(example5_OBJECTS) $(example5_DEPENDENCIES) $(EXTRA_example5_DEPENDENCIES) @rm -f example5$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example5_OBJECTS) $(example5_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example5.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/example.Po -rm -f ./$(DEPDIR)/example2.Po -rm -f ./$(DEPDIR)/example3.Po -rm -f ./$(DEPDIR)/example4.Po -rm -f ./$(DEPDIR)/example5.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/example.Po -rm -f ./$(DEPDIR)/example2.Po -rm -f ./$(DEPDIR)/example3.Po -rm -f ./$(DEPDIR)/example4.Po -rm -f ./$(DEPDIR)/example5.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/examples/example.c0000644000000000000000000000461414076271517013231 00000000000000/* example.c --- Example code showing how to use stringprep(). * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #include #include #include #include /* setlocale() */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn` * $ ./example * Input string encoded as `ISO-8859-1': ª * Before locale2utf8 (length 2): aa 0a * Before stringprep (length 3): c2 aa 0a * After stringprep (length 2): 61 0a * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input string encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); printf ("Before stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep); if (rc != STRINGPREP_OK) printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc)); else { printf ("After stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); } return 0; } libidn-1.38/examples/example5.c0000644000000000000000000000632614076271517013320 00000000000000/* example5.c --- Example TLD checking. * Copyright (C) 2004-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #include #include #include /* Get stringprep_locale_charset, etc. */ #include /* Get idna_to_ascii_8z, etc. */ #include /* Get tld_check_4z. */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn` * $ ./example5 * Input domain encoded as `UTF-8': fooß.no * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f * ToASCII string (length 8): fooss.no * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f * Domain accepted by TLD check * * $ ./example5 * Input domain encoded as `UTF-8': gr€€n.no * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f * ToASCII string (length 16): xn--grn-l50aa.no * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f * Domain rejected by TLD check, Unicode position 2 * */ int main (void) { char buf[BUFSIZ]; char *p; uint32_t *r; int rc; size_t errpos, i; printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); rc = idna_to_ascii_8z (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p); rc = idna_to_unicode_8z4z (p, &r, 0); free (p); if (rc != IDNA_SUCCESS) { printf ("idna_to_unicode_8z4z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToUnicode string: "); for (i = 0; r[i]; i++) printf ("U+%04x ", r[i]); printf ("\n"); rc = tld_check_4z (r, &errpos, NULL); free (r); if (rc == TLD_INVALID) { printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos); return 1; } else if (rc != TLD_SUCCESS) { printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc)); return 2; } printf ("Domain accepted by TLD check\n"); return 0; } libidn-1.38/examples/example2.c0000644000000000000000000001444314076271517013314 00000000000000/* example2.c --- Example code showing how to use punycode. * Copyright (C) 2002-2021 Simon Josefsson * Copyright (C) 2002 Adam M. Costello * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #include /* setlocale() */ /* * This file is derived from RFC 3492 written by Adam M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * */ #include #include #include #include #include /* For testing, we'll just set some compile-time limits rather than */ /* use malloc(), and set a compile-time option rather than using a */ /* command-line option. */ enum { unicode_max_length = 256, ace_max_length = 256 }; static void usage (char **argv) { fprintf (stderr, "\n" "%s -e reads code points and writes a Punycode string.\n" "%s -d reads a Punycode string and writes code points.\n" "\n" "Input and output are plain text in the native character set.\n" "Code points are in the form u+hex separated by whitespace.\n" "Although the specification allows Punycode strings to contain\n" "any characters from the ASCII repertoire, this test code\n" "supports only the printable characters, and needs the Punycode\n" "string to be followed by a newline.\n" "The case of the u in u+hex is the force-to-uppercase flag.\n", argv[0], argv[0]); exit (EXIT_FAILURE); } static void fail (const char *msg) { fputs (msg, stderr); exit (EXIT_FAILURE); } static const char too_big[] = "input or output is too large, recompile with larger limits\n"; static const char invalid_input[] = "invalid input\n"; static const char overflow[] = "arithmetic overflow\n"; static const char io_error[] = "I/O error\n"; /* The following string is used to convert printable */ /* characters between ASCII and the native charset: */ static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40" /* at sign */ "ABCDEFGHIJKLMNO" "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n"; int main (int argc, char **argv) { enum punycode_status status; int r; size_t input_length, output_length, j; unsigned char case_flags[unicode_max_length]; setlocale (LC_ALL, ""); if (argc != 2) usage (argv); if (argv[1][0] != '-') usage (argv); if (argv[1][2] != 0) usage (argv); if (argv[1][1] == 'e') { uint32_t input[unicode_max_length]; unsigned long codept; char output[ace_max_length + 1], uplus[3]; int c; /* Read the input code points: */ input_length = 0; for (;;) { r = scanf ("%2s%lx", uplus, &codept); if (ferror (stdin)) fail (io_error); if (r == EOF || r == 0) break; if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1) { fail (invalid_input); } if (input_length == unicode_max_length) fail (too_big); if (uplus[0] == 'u') case_flags[input_length] = 0; else if (uplus[0] == 'U') case_flags[input_length] = 1; else fail (invalid_input); input[input_length++] = codept; } /* Encode: */ output_length = ace_max_length; status = punycode_encode (input_length, input, case_flags, &output_length, output); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Convert to native charset and output: */ for (j = 0; j < output_length; ++j) { c = output[j]; assert (c >= 0 && c <= 127); if (print_ascii[c] == 0) fail (invalid_input); output[j] = print_ascii[c]; } output[j] = 0; r = puts (output); if (r == EOF) fail (io_error); return EXIT_SUCCESS; } if (argv[1][1] == 'd') { char input[ace_max_length + 2], *p, *pp; uint32_t output[unicode_max_length]; /* Read the Punycode input string and convert to ASCII: */ if (!fgets (input, ace_max_length + 2, stdin)) fail (io_error); if (ferror (stdin)) fail (io_error); if (feof (stdin)) fail (invalid_input); input_length = strlen (input) - 1; if (input[input_length] != '\n') fail (too_big); input[input_length] = 0; for (p = input; *p != 0; ++p) { pp = strchr (print_ascii, *p); if (pp == 0) fail (invalid_input); *p = pp - print_ascii; } /* Decode: */ output_length = unicode_max_length; status = punycode_decode (input_length, input, &output_length, output, case_flags); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Output the result: */ for (j = 0; j < output_length; ++j) { r = printf ("%s+%04lX\n", case_flags[j] ? "U" : "u", (unsigned long) output[j]); if (r < 0) fail (io_error); } return EXIT_SUCCESS; } usage (argv); return EXIT_SUCCESS; /* not reached, but quiets compiler warning */ } libidn-1.38/examples/README0000644000000000000000000000217614076271517012313 00000000000000Libidn examples/README -- Information about files in examples/ directory. Copyright (C) 2003-2021 Simon Josefsson See the end for copying conditions. This directory contains examples on how to use Libidn. * Example 1:: Example using stringprep. This example demonstrates how the stringprep functions are used. * Example 2:: Example using punycode. This example demonstrates how the punycode functions are used. * Example 3:: Example using IDNA ToASCII. This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. * Example 4:: Example using IDNA ToUnicode. This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. * Example 5:: Example using TLD checking. This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.38/examples/Makefile.am0000644000000000000000000000173214076271517013464 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . EXTRA_DIST = README AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib LDADD = ../lib/libidn.la noinst_PROGRAMS = example example2 example3 example4 if TLD noinst_PROGRAMS += example5 endif libidn-1.38/examples/example3.c0000644000000000000000000000442214076271517013311 00000000000000/* example3.c --- Example ToASCII() code showing how to use Libidn. * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_ascii_lz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn` * $ ./example3 * Input domain encoded as `ISO-8859-1': www.räksmörgÃ¥sª.example * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65 * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example' * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = idna_to_ascii_lz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", (unsigned) p[i] & 0xFF); printf ("\n"); free (p); return 0; } libidn-1.38/Makefile.in0000644000000000000000000020652214076273731011663 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_DOC_TRUE@am__append_1 = doc @JAVA_TRUE@am__append_2 = java @CSHARP_TRUE@am__append_3 = csharp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = csharpcomp.sh csharpexec.sh \ contrib/doxygen/Doxyfile CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = gl lib/gl lib po src doc tests fuzz examples java \ csharp am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/build-aux/ar-lib \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.rpath \ $(top_srcdir)/build-aux/config.sub \ $(top_srcdir)/build-aux/csharpcomp.sh.in \ $(top_srcdir)/build-aux/csharpexec.sh.in \ $(top_srcdir)/build-aux/install-sh \ $(top_srcdir)/build-aux/ltmain.sh \ $(top_srcdir)/build-aux/missing \ $(top_srcdir)/contrib/doxygen/Doxyfile.in ABOUT-NLS AUTHORS \ COPYING ChangeLog INSTALL NEWS README THANKS build-aux/ar-lib \ build-aux/config.guess build-aux/config.rpath \ build-aux/config.sub build-aux/depcomp build-aux/install-sh \ build-aux/ltmain.sh build-aux/mdate-sh build-aux/missing \ build-aux/texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip # Exists only to be overridden by the user if desired. AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gl lib/gl lib po src $(am__append_1) tests fuzz examples \ $(am__append_2) $(am__append_3) # Visual Studio project files. # git-version-gen EXTRA_DIST = cfg.mk maint.mk COPYING.LESSERv2 COPYING.LESSERv3 \ COPYINGv2 COPYINGv3 FAQ libc/README libc/getaddrinfo-idn.txt \ libc/example.c contrib/README contrib/idn-python/README \ contrib/idn-python/Makefile contrib/idn-python/idn.c \ contrib/idn-python/test.py contrib/web/idn.php \ contrib/java/README contrib/java/autogen.sh \ contrib/java/configure.ac contrib/java/Makefile.am \ contrib/java/ExampleIDNA.java contrib/java/IDNA.java \ contrib/java/IDNA.c contrib/doxygen/Doxyfile.in \ contrib/doxygen/Doxyfile.orig contrib/doxygen/gdoc2doxygen \ windows/libidn.sln windows/libidn.vcproj \ windows/include/unistd.h windows/include/idn-int.h \ windows/include/stdbool.h windows/include/ac-stdint.h \ windows/include/config.h windows/libidn4win.mk HACKING \ $(top_srcdir)/.version ACLOCAL_AMFLAGS = -I lib/m4 -I gl/m4 -I lib/gl/m4 -I m4 DISTCHECK_CONFIGURE_FLAGS = --enable-doc --enable-gtk-doc --disable-valgrind-tests BUILT_SOURCES = $(top_srcdir)/.version all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 csharpcomp.sh: $(top_builddir)/config.status $(top_srcdir)/build-aux/csharpcomp.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ csharpexec.sh: $(top_builddir)/config.status $(top_srcdir)/build-aux/csharpexec.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/doxygen/Doxyfile: $(top_builddir)/config.status $(top_srcdir)/contrib/doxygen/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-zstd: distdir tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-exec install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile $(top_srcdir)/.version: echo $(VERSION) > $@-t && mv $@-t $@ dist-hook: gen-ChangeLog echo $(VERSION) > $(distdir)/.tarball-version .PHONY: gen-ChangeLog gen-ChangeLog: $(AM_V_GEN)if test -d .git; then \ $(top_srcdir)/build-aux/gitlog-to-changelog > \ $(distdir)/cl-t && \ { rm -f $(distdir)/ChangeLog && \ mv $(distdir)/cl-t $(distdir)/ChangeLog; } \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/ChangeLog0000644000000000000000000037462114076274122011371 000000000000002021-07-22 Simon Josefsson version 1.38 * NEWS: Record release date. Bump STRINGPREP_VERSION. Bump LT_VERSION. build: Rebuild cyclo-libidn.html when version changes. Update. 2021-07-21 Simon Josefsson build: Fix --disable-tld builds. Simplify building of gdoc-generated man/texi outputs. Rebuild GTK-DOC HTML/PDF outputs on version number changes. doc: Rebuild idn.1 when version number changes. build: Fix --disable-tld builds. 2021-07-20 Simon Josefsson cicd: Add pages. doc: Improve GTK-DOC manual. cicd: Fix Ubuntu 12.04 builds. Improve GTK-DOC manual. Fix build errors related to doc/idn--help.texi. 2021-05-23 Simon Josefsson doc: Fix release process. 2021-05-21 Simon Josefsson doc: Improve HACKING instructions. 2021-05-17 Simon Josefsson Bootstrap cache. 2021-05-15 Simon Josefsson Ignore more. maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. version 1.37 * NEWS: Record release date. Add. Use gnulib's bootstrap. Drop old unused WERROR_CFLAGS usage. 2021-05-10 Simon Josefsson Improve URLs. 2021-01-17 Simon Josefsson Fix links for git and valgrind. 2021-01-15 Simon Josefsson Fix self check for --disable-tld. 2021-01-12 Simon Josefsson Sync with TP. Doc fixes. Don't dist ps/html/pdf. Drop custom css. Improve ./configure summary output. Use gnulib langinfo module. More ./configure summary output. Use AM_GNU_GETTEXT_VERSION to get intl.m4 too. Ignore more. Disable some complex gnulib self-tests that add lots of dependencies and fail on mingw. Drop second gnulib tests directory since only one is supported. Require more recent automake and gtk-doc. Fix .gitignore. doc: Fix JDK dependency for Fedora. Drop warning stuff covered by manywarnings.m4 now. Disable VLA from gettext. Remove autopoint-generated files that are in gnulib too. Drop. Update autoconf archive macros. Prefer gnulib's M4 files over autopoint. Modernize autoconf usage. Use AM_GNU_GETTEXT_REQUIRE_VERSION. Update gnulib files. Modernize configure.ac. Require autoconf 2.64 for newer gnulib. Avoid including copyright info in idn example. Fix manual copyright years. Fix syntax-check. Update copyright years. Improve HACKING. 2020-12-26 Simon Josefsson Drop obsolete PGP key from AUTHORS. Revert last patch, clearly src/ was being built before doc/. Build doc/ after src/ so that src/idn exists for help2man of doc/idn.1. Fix recommended package installs. Drop .gitlab-ci.yml. 2020-10-26 Simon Josefsson Doc fix. Sync with TP. Fix typos, inspired by codespell. 2020-07-23 Simon Josefsson Bump versions. 2020-07-22 Simon Josefsson Update for 1.36. Release fixes. Version 1.36. Sync with TP. Update gnulib files. 2020-06-11 Simon Josefsson Fix build error on Mac OS X 10.5, Solaris 11 and AIX. Reported by Bruno Haible . 2020-06-10 Simon Josefsson Ignore libtool.m4 for syntax-check. Drop gnulib version-etc-tests, causes linker problems. Add libtool files to VC to be able to work around libtool bugs. Files taken from libunistring which contain some fixes to solve Solaris 11 builds, reported by Bruno Haible in https://lists.gnu.org/archive/html/help-libidn/2020-05/msg00016.html Update gnulib files. Sync with TP. 2020-05-31 Simon Josefsson Sync with TP. 2020-05-18 Simon Josefsson Move fuzz-coverage rule to gmake-only cfg.mk. Fixes native AIX make. Reported by Bruno Haible . Re-order so that tests/ is done before fuzz/. 2020-05-18 Bruno Haible Reduce the impact of Gnulib test failures. * Makefile.am (SUBDIRS): Move gltests and lib/gltests after tests. 2020-05-18 Simon Josefsson Suggest to use --help when invalid command-line parameter was used. Don't use old-style quotes. Reported by Bruno Haible . 2020-05-17 Simon Josefsson Update gnulib files. tld: Add U+00EF to .nl TLD table. Reported by Trond Haugen . Update name/email on request. Doc fix. Doc fix. Add build-dep on dblatex for gtkdoc-mkpdf. Add build-dep on autopoint. Sync with TP. 2020-05-01 Tim Rühsen Update file copyrights in fuzz/ 2020-04-30 Simon Josefsson Fix ICONV error string. Suggested by Benno Schulenberg. Restore pre-processor indentation. 2020-04-29 Simon Josefsson Simplify CI rules. Debian git package is now git rather than git-core. Install build deps. Add GitLab CI rules. 2020-04-28 Simon Josefsson Fix NEWS. Bump versions. Ignore more. Re-enable valgrind tests for developers. Indent code. Fix syntax-checks. Bump copyright years. Update gnulib files. Fix libidn.jar building with non-gcj. Provide local copies of autoconf-archive Java M4's. Update copyright years. 2019-05-24 Tim Rühsen Fix tests, adding gltests/test-once.c Fix build failure in csharp/ Update gnulib files 2018-07-10 Miroslav Lichvar Fix unlikely memory leak in idna_to_unicode_4z4z 2018-07-06 Tim Rühsen Check codepoint validity in punycode_decode() and punycode_decode() These functions were able to generate invalid unicode values resp. invalid punycode. This is undocumented/unexpected behavior that can lead to security vulns. Reported-by: Mike Schiffman (Farsight Security, Inc.) 2018-05-11 Tim Rühsen Update HACKING Update release date in NEWS Amend po/Makevars to survive 'make distcheck' Disable valgrind tests for 'make distcheck' and by default Remove fuzz corpora from tarball Sync with TP. Sync with TP. Sync with TP. Fix indentation Update fuzzer corpora Update fuzz/ stuff Drop gcj since upstream dropped it 2018-05-09 Tim Rühsen Prepare release Add release script Update Windows build to libiconv-1.15 Sync with TP. 2018-04-02 Tim Rühsen Add missing gnulib files 2018-04-01 Tim Rühsen Remove gcc/clang specific -Wno-vla option Reported-by: Dennis Clarke 2018-03-31 Tim Rühsen Make code C89 compliant Remove TESTS_VALGRIND code from fuzz/main.c Update for release Increase library revision Remove autogenerated limits.h Update AUTHORS Update NEWS Sync with TP. Update gnulib 2018-01-30 Tim Rühsen Remove -Werror from CFLAGS Newer compilers have more warnings enabled by default which maybe break compilation with -Werror. (But -Werror is good for developer-controlled testing.) E.g. build broke with clang and --disable-nls configure flag. Reported-by: Rupert Gallagher 2018-01-09 Tim Rühsen Fix cfg.mk, update .gitignore Bootstrap: Properly generate gtk-doc.make Remove gtk-doc.make from repo Bootstrap: Create gtk-doc.make 2018-01-08 Tim Rühsen Remove m4/gtk-doc.m4 from repo 2018-01-05 Tim Rühsen Auto-generate build-aux/config.rpath .gitignore: Add build-aux/config.rpath Fix bootstrap to work without build-aux/config.rpath configure.ac: Only use AM_SILENT_RULES if available 2018-01-04 Tim Rühsen Test for GTK_DOC_CHECK in configure.ac Remove old and unneeded GTK-DOC files Remove auto-generated file build-aux/config.rpath 2017-11-03 Tim Rühsen * lib/nfkc.c (combine_hangul): Fix integer overflow Found by OSS-Fuzz. Has no impact. 2017-10-04 Tim Rühsen lib/punycode.c (decode_digit): Really fix integer overflow The fix in commit e9e81b8063b095b02cf104bb992fa9bf9515b9d8 was incomplete. Reported-by: Christian Weisgerber 2017-10-04 Tim Rühsen * src/Makefile.am: Fix rule for parallel builds 2017-09-01 Tim Rühsen lib/punycode.c (decode_digit): Fix integer overflow This fix is a backport from libidn2 and addresses CVE-2017-14062. 2017-07-18 Tim Rühsen Update fuzzer test corpora 2017-07-16 Tim Rühsen Fix slowness issue in idna.c/idna_to_unicode_internal() This has been found by oss-fuzz. A 316 byte input needed >25s to be run by libidn_tounicode_fuzzer(). Normal should be 1000+ runs per second. 2017-07-14 Tim Rühsen Fix distcheck Update .gitignore Update fuzzer corpora Add CTRL-C handling for run-clang.sh Limit fuzzers to 1024 bytes input 2017-07-12 Tim Rühsen Fix slowness issue in stringprep_profile() Remove libidn_error_fuzzer (really) Remove libidn_error_fuzzer, not worth fuzzing Update stringprep fuzz corpora 2017-07-11 Tim Rühsen Fix C++ building for fuzz targets Revert "Switch to C build for oss-fuzz target" This reverts commit eff373983d8b02271960c1f26913a5f01baa2c86. Switch to C build for oss-fuzz target 2017-07-10 Tim Rühsen Fix run-clang.sh Remove gnulib code from fuzz-coverage report Add libidn_error_fuzzer 2017-07-08 Tim Rühsen Update fuzz corpora Remove CXXFLAGS from fuzz/README.md 2017-06-30 Tim Rühsen Update fuzzer corpora and support scripts Fix compilation with -Werror and --enable-gcc-warnings Extend stringprep fuzzer + corpora 2017-06-30 Tim Rühsen Speed up stringprep Fuzzing gave me a corpus which was extremly slow to process with stringprep_profile(). 3926 bytes took ~1.4 billion CPU cycles, most time spent in stringprep_apply_table_to_string(). The problem was that already processed bytes were processed again. After fixing the same test corpus now takes ~19.5 million CPU cycles. That is a speedup by ~70x. Still much time is spent in _g_utf8_normalize_wc(), mabe worth a look as well. 2017-06-30 Tim Rühsen Fix NULL ptr access in nfkc.c/g_utf8_normalize() Remove unused code from nfkc.c/g_utf8_strlen() Increase code coverage of fuzzer targets Fix NULL ptr access in stringprep_ucs4_nfkc_normalize(), foudn by fuzzing 2017-06-29 Tim Rühsen Increase speed of stringprep by ~20x 2017-06-28 Tim Rühsen New fuzzer target libidn_stringprep_fuzzer 2017-06-24 Tim Rühsen Add make target 'fuzz-coverage' New fuzzer target libidn_tounicode_fuzzer Improved libidn_toascii_fuzzer C++ needs explicit pointer cast Adjust include dir in fuzz/Makefile.am Build java and csharp only if configured New configure flag --disable-doc 2017-06-23 Tim Rühsen Add initial OSS-Fuzz testing 2017-06-21 Tim Rühsen Add --enable-ubsan configure flag to enable UB Sanitizer Add --enable-asan configure flag to enable Address Sanitizer 2017-02-01 Tim Rühsen Fix -Wformat warnings Increase value for -Wframe-larger-than (gcc-7) Update intprops.h for gcc-7 compatibility 2016-07-22 Simon Josefsson Mention OpenJDK. Suggested by Guus. 2016-07-20 Simon Josefsson Add. Sync with TP. Bump versions. Update for 1.33. Version 1.33. Doc fix. Ignore more. Update gnulib files. Update gl override patches. 2016-01-14 Simon Josefsson Ignore more. Doc fix. Really fix bug when reading \00 inputs. Sync with TP. Bump copyright notices. Update gnulib files. Add. stringprep_utf8_nfkc_normalize: Reject invalid UTF8 instead of crashing. Also add regression self check. Reported by Hanno Böck. Fix memory leak in last fix. Add. Fix out-of-bounds stack read. Report and patch by Hanno Böck. Add regression check for Hanno Böck's stack OOB issue. 2015-08-10 Simon Josefsson Ignore more. Doc. idn: Use getline instead of fgets with fixed-size buffer. Fixes out-of-bounds read, reported by Hanno Böck. Dropped valgrind suppressions file, should no longer be needed. Bump SO version. Improve. Bump version. 2015-08-01 Simon Josefsson Update for 1.32. Version 1.32. Reorder AM_PROG_AR to silence autoreconf. Drop AC_PROG_LIBTOOL. libidn: Fix crash in idna_to_unicode_8z8z and idna_to_unicode_8zlz. Add regression check for malformed UTF-8 crash, reported by Adam Sampson. Update gnulib files. Bump versions. Update for 1.31. 2015-07-08 Simon Josefsson Update for 1.30. Version 1.31. Add. Update gnulib files. Add. Sync with TP. libidn: stringprep_utf8_to_ucs4 now rejects invalid UTF-8. CVE-2015-2059 Fix broken encoding (ISO-8859-1 vs UTF-8) of this file. 2015-07-07 Simon Josefsson Use LOG_COMPILER instead of TEST_ENVIRONMENT, for valgrind. Bump versions. Doc fix. 2015-07-07 Alessandro Ghedini Use strdup() to duplicate a buffer This apparently fixes the "Invalid read of size 4" error from valgrind that was reported at https://bugs.debian.org/724069 2015-07-07 Simon Josefsson Update gnulib files. 2015-03-02 Simon Josefsson Version 1.30. Ignore more. Ignore more. Sync gdoc. Add. Sync with TP. Bump gettext to 0.19.3. Use LT_INIT instead of AC_LIBTOOL_WIN32_DLL. Update OpenPGP key. Update copyright years. Update gnulib files. Add. Reimport punycode.h and punycode.c from punycode-spec.gz, and clarifying the changes. 2014-11-27 Simon Josefsson Bump version. 2014-08-10 Simon Josefsson Update for 1.29. Update for 1.27. Version 1.29. Ignore more. Sync with TP. More copyright year updates. Update PGP key. Update copyright years. Update gnulib files. 2013-10-24 Simon Josefsson Don't build csharp code when building Windows binaries. Use libiconv 1.14. Update gnulib files. Bump versions. Mark internal variable "g_utf8_skip" as static. Reported by Thomas Dineen . Flush stdout to simplify for tools that buffer too heavily. Tiny patch from Hugh Daschbach . 2013-07-10 Simon Josefsson Version 1.28. Java doc fix. Fix last commit. Add. Fix -a and -u logic mixup. Ignore more. Sync with TP. 2013-07-09 Simon Josefsson Update gnulib files. Add all classes. Ignore more. 2013-07-08 Simon Josefsson Bump gettext to 0.18.3 to work better with modern automake. Fix for recent automake. Add. Update gnulib files. 2013-06-06 Simon Josefsson Generated. Dist RangeSet.java. Include RangeSet.class in jar file, otherwise compilation fails. 2013-06-05 Simon Josefsson Prevent tool from crashing when stringprep_utf8_to_locale doesn't work. Reported by Jeffrey Frey . Update for 1.26. Bump versions. Ignore more. Version 1.27. Add. Add NEWS blurbs. Fix syntax-check nits. Update copyright years. Sync with TP. Update gnulib files. Fix .gitignore for new java stuff. 2013-06-05 stela Added missing copyright headers. Describe how to use caliper benchmarks with jenkins/hudson + caliper-ci. Upgraded (test) dependencies and mvn plugins to latest versions Avoid using deprecared junit classes First do simplistic check if input is all within common pass-through ranges. Speeds up common inputs up to about 25%. Eliminate length-calculations, minor cleanups Optimize search for head-range, don't binary-search past end-index of highest character Optimize search for head-range, don't binary-search past end-index of highest character First check most significant gap (exists if it contains the letter "a") in the ranges, often provides fast-fail Filter using RangeSet, reverse loops order normalizeNFKC pre-allocates output, pre-calculate fixed input length Replaced all contains methods with RangeSet operations. Made resourceprep faster, others slightly slower. Less redundant code to maintain/optimize later though Added RangeSet implementation used for stringprep-table-contains lookups. Made nodeprep twice as fast, nameprep slightly faster, overall 20-40% faster. If tested text characters all below char to match (out of sorted set), abort as remaining higher chars won't be matched either Don't do redundant StringBuilder length() or charAt() calls when doing contains-checks Do character-replacement lookups through binary search instead of linear search Replace synchronized StringBuffer with faster unsynchronized StringBuilder Added caliper tests for common types of stringprep operations. Allows use of jenkins + caliper-ci to produce nice graphs of improvements per release. Revert from fast StringBuilder to slow StringBuffer for now just to establish a performance baseline. Added test cases converted from C version. Avoid reading first character of empty strings, happened when a zero width space is converted to nothing. Change comments from stringbuffer to StringBuilder as well Make example3/4/5.c compile on Ubuntu 12.04 LTS, cast %ld printf arguments Make example.c compile on Ubuntu 12.04 LTS, cast %ld printf arguments Replace needlessly synchronized StringBuffer with StringBuilder everywhere, benchmarked to result in roughly 4x stringprep speedup Make maven build with new directory structure. Added maven configuration to at least avoid warnings when building and make build reproducible Use standard maven directory structure, but still allow building with make. Moved java sources into java/src/main/java instead of plain "java". Created empty src/test/java for future unit test cases. Moved code-generation and test classes into src/util/java instead of "misc" Adapted make files for changed paths Use standard maven directory structure, but still allow building with make. Moved java sources into java/src/main/java instead of plain "java". Created empty src/test/java for future unit test cases. Moved code-generation and test classes into src/util/java instead of "misc" Adapted make files for changed paths 2012-12-12 Simon Josefsson Bump versions. Update gnulib files. 2012-12-11 Simon Josefsson Fix release rules. More release dependencies. Version 1.26. 2012-12-10 Simon Josefsson java: Permit usage by Apache projects. Note additional dependencies. Improve gendocs.sh usage. 2012-12-09 Simon Josefsson Add. Fix mem leak. Ignore more. Check for out-of-bounds read (trigger with in={'f','o','o'} and inlen=3). Silence warning. Update gnulib files. 2012-11-22 Simon Josefsson Sync with TP. 2012-09-18 Simon Josefsson Use modern gdoc.mk. Silence clang warning in library. Add. Improve tld self-test. Sync with TP. Update gnulib files. 2012-08-09 Simon Josefsson Rename win32/ to windows/. Update gnulib files. 2012-08-02 Simon Josefsson Mention i18n update. Sync with TP. Silence syntax-check. Update gnulib files. libidn, idna_to_ascii: Propagate error on malloc failure. Reported and tiny patch by Sarat Chandra Addepalli . 2012-05-31 Simon Josefsson Use https URLs. 2012-05-28 Simon Josefsson Update for 1.25. 2012-05-25 Simon Josefsson Improve debug output from version comparisons. 2012-05-23 Simon Josefsson Bump versions. Fix release rules. Version 1.25. Fix. 2012-05-22 Simon Josefsson Use devhelp2 format. Push to git after doing gnupload. Sync with TP. Update gnulib files. Revert "Fix version controlled build of libidn with automake 1.12." This reverts commit cf725246a5585d56ccb14c46bfe2a163342ff21f. 2012-05-16 Simon Josefsson Fix valgrind wording. 2012-05-10 Nitin A Kamble Fix version controlled build of libidn with automake 1.12. 2012-04-27 Simon Josefsson Add. Remove ChangeLog, it is generated. Ignore more. Mention release tools. Update gnulib files. Sync with TP. Fix compiler warning about unused fgets return value. Ignore more. Add valgrind suppressions file. 2012-04-10 Simon Josefsson Dummy defines for _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE. Reported by Bartosz Brachaczek in . 2012-03-06 Simon Josefsson Update gnulib files. 2012-02-08 Simon Josefsson Typos. 2012-01-10 Simon Josefsson Drop files. Bump versions. Update for 1.24. Update for 1.23. Generated. Version 1.24. 2012-01-09 Simon Josefsson Fix markup. Sync intro texts. Also dist COPYING* files. Update gnulib files. tst_pr29: Print more debug info. libidn: Add 'const' keyword to 'stringprep_ucs4_nfkc_normalize' function. 2012-01-08 Simon Josefsson Fix typo. libidn: Fix potential infloop in pr29 code. Reported by Jon Nelson in . Fix. Cleanup copyright info. Update gnulib files. Relicense libraries from LGPLv2+ to dual-GPLv2+|LGPLv3+. 2012-01-05 Simon Josefsson Put strlen calls in its own line, to simplify valgrind output analysis. Update gnulib files. Rename README-alpha to HACKING and include it in tarballs. Print whether libiconv was found. 2012-01-03 Simon Josefsson Update gnulib files. 2012-01-02 Simon Josefsson Remove stale translation. Update FSF copyright years. Update copyright years. 2011-12-27 Simon Josefsson Mention gnulib in THANKS. Update key. Sync glib NFKC code and improve copyright/license statements. Sync with TP. Update gnulib files. Give credit. Fix parallel MinGW-builds (no deps for libidn-X.def). Clean libidn-X.def. Reported by René Berber . 2011-11-30 Simon Josefsson Update gnulib files. 2011-11-28 Simon Josefsson Bump versions. Update gnulib files. Drop unistd/getopt workaround. 2011-11-25 Simon Josefsson Generated. Fix release rule. Version 1.23. Use copyright ranges in man pages. Add necessary -I's when building lib/gltests/. Reported by Bruno Haible. Disable non-working binary-io self-tests. Reported by Bruno Haible. Get ssize_t from sys/types.h instead of unistd.h. Reported by Bruno Haible. Drop update-copyright-tests module due to bugs. Fix valgrind. 2011-11-22 Simon Josefsson Use csharpexec from gnulib to run .NET binaries. 2011-11-21 Simon Josefsson Don't hard code perl path in gdoc. Use -no-install instead of -static. Ignore some recent warnings. Fix warnings. Add. Ignore gnulib self-tests under Wine. Use separate build trees for Windows 32 and 64 bit. Create Windows binaries during release. Fix links in generated cyclo output. Use silent build rules. Update GTK-DOC infrastructure. Update release rules. Update gnulib files. 2011-11-16 Simon Josefsson Doc fix. 2011-10-19 Simon Josefsson Doc fix. idn-free.h: Protect prototypes with 'extern "C"' marker. Reported by Bittner Ede . 2011-10-01 Simon Josefsson Mention TLD URL patch. 2011-10-01 Thomas Jacob Moved extra TLD tables to github 2011-08-13 Simon Josefsson Sync with TP. 2011-05-05 Simon Josefsson Add some pre-release rules. Update translations. Sync with TP. 2011-05-04 Simon Josefsson Update for 1.22. Bump versions. Generated. Version 1.22. dev: Ran clang-analyze on the code. Fixed some dead assignments/initializations. Doc fix. 2011-05-03 Simon Josefsson libidn: Fix memory leak when idna_to_ascii_4i fails. Reported by and tiny patch from Olga Limburg . Update gnulib files. 2011-05-01 Simon Josefsson Improve coverage rule names. Drop mingw rules (see win32/libidn4win.mk). 2011-04-28 Simon Josefsson libidn: Add -liconv as static library requirement in libidn.pc, for MinGW. Reported by Volker Grabsch . 2011-04-25 Simon Josefsson Document --disable-valgrind-tests. Suggested by Guido Trentalancia . 2011-04-24 Simon Josefsson Update for 1.21. Fix. build: Really distribute win32/libidn4win.mk. Bump version. Generated. Version 1.21. Demand newer gettext in order to get newer M4 files. Reported by Dagobert Michelsen in . libidn4win.mk: Add license and generalize it. Update gnulib files and fix syntax check warnings. 2011-03-21 Simon Josefsson Define LIBIDN_BUILDING. Tiny patch from Waqas Hussain . 2011-03-05 Simon Josefsson Add. 2011-03-01 Simon Josefsson Update for 1.20. Bump versions. Fix release type. Generated. Version 1.20. Bump copyright years. idn: Only print license blurb on interactive use. Reported by "Andrew O. Shadoura" and Roman Mamedov in and respectively. Disable build rules for no longer generated files. Sync with TP. Bump copyright years. Fix ToUnicode case-insensitivity bug. Debian BTS #610617 reported by Stepan Golosunov . Add. Sync with TP. Fix syntax-check warnings. Update gnulib files. 2011-01-30 Simon Josefsson Update gnulib files. 2010-10-27 Simon Josefsson Ignore more. Avoid some warnings to make it build with modern gcc on amd64. 2010-09-30 Simon Josefsson Avoid syntax-check warning. Update gnulib files. 2010-05-27 Simon Josefsson Doc fix. 2010-05-24 Simon Josefsson Bump versions. Update announce.txt for 1.19. 2010-05-22 Simon Josefsson Improve. Dist API PDF manual. Generated. Version 1.19. 2010-05-20 Simon Josefsson Update GTK-DOC files to enable PDF manual. Add. Update gnulib files, use new valgrind-tests module. 2010-05-17 Simon Josefsson Update gnulib files. 2010-04-25 Simon Josefsson Add. Update gnulib files. 2010-04-21 Simon Josefsson Update gnulib files. 2010-04-19 Simon Josefsson Update gnulib files. 2010-04-13 Simon Josefsson Update gnulib files. 2010-04-12 Simon Josefsson Add. Fix syntax-check warnings. Fix syntax-check warnings. Update gnulib files. 2010-03-30 Simon Josefsson Sync valgrind.m4. Drop code (could never have worked anyway). Update gnulib files. 2010-03-26 Simon Josefsson Update gnulib files. 2010-03-24 Simon Josefsson Update gnulib files. Fix typos. Drop @acronym use. Add. Update gnulib files. 2010-03-18 Simon Josefsson Add review-diff. Move announce file to use consistent filenames. Drop self-tests with C++ code in them. Drop self-tests with C++ code in them. Mention gengetopt. 2010-03-12 Simon Josefsson Update gnulib files. Reorder to avoid bootstrap warnings. Update gnulib files. 2010-03-09 Simon Josefsson Explain deprecated libtool usage. Revert "Don't use deprecated libtool functions." AC_PROG_LIBTOOL is required on older systems (e.g., latest Ubuntu LTS). This reverts commit bb239c491ba93a9d2cecf81b53855ecc46d86140. Revert "Reorder." AC_PROG_LIBTOOL is required on older systems (e.g., latest Ubuntu LTS). This reverts commit e085f872f2de2e9c33fa4b8c1df559584f375641. Reorder. Don't use deprecated libtool functions. 2010-03-08 Simon Josefsson Update gnulib files. 2010-02-24 Simon Josefsson Add. Bump versions. Update gnulib files. 2010-02-16 Simon Josefsson Add. 2010-02-15 Simon Josefsson Generated. Release to ftp.gnu.org. Bump versions. Version 1.18. Add. Put forgotten symbols under old namespace. Suggested by Marco d'Itri in . Update gnulib files. 2010-02-05 Simon Josefsson Generated. Version 1.17. Make this an alpha release. Sync with TP. Add. Fix GTK-DOC syntax. Unfortunately this looses some information. Clarify. Another test for MinGW builds. Don't use a libtool helper library, to hopefully make MinGW builds work. Simplify. Check if this makes MinGW builds work better. Drop EXEEXT, to see if MinGW builds improve. 2010-02-03 Simon Josefsson Fix. Bump copyright years. Bump copyright years. Bump copyright years. Add. Bump libtool version to indicated "added" symbols. Bump copyright years. Bump shared library version tag on "new" symbols. Make sure all symbols are exported. Add self test to catch regressions. See and for background. Update gnulib files. 2010-01-12 Simon Josefsson Improve syntax-check exception stuff. Update gnulib files. Check patch. Fix valgrind.m4. Update gnulib files. Touch. Touch. Bump versions. Update copyright. Sync with TP. Fix syntax-check rules. Don't use exit(1). Add. Add. Commit cyclo/. Generated. Version 1.16. Add workaround for Wine open failure. Add workaround for Wine dup2 failure. Update gnulib files. 2010-01-09 Simon Josefsson Update gnulib files. 2010-01-08 Simon Josefsson Touch. Add comment. Update gnulib files. 2010-01-07 Simon Josefsson Update gnulib files. 2009-12-26 Simon Josefsson Update gnulib files. 2009-12-19 Simon Josefsson Update gnulib files. 2009-12-16 Simon Josefsson Add. Update gnulib files. Update gnulib files. 2009-11-18 Simon Josefsson Update gnulib files. 2009-11-06 Simon Josefsson Update gnulib files. 2009-10-19 Simon Josefsson Update gnulib files. 2009-10-08 Simon Josefsson Fix link error on mingw. Update gnulib files. 2009-09-22 Simon Josefsson Add. Update gnulib files. Add Maven pom.xml file. 2009-09-07 Simon Josefsson Note about OS/2 port. 2009-08-20 Simon Josefsson Update gnulib files. 2009-08-18 Simon Josefsson Update gnulib files. 2009-08-14 Simon Josefsson Update gnulib files. 2009-08-07 Simon Josefsson Update gnulib files. 2009-08-04 Simon Josefsson Update gnulib files. Update gnulib files. 2009-07-29 Simon Josefsson Typo. 2009-07-22 Simon Josefsson Update gnulib files. 2009-06-17 Simon Josefsson Typo. 2009-06-16 Simon Josefsson Update gnulib files. 2009-06-11 Simon Josefsson Fix. 2009-06-08 Simon Josefsson Add version number to manual title. Generated. Bump versions. Chmod +x. Generated. Version 1.15. Fix. Fix. 2009-06-05 Simon Josefsson Add. Update gnulib files. 2009-06-02 Simon Josefsson Fix some java warnings. 2009-06-01 Simon Josefsson Check stack usage in library. Update gnulib files. 2009-05-29 Simon Josefsson Use c_strcasecmp instead of strcasecmp. Reported by Guenter Knauf . 2009-05-28 Simon Josefsson Improve warning handling. Update gnulib files. 2009-05-27 Simon Josefsson Update gnulib files. 2009-05-20 Simon Josefsson Add. Update gnulib files. 2009-05-11 Simon Josefsson Fix syntax-check. Upgrade gtk-doc files. 2009-05-08 Simon Josefsson Update gnulib files. Make -Werror more optional. 2009-05-07 Simon Josefsson Fix. 2009-05-05 Simon Josefsson Fix. Add. 2009-05-03 Simon Josefsson Update gnulib files. 2009-04-27 Simon Josefsson Update gnulib files. Update gnulib files. 2009-04-24 Simon Josefsson Add. rm. Fix syntax-checks. Fix for modern git. Add modules, for syntax-check. Fix warnings. Syntax check fixes. Syntax check fixes. Syntax check fixes. Update gnulib files. 2009-04-23 Simon Josefsson Fix. Update gnulib files. Improve texinfo section names. 2009-04-17 Simon Josefsson AM_PROG_GCJ needs to be called unconditionally. Sigh. Otherwise you get this error: conditional "am__fastdepGCJ" was never defined. 2009-04-14 Simon Josefsson Fix java detection. Bump version. Don't use assert keyword to avoid compilation error. Bump versions. Update gnulib files. 2009-04-03 Simon Josefsson Generated. Version 1.14. Use --output-def. Update gnulib files. 2009-04-01 Simon Josefsson Assume locale.h. 2009-03-25 Simon Josefsson Copy cyclo chart to webdir. Update gnulib files. 2009-03-23 Simon Josefsson Add. Add. Don't crash in memcmp if stringprep_utf8_to_locale returns NULL. Reported by Dagobert Michelsen in . 2009-03-19 Simon Josefsson Update gnulib files. 2009-03-06 Simon Josefsson Bump version. Generated. Version 1.13. Add credits. Don't use warnings unless we are using GCC. Fix. Add. Update gnulib files. 2009-03-04 Simon Josefsson Fix. Clarify. Namespace discussion. Update gnulib files. Fix. Finish API visibility markup. Now passes self tests. Fix. Add. Mark visibility of API functions. Ignore decorators. Improve decorators. Add symbol visibility markup. Update gnulib files. 2009-03-03 Simon Josefsson Remove. Use visibility module. Add. Typo. More debug info. Debug output about version script. Use gnulib ld-version-script module. Re-add use of -export-symbols-regex for other platforms. 2009-03-02 Simon Josefsson Add license. Use v1.0 in name. Add. Use a linker version script. Update gnulib files. 2009-02-24 Simon Josefsson Update gnulib files. 2009-02-10 Simon Josefsson Don't remove idn_cmd.c and idn_cmd.h on distclean, use maintainer-clean instead. Reported by "Sisyphus" in . 2009-02-09 Simon Josefsson Document the idn_free function. Bump version. Drop emit_bug_reporting_address, it is now provided by gnulib version-etc. 2009-02-06 Simon Josefsson Update gnulib files. 2009-01-23 Simon Josefsson Bump versions. Generated. Version 1.12. Add. Update PGP key. Sync with TP. Sync with TP. 2009-01-22 Simon Josefsson idn: Add new --no-tld to resolve broken --tld parameter. Reported by Christian Hammers in http://thread.gmane.org/gmane.comp.gnu.libidn.general/162 Fix. Use gdoc's -pkg-name. Add -pkg-name parameter. Update gnulib files. Cleanup. Bump copyright years. Update --help output per new GNU coding standards. 2009-01-19 Simon Josefsson Update gnulib files. Bump copyright years for man pages. 2009-01-17 Simon Josefsson Touch. Bump copyright years. Update PGP key. Bump copyright years. Update gnulib files. Update gnulib files. 2009-01-05 Simon Josefsson Update gnulib files. Update. 2008-12-11 Simon Josefsson Fix comment. Fix warning initialization. Add warning flag. Update gnulib files. Fix warning. 2008-12-02 Simon Josefsson Fix java jar path. Improve JavaDoc output. Update gnulib files. Update gnulib files. 2008-11-29 Simon Josefsson Fix Fix javadoc pointer. 2008-11-17 Simon Josefsson Rewrite warning initializations. Update gnulib files. Simplify warning handling. Make configure slightly faster. Disable -Wunreachable-code. Fix warnings. Fix warnings. Fix warnings. Fix vla warnings. Fix warnings. Make it easier to read warning settings. Update gnulib files. 2008-11-13 Simon Josefsson Add. Fix warning. Enable warnings. Fix warnings. Fix warnings. 2008-11-12 Simon Josefsson Add URL field. Use external macros for shared operations. Remove linker script message. Update gnulib files. Update gnulib files. Use warnings module. Neatify. 2008-11-04 Simon Josefsson Use GFDLv1.3+ as license. Update gnulib files. Use GFDLv1.3+ for manual. 2008-11-03 Simon Josefsson Fix Javadoc comments on important classes. 2008-10-30 Simon Josefsson The -DLIBIDN_BUILDING Windows hack is no longer needed. 2008-10-29 Simon Josefsson Disable man pages. Fix typo. Modernize doxygen configuration. 2008-10-28 Simon Josefsson Use coverage rules from gnulib. Update gnulib files. Bump versions. Generated. Version 1.11. Use white background. Fix. Update gnulib files. Sync with gnutls. Generalize coverage rules. Increase code coverage. Increase code coverage. Increase code coverage in self-tests. Increase code coverage. Increase code coverage. Fix web-coverage rule. Fix release target. Add web-coverage targets. 2008-10-27 Simon Josefsson Add. Revert gnulib avoid of strdup. Add coverage rules. Re-add lost copyright headers for C# port. Update gnulib files. 2008-10-22 Simon Josefsson Re-license under GPLv3. Replace - with \- in man page output in more places. Reduce code duplication. Add. Use GPLv3. Clarify copyright and license. Use GAP for man page license. 2008-10-21 Simon Josefsson Add. Fix mingw32 rule. Add. Use STRINGPREP_VERSION instead of PACKAGE_VERSION for MSVS builds. Change win32 files. Extracted from gen-win32-headers.pl. Rm. Avoid perl dependency on Windows. Cleanups, preparing for Win32 fixes. Cleanups, preparing for Win32 fixes. Fix last commit. Don't use substition for stringprep.h header file. Update gnulib files. 2008-10-13 Simon Josefsson Update gnulib files. Update gnulib files. Rename doc/prmgt/ to doc/cyclo/. Add. Update gnulib files. 2008-10-07 Simon Josefsson Fix. Add prmgt/. Remove accidentally added files. Update gnulib files. Use pmccabe2html. Update gnulib files. 2008-09-30 Simon Josefsson Update gnulib files. 2008-09-29 Simon Josefsson Need AC_CONFIG_MACRO_DIR too, to avoid libtool warnings, sigh. 2008-09-26 Simon Josefsson Add. Sync with TP. Update gnulib files. 2008-09-23 Simon Josefsson Enable automake warnings. Add. Say 'or later' wrt licenses. Improve cosmetics. Minor cosmetic fixes. Add. Add AC_COPYRIGHT. Support a WARN_CFLAGS to trigger compiler warnings. 2008-09-22 Simon Josefsson Touch. Update gnulib files. 2008-09-18 Simon Josefsson Remove final references to GPLv2. Assume strdup. Add. Update gnulib files. 2008-09-12 Simon Josefsson Update gnulib files. 2008-09-02 Simon Josefsson Update gnulib files. 2008-08-29 Simon Josefsson Update gnulib files. Don't store negativa values in a size_t. 2008-08-27 Simon Josefsson Sync. Improve. Sync. Mention krb5 profile. Add "or later" clauses when talking about license versions Suggested by karl@freefriends.org (Karl Berry). Move maintainer targets from Makefile.am to cfg.mk. Use git2cl directly. Typo. Split release target. Generalize release target. Create a copy of released files. Copy all of javadoc. Fix typo. Dist more. Bump versions. Generated. Version 1.10. Add. Declare strverscmp. Fix warnings. 2008-08-26 Simon Josefsson Remove freshmeat-submit template, no longer used. Rename .cvscopying to .clcopying. Update gnulib files. Add generated files because perl 5.10 breaks gen-unicode-tables.pl. Sync with TP. idn: accept -n as short form for --nfkc. Before '-k' was used as the short form, but all documentation has said '-n'. We now accept both short forms, and -n remains the documented short form. Reported by John McGowan in . 2008-08-21 Simon Josefsson Update gnulib files. 2008-08-20 Simon Josefsson Don't try to add tar in www dir. Add. Update gnulib files. Fix URLs. Fix URLs. 2008-08-18 Simon Josefsson Don't put releases in www directory, after discussion with Savannah admins. 2008-08-06 Simon Josefsson Update gnulib files. 2008-07-07 Simon Josefsson Add. Sync with TP. Bump versions. 2008-07-01 Simon Josefsson Generated. Add gltests/ directories. Generated. Version 1.9. Add. Fix. Sync with TP. Update gnulib files. 2008-06-18 Simon Josefsson Work around C# compiler bug. 2008-06-17 Simon Josefsson Update gnulib files. 2008-06-10 Simon Josefsson Remove more text. 2008-06-02 Simon Josefsson Drop invariant sections. 2008-05-30 Simon Josefsson Update gnulib files. 2008-05-19 Simon Josefsson Update gnulib files. 2008-05-12 Simon Josefsson Add. Update gnulib files. 2008-04-28 Simon Josefsson Update gnulib files. Add. Use singularis STRING. Suggested by Benno Schulenberg . Don't gettext error code. Don't gettextize debug messages. 2008-04-24 Simon Josefsson idn: fix error message when NFKC fails. Reported by Benno Schulenberg . Bump versions. 2008-04-23 Simon Josefsson Generated. Version 1.8. Add. Add. Update gnulib files. 2008-04-13 Simon Josefsson Bump versions. Add. Sync with TP. Move translations to *.po.in to avoid merge conflicts. This allows us to avoid --no-location as well. 2008-04-10 Simon Josefsson Generated. Version 1.7. Update gnulib files. 2008-04-07 Simon Josefsson Update gnulib files. 2008-04-02 Simon Josefsson Need dummy unistd.h for native Win32 builds. Reported by Adam Strzelecki . 2008-04-01 Simon Josefsson Fix syntax-check warnings. Mention idn --nfkc. Update gnulib files. 2008-03-27 Simon Josefsson Add --nfkc parameter to idn tool. Need @menu for Windows installation @node. 2008-03-25 Simon Josefsson Need config.rpath workaround here. Update gnulib files, reverts local GNUmakefile hack. 2008-03-20 Simon Josefsson Update gnulib files. Make windows installation instructions a separate node, for easy referencing. Fix. Update gnulib files. 2008-03-19 Simon Josefsson Bump versions. Generated. Version 1.6. Note that libidn is a GNU project. Update GTK-DOC build system. Dist Visual Studio files. Sync with TP. Sync with TP. Add license statements on files. Add native Visual Studio port, contributed by Adam Strzelecki. Add. Doc fix. Clarify difference between domain label and domain name. 2008-03-18 Simon Josefsson Update gnulib files. 2008-03-12 Simon Josefsson Update gnulib files. Add. Remove non-free portions of RFC, leaving un-copyrightable material. Also add some quotes from earlier e-mails about licensing on this. 2008-03-10 Simon Josefsson Bump versions. 2008-02-25 Simon Josefsson Update gnulib files. 2008-02-19 Simon Josefsson Bump. Bump versions. Fix release target. Generated. Version 1.5. Sync with TP. Sync with TP. Fix charset info. Fix encoding. Update gnulib files. Add link. Don't include wchar.h, we don't need it. Reported by Mike Frysinger , see . 2008-02-06 Simon Josefsson Add. Brace expansion is not POSIX portable. 2008-02-03 Simon Josefsson Update gnulib files. 2008-01-24 Simon Josefsson Sync with TP. Sync with TP. Fix. 2008-01-15 Simon Josefsson Add. Update gnulib files. Update gnulib files. Add. Back-port from josefsson.org. Fix markup. Mention v1.0 as milestone. Add. Add. Sync with TP. Fix markup. Add 'On Label Separators' section. Add @documentencoding. Re-add config.rpath hack. Update gnulib files. 2008-01-10 Simon Josefsson Sync with TP. Bump versions. Sync with TP. 2008-01-09 Simon Josefsson Generated. Version 1.4. Typos. Update gnulib files. Add progname gnulib module. Fix --help and --version Fix --help and --version Fix. Add. Use gnulib version-etc for --version. Bump copyright years. Add 2008 to copyright years. 2008-01-02 Simon Josefsson Nicify --version output by changing AC_INIT project name. Add version-etc gnulib module. Add. Add. Update gnulib files. Add. Sync with TP. 2007-12-20 Simon Josefsson Add. Use .exe suffix for C# tool, required by Mono. Update gnulib files. Generalize. 2007-12-11 Simon Josefsson Don't copy *.sig until it exists. Bump versions. Generated. Version 1.3. Reorder release target. Reorder. Remove config.rpath hack. Update gnulib files. Update gnulib files. Add. Use gettext 0.17. 2007-10-29 Simon Josefsson Update gnulib files. Update gnulib files. 2007-10-28 Simon Josefsson Update gnulib files. 2007-10-19 Simon Josefsson Update gnulib files. 2007-10-13 Simon Josefsson Fix. Add. Add. Sync with TP. Update gnulib files. 2007-10-08 Simon Josefsson Add. Typo. Fix install section. Add. Bump versions. Use GPLv3 in top-level gnulib files. Update gnulib files. 2007-10-01 Simon Josefsson Generated. Fix git-tag -l in release target. Version 1.2. Add. Remove README-alpha. Also upload to ftp.gnu.org. Add. Add. Re-order to avoid autoreconf warning. Remove sv. Sync with TP. Remove (not part of translation project). Bump versions. Update gnulib files. Update gnulib files. Remove unused .cvsignore's. 2007-09-01 Simon Josefsson Generated. Version 1.1. Add. Sync with TP. Wrap. Bump versions. Add. Add. 2007-08-31 Simon Josefsson Drop gnits mode. Define LIBIDN_BUILDING, for Windows hack in stringprep.h.in. Inspired by report and patch by "Christian Ehrlicher" , see . Mark variables with __declspec(import) on Windows. Inspired by report and patch by "Christian Ehrlicher" , see . Avoid using #include_next in idn-int.h when looking for stdint.h. Reported by Remko van der Vossen in , this tiny patch was suggested by Bruno Haible in . Update gnulib files. 2007-07-31 Simon Josefsson Generated. Add. Sync with TP. Fix. Sync with libidn.texi. Fix intro. Fix gpl/lgpl filenames. Version 1.0. Add. Update PGP key. Bump versions. Fix. Update license to GPLv3. Update, sync with libidn.texi. Clarify license versions. Relicense examples/* to GPLv3. Relicense src/ and tests/ stuff to GPLv3. Relicense Makefile.am and configure.ac to GPLv3. Clarify licenses. Use GPLv3. Update gnulib files. Update gnulib files. 2007-06-04 Simon Josefsson Bump versions. 2007-05-31 Simon Josefsson Add year 2007. Generated. Version 0.6.14. Add. Add. Cvs to git changes. Use git instead of cvs. Bump versions. Add. 2007-05-31 Simon Josefsson *** empty log message *** Generated. Version 0.6.13. Install libidn-components.png in infodir, fixes broken image in the info manual. Add. Fix image filename. *** empty log message *** Rename @image files so that they are prefixed with $PROJECT, so they can be installed in $infodir without collisions. Add. Sync with TP. Fix. Add. Update. 2007-05-30 Simon Josefsson Bump versions. Add. Typo. Clarify license of C# port. Clarify license of java/csharp implementation. 2007-04-25 Simon Josefsson *** empty log message *** Version 0.6.12. Sync with TP. 2007-04-24 Simon Josefsson Add. Use AM_JAVACFLAGS instead of JAVACFLAGS. See . Tiny patch from Petteri Räty . 2007-04-19 Simon Josefsson *** empty log message *** Add. Update. 2007-04-02 Simon Josefsson Fix typo. 2007-03-13 Simon Josefsson 0.6.11. 0.6.10. 0.6.9. Bump versions. *** empty log message *** Generated. Version 0.6.11. Fix path to csharpcomp. Add. Dist more. Fix tests. fix *** empty log message *** Fix typo. Don't wait for newline from user (breaks batch usage). Fix typo. Don't wait for return from user (breaks batch usage). Fix namespace. Update, from Alexander Gnauck . Remove. Generate generated files. AppendLine isn't supported by cscc, use Append+\n. Add code to generate tables, from Alexander Gnauck . Update. 2007-03-09 Simon Josefsson Sync with TP. Bump versions. Revert. Update. *** empty log message *** Update gnulib. Update. Use build-aux. 2007-02-24 Simon Josefsson Add. 2007-02-06 Simon Josefsson Update. 2007-02-05 Simon Josefsson Add. Update. Add. Update. 2007-01-25 Simon Josefsson Update. 2007-01-04 Simon Josefsson *** empty log message *** Generated. Version 0.6.10. Add. Bump copyright years (also add older years which I forgot to add earlier). Update PGP key. 2007-01-03 Simon Josefsson Update. 2006-12-28 Simon Josefsson Add. Update. 2006-12-26 Simon Josefsson Add. 2006-12-10 Simon Josefsson Bump versions. 2006-11-30 Simon Josefsson *** empty log message *** Sync with TP. Version 0.6.9. *** empty log message *** Add. Remove. Bump tool versions. Update. 2006-11-16 Simon Josefsson Re-add test, with fixed code that doesn't use Java 1.5 syntax. Suggested by "Stephane Mikaty" . Revert (didn't compile). 2006-11-15 Simon Josefsson Add. New self-test to test for ToIDNA regression regarding non-ascii dot-delimiters. Tiny patch from "Stephane Mikaty" . Fix non-ascii dot in strings, tiny patch from "Stephane Mikaty" . Add. Update. 2006-10-31 Simon Josefsson Bump versions. Update. 2006-10-26 Simon Josefsson Add. 2006-10-20 Simon Josefsson Add. 2006-10-18 Simon Josefsson *** empty log message *** Generated. Version 0.6.8. Sync with TP. Add. Assume locale.h and setlocale. Build lib/gl/ earlier. *** empty log message *** Build gl/ first. Add stdint module to lib/. Remove. Ignore all of lib/gl/. Move libtool init, to avoid warnings. Add strverscmp. Rewrite using strverscmp, to fix some corner-cases. Use iconvme from gnulib. Ignore strdup.h. Add. *** empty log message *** Separate gnulib directories. Also update gnulib files. 2006-10-17 Simon Josefsson Add. 2006-10-14 Simon Josefsson Add. 2006-10-02 Simon Josefsson Add. 2006-09-27 Simon Josefsson Bump versions. Add. 2006-09-25 Simon Josefsson Update. 2006-09-21 Simon Josefsson Update. 2006-09-14 Simon Josefsson Update. 2006-09-13 Simon Josefsson *** empty log message *** Version 0.6.7. Add. Sync with TP. Update. 2006-09-12 Simon Josefsson Add. Add. For C99 stdint.h platforms, create a dummy idn-int.h that include stdint.h, reported by Paul Howarth . Bump versions. Add. Move the index to the end. Fix refs. Update. 2006-09-04 Simon Josefsson Update. Fix. Add lgpl and gpl from gnulib. 2006-08-30 Simon Josefsson Use gnupload from gnulib. Update. Update. 2006-08-28 Simon Josefsson Update. 2006-08-23 Simon Josefsson *** empty log message *** Generated. Version 0.6.6. Update. Update. Add. 2006-08-19 Simon Josefsson Update. 2006-08-09 Simon Josefsson Sync with TP. Add. Update. 2006-07-14 Simon Josefsson Fix. Update. 2006-07-11 Simon Josefsson Update. Fix texi2dvi -I's. 2006-07-10 Simon Josefsson Update. 2006-07-07 Simon Josefsson *** empty log message *** Use gnulib stdint module instead of AX_CREATE_STDINT_H. Bump version. Fix gendocs.sh run. *** empty log message *** Generated. Version 0.6.5. Update. Add. Add. Update to doxygen 1.4.7. Add. Need libintl too, for gettext, reported by Kirill Ponomarew . Update. Bump versions. *** empty log message *** Generated. Version 0.6.4. Fix valgrind test. Check if running valgrind works. 2006-07-06 Simon Josefsson Need -I for texi2dvi too. Fix paths. Add. Update. Fix. Simplify valgrind usage. Check for valgrind. 2006-06-27 Simon Josefsson Use GNU-style warnings. Fix man output, sync. 2006-06-22 Simon Josefsson Use AC_LIBTOOL_WIN32_DLL. 2006-06-16 Simon Josefsson Add. 2006-06-10 Simon Josefsson Sync with TP. 2006-06-09 Simon Josefsson Add. 2006-06-07 Simon Josefsson Update. Update. Update. 2006-06-01 Simon Josefsson Add. When printing size_t, use %lu and cast the value to unsigned long, based on report from Joe Orton . Sync with TP. Add. Include config.h, to make NLS work, tiny patch from Joe Orton . 2006-05-16 Simon Josefsson Update. 2006-05-05 Simon Josefsson *** empty log message *** 2006-05-04 Simon Josefsson Add. Run tests under valgrind, if present. 2006-04-26 Simon Josefsson Typo. Update. 2006-04-17 Simon Josefsson Add. 2006-03-14 Simon Josefsson Fix title. 2006-03-11 Simon Josefsson Fix. fix Add. 2006-03-10 Simon Josefsson Add. 2006-03-08 Simon Josefsson Bump versions. *** empty log message *** Typo. Generated. Version 0.6.3. Add. Bump versions. Update. Update. 2006-03-07 Simon Josefsson Add. 2006-03-03 Simon Josefsson Sync with TP. Fix update-po rule. Update. Update. Doc fix. Stylistic fix. Update. Remove indent. 2006-02-17 Simon Josefsson Add. 2006-02-16 Simon Josefsson Fix. Fix. Fix. Fix. Add mingw32 target. 2006-02-15 Simon Josefsson Update. 2006-02-14 Simon Josefsson Rename. Fix. Fix. Fix. Fix. Remove. Add. 2006-02-11 Simon Josefsson Update gnulib. 2006-02-07 Simon Josefsson 0.6.2. *** empty log message *** Fix includes, for make dist. Fix -I's again, for make dist. Fix @verbatiminclude's, for make dist. Fix -I's, for make dist. Add -I for examples. Fix years. Generated. Version 0.6.2. Add. Update. Sync with TP. Update. 2006-02-05 Simon Josefsson Add. 2006-02-03 Simon Josefsson Fix objdir != srcdir, tiny patch from Bernard Leak . Add. Fix objdir != srcdir, tiny patch from Bernard Leak . 2006-01-27 Simon Josefsson Sync with TP. Bump versions. Fix 'make distcheck'. 2006-01-26 Simon Josefsson Fix. 2006-01-24 Simon Josefsson Add. 2006-01-20 Simon Josefsson 0.6.1. *** empty log message *** Version 0.6.1. Add. Sync with TP. Add. Fix mingw32 builds. Fix make check on mingw32. 2006-01-12 Simon Josefsson Add. 2006-01-11 Simon Josefsson Update. Fix copyright years. Add. Update PGP key. Fix path to csharpcomp.sh. Add. *** empty log message *** Fix. Update. 2006-01-09 Simon Josefsson Update. Update. Print USC4 code point numbers too. 2005-12-23 Simon Josefsson Add. 2005-12-22 Simon Josefsson Add. 2005-12-12 Simon Josefsson Add. 2005-12-03 Simon Josefsson 0.6.0. Bump version. *** empty log message *** Generated. Version 0.6.0. Add. Fix. Fix. Csharp test is in gnulib now, remove it. Add. 2005-12-02 Simon Josefsson Sync with TP. Add C# notes. Fix message. Use csharpcomp-script from gnulib. Don't specify any C# compile flags (fixes distcheck). Sync with TP. Add. Dist MSVS stuff. Add MSVSC project files. Add. Use GPL for the port. Fix. *** empty log message *** Fix csharpcomp location. Fix. Add. Fix. Fix message. 2005-12-01 Simon Josefsson Fix. Add. Add C# tests. Remove. Fix. Add 2005. Add. Add. Use gnulib, for csharpcomp. Add. C# fixes. Add C# port, from Alexander Gnauck . Bump version. 2005-11-04 Simon Josefsson Fix. Add. Use -no-undefined for libtool, for cygwin, tiny patch from "Yaakov S (Cygwin Ports)" . 2005-10-26 Simon Josefsson Add. 2005-10-24 Simon Josefsson Bump versions. (pr29_8z): Fix memory leak. 2005-10-23 Simon Josefsson Add. *** empty log message *** Generated. Mention Suse on IBM OpenPower. Fix. Add. Version 0.5.20. Sync with TP. Add. Add. Install pr29.h. 2005-10-22 Simon Josefsson Update. 2005-10-07 Simon Josefsson Update. 2005-10-01 Simon Josefsson Add. 2005-09-22 Simon Josefsson Update. 2005-09-20 Simon Josefsson Update. 2005-09-19 Simon Josefsson Update. Bump versions. Use gnupload. 0.5.19. *** empty log message *** Update. Version 0.5.19. Add. Update. Use --no-location, to minimize CVS diff's. *** empty log message *** 2005-09-15 Simon Josefsson Add (to fix gtk-doc makefile bug). Fix dependency. 2005-09-13 Simon Josefsson Update. Sync with TP. Fix wget usage. Sync with TP. Sync with TP. 2005-09-12 Simon Josefsson Update. Fix dependencies. *** empty log message *** Fix. *** empty log message *** Call gjdoc directly. Replace javadoc with gjdoc. Dist files generated by gjdoc instead. Add. Add. 2005-09-10 Simon Josefsson Use HAVE_LOCALE_H. Add. Update. Add. Fix header/setlocale checks. Check for locale.h. Fix setlocale test. Check for setlocale. 2005-09-09 Simon Josefsson Add. Use modern nl_langinfo test. Simplify nl_langinfo test. Fix #include's. Let's assume unistd.h and errno.h (in fact, we already did in the source code and nobody complained). Update PGP key. Add. Update gnulib. 2005-07-16 Simon Josefsson Fix typo. Bump versions. Add. *** empty log message *** Generated. Version 0.5.18. Add. Link to help-libidn. Add. Update. Simplify. 2005-07-15 Simon Josefsson *** empty log message *** 2005-06-24 Simon Josefsson Add. Use 'sed 1q' instead of 'head -n 1', more portable. Add 2005 to man page copyrights. Fix head usage (really!!). Fix license. Bump versions. Add. Fix use of head. New upstream release. 2005-06-15 Simon Josefsson Sync with TP. Fix address in license. 2005-06-12 Simon Josefsson Fix. fix Turn 'head -1' into 'head -n -1', tiny patch from Carsten Lohrke . 2005-06-05 Simon Josefsson Add. 2005-05-26 Simon Josefsson 0.5.17. *** empty log message *** Generated. Version 0.5.17. Fix sectioning. Fix. Sync with gnulib. Update FSF address in license. Fix copyrights. Add. 2005-05-18 Simon Josefsson Add. 2005-05-12 Simon Josefsson Sync with TP. 2005-05-11 Simon Josefsson Add. 2005-05-08 Simon Josefsson Bump versions. 0.5.16. 2005-05-06 Simon Josefsson *** empty log message *** Version 0.5.16. Sync with TP. Add. Use 'const' for static data, tiny patch from Joe Orton . 2005-04-16 Simon Josefsson Sync with TP. 2005-04-15 Simon Josefsson Bump versions. Add. Sync with TP. 2005-04-06 Simon Josefsson Sync with TP. 2005-03-19 Simon Josefsson *** empty log message *** Generated. Version 0.5.15. Fix. Add. Sync with libc; fix license and fix arithmetic overflow. Fix license. Bump versions. *** empty log message *** Generated. Version 0.5.14. Ramblings. Sync with TP. 2005-03-12 Simon Josefsson Add. 2005-03-01 Simon Josefsson Add. 2005-02-27 Simon Josefsson Include the specification first, to verify it is standalone. Doc fix. 2005-02-24 Simon Josefsson Add. 2005-02-16 Simon Josefsson Add. Reorder chronologically. 2005-02-13 Simon Josefsson Add. Add. 2005-02-11 Simon Josefsson Add. 2005-02-07 Simon Josefsson Sort (should be sorted chronologically..). Bump versions. Add. 2005-01-30 Simon Josefsson Fix last commit, reported by Linus Nordberg . Fix srcdir != objdir when bootstrapping from CVS, patch from Linus Nordberg (tiny change). Fix. Remove hack, fixed in gtk-doc CVS. 2005-01-29 Simon Josefsson 0.5.13. *** empty log message *** Generated. Version 0.5.13. Update. Need dummy gnulib module again. 2005-01-28 Simon Josefsson Add. Move iconvme to lib, since linking gnulib in lib doesn't work due to program_name symbol. Update. Typo. 2005-01-27 Simon Josefsson Add. Add, reported by Simon Walter . 2005-01-20 Simon Josefsson Add. 2005-01-18 Simon Josefsson Sync with TP. Remove. Define JAVAROOT unconditionally, because automake barf otherwise. 2005-01-16 Simon Josefsson Add. Add. Add. Mention gettext requirement, suggested by Linus Nordberg . 2005-01-05 Simon Josefsson Warn strongly about missing iconv. Update. No need to use dummy gnulib module, no system has iconvme. Add. Link with gnulib (only LGPL files). Use iconv_string from gnulib. Add iconvme from gnulib. 2005-01-02 Simon Josefsson Add copyright for year 2005. Add. Update. 2005-01-01 Simon Josefsson Update. Bump versions. Add. 2004-12-04 Simon Josefsson Add. *** empty log message *** Generated. Version 0.5.12. Add. Update. 2004-12-01 Simon Josefsson Doc fix, from Oliver Hitz . 2004-11-30 Simon Josefsson Add. 2004-11-29 Simon Josefsson More PR29. 2004-11-23 Simon Josefsson Bump versions. Add. 2004-11-22 Simon Josefsson Add. Fixed two bugs: allowUnassigned not respected properly, buggy prohibited code points check. Argument checks added. RFC3920 nodeprep and resourceprep added, suggested by Matt Tucker. Convenience methods with allowUnassigned set to false added. From Oliver Hitz . Add table C.1.1 and C.2.1, from Oliver Hitz . 2004-11-21 Simon Josefsson Make sure all man pages follow 'foo -- purpose of foo' format, even if there is no purpose description available, from Shishi. Add. *** empty log message *** Sync with TP. Version 0.5.11. Add. Add 'DO NOT MODIFY' warning to generated man pages. Add. Doc fix. Add. Doc fix. Doc fix. For man pages, don't use line breaking formatting codes ("\n.I foo\n") but rather inline commands ("\fIfoo\fP"). Doc fix. Skip leading whitespace in function purpose. Print function purpose in man pages, if available. Add. Update. 2004-11-18 Simon Josefsson Add. 2004-11-17 Simon Josefsson Add. 2004-11-16 Simon Josefsson Bump versions. 2004-11-09 Simon Josefsson Add. Update. 2004-11-08 Simon Josefsson Fix. *** empty log message *** Generated. Version 0.5.10. No need for stringprep.h. Cosmetic fix. Typo. Sync with TP. Simplify EXTRA_DIST. Add. Use Libtool's -export-symbols-regex. Add. Cosmetic fix. Add copyright header for me. 2004-11-07 Simon Josefsson Add. Fix. Add. Update PGP key. Bump versions. Add. *** empty log message *** Generated. Fix release target. Version 0.5.9. Sync with TP. *** empty log message *** Simplify. Fix SUBDIRS order, because GTK-DOC need components.png. Fix. Fix. Add. Update. 2004-10-28 Simon Josefsson Support -include, from GnuTLS. 2004-10-27 Simon Josefsson Doc fix. 2004-10-25 Simon Josefsson Fix man output. Doc fix. Doc fix. Use @code, not @var, for constants in texinfo output. Fix newlines in man output. Use # instead of & for types. Add image. Run gtkdocize. Sync with TP. (update-po): Fix. Add. 2004-10-24 Simon Josefsson Fix. Fix. (DISTCHECK_CONFIGURE_FLAGS): Add --enable-gtk-doc. Align GTK-DOC build infrastructure with GTK-DOC official recommendations. *** empty log message *** Sync with TP. 2004-10-16 Simon Josefsson Update. 2004-10-15 Simon Josefsson Sync with TP. 2004-10-13 Simon Josefsson Update. Update. 2004-10-12 Simon Josefsson Fix. Fix. Improve readability. Bump versions. *** empty log message *** Generated. Version 0.5.8. Add. Add coment to generated files to say that they are generated, reported by "Gisle Vanem" . Distribute BidiMirroring-3.2.0.txt, reported by "Gisle Vanem" . Bump versions. *** empty log message *** Generated. Version 0.5.7. Add. 2004-10-11 Simon Josefsson Generated. Sync with TP. 2004-10-05 Simon Josefsson Update Gnulib. 2004-10-04 Simon Josefsson Generated. Bump versions. 2004-10-03 Simon Josefsson Use EXIT_SUCCESS and EXIT_FAILURE. 2004-10-02 Simon Josefsson Update PGP key. *** empty log message *** Generated. Version 0.5.6. Use *strerror. Fix indent. Fix. Reorder. Fix. Don't link with gnulib. Revert, don't use strdup. Simplify translation strings. Add. Fix. Typo. Indent. Use error. Add error from gnulib (slightly modified to avoid unlocked-io.h). Add. *** empty log message *** (DEFS): Add LOCALEDIR. Setup gettext properly. Add. Fix. Add idna_strerror, pr29_strerror, punycode_strerror, stringprep_strerror, and tld_strerror, suggested by Daniel Stenberg . Make idn.c use them. Rename TLD_NOTLD to TLD_NO_TLD. 2004-09-29 Simon Josefsson Update. Update. Use new GNULib. Specify gl_LGPL for new gnulib-tool. 2004-09-26 Simon Josefsson Bump versions. Use Lesser GNULib. 2004-09-22 Simon Josefsson Add. 2004-09-13 Simon Josefsson Add. *** empty log message *** Clean more. Version 0.5.5. Generated. *** empty log message *** (POURL): Fix. Sync with TP. Add. 2004-09-05 Simon Josefsson Add. (g_utf8_skip): Hide variable, using "static". 2004-09-02 Simon Josefsson Move. Fix ack. 2004-08-25 Simon Josefsson Add. 2004-08-23 Simon Josefsson Update. 2004-08-18 Simon Josefsson Fix. Fix. 2004-08-17 Simon Josefsson Add. Bump version. 2004-08-10 Simon Josefsson Shut up 'uno' by fixing array boundary. 2004-08-08 Simon Josefsson Fix. Add. *** empty log message *** Generated. Version 0.5.4. 2004-08-06 Simon Josefsson Sync with TP. Fix. Fix. Fix. (update-po): Add. Sync with TP. Bump version. Add. Update. 2004-08-05 Simon Josefsson *** empty log message *** Version 0.5.3. Generated. Add. Add. Fix crash, tiny patch by Andreas Schwab reported by Stephan Kulow . 2004-08-01 Simon Josefsson Use PR29_* error mnemonics, instead of hard coded integers. Cosmetic fix. 2004-07-29 Simon Josefsson Add. Update. 2004-07-14 Simon Josefsson Update. Bump version. Bump versions. Add. *** empty log message *** Generated. Version 0.5.2. Add. Fix. Bump version. Add. Add. (install-jar): Make DESTDIR compatible, patch from Oliver Hitz based on report by Benjamin Reed . 2004-07-13 Simon Josefsson Doc fix. Use setlocale, reported by Robert Scheck . Add. 2004-07-09 Simon Josefsson Add. Mention pr29.h. *** empty log message *** Generated. Version 0.5.1. Use autobuild. Add. Call setlocale to make iconv work, reported by Robert Scheck . 2004-07-02 Simon Josefsson Update getopt. Add. *** empty log message *** Fix. *** empty log message *** *** empty log message *** Add. Update getopt module. Now work on, e.g., uClibc systems which uses GNU Libc header files, but do not implement getopt_long. 2004-06-29 Simon Josefsson Add. Add. 2004-06-26 Simon Josefsson Bump versions. Add. *** empty log message *** Generated. Version 0.5.0. *** empty log message *** Fix. Fix. (HTML_OBJECTS): Add libidn-pr29.html. Add PR29. *** empty log message *** Add doc. Don't use wildcards for GDOC_SRC. Bump versions. Use 'static'. Typo. *** empty log message *** Add PR29 functions. 2004-06-25 Simon Josefsson Add. Add. 2004-06-12 Simon Josefsson Add. Add Esperanto translation, from Edmund GRIMLEY EVANS , via the translation project. 2004-06-11 Simon Josefsson Bump versions. Fix release target. *** empty log message *** Generated. Version 0.4.9. Work around automake limitation (cannot have instal-data-local target in a conditional). 2004-06-09 Simon Josefsson Add. 2004-06-08 Simon Josefsson Cosmetic fix, sync with libc. 2004-06-07 Simon Josefsson Fix. Create libidn.jar link. 2004-06-06 Simon Josefsson Add. 2004-06-03 Simon Josefsson *** empty log message *** Use versioned *.jar. 2004-06-02 Simon Josefsson Versionize *.jar filename. 2004-06-01 Simon Josefsson Add. Dist HTMLs. Add JavaDoc links. Copy javadoc files. Bump versions. *** empty log message *** *** empty log message *** Fix. Add javadoc. Distribute libidn.jar, suggested by Oliver Hitz. Add. Add java/. Build doc/java/Makefile. Find javadoc. *** empty log message *** Generated. Version 0.4.8. Add. Don't use GNU make specific 'override', from Oliver Hitz. Dist *.java, suggested by Oliver Hitz. 2004-05-31 Simon Josefsson Fix. Bump versions. *** empty log message *** Version 0.4.7. Generated. Fix. Markup fix. (Java API): Fix. Markup fixes. Remove (moved to doc/libidn.texi). (Introduction): Mention Java port. (Downloading and Installing): Mention --enable-java. (Java API): Add, taken from java/README.html and java/README.UNICODE by Oliver Hitz. Revert, I don't want to require gcj for CVS builds. Dist libidn.jar (this seem to be the norm among Java libraries?). Add. *** empty log message *** Build more. Improve JAVA port, from Oliver Hitz . 2004-05-26 Simon Josefsson Fixes. 2004-05-25 Simon Josefsson Fix. Bump versions. 2004-05-24 Simon Josefsson *** empty log message *** Version 0.4.6. Generated. Add. (include_HEADERS): Install idn-free.h, reported by Daniel Stenberg . 2004-05-21 Simon Josefsson Bump versions. Update. *** empty log message *** Version 0.4.5. Generated. Bump copyright years on man pages. Bump so version. (HIGNORE): Add idn-free.h. (stringprep): Move declaration of temporary variable to start of scope. Add. (idna_to_unicode_4z4z): There was no double free, remove my modification. Add. (idna_to_ascii_4i, idna_to_unicode_4z4z): Fix memory leak when memory allocation fails. From Ulrich Drepper , but modified to fix double free and incorrect 'if' condition. Add. (stringprep): Fix memory leak when memory allocation fails. From Ulrich Drepper . Doc fix. Back port of (some) changes by Ulrich Drepper . (idna_to_unicode_internal): Fix memory leaks when memory allocation fails. Deallocate utf8in on failure. (idna_to_unicode_44i): Don't free, done in idna_to_unicode_internal. (idna_to_ascii_4z): Fix memory leak when memory allocation fails. Add. Add idn_free, suggested by "Gisle Vanem" . 2004-04-30 Simon Josefsson Fix. (idna_to_ascii_lz): Doc fix, reported by Joe Orton . Add NFKC test vectors from pr-29.html. Fix debug output. Add. Fix ucs4print debugging output. 2004-04-29 Simon Josefsson Add. Update SASLPrep test vectors. Bump versions. *** empty log message *** Version 0.4.4. Generated. Add. Add. Use -no-install to avoid libtool wrapper script, tiny patch from Joe Orton . Add. Update. Add. Add iSCSI test vectors to catch recent bugs. (stringprep_iscsi_prohibit): For start==0, use end!=1. (stringprep_iscsi): Add C_1_1, C_2_1, and C_7 (after reading newly published RFC 3722). 2004-04-24 Simon Josefsson Add. Add, by Laurentiu Buzdugan via translation project. 2004-04-23 Simon Josefsson Rename variable to avoid silly shadowing warnings. *** empty log message *** Move utils.c and utils.h into a separate library. *** empty log message *** Split out common stuff into utils.c and utils.h. Fix warnings. 2004-04-22 Simon Josefsson Require modern autoconf. Bump versions. Indent. *** empty log message *** Generated. Version 0.4.3. Add. Add. (Tld_table): Mark "name" and "version" as const. Add. Add SASLprep test vectors (would catch the C.2.1 bug). (stringprep_find_character_in_table): Fix end-of-table test, to handle valid uses of start=0 (as in table C.2.1). 2004-04-21 Simon Josefsson Update PGP key. 2004-04-18 Simon Josefsson Add. Drop -R lib flag, suggested by Martin Waitz . 2004-04-16 Simon Josefsson Add. 2004-04-15 Simon Josefsson Add. 2004-04-14 Simon Josefsson Add. 2004-04-12 Simon Josefsson Add. 2004-04-11 Simon Josefsson Fix versions. 2004-04-09 Simon Josefsson Add. Add, from Elros Cyriatan via Translation Project. 2004-04-05 Simon Josefsson Use new API, tiny patch from "Gisle Vanem" . 2004-03-28 Simon Josefsson Add. Add German translation, from Roland Illig via translation project. 2004-03-23 Simon Josefsson Add. 2004-03-20 Simon Josefsson Add. Use TAB instead of \t, suggested by Jørgen Thomsen . Bump versions. *** empty log message *** Generated. Version 0.4.2. Inform about Java. Update. Remove most of libc stuff (has been integrated in libc CVS). Fix. Add. Fix. Add. Add. Add. Fix. 2004-03-19 Simon Josefsson Add, from GNU Autoconf Macro Archive. *** empty log message *** Add, from Oliver Hitz . (noinst_JAVA): Only include Punycode*.java for now. Add infrastructure for Java code, and add Punycode, from Oliver Hitz . *** empty log message *** 2004-03-16 Simon Josefsson Add. Add. Add, from Morten Bo Johansen via Translation Project. 2004-03-14 Simon Josefsson Update. *** empty log message *** Add. Fix. Ack Unicode, Inc. Dist COPYING.UCD. Add. Add. Add, from Michel Robitaille via Translation Project. Add. Add. Add, from Aleksandar Jelenak via Translation Project. 2004-03-13 Simon Josefsson Add URLs. Add. Add no.tld. Add, from Thomas Jacob . Fix. Add. 2004-03-10 Simon Josefsson Fix. Add. Add Polish translation, from Jakub Bogusz . Add. 2004-03-09 Simon Josefsson Build lib/ before po/. Bump versions. 2004-03-08 Simon Josefsson *** empty log message *** Generated. Version 0.4.1. Fix warning. Fix. Generated. (idn_LDADD): Add LTLIBINTL. Add. Generated. Fix. Cosmetic fix. Add. Translation markup. *** empty log message *** *** empty log message *** Fix. Gettextiscate. Add. *** empty log message *** Add gettext.h. Define LOCALEDIR (for gettext). Add. *** empty log message *** Remove, added by gettextize. Gettextiscate. Add. Fix. Fix IDNA_DLOPEN_ERROR. (stringprep_convert): Don't copy input. Check for malloc failures. From Ulrich Drepper , via libidn integration in libc. Invoke setlocale (LC_ALL, ""). Add. (stringprep_locale_charset_slow): Remove. (stringprep_locale_charset) [_LIBC]: Define to nl_langinfo(CODESET). (stringprep_locale_charset) [!_LIBC]: Don't cache charset. Remove broken setlocale hack. All based on discussion with Ulrich Drepper , during libidn integration in libc. (Idna_rc): Doc fix IDNA_DLOPEN_ERROR. Fix. Add. Fix warning, tiny patch by Ulrich Drepper from libidn integration in libc. (Idna_rc): Add IDNA_DLOPEN_ERROR error code, for libidn part of libc. (Stringprep_profiles): Mark 'name' as 'const'. Tiny patch to libidn in libc by Ulrich Drepper . Add. Dist libc/idn-stub.c and libc/libidn.texi. Update, from libc-alpha post. Add, from libc-alpha post. Sync libc-alpha post. Update. Sync. 2004-03-07 Simon Josefsson Fix comment. Add. Fix version requirements. Fix texinfo requirement. 2004-03-05 Simon Josefsson Add. (stringprep_saslprep): Fix typo; make sure non-ASCII space characters are prohibited. 2004-03-01 Simon Josefsson Mention tldchk.berlios.de, suggested by Thomas Jacob . 2004-02-28 Simon Josefsson Don't install tld.h if --disable-tld. Bump versions. Add. *** empty log message *** Version 0.4.0. Always include errno.h (C89). Indent. Mention TLD. Handle draft-hoffman-idn-reg-*.txt tables better. Add headers. Fix typos and comments. Add copying conditions. Add, from Stephane Bortzmeyer . Don't document Tld_table* for now. (_tld_checkchar): Use new Tld_table API. (Tld_table): Change valid definition. Use new API. Fix. Improve Troubleshooting. 2004-02-27 Simon Josefsson Cosmetic fix. (tld_check_4): Don't write to NULL errpos, from Thomas Jacob . 2004-02-18 Simon Josefsson Typo. Use hex in output. Add comment. Parse tables conforming to draft-hoffman-idn-reg. Add. Fix typos. Fix autoconf stuff, suggested by Stephane Bortzmeyer . 2004-02-15 Simon Josefsson Fix. 2004-02-14 Simon Josefsson Doc fix. Fix. 2004-02-12 Simon Josefsson Fix. Indent. (tld_get_z): Allocate correct amount, from Thomas Jacob . 2004-02-11 Simon Josefsson Fix title. Add. 2004-02-10 Simon Josefsson Add. Fix warning. Fix TLD debug. TLD check correct string. Fix warning. TLD fix. Fix include, from Thomas Jacob . 2004-02-09 Simon Josefsson Mention example5. Sync libidn text. Sync text. Fix introduction. Typo. TLD fixes. Add. Add example 5. (_tld_checkchar): Binary search, from jacob@internet24.de. Remove. Indent. Whitespace. Doc fix. Hide tld_tables. (tld_get_z): Support any charset (renamed from tld_get_8z). Typo. Typo. 2004-02-08 Simon Josefsson Add. (tld_get_8z): Add. *** empty log message *** Add. Doc fix. Fix. 2004-02-07 Simon Josefsson Fix. Add. Add. Indent. Fix indent. 2004-02-06 Simon Josefsson Add. Fix. Rewrite. Fix "include". Add. Fix. Rename TLD_ILLEGAL to TLD_INVALID. Rename TLD_ILLEGAL to TLD_INVALID. Fix. Add. Update idn command line. Move around. Fix stringprep profiles. TLD typo. Make --tld the default. Support --tld. Make sure output is hold in "p". Fix error messages. TLD fix. Fix. Fix. Add. Typos. Fix. Doc fix. Add. Typo. Add. Doc fix. Use new API. (tld_default_table): Add. (tld_get_table): Fix. Typo. Typo. Revert. Change semantics if tld_get_table. Typo. Typos. Use new API. Rename tld_check_*. Rename tld_check_*. Doc fix. Rename tld_gettld_* to tld_get_*. Use new API. (tld_get_table): Rewrite. Use new API. Fix Tld_table. Reorder. Use new API. Don't export tld_checkchar. Rename tld_finddomain to tld_get_table. Fixes. Fix. Indent. Fix acks. Add. Add. Update. *** empty log message *** Add. Add TLD. Fix. Fix. Update introduction. Add TLD. Fix autoconf example. Remove Kerberos 5 macro documentation. Doc fix. Fix. Add TLD. Bump versions. Add. Make it possible to exclude TLD. Add --disable-tld. Build doc/tld/Makefile. *** empty log message *** Add tst_tld. Add --tld. Add. Fix Tld_table. TLD code fix. *** empty log message *** TLD fixes. TLD typos. TLD fix. Add, from Thomas Jacob . Fixes. Add, from Thomas Jacob . TLD fixes. Print to stdout. TLD fixes. Add tld/. Fix. Add copying conditions. Add, from Thomas Jacob . 2004-02-04 Simon Josefsson Typo. 2004-02-01 Simon Josefsson Fix. Fix. Add. *** empty log message *** Build components.pdf too. Add components.fig. 2004-01-31 Simon Josefsson Add. Fix, reported by nisse@lysator.liu.se (Niels Möller). 2004-01-22 Simon Josefsson Bump versions. Fix release target. Upstream sync. *** empty log message *** Version 0.3.7. Add release target. *** empty log message *** Fix. Remove ugly maintainance hacks. Typo. Update copyright years. Add. Add. Mention '--'. 2004-01-21 Simon Josefsson Add. Fix iSCSI profile name. Add alias 'iSCSI'. 2004-01-18 Simon Josefsson Use FDL 1.2. Fix warning. 2004-01-14 Simon Josefsson Don't use AC_LIBTOOL_TAGS, too experimental. 2004-01-10 Simon Josefsson Fix idn.1 depends. Dist texinfo.css. Sync with texinfo. Remove DocBook. Add. Remove DocBook stuff. Rename libidn.css to texinfo.css. Fix. Fix. Use CSS for HTML. Add. 2004-01-06 Simon Josefsson Add. Bump versions. . *** empty log message *** Version 0.3.6. Add. Fix license header. Add. 2004-01-01 Simon Josefsson Fix, to use ax_... verbatim from upstream. Remove (not used by ax_... any more). Apply local fixes. Sync with upstream version 1.4. 2003-12-30 Simon Josefsson Add. Allow autoconf 2.57. 2003-12-18 Simon Josefsson Encode file in ASCII. 2003-12-16 Simon Josefsson Replace non-ASCII with Texinfo accents. Add Troubleshooting discussion for idn tool. Suggested by "Jan-Hendrik Heuing" and Kai Schaetzl . 2003-12-15 Simon Josefsson Pass data on command line. Update error enum's. Fix. Remove (see doc/libidn.texi instead). Fix. Bump versions. . *** empty log message *** Version 0.3.5. *** empty log message *** Use @finalout. Add. Remove DocBook HTML targets (I'm tired of updating the random filenames in the Makefile). Set charset cookie. Use @section instead of @majorheading for DocBook. Add real examples to idn section. Sync with Texinfo CVS. Add. Update DocBook HTML target. 2003-12-11 Simon Josefsson Rename IDNA_CONTAINS_LDH to IDNA_CONTAINS_NON_LDH. Reported by Graydon Hoare . 2003-12-10 Simon Josefsson Check for autoconf 2.59 and automake 1.8. Mention versions. 2003-12-04 Simon Josefsson Fix. 2003-12-03 Simon Josefsson Add. 2003-11-27 Simon Josefsson Add. Simplify gengetopt building. Use AM_CPPFLAGS, not *_CPPFLAGS. Print instructions. Suggested by Kai Schaetzl . 2003-11-26 Simon Josefsson Typo. Add. Update Invoking idn. Make -a the default. Update Invoking idn. Add. Support strings passed on command line instead of on stdin. Suggested by Kai Schaetzl . Add todo. 2003-11-25 Simon Josefsson Disable fortran etc libtool checks. 2003-11-23 Simon Josefsson Add --docbook. Sync with texinfo. 2003-11-20 Simon Josefsson Fix GREETING. 2003-11-11 Simon Josefsson TeX improvements. From Nikos Mavroyanopoulos . Use AM_MAKEINFOHTMLFLAGS (with CVS automake) instead of explicit libidn.html target. 2003-11-10 Simon Josefsson Add. 2003-11-09 Simon Josefsson *** empty log message *** Update DocBook HTML destinations. Remove. Remove unused ps_TEXINFOS and pdf_TEXINFOS. Remove example source code to texinfo conversion (@verbatiminclude is used directly on the source code instead). Use @verbatiminclude for examples. Use *_CPPFLAGS instead of obsolete INCLUDES. Replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS. Autoupdate suggested changes: quote AC_INIT parameters, and replace AC_TRY_RUN with AC_RUN_IFELSE. Enable warnings. *** empty log message *** Use automake 1.7a idiom for elisp files. Remove m4/ as it is not needed with automake 1.7a. Bump versions. Use proper -o directory for gendocs.sh. . *** empty log message *** Version 0.3.4. Fix memory leak. 2003-11-07 Simon Josefsson Remove libtool bug workaround. 2003-11-05 Simon Josefsson Fix. Fix date. Fix bad UTF-8. 2003-11-02 Simon Josefsson Mkdir HTML. Cleanup. Dist gtk-doc.m4. 2003-11-01 Simon Josefsson Update expiry date on PGP key. *** empty log message *** *** empty log message *** Rename. Use my old cleaned up Makefile. Don't break on first 'make'. Make 'dist' work. Remove (replaced by doc/reference/). Add. *** empty log message *** Add, based on GTK-DOC example Makefile.am. Add reference/. Remove GTK-DOC subdir reference/ (moved to doc/). Build GTK-DOC Makefile in doc/reference instead of reference/. Use GTK_DOC_CHECK macro for gtk-doc checks. Add. Use GTK-DOC conditional. Rebuild Makefile after rebuilding Makefile.gdoc. Set GDOC_MAN_EXTRA_ARGS. Add GDOC_TEXI_EXTRA_ARGS, GDOC_MAN_EXTRA_ARGS. GDOC framework cleanup. Create texinfo for whole sources files too. Add -man parameters (move to Makefile.am?). Just touch doc/Makefile.gdoc. Mark Makefile.gdoc as BUILT_SOURCES. Bootstrap doc/Makefile.gdoc. (Makefile.gdoc): Depend on ../configure for bootstrapping. *** empty log message *** *** empty log message *** Remove. Mkdir. Update docbook HTMLs. Use gdoc @include's. Don't build in man/. Build idn.1 man page here. Move man page dist targets from man/. Use Makefile.gdoci to generate man pages and texinfo. Add, initial version. Don't generate doc/man/Makefile. 2003-10-31 Simon Josefsson Move unicode utility functions from stringprep to own chapter. Replace API documentation with @include'd GDOC generated version. Generate more API manuals with gdoc. Replace phony libidn-db.html with real targets. Update libidn-db.html files. *** empty log message *** Don't use @code for @deftypefun function name. (punycode_encode): Rename parameter to match punycode.h (and more importantly, to make gdoc function properly). Doc fixes. (dump_function): Handle parameters that look like 'char *foo[]'. Fix rule expansions. Dist gdoc and generated API texi's. Generate API doc. Fix dependencies. Sync from GSSLib. Mention more tools. Add. Fix doc generating commands. Fix HTML dir move. Fix outdir rm. Fix outdir rm. Don't remove $outdir (might contain CVS/). TAR fixes. Add DocBook/Doxygen/GTK-DOC. Add (taken from Texinfo CVS). *** empty log message *** Add docbook targets. Look for docbook tools. 2003-10-29 Simon Josefsson Dist libc/getaddrinfo-idn.txt. Add AC_CONFIG_AUX_DIR(.) for broken CVS libtoolize. Add. 2003-10-28 Simon Josefsson Add. Add. 2003-10-24 Simon Josefsson Add. Add. Fix. 2003-10-19 Simon Josefsson Add. Fix. Add warning in comment. Character set fixes. Fix. Bump versions. Add comment. 2003-10-18 Simon Josefsson Fix. . *** empty log message *** Version 0.3.3. Add. Add. Revert to old elisp automake idiom. Add. (struct Stringprep_table, struct Stringprep_profiles): Use 'const'. (stringprep_4i, stringprep_4zi, stringprep, stringprep_profile): Likewise. (stringprep_find_character_in_table): Mark parameter as 'const'. (stringprep_find_string_in_table): Likewise. (stringprep_apply_table_to_string): Likewise. (stringprep_4i, stringprep_4zi_1, stringprep_4zi, stringprep): Likewise. (stringprep_profile): Fix warning. Fix warnings. Indent. Remove stringprep_generic documentation. Remove stringprep_generic. Mark table elements as 'const'. (stringprep_apply_table_to_string): Remove 'name' parameter. (stringprep_4i): Likewise. (stringprep_profiles): Remove "generic". Indent. (struct Stringprep_table): Remove 'name'. (stringprep_profiles, stringprep_rfc3454_A_1,stringprep_rfc3454_B_1) (stringprep_rfc3454_B_2, stringprep_rfc3454_B_3) (stringprep_rfc3454_C_1_1, stringprep_rfc3454_C_1_2) (stringprep_rfc3454_C_2_1, stringprep_rfc3454_C_2_2) (stringprep_rfc3454_C_3, stringprep_rfc3454_C_4) (stringprep_rfc3454_C_5, stringprep_rfc3454_C_6) (stringprep_rfc3454_C_7, stringprep_rfc3454_C_8) (stringprep_rfc3454_C_9, stringprep_rfc3454_D_1) (stringprep_rfc3454_D_2) (stringprep_nameprep) (stringprep_saslprep, stringprep_plain,stringprep_trace) (stringprep_kerberos5) (stringprep_xmpp_nodeprep, stringprep_xmpp_resourceprep) (stringprep_xmpp_nodeprep_prohibit) (stringprep_iscsi): Mark as 'const'. (stringprep_generic, stringprep_generic): Remove. 2003-10-17 Simon Josefsson Indent. Fix memory leak. Fix #include for man pages. Fix. Sync 'idn -h'. Fix. Include cleanup. We assume C89, use <...> for headers we use, and use "..." for headers we implement. 2003-10-16 Simon Josefsson Add. Fix gengetopt building. Add. Use less negations for --quiet, reported by Oden Eriksson . Fix gengetopt built source files. Use new automake Emacs Lisp targets. Use current version number in examples. Update so version. Add. Include parameter names in prototypes, for GTK-DOC. Doc fix. Fix typo. Fix. Removed. Make #include's explicit. Make #include's explicit. Fix warnings. Remove internal.h. Doc fix. Make #include's explicit. Make #include's explicit. Fix. Make #include's explicit. Fix typo. Sync with latest draft, but change return types to 'int' to be backwards compatible. Sync with latest draft, but change return types to 'int' to be backwards compatible. Remove DMALLOC stuff. Fix warnings. Typo. Simplify debug prints. Add. (idna_to_unicode_internal): Handle reallocating larger utf8in after stringprep error STRINGPREP_TOO_SMALL_BUFFER. (idna_to_unicode_44i): Let new logic in idna_to_unicode_internal() replace BUFSIZ alloc. (stringprep_profile): Loop around stringprep return STRINGPREP_TOO_SMALL_BUFFER and increase buffer size. (stringprep): Check return value from stringprep_ucs4_to_utf8. Don't use goto. (stringprep): Loop around stringprep_4i error STRINGPREP_TOO_SMALL_BUFFER and increase buffer size. (stringprep_apply_table_to_string): Don't dereference possibly unallocated memory just to do pointer arithmetic. Check malloc return value. Check malloc return code. Add. Doc fox. Add stringprep_4i and stringprep_4zi. Doc fix. Add stringprep_4i.3, stringprep_4zi.3. Doc fix. (stringprep_4i, stringprep_4zi): Add. (stringprep1): Don't zero terminate. Rename to stringprep_4i and export it. (stringprep_4zi_1): Add. Calls stringprep_4i, then zero terminate. (stringprep_4zi): Add. New API. (stringprep): Use stringprep_4zi_1. Fix typo. (stringprep): Split core part into stringprep1. (stringprep1): New, simplified version of core part. 2003-10-15 Simon Josefsson Fix. Remove generic. Add trace. Print UCS-4 instead of UTF-8 in debug output for --stringprep. Add. Fix UCS-4 output in --stringprep. Print debug output even with --idna-to-ascii. Fix error message. 2003-10-12 Simon Josefsson Clarify alternative approaches. Fix. 2003-10-11 Simon Josefsson Add. 2003-10-10 Simon Josefsson Revert typo. Fix so version comment (matches libtool manual). Fix. Add. Remove 'generic' (should not be exposed). Add 'trace'. 2003-10-09 Simon Josefsson Add. 2003-10-08 Simon Josefsson Bump versions. Fix doxygen generation. 2003-10-07 Simon Josefsson . *** empty log message *** Version 0.3.2. Remove --rsyncable for now, Debian (stable) gzip do not support it. TAR_OPTION crashes tar in Debian, comment out for now. Add. Doc fix. Add. Add. 2003-10-06 Simon Josefsson Add. (stringprep_profile): Mark 'in' as 'const'. 2003-10-03 Simon Josefsson Fix comment. 2003-10-02 Simon Josefsson Fix. Add. Add trace profile (SASL ANONYMOS). Bump versions. Cosmetic fixes. Fix. . Perl 5.8.1 fix. *** empty log message *** Version 0.3.1. Fix NFKC, from Noah Levitt via bugzilla.gnome.org bug 123421. 2003-09-28 Simon Josefsson Fix. Add. Add. Indent. Fix. Fix indent target. Add indent rule. Indent. Fix. Add indent target. 2003-09-26 Simon Josefsson Fix Hangul patch. Fix typo. Add. Sync with GLIB for Unicode stuff. Fix typo. 2003-09-25 Simon Josefsson Update test vectors. Fix debug messages. Add. (DOTP): New. (idna_to_unicode_4z4z): Use it. (idna_to_ascii_4z): Use it. Make root label handling explicit. Add. (decompose_hangul, combine_hangul): New. (combine, _g_utf8_normalize_wc): Use them. Adds support for algorithmic composition of Hangul Syllables, adapted from a patch written by Noah Levitt for GLIB, discussed in and available from . Fix. Add. *** empty log message *** (idna_to_ascii_4z): Output "" instead of "." on input "". (Some religions claim "" should fail though.) 2003-09-23 Simon Josefsson Add. Doc fix. (punycode-shutdown): New. (idna-to-ascii-parameters, idna-to-unicode-parameters): Add --usestd3asciirules. (idna-shutdown): New. Bump versions. Fix. Fix. . *** empty log message *** Version 0.3.0. Fix. Add. Fix. 2003-09-22 Simon Josefsson Add. (stringprep_saslprep): Prohibit inappropriate for canonical representation characters. 2003-09-14 Simon Josefsson Dist libc/Banner. Create idna.h without dependency on idn-int.h. Fix memory leak. Fix memory leaks. Fix greeting message. Copy Banner. Add. 2003-09-13 Simon Josefsson Fix. Cast. Fix. Simplify #include mess. Remove cruft. Fix. Remove dummy.c. Doc fix. Doc fix. Doc fix. Doc fix. Doc fix. Doc fix. 2003-09-12 Simon Josefsson Fix RFC compatibility. Typedef Punycode_status. Use 'int' instead of 'enum' for return codes. Use 'int' instead of 'enum' for return code. Bump versions. Rename stringprep_generic_* to stringprep_rfc3454_*. *** empty log message *** Rename stringprep_generic.c to rfc3454.c. Add to BUILT_SOURCES. Write to rfc3454.c. Rename variables to stringprep_rfc3454_* from stringprep_generic_*. Remove, merged into ../lib/*.c. Doc fix. Fix. Fix update-api. Doc fix. Indent. Use 'int' instead of 'enum's. Typedef Stringprep_rc, Stringprep_profile_flags, and Stringprep_profile_steps. Use 'int' instead of 'enum's (i.e., revert 0.2.3 changes). Add. Remove obsolete.c. Remove obsolete headers. Use int instead of enum's. Typedef Idna_rc and Idna_flags. Use int instead of enum's. Fix path to sources. Fix HIGNORE. Workaround -I problem. Against glibc 2.3.2. Add. Remove unused m4's. Add (from gl/). Don't use strdup. Remove gl/. Fix. Remove checks for memset and strdup; we assume C89, so memset exists, and we no longer use strdup. Remove gl/. Ported to Mac OS X / Darwin. *** empty log message *** Use libtool. Make LDADD libtool friendly. Add. Build man pages. Move. Fix. Add. Typo. [_LIBC]: Define ICONV_CONST. Use modern API. Export modern API. Update. GLIBC 2.3.2 sync. 2003-09-02 Simon Josefsson Revert. 2003-08-26 Simon Josefsson Update key. Add examples/README. Fixes. Fix cvs2cl parameters. Use $() instead of @@. Do some tests that work. Fix URL. Bump versions. Fix cvs2cl parameters. Ignore errors on www update. Update paths. . Revert. Fix. *** empty log message *** Version 0.2.3. *** empty log message *** Add tabs, for Makefile.maint check. Replace release target with Makefile.maint etc. Add. 2003-08-25 Simon Josefsson Doc fix. Add. Really call ToUnicode instead of ToASCII. Reported by Trond Haugen . 2003-08-21 Simon Josefsson Add port. Dist getopt.h. Link with gl stuff. 2003-08-20 Simon Josefsson Fix warning message. Group portability stuff together. Fix -I paths. Distcheck fixes. Fix paths. Fix paths (for distcheck). Fix directory build order, for gtk-doc. Update paths to source code. Move obsolete functions into separate file. Fixes. Build doc after src, for help2man on idn. *** empty log message *** Add EXTRA_DISTs. Add gl, lib, src, tests and examples to SUBDIRS. Add gl/m4 to ACLOCAL_AMFLAGS. Remove rules that are moved into lib/, src/, tests/ and examples/. Split up files into sub-directories. Move gdoc to doc/. *** empty log message *** *** empty log message *** Move documentation and specifications into doc/ and doc/specifications/. Move portability utilities into gl/. Move library into lib/. Move tests into tests/. Move applications into src/. Move examples into examples/. 2003-08-13 Simon Josefsson Add. Fix doc. Remove unused function. Fix warnings. Bump versions. Add. Use enum types where appropriate. Doc fixes. Fix. Use enum/size_t/ssize_t where appropriate. Doc fix. Replace int with proper enum, where appropriate. Typo. Add FreeBSD 4.8. *** empty log message *** Version 0.2.2. Fix. Fix release target. Fix release target. Add. Typo. Indent. Revert to RFC code: use punycode_status. Revert to RFC code: use punycode_uint and enum punycode_status. However, we do continue to use size_t to promote use of sizeof() by application writers. We return punycode_bad_input if a size_t value exceeds the largest punycode_uint, since the code presumably cannot handle that. If size_t is smaller than punycode_uint, it seems unlikely that an application could be able to pass a string that is longer than SIZE_MAX anyway, but should it happen the worst that occur is that the punycode code will only see the beginning of the string, which isn't unreasonable on a platform with a small SIZE_MAX. Define and use punycode_uint. 2003-08-08 Simon Josefsson (stringprep_locale_charset): Improve docstring. 2003-08-01 Simon Josefsson Add. 2003-07-31 Simon Josefsson Replace gnudist with gnuftp. Add. Encode -u output in locale charset, suggested by Adam M. Costello. 2003-07-11 Simon Josefsson Rewrite to get LGPL code. Revert, to get LGPL code. Install but don't distribute idn-int.h. *** empty log message *** Dist m4's. Replace AC_REPLACE_OBJ with gnulib. Bump versions. Add. Use BUILT_SOURCES for idn_cmd.* and idn-int.h, and don't include idn-int.h in the distribution. 2003-07-08 Simon Josefsson Add. Look in sys/types.h too, for cygwin. 2003-07-06 Simon Josefsson Don't use () when talking about the name of a function. 2003-07-04 Simon Josefsson *** empty log message *** Version 0.2.1. Create idn_cmd.* in srcdir. Add. Bump versions. Add. Fix last commit. Add. Handle empty labels, tiny patch based on suggestion by Marcos Sanz/Denic . 2003-07-02 Simon Josefsson Add. Ignore .cvs*. Add legal information to ChangeLog. Add. Add. Indent. (stringprep_convert): Use ICONV_CONST. Tiny patch suggested by Robert Norris . Add. 2003-06-24 Simon Josefsson Gengetopt 2.10 or later is required. Don't distclean idn_cmd.*, just maintainer-clean them. 2003-06-19 Simon Josefsson *** empty log message *** Version 0.2.0. Distclean idn-int.h (really!). Install and distclean idn-int.h properly. Distclean idn-int.h. Remove idn-int.h. Add woody armv4l. Bump so version. Tested on debian-sparc64. Ignore idn-int.h. Build e.g. idn before doc/idn.1 is built. GTK-DOC doesn't like enum return types. Add. Copy manual from right place. Add. *** empty log message *** Remove obsolete test (we break backwards compatibility). Fix. 2003-06-18 Simon Josefsson Indent. Fix typo. Not needed (new API backwards compatible). Use uint32_t instead of unsigned long. Fix. Revert to RFC, but use uint32_t and size_t. Revert last change. Fixes. Remove old interfaces. Use modern API. Fix warnings. Use uint32_t instead of unsigned long. New functions idna_to_ascii_4i, idna_to_unicode_44i, idna_to_ascii_4z, idna_to_ascii_8z, idna_to_ascii_lz, idna_to_unicode_4z4z, idna_to_unicode_8z4z, idna_to_unicode_8z8z, idna_to_unicode_8zlz, idna_to_unicode_lzlz. Fix. Fix. Include stddef.h and idn-int.h. Add IDNA flags. Add new IDNA entry points. Add. Bump version. Change unsigned long to uint32_t. Change unsigned long to uint32_t. Fix enum definitions. Remove inttypes/stdint, idn-int.h is used now. Add old API tests. *** empty log message *** Fix. Move manual to doc/. Don't use gdoc. Use uint32_t instead of unsigned long. Get m4's from m4/. Add tst_o*'s. Regenerate ChangeLog only for releases. Include internal.h for uint32_t and use it. Change unsigned long to uint32_t. Use enum punycode_status return type. Sync with RFC (after indent). Include stddef and idn-int.h. Add RFC compatibility enum punycode_status elements. Change return type to enum punycode_status. Use uint32_t instead of unsigned long. *** empty log message *** New idn-int.h for portable fixed size integers. Create m4/ and move iconv.m4 to it. 2003-06-12 Simon Josefsson Remove GNU make specific idiom. 2003-06-07 Simon Josefsson *** empty log message *** Version 0.1.15. Add. Bump version. Remove DRAFT stuff (moved to separate branch). Add. Fix. Handle non-zero terminated inputs. Tiny patch suggested by Thiago Macieira. Add. 2003-06-04 Simon Josefsson Add. Check array bounds, tiny patch from Joe Hildebrand. 2003-06-02 Simon Josefsson *** empty log message *** 2003-05-28 Simon Josefsson Add. Add. 2003-05-10 Simon Josefsson *** empty log message *** Version 0.1.14. *** empty log message *** Add. Bind process-environment correctly. 2003-05-09 Simon Josefsson Copy doxygen docs. Unrealted, mistakenly added. Add. Add UTF-8 tests. Use process-environment instead of utility env. Default values of punycode-program, punycode-to-ascii-parameters, punycode-to-unicode-parameters changed, and punycode-environment added. Use separate error strings. Handle when idn is not installed. Use process-environment instead of utility env. Default values of idna-program, idna-to-ascii-parameters, idna-to-unicode-parameters changed, and idna-environment added. Use separate error strings. Update Emacs Lisp API. Fix toc. Add. 2003-05-07 Simon Josefsson Handle when idn is not installed. 2003-05-06 Simon Josefsson Add. 2003-04-23 Simon Josefsson Add. Fix NEWS entry of last release (API/ABI compatibility). Add. 2003-04-20 Simon Josefsson Add. 2003-04-16 Simon Josefsson Mention devices it runs on. 2003-03-28 Simon Josefsson Fix bad UTF-8. Self test for bad UTF-8. 2003-03-27 Simon Josefsson Text fixes. Fix -DDRAFT output. 2003-03-26 Simon Josefsson Dist contrib/doxygen/. Mention doxygen. Build contrib/doxygen/Doxyfile. Add unmodified doxygen configuration file, for future "diff"s. Use PDF hyperlinks. Add -doxygen. Add \mainpage for doxygen. Mention doxygen. Add doxygen template. 2003-03-23 Simon Josefsson Fix. Bump versions. Ignore draft.*xml in ChangeLog. Fix debug prints. 2003-03-22 Simon Josefsson Fix sec cons. Cosmetic fixes. Add IDNA stuff. Ack punycode. Fixes for -DDRAFT. Support -DDRAFT. Editorial fixes. Sync stringprep table. Fix references. 2003-03-13 Simon Josefsson *** empty log message *** Version 0.1.13. Sync ANNOUNCE. Bump so version. Add. Add lingos. Doc fix. Dist Java stuff. Doc fix. Mention Java API. Add java/. Add JAVA API proof of concept. Tested on more platforms. 2003-03-12 Simon Josefsson Fix mem leak. Fix mem leak. Ignore errors instead of using missing for gengetopt. Ignore errors instead of using missing for gengetopt. Bump version. Add platform. Spec update. 2003-03-10 Simon Josefsson Cvs2cl ignore contrib. Use cvs2cl's new --FSF. Text fix. Text fixes. Remove ASCII incompatible encodings. 2003-03-09 Simon Josefsson Use UTF-8 by default. Text fixes. Change ascii and sjis charsets. Don't reset data. Use iconv charsets. 2003-03-08 Simon Josefsson Cleanup. Fix text. Fix charset. Fix text. Make charset selection clearer. Fix HTML, based on Martin Duerst's suggestions. Use valid HTML. Add. Sync with RFC. Add. Replace drafts with RFCs. 2003-03-07 Simon Josefsson Mention more prereqs. Remove gtk-doc trigger for obsolete functions. Move appendix last. Cleanup @copying. Dist FAQ and contrib/web/idn.php. Add. Move todo list to TODO. Add, taken from README. 2003-03-06 Simon Josefsson ANNOUNCE sync. Cleanup. Update questions and answers. Moved faq from file README. Move faq to file FAQ. Add donation info. Update todo's. Security fix. Add forgotten 0.1.12 items. Typo. Add debug. Remove. *** empty log message *** Version 0.1.12. Remove stringprep_*.h. Document stringprep in idn. Add. Fix ace. Add errors. Support stringprep. Ignore gengetopt errors. Remove. Add -s and -p for stringprep. Mention stringprep API changes. Add stringprep_profile(). Cosmetic fix. Deprecate stringprep_*.h. Add. 2003-03-04 Simon Josefsson Fixup. 2003-03-02 Simon Josefsson Fix typo. Reorder. Add errors. Fix. Add examples. Fix ct. Add example. Add example. Fix. Fix. Examples. Fix typos. Move examples to bottom. Add examples. Bug reporting. Fixes. Charset fixes. Mention idn.php. Add. Add. 2003-03-01 Simon Josefsson Check for gengetopt. Use GENGETOPT. Add glibc 2.3.2. Bump version. Update to libc 2.3.2. 2003-02-28 Simon Josefsson Add. 2003-02-27 Simon Josefsson Copying conditions. Add SASLprep. Add SASL profile. Test SASL profile. Don't byte compile elisp. Cleanup EXTRA_DIST. Add copyright. Add. Don't ack self. 2003-02-26 Simon Josefsson Cleanup extra dist. Make idn.c depend on idn_cmd.*. Ignore getopt.h. Doc fix. Reorder acks. Add function and variable index. Fix TOC. *** empty log message *** Version 0.1.11. Distcheck fixes. Document Emacs API. *** empty log message *** Bump versions. Look for help2man. Build idn.1 man page. Document idn. Mention todo. Build idna.el. Elisp interface for IDNA. Add keywords. Fix doc. *** empty log message *** Add automake elisp check. Add punycode.el. Elisp interface for punycode. Fix gengetopt invocation. Print help on usage error. Minor cleanup. Fix package/version name. Shorten line <80ch. *** empty log message *** Add. Link with getopt if system doesn't have getopt_long(). Build idn.ggo. Build idn. Add command line option specification for idn.c. Add command line interface to library. 2003-02-25 Simon Josefsson Add. 2003-02-21 Simon Josefsson NFKC XMPP resourceprep. NFKC XMPP nodeprep. *** empty log message *** Version 0.1.10. Distribute libidn-stringprep-iscsi.html. Doc fix. Deprecate idna_*_to_ace() and idna_*ace_to_*(). Add idna_to_ascii_from_*() and idna_to_unicode_*_from_*(). Make release project independent. Add. Add iSCSI profile. Add. Bump versions. Add. Distribute contrib/*. Describe contents of contrib/. Add Stephane Bortzmeyer's python interface. Install punycode.h. Install idna.h, tiny patch from Stephane Bortzmeyer. 2003-02-20 Simon Josefsson *** empty log message *** Version 0.1.9. Include stringprep_plain.sgml. Add libidn-stringprep-plain.html. *** empty log message *** Fix last commit. Mention stringprep_plain.h. Add stringprep_plain. Don't case fold XMPP resources. Really fix XMPP definition. Add stringprep_plain.h. Bump versions. Sync ANNOUNCE. Mention SASL "plain". Add. Remove broken XMPP tests. Add SASL test. Add. Include stringprep_plain.h. Add stringprep_plain for SASL ANONYMOUS plain profile. Fix XMPP definition. New file. 2003-02-19 Simon Josefsson Add. Add. Don't normalize or map ASCII space for XMPP nodeprep. Tiny patch from Travis Shirk . 2003-02-18 Simon Josefsson Add. 2003-02-15 Simon Josefsson Make sure decoded punycode data is zero terminated. Fix memory leak. Fix memory leaks. Waste less memory. Fix memory leak. 2003-02-14 Simon Josefsson Fix. Fix typo. Fix maplen calculation. Fix gcc warnings. Change STRINGPREP_MAX_MAP_CHARS to 4 to waste less space. *** empty log message *** Version 0.1.8. GTK-DOC fix. Update port status. Use = instead of == as test operator. 2003-02-13 Simon Josefsson Use size_t for string lengths. Revert missing-noreturn fix. Use size_t for string lengths. Condition GTK-DOC and disable by default. *** empty log message *** Remove. Cleanup gtk-doc build. Zero terminate XMPP array. Bump version (both shared library and package). Add. Fix CFLAGS warnings. Fix CFLAGS warnings. Use official IDNA ACE prefix. 2003-02-12 Simon Josefsson Cleanups for including as appendix in draft. Add preliminary version. Don't optimize prohibited output tables (better trace logs). More self tests. More debug info. More debug output. Official results. *** empty log message *** Improve release target. Add release target. *** empty log message *** Version 0.1.7. Fix IDNA ACE prefix. Use official IDNA prefix. 2003-02-11 Simon Josefsson *** empty log message *** Add upload target. Use new IDNA ACE prefix. Update. Version 0.1.6. Add my computation. Chose IDNA prefix based on my computation. 2003-02-09 Simon Josefsson Fix header. Fix. Add. Indent. Don't run configure. Fix cvs2cl. 2003-02-07 Simon Josefsson Fix. Reorder. Reorder. Add build instructions. Fix. Generated. Add XMPP. Include xmpp. Add. Update (from ANNOUNCE). Use table C.8 for bidi prohibited instead of C.9. Support XMPP. Add. Fix. Name fix. 2003-02-05 Simon Josefsson Fix. 2003-01-31 Simon Josefsson Indent. Indent. Indent. 2003-01-30 Simon Josefsson Fix. Typo. 2003-01-29 Simon Josefsson Mention libc. 2003-01-28 Simon Josefsson Typo. Really ignore netdb.h. *** empty log message *** Release 0.1.5. Dist libc/*. Ignore netdb.h. Fix. Fix. Add. Libidn as libc add-on. *** empty log message *** Return new error code IDNA_ICONV_ERROR instead of crashing when character set conversion fails. Fix prototype. Move unused parameter unless LOCALE_WORKS. Work from within GNU Libc. 2003-01-27 Simon Josefsson Add ack. Point to THANKS for more acks. Fix possible memory corruption. Noncopyrightable patch from Waldo Bastian . *** empty log message *** 2003-01-20 Simon Josefsson Change bug email address. 2003-01-18 Simon Josefsson Generate ChangeLog with --no-times. 2003-01-15 Simon Josefsson *** empty log message *** Release 0.1.4. Fix functions on bad platforms. Add comment. Test step 5 in ToASCII. Fix ToASCII(). Fix copyright. Fix dir entry. Use automake's ps and pdf texinfo targets. Remove txt texinfo target. EXTRA_DIST lgplg.texi. Disable GTK-DOC for distcheck builds (doesn't work). Add uninstall target. Fix distcheck builds. Add acknowledgements, lgpl. *** empty log message *** Comment cleanup. *** empty log message *** Improve texinfo manual. Add doc. Add. Remove API documentation. *** empty log message *** Release 0.1.3. Add texinfo manual. Fix for texinfiscation. Doc fixes. 2003-01-08 Simon Josefsson Add. *** empty log message *** Release 0.1.2. Fix. IDNA high-level API. Add. *** empty log message *** Release 0.1.1. dist dummy.c. Run configure. Fix. Add templates. Don't parse internal.h Add ANNOUNCE text. Add. Doc fix. Doc fix. Add GTK-DOC documentation. Dummy GTK-DOC C file with documentation for #define macros. GTK-DOC fixes. Add GTK-DOC documentation. *** empty log message *** Add GTK-DOC documentation. Add API Reference Manual. 2003-01-05 Simon Josefsson *** empty log message *** Release 0.1.0. Fix ChangeLog in distcheck. Fix. Add. Check idna_to_unicode(). Fix. Check decoding. Add. 2003-01-04 Simon Josefsson Fix. 2003-01-03 Simon Josefsson Rename. Fix. Build IDNA. Rename. Fix. Add unfinished old IDNA stuff. Rename and fix. Rename. Add. Rename. Rename libstringprep.pc.in to libidn.pc.in. 2003-01-02 Simon Josefsson Use rfc3454.txt instead of draft-hoffman-stringprep-07.txt. 2002-12-27 Simon Josefsson Fix. 2002-12-26 Simon Josefsson Cleanup. Initiate name change for savannah project registration. Fixes. Fix. Add. Fix. Fix. 2002-12-19 Simon Josefsson Add punycode. Use "unsigned long" for Unicode code points. Copying condition fixes. Fixes. 2002-12-14 Simon Josefsson Make sure ChangeLog is regenerated. 2002-12-13 Simon Josefsson *** empty log message *** *** empty log message *** Release 0.0.8. Portability fixes. Link with libiconv. 2002-12-10 Simon Josefsson Don't use uint32_t in one odd place. *** empty log message *** Flawfinder. Fix. Remove comma on last enum entry. 2002-12-09 Simon Josefsson Fix memory leak. Suggest dmalloc. Use dmalloc. Fix memory leak when bidi fails. Check version. *** empty log message *** Release 0.0.7 (version 0.0.6 was abandoned). *** empty log message *** Release 0.0.6. Check all upper string case mapping. Apply table until it can't be applied any longer. 2002-12-07 Simon Josefsson Add nameprep vector. Cosmetic fix. Fix printf() format warnings. Fix bidi table for loop (affected only nameprep). *** empty log message *** Release 0.0.5. Add memset.c, an AC_LIBOBJ. An AC_LIBOBJ, from gnulib. Indent. Use new types. Fixes. Fix bidi code and add self tests. Clean up internal profiling definitions. 2002-12-06 Simon Josefsson Fix typo. *** empty log message *** Release 0.0.4. Add unassigned code point handling, and self test. Don't modify constant string during debug. 2002-12-05 Simon Josefsson *** empty log message *** Don't use *_fast(). Don't use $< (GNU specific). 2002-12-03 Simon Josefsson Portability fixes. Simplify the #include-mess. (NULL wasn't found on alpha-unknown-netbsd1.6) 2002-11-30 Simon Josefsson Add --enable-maintainer-mode. *** empty log message *** *** empty log message *** Release 0.0.3. Add replacement strdup.c for system's without it. Increment shared library version. Trim autoconf tests. Added copying conditions. Added more API documentation. Add copying conditions. Add copying conditions and public key. 2002-11-30 Simon Josefsson Export stringprep_utf8_to_unichar. Rename stringprep_utf8_to_ucs4_fast to stringprep_utf8_to_ucs4 to clean up API (old entry maintained for binary backwards compatibility though). Indent. Add sign make target. 2002-11-29 Simon Josefsson indent improve debugging output pass CFLAGS directly 2002-11-14 Simon Josefsson *** empty log message *** AC_PROG_RANLIB obsoleted by libtool. Use autoreconf. 2002-11-07 Simon Josefsson improve comment add dependency *** empty log message *** Release 0.0.2. Remove unused variable. Fix memory leak. Add NFKC self test. 2002-11-06 Simon Josefsson Cosmetic fixes. Add. Explain why GLIB is not used. *** empty log message *** Build fixes. Add example. Add toutf8.c. Check if OS has locale functions. Add -R to pkg-config info file. Moved profile variables to profile.c from header files. *** empty log message *** 2002-11-05 Simon Josefsson Initial version. libidn-1.38/ABOUT-NLS0000644000000000000000000026713314076273510011045 000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. 1.1 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. Installers may use special options at configuration time for changing the default behaviour. The command: ./configure --disable-nls will _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl' library and will decide to use it. If not, you may have to to use the `--with-libintl-prefix' option to tell `configure' where to look for it. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.2 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.3 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.4 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of June 2010. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca +--------------------------------------------------+ a2ps | [] [] | aegis | | ant-phone | | anubis | | aspell | [] [] | bash | | bfd | | bibshelf | [] | binutils | | bison | | bison-runtime | [] | bluez-pin | [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] [] | cpio | | cppi | | cpplib | [] | cryptsetup | | dfarc | | dialog | [] [] | dico | | diffutils | [] | dink | | doodle | | e2fsprogs | [] | enscript | [] | exif | | fetchmail | [] | findutils | [] | flex | [] | freedink | | gas | | gawk | [] [] | gcal | [] | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] [] | gettext-tools | [] [] | gip | [] | gjay | | gliv | [] | glunarclock | [] [] | gnubiff | | gnucash | [] | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | | gold | | gpe-aerial | | gpe-beam | | gpe-bluetooth | | gpe-calendar | | gpe-clock | [] | gpe-conf | | gpe-contacts | | gpe-edit | | gpe-filemanager | | gpe-go | | gpe-login | | gpe-ownerinfo | [] | gpe-package | | gpe-sketchbook | | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] | gpe-today | [] | gpe-todo | | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | [] [] | gsasl | | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] [] [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] [] | gutenprint | | hello | [] | help2man | | hylafax | | idutils | | indent | [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | | iso_639 | [] [] [] [] | iso_639_3 | | jwhois | | kbd | | keytouch | [] | keytouch-editor | | keytouch-keyboa... | [] | klavaro | [] | latrine | | ld | [] | leafpad | [] [] | libc | [] [] | libexif | () | libextractor | | libgnutls | | libgpewidget | | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | [] | libidn | | lifelines | | liferea | [] [] | lilypond | | linkdr | [] | lordsawar | | lprng | | lynx | [] | m4 | | mailfromd | | mailutils | | make | | man-db | | man-db-manpages | | minicom | | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | | psmisc | | pspp | [] | pwdutils | | radius | [] | recode | [] [] | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] [] | sed | [] [] | sharutils | [] [] | shishi | | skencil | | solfege | | solfege-manual | | soundtracker | | sp | | sysstat | | tar | [] | texinfo | | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] [] | wyslij-po | | xchat | [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] | +--------------------------------------------------+ af am an ar as ast az be be@latin bg bn_IN bs ca 6 0 1 2 3 19 1 10 3 28 3 1 38 crh cs da de el en en_GB en_ZA eo es et eu fa +-------------------------------------------------+ a2ps | [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] () | anubis | [] [] | aspell | [] [] [] [] [] | bash | [] [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] | bison | [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] [] [] | cflow | [] [] | clisp | [] [] [] [] | coreutils | [] [] [] [] | cpio | | cppi | | cpplib | [] [] [] | cryptsetup | [] | dfarc | [] [] [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] | dink | [] [] [] | doodle | [] | e2fsprogs | [] [] [] | enscript | [] [] [] | exif | () [] [] | fetchmail | [] [] () [] [] [] | findutils | [] [] [] | flex | [] [] | freedink | [] [] [] | gas | [] | gawk | [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] [] [] | gip | [] [] [] [] | gjay | [] | gliv | [] [] [] | glunarclock | [] [] | gnubiff | () | gnucash | [] () () () () | gnuedu | [] [] | gnulib | [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] | gpe-aerial | [] [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] [] [] | gpe-edit | [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] () [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] | grub | [] [] | gsasl | [] | gss | | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] () [] | gtkam | [] [] () [] [] | gtkorphan | [] [] [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] [] [] | hello | [] [] [] [] | help2man | [] | hylafax | [] [] | idutils | [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] [] [] [] () [] [] [] () | iso_3166_2 | () | iso_4217 | [] [] [] () [] [] | iso_639 | [] [] [] [] () [] [] | iso_639_3 | [] | jwhois | [] | kbd | [] [] [] [] [] | keytouch | [] [] | keytouch-editor | [] [] | keytouch-keyboa... | [] | klavaro | [] [] [] [] | latrine | [] () | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | [] [] | libgphoto2 | [] () | libgphoto2_port | [] () [] | libgsasl | | libiconv | [] [] [] [] [] | libidn | [] [] [] | lifelines | [] () | liferea | [] [] [] [] [] | lilypond | [] [] [] | linkdr | [] [] [] | lordsawar | [] | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] [] | man-db | | man-db-manpages | | minicom | [] [] [] [] | mkisofs | | myserver | | nano | [] [] [] | opcodes | [] [] | parted | [] [] | pies | | popt | [] [] [] [] [] | psmisc | [] [] [] | pspp | [] | pwdutils | [] | radius | [] | recode | [] [] [] [] [] [] | rosegarden | () () () | rpm | [] [] [] | rush | | sarg | | screem | | scrollkeeper | [] [] [] [] [] | sed | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | | skencil | [] () [] | solfege | [] [] [] | solfege-manual | [] [] | soundtracker | [] [] [] | sp | [] | sysstat | [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] | tin | [] [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] | vice | () () | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] | wyslij-po | | xchat | [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] | +-------------------------------------------------+ crh cs da de el en en_GB en_ZA eo es et eu fa 5 64 105 117 18 1 8 0 28 89 18 19 0 fi fr ga gl gu he hi hr hu hy id is it ja ka kn +----------------------------------------------------+ a2ps | [] [] [] [] | aegis | [] [] | ant-phone | [] [] | anubis | [] [] [] [] | aspell | [] [] [] [] | bash | [] [] [] [] | bfd | [] [] [] | bibshelf | [] [] [] [] [] | binutils | [] [] [] | bison | [] [] [] [] | bison-runtime | [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] | cflow | [] [] [] | clisp | [] | coreutils | [] [] [] [] [] | cpio | [] [] [] [] | cppi | [] [] | cpplib | [] [] [] | cryptsetup | [] [] [] | dfarc | [] [] [] | dialog | [] [] [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] [] [] [] | dink | [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] | freedink | [] [] [] | gas | [] [] | gawk | [] [] [] [] () [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] [] [] | gjay | [] | gliv | [] () | glunarclock | [] [] [] [] | gnubiff | () [] () | gnucash | () () () () () [] | gnuedu | [] [] | gnulib | [] [] [] [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] [] | gpe-aerial | [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] [] [] | gpe-calendar | [] [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] [] | gpe-go | [] [] [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] [] | grub | [] [] [] [] | gsasl | [] [] [] [] [] | gss | [] [] [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] [] | gtkorphan | [] [] [] | gtkspell | [] [] [] [] [] [] [] [] [] | gutenprint | [] [] [] [] | hello | [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | () [] [] [] | iso_4217 | [] () [] [] [] [] | iso_639 | [] () [] [] [] [] [] [] [] | iso_639_3 | () [] [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] [] [] [] | keytouch-editor | [] [] [] [] [] | keytouch-keyboa... | [] [] [] [] [] | klavaro | [] [] | latrine | [] [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] [] () | libc | [] [] [] [] [] | libexif | [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] [] | libidn | [] [] [] [] | lifelines | () | liferea | [] [] [] [] | lilypond | [] [] | linkdr | [] [] [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] [] [] | m4 | [] [] [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] [] | man-db | [] [] | man-db-manpages | [] | minicom | [] [] [] [] [] | mkisofs | [] [] [] [] | myserver | | nano | [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pies | | popt | [] [] [] [] [] [] [] [] [] | psmisc | [] [] [] | pspp | | pwdutils | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () () () () | rpm | [] [] | rush | | sarg | [] | screem | [] [] | scrollkeeper | [] [] [] [] | sed | [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] | shishi | [] | skencil | [] | solfege | [] [] [] [] | solfege-manual | [] [] | soundtracker | [] [] | sp | [] () | sysstat | [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux-ng | [] [] [] [] [] [] | vice | () () () | vmm | [] | vorbis-tools | [] | wastesedge | () () | wdiff | [] | wget | [] [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] | +----------------------------------------------------+ fi fr ga gl gu he hi hr hu hy id is it ja ka kn 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne +-----------------------------------------------+ a2ps | [] | aegis | | ant-phone | | anubis | [] [] | aspell | [] | bash | | bfd | | bibshelf | [] [] | binutils | | bison | [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] | cpio | | cppi | | cpplib | | cryptsetup | | dfarc | [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] | dink | | doodle | | e2fsprogs | | enscript | | exif | [] | fetchmail | | findutils | | flex | | freedink | [] | gas | | gawk | | gcal | | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] | gettext-tools | [] | gip | [] [] | gjay | | gliv | | glunarclock | [] | gnubiff | | gnucash | () () () () | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | [] | gold | | gpe-aerial | [] | gpe-beam | [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] | gpe-timesheet | [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | | gsasl | | gss | | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | | gtick | | gtkam | [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | | hello | [] [] [] | help2man | | hylafax | | idutils | | indent | | iso_15924 | [] [] | iso_3166 | [] [] () [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] | iso_639 | [] [] | iso_639_3 | [] | jwhois | [] | kbd | | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | klavaro | [] | latrine | [] | ld | | leafpad | [] [] [] | libc | [] | libexif | | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | | libidn | | lifelines | | liferea | | lilypond | | linkdr | | lordsawar | | lprng | | lynx | | m4 | | mailfromd | | mailutils | | make | [] | man-db | | man-db-manpages | | minicom | [] | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | [] [] [] | psmisc | | pspp | | pwdutils | | radius | | recode | | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] | sed | | sharutils | | shishi | | skencil | | solfege | [] | solfege-manual | | soundtracker | | sp | | sysstat | [] | tar | [] | texinfo | [] | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] | wyslij-po | | xchat | [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +-----------------------------------------------+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr +---------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] [] | anubis | [] [] [] | aspell | [] [] [] [] [] | bash | [] [] | bfd | [] | bibshelf | [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] () | buzztard | [] [] | cflow | [] | clisp | [] [] | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cppi | [] | cpplib | [] | cryptsetup | [] | dfarc | [] | dialog | [] [] [] [] | dico | [] | diffutils | [] [] [] [] [] [] | dink | () | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | exif | [] [] [] () [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] [] | freedink | [] [] | gas | | gawk | [] [] [] [] | gcal | | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] | gip | [] [] [] [] [] | gjay | | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] | gnubiff | [] () | gnucash | [] () () () | gnuedu | [] | gnulib | [] [] [] [] | gnunet | | gnunet-gtk | | gnutls | [] [] | gold | | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] [] | gphoto2 | [] [] [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | grub | [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] [] [] | gutenprint | [] [] | hello | [] [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] [] [] [] | iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | iso_3166_2 | [] [] [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] [] [] | keytouch-editor | [] [] [] | keytouch-keyboa... | [] [] [] | klavaro | [] [] | latrine | [] [] | ld | | leafpad | [] [] [] [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] | libgphoto2_port | [] [] [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] | lifelines | [] [] | liferea | [] [] [] [] [] () () [] | lilypond | [] | linkdr | [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] | make | [] [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | | nano | [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | pies | [] | popt | [] [] [] [] | psmisc | [] [] [] | pspp | [] [] | pwdutils | [] | radius | [] [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () | rpm | [] [] [] | rush | [] [] | sarg | | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] [] [] [] | solfege-manual | [] [] [] | soundtracker | [] | sp | | sysstat | [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] [] | vice | [] | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +---------------------------------------------------+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW +---------------------------------------------------+ a2ps | [] [] [] [] [] | 27 aegis | [] | 9 ant-phone | [] [] [] [] | 9 anubis | [] [] [] [] | 15 aspell | [] [] [] | 20 bash | [] [] [] | 12 bfd | [] | 6 bibshelf | [] [] [] | 16 binutils | [] [] | 8 bison | [] [] | 12 bison-runtime | [] [] [] [] [] [] | 29 bluez-pin | [] [] [] [] [] [] [] [] | 37 bombono-dvd | [] | 4 buzztard | [] | 7 cflow | [] [] [] | 9 clisp | | 10 coreutils | [] [] [] [] | 22 cpio | [] [] [] [] [] [] | 13 cppi | [] [] | 5 cpplib | [] [] [] [] [] [] | 14 cryptsetup | [] [] | 7 dfarc | [] | 9 dialog | [] [] [] [] [] [] [] | 30 dico | [] | 2 diffutils | [] [] [] [] [] [] | 30 dink | | 4 doodle | [] [] | 7 e2fsprogs | [] [] [] | 11 enscript | [] [] [] [] | 17 exif | [] [] [] | 16 fetchmail | [] [] [] | 17 findutils | [] [] [] [] [] | 20 flex | [] [] [] [] | 15 freedink | [] | 10 gas | [] | 4 gawk | [] [] [] [] | 18 gcal | [] [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] [] | 34 gettext-runtime | [] [] [] [] [] [] [] | 29 gettext-tools | [] [] [] [] [] [] | 22 gip | [] [] [] [] | 22 gjay | [] | 3 gliv | [] [] [] | 14 glunarclock | [] [] [] [] [] | 19 gnubiff | [] [] | 4 gnucash | () [] () [] () | 10 gnuedu | [] [] | 7 gnulib | [] [] [] [] | 16 gnunet | [] | 1 gnunet-gtk | [] [] [] | 5 gnutls | [] [] [] | 10 gold | [] | 4 gpe-aerial | [] [] [] | 18 gpe-beam | [] [] [] | 19 gpe-bluetooth | [] [] [] | 13 gpe-calendar | [] [] [] [] | 12 gpe-clock | [] [] [] [] [] | 28 gpe-conf | [] [] [] [] | 20 gpe-contacts | [] [] [] | 17 gpe-edit | [] [] [] | 12 gpe-filemanager | [] [] [] [] | 16 gpe-go | [] [] [] [] [] | 25 gpe-login | [] [] [] | 11 gpe-ownerinfo | [] [] [] [] [] | 25 gpe-package | [] [] [] | 13 gpe-sketchbook | [] [] [] | 20 gpe-su | [] [] [] [] [] | 30 gpe-taskmanager | [] [] [] [] [] | 29 gpe-timesheet | [] [] [] [] [] | 25 gpe-today | [] [] [] [] [] [] | 30 gpe-todo | [] [] [] [] | 17 gphoto2 | [] [] [] [] [] | 24 gprof | [] [] [] | 15 gpsdrive | [] [] [] | 11 gramadoir | [] [] [] | 11 grep | [] [] [] | 10 grub | [] [] [] | 14 gsasl | [] [] [] [] | 14 gss | [] [] [] | 11 gst-plugins-bad | [] [] [] [] | 26 gst-plugins-base | [] [] [] [] [] | 24 gst-plugins-good | [] [] [] [] | 24 gst-plugins-ugly | [] [] [] [] [] | 29 gstreamer | [] [] [] [] | 22 gtick | [] [] [] | 13 gtkam | [] [] [] | 20 gtkorphan | [] [] [] | 14 gtkspell | [] [] [] [] [] [] [] [] [] | 45 gutenprint | [] | 10 hello | [] [] [] [] [] [] | 21 help2man | [] [] | 7 hylafax | [] | 5 idutils | [] [] [] [] | 17 indent | [] [] [] [] [] [] | 30 iso_15924 | () [] () [] [] | 16 iso_3166 | [] [] () [] [] () [] [] [] () | 53 iso_3166_2 | () [] () [] | 9 iso_4217 | [] () [] [] () [] [] | 26 iso_639 | [] [] [] () [] () [] [] [] [] | 38 iso_639_3 | [] () | 8 jwhois | [] [] [] [] [] | 16 kbd | [] [] [] [] [] | 15 keytouch | [] [] [] | 16 keytouch-editor | [] [] [] | 14 keytouch-keyboa... | [] [] [] | 14 klavaro | [] | 11 latrine | [] [] [] | 10 ld | [] [] [] [] | 11 leafpad | [] [] [] [] [] [] | 33 libc | [] [] [] [] [] | 21 libexif | [] () | 7 libextractor | [] | 1 libgnutls | [] [] [] | 9 libgpewidget | [] [] [] | 14 libgpg-error | [] [] [] | 9 libgphoto2 | [] [] | 8 libgphoto2_port | [] [] [] [] | 14 libgsasl | [] [] [] | 13 libiconv | [] [] [] [] | 21 libidn | () [] [] | 11 lifelines | [] | 4 liferea | [] [] [] | 21 lilypond | [] | 7 linkdr | [] [] [] [] [] | 17 lordsawar | | 1 lprng | [] | 3 lynx | [] [] [] [] | 17 m4 | [] [] [] [] | 19 mailfromd | [] [] | 3 mailutils | [] | 5 make | [] [] [] [] | 21 man-db | [] [] [] | 8 man-db-manpages | | 4 minicom | [] [] | 16 mkisofs | [] [] | 9 myserver | | 0 nano | [] [] [] [] | 21 opcodes | [] [] [] | 11 parted | [] [] [] [] [] | 15 pies | [] [] | 3 popt | [] [] [] [] [] [] | 27 psmisc | [] [] | 11 pspp | | 4 pwdutils | [] [] | 6 radius | [] [] | 9 recode | [] [] [] [] | 28 rosegarden | () | 0 rpm | [] [] [] | 11 rush | [] [] | 4 sarg | | 1 screem | [] | 3 scrollkeeper | [] [] [] [] [] | 27 sed | [] [] [] [] [] | 30 sharutils | [] [] [] [] [] | 22 shishi | [] | 3 skencil | [] [] | 7 solfege | [] [] [] [] | 16 solfege-manual | [] | 8 soundtracker | [] [] [] | 9 sp | [] | 3 sysstat | [] [] | 15 tar | [] [] [] [] [] [] | 23 texinfo | [] [] [] [] [] | 17 tin | | 4 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux-ng | [] [] [] [] | 20 vice | () () | 1 vmm | [] | 4 vorbis-tools | [] | 6 wastesedge | | 2 wdiff | [] [] | 7 wget | [] [] [] [] [] | 26 wyslij-po | [] [] | 8 xchat | [] [] [] [] [] [] | 36 xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 xkeyboard-config | [] [] [] | 22 +---------------------------------------------------+ 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If June 2010 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.5 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. libidn-1.38/.version0000644000000000000000000000000514076273761011273 000000000000001.38 libidn-1.38/INSTALL0000644000000000000000000003662614005220510010630 00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command './configure && make && make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the 'README' file for instructions specific to this package. Some packages provide this 'INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a 'Makefile' in each directory of the package. It may also create one or more '.h' files containing system-dependent definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a file 'config.log' containing compiler output (useful mainly for debugging 'configure'). It can also use an optional file (typically called 'config.cache' and enabled with '--cache-file=config.cache' or simply '-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how 'configure' could check whether to do them, and mail diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at some point 'config.cache' contains results you don't want to keep, you may remove or edit it. The file 'configure.ac' (or 'configure.in') is used to create 'configure' by a program called 'autoconf'. You need 'configure.ac' if you want to change it or regenerate 'configure' using a newer version of 'autoconf'. The simplest way to compile this package is: 1. 'cd' to the directory containing the package's source code and type './configure' to configure the package for your system. Running 'configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type 'make' to compile the package. 3. Optionally, type 'make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type 'make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the 'make install' phase executed with root privileges. 5. Optionally, type 'make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior 'make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing 'make clean'. To also remove the files that 'configure' created (so you can compile the package for a different kind of computer), type 'make distclean'. There is also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type 'make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide 'make distcheck', which can by used by developers to test that all other targets like 'make install' and 'make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the 'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. You can give 'configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run the 'configure' script. 'configure' automatically checks for the source code in the directory that 'configure' is in and in '..'. This is known as a "VPATH" build. With a non-GNU 'make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use 'make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple '-arch' options to the compiler but only a single '-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the 'lipo' tool if you have problems. Installation Names ================== By default, 'make install' installs the package's commands under '/usr/local/bin', include files under '/usr/local/include', etc. You can specify an installation prefix other than '/usr/local' by giving 'configure' the option '--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option '--exec-prefix=PREFIX' to 'configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like '--bindir=DIR' to specify different values for particular kinds of files. Run 'configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of '${prefix}', so that specifying just '--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to 'configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the 'make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, 'make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of '${prefix}'. Any directories that were specified during 'configure', but not in terms of '${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the 'DESTDIR' variable. For example, 'make install DESTDIR=/alternate/directory' will prepend '/alternate/directory' before all installation names. The approach of 'DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of '${prefix}' at 'configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving 'configure' the option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. Some packages pay attention to '--enable-FEATURE' options to 'configure', where FEATURE indicates an optional part of the package. They may also pay attention to '--with-PACKAGE' options, where PACKAGE is something like 'gnu-as' or 'x' (for the X Window System). The 'README' should mention any '--enable-' and '--with-' options that the package recognizes. For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, you can use the 'configure' options '--x-includes=DIR' and '--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of 'make' will be. For these packages, running './configure --enable-silent-rules' sets the default to minimal output, which can be overridden with 'make V=1'; while running './configure --disable-silent-rules' sets the default to verbose, which can be overridden with 'make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX 'make' updates targets which have the same timestamps as their prerequisites, which makes it generally unusable when shipped generated files such as 'configure' are involved. Use GNU 'make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its '' header file. The option '-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put '/usr/ucb' early in your 'PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in '/usr/bin'. So, if you need '/usr/ucb' in your 'PATH', put it _after_ '/usr/bin'. On Haiku, software installed for all users goes in '/boot/common', not '/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, 'configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the '--build=TYPE' option. TYPE can either be a short name for the system type, such as 'sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file 'config.sub' for the possible values of each field. If 'config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option '--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with '--host=TYPE'. Sharing Defaults ================ If you want to set default values for 'configure' scripts to share, you can create a site shell script called 'config.site' that gives default values for variables like 'CC', 'cache_file', and 'prefix'. 'configure' looks for 'PREFIX/share/config.site' if it exists, then 'PREFIX/etc/config.site' if it exists. Or, you can set the 'CONFIG_SITE' environment variable to the location of the site script. A warning: not all 'configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to 'configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified 'gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash 'configure' Invocation ====================== 'configure' recognizes the following options to control how it operates. '--help' '-h' Print a summary of all of the options to 'configure', and exit. '--help=short' '--help=recursive' Print a summary of the options unique to this package's 'configure', and exit. The 'short' variant lists options used only in the top level, while the 'recursive' variant lists options also present in any nested packages. '--version' '-V' Print the version of Autoconf used to generate the 'configure' script, and exit. '--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. '--config-cache' '-C' Alias for '--cache-file=config.cache'. '--quiet' '--silent' '-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). '--srcdir=DIR' Look for the package's source code in directory DIR. Usually 'configure' can determine that directory automatically. '--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. '--no-create' '-n' Run the configure checks, but stop before creating any output files. 'configure' also accepts some other, not widely useful, options. Run 'configure --help' for more details. libidn-1.38/cfg.mk0000644000000000000000000000763214076271517010707 00000000000000# Copyright (C) 2006-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . manual_title = Internationalized Domain Names Library old_NEWS_hash = b9048a5d608511b0dc69c0799ce3c52b bootstrap-tools = gnulib,autoconf,automake,libtoolize,make,makeinfo,help2man,gperf,gengetopt,gtkdocize,tar,gzip local-checks-to-skip = sc_prohibit_strcmp sc_prohibit_have_config_h \ sc_require_config_h sc_require_config_h_first \ sc_prohibit_HAVE_MBRTOWC sc_program_name sc_trailing_blank \ sc_GPL_version sc_immutable_NEWS \ sc_prohibit_gnu_make_extensions sc_codespell VC_LIST_ALWAYS_EXCLUDE_REGEX = \ ^(GNUmakefile|maint.mk|gtk-doc.make|m4/pkg.m4|m4/libtool.m4|doc/specifications|contrib/doxygen/Doxyfile|doc/fdl-1.3.texi|csharp/libidn.*suo|(lib/)?(gl|gltests|build-aux)/) # Explicit syntax-check exceptions. exclude_file_name_regexp--sc_bindtextdomain = ^examples/|libc/|tests/|fuzz/ exclude_file_name_regexp--sc_prohibit_atoi_atof = ^examples/example2.c$$ exclude_file_name_regexp--sc_copyright_check = ^doc/libidn.texi exclude_file_name_regexp--sc_useless_cpp_parens = ^lib/nfkc.c$$ exclude_file_name_regexp--sc_prohibit_strncpy = ^src/idn.c$$ exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^fuzz/libidn_.*fuzzer.(in|repro)/.*$$ exclude_file_name_regexp--sc_two_space_separator_in_usage = ^cfg.mk$$ exclude_file_name_regexp--sc_prohibit_always_true_header_tests = ^lib/toutf8.c$$ INDENT_SOURCES = -ppi 1 `find . -name '*.[ch]'|grep -v -e ^./gl/ -e ^./fuzz/ -e ^./gltests/ -e ^./lib/gl/ -e ^./lib/gltests/ -e '^./lib/\(gunibreak.h\|gunicomp.h\|gunidecomp.h\|rfc3454.c\|rfc3454.h\|tlds.c\)$$'` aximport: for f in m4/ax_*.m4; do \ wget -O $$f "https://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=$$f"; \ done review-diff: git diff `git describe --abbrev=0`.. \ | grep -v -e ^index -e '^diff --git' \ | filterdiff -p 1 -x 'build-aux/*' -x 'gl/*' -x 'gltests/*' -x 'lib/gl/*' -x 'lib/gltests/*' -x 'po/*' -x 'maint.mk' -x '.gitignore' -x '.x-sc*' -x ChangeLog -x GNUmakefile \ | less my-update-copyright: make update-copyright update-copyright-env='UPDATE_COPYRIGHT_USE_INTERVALS=1' make update-copyright update-copyright-env='UPDATE_COPYRIGHT_HOLDER="Simon Josefsson" UPDATE_COPYRIGHT_USE_INTERVALS=1' perl -pi -e "s/2002-20.. Simon Josefsson/2002-`(date +%Y)` Simon Josefsson/" doc/Makefile.am src/idn.c sc_codespell: @if `which codespell > /dev/null`; then \ codespell -L tim,ede,wich `git ls-files|egrep -v '^doc/specifications/.*|doc/gdoc|fuzz/libidn_(stringprep|toascii|tounicode)_fuzzer.in/.*$$'`; \ fi # Fuzz COVERAGE_CCOPTS ?= "-g --coverage" COVERAGE_OUT ?= doc/coverage fuzz-coverage: $(MAKE) $(AM_MAKEFLAGS) clean lcov --directory . --zerocounters $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) $(MAKE) -C fuzz $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check mkdir -p $(COVERAGE_OUT) lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info --capture lcov --remove $(COVERAGE_OUT)/$(PACKAGE).info '*/lib/gl/*' -o $(COVERAGE_OUT)/$(PACKAGE).info genhtml --output-directory $(COVERAGE_OUT) \ $(COVERAGE_OUT)/$(PACKAGE).info \ --highlight --frames --legend \ --title "$(PACKAGE_NAME)" @echo @echo "View fuzz coverage report with 'xdg-open $(COVERAGE_OUT)/index.html'" libidn-1.38/po/0000755000000000000000000000000014076274120010276 500000000000000libidn-1.38/po/quot.sed0000644000000000000000000000023114076273511011702 00000000000000s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g libidn-1.38/po/libidn.pot0000644000000000000000000001601014076273630012206 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: libidn 1.38\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" #: src/idn.c:198 #, c-format msgid "input error" msgstr "" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "" libidn-1.38/po/cs.gmo0000644000000000000000000002077314076273763011354 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mm~æ aó’UoèIXÌ¢%o•'¬Ô2çš-µ(ã# ;07l.¤-Ó\^)n˜#ª7Î8;?>{(ºã)ó<Z*w¢ «8Ì\0b“£.´ã! $ !C $e Š Ÿ ¾ × ç Gî ,6!/c!8“!Ì!ê!1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-23 20:30+02:00 Last-Translator: Petr Pisar Language-Team: Czech Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. --allow-unassigned PÅ™epne příznak IDNA AllowUnassigned (implicitnÄ› vypnut) --usestd3asciirules PÅ™epne příznak IDNA UseSTD3ASCIIRules (implicitnÄ› vypnut) --debug Vypíše ladicí informace --quiet Pracuje potichu --no-tld Nekontroluje Å™etÄ›zec podle pravidel dané TLD. Jen u --idna-to-ascii a --idna-to-unicode -h, --help Vypíše nápovÄ›du a skonÄí -V, --version Vypíše verzi a skonÄí -n, --nfkc Normalizuje Å™etÄ›zec podle Unicode v3.2 NFKC -p, --profile=ŘETÄšZEC Použije zadaný stringprep profil. Platné stringprep profily jsou: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep PÅ™ipraví Å™etÄ›zec podle nameprep profilu -d, --punycode-decode Dekóduje Punycode -e, --punycode-encode Kóduje do Punycode -a, --idna-to-ascii PÅ™evede do ACE podle IDNA (implicitní režim) -u, --idna-to-unicode PÅ™evede z ACE podle IDNA Nelze vyhradit paměťChyba pÅ™i pÅ™ekladu kódování znakůZnaková sada: %s Ordinární Äísla zakázaná vrcholovou doménouRozhraní ke knihovnÄ› internacionalizovaných (s národními znaky) doménových jmen pro prostÅ™edí příkazového řádku. VÅ¡echny Å™etÄ›zce jsou oÄekávány ve znakové sadÄ› upÅ™ednostňované vaším národním prostÅ™edím. Která sada to je, zjistíte pÅ™epínaÄem --debug. Jinou znakovou sadu můžete vnutit nastavením promÄ›nné prostÅ™edí CHARSET. Je-li tÅ™eba pracovat s řetÄ›zcem zaÄínající znakem „-“ (napÅ™. „-foo“), použijte „--“ pro oznaÄení konce vÅ¡ech parametrů (napÅ™. „idn --quiet -a -- -foo“). Povinné argumenty dlouhých pÅ™epínaÄů jsou rovněž povinné u odpovídajících krátkých pÅ™epínaÄů. Na vstupu rozporné příkazy pro smÄ›r textuChyba v definici profilu pro stringprepPříznak nesluÄitelný s profilemZakázaný úvodní nebo závÄ›reÄný spojovník („-“)Na vstupu zakázaná nepÅ™iÅ™azená ordinární ÄíslaVstup již obsahuje pÅ™edponu ACE („xn--“)Vstup nezaÄíná pÅ™edponou ACE („xn--“)IDN (internacionalizovaná doménová jména) pÅ™evádí ŘETÄšZCE nebo standardní vstup. Neplatný vstupChybnÄ› utvoÅ™ený obousmÄ›rný Å™etÄ›zecPostrádám vstupVe vstupu chybí vrcholová doménaZnak jiný než Äíslice/písmeno/spojovník na vstupuVýstup by byl příliÅ¡ dlouhý nebo příliÅ¡ krátkýVýstup by se neveÅ¡el do poskytnuté vyrovnávací pamÄ›tiNa vstupu zakázaná ordinární Äísla pro obousmÄ›rný textNa vstupu zakázaná ordinární ÄíslaPunycode selhalŘetÄ›zec není po ToASCII idempotentníŘetÄ›zec není po unicodové NFKC normalizaci idempotentníPříprava Å™etÄ›zce selhalaOmezení délky Å™etÄ›zce bylo pÅ™ekonánoÚspÄ›chSelhalo volání systému dlopenDalší informace získáte příkazem „%s --help“. PiÅ¡te po jednom vstupním Å™etÄ›zci na jednom řádku zakonÄeným znakem nového řádku. Unicodová normalizace selhala (vnitÅ™ní chyba)Neznámá chybaNeznámý profilPoužití: %s [PŘEPÃNAÄŒ]… [ŘETÄšZEC]… nelze pÅ™evést z %s do UTF-8nelze pÅ™evést z UCS-4 do UTF-8nelze pÅ™evést z UTF-8 do %snelze pÅ™evést z UTF-8 do UCS-4nebylo možné znormalizovat do NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %schyba na vstupumallocPouze jeden pÅ™epínaÄ z -s, -e, -d, -a, -u nebo -n smí být zadán.punycode_decode (dekódování Punycodu): %spunycode_encode (zakódování do Punycodu): %sstringprep_profile (profil pro přípravu Å™etÄ›zce): %stld_check_4z (pozice %lu): %stld_check_4z: %slibidn-1.38/po/zh_CN.po0000644000000000000000000002530114076273763011574 00000000000000# Simplified Chinese translation for libidn # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Meng Jie , 2005. # Ji ZhengYu , 2011, 2012 # Boyuan Yang <073plan@gmail.com>, 2020, 2021. msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2021-02-06 12:58-0500\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.4.2\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "æˆåŠŸ" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "预备字符串失败" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode 失败" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "è¾“å…¥ä¸­å‡ºçŽ°éžæ•°å­—/å­—æ¯/连字符" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "ä¸èƒ½ä½¿ç”¨å‡å·ï¼ˆ'-')作为起始或终止符" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "输出太大或太å°" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "输入未以 ACE å‰ç¼€ï¼ˆ'xn--')开头" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ToASCII ä¸­å­—ç¬¦ä¸²ä¸æ˜¯å¹‚等的" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "输入已ç»åŒ…å« ACE å‰ç¼€ï¼ˆ'xn--')" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "字符编ç è½¬æ¢é”™è¯¯" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "无法分é…内存" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "系统 dlopen 失败" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "未知错误" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Unicode NFKC æ­£è§„åŒ–è¿‡ç¨‹ä¸­å­—ç¬¦ä¸²ä¸æ˜¯å¹‚等的" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "无效输入" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "输入将溢出所æä¾›çš„缓冲区" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "字符串大å°è¶Šç•Œ" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "输入中ä¸èƒ½å‡ºçŽ°æœªèµ‹å€¼çš„ä»£ç ç‚¹" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "输入中ä¸èƒ½å‡ºçް代ç ç‚¹" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "输入中出现相互冲çªçš„åŒå‘属性" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "åŒå‘字符串格å¼é”™è¯¯" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "输入中ä¸èƒ½å‡ºçްåŒå‘的代ç ç‚¹" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Stringpref é…置文件定义出错" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "标识与é…置文件冲çª" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "未知的é…置文件" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Unicode 正规化失败(内部错误)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "é¡¶çº§åŸŸä¸æŽ¥å—代ç ç‚¹" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "输入缺失" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "输入中未å‘现顶级域" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "å°è¯•用‘%s --helpâ€™èŽ·å–æ›´å¤šä¿¡æ¯ã€‚\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "用法: %s [选项]... [字符串]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "字符串或是标准输入的国际化域å(IDN)转化。\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "国际化域å库的命令行界é¢ã€‚\n" "\n" "所有的字符串都将以您所在区域的最åˆé€‚的字符集进行编ç ã€‚\n" "使用 --debug å¯ä»¥æ‰¾å‡ºè¿™ä¸ªå­—符集。\n" "您å¯é€šè¿‡è®¾ç½®çŽ¯å¢ƒå˜é‡ CHARSET æ¥é‡è®¾è¿™ä¸€å­—符集。\n" "\n" "è¦æƒ³å¤„ç†ä»¥â€˜-’开始的字符串,如‘-foo’,请使用‘--â€™æ¥æ ‡è¯†\n" "傿•°ç»“æŸï¼Œä¾‹å¦‚:idn --quiet -a -- -foo\n" "\n" "é•¿é€‰é¡¹æ‰€å¿…éœ€çš„å‚æ•°å¯¹äºŽçŸ­é€‰é¡¹æ¥è¯´ä¹Ÿæ˜¯å¿…需的。\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help æ‰“å°æ­¤å¸®åŠ©å¹¶é€€å‡º\n" " -V, --version 打å°ç¨‹åºç‰ˆæœ¬å¹¶é€€å‡º\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep 按 nameprep é…置文件 准备字符串\n" " -d, --punycode-decode è§£ç  Punycode\n" " -e, --punycode-encode ç¼–ç  Punycode\n" " -a, --idna-to-ascii 按 IDNA 转æ¢ä¸º ACE (默认方å¼)\n" " -u, --idna-to-unicode 按 IDNA 从 ACE 转æ¢\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned åˆ‡æ¢ IDNA AllowUnassigned 标识(默认关闭)\n" " --usestd3asciirules åˆ‡æ¢ IDNA UseSTD3ASCIIRules 标识(默认关闭)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld 䏿Œ‰ TLD 指定的规则检查字符串\n" " 仅对 --idna-to-ascii å’Œ --idna-to-unicode 有效\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr " -n, --nfkc 按 Unicode v3.2 NFKC 正规化字符串\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=STRING 使用指定的 stringprep é…置文件æ¥ä»£æ›¿\n" " 有效的 stringprep é…置文件:Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug 打å°è°ƒè¯•ä¿¡æ¯\n" " --quiet å¤„ç†æ—¶ä¸æ˜¾ç¤ºä¿¡æ¯\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "åªèƒ½æŒ‡å®š -s, -e, -d, -a, -u 或是 -n 中的一个" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "字符集:%s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "输入时,æ¯ä¸ªå­—符串å•å ä¸€è¡Œã€‚\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "输入错误" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "无法将 %s 转为 UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "无法将 UTF-8 转为 UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile:%s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "无法将 UTF-8 转为 %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode:%s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "无法将 UCS-4 转为 UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z:%s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD):%s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (ä½ç½® %lu):%s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z:%s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z:%s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "ä¸èƒ½è¿›è¡Œ NFKC 标准化" #~ msgid "System iconv failed" #~ msgstr "系统 iconv 失败" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "å‘é€é”™è¯¯æŠ¥å‘Šè‡³ <%s>。å‘é€ç¿»è¯‘错误至 Chinese (simplified) \n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "输入[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "输出[%lu] = U+%04x\n" #~ msgid "tld[%lu] = U+%04x\n" #~ msgstr "tld[%lu] = U+%04x\n" libidn-1.38/po/it.po0000644000000000000000000002544414076273630011210 00000000000000# Italian messages for libidn. # Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Marco Colombo , 2004, 2007, 2008, 2011. msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2011-12-05 17:30+0000\n" "Last-Translator: Marco Colombo \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Successo" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Preparazione della stringa non riuscita" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode non riuscito" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Non-numero/lettera/trattino nell'input" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Segno meno (\"-\") iniziale o finale proibito" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "L'output sarebbe troppo grande o troppo piccolo" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "L'input non comincia con il prefisso ACE (\"xn--\")" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "La stringa non è idempotente per ToASCII" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "L'input contiene già il prefisso ACE (\"xn--\")" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Impossibile allocare memoria" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Chiamata di sistema dlopen non riuscita" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Errore sconosciuto" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "La stringa non è idempotente per la normalizzazione Unicode NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Input non valido" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "L'output eccederebbe il buffer fornito" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Limite di grandezza della stringa superato" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Codepoints non assegnati proibiti nell'input" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Codepoints proibiti nell'input" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Proprietà bidirezionali in conflitto nell'input" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Stringa bidirezionale malformata" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Codepoints bidirezionali proibiti nell'input" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Errore nella definizione del profilo stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Flag in conflitto con il profilo" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Profilo sconosciuto" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Normalizzazione Unicode non riuscita (errore interno)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Codepoints proibiti dal dominio di primo livello" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Input mancante" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nessun dominio di primo livello trovato nell'input" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Usare \"%s --help\" per maggiori informazioni.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uso: %s [OPZIONI]... [STRINGHE]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Converte STRINGHE (o lo standard input) in nomi di dominio " "internazionalizzato (IDN).\n" "\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Interfaccia per la libreria di nomi di dominio internazionalizzati.\n" "\n" "Si assume che tutte le stringhe siano codificate nel set di caratteri\n" "della localizzazione in uso. Usare \"--debug\" per scoprire quale sia tale " "set.\n" "Il set di caratteri in uso può essere cambiato impostando la variabile\n" "d'ambiente CHARSET.\n" "\n" "Per elaborare una stringa cha comincia con \"-\", per esempio \"-foo\", " "usare \"--\"\n" "per segnalare la fine dei parametri, come in \"idn --quiet -a -- -foo\".\n" "\n" "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle " "corte.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Stampa questo aiuto ed esce\n" " -V, --version Stampa la versione ed esce\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prepara la stringa secondo il profilo nameprep\n" " -d, --punycode-decode Decodifica Punycode\n" " -e, --punycode-encode Codifica Punycode\n" " -a, --idna-to-ascii Converti in ACE secondo IDNA (modalità " "predefinita)\n" " -u, --idna-to-unicode Converti da ACE secondo IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Attiva l'opzione IDNA AllowUnassigned\n" " --usestd3asciirules Attiva l'opzione IDNA UseSTD3ASCIIRules\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Non controllare le regole per TLD nelle stringhe\n" " Solo per --idna-to-ascii e --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalizza la stringa come Unicode v3.2 NFKC\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=STRINGA Usa il profilo stringprep indicato\n" " Validi profili stringprep sono: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Stampa le informazioni di debug\n" " --quiet Opera silenziosamente\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "può essere indicato solo uno tra -s, -e, -d, -a, -u e -n" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Set di caratteri \"%s\".\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Scrivere ogni stringa di input in una riga a sé, terminata da un carattere " "di newline.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "errore di input" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "impossibile convertire da %s a UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "impossibile convertire da UTF-8 a UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "impossibile convertire da UTF-8 a %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "impossibile convertire da UCS-4 a UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (posizione %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "impossibile effettuare la normalizzazione Unicode NFKC" #~ msgid "System iconv failed" #~ msgstr "Chiamata di sistema iconv non riuscita" libidn-1.38/po/it.gmo0000644000000000000000000001420214076273630011342 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 |I „ÆlK–¸mOH½-40Q/‚/² â,W0ˆ ™º2É&ü/#&S,z§Æ(Ü@'F*n™'¢WÊ5"Xk#$£'È$ð'6=t‰¨ÁÑ8Ø%9 Pq*-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2011-12-05 17:30+0000 Last-Translator: Marco Colombo Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. --allow-unassigned Attiva l'opzione IDNA AllowUnassigned --usestd3asciirules Attiva l'opzione IDNA UseSTD3ASCIIRules --debug Stampa le informazioni di debug --quiet Opera silenziosamente --no-tld Non controllare le regole per TLD nelle stringhe Solo per --idna-to-ascii e --idna-to-unicode -h, --help Stampa questo aiuto ed esce -V, --version Stampa la versione ed esce -n, --nfkc Normalizza la stringa come Unicode v3.2 NFKC -s, --stringprep Prepara la stringa secondo il profilo nameprep -d, --punycode-decode Decodifica Punycode -e, --punycode-encode Codifica Punycode -a, --idna-to-ascii Converti in ACE secondo IDNA (modalità predefinita) -u, --idna-to-unicode Converti da ACE secondo IDNA Impossibile allocare memoriaCodepoints proibiti dal dominio di primo livelloProprietà bidirezionali in conflitto nell'inputErrore nella definizione del profilo stringprepFlag in conflitto con il profiloCodepoints non assegnati proibiti nell'inputConverte STRINGHE (o lo standard input) in nomi di dominio internazionalizzato (IDN). Input non validoStringa bidirezionale malformataInput mancanteNessun dominio di primo livello trovato nell'inputNon-numero/lettera/trattino nell'inputL'output sarebbe troppo grande o troppo piccoloL'output eccederebbe il buffer fornitoCodepoints bidirezionali proibiti nell'inputCodepoints proibiti nell'inputPunycode non riuscitoLa stringa non è idempotente per ToASCIILa stringa non è idempotente per la normalizzazione Unicode NFKCPreparazione della stringa non riuscitaLimite di grandezza della stringa superatoSuccessoChiamata di sistema dlopen non riuscitaScrivere ogni stringa di input in una riga a sé, terminata da un carattere di newline. Normalizzazione Unicode non riuscita (errore interno)Errore sconosciutoProfilo sconosciutoUso: %s [OPZIONI]... [STRINGHE]... impossibile convertire da %s a UTF-8impossibile convertire da UCS-4 a UTF-8impossibile convertire da UTF-8 a %simpossibile convertire da UTF-8 a UCS-4impossibile effettuare la normalizzazione Unicode NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %serrore di inputmallocpuò essere indicato solo uno tra -s, -e, -d, -a, -u e -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (posizione %lu): %stld_check_4z: %slibidn-1.38/po/eo.po0000644000000000000000000002621514076273763011203 00000000000000# Esperanto translations for GNU libidn. # Copyright (C) 2012 - 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Tradukoj kiuj komencas per "##" estas mesaÄoj por erarspurado; # iliaj "msgid" devus malesti en ĉi tiu dosiero. # # Edmund GRIMLEY EVANS , 2004, 2005, 2007, 2008. # Benno Schulenberg , 2012. # Felipe Castro , 2020. msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-08-16 11:31-0300\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.3.1\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Sukceso" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Malsukcesis pretigo de signoĉeno" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Malsukcesis 'Punycode'" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Litero/necifero/streketo en enigo" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Malpermesita minuso ('-') ĉe komenco aÅ­ fino" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Eligo estus tro granda aÅ­ tro malgranda" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Enigo ne komenciÄas per ACE-prefikso ('xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Ĉeno ÅanÄiÄas ĉe dua apliko de 'ToASCII'" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Enigo jam havas ACE-prefikson ('xn--')" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Eraro pri signa enkodiga konverto" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Mankas sufiĉa memoro" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Malsukcesis sistemfunkcio 'dlopen()'" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Nekonata eraro" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Ĉeno ÅanÄiÄas ĉe dua apliko de Unikoda NFKC-normigo" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Nevalida enigo" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Eligo estus tro granda por donita bufro" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Limo de signoĉena grando transpasiÄis" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Malpermesita neatribuita kodero en enigo" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Malpermesita kodero en enigo" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Malkongruaj dudirektaj trajtoj en enigo" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Misformita dudirekta ĉeno" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Malpermesita dudirekta kodero en enigo" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Eraro en difino de ĉenopretig-profilo" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Flaga malkongruo kun profilo" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Nekonata profilo" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Malsukcesis Unikoda normigo (**interna programeraro**)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Koderoj kiuj malpermesiÄas de supera retregiono" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Mankanta enigo" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Neniu supera retregiono troviÄis en enigo" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Tajpu '%s --help' por pli da informoj.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uzmaniero: %s [OPCIO...] [ĈENO...]\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Konvertas ĈENO(j)n (aÅ­ ĉefenigujon) laÅ­ la internaciigitaj retnomaj " "reguloj.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Komandlinia interfaco al la biblioteko por internaciigitaj retnomoj.\n" "\n" "Ĉiuj ĉenoj estu koditaj per la preferata signaro de via lokaĵaro.\n" "Uzu --debug por eltrovi kiu Äi estas. Vi povas indiki alian\n" "signaron per la medi-variablo CHARSET.\n" "\n" "Por trakti ĉenon kiu komenciÄas per '-' (ekzemple '-foo'), uzu '--' por\n" "indiki la finon de la parametroj, kiel en: idn --quiet -a -- -foo\n" "\n" "Nepraj argumentoj por longaj opcioj ankaÅ­ nepras por la mallongaj.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help montri ĉi tiun helpon kaj eliri\n" " -V, --version montri programversion kaj eliri\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep pretigi ĉenon laÅ­ la profilo 'Nameprep'\n" " -d, --punycode-decode malkodi 'Punycode'\n" " -e, --punycode-encode kodi 'Punycode'\n" " -a, --idna-to-ascii konverti al ACE laÅ­ IDNA (la implicita reÄimo)\n" " -u, --idna-to-unicode konverti de ACE laÅ­ IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned enÅalti la IDNA-flagon 'AllowUnassigned'\n" " --usestd3asciirules enÅalti la IDNA-flagon 'UseSTD3ASCIIRules'\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld ne kontroli ĉenon pri TLD-specifaj reguloj;\n" " nur por '--idna-to-ascii' kaj '--idna-to-" "unicode'\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr " -n, --nfkc normigi signoĉenon laÅ­ Unikodo v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=NOMO Uzi indikitan profilon 'stringprep' anstataÅ­e\n" " Validaj profiloj 'stringprep': Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug montri informojn por helpi al erarspurado\n" " --quiet funkcii silente\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "nur unu el la opcioj '-s', '-e', '-d', '-a', '-u' aÅ­ '-n' povas esti indikata" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Signaro: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Tajpu ĉiun enigan ĉenon en propra linio, kun linifina signo ĉe la fino.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "enig-eraro" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "malsukcesis konverti de %s al UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "malsukcesis konverti de UTF-8 al UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "## stringprep_profile(): %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "malsukcesis konverti de UTF-8 al %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "## punycode_encode(): %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "mankas sufiĉa memoro" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "## punycode_decode(): %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "malsukcesis konverti de UCS-4 al UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "## idna_to_ascii_4z(): %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "## idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "## tld_check_4z (pozicio %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "## tld_check_4z(): %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "## idna_to_unicode_8z4z(): %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "malsukcesis fari NFKC-normigon" #~ msgid "System iconv failed" #~ msgstr "Malsukcesis sistemfunkcio 'iconv()'" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Raportu programmisojn al <%s>.\n" #~ "Raportu tradukerarojn al .\n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "enigo[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "eligo[%lu] = U+%04x\n" libidn-1.38/po/da.gmo0000644000000000000000000001422614076273630011320 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 £I šívˆŸÿiŸL Vs8,È&õ4;Mp¾Ïë#ý(!3J<~$»%à,?H#ˆ2¬ß!èK 2V ‰ •#£#Ç&ë#&6%]ƒ˜·Ðß?æ&:Ne…*-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.29 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2015-08-16 17:38+0100 Last-Translator: Joe Hansen Language-Team: Danish Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1) --allow-unassigned SlÃ¥ IDNA AllowUnassigned til/fra (standard fra) --usestd3asciirules SlÃ¥ IDNA UseSTD3ASCIIRules til/fra (standard fra) --debug Udskriv fejlsøgnings-information --quiet Ingen uddata under udførelse --no-tld Kontroller ikke tekststring for TLD-specifikke regler Gælder kun --idna-to-ascii og --idna-to-unicode -h, --help Udskriv hjælp og afslut -V, --version Udskriv version og afslut -n, --nfkc Normalisér tekststreng i.h.t. Unicode v3.2 NFKC -s, --stringprep Forbered tekststreng ifølge nameprep-profil -d, --punycode-decode Afkod Punycode -e, --punycode-encode Indkod Punycode -a, --idna-to-ascii Omdan til ACE ifølge IDNA (standardtilstand) -u, --idna-to-unicode Omdan fra ACE ifølge IDNA Kan ikke tildele hukommelseKodepunkter tillades ikke af domæne pÃ¥ øverste niveauKonflikter mellem tovejsegenskaber i inddataFejl i definition af stringprep-profilKonflikt mellem flag og profilDer er forbudte, ikke-tildelte kodepunkter i inddataInternationalized Domain Name (IDN) - omdan STRENGE, eller standardinddata. Ugyldige inddataMisdannet tovejstekststrengManglende inddataFandt ikke et top-domæne i inddataIkke-ciffer/bogstav/bindestreg i inddataMængden af uddata ville blive for stor eller lilleStørrelse pÃ¥ uddata ville overstige tildelt plads i bufferForbudte tovejskodepunkter i inddataDer er forbudte kodepunkter i inddataPunycode mislykkedesTekststreng er ikke idempotent under ToASCIITekststreng er ikke idempotent under Unicode NFKC-normaliseringDannelse af tekststreng mislykkedesGrænse for størrelse pÃ¥ tekststreng overskredetLykkedesSystemkald til dlopen mislykkedesIndtast hver streng pÃ¥ en særskilt linje, afsluttet med et nylinje-tegn. Normalisering af unicode mislykkedes (intern fejl)Ukendt fejlUkendt profilBrug: %s [TILVALG]... [STRENGE]... kunne ikke omdanne fra %s til UTF-8kunne ikke omdanne fra UCS-4 til UTF-8kunne ikke omdanne fra UTF-8 til %skunne ikke omdanne fra UTF-8 til UCS-4kunne ikke udføre NFKC-normaliseringidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sfejl i inddatamallocKun ét af argumenterne -s, -e, -d, -a, -u eller -n kan angivespunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %slibidn-1.38/po/Makefile.in.in0000644000000000000000000004155314076273511012703 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.19 GETTEXT_MACRO_VERSION = 0.19 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SED = @SED@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot POFILESDEPS_yes = $(POFILESDEPS_) POFILESDEPS_no = POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) DISTFILESDEPS_ = update-po DISTFILESDEPS_yes = $(DISTFILESDEPS_) DISTFILESDEPS_no = DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. CHECK_MACRO_VERSION = \ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot @$(CHECK_MACRO_VERSION) test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # The determination of whether the package xyz is a GNU one is based on the # heuristic whether some file in the top level directory mentions "GNU xyz". # If GNU 'find' is available, we avoid grepping through monster files. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed package_gnu="$(PACKAGE_GNU)"; \ test -n "$$package_gnu" || { \ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \ -size -10000000c -exec grep 'GNU @PACKAGE@' \ /dev/null '{}' ';' 2>/dev/null; \ else \ LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ fi; \ } | grep -v 'libtool:' >/dev/null; then \ package_gnu=yes; \ else \ package_gnu=no; \ fi; \ }; \ if test "$$package_gnu" = "yes"; then \ package_prefix='GNU '; \ else \ package_prefix=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_prefix}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(POFILESDEPS) @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/po/cs.po0000644000000000000000000002674714076273763011217 00000000000000# Czech translation for libidn. # Copyright (C) 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Petr Pisar , 2007, 2008, 2011, 2020. # msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-23 20:30+02:00\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "ÚspÄ›ch" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Příprava Å™etÄ›zce selhala" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode selhal" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Znak jiný než Äíslice/písmeno/spojovník na vstupu" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Zakázaný úvodní nebo závÄ›reÄný spojovník („-“)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Výstup by byl příliÅ¡ dlouhý nebo příliÅ¡ krátký" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Vstup nezaÄíná pÅ™edponou ACE („xn--“)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ŘetÄ›zec není po ToASCII idempotentní" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Vstup již obsahuje pÅ™edponu ACE („xn--“)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Chyba pÅ™i pÅ™ekladu kódování znaků" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nelze vyhradit paměť" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Selhalo volání systému dlopen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Neznámá chyba" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "ŘetÄ›zec není po unicodové NFKC normalizaci idempotentní" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Neplatný vstup" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Výstup by se neveÅ¡el do poskytnuté vyrovnávací pamÄ›ti" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Omezení délky Å™etÄ›zce bylo pÅ™ekonáno" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Na vstupu zakázaná nepÅ™iÅ™azená ordinární Äísla" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Na vstupu zakázaná ordinární Äísla" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Na vstupu rozporné příkazy pro smÄ›r textu" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "ChybnÄ› utvoÅ™ený obousmÄ›rný Å™etÄ›zec" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Na vstupu zakázaná ordinární Äísla pro obousmÄ›rný text" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Chyba v definici profilu pro stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Příznak nesluÄitelný s profilem" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Neznámý profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Unicodová normalizace selhala (vnitÅ™ní chyba)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Ordinární Äísla zakázaná vrcholovou doménou" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Postrádám vstup" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Ve vstupu chybí vrcholová doména" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Další informace získáte příkazem „%s --help“.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Použití: %s [PŘEPÃNAÄŒ]… [ŘETÄšZEC]…\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "IDN (internacionalizovaná doménová jména) pÅ™evádí ŘETÄšZCE nebo standardní " "vstup.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Rozhraní ke knihovnÄ› internacionalizovaných (s národními znaky) doménových\n" "jmen pro prostÅ™edí příkazového řádku.\n" "\n" "VÅ¡echny Å™etÄ›zce jsou oÄekávány ve znakové sadÄ› upÅ™ednostňované vaším\n" "národním prostÅ™edím. Která sada to je, zjistíte pÅ™epínaÄem --debug. Jinou\n" "znakovou sadu můžete vnutit nastavením promÄ›nné prostÅ™edí CHARSET.\n" "\n" "Je-li tÅ™eba pracovat s řetÄ›zcem zaÄínající znakem „-“ (napÅ™. „-foo“), " "použijte\n" "„--“ pro oznaÄení konce vÅ¡ech parametrů (napÅ™. „idn --quiet -a -- -foo“).\n" "\n" "Povinné argumenty dlouhých pÅ™epínaÄů jsou rovněž povinné u odpovídajících\n" "krátkých pÅ™epínaÄů.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Vypíše nápovÄ›du a skonÄí\n" " -V, --version Vypíše verzi a skonÄí\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep PÅ™ipraví Å™etÄ›zec podle nameprep profilu\n" " -d, --punycode-decode Dekóduje Punycode\n" " -e, --punycode-encode Kóduje do Punycode\n" " -a, --idna-to-ascii PÅ™evede do ACE podle IDNA (implicitní režim)\n" " -u, --idna-to-unicode PÅ™evede z ACE podle IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned PÅ™epne příznak IDNA AllowUnassigned (implicitnÄ›\n" " vypnut)\n" " --usestd3asciirules PÅ™epne příznak IDNA UseSTD3ASCIIRules " "(implicitnÄ›\n" " vypnut)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Nekontroluje Å™etÄ›zec podle pravidel dané TLD.\n" " Jen u --idna-to-ascii a --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalizuje Å™etÄ›zec podle Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=ŘETÄšZEC Použije zadaný stringprep profil.\n" " Platné stringprep profily jsou: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Vypíše ladicí informace\n" " --quiet Pracuje potichu\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Pouze jeden pÅ™epínaÄ z -s, -e, -d, -a, -u nebo -n smí být zadán." #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Znaková sada: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "PiÅ¡te po jednom vstupním Å™etÄ›zci na jednom řádku zakonÄeným znakem nového " "řádku.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "chyba na vstupu" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "nelze pÅ™evést z %s do UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "nelze pÅ™evést z UTF-8 do UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile (profil pro přípravu Å™etÄ›zce): %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "nelze pÅ™evést z UTF-8 do %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode (zakódování do Punycodu): %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode (dekódování Punycodu): %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "nelze pÅ™evést z UCS-4 do UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (pozice %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "nebylo možné znormalizovat do NFKC" #~ msgid "System iconv failed" #~ msgstr "Selhal systémový iconv" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Chyby programu hlaste na <%s> (pouze anglicky),\n" #~ "chyby pÅ™ekladu na (Äesky).\n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "vstup[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "výstup[%lu] = U+%04x\n" #~ msgid "tld[%lu] = U+%04x\n" #~ msgstr "vrcholová_doména[%lu] = U+%04x\n" #~ msgid "nfkc: %s" #~ msgstr "nfkc: %s" libidn-1.38/po/sr.po0000644000000000000000000003201214076273763011214 00000000000000# Serbian translation of libidn. # Copyright © 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Aleksandar Jelenak , 2004, 2005. # МироÑлав Ðиколић , 2012—2020. msgid "" msgstr "" "Project-Id-Version: libidn-1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-08-04 10:13+0200\n" "Last-Translator: МироÑлав Ðиколић \n" "Language-Team: Serbian <(nothing)>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Virtaal 0.7.1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "УÑпешно" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Ðије уÑпела припрема ниÑке" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Паникод није уÑпео" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Ðецифра/Ñлово/цртица у улазу" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Ðедозвољени водећи или завршни знак Ð¼Ð¸Ð½ÑƒÑ („-“)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Излаз би био превелик или премали" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Улаз не почиње ÐЦЕ префикÑом („xn--“)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ÐиÑка није иÑтомоћна под ТоÐСКРИ" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Улаз већ Ñадржи ÐЦЕ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ („xn--“)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Грешка претварања кодирања знакова" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Ðе могу да доделим меморију" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Длопен ÑиÑтема није уÑпео" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Ðепозната грешка" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "ÐиÑка није иÑтомоћна под нормализацијом Уникода ÐФКЦ" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "ÐеиÑправан улаз" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Излаз би премашио предвиђену величину бафера" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Премашено је ограничење величине ниÑке" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Ðедозвољене недодељене кодне тачке у улазу" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Забрањене кодне тачке у улазу" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Сукобљавајућа двоÑмерна ÑвојÑтва у улазу" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Лоша двоÑмерна ниÑка" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Забрањене двоÑмерне кодне тачке у улазу" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Грешка у одредници профила Ñтрингпреп" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Сукоб опција Ñа профилом" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Ðепознат профил" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "ÐеуÑпех Уникод нормализације (унутрашња грешка)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Кодне тачке забрањене доменом највишег нивоа" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "ÐедоÑтаје улаз" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Домен највишег нивоа није нађен у улазу" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Пробајте „%s --help“ за више информација.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Употреба: %s [ОПЦИЈÐ]... [ÐИСКЕ]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Интернационализовани назив домена (IDN) претвара ÐИСКЕ, или Ñтандардни " "улаз.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Сучеље линије наредби за библиотеку интернационализованог назива домена.\n" "\n" "Очекује Ñе да Ñу Ñве ниÑке кодиране у жељеном Ñкупу знакова коришћеном\n" "вашим локалитетом. Употребите „--debug“ да Ñазнате који је то Ñкуп " "знакова.\n" "Можете да препишете коришћени Ñкуп знакова подешавајући променљиву окружења " "СКУПЗÐÐКОВÐ.\n" "\n" "Да обрадите ниÑку која почиње Ñа „-“, на пример „-foo“, употребите „--“\n" "да назначите крај параметара, као у: „idn --quiet -a -- -foo“.\n" "\n" "Обавезни аргументи за дуге опције Ñу такође обавезни и за кратке опције.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help ИÑпиÑује помоћ и излази\n" " -V, --version ИÑпиÑује издање и излази\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Припрема ниÑку у Ñкладу Ñа профилом нејмпреп\n" " -d, --punycode-decode Декодира Паникод\n" " -e, --punycode-encode Кодира Паникод\n" " -a, --idna-to-ascii Претвара у ÐЦЕ у Ñкладу Ñа ИДÐÐ-ом (оÑновни " "режим)\n" " -u, --idna-to-unicode Претвара из ÐЦЕ-а у Ñкладу Ñа ИДÐÐ-ом\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Пребацује опцију ИДÐРДозволи недодељене (унапред " "иÑкључено)\n" " --usestd3asciirules Пребацује опцију ИДÐРКориÑтиСТД3ÐСКРИ правила " "(унапред иÑкључено)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Ðе проверава ниÑку за ТЛД поÑебним правилима\n" " Само за --idna-to-ascii и --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Ðормализује ниÑку у Ñкладу Ñа Уникодом в3.2 ÐФКЦ\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=ÐИСКРУмеÑто тога кориÑти одређени профил Ñтрингпрепа\n" " ИÑправни Ñтрингпреп профили: „Nameprep“,\n" " „iSCSI“, „Nodeprep“, „Resourceprep“, „trace“, " "„SASLprep“\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug ИÑпиÑује податке за уклањање грешака\n" " --quiet Ðечујна операција\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "може бити задато Ñамо једно од: -s, -e, -d, -a или -u" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Скуп знакова: „%s“\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Куцајте улазну ниÑку на заÑебној линији, завршавајући знаком за нови ред.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "улазна грешка" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "не могу да претворим из „%s“ у УТФ-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "не могу да претворим из УТФ-8 у УЦС-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "не могу да претворим из УТФ-8 у %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "додела меморије" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "не могу да претворим из УЦС-4 у УТФ-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (положај %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "не могу да урадим нормализацију ÐФКЦ-а" #~ msgid "System iconv failed" #~ msgstr "Иконв ÑиÑтема није уÑпео" #~ msgid "input[%d] = U+%04x\n" #~ msgstr "улаз[%d] = U+%04x\n" #~ msgid "output[%d] = U+%04x\n" #~ msgstr "излаз[%d] = U+%04x\n" #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" libidn-1.38/po/en@boldquot.header0000644000000000000000000000247114076273511013653 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # libidn-1.38/po/boldquot.sed0000644000000000000000000000033114076273511012544 00000000000000s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g s/“/“/g s/â€/â€/g s/‘/‘/g s/’/’/g libidn-1.38/po/remove-potcdate.sin0000644000000000000000000000066014076273511014034 00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } libidn-1.38/po/es.po0000644000000000000000000002164714076273630011204 00000000000000# Spanish translationn for libidn 1.29 # Copyright (C) 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Francisco Javier Serrador , 2018. # msgid "" msgstr "" "Project-Id-Version: libidn 1.29\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2018-04-28 13:46+0200\n" "Last-Translator: Francisco Javier Serrador \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.0.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Conseguido" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 #, fuzzy msgid "String preparation failed" msgstr "KernSin está cerrado hasta que los preparativos sean completados." #: lib/strerror-idna.c:90 #, fuzzy msgid "Punycode failed" msgstr " fallado - " #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "" #: lib/strerror-idna.c:102 #, fuzzy msgid "Output would be too large or too small" msgstr "número muy largo o muy pequeño" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 #, fuzzy msgid "Cannot allocate memory" msgstr "No puede asignar memoria para coincidente proc: %s\n" #: lib/strerror-idna.c:126 #, fuzzy msgid "System dlopen failed" msgstr "Marca el DSO como no disponible para dlopen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 #, fuzzy msgid "Unknown error" msgstr "error desconocido" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" #: lib/strerror-punycode.c:70 #, fuzzy msgid "Invalid input" msgstr "entrada inválida" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "" #: lib/strerror-punycode.c:78 #, fuzzy msgid "String size limit exceeded" msgstr "Excedido el límite de tamaño de fichero" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "" #: lib/strerror-stringprep.c:115 #, fuzzy msgid "Error in stringprep profile definition" msgstr "se envía el perfil a la salida común de error" #: lib/strerror-stringprep.c:119 #, fuzzy msgid "Flag conflict with profile" msgstr "conflicto de recurso (opción C)" #: lib/strerror-stringprep.c:123 #, fuzzy msgid "Unknown profile" msgstr "Alarma (entorno)" #: lib/strerror-stringprep.c:131 #, fuzzy msgid "Unicode normalization failed (internal error)" msgstr "error interno: fallaron los operandos lookup/get" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "" #: lib/strerror-tld.c:76 #, fuzzy msgid "Missing input" msgstr "" "\n" " -a NUMFICH también escribe las líneas no emparejables del fichero\n" " NUMFICH, donde NUMFICH es 1 o 2, correspondiendo a\n" " FICHERO1 o FICHERO2\n" " -e VACÃO sustituye los campos inexistentes por VACÃO\n" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Pruebe `%s --help' para más información.\n" #: src/idn.c:69 #, fuzzy, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Modo de empleo: %s [OPCIÓN]... DIRECTORIO...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Escribe ayuda y termina.\n" " -V, --version Escribe versión y termina.\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Conjunto de caracteres:" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" #: src/idn.c:198 #, fuzzy, c-format msgid "input error" msgstr "Error de entrada: Espacio maximo debe ser mayor que el minimo" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, fuzzy, c-format msgid "could not convert from %s to UTF-8" msgstr "" "[No puede convertir conjuntos de caracteres (desde «%s» hasta «utf-8»)]]" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, fuzzy, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "Convertir de Unix UTF-8 a Windows UTF-8 sin una BOM:" #: src/idn.c:234 #, fuzzy, c-format msgid "stringprep_profile: %s" msgstr "\t# perfil de gawk, creado %s\n" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, fuzzy, c-format msgid "could not convert from UTF-8 to %s" msgstr "" "[No puede convertir conjuntos de caracteres (desde «%s» hasta «utf-8»)]]" #: src/idn.c:293 #, fuzzy, c-format msgid "punycode_encode: %s" msgstr "Codificar" #: src/idn.c:315 #, fuzzy, c-format msgid "malloc" msgstr "malloc: falló la aserción: %s\n" #: src/idn.c:321 #, fuzzy, c-format msgid "punycode_decode: %s" msgstr "fallado para decodificar %s\n" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, fuzzy, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "Convertir de Unix UTF-8 a Windows UTF-8 sin una BOM:" #: src/idn.c:379 #, fuzzy, c-format msgid "idna_to_ascii_4z: %s" msgstr "" "\n" " %s: " #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, fuzzy, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "" "\n" " %s: " #: src/idn.c:538 #, fuzzy, c-format msgid "could not do NFKC normalization" msgstr "No hay nada que pudieras hacer.." #, fuzzy #~ msgid "System iconv failed" #~ msgstr "falló iconv sobre %s.\n" libidn-1.38/po/ro.gmo0000644000000000000000000000127514076273631011355 00000000000000Þ•,<POQ¡XdType each input string on a line by itself, terminated by a newline character. Project-Id-Version: libidn 0.4.1 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2004-04-23 12:00-0500 Last-Translator: Laurentiu Buzdugan Language-Team: Romanian Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); Scrieþi fiecare ºir de intrare pe o singurã linie, terminatã cu un caracter linie-nouã. libidn-1.38/po/fi.po0000644000000000000000000003044514076273630011167 00000000000000# translation of libidn-1.9.pot to Finnish # Copyright © 2008, 2009, 2011 Free Software Foundation, Inc. # Copyright © 2007 Simon Josefsson # This file is distributed under the same license as the libidn package. # Jorma Karvonen , 2008. # Jorma Karvonen , 2009-2011. # msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2011-04-30 15:25+0200\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: KBabel 1.11.4\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Onnistui" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Merkkijonon valmistelu ei onnistunut" # Wikipedia: Punycode is a computer programming encoding syntax by which a Unicode string of characters can be translated into the more-limited character set permitted in network host names. #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode-koodaus ei onnistunut" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Syötteessä on merkki, joka ei ole numero/kirjain/tavuviiva" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Ei saa alkaa tai loppua miinusmerkillä (â€-â€)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Tuloste olisi liian suuri tai liian pieni" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "Syöte ei ala ACE-prefiksillä (â€xn--â€)" # Yksinkertaisesti selitettynä idempotentti on matemaattinen termi, joka tarkoittaa, että jonkun toiminnon tulos on aina sama kun toiminto toistetaan kahdesti (tai useammin). #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Merkkijono ei ole idempotentti ToASCII-toiminnon aikana" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "Syöte jo sisältää ACE-prefiksin (â€xn--â€)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Ei voida varata muistia" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Järjestelmän dlopen-käsky ei onnistunut" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Tuntematon virhe" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Merkkijono ei ole idempotentti Unicode NFKC-normeerauksen aikana" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Virheellinen syöte" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Tuloste ylittäisi varatun puskurin tilan" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Merkkijonon koko ylitettiin" # Code point is any value in the Unicode codespace; that is, the range of integers from 0 to hexadecimal 10FFFF. #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Kiellettyjä määräämättömiä code points-skalaariarvoja syötteessä" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Kiellettyjä code points-skalaariarvoja syötteessä" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Ristiriitaisia kaksisuuntaisia ominaisuuksia syötteessä" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Väärän muotoinen kaksisuuntainen merkkijono" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Kiellettyjä kaksisuuntaisia code points-skalaariarvoja syötteessä" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Virhe strngprep-profiilimäärittelyssä" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Lippu ristiriidassa profiilin kanssa" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Tuntematon profiili" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Unicode-normeeraus ei onnistunut (sisäinen virhe)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Code points-skalaariarvot kiellettyjä ylätason toimialueessa" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Syöte puuttuu" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Syötteestä ei löytynyt ylätason toimialuetta" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Lisätietoja käskyllä â€%s --helpâ€.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Käyttö: %s [VALITSIN]... [MERKKIJONOT]...\n" # convert -> converts ? #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Kansainvälistetty verkkotunnus (IDN) muuntaa MERKKIJONOT tai vakiosyötteen.\n" "\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Komentorivirajapinta kansainvälistettyyn verkkotunnuskirjastoon.\n" "\n" "Kaikki merkkijonot on otaksuttu koodatun parhaimpana pidetyllä merkistöllä,\n" "jota locale-asetuksesi käyttää. Käyttämällä valitsinta â€--debug†saat\n" "selville, mikä merkistö se on. Voit korvata käytetyn merkistön asettamalla\n" "ympäristömuuttujan CHARSET.\n" "\n" "Merkillä â€-†alkava merkkijono, esimerkiksi â€-fooâ€, prosessoidaan " "käyttämällä\n" "â€--â€-merkkejä signaloimaan parametrien loppumista, kuten käskyssä\n" "â€idn --quiet -a -- -fooâ€.\n" "\n" "Pakolliset argumentit pitkille valitsimille ovat pakollisia myös lyhyille\n" "valitsimille.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Tulosta ohje ja poistu\n" " -V, --version Tulosta versio ja poistu\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Valmistele merkkijono â€nameprepâ€-profiilin " "mukaisesti\n" " -d, --punycode-decode Pura Punycode-koodaus\n" " -e, --punycode-encode Koodaa Punycode-koodauksella\n" " -a, --idna-to-ascii Muunna ACE-koodiksi IDNA-koodista (oletustila)\n" " -u, --idna-to-unicode Muunna ACE-koodista IDNA-koodiksi\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Vaihda â€IDNA AllowUnassignedâ€-lipun tilaa (oletus " "off)\n" " --usestd3asciirules Vaihda â€IDNA UseSTD3ASCIIRulesâ€-lipun tilaa " "(oletus off)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Älä etsi merkkijonosta TLD-kohtaisia sääntöjä\n" " Vain valitsimille â€--idna-to-ascii†ja â€--idna-" "to-unicodeâ€\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normeeraa merkkijono â€Unicode v3.2 NFKCâ€-" "koodauksen mukaisesti\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=MERKKIJONO Käytä määritellyn â€stringprepâ€-profiilin sijasta\n" " Voimassa olevat â€stringprepâ€-profiilit: " "â€Nameprepâ€,\n" " â€iSCSIâ€, â€Nodeprepâ€, â€Resourceprepâ€, \n" " â€traceâ€, â€SASLprepâ€\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Tulosta virheenjäljitystiedot\n" " --quiet Hiljainen toiminta\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "vain yksi valitsimista -s, -e, -d, -a, -u tai -n voidaan määritellä" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Merkistö â€%sâ€\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Kirjoita jokainen merkkijono omalle rivilleen ja lopeta rivi " "rivinvaihdolla.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "syötevirhe" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "ei voitu muuntaa %s-merkistöstä UTF-8-merkistöön" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "ei voitu muuntaa UTF-8-merkistöstä UCS-4-merkistöön" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "ei voitu muuntaa UTF-8-merkistöstä %s-merkistöön." #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc-käsky" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "ei voitu muuntaa UCS-4-merkistöstä UTF-8-merkistöön." #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (sijainti %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "ei voitu tehdä NFKC-normeerausta." #~ msgid "System iconv failed" #~ msgstr "Järjestelmän iconv-käsky ei onnistunut" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Ilmoita virheistä osoitteeseen <%s>.\n" #~ "Ilmoita käännösvirheistä osoitteeseen .\n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "syöte[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "tuloste[%lu] = U+%04x\n" #~ msgid "tld[%lu] = U+%04x\n" #~ msgstr "tld[%lu] = U+%04x\n" libidn-1.38/po/Rules-quot0000644000000000000000000000416514076273511012232 00000000000000# This file, Rules-quot, can be copied and used freely without restrictions. # Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ ;; \ *) \ $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ ;; \ esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ ; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header libidn-1.38/po/nl.gmo0000644000000000000000000002056614076273763011360 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mm¯~Ž.k½š)wÄO<åŒ9r ¬(Í ö/º4?ï*/Z-q2Ÿ,Ò3ÿ…3¹-Êø$ ;0'l2”<Ç"'Q?g‘&ù 6%=&cLŠ4× (,&U)|&¦)Í%÷ !7 Y w ‚ L£ ð  !"!!>!`!1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn-1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-24 10:34+0200 Last-Translator: Benno Schulenberg Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); --allow-unassigned de IDNA-vlag 'AllowUnassigned' inschakelen --usestd3asciirules de IDNA-vlag 'UseSTD3ASCIIRules' inschakelen --debug debug-informatie weergeven --quiet geen meldingen produceren --no-tld tekst niet aan TLD-specifieke regels toetsen; alleen bij '--idna-to-ascii' en '--idna-to-unicode' -h, --help deze hulptekst tonen en stoppen -V, --version programmaversie tonen en stoppen -n, --nfkc tekenreeks normaliseren volgens Unicode-NFKC ver3.2 -p, --profile=NAAM dit tekenreeks-voorbewerkingsprofiel gebruiken; geldige profielnamen zijn: 'Nameprep', 'iSCSI', 'Nodeprep', 'Resourceprep', 'trace', 'SASLprep' -s, --stringprep tekenreeks volgens 'Nameprep'-profiel voorbewerken -d, --punycode-decode uit 'Punycode' decoderen -e, --punycode-encode naar 'Punycode' coderen -a, --idna-to-ascii naar ACE omzetten volgens IDNA (standaardmodus) -u, --idna-to-unicode uit ACE omzetten volgens IDNA Onvoldoende geheugen beschikbaarFout tijdens conversie van tekencoderingTekenset: %s Ongeoorloofde tekencodes voor gegeven topdomeinAlle tekenreeksen worden verwacht in de voorkeurstekenset van uw taalregio; gebruik '--debug' om te zien welke tekenset dit is. U kunt een andere tekenset afdwingen door de omgevingsvariabele CHARSET in te stellen. Om een tekenreeks die begint met '-' om te zetten, gebruikt u '--' om het einde van de opties aan te geven. Bijvoorbeeld: 'idn --quiet -a -- -foo'. (Een verplicht argument bij een lange optie geldt ook voor de korte vorm.) Tegenstrijdige eigenschappen voor tweerichtingentekst in invoerFout in profieldefinitie voor 'stringprep'Vlag botst met profielOngeoorloofd minteken ('-') aan begin of eindOngeoorloofde niet-toegewezen tekencodes in invoerInvoer bevat al een ACE-voorvoegsel ('xn--')Invoer begint niet met een ACE-voorvoegsel ('xn--') De gegeven TEKENREEKS (of standaardinvoer) omzetten volgens de regels die gelden voor geïnternationaliseerde domeinnamen (IDN). Ongeldige invoerOngeldige tekenreeks voor tweerichtingentekstOntbrekende invoerGeen topdomein gevonden in de invoerIets anders dan cijfer/letter/verbindingsstreepje in invoerUitvoer zou te groot of te klein wordenUitvoer zou niet in toegewezen bufferruimte passenOngeoorloofde tekencodes (bij tweerichtingentekst) in invoerOngeoorloofde tekencodes in invoerPunycodering is misluktTekenreeks is niet hetzelfde na retourconversie (van ASCII naar Unicode en terug)Tekenreeks is problematisch bij normalisering volgens Unicode-NFKC: er zijn verschillende mogelijkhedenVoorbewerken van tekenreeks is misluktTekenreeks is te langGeluktDe dlopen()-systeemfunctie is misluktTyp '%s --help' voor meer informatie. Typ elke invoertekenreeks op een afzonderlijke regel, afgesloten met Enter. Normalisatie van Unicode is mislukt (*interne fout*)Onbekende foutOnbekend profielGebruik: %s [OPTIE]... [TEKENREEKS]... conversie van %s naar UTF-8 is misluktconversie van UCS-4 naar UTF-8 is misluktconversie van UTF-8 naar %s is misluktconversie van UTF-8 naar UCS-4 is misluktkan NFKC-normalisering niet uitvoeren## idna_to_ascii_4z(): %s## idna_to_unicode_8z4z (TLD): %s## idna_to_unicode_8z4z(): %sinvoerfoutonvoldoende geheugen beschikbaarslechts één van de opties '-s', '-e', '-d', '-a', '-u' of '-n' is mogelijk## punycode_decode(): %s## punycode_encode(): %s## stringprep_profile(): %s## tld_check_4z (positie %lu): %s## tld_check_4z(): %slibidn-1.38/po/pl.po0000644000000000000000000002562014076273763011212 00000000000000# Polish translation for libidn. # Copyright (C) 2004, 2007, 2008, 2011, 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Jakub Bogusz , 2004-2020. # msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-23 19:34+0200\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Sukces" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Przygotowanie Å‚aÅ„cucha nie powiodÅ‚o siÄ™" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode zawiodÅ‚o" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Znak nie bÄ™dÄ…cy cyfrÄ…, literÄ… ani kreskÄ… na wejÅ›ciu" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Zabroniony wiodÄ…cy lub koÅ„czÄ…cy znak minus ('-')" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "WyjÅ›cie może być zbyt duże lub zbyt maÅ‚e" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "WejÅ›cie nie zaczyna siÄ™ przedrostkiem ACE ('xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ÅaÅ„cuch nie idempotentny wzglÄ™dem ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "WejÅ›cie już zawiera przedrostek ACE ('xn--')" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Błąd konwersji kodowania znaków" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nie można przydzielić pamiÄ™ci" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Systemowa funkcja dlopen nie powiodÅ‚a siÄ™" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Nieznany błąd" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "ÅaÅ„cuch nie idempotentny wzglÄ™dem normalizacji Unikodu NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Błędne wejÅ›cie" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "WyjÅ›cie przekroczyÅ‚oby dostarczone miejsce w buforze" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Przekroczony limit rozmiaru Å‚aÅ„cucha" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Zabronione nieprzypisane znaki na wejÅ›ciu" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Zabronione znaki na wejÅ›ciu" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Konfliktowe wÅ‚asnoÅ›ci dwukierunkowego pisma na wejÅ›ciu" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Źle sformuÅ‚owany Å‚aÅ„cuch dwukierunkowy" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Zabronione znaki dwukierunkowe na wejÅ›ciu" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Błąd w definicji profilu stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Konflikt flag z profilem" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Nieznany profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Normalizacja Unikodu nie powiodÅ‚a siÄ™ (błąd wewnÄ™trzny)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Znaki zabronione przez domenÄ™ najwyższego poziomu" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Brak wejÅ›cia" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nie znaleziono domeny najwyższego poziomu na wejÅ›ciu" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Polecenie '%s --help' pozwoli uzyskać wiÄ™cej informacji.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "SkÅ‚adnia: %s [OPCJA]... [ÅAŃCUCHY]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Program konwertuje ÅAŃCUCHY lub standardowe wyjÅ›cie z kodowania wÅ‚aÅ›ciwego\n" "dla umiÄ™dzynarodowionych nazw domen (IDN - Internationalized Domain Name).\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Jest to interfejs linii poleceÅ„ do biblioteki umiÄ™dzynarodowionych nazw " "domen.\n" "\n" "Wszystkie Å‚aÅ„cuchy powinny być zakodowane w zestawie znaków wÅ‚aÅ›ciwym dla\n" "używanej lokalizacji. Opcja --debug pozwoli okreÅ›lić, jaki to jest zestaw\n" "znaków. Można wymusić używany zestaw znaków zmiennÄ… Å›rodowiskowÄ… CHARSET.\n" "\n" "Aby przetworzyć Å‚aÅ„cuchy zaczynajÄ…ce siÄ™ od '-', np. '-foo', należy użyć\n" "'--', aby zasygnalizować koniec parametrów, np.: idn --quiet -a -- -foo\n" "\n" "Argumenty obowiÄ…zkowe dla dÅ‚ugich opcji sÄ… również obowiÄ…zkowe dla " "odpowiednich\n" "krótkich opcji.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Wypisanie opisu i zakoÅ„czenie\n" " -V, --version Wypisanie wersji i zakoÅ„czenie\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Przygotowanie Å‚aÅ„cucha zgodnie z profilem " "nameprep\n" " -d, --punycode-decode Dekodowanie Punycode\n" " -e, --punycode-encode Kodowanie Punycode\n" " -a, --idna-to-ascii Konwersja do ACE zgodnie z IDNA (tryb domyÅ›lny)\n" " -u, --idna-to-unicode Konwersja z ACE zgodnie z IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Włączenie flagi IDNA AllowUnassigned\n" " --usestd3asciirules Włączenie flagi IDNA UseSTD3ASCIIRules\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Niesprawdzenie Å‚aÅ„cucha pod kÄ…tem reguÅ‚ " "specyficznych\n" " dla TLD;\n" " tylko dla --idna-to-ascii and --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalizacja Å‚aÅ„cucha zgodnie z Unicode v3.2 " "NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=ÅAŃCUCH Użycie okreÅ›lonego profilu stringprep\n" " Poprawne profile stringprep: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Wypisywanie informacji diagnostycznych\n" " --quiet DziaÅ‚enie po cichu\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Można podać tylko jedno z -s, -e, -d, -a, -u lub -n" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Zestaw znaków: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Należy podać każdy Å‚aÅ„cuch w osobnej linii, zakoÅ„czony znakiem nowej linii.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "błąd wejÅ›cia" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "nie można przekonwertować z %s na UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "nie można przekonwertować z UTF-8 na UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "nie można przekonwertować z UTF-8 na %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "nie można przekonwertować z UCS-4 na UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (pozycja %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "normalizacja NFKC nie powiodÅ‚a siÄ™" libidn-1.38/po/sv.po0000644000000000000000000002607414076273763011233 00000000000000# Swedish translation for libidn # Copyright © xxxx - 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Josef Andersson , 2016, 2020, 2021 # msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2021-01-05 00:14+0100\n" "Last-Translator: Josef Andersson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Lyckades" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Misslyckades med strängförberedelse" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Misslyckades med punycode" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Icke-siffra/bokstav/bindestreck i indata" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Förbjudet inledande eller eftersläpande minustecken (â€-â€)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Utdata skulle vara för stort eller för litet" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Indata startar inte med ACE-prefix (â€xn--â€)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Strängen är inte idempotent under ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Indata innehÃ¥ller redan ACE-prefix (â€xn--â€)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Konverteringsfel av teckenkodning" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Kan inte allokera minne" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Misslyckades med systemanrop dlopen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Okänt fel" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Strängen inte idempotent under Unicode NFKC-normalisering" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ogiltig indata" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Utdata skulle överskrida tillhandahÃ¥llet buffertutrymme" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Strängstorleken överskriden" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Förbjudna otilldelade kodpunkter i indata" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Förbjudna kodpunkter i indata" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Motsägelsefulla dubbelriktade egenskaper i indata" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Felaktig dubbelriktad sträng" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Förbjudna dubbelriktade kodpunkter i indata" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Fel i profildefinition för stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Märk konflikt med profil" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Okänd profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Misslyckades med Unicode-normalisering (internt fel)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Kodpunkter förbjudna hos toppnivÃ¥domän" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Saknar indata" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Inga toppnivÃ¥domäner funna i indata" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "" "Prova â€%s --help†för mer information.\n" " \n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Användning: %s [FLAGGA]… [STRÄNGAR]…\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationaliserat domännamn (IDN) konverterar STRÄNGAR, eller standard " "in.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Kommandoradsgränssnitt till biblioteket för internationaliserade domännamn.\n" "\n" "Alla strängar förväntas vara kodade i den teckenuppsättning din lokal\n" "använder. Använd â€--debug†för att ta reda pÃ¥ vad denna teckenuppsättning " "är. Du\n" "kan Ã¥sidosätta den använda teckenuppsättningen genom att sätta " "miljövariabeln CHARSET.\n" "\n" "För att bearbeta en sträng som börjar med â€-â€, till exempel â€-fooâ€, använd " "â€--â€\n" "för signalera slut pÃ¥ parametrar, som i â€idn --quiet -a -- -fooâ€.\n" "\n" "Obligatoriska argument för lÃ¥nga flaggor är obligatoriska ocksÃ¥ för korta " "flaggor.\n" " \n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Skriv ut hjälp och avsluta\n" " -V, --version Skriv ut version och avsluta\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Förbered sträng efter nameprep-profil\n" " -d, --punycode-decode Avkoda punycode\n" " -e, --punycode-encode Koda punycode\n" " -a, --idna-to-ascii Konvertera till ACE utifrÃ¥n IDNA (standardläge)\n" " -u, --idna-to-unicode Konvertera frÃ¥n ACE utifrÃ¥n IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Växla IDNA AllowUnassigned-flaggan (av som " "standard)\n" " --usestd3asciirules Växla IDNA UseSTD3ASCIIRules-flaggan (av som " "standard)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Kontrollera inte sträng efter TLD-specifika " "regler\n" " Endast för --idna-to-ascii och --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalisera sträng utefter Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=STRING Använd specificerad stringprep-profil istället\n" " Giltiga stringprep-profiler: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Skriv ut felsökningsinformation\n" " --quiet Tyst Ã¥tgärd\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "kan endast specificera en av -s, -e, -d, -a, -u eller -n" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Teckenuppsättning %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Skriv varje inmatningssträng pÃ¥ en egen rad, avslutad med nyradstecken.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "indatafel" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "kunde inte konvertera frÃ¥n %s till UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "kunde inte konvertera frÃ¥n UTF-8 till UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "kunde inte konvertera frÃ¥n UTF-8 till %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "kunde inte konvertera frÃ¥n UCS-4 till UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "kunde inte genomföra NFKC-normalisering" #~ msgid "System iconv failed" #~ msgstr "Misslyckades med systemanrop iconv" #~ msgid "Could not convert string in locale encoding" #~ msgstr "Det gick inte att konvertera strängen till lokal kodning" #~ msgid "Could not convert string in locale encoding." #~ msgstr "Kunde inte konvertera sträng i lokal kodning." libidn-1.38/po/de.po0000644000000000000000000003076514076273763011175 00000000000000# German translation of libidn. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Roland Illig , 2004, 2009, 2011, 2020. # msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-23 19:49+0200\n" "Last-Translator: Roland Illig \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 2.3.1\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Erfolg" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "String-Vorbereitung fehlgeschlagen" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode fehlgeschlagen" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Nur Ziffern, Buchstaben und Bindestriche sind in der Eingabe erlaubt" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Verbotenes Minuszeichen (»-«) am Anfang oder am Ende" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Ausgabe wäre zu groß oder zu klein" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Eingabe beginnt nicht mit dem ACE-Präfix (»xn--«)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "String darf sich durch ToASCII nicht verändern" # typo in the English text: "contain" should be "contains" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Eingabe enthält bereits das ACE-Präfix (»xn--«)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Fehler beim Umwandeln zwischen Zeichencodierungen" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nicht genug Speicher" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "System-dlopen fehlgeschlagen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Unbekannter Fehler" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "String verändert sich durch Unicode-NFKC-Normalisierung" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ungültige Eingabe" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Ausgabe würde den vorhandenen Pufferspeicher überfluten" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "String-Größenbegrenzung überschritten" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Verbotene nicht zugeordnete Codepunkte in der Eingabe" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Verbotene Codepunkte in der Eingabe" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Widersprüchliche bidirektional-Eigenschaften in der Eingabe" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Ungültiger Bidirektional-String" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Verbotene bidirektionale Codepunkte in der Eingabe" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Fehler in der Stringprep-Profildefinition" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Flag-Konflikt mit dem Profil" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Unbekanntes Profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Interner Fehler bei Unicode-Normalisierung" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Codepunkte sind von der Top-Level-Domain verboten" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Fehlende Eingabe" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Keine Top-Level-Domain in der Eingabe gefunden" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Rufen Sie »%s --help« für weitere Informationen auf.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Aufruf: %s [OPTION]… [STRINGS]…\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) konvertiert STRINGS oder die " "Standardeingabe.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Kommandozeilenprogramm für die Bibliothek für internationalisierte " "Domainnamen.\n" "\n" "Alle Strings werden so codiert erwartet, wie es der Zeichensatz der Locale\n" "angibt. Benutzen Sie »--debug« um den aktuellen Zeichensatz herauszufinden.\n" "Sie können einen Zeichensatz explizit mit der Umgebungsvariable CHARSET\n" "festlegen.\n" "\n" "Um einen String zu verarbeiten, der mit »-« beginnt (zum Beispiel »-foo«),\n" "können Sie das Ende der Optionen mit »--« kennzeichnen.\n" "Zum Beispiel: »idn --quiet -a -- -foo«.\n" "\n" "Notwendige Argumente für die langen Optionen gelten genau so für die\n" "kurzen Optionen.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Hilfe ausgeben und beenden\n" " -V, --version Version ausgeben und beenden\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep String gemäß nameprep-Profil vorbereiten\n" " -d, --punycode-decode Punycode decodieren\n" " -e, --punycode-encode Punycode codieren\n" " -a, --idna-to-ascii Gemäß IDNA in ACE konvertieren (Standardmodus)\n" " -u, --idna-to-unicode Gemäß IDNA aus ACE heraus konvertieren\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Option \"IDNA AllowUnassigned\" umschalten " "(Vorgabe: aus)\n" " --usestd3asciirules Option \"IDNA UseSTD3ASCIIRules\" umschalten " "(Vorgabe: aus)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld String nicht auf TLD-spezifische Regeln " "überprüfen\n" " Nur für --idna-to-ascii und --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc String gemäß Unicode v3.2 NFKC normalisieren\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=STRING Angegebenes stringprep-Profil benutzen.\n" " Gültige stringprep-Profile: »Nameprep«,\n" " »iSCSI«, »Nodeprep«, »Resourceprep«, \n" " »trace«, »SASLprep«\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Debugging-Informationen ausgeben\n" " --quiet Still arbeiten\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "Nur eine der Optionen »-s«, »-e«, »-d«, »-a«, »-u« oder »-n« kann angegeben " "werden." #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Zeichensatz: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Geben Sie jede Eingabezeichenkette in einer eigenen Zeile ein, durch einen " "Zeilenumbruch abgeschlossen.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "Eingabefehler" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "Fehler beim Konvertieren von %s nach UTF-8." #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "Fehler beim Konvertieren von UTF-8 nach UCS-4." #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "Fehler beim Konvertieren von UTF-8 nach %s." #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "Fehler beim Konvertieren von UCS-4 nach UTF-8." #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (Position %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "Fehler bei NFKC-Normalisierung." #~ msgid "System iconv failed" #~ msgstr "System-iconv fehlgeschlagen" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Melden Sie Fehler an <%s>.\n" #~ "Melden Sie Übersetzungsfehler an .\n" #~ msgid "%s: fgets() failed: " #~ msgstr "%s: fgets() fehlgeschlagen: " #~ msgid "input[%d] = U+%04x\n" #~ msgstr "input[%d] = U+%04x\n" #~ msgid "%s: stringprep_profile() failed with error %d.\n" #~ msgstr "%s: stringprep_profile() mit Fehler %d fehlgeschlagen.\n" #~ msgid "output[%d] = U+%04x\n" #~ msgstr "output[%d] = U+%04x\n" #~ msgid "%s: punycode_encode() failed with error %d.\n" #~ msgstr "%s: punycode_encode() mit Fehler %d fehlgeschlagen.\n" #~ msgid "%s: malloc() failed: " #~ msgstr "%s: malloc() fehlgeschlagen: " #~ msgid "%s: punycode_decode() failed with error %d.\n" #~ msgstr "%s: punycode_decode() mit Fehler %d fehlgeschlagen.\n" #~ msgid "%s: idna_to_ascii_4z() failed with error %d.\n" #~ msgstr "%s: idna_to_ascii_4z() mit Fehler %d fehlgeschlagen.\n" #~ msgid "%s: TLD idna_to_unicode_8z8z() failed with error %d.\n" #~ msgstr "%s: TLD idna_to_unicode_8z8z() mit Fehler %d fehlgeschlagen.\n" #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" #~ msgid "%s: string rejected by TLD test (Unicode position %d)\n" #~ msgstr "" #~ "%s: Zeichenkette beim TLD-Test zurückgewiesen (Unicode position %d)\n" #~ msgid "%s: tld_check_4z failed with error %d.\n" #~ msgstr "%s: tld_check_4z mit Fehler %d fehlgeschlagen.\n" libidn-1.38/po/de.gmo0000644000000000000000000002072314076273763011332 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mm©~¨(fÑœ8nÕJD 2™Ì1á1$NV<¥)â 6)5`3–4ÊSÿS f‡.˜DÇ$ 912k#žÂ/Ú8 "C(f–8³hì*U€“$¦+Ë.÷+& .R  ¡ ¶ Õ î ü _!c!w!‹!¢!Â!1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-23 19:49+0200 Last-Translator: Roland Illig Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.3.1 --allow-unassigned Option "IDNA AllowUnassigned" umschalten (Vorgabe: aus) --usestd3asciirules Option "IDNA UseSTD3ASCIIRules" umschalten (Vorgabe: aus) --debug Debugging-Informationen ausgeben --quiet Still arbeiten --no-tld String nicht auf TLD-spezifische Regeln überprüfen Nur für --idna-to-ascii und --idna-to-unicode -h, --help Hilfe ausgeben und beenden -V, --version Version ausgeben und beenden -n, --nfkc String gemäß Unicode v3.2 NFKC normalisieren -p, --profile=STRING Angegebenes stringprep-Profil benutzen. Gültige stringprep-Profile: »Nameprep«, »iSCSI«, »Nodeprep«, »Resourceprep«, »trace«, »SASLprep« -s, --stringprep String gemäß nameprep-Profil vorbereiten -d, --punycode-decode Punycode decodieren -e, --punycode-encode Punycode codieren -a, --idna-to-ascii Gemäß IDNA in ACE konvertieren (Standardmodus) -u, --idna-to-unicode Gemäß IDNA aus ACE heraus konvertieren Nicht genug SpeicherFehler beim Umwandeln zwischen ZeichencodierungenZeichensatz: %s Codepunkte sind von der Top-Level-Domain verbotenKommandozeilenprogramm für die Bibliothek für internationalisierte Domainnamen. Alle Strings werden so codiert erwartet, wie es der Zeichensatz der Locale angibt. Benutzen Sie »--debug« um den aktuellen Zeichensatz herauszufinden. Sie können einen Zeichensatz explizit mit der Umgebungsvariable CHARSET festlegen. Um einen String zu verarbeiten, der mit »-« beginnt (zum Beispiel »-foo«), können Sie das Ende der Optionen mit »--« kennzeichnen. Zum Beispiel: »idn --quiet -a -- -foo«. Notwendige Argumente für die langen Optionen gelten genau so für die kurzen Optionen. Widersprüchliche bidirektional-Eigenschaften in der EingabeFehler in der Stringprep-ProfildefinitionFlag-Konflikt mit dem ProfilVerbotenes Minuszeichen (»-«) am Anfang oder am EndeVerbotene nicht zugeordnete Codepunkte in der EingabeEingabe enthält bereits das ACE-Präfix (»xn--«)Eingabe beginnt nicht mit dem ACE-Präfix (»xn--«)Internationalized Domain Name (IDN) konvertiert STRINGS oder die Standardeingabe. Ungültige EingabeUngültiger Bidirektional-StringFehlende EingabeKeine Top-Level-Domain in der Eingabe gefundenNur Ziffern, Buchstaben und Bindestriche sind in der Eingabe erlaubtAusgabe wäre zu groß oder zu kleinAusgabe würde den vorhandenen Pufferspeicher überflutenVerbotene bidirektionale Codepunkte in der EingabeVerbotene Codepunkte in der EingabePunycode fehlgeschlagenString darf sich durch ToASCII nicht verändernString verändert sich durch Unicode-NFKC-NormalisierungString-Vorbereitung fehlgeschlagenString-Größenbegrenzung überschrittenErfolgSystem-dlopen fehlgeschlagenRufen Sie »%s --help« für weitere Informationen auf. Geben Sie jede Eingabezeichenkette in einer eigenen Zeile ein, durch einen Zeilenumbruch abgeschlossen. Interner Fehler bei Unicode-NormalisierungUnbekannter FehlerUnbekanntes ProfilAufruf: %s [OPTION]… [STRINGS]… Fehler beim Konvertieren von %s nach UTF-8.Fehler beim Konvertieren von UCS-4 nach UTF-8.Fehler beim Konvertieren von UTF-8 nach %s.Fehler beim Konvertieren von UTF-8 nach UCS-4.Fehler bei NFKC-Normalisierung.idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sEingabefehlermallocNur eine der Optionen »-s«, »-e«, »-d«, »-a«, »-u« oder »-n« kann angegeben werden.punycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (Position %lu): %stld_check_4z: %slibidn-1.38/po/POTFILES.in0000644000000000000000000000037014076271517012002 00000000000000# List of source files containing translatable strings for GNU Libidn. # Copyright (C) 2004, 2005, 2006, 2007 by Simon Josefsson lib/strerror-idna.c lib/strerror-pr29.c lib/strerror-punycode.c lib/strerror-stringprep.c lib/strerror-tld.c src/idn.c libidn-1.38/po/eo.gmo0000644000000000000000000002011514076273763011340 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6MmÕ~ŒTpá—RwêFbש¡!· Ù0æÂ'Ú&).F(u&ž.ÅRôGVq*€!«(Í'ö&Eb-y8§!à'*$2'WK6Ë%"#H&l#“&·Þý!9 WbNxÇàù! 7 1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-08-16 11:31-0300 Last-Translator: Felipe Castro Language-Team: Esperanto Language: eo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.3.1 --allow-unassigned enÅalti la IDNA-flagon 'AllowUnassigned' --usestd3asciirules enÅalti la IDNA-flagon 'UseSTD3ASCIIRules' --debug montri informojn por helpi al erarspurado --quiet funkcii silente --no-tld ne kontroli ĉenon pri TLD-specifaj reguloj; nur por '--idna-to-ascii' kaj '--idna-to-unicode' -h, --help montri ĉi tiun helpon kaj eliri -V, --version montri programversion kaj eliri -n, --nfkc normigi signoĉenon laÅ­ Unikodo v3.2 NFKC -p, --profile=NOMO Uzi indikitan profilon 'stringprep' anstataÅ­e Validaj profiloj 'stringprep': Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep pretigi ĉenon laÅ­ la profilo 'Nameprep' -d, --punycode-decode malkodi 'Punycode' -e, --punycode-encode kodi 'Punycode' -a, --idna-to-ascii konverti al ACE laÅ­ IDNA (la implicita reÄimo) -u, --idna-to-unicode konverti de ACE laÅ­ IDNA Mankas sufiĉa memoroEraro pri signa enkodiga konvertoSignaro: %s Koderoj kiuj malpermesiÄas de supera retregionoKomandlinia interfaco al la biblioteko por internaciigitaj retnomoj. Ĉiuj ĉenoj estu koditaj per la preferata signaro de via lokaĵaro. Uzu --debug por eltrovi kiu Äi estas. Vi povas indiki alian signaron per la medi-variablo CHARSET. Por trakti ĉenon kiu komenciÄas per '-' (ekzemple '-foo'), uzu '--' por indiki la finon de la parametroj, kiel en: idn --quiet -a -- -foo Nepraj argumentoj por longaj opcioj ankaÅ­ nepras por la mallongaj. Malkongruaj dudirektaj trajtoj en enigoEraro en difino de ĉenopretig-profiloFlaga malkongruo kun profiloMalpermesita minuso ('-') ĉe komenco aÅ­ finoMalpermesita neatribuita kodero en enigoEnigo jam havas ACE-prefikson ('xn--')Enigo ne komenciÄas per ACE-prefikso ('xn--')Konvertas ĈENO(j)n (aÅ­ ĉefenigujon) laÅ­ la internaciigitaj retnomaj reguloj. Nevalida enigoMisformita dudirekta ĉenoMankanta enigoNeniu supera retregiono troviÄis en enigoLitero/necifero/streketo en enigoEligo estus tro granda aÅ­ tro malgrandaEligo estus tro granda por donita bufroMalpermesita dudirekta kodero en enigoMalpermesita kodero en enigoMalsukcesis 'Punycode'Ĉeno ÅanÄiÄas ĉe dua apliko de 'ToASCII'Ĉeno ÅanÄiÄas ĉe dua apliko de Unikoda NFKC-normigoMalsukcesis pretigo de signoĉenoLimo de signoĉena grando transpasiÄisSukcesoMalsukcesis sistemfunkcio 'dlopen()'Tajpu '%s --help' por pli da informoj. Tajpu ĉiun enigan ĉenon en propra linio, kun linifina signo ĉe la fino. Malsukcesis Unikoda normigo (**interna programeraro**)Nekonata eraroNekonata profiloUzmaniero: %s [OPCIO...] [ĈENO...] malsukcesis konverti de %s al UTF-8malsukcesis konverti de UCS-4 al UTF-8malsukcesis konverti de UTF-8 al %smalsukcesis konverti de UTF-8 al UCS-4malsukcesis fari NFKC-normigon## idna_to_ascii_4z(): %s## idna_to_unicode_8z4z (TLD): %s## idna_to_unicode_8z4z(): %senig-eraromankas sufiĉa memoronur unu el la opcioj '-s', '-e', '-d', '-a', '-u' aÅ­ '-n' povas esti indikata## punycode_decode(): %s## punycode_encode(): %s## stringprep_profile(): %s## tld_check_4z (pozicio %lu): %s## tld_check_4z(): %slibidn-1.38/po/es.gmo0000644000000000000000000000151114076273630011334 00000000000000Þ•<\paqÓÛâì]Ï -8 -h, --help Print help and exit -V, --version Print version and exit Successtld_check_4z: %sProject-Id-Version: libidn 1.29 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2018-04-28 13:46+0200 Last-Translator: Francisco Javier Serrador Language-Team: Spanish Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.0.4 Plural-Forms: nplurals=2; plural=(n != 1); X-Poedit-SourceCharset: UTF-8 -h, --help Escribe ayuda y termina. -V, --version Escribe versión y termina. Conseguidotld_check_4z: %slibidn-1.38/po/id.po0000644000000000000000000002535714076273630011173 00000000000000# Indonesian translations for libidn package. # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Andhika Padmawan , 2008-2012. # msgid "" msgstr "" "Project-Id-Version: libidn 1.24\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2012-05-18 17:42+0700\n" "Last-Translator: Andhika Padmawan \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Sukses" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Penyiapan benang gagal" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode gagal" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Non-digit/huruf/sambung di masukan" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Tanda minus awalan atau akhiran terlarang (`-')" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Keluaran akan terlalu besar atau terlalu kecil" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "Masukan tidak diawali dengan prefiks ACE (`xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Benar tidak idempoten di bawah ToASCII" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "Masukan telah berisi prefiks ACE (`xn--')" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Tak dapat alokasi memori" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Sistem dlopen gagal" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Galat tak dikenal" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Benang tak idempoten di bawah normalisasi Unicode NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Masukan tidak sah" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Keluaran akan melebihi ruang penyangga yang disediakan" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Batas ruang benang tercapai" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Titik kode tak ditugaskan terlarang di masukan" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Titik kode terlarang di masukan" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Properti dwiarah konflik di masukan" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Benang dwiarah salah bentuk" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Titik kode dwiarah terlarang di masukan" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Galat di definisi profil stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Bendera konflik dengan profil" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Profil tak diketahui" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Normalisasi unicode gagal (galat internal)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Titik kode dilarang oleh ranah level atas" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Masukan hilang" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Tak ada ranah level atas yang ditemukan di masukan" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Coba `'%s -- help' untuk informasi lebih lanjut.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Penggunaan: %s [OPSI]... [BENANG]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "BENANG konversi Internationalized Domain Name (IDN), atau masukan standar.\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Antarmuka baris perintah ke pustaka nama ranah internasionalisasi.\n" "\n" "Semua benang diharapkan tersandi dalam set karakter kesukaan yang dipakai\n" "oleh lokal anda. Gunakan `--debug' untuk mencari tahu apakah set karakter " "ini.\n" "Anda dapat menimpa set karakter yang digunakan oleh pengaturan variabel " "lingkungan CHARSET.\n" "\n" "Untuk memproses benang yang dimulai dengan `-', misalnya `-foo', gunakan\n" "`--' untuk menandai akhir parameter, seperti dalam `idn --quiet -a -- -" "foo'.\n" "\n" "Argumen mandatori untuk opsi panjang merupakan mandatori untuk opsi pendek " "juga.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Cetak bantuan lalu keluar\n" " -V, --version Cetak versi lalu keluar\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Siapkan benang berdasarkan profil nameprep\n" " -d, --punycode-decode Awasandi Punycode\n" " -e, --punycode-encode Sandi Punycode\n" " -a, --idna-to-ascii Konversi ke ACE menurut IDNA (mode standar)\n" " -u, --idna-to-unicode Konversi dari ACE menurut IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Ubah bendera AllowUnassigned IDNA (standar mati)\n" " --usestd3asciirules Ubah bendera UseSTD3ASCIIRules IDNA (standar " "mati)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Jangan cek benang untuk peraturan spesifik TLD\n" " Hanya untuk --idna-to-ascii dan --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalisasi benang berdasarkan Unicode v3.2 NFKC\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=BENANG Gunakan profil stringprep ketimbang\n" " Profil stringprep yang sah: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Cetak informasi awakutu\n" " --quiet Operasi diam\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "Hanya salah satu dari -s, -e, -d, -a, -u, atau -n yang dapat ditentukan" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Set karakter `%s'.\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Ketik tiap benang masukan pada baris itu sendiri, diakhiri oleh karakter " "newline.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "galat masukan" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "tak dapat konversi dari %s ke UTF-8." #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "tak dapat konversi dari UTF-8 ke UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "tak dapat konversi dari UTF-8 ke %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "tak dapat konversi dari UCS-4 ke UTF-8." #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (posisi %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "tak dapat melakukan normalisasi NFKC" #~ msgid "System iconv failed" #~ msgstr "Sistem iconv gagal" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Laporkan kutu ke <%s>.\n" libidn-1.38/po/en@quot.header0000644000000000000000000000226314076273511013011 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # libidn-1.38/po/LINGUAS0000644000000000000000000000010514076273507011247 00000000000000cs da de eo es fi fr hr hu id it ja nl pl pt_BR ro sr sv uk vi zh_CN libidn-1.38/po/fr.po0000644000000000000000000002655714076273763011220 00000000000000# Messages français pour GNU concernant libidn. # Copyright © 1996 Free Software Foundation, Inc. # This file is distributed under the same licence as the libidn package. # Marc Veillet , 2008. # Jean-Philippe Guérard , 2011-2020. # msgid "" msgstr "" "Project-Id-Version: GNU libidn-1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-24 21:29+0200\n" "Last-Translator: Jean-Philippe Guérard \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Succès" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Échec de la préparation de la chaîne" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Échec du Punycode" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Un non chiffre, lettre ou tiret a été fourni en entrée" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Signe de négation (« - ») interdit comme préfixe ou suffixe" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "La sortie serait trop grande ou trop petite" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "L'entrée ne débute pas par le préfixe ACE (« xn-- »)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Chaîne non idempotente avec ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "L'entrée contient déjà un préfixe ACE (« xn-- »)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Erreur de conversion du codage des caractères" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Impossible d'allouer la mémoire" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Échec du dlopen système" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Erreur inconnue" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Chaîne non idempotente en normalisation NFKC Unicode" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Entrée invalide" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "La sortie dépasse l'espace tampon fourni" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "La taille limite des chaînes est dépassée" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "L'entrée contient des codes caractères non attribués interdits" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "L'entrée contient des codes caractères prohibés" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "L'entrée contient des propriétés bidirectionnelles en conflit" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Chaîne bidirectionnelle mal composée" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "L'entrée contient des codes caractères bidirectionnels prohibés" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Erreur dans la définition de profil stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Le drapeau est en conflit avec le profil" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Profil inconnu" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "La normalisation Unicode a échoué (erreur interne)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Le domaine de premier niveau prohibe ces codes caractères" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Entrée manquante" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Aucun domaine de premier niveau n'a été identifié dans l'entrée" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Essayez « %s --help » pour plus d'information.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Utilisation : %s [OPTION]... [CHAÃŽNES]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "IDN converti des CHAÃŽNES ou l'entrée standard.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Interface en ligne de commande de la bibliothèque libidn (noms de\n" "domaines internationalisés).\n" "\n" "Toutes les chaînes sont supposées être codées avec le jeu de\n" "caractère principal de vos paramètres régionaux (les « locales »).\n" "Utilisez « --debug » pour identifier le jeu de caractères en\n" "question. Vous pouvez modifier le jeu de caractère utilisé en\n" "définissant la variable d'environnement CHARSET.\n" "\n" "Pour traiter une chaîne commençant par « - », comme « -foo »,\n" "utilisez « -- » pour indiquer la fin des options. Par exemple :\n" "« idn --quiet -a -- -foo ».\n" "\n" "Les arguments obligatoires des options longues sont également\n" "obligatoires pour les options courtes.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Imprime l'aide et s'arrête\n" " -V, --version Imprime la version et s'arrête\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prépare la chaîne selon le profil nameprep\n" " -d, --punycode-decode Décode le Punycode\n" " -e, --punycode-encode Code en Punycode\n" " -a, --idna-to-ascii Conversion IDNA vers un codage ACE\n" " -u, --idna-to-unicode Conversion IDNA depuis un codage ACE\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Bascule le drapeau AllowUnassigned d'IDNA\n" " (désactivé par défaut).\n" " --usestd3asciirules Bascule le drapeau UseSTD3ASCIIRules d'IDNA\n" " (désactivé par défaut).\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Ne pas vérifier les règles spécifiques aux " "domaines\n" " de premier niveau (TLD). Uniquement valable " "pour\n" " --idna-to-ascii et --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Applique à la chaîne la normalisation NFKC\n" " d'Unicode 3.2\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=CHAÃŽNE Utilise à la place le profil stringprep indiqué\n" " Les profils valides sont : Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Affiche des informations de débogage\n" " --quiet Mode silencieux\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Une seule option parmi -s, -e, -d, -a, -u et -n peut être indiquée" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Jeu de caractères %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "Saisissez une chaîne par ligne, terminée par un passage à la ligne.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "entrée erronée" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "Conversion impossible en UTF-8 depuis %s" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "Conversion impossible en UCS-4 depuis UTF-8" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile : %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "Conversion impossible en %s depuis UTF-8" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode : %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode : %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "Conversion impossible en UTF-8 depuis UCS-4" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z : %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD) : %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu) : %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z : %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z : %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "Échec de la normalisation NFKC" #~ msgid "System iconv failed" #~ msgstr "Échec du iconv système" libidn-1.38/po/pl.gmo0000644000000000000000000002065114076273763011355 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mm~†q–ÈuÑOGЗ4h "¾á3õE)9o%©Ï3è*.G4v«I*[ †6”9Ë-63*j•²,Å>ò+1&]„+‹;·Ró<Fƒ“)£)Í,÷)$ ,N ${   µ Ô í ý 5!:!N!b!y!˜!1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-23 19:34+0200 Last-Translator: Jakub Bogusz Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. --allow-unassigned Włączenie flagi IDNA AllowUnassigned --usestd3asciirules Włączenie flagi IDNA UseSTD3ASCIIRules --debug Wypisywanie informacji diagnostycznych --quiet DziaÅ‚enie po cichu --no-tld Niesprawdzenie Å‚aÅ„cucha pod kÄ…tem reguÅ‚ specyficznych dla TLD; tylko dla --idna-to-ascii and --idna-to-unicode -h, --help Wypisanie opisu i zakoÅ„czenie -V, --version Wypisanie wersji i zakoÅ„czenie -n, --nfkc Normalizacja Å‚aÅ„cucha zgodnie z Unicode v3.2 NFKC -p, --profile=ÅAŃCUCH Użycie okreÅ›lonego profilu stringprep Poprawne profile stringprep: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Przygotowanie Å‚aÅ„cucha zgodnie z profilem nameprep -d, --punycode-decode Dekodowanie Punycode -e, --punycode-encode Kodowanie Punycode -a, --idna-to-ascii Konwersja do ACE zgodnie z IDNA (tryb domyÅ›lny) -u, --idna-to-unicode Konwersja z ACE zgodnie z IDNA Nie można przydzielić pamiÄ™ciBłąd konwersji kodowania znakówZestaw znaków: %s Znaki zabronione przez domenÄ™ najwyższego poziomuJest to interfejs linii poleceÅ„ do biblioteki umiÄ™dzynarodowionych nazw domen. Wszystkie Å‚aÅ„cuchy powinny być zakodowane w zestawie znaków wÅ‚aÅ›ciwym dla używanej lokalizacji. Opcja --debug pozwoli okreÅ›lić, jaki to jest zestaw znaków. Można wymusić używany zestaw znaków zmiennÄ… Å›rodowiskowÄ… CHARSET. Aby przetworzyć Å‚aÅ„cuchy zaczynajÄ…ce siÄ™ od '-', np. '-foo', należy użyć '--', aby zasygnalizować koniec parametrów, np.: idn --quiet -a -- -foo Argumenty obowiÄ…zkowe dla dÅ‚ugich opcji sÄ… również obowiÄ…zkowe dla odpowiednich krótkich opcji. Konfliktowe wÅ‚asnoÅ›ci dwukierunkowego pisma na wejÅ›ciuBłąd w definicji profilu stringprepKonflikt flag z profilemZabroniony wiodÄ…cy lub koÅ„czÄ…cy znak minus ('-')Zabronione nieprzypisane znaki na wejÅ›ciuWejÅ›cie już zawiera przedrostek ACE ('xn--')WejÅ›cie nie zaczyna siÄ™ przedrostkiem ACE ('xn--')Program konwertuje ÅAŃCUCHY lub standardowe wyjÅ›cie z kodowania wÅ‚aÅ›ciwego dla umiÄ™dzynarodowionych nazw domen (IDN - Internationalized Domain Name). Błędne wejÅ›cieŹle sformuÅ‚owany Å‚aÅ„cuch dwukierunkowyBrak wejÅ›ciaNie znaleziono domeny najwyższego poziomu na wejÅ›ciuZnak nie bÄ™dÄ…cy cyfrÄ…, literÄ… ani kreskÄ… na wejÅ›ciuWyjÅ›cie może być zbyt duże lub zbyt maÅ‚eWyjÅ›cie przekroczyÅ‚oby dostarczone miejsce w buforzeZabronione znaki dwukierunkowe na wejÅ›ciuZabronione znaki na wejÅ›ciuPunycode zawiodÅ‚oÅaÅ„cuch nie idempotentny wzglÄ™dem ToASCIIÅaÅ„cuch nie idempotentny wzglÄ™dem normalizacji Unikodu NFKCPrzygotowanie Å‚aÅ„cucha nie powiodÅ‚o siÄ™Przekroczony limit rozmiaru Å‚aÅ„cuchaSukcesSystemowa funkcja dlopen nie powiodÅ‚a siÄ™Polecenie '%s --help' pozwoli uzyskać wiÄ™cej informacji. Należy podać każdy Å‚aÅ„cuch w osobnej linii, zakoÅ„czony znakiem nowej linii. Normalizacja Unikodu nie powiodÅ‚a siÄ™ (błąd wewnÄ™trzny)Nieznany błądNieznany profilSkÅ‚adnia: %s [OPCJA]... [ÅAŃCUCHY]... nie można przekonwertować z %s na UTF-8nie można przekonwertować z UCS-4 na UTF-8nie można przekonwertować z UTF-8 na %snie można przekonwertować z UTF-8 na UCS-4normalizacja NFKC nie powiodÅ‚a siÄ™idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sbłąd wejÅ›ciamallocMożna podać tylko jedno z -s, -e, -d, -a, -u lub -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (pozycja %lu): %stld_check_4z: %slibidn-1.38/po/hu.po0000644000000000000000000002612514076273630011205 00000000000000# Hungarian translation for libidn. # Copyright (C) 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Balázs Úr , 2014. msgid "" msgstr "" "Project-Id-Version: libidn 1.29\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2014-08-31 15:46+0200\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.5\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Sikerült" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "A szöveg elÅ‘készítés sikertelen." #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode sikertelen" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Nem szám/betű/kötÅ‘jel a bemeneten" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Tiltott kezdÅ‘ vagy befejezÅ‘ mínusz jel („-â€)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "A kimenet túl nagy vagy túl kicsi lenne" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "A bemenet nem ACE elÅ‘taggal („xn--â€) kezdÅ‘dik" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "A szöveg nem idempotens a ToASCII alatt" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "A bemenet már tartalmaz ACE elÅ‘tagot („xn--â€)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nem lehet memóriát lefoglalni" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Rendszer dlopen sikertelen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Ismeretlen hiba" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "A szöveg nem idempotens a Unicode NFKC normalizálás alatt" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Érvénytelen bemenet" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "A kimenet túllépné a megadott pufferméretet" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "A szövegméret korlát elérve" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Tiltott nem hozzárendelt kódpontok a bemeneten" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Tiltott kódpontok a bemeneten" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "ÜtközÅ‘ kétirányú tulajdonságok a bemeneten" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Helytelenül formázott kétirányú szöveg" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Tiltott kétirányú kódpontok a bemeneten" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Hiba a stringprep profil definícióban" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Jelzőütközés a profillal" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Ismeretlen profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Unicode normalizálás sikertelen (belsÅ‘ hiba)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "A felsÅ‘szintű tartomány tiltja a kódpontokat" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Hiányzó bemenet" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nem található felsÅ‘szintű tartomány a bemeneten" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "További információkért próbálja a(z) „%s --help†parancsot.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Használat: %s [KAPCSOLÓ]… [SZÖVEGEK]…\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) átalakított SZÖVEGEK vagy szabványos " "bemenet.\n" "\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Parancssoros felület a nemzetközivé tett tartománynév könyvtárhoz.\n" "\n" "Minden szöveg a területi beállítás szerint elÅ‘nyben részesített\n" "karakterkészlet használatával kódolva várt. Használja a „--debugâ€\n" "kapcsolót annak kiderítésére, hogy melyik ez a karakterkészlet.\n" "Felülbírálhatja a CHARSET környezeti változó beállításban használt\n" "karakterkészletet.\n" "\n" "Egy „-†kezdetű szöveg feldolgozásához, például „-izéâ€, használja a „--â€\n" "jelet a paraméterek végének jelzéséhez, úgymint „idn --quiet -a -- -izéâ€.\n" "\n" "A hosszú kapcsolók kötelezÅ‘ argumentumai a rövid kapcsolóknál is " "kötelezÅ‘ek.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Súgó kiírása és kilépés\n" " -V, --version Verzió kiírása és kilépés\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Szöveg elÅ‘készítése a nameprep profil szerint\n" " -d, --punycode-decode Punycode dekódolása\n" " -e, --punycode-encode Punycode kódolása\n" " -a, --idna-to-ascii Ãtalakítás ACE-re az IDNA szerint (alap mód)\n" " -u, --idna-to-unicode Ãtalakítás ACE-rÅ‘l az IDNA szerint\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned IDNA AllowUnassigned jelzÅ‘ váltása (alap: off)\n" " --usestd3asciirules IDNA UseSTD3ASCIIRules jelzÅ‘ váltása (alap: off)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Ne ellenÅ‘rizzen szöveget TLD specifikus " "szabályokhoz\n" " Csak --idna-to-ascii és --idna-to-unicode " "esetén\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Szöveg normalizálása a Unicode v3.2 NFKC szerint\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=SZÖVEG Inkább a megadott stringprep profil használata\n" " Érvényes stringprep profilok: „Nameprepâ€,\n" " „iSCSIâ€, „Nodeprepâ€, „Resourceprepâ€, \n" " „traceâ€, „SASLprepâ€\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Hibakeresési információk kiírása\n" " --quiet Csendes működés\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "csak a következÅ‘k egyike adható meg: -s, -e, -d, -a, -u vagy -n" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Karakterkészlet: „%sâ€.\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Minden bemeneti szöveget önmagával egy sorba gépeljen be, egy új sor " "karakterrel lezárva.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "bemeneti hiba" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "nem lehet átalakítani: %s -> UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "nem lehet átalakítani: UTF-8 -> UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "nem lehet átalakítani: UTF-8 -> %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "nem lehet átalakítani: UCS-4 -> UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (%lu. pozíció): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "nem lehet NFKC normalizálást végrehajtani" #~ msgid "System iconv failed" #~ msgstr "Rendszer iconv sikertelen" libidn-1.38/po/ja.po0000644000000000000000000002163514076273630011164 00000000000000# Japanese messages for libidn. # Copyright (C) 2006 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # GOTO Masanori , 2006. # msgid "" msgstr "" "Project-Id-Version: libidn 0.5.16\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2006-03-21 11:20+0900\n" "Last-Translator: GOTO Masanori \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-JP\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "À®¸ù" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "ʸ»úÎó½àÈ÷Ãæ¤Ç¼ºÇÔ" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "PunycodeÁàºîÃæ¤Ç¼ºÇÔ" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "ÆþÎÏÃæ¤Ë¿ôÃÍ/ʸ»ú/¥Ï¥¤¥Õ¥ó°Ê³°¤¬Â¸ºß" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "ÀèÆ¬¤Þ¤¿¤ÏËöÈø¤Ë¤¢¤ë¥Þ¥¤¥Ê¥¹µ­¹æ(`-')¤Ïµö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "½ÐÎϤÏÂ礭¤¹¤®¤ë¤«¾®¤µ¤¹¤®¤ë" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "ÆþÎϤÏACEÀÜÆ¬¼­(`xn--')¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤»¤ó" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ToASCIIÁàºî¤Ë¤è¤ë½ÐÎÏʸ»úÎó¤ÏÅù¤·¤¯¤¢¤ê¤Þ¤»¤ó" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "ÆþÎϤϴû¤ËACEÀÜÆ¬¼­(`xn--')¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "¥á¥â¥ê³ÎÊݤ˼ºÇÔ" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "¥·¥¹¥Æ¥à´Ø¿ôdlopen¤Ç¼ºÇÔ" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "̤ÃΤΥ¨¥é¡¼" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Unicode¤ÎNFKCÀµµ¬²½¤Ë¤è¤ë½ÐÎÏʸ»úÎó¤ÏÅù¤·¤¯¤¢¤ê¤Þ¤»¤ó" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "ÉÔÀµ¤ÊÆþÎÏ" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "½ÐÎϤÏÍ¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "ʸ»úÎóĹ¤Î¸Â³¦¤ò±Û¤¨¤Þ¤·¤¿" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "µö¤µ¤ì¤Æ¤¤¤Ê¤¤Ì¤³äÅö¤Æ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤¬ÆþÎϤˤ¢¤ê¤Þ¤¹" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "¶Ø»ß¥³¡¼¥É¥Ý¥¤¥ó¥È¤¬ÆþÎϤˤ¢¤ê¤Þ¤¹" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "ÁÐÊý¸þ(bidirectional)À­¤¬ÆþÎÏÃæ¤Ç¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "ÉÔÀµ¤ÊÁÐÊý¸þ(bidirectional)ʸ»úÎó" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "¶Ø»ßÁÐÊý¸þ(bidirectional)¥³¡¼¥É¥Ý¥¤¥ó¥È¤¬ÆþÎϤˤ¢¤ê¤Þ¤¹" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "stringprep¥×¥í¥Õ¥¡¥¤¥ëÄêµÁ¤Ç¥¨¥é¡¼" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "¥Õ¥é¥°¤¬¥×¥í¥Õ¥¡¥¤¥ë¤È¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "̤ÃΤΥץí¥Õ¥¡¥¤¥ë" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "UnicodeÀµµ¬²½¤Ë¼ºÇÔ(ÆâÉô¥¨¥é¡¼)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "¥È¥Ã¥×¥ì¥Ù¥ë¥É¥á¥¤¥ó¤Ë¤è¤Ã¤Æ¶Ø»ß¤µ¤ì¤¿¥³¡¼¥É¥Ý¥¤¥ó¥È" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "ÆþÎϤ¬¤¢¤ê¤Þ¤»¤ó" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "¥È¥Ã¥×¥ì¥Ù¥ë¥É¥á¥¤¥ó¤¬ÆþÎÏÃæ¤Ëȯ¸«¤Ç¤­¤Þ¤»¤ó" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:173 #, fuzzy, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "-s, -e, -d, -a, -u¤Î¤¤¤º¤ì¤«1¤Ä¤À¤±¤¬»ØÄê¤Ç¤­¤Þ¤¹." #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "ʸ»ú¥»¥Ã¥È`%s'.\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "²þ¹Ôʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿ÆþÎÏʸ»úÎó¤ò1¹Ô¤º¤Ä¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤.\n" #: src/idn.c:198 #, fuzzy, c-format msgid "input error" msgstr "ÆþÎÏ¥¨¥é¡¼" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, fuzzy, c-format msgid "could not convert from %s to UTF-8" msgstr "%s¤«¤éUTF-8¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿." #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, fuzzy, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "UTF-8¤«¤éUCS-4¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿." #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, fuzzy, c-format msgid "could not convert from UTF-8 to %s" msgstr "UTF-8¤«¤é%s¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿." #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, fuzzy, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "UCS-4¤«¤éUTF-8¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿." #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, fuzzy, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (°ÌÃÖ %d): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, fuzzy, c-format msgid "could not do NFKC normalization" msgstr "Unicode¤ÎNFKCÀµµ¬²½¤Ë¤è¤ë½ÐÎÏʸ»úÎó¤ÏÅù¤·¤¯¤¢¤ê¤Þ¤»¤ó" #~ msgid "System iconv failed" #~ msgstr "¥·¥¹¥Æ¥à´Ø¿ôiconv¤Ç¼ºÇÔ" #, c-format #~ msgid "input[%d] = U+%04x\n" #~ msgstr "ÆþÎÏ[%d] = U+%04x\n" #, c-format #~ msgid "output[%d] = U+%04x\n" #~ msgstr "½ÐÎÏ[%d] = U+%04x\n" #, c-format #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" libidn-1.38/po/sv.gmo0000644000000000000000000002041214076273763011365 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6MmÆ~¤EeêžPoïI_ש"¤!¼Þ)õV2v&©Ð?ê**0U/†P¶ 4%B(h.‘9À,ú'F+`:Œ%Çí #.8Jg4² ç ò+),,V)ƒ,­(Ú  7 P Z 8a š ®  Ù ù 1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2021-01-05 00:14+0100 Last-Translator: Josef Andersson Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.3 Plural-Forms: nplurals=2; plural=(n != 1); --allow-unassigned Växla IDNA AllowUnassigned-flaggan (av som standard) --usestd3asciirules Växla IDNA UseSTD3ASCIIRules-flaggan (av som standard) --debug Skriv ut felsökningsinformation --quiet Tyst Ã¥tgärd --no-tld Kontrollera inte sträng efter TLD-specifika regler Endast för --idna-to-ascii och --idna-to-unicode -h, --help Skriv ut hjälp och avsluta -V, --version Skriv ut version och avsluta -n, --nfkc Normalisera sträng utefter Unicode v3.2 NFKC -p, --profile=STRING Använd specificerad stringprep-profil istället Giltiga stringprep-profiler: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Förbered sträng efter nameprep-profil -d, --punycode-decode Avkoda punycode -e, --punycode-encode Koda punycode -a, --idna-to-ascii Konvertera till ACE utifrÃ¥n IDNA (standardläge) -u, --idna-to-unicode Konvertera frÃ¥n ACE utifrÃ¥n IDNA Kan inte allokera minneKonverteringsfel av teckenkodningTeckenuppsättning %s Kodpunkter förbjudna hos toppnivÃ¥domänKommandoradsgränssnitt till biblioteket för internationaliserade domännamn. Alla strängar förväntas vara kodade i den teckenuppsättning din lokal använder. Använd â€--debug†för att ta reda pÃ¥ vad denna teckenuppsättning är. Du kan Ã¥sidosätta den använda teckenuppsättningen genom att sätta miljövariabeln CHARSET. För att bearbeta en sträng som börjar med â€-â€, till exempel â€-fooâ€, använd â€--†för signalera slut pÃ¥ parametrar, som i â€idn --quiet -a -- -fooâ€. Obligatoriska argument för lÃ¥nga flaggor är obligatoriska ocksÃ¥ för korta flaggor. Motsägelsefulla dubbelriktade egenskaper i indataFel i profildefinition för stringprepMärk konflikt med profilFörbjudet inledande eller eftersläpande minustecken (â€-â€)Förbjudna otilldelade kodpunkter i indataIndata innehÃ¥ller redan ACE-prefix (â€xn--â€)Indata startar inte med ACE-prefix (â€xn--â€)Internationaliserat domännamn (IDN) konverterar STRÄNGAR, eller standard in. Ogiltig indataFelaktig dubbelriktad strängSaknar indataInga toppnivÃ¥domäner funna i indataIcke-siffra/bokstav/bindestreck i indataUtdata skulle vara för stort eller för litetUtdata skulle överskrida tillhandahÃ¥llet buffertutrymmeFörbjudna dubbelriktade kodpunkter i indataFörbjudna kodpunkter i indataMisslyckades med punycodeSträngen är inte idempotent under ToASCIISträngen inte idempotent under Unicode NFKC-normaliseringMisslyckades med strängförberedelseSträngstorleken överskridenLyckadesMisslyckades med systemanrop dlopenProva â€%s --help†för mer information. Skriv varje inmatningssträng pÃ¥ en egen rad, avslutad med nyradstecken. Misslyckades med Unicode-normalisering (internt fel)Okänt felOkänd profilAnvändning: %s [FLAGGA]… [STRÄNGAR]… kunde inte konvertera frÃ¥n %s till UTF-8kunde inte konvertera frÃ¥n UCS-4 till UTF-8kunde inte konvertera frÃ¥n UTF-8 till %skunde inte konvertera frÃ¥n UTF-8 till UCS-4kunde inte genomföra NFKC-normaliseringidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sindatafelmallockan endast specificera en av -s, -e, -d, -a, -u eller -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %slibidn-1.38/po/vi.gmo0000644000000000000000000001541314076273631011352 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 õI ¸?zø¦s…R Jó#>0b=“EÑ/6jf$Ñ'ö?9Xy1ÒT8Y+’(¾0çw 1± ãð` 3kŸ °.¾/í2/P2€+³ßô,>TEš®Â Ùú*-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn-1.29 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2014-08-12 07:59+0700 Last-Translator: Trần Ngá»c Quân Language-Team: Vietnamese Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.5.5 X-Poedit-SourceCharset: UTF-8 --allow-unassigned Bật/tắt cá» IDNA AllowUnassigned (mặc định là tắt) --usestd3asciirules Bật/tắt cá» IDNA UseSTD3ASCIIRules (mặc định là tắt) --debug In ra thông tin gỡ lá»—i --quiet Thá»±c hiện ở chế độ im lặng -t, --no-tld Không kiểm tra chuá»—i cho quy tắc đặc tả TLD Chỉ dành cho --idna-to-ascii và --idna-to-unicode" -h, --help In ra trợ giúp rồi thoát -V, --version In ra số thứ tá»± phiên bản rồi thoát -n, --nfkc Tiêu chuẩn hoá chuá»—i tùy theo Unicode v3.2 NFKC -s, --stringprep Chuẩn bị chuá»—i tùy theo hồ sÆ¡ nameprep -d, --punycode-decode Giải mã Punycode -e, --punycode-encode Mã hoá Punycode -a, --idna-to-ascii Chuyển đổi sang ACE tùy theo IDNA (chế độ mặc định) -u, --idna-to-unicode Chuyển đổi từ ACE tùy theo IDNA Không thể cấp phát bá»™ nhá»›Äiểm mã bị cấm bởi miá»n cấp đầuDữ liệu nhập chứa tài sản hai hướng xung độtLá»—i trong định nghÄ©a hồ sÆ¡ stringprep (chuẩn bị chuá»—i)Cá» xung dá»™t vá»›i hồ sÆ¡Cấm gán Ä‘iểm mã trong dữ liệu nhậpChuyển đổi các CHUá»–I sang IDN (tên miá»n đã quốc tế hoá), hay đầu vào tiêu chuẩn. Dữ liệu nhập không hợp lệChuá»—i thuận nghịch có dạng saiThiếu dữ liệu nhậpKhông tìm thấy miá»n cấp đầu trong dữ liệu nhậpDữ liệu nhập chứa ký tá»± không phải là chữ số/chữ/dấu gạch nốiDữ liệu xuất sẽ quá lá»›n hay quá nhá»Dữ liệu xuất sẽ vượt quá dung lượng bá»™ nhá»› đệm đã cung cấpDữ liệu nhập chứa Ä‘iểm mã hai hướng cấmDữ liệu nhập chứa Ä‘iểm mã cấmPunycode (mã yếu Ä‘uối) gặp lá»—iChuá»—i không tránh nhân lên dưới ToASCIIChuá»—i không không thay đổi giá trị (sau khi tá»± nó nhân lên) dưới sá»± tiêu chuẩn hoá NFKC UnicodeChuẩn bị chuá»—i gặp lá»—iGiá»›i hạn kích cỡ chuá»—i bị vượt quáThành côngLá»—i dlopen hệ thốngGõ má»—i chuá»—i nhập trên má»™t đưá»ng riêng, kết thúc bằng ký tá»± dòng má»›i. Lá»—i tiêu chuẩn hoá Unicode (lá»—i ná»™i bá»™)Lá»—i không rõHồ sÆ¡ lạCách dùng: %s [TÙY_CHỌN]... [CHUá»–I]... không thể chuyển đổi từ %s sang UTF-8không thể chuyển đổi từ UCS-4 sang UTF-8không thể chuyển đổi từ UTF-8 sang %skhông thể chuyển đổi từ UTF-8 sang UCS-4không thể tiêu chuẩn hoá kiểu NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %slá»—i đầu vàomallocchỉ có thể chỉ ra má»™t trong số các đối số -s, -e, -d, -a, -u hay -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (vị trí %lu): %stld_check_4z: %slibidn-1.38/po/pt_BR.gmo0000644000000000000000000002054314076273763011750 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mmí~ lp ›~^LyÍÆ.”"Ã1æ 19Gk1³+å1/7a(™,ÂZïJ\|-$»,à. 4<&q˜#¨7Ì$"GO+hV”/ë-"A-d0’-Ã0ñ," O d ƒ œ ¬ >³ ò !! 1!R!1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-27 05:03-0300 Last-Translator: Rafael Fontenelle Language-Team: Brazilian Portuguese Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Virtaal 1.0.0-beta1 X-Bugs: Report translation errors to the Language-Team address. --allow-unassigned Ativa opção IDNA AllowUnassigned (padrão é off) --usestd3asciirules Ativa opção IDNA UseSTD3ASCIIRules (padrão é off) --debug Mostra informações de depuração --quiet Operação silenciosa --no-tld Não verifica string por regras específicas de TLD Apenas por --idna-to-ascii e --idna-to-unicode -h, --help Mostra ajuda e sai -V, --version Mostra versão e sai -n, --nfkc Normaliza string de acordo com Unicode v3.2 NFKC -p, --profile=STRING Usa o perfil de stringprep especificado Perfis stringprep válidos: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepara string de acordo com o perfil nameprep -d, --punycode-decode Decodifica Punycode -e, --punycode-encode Codifica Punycode -a, --idna-to-ascii Converte para ACE de acordo com IDNA (padrão) -u, --idna-to-unicode Converte de ACE de acordo com IDNA Não foi possível alocar memóriaErro de conversão de codificação de caracteresCodificação de caracteres: %s Pontos de código proibidos pelo domínio de topoInterface de linha de comando para a biblioteca de nome de domínio internacionalizado. Espera-se que todas as strings estejam codificados no conjunto de caracteres preferidos usado pelo seu locale. Use "--debug" para descobrir qual é esse conjunto de caracteres. Você pode sobrescrever o conjunto de caracteres usado definindo a variável de ambiente CHARSET. Para processar string que inicie com "-", por exemplo "-foo", use "--" para sinal no fim de parâmetros, como em: idn --quiet -a -- -foo Argumentos obrigatórios para opções longas são também são para as curtas. Propriedades bidirecionais conflitando na entradaErro ma definição de perfil de stringprepOpção conflita com o perfilSinal de menus proibido no início ou final ("-")Pontos de código não-atribuídos proibidos na entradaEntrada já contém prefixo ACE ("xn--")Entrada não inicia com prefixo ACE ("xn--")Nome de domínio internacionalizado (IDN) para conversão de STRINGS ou entrada padrão. Entrada inválidaString bidirecional malformada Entrada faltandoNenhum domínio de topo encontrado na entradaNão-dígito/letra/hífen na entradaSaída seria grande demais ou pequena demaisSaída excederia o espaço de buffer fornecidoPontos de código bidirecionais proibidos na entradaPontos de código proibidos na entradaPunycode falhouString não idempotente sob ToASCIIString não idempotente sob normalização Unicode NFKCPreparação de string falhouLimite do tamanho da string excedidoSucessodlopen de sistema falhouTente "%s --help" para mais informações. Digite cada string de entrada em uma linha, terminada por um caractere de linha nova. Normalização de unicode falhou (erro interno)Erro desconhecidoPerfil desconhecidoUso: %s [OPÇÃO]... [STRINGS]... não foi possível converter de %s para UTF-8não foi possível converter de UCS-4 para UTF-8não foi possível converter de UTF-8 para %snão foi possível converter de UTF-8 para UCS-4não foi possível fazer normalização NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %serro na entradamallocapenas um entre -s, -e, -d, -a, -u ou -n pode ser especificadopunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (posição %lu): %stld_check_4z: %slibidn-1.38/po/da.po0000644000000000000000000002607214076273630011156 00000000000000# Danish translation of the libidn gettext message catalogue # Copyright (C) 2015 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Morten Bo Johansen , 2004-2011. # Joe Hansen , 2015. # Korrekturlæsning 2015: Aputsiak Niels Janussen. # msgid "" msgstr "" "Project-Id-Version: libidn 1.29\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2015-08-16 17:38+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Lykkedes" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Dannelse af tekststreng mislykkedes" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode mislykkedes" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Ikke-ciffer/bogstav/bindestreg i inddata" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "MÃ¥ ikke begynde eller slutte med minustegn (\"-\")" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Mængden af uddata ville blive for stor eller lille" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "Inddata begynder ikke med et ACE-præfiks (\"xn--\")" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Tekststreng er ikke idempotent under ToASCII" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "Inddata indeholder allerede et ACE-præfiks (\"xn--\")" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Kan ikke tildele hukommelse" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Systemkald til dlopen mislykkedes" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Ukendt fejl" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Tekststreng er ikke idempotent under Unicode NFKC-normalisering" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ugyldige inddata" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Størrelse pÃ¥ uddata ville overstige tildelt plads i buffer" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Grænse for størrelse pÃ¥ tekststreng overskredet" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Der er forbudte, ikke-tildelte kodepunkter i inddata" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Der er forbudte kodepunkter i inddata" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Konflikter mellem tovejsegenskaber i inddata" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Misdannet tovejstekststreng" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Forbudte tovejskodepunkter i inddata" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Fejl i definition af stringprep-profil" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Konflikt mellem flag og profil" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Ukendt profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Normalisering af unicode mislykkedes (intern fejl)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Kodepunkter tillades ikke af domæne pÃ¥ øverste niveau" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Manglende inddata" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Fandt ikke et top-domæne i inddata" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Prøv \"%s --help\" for yderligere information.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Brug: %s [TILVALG]... [STRENGE]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) - omdan STRENGE, eller standardinddata.\n" "\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Kommandolinje-brugerflade til IDN-programbiblioteket.\n" "\n" "Alle tekststrenge forventes at være indkodet i det foretrukne tegnsæt,\n" "der følger af dine lokaliseringsindstillnger. Brug \"--debug\" for at\n" "finde ud af hvilket tegnsæt det er. Du kan tilsidesætte dette tegnsæt\n" "ved at sætte miljøvariablen CHARSET.\n" "\n" "For at behandle en tekststreng der begynder med \"-\", f.eks. \"-foo\", sÃ¥\n" "brug \"--\" for at signalere at der ikke følger flere parametre, som i\n" "\"idn --quiet -a -- -foo\".\n" "\n" "Obligatoriske parametre som gælder for langforms-tilvalg er ligeledes\n" "obligatoriske for kortforms-tilvalg.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Udskriv hjælp og afslut\n" " -V, --version Udskriv version og afslut\n" # ACE = ASCII Compatible Encoding # IDNA = Internationalizing Domain Names in Applications #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Forbered tekststreng ifølge nameprep-profil\n" " -d, --punycode-decode Afkod Punycode\n" " -e, --punycode-encode Indkod Punycode\n" " -a, --idna-to-ascii Omdan til ACE ifølge IDNA (standardtilstand)\n" " -u, --idna-to-unicode Omdan fra ACE ifølge IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned SlÃ¥ IDNA AllowUnassigned til/fra (standard fra)\n" " --usestd3asciirules SlÃ¥ IDNA UseSTD3ASCIIRules til/fra (standard " "fra)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Kontroller ikke tekststring for TLD-specifikke " "regler\n" " Gælder kun --idna-to-ascii og --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalisér tekststreng i.h.t. Unicode v3.2 NFKC\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=STRENG Brug angivet stringprep-profil i stedet\n" " Gyldige stringprep-profiler: \"Nameprep\",\n" " \"iSCSI\", \"Nodeprep\", \"Resourceprep\", \n" " \"trace\", \"SASLprep\"\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Udskriv fejlsøgnings-information\n" " --quiet Ingen uddata under udførelse\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Kun ét af argumenterne -s, -e, -d, -a, -u eller -n kan angives" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Tegnsæt \"%s\".\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Indtast hver streng pÃ¥ en særskilt linje, afsluttet med et nylinje-tegn.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "fejl i inddata" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "kunne ikke omdanne fra %s til UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "kunne ikke omdanne fra UTF-8 til UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "kunne ikke omdanne fra UTF-8 til %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "kunne ikke omdanne fra UCS-4 til UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "kunne ikke udføre NFKC-normalisering" #~ msgid "System iconv failed" #~ msgstr "Systemkald til iconv mislykkedes" libidn-1.38/po/sr.gmo0000644000000000000000000002430014076273763011361 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mm~#Á¾_r¯F"³i2AP"’Sµ¢ L¬Fù-@WnOÆ? AV ‹˜ $!&B!i!H…!4Î!="SA"I•"6ß""#<9#bv#1Ù#H $T$/c$G“$‡Û$Xc%¼%Ü%7ú%?2&?r&9²&?ì&F,'s'ˆ'§'À'Ú'Qø'J(^(r(%‰(¯(1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn-1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-08-04 10:13+0200 Last-Translator: МироÑлав Ðиколић Language-Team: Serbian <(nothing)> Language: sr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Virtaal 0.7.1 X-Bugs: Report translation errors to the Language-Team address. --allow-unassigned Пребацује опцију ИДÐРДозволи недодељене (унапред иÑкључено) --usestd3asciirules Пребацује опцију ИДÐРКориÑтиСТД3ÐСКРИ правила (унапред иÑкључено) --debug ИÑпиÑује податке за уклањање грешака --quiet Ðечујна операција --no-tld Ðе проверава ниÑку за ТЛД поÑебним правилима Само за --idna-to-ascii и --idna-to-unicode -h, --help ИÑпиÑује помоћ и излази -V, --version ИÑпиÑује издање и излази -n, --nfkc Ðормализује ниÑку у Ñкладу Ñа Уникодом в3.2 ÐФКЦ -p, --profile=ÐИСКРУмеÑто тога кориÑти одређени профил Ñтрингпрепа ИÑправни Ñтрингпреп профили: „Nameprep“, „iSCSI“, „Nodeprep“, „Resourceprep“, „trace“, „SASLprep“ -s, --stringprep Припрема ниÑку у Ñкладу Ñа профилом нејмпреп -d, --punycode-decode Декодира Паникод -e, --punycode-encode Кодира Паникод -a, --idna-to-ascii Претвара у ÐЦЕ у Ñкладу Ñа ИДÐÐ-ом (оÑновни режим) -u, --idna-to-unicode Претвара из ÐЦЕ-а у Ñкладу Ñа ИДÐÐ-ом Ðе могу да доделим меморијуГрешка претварања кодирања знаковаСкуп знакова: „%s“ Кодне тачке забрањене доменом највишег нивоаСучеље линије наредби за библиотеку интернационализованог назива домена. Очекује Ñе да Ñу Ñве ниÑке кодиране у жељеном Ñкупу знакова коришћеном вашим локалитетом. Употребите „--debug“ да Ñазнате који је то Ñкуп знакова. Можете да препишете коришћени Ñкуп знакова подешавајући променљиву окружења СКУПЗÐÐКОВÐ. Да обрадите ниÑку која почиње Ñа „-“, на пример „-foo“, употребите „--“ да назначите крај параметара, као у: „idn --quiet -a -- -foo“. Обавезни аргументи за дуге опције Ñу такође обавезни и за кратке опције. Сукобљавајућа двоÑмерна ÑвојÑтва у улазуГрешка у одредници профила ÑтрингпрепСукоб опција Ñа профиломÐедозвољени водећи или завршни знак Ð¼Ð¸Ð½ÑƒÑ („-“)Ðедозвољене недодељене кодне тачке у улазуУлаз већ Ñадржи ÐЦЕ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ („xn--“)Улаз не почиње ÐЦЕ префикÑом („xn--“)Интернационализовани назив домена (IDN) претвара ÐИСКЕ, или Ñтандардни улаз. ÐеиÑправан улазЛоша двоÑмерна ниÑкаÐедоÑтаје улазДомен највишег нивоа није нађен у улазуÐецифра/Ñлово/цртица у улазуИзлаз би био превелик или премалиИзлаз би премашио предвиђену величину бафераЗабрањене двоÑмерне кодне тачке у улазуЗабрањене кодне тачке у улазуПаникод није уÑпеоÐиÑка није иÑтомоћна под ТоÐСКРИÐиÑка није иÑтомоћна под нормализацијом Уникода ÐФКЦÐије уÑпела припрема ниÑкеПремашено је ограничење величине ниÑкеУÑпешноДлопен ÑиÑтема није уÑпеоПробајте „%s --help“ за више информација. Куцајте улазну ниÑку на заÑебној линији, завршавајући знаком за нови ред. ÐеуÑпех Уникод нормализације (унутрашња грешка)Ðепозната грешкаÐепознат профилУпотреба: %s [ОПЦИЈÐ]... [ÐИСКЕ]... не могу да претворим из „%s“ у УТФ-8не могу да претворим из УЦС-4 у УТФ-8не могу да претворим из УТФ-8 у %sне могу да претворим из УТФ-8 у УЦС-4не могу да урадим нормализацију ÐФКЦ-аidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sулазна грешкадодела меморијеможе бити задато Ñамо једно од: -s, -e, -d, -a или -upunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (положај %lu): %stld_check_4z: %slibidn-1.38/po/hr.gmo0000644000000000000000000001422514076273630011344 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 I ¸^h’€hI|Æå'&('Ow.•SÄ(B%Qw"”4·+ì 9#M6q¨(ÃìóJ 4XŸ$¯ Ô#õ #:$^ƒ˜·Ðß>æ%9Md„*-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.25 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2012-09-27 23:16+0200 Last-Translator: Tomislav Krznar Language-Team: Croatian Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Lokalize 1.4 --allow-unassigned Promijeni IDNA AllowUnassigned zastavicu (poÄetno iskljuÄeno) --usestd3asciirules Promijeni IDNA UseSTD3ASCIIRules zastavicu (poÄetno iskljuÄeno) --debug IspiÅ¡i informacije za debugiranje --quiet Rad bez ispisa --no-tld Ne provjeravaj TLD specifiÄna pravila u nizu Samo za --idna-to-ascii i --idna-to-unicode -h, --help IspiÅ¡i pomoć i izaÄ‘i -V, --version IspiÅ¡i inaÄicu i izaÄ‘i -n, --nfkc Normaliziraj niz u skladu s Unicode v3.2 NFKC -s, --stringprep Pripremi niz prema nameprep profilu -d, --punycode-decode Dekodiraj Punycode -e, --punycode-encode Kodiraj Punycode -a, --idna-to-ascii Pretvori u ACE u skladu s IDNA (zadani naÄin) -u, --idna-to-unicode Pretvori iz ACE u skladu s IDNA Ne mogu alocirati memorijuKodne toÄke zabranjene vrÅ¡nom domenomKonfliktna dvosmjerna svojstva u ulazuGreÅ¡ka u stringprep definiciji profilaKonflikt zastavice s profilomZabranjene nedodijeljene kodne toÄke na ulazuPretvaranje NIZOVA ili standardnog ulaza u internacionalizirano ime domene (IDN). Neispravan ulazIzobliÄen dvosmjerni nizNedostaje ulazNije pronaÄ‘ena vrÅ¡na domena u ulazuNe-broj/slovo/crtica u ulazuIzlaz bi bio prevelik ili premalenIzlaz bi prekoraÄio dostupan prostor meÄ‘uspremnikaZabranjene dvosmjerne kodne toÄke na ulazuZabranjene kodne toÄke na ulazuPunycode nije uspioNiz nije idempotentan prema ToASCIINiz nije idempotentan prema Unicode NFKC normalizacijiPriprema niza nije uspjelaPrekoraÄeno ograniÄenje veliÄine nizaUspjehdlopen sustava nije uspioUnesite svaki ulazni niz u zasebnom retku, zavrÅ¡enom znakom novog retka. Unicode normalizacija nije uspjela (interna greÅ¡ka)Nepoznata greÅ¡kaNepoznat profilUporaba: %s [OPCIJA]... [NIZOVI]... ne mogu pretvoriti iz %s u UTF-8ne mogu pretvoriti iz UCS-4 u UTF-8ne mogu pretvoriti iz UTF-8 u %sne mogu pretvoriti iz UTF-8 u UCS-4ne mogu izvrÅ¡iti NFKC normalizacijuidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sulazna greÅ¡kamallocsmijete navesti samo jednu od opcija -s, -e, -d, -a, -u ili -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (položaj %lu): %stld_check_4z: %slibidn-1.38/po/vi.po0000644000000000000000000002757414076273631011221 00000000000000# Vietnamese Translation for LibIDN # Bản dịch tiếng Việt dành cho libidn. # Copyright © 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Clytie Siddall , 2005-2008. # Trần Ngá»c Quân , 2012-2014. # msgid "" msgstr "" "Project-Id-Version: libidn-1.29\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2014-08-12 07:59+0700\n" "Last-Translator: Trần Ngá»c Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.5\n" "X-Poedit-SourceCharset: UTF-8\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Thành công" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Chuẩn bị chuá»—i gặp lá»—i" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode (mã yếu Ä‘uối) gặp lá»—i" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Dữ liệu nhập chứa ký tá»± không phải là chữ số/chữ/dấu gạch nối" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Không cho phép dấu gạch nối (“-â€) Ä‘i trước hay theo sau" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Dữ liệu xuất sẽ quá lá»›n hay quá nhá»" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "Dữ liệu nhập không bắt đầu bằng tiá»n tố ACE (“xn--â€)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Chuá»—i không tránh nhân lên dưới ToASCII" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "Dữ liệu nhập đã sẵn chứa tiá»n tố ACE (“xn--â€)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Không thể cấp phát bá»™ nhá»›" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Lá»—i dlopen hệ thống" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Lá»—i không rõ" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" "Chuá»—i không không thay đổi giá trị (sau khi tá»± nó nhân lên) dưới sá»± tiêu " "chuẩn hoá NFKC Unicode" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Dữ liệu nhập không hợp lệ" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Dữ liệu xuất sẽ vượt quá dung lượng bá»™ nhá»› đệm đã cung cấp" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Giá»›i hạn kích cỡ chuá»—i bị vượt quá" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Cấm gán Ä‘iểm mã trong dữ liệu nhập" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Dữ liệu nhập chứa Ä‘iểm mã cấm" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Dữ liệu nhập chứa tài sản hai hướng xung đột" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Chuá»—i thuận nghịch có dạng sai" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Dữ liệu nhập chứa Ä‘iểm mã hai hướng cấm" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Lá»—i trong định nghÄ©a hồ sÆ¡ stringprep (chuẩn bị chuá»—i)" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Cá» xung dá»™t vá»›i hồ sÆ¡" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Hồ sÆ¡ lạ" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Lá»—i tiêu chuẩn hoá Unicode (lá»—i ná»™i bá»™)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Äiểm mã bị cấm bởi miá»n cấp đầu" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Thiếu dữ liệu nhập" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Không tìm thấy miá»n cấp đầu trong dữ liệu nhập" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Thá»­ lệnh “%s --help†để xem thêm thông tin.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Cách dùng: %s [TÙY_CHỌN]... [CHUá»–I]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Chuyển đổi các CHUá»–I sang IDN (tên miá»n đã quốc tế hoá), hay đầu vào tiêu " "chuẩn.\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Giao diện dòng lệnh vá»›i thư viện tên miá»n đã quốc tế hoá.\n" "\n" "Má»i chuá»—i nên được mã hoá theo bá»™ ký tá»± đã thích trong miá»n địa phương\n" "cá»§a bạn. Hãy dùng tùy chá»n \"--debug\" (gỡ lá»—i) để tìm biết bá»™ ký tá»± nào.\n" "Bạn cÅ©ng có thể ghi đè lên bá»™ ký tá»± này bằng cách đặt biến môi trưá»ng\n" "CHARSET.\n" "\n" "Äể xá»­ lý má»™t chuá»—i bắt đầu vá»›i \"-\", v.d. \"-foo\", dùng \"--\" để\n" "để ra tín hiệu kết thúc đối số, như trong \"idn --quiet -a -- -foo\".\n" "\n" "Má»i đối số bắt buá»™c phải sá»­ dụng vá»›i tùy chá»n dài thì cÅ©ng cÅ©ng bắt buá»™c vá»›i " "tùy chá»n ngắn.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help In ra trợ giúp rồi thoát\n" " -V, --version In ra số thứ tá»± phiên bản rồi thoát\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Chuẩn bị chuá»—i tùy theo hồ sÆ¡ nameprep\n" " -d, --punycode-decode Giải mã Punycode\n" " -e, --punycode-encode Mã hoá Punycode\n" " -a, --idna-to-ascii Chuyển đổi sang ACE tùy theo IDNA (chế độ mặc " "định)\n" " -u, --idna-to-unicode Chuyển đổi từ ACE tùy theo IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Bật/tắt cá» IDNA AllowUnassigned (mặc định là " "tắt)\n" " --usestd3asciirules Bật/tắt cá» IDNA UseSTD3ASCIIRules (mặc định là " "tắt)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " -t, --no-tld Không kiểm tra chuá»—i cho quy tắc đặc tả TLD\n" " Chỉ dành cho --idna-to-ascii và --idna-to-unicode" "\"\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Tiêu chuẩn hoá chuá»—i tùy theo Unicode v3.2 NFKC\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=CHUá»–I Dùng hồ sÆ¡ stringprep đã chỉ định thay vào đó\n" " Các hồ sÆ¡ stringprep hợp lệ: “Nameprepâ€,\n" " “iSCSIâ€, “Nodeprepâ€, “Resourceprepâ€, \n" " “traceâ€, “SASLprepâ€\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug In ra thông tin gỡ lá»—i\n" " --quiet Thá»±c hiện ở chế độ im lặng\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "chỉ có thể chỉ ra má»™t trong số các đối số -s, -e, -d, -a, -u hay -n" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Bá»™ ký tá»± \"%s\".\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Gõ má»—i chuá»—i nhập trên má»™t đưá»ng riêng, kết thúc bằng ký tá»± dòng má»›i.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "lá»—i đầu vào" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "không thể chuyển đổi từ %s sang UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "không thể chuyển đổi từ UTF-8 sang UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "không thể chuyển đổi từ UTF-8 sang %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "không thể chuyển đổi từ UCS-4 sang UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (vị trí %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "không thể tiêu chuẩn hoá kiểu NFKC" #~ msgid "System iconv failed" #~ msgstr "Lá»—i iconv hệ thống" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Thông báo lá»—i cho <%s>.\n" libidn-1.38/po/insert-header.sin0000644000000000000000000000124014076273511013463 00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } libidn-1.38/po/nl.po0000644000000000000000000002642114076273763011210 00000000000000# Dutch translations for GNU libidn. # Copyright (C) 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # De vertalingen die beginnen met "## " zijn debug-tekstjes # die eigenlijk niet in dit bestand thuishoren. # # Benno Schulenberg , 2005, 2007, 2008, 2011, 2020. # Elros Cyriatan , 2004. msgid "" msgstr "" "Project-Id-Version: libidn-1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-24 10:34+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Gelukt" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Voorbewerken van tekenreeks is mislukt" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycodering is mislukt" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Iets anders dan cijfer/letter/verbindingsstreepje in invoer" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Ongeoorloofd minteken ('-') aan begin of eind" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Uitvoer zou te groot of te klein worden" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Invoer begint niet met een ACE-voorvoegsel ('xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" "Tekenreeks is niet hetzelfde na retourconversie (van ASCII naar Unicode en " "terug)" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Invoer bevat al een ACE-voorvoegsel ('xn--')" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Fout tijdens conversie van tekencodering" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Onvoldoende geheugen beschikbaar" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "De dlopen()-systeemfunctie is mislukt" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Onbekende fout" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" "Tekenreeks is problematisch bij normalisering volgens Unicode-NFKC:\n" "er zijn verschillende mogelijkheden" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ongeldige invoer" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Uitvoer zou niet in toegewezen bufferruimte passen" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Tekenreeks is te lang" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Ongeoorloofde niet-toegewezen tekencodes in invoer" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Ongeoorloofde tekencodes in invoer" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Tegenstrijdige eigenschappen voor tweerichtingentekst in invoer" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Ongeldige tekenreeks voor tweerichtingentekst" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Ongeoorloofde tekencodes (bij tweerichtingentekst) in invoer" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Fout in profieldefinitie voor 'stringprep'" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Vlag botst met profiel" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Onbekend profiel" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Normalisatie van Unicode is mislukt (*interne fout*)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Ongeoorloofde tekencodes voor gegeven topdomein" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Ontbrekende invoer" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Geen topdomein gevonden in de invoer" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Typ '%s --help' voor meer informatie.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Gebruik: %s [OPTIE]... [TEKENREEKS]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" " \n" "De gegeven TEKENREEKS (of standaardinvoer) omzetten volgens de regels\n" "die gelden voor geïnternationaliseerde domeinnamen (IDN).\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Alle tekenreeksen worden verwacht in de voorkeurstekenset van uw taalregio;\n" "gebruik '--debug' om te zien welke tekenset dit is. U kunt een andere\n" "tekenset afdwingen door de omgevingsvariabele CHARSET in te stellen.\n" "\n" "Om een tekenreeks die begint met '-' om te zetten, gebruikt u '--' om het\n" "einde van de opties aan te geven. Bijvoorbeeld: 'idn --quiet -a -- -foo'.\n" "\n" "(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help deze hulptekst tonen en stoppen\n" " -V, --version programmaversie tonen en stoppen\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep tekenreeks volgens 'Nameprep'-profiel " "voorbewerken\n" " -d, --punycode-decode uit 'Punycode' decoderen\n" " -e, --punycode-encode naar 'Punycode' coderen\n" " -a, --idna-to-ascii naar ACE omzetten volgens IDNA (standaardmodus)\n" " -u, --idna-to-unicode uit ACE omzetten volgens IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned de IDNA-vlag 'AllowUnassigned' inschakelen\n" " --usestd3asciirules de IDNA-vlag 'UseSTD3ASCIIRules' inschakelen\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld tekst niet aan TLD-specifieke regels toetsen;\n" " alleen bij '--idna-to-ascii' en '--idna-to-" "unicode'\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc tekenreeks normaliseren volgens Unicode-NFKC " "ver3.2\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=NAAM dit tekenreeks-voorbewerkingsprofiel gebruiken;\n" " geldige profielnamen zijn: 'Nameprep', " "'iSCSI',\n" " 'Nodeprep', 'Resourceprep', 'trace', " "'SASLprep'\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug debug-informatie weergeven\n" " --quiet geen meldingen produceren\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "slechts één van de opties '-s', '-e', '-d', '-a', '-u' of '-n' is mogelijk" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Tekenset: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Typ elke invoertekenreeks op een afzonderlijke regel, afgesloten met Enter.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "invoerfout" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "conversie van %s naar UTF-8 is mislukt" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "conversie van UTF-8 naar UCS-4 is mislukt" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "## stringprep_profile(): %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "conversie van UTF-8 naar %s is mislukt" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "## punycode_encode(): %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "onvoldoende geheugen beschikbaar" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "## punycode_decode(): %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "conversie van UCS-4 naar UTF-8 is mislukt" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "## idna_to_ascii_4z(): %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "## idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "## tld_check_4z (positie %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "## tld_check_4z(): %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "## idna_to_unicode_8z4z(): %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "kan NFKC-normalisering niet uitvoeren" #~ msgid "System iconv failed" #~ msgstr "De iconv()-systeemfunctie is mislukt" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Rapporteer gebreken in het programma aan <%s>;\n" #~ "meld fouten in de vertaling aan .\n" libidn-1.38/po/ro.po0000644000000000000000000002200114076273631011177 00000000000000# Mesajele în limba românã pentru libidn. # Copyright (C) 2003 Free Software Foundation, Inc. # Acest fiºier este distribuit sub aceeaºi licenþã ca ºi pachetul libidn. # Laurentiu Buzdugan , 2003. # # # msgid "" msgstr "" "Project-Id-Version: libidn 0.4.1\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2004-04-23 12:00-0500\n" "Last-Translator: Laurentiu Buzdugan \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:173 #, fuzzy, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "%s: Numai una din opþiunile -s, -e, -d, -a sau -u poate fi specificatã.\n" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Charset `%s'.\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Scrieþi fiecare ºir de intrare pe o singurã linie, terminatã cu un caracter " "linie-nouã.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, fuzzy, c-format msgid "could not convert from %s to UTF-8" msgstr "%s: nu am putut transforma din %s în UTF-8.\n" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, fuzzy, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "%s: nu am putut transforma din UTF-8 în UCS-4.\n" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, fuzzy, c-format msgid "could not convert from UTF-8 to %s" msgstr "%s: nu am putut transforma din UTF-8 în %s.\n" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, fuzzy, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "%s: nu am putut transforma din UCS-4 în UTF-8.\n" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "" #: src/idn.c:393 #, fuzzy, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "%s: idna_to_unicode_8z4z() a eºuat cu eroarea %d.\n" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "" #: src/idn.c:459 #, fuzzy, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "%s: idna_to_unicode_8z4z() a eºuat cu eroarea %d.\n" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "" #, c-format #~ msgid "%s: fgets() failed: " #~ msgstr "%s: fgets() a eºuat: " #, c-format #~ msgid "input[%d] = U+%04x\n" #~ msgstr "intrare[%d] = U+%04x\n" #, c-format #~ msgid "%s: stringprep_profile() failed with error %d.\n" #~ msgstr "%s: stringprep_profile() a eºuat cu eroarea %d.\n" #, c-format #~ msgid "output[%d] = U+%04x\n" #~ msgstr "ieºire[%d] = U+%04x\n" #, c-format #~ msgid "%s: punycode_encode() failed with error %d.\n" #~ msgstr "%s: punycode_encode() a eºuat cu eroarea %d.\n" #, c-format #~ msgid "%s: malloc() failed: " #~ msgstr "%s: malloc() a eºuat: " #, c-format #~ msgid "%s: punycode_decode() failed with error %d.\n" #~ msgstr "%s: punycode_decode() a eºuat cu eroarea %d.\n" #, c-format #~ msgid "%s: idna_to_ascii_4z() failed with error %d.\n" #~ msgstr "%s: idna_to_ascii_4z() a eºuat cu eroarea %d.\n" #, c-format #~ msgid "%s: TLD idna_to_unicode_8z8z() failed with error %d.\n" #~ msgstr "%s: TLD idna_to_unicode_8z8z() a eºuat cu eroarea %d.\n" #, c-format #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" #, c-format #~ msgid "%s: string rejected by TLD test (Unicode position %d)\n" #~ msgstr "%s: ºir refuzat de testul TLD (poziþia Unicode %d)\n" #, c-format #~ msgid "%s: tld_check_4z failed with error %d.\n" #~ msgstr "%s: tld_check_4z a eºuat cu eroarea %d.\n" libidn-1.38/po/pt_BR.po0000644000000000000000000002570214076273763011606 00000000000000# Brazilian Portuguese translation for libidn. # Copyright (C) 2020 Free Software Foundation, Inc. # Copyright (C) 2020 Simon Josefsson # This file is distributed under the same license as the libidn package. # Rafael Fontenelle , 2020. msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-27 05:03-0300\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Virtaal 1.0.0-beta1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Sucesso" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Preparação de string falhou" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode falhou" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Não-dígito/letra/hífen na entrada" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Sinal de menus proibido no início ou final (\"-\")" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Saída seria grande demais ou pequena demais" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Entrada não inicia com prefixo ACE (\"xn--\")" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "String não idempotente sob ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Entrada já contém prefixo ACE (\"xn--\")" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Erro de conversão de codificação de caracteres" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Não foi possível alocar memória" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "dlopen de sistema falhou" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Erro desconhecido" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "String não idempotente sob normalização Unicode NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Entrada inválida" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Saída excederia o espaço de buffer fornecido" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Limite do tamanho da string excedido" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Pontos de código não-atribuídos proibidos na entrada" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Pontos de código proibidos na entrada" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Propriedades bidirecionais conflitando na entrada" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "String bidirecional malformada " #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Pontos de código bidirecionais proibidos na entrada" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Erro ma definição de perfil de stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Opção conflita com o perfil" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Perfil desconhecido" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Normalização de unicode falhou (erro interno)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Pontos de código proibidos pelo domínio de topo" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Entrada faltando" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nenhum domínio de topo encontrado na entrada" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Tente \"%s --help\" para mais informações.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uso: %s [OPÇÃO]... [STRINGS]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Nome de domínio internacionalizado (IDN) para conversão de STRINGS ou " "entrada padrão.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Interface de linha de comando para a biblioteca de nome de domínio\n" "internacionalizado.\n" "\n" "Espera-se que todas as strings estejam codificados no conjunto de " "caracteres\n" "preferidos usado pelo seu locale. Use \"--debug\" para descobrir qual é " "esse\n" "conjunto de caracteres. Você pode sobrescrever o conjunto de caracteres " "usado\n" "definindo a variável de ambiente CHARSET.\n" "\n" "Para processar string que inicie com \"-\", por exemplo \"-foo\", use \"--" "\"\n" "para sinal no fim de parâmetros, como em: idn --quiet -a -- -foo\n" "\n" "Argumentos obrigatórios para opções longas são também são para as curtas.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Mostra ajuda e sai\n" " -V, --version Mostra versão e sai\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prepara string de acordo com o perfil nameprep\n" " -d, --punycode-decode Decodifica Punycode\n" " -e, --punycode-encode Codifica Punycode\n" " -a, --idna-to-ascii Converte para ACE de acordo com IDNA (padrão)\n" " -u, --idna-to-unicode Converte de ACE de acordo com IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Ativa opção IDNA AllowUnassigned (padrão é off)\n" " --usestd3asciirules Ativa opção IDNA UseSTD3ASCIIRules (padrão é " "off)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Não verifica string por regras específicas de " "TLD\n" " Apenas por --idna-to-ascii e --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normaliza string de acordo com Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=STRING Usa o perfil de stringprep especificado\n" " Perfis stringprep válidos: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Mostra informações de depuração\n" " --quiet Operação silenciosa\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "apenas um entre -s, -e, -d, -a, -u ou -n pode ser especificado" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Codificação de caracteres: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Digite cada string de entrada em uma linha, terminada por um caractere de " "linha nova.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "erro na entrada" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "não foi possível converter de %s para UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "não foi possível converter de UTF-8 para UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "não foi possível converter de UTF-8 para %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "não foi possível converter de UCS-4 para UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (posição %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "não foi possível fazer normalização NFKC" #~ msgid "System iconv failed" #~ msgstr "iconv do sistema falhou" libidn-1.38/po/hr.po0000644000000000000000000002537414076273630011207 00000000000000# Translation of libidn to Croatian. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Tomislav Krznar , 2012. msgid "" msgstr "" "Project-Id-Version: libidn 1.25\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2012-09-27 23:16+0200\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.4\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Uspjeh" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Priprema niza nije uspjela" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode nije uspio" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Ne-broj/slovo/crtica u ulazu" #: lib/strerror-idna.c:98 #, fuzzy msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Zabranjeni poÄetni ili zavrÅ¡ni minus („-â€)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Izlaz bi bio prevelik ili premalen" #: lib/strerror-idna.c:106 #, fuzzy msgid "Input does not start with ACE prefix ('xn--')" msgstr "Ulaz ne poÄinje s ACE prefiksom („xn--â€)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Niz nije idempotentan prema ToASCII" #: lib/strerror-idna.c:114 #, fuzzy msgid "Input already contain ACE prefix ('xn--')" msgstr "Ulaz već sadrži ACE prefiks („xn--â€)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Ne mogu alocirati memoriju" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "dlopen sustava nije uspio" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Nepoznata greÅ¡ka" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Niz nije idempotentan prema Unicode NFKC normalizaciji" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Neispravan ulaz" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Izlaz bi prekoraÄio dostupan prostor meÄ‘uspremnika" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "PrekoraÄeno ograniÄenje veliÄine niza" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Zabranjene nedodijeljene kodne toÄke na ulazu" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Zabranjene kodne toÄke na ulazu" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Konfliktna dvosmjerna svojstva u ulazu" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "IzobliÄen dvosmjerni niz" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Zabranjene dvosmjerne kodne toÄke na ulazu" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "GreÅ¡ka u stringprep definiciji profila" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Konflikt zastavice s profilom" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Nepoznat profil" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Unicode normalizacija nije uspjela (interna greÅ¡ka)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Kodne toÄke zabranjene vrÅ¡nom domenom" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Nedostaje ulaz" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nije pronaÄ‘ena vrÅ¡na domena u ulazu" #: src/idn.c:65 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "PokuÅ¡ajte „%s --help†za viÅ¡e informacija.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uporaba: %s [OPCIJA]... [NIZOVI]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Pretvaranje NIZOVA ili standardnog ulaza u internacionalizirano ime domene " "(IDN).\n" "\n" #: src/idn.c:76 #, fuzzy msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "SuÄelje naredbenog retka za biblioteku internacionaliziranih imena domena.\n" "\n" "Svi znakovni nizovi bi trebali biti kodirani u skupu znakova odreÄ‘enom\n" "vaÅ¡im lokalom. Koristite „--debug†kako biste ga otkrili. Možete ga\n" "promijeniti postavljanjem varijable okoline CHARSET.\n" "\n" "Za obradu niza koji poÄinje s „-â€, npr. „-fooâ€, koristite „--†za\n" "oznaÄavanje kraja popisa parametara, npr. „idn --quiet -a -- -fooâ€.\n" "\n" "Obavezni argumenti dugaÄkih opcija takoÄ‘er su obavezni i za kratke opcije.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help IspiÅ¡i pomoć i izaÄ‘i\n" " -V, --version IspiÅ¡i inaÄicu i izaÄ‘i\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Pripremi niz prema nameprep profilu\n" " -d, --punycode-decode Dekodiraj Punycode\n" " -e, --punycode-encode Kodiraj Punycode\n" " -a, --idna-to-ascii Pretvori u ACE u skladu s IDNA (zadani naÄin)\n" " -u, --idna-to-unicode Pretvori iz ACE u skladu s IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Promijeni IDNA AllowUnassigned zastavicu (poÄetno " "iskljuÄeno)\n" " --usestd3asciirules Promijeni IDNA UseSTD3ASCIIRules zastavicu " "(poÄetno iskljuÄeno)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Ne provjeravaj TLD specifiÄna pravila u nizu\n" " Samo za --idna-to-ascii i --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normaliziraj niz u skladu s Unicode v3.2 NFKC\n" #: src/idn.c:110 #, fuzzy msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=NIZ Koristi navedeni stringprep profil\n" " Ispravni stringprep profili: „Nameprepâ€,\n" " „iSCSIâ€, „Nodeprepâ€, „Resourceprepâ€,\n" " „traceâ€, „SASLprepâ€\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug IspiÅ¡i informacije za debugiranje\n" " --quiet Rad bez ispisa\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "smijete navesti samo jednu od opcija -s, -e, -d, -a, -u ili -n" #: src/idn.c:182 #, fuzzy, c-format msgid "Charset: %s\n" msgstr "Skup znakova „%sâ€.\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Unesite svaki ulazni niz u zasebnom retku, zavrÅ¡enom znakom novog retka.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "ulazna greÅ¡ka" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "ne mogu pretvoriti iz %s u UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "ne mogu pretvoriti iz UTF-8 u UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "ne mogu pretvoriti iz UTF-8 u %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "ne mogu pretvoriti iz UCS-4 u UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (položaj %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "ne mogu izvrÅ¡iti NFKC normalizaciju" #~ msgid "System iconv failed" #~ msgstr "iconv sustava nije uspio" libidn-1.38/po/zh_CN.gmo0000644000000000000000000001733714076273763011752 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6Mm¦~š%bÀ˜#k¼D(ÞmL\oˆ˜¶´*k#–º3Ö* )5)_=‰ ÇÔ ðý)C$Y'~¦Å#Õ7ù1G]d.y+¨)Ô þ &!Hb™¶Òè "/66m–®Í1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2021-02-06 12:58-0500 Last-Translator: Boyuan Yang <073plan@gmail.com> Language-Team: Chinese (simplified) Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Poedit 2.4.2 --allow-unassigned åˆ‡æ¢ IDNA AllowUnassigned 标识(默认关闭) --usestd3asciirules åˆ‡æ¢ IDNA UseSTD3ASCIIRules 标识(默认关闭) --debug 打å°è°ƒè¯•ä¿¡æ¯ --quiet å¤„ç†æ—¶ä¸æ˜¾ç¤ºä¿¡æ¯ --no-tld 䏿Œ‰ TLD 指定的规则检查字符串 仅对 --idna-to-ascii å’Œ --idna-to-unicode 有效 -h, --help æ‰“å°æ­¤å¸®åŠ©å¹¶é€€å‡º -V, --version 打å°ç¨‹åºç‰ˆæœ¬å¹¶é€€å‡º -n, --nfkc 按 Unicode v3.2 NFKC 正规化字符串 -p, --profile=STRING 使用指定的 stringprep é…置文件æ¥ä»£æ›¿ 有效的 stringprep é…置文件:Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep 按 nameprep é…置文件 准备字符串 -d, --punycode-decode è§£ç  Punycode -e, --punycode-encode ç¼–ç  Punycode -a, --idna-to-ascii 按 IDNA 转æ¢ä¸º ACE (默认方å¼) -u, --idna-to-unicode 按 IDNA 从 ACE è½¬æ¢ æ— æ³•åˆ†é…内存字符编ç è½¬æ¢é”™è¯¯å­—符集:%s é¡¶çº§åŸŸä¸æŽ¥å—代ç ç‚¹å›½é™…化域å库的命令行界é¢ã€‚ 所有的字符串都将以您所在区域的最åˆé€‚的字符集进行编ç ã€‚ 使用 --debug å¯ä»¥æ‰¾å‡ºè¿™ä¸ªå­—符集。 您å¯é€šè¿‡è®¾ç½®çŽ¯å¢ƒå˜é‡ CHARSET æ¥é‡è®¾è¿™ä¸€å­—符集。 è¦æƒ³å¤„ç†ä»¥â€˜-’开始的字符串,如‘-foo’,请使用‘--â€™æ¥æ ‡è¯† 傿•°ç»“æŸï¼Œä¾‹å¦‚:idn --quiet -a -- -foo é•¿é€‰é¡¹æ‰€å¿…éœ€çš„å‚æ•°å¯¹äºŽçŸ­é€‰é¡¹æ¥è¯´ä¹Ÿæ˜¯å¿…需的。 输入中出现相互冲çªçš„åŒå‘属性Stringpref é…置文件定义出错标识与é…置文件冲çªä¸èƒ½ä½¿ç”¨å‡å·ï¼ˆ'-')作为起始或终止符输入中ä¸èƒ½å‡ºçŽ°æœªèµ‹å€¼çš„ä»£ç ç‚¹è¾“入已ç»åŒ…å« ACE å‰ç¼€ï¼ˆ'xn--')输入未以 ACE å‰ç¼€ï¼ˆ'xn--')开头字符串或是标准输入的国际化域å(IDN)转化。 无效输入åŒå‘字符串格å¼é”™è¯¯è¾“入缺失输入中未å‘çŽ°é¡¶çº§åŸŸè¾“å…¥ä¸­å‡ºçŽ°éžæ•°å­—/å­—æ¯/连字符输出太大或太å°è¾“入将溢出所æä¾›çš„缓冲区输入中ä¸èƒ½å‡ºçްåŒå‘的代ç ç‚¹è¾“入中ä¸èƒ½å‡ºçް代ç ç‚¹Punycode 失败ToASCII ä¸­å­—ç¬¦ä¸²ä¸æ˜¯å¹‚等的Unicode NFKC æ­£è§„åŒ–è¿‡ç¨‹ä¸­å­—ç¬¦ä¸²ä¸æ˜¯å¹‚等的预备字符串失败字符串大å°è¶Šç•ŒæˆåŠŸç³»ç»Ÿ dlopen 失败å°è¯•用‘%s --helpâ€™èŽ·å–æ›´å¤šä¿¡æ¯ã€‚ 输入时,æ¯ä¸ªå­—符串å•å ä¸€è¡Œã€‚ Unicode 正规化失败(内部错误)未知错误未知的é…置文件用法: %s [选项]... [字符串]... 无法将 %s 转为 UTF-8无法将 UCS-4 转为 UTF-8无法将 UTF-8 转为 %s无法将 UTF-8 转为 UCS-4ä¸èƒ½è¿›è¡Œ NFKC 标准化idna_to_ascii_4z:%sidna_to_unicode_8z4z (TLD):%sidna_to_unicode_8z4z:%s输入错误mallocåªèƒ½æŒ‡å®š -s, -e, -d, -a, -u 或是 -n 中的一个punycode_decode: %spunycode_encode:%sstringprep_profile:%stld_check_4z (ä½ç½® %lu):%stld_check_4z:%slibidn-1.38/po/Makevars0000644000000000000000000000674114076273557011737 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \ \ --flag=_:1:pass-c-format\ --flag=N_:1:pass-c-format\ --flag=error:3:c-format --flag=error_at_line:5:c-format\ $${end_of_xgettext_options+} # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This tells whether or not to prepend "GNU " prefix to the package # name that gets inserted into the header of the $(DOMAIN).pot file. # Possible values are "yes", "no", or empty. If it is empty, try to # detect it automatically by scanning the files in $(top_srcdir) for # "GNU packagename" string. PACKAGE_GNU = # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = bug-libidn@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = no # These options get passed to msgmerge. # Useful options are in particular: # --previous to keep previous msgids of translated messages, # --quiet to reduce the verbosity. MSGMERGE_OPTIONS = # These options get passed to msginit. # If you want to disable line wrapping when writing PO files, add # --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and # MSGINIT_OPTIONS. MSGINIT_OPTIONS = # This tells whether or not to regenerate a PO file when $(DOMAIN).pot # has changed. Possible values are "yes" and "no". Set this to no if # the POT file is checked in the repository and the version control # program ignores timestamps. PO_DEPENDS_ON_POT = yes # This tells whether or not to forcibly update $(DOMAIN).pot and # regenerate PO files on "make dist". Possible values are "yes" and # "no". Set this to no if the POT file and PO files are maintained # externally. DIST_DEPENDS_ON_UPDATE_PO = yes libidn-1.38/po/fi.gmo0000644000000000000000000001477514076273630011343 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 ÚI ®$hÓ¯<fì^SE²ø>9O(‰$²J×O"r.†µ0Ä<õ)2)\D†4Ë7@W$˜½Ù*âM 2[ŽŸ,³4à85N7„"¼ßô , 8FF¡µÌì*-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2011-04-30 15:25+0200 Last-Translator: Jorma Karvonen Language-Team: Finnish Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=n != 1; X-Generator: KBabel 1.11.4 --allow-unassigned Vaihda â€IDNA AllowUnassignedâ€-lipun tilaa (oletus off) --usestd3asciirules Vaihda â€IDNA UseSTD3ASCIIRulesâ€-lipun tilaa (oletus off) --debug Tulosta virheenjäljitystiedot --quiet Hiljainen toiminta --no-tld Älä etsi merkkijonosta TLD-kohtaisia sääntöjä Vain valitsimille â€--idna-to-ascii†ja â€--idna-to-unicode†-h, --help Tulosta ohje ja poistu -V, --version Tulosta versio ja poistu -n, --nfkc Normeeraa merkkijono â€Unicode v3.2 NFKCâ€-koodauksen mukaisesti -s, --stringprep Valmistele merkkijono â€nameprepâ€-profiilin mukaisesti -d, --punycode-decode Pura Punycode-koodaus -e, --punycode-encode Koodaa Punycode-koodauksella -a, --idna-to-ascii Muunna ACE-koodiksi IDNA-koodista (oletustila) -u, --idna-to-unicode Muunna ACE-koodista IDNA-koodiksi Ei voida varata muistiaCode points-skalaariarvot kiellettyjä ylätason toimialueessaRistiriitaisia kaksisuuntaisia ominaisuuksia syötteessäVirhe strngprep-profiilimäärittelyssäLippu ristiriidassa profiilin kanssaKiellettyjä määräämättömiä code points-skalaariarvoja syötteessäKansainvälistetty verkkotunnus (IDN) muuntaa MERKKIJONOT tai vakiosyötteen. Virheellinen syöteVäärän muotoinen kaksisuuntainen merkkijonoSyöte puuttuuSyötteestä ei löytynyt ylätason toimialuettaSyötteessä on merkki, joka ei ole numero/kirjain/tavuviivaTuloste olisi liian suuri tai liian pieniTuloste ylittäisi varatun puskurin tilanKiellettyjä kaksisuuntaisia code points-skalaariarvoja syötteessäKiellettyjä code points-skalaariarvoja syötteessäPunycode-koodaus ei onnistunutMerkkijono ei ole idempotentti ToASCII-toiminnon aikanaMerkkijono ei ole idempotentti Unicode NFKC-normeerauksen aikanaMerkkijonon valmistelu ei onnistunutMerkkijonon koko ylitettiinOnnistuiJärjestelmän dlopen-käsky ei onnistunutKirjoita jokainen merkkijono omalle rivilleen ja lopeta rivi rivinvaihdolla. Unicode-normeeraus ei onnistunut (sisäinen virhe)Tuntematon virheTuntematon profiiliKäyttö: %s [VALITSIN]... [MERKKIJONOT]... ei voitu muuntaa %s-merkistöstä UTF-8-merkistöönei voitu muuntaa UCS-4-merkistöstä UTF-8-merkistöön.ei voitu muuntaa UTF-8-merkistöstä %s-merkistöön.ei voitu muuntaa UTF-8-merkistöstä UCS-4-merkistöönei voitu tehdä NFKC-normeerausta.idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %ssyötevirhemalloc-käskyvain yksi valitsimista -s, -e, -d, -a, -u tai -n voidaan määritelläpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (sijainti %lu): %stld_check_4z: %slibidn-1.38/po/ja.gmo0000644000000000000000000000624514076273630011330 00000000000000Þ•#4/L * -K&y )» åó "  C&d-‹-¹ç#6;rŒ§¯OÄ- BP`u”­´ÈÜó“˜4©/Þ" $1 6V !˜ º ,Ë $ø  *: 7e " À -Õ 5 9 L g l ;… Á á î   5 N U i } ”    "!# Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInvalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %smallocpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z: %sProject-Id-Version: libidn 0.5.16 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2006-03-21 11:20+0900 Last-Translator: GOTO Masanori Language-Team: Japanese Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-JP Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. ¥á¥â¥ê³ÎÊݤ˼ºÇԥȥåץì¥Ù¥ë¥É¥á¥¤¥ó¤Ë¤è¤Ã¤Æ¶Ø»ß¤µ¤ì¤¿¥³¡¼¥É¥Ý¥¤¥ó¥ÈÁÐÊý¸þ(bidirectional)À­¤¬ÆþÎÏÃæ¤Ç¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹stringprep¥×¥í¥Õ¥¡¥¤¥ëÄêµÁ¤Ç¥¨¥é¡¼¥Õ¥é¥°¤¬¥×¥í¥Õ¥¡¥¤¥ë¤È¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹µö¤µ¤ì¤Æ¤¤¤Ê¤¤Ì¤³äÅö¤Æ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤¬ÆþÎϤˤ¢¤ê¤Þ¤¹ÉÔÀµ¤ÊÆþÎÏÉÔÀµ¤ÊÁÐÊý¸þ(bidirectional)ʸ»úÎóÆþÎϤ¬¤¢¤ê¤Þ¤»¤ó¥È¥Ã¥×¥ì¥Ù¥ë¥É¥á¥¤¥ó¤¬ÆþÎÏÃæ¤Ëȯ¸«¤Ç¤­¤Þ¤»¤óÆþÎÏÃæ¤Ë¿ôÃÍ/ʸ»ú/¥Ï¥¤¥Õ¥ó°Ê³°¤¬Â¸ºß½ÐÎϤÏÂ礭¤¹¤®¤ë¤«¾®¤µ¤¹¤®¤ë½ÐÎϤÏÍ¿¤¨¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡¶õ´Ö¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó¶Ø»ßÁÐÊý¸þ(bidirectional)¥³¡¼¥É¥Ý¥¤¥ó¥È¤¬ÆþÎϤˤ¢¤ê¤Þ¤¹¶Ø»ß¥³¡¼¥É¥Ý¥¤¥ó¥È¤¬ÆþÎϤˤ¢¤ê¤Þ¤¹PunycodeÁàºîÃæ¤Ç¼ºÇÔToASCIIÁàºî¤Ë¤è¤ë½ÐÎÏʸ»úÎó¤ÏÅù¤·¤¯¤¢¤ê¤Þ¤»¤óUnicode¤ÎNFKCÀµµ¬²½¤Ë¤è¤ë½ÐÎÏʸ»úÎó¤ÏÅù¤·¤¯¤¢¤ê¤Þ¤»¤óʸ»úÎó½àÈ÷Ãæ¤Ç¼ºÇÔʸ»úÎóĹ¤Î¸Â³¦¤ò±Û¤¨¤Þ¤·¤¿À®¸ù¥·¥¹¥Æ¥à´Ø¿ôdlopen¤Ç¼ºÇÔ²þ¹Ôʸ»ú¤Ç½ªÃ¼¤µ¤ì¤¿ÆþÎÏʸ»úÎó¤ò1¹Ô¤º¤Ä¥¿¥¤¥×¤·¤Æ¤¯¤À¤µ¤¤. UnicodeÀµµ¬²½¤Ë¼ºÇÔ(ÆâÉô¥¨¥é¡¼)̤ÃΤΥ¨¥é¡¼Ì¤ÃΤΥץí¥Õ¥¡¥¤¥ëidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %smallocpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z: %slibidn-1.38/po/hu.gmo0000644000000000000000000001443414076273630011351 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 ÔI œo»£+uÏOE<•Ò0ò1#'U}0šWË#,9f4x%­)Ó/ý+-Yx(Œ<µ%ò 8B`]/¾îþ-$>'c$‹'°,Ø9 R`Bgª¾Ò!é *-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.29 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2014-08-31 15:46+0200 Last-Translator: Balázs Úr Language-Team: Hungarian Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Lokalize 1.5 --allow-unassigned IDNA AllowUnassigned jelzÅ‘ váltása (alap: off) --usestd3asciirules IDNA UseSTD3ASCIIRules jelzÅ‘ váltása (alap: off) --debug Hibakeresési információk kiírása --quiet Csendes működés --no-tld Ne ellenÅ‘rizzen szöveget TLD specifikus szabályokhoz Csak --idna-to-ascii és --idna-to-unicode esetén -h, --help Súgó kiírása és kilépés -V, --version Verzió kiírása és kilépés -n, --nfkc Szöveg normalizálása a Unicode v3.2 NFKC szerint -s, --stringprep Szöveg elÅ‘készítése a nameprep profil szerint -d, --punycode-decode Punycode dekódolása -e, --punycode-encode Punycode kódolása -a, --idna-to-ascii Ãtalakítás ACE-re az IDNA szerint (alap mód) -u, --idna-to-unicode Ãtalakítás ACE-rÅ‘l az IDNA szerint Nem lehet memóriát lefoglalniA felsÅ‘szintű tartomány tiltja a kódpontokatÜtközÅ‘ kétirányú tulajdonságok a bemenetenHiba a stringprep profil definícióbanJelzőütközés a profillalTiltott nem hozzárendelt kódpontok a bemenetenInternationalized Domain Name (IDN) átalakított SZÖVEGEK vagy szabványos bemenet. Érvénytelen bemenetHelytelenül formázott kétirányú szövegHiányzó bemenetNem található felsÅ‘szintű tartomány a bemenetenNem szám/betű/kötÅ‘jel a bemenetenA kimenet túl nagy vagy túl kicsi lenneA kimenet túllépné a megadott pufferméretetTiltott kétirányú kódpontok a bemenetenTiltott kódpontok a bemenetenPunycode sikertelenA szöveg nem idempotens a ToASCII alattA szöveg nem idempotens a Unicode NFKC normalizálás alattA szöveg elÅ‘készítés sikertelen.A szövegméret korlát elérveSikerültRendszer dlopen sikertelenMinden bemeneti szöveget önmagával egy sorba gépeljen be, egy új sor karakterrel lezárva. Unicode normalizálás sikertelen (belsÅ‘ hiba)Ismeretlen hibaIsmeretlen profilHasználat: %s [KAPCSOLÓ]… [SZÖVEGEK]… nem lehet átalakítani: %s -> UTF-8nem lehet átalakítani: UCS-4 -> UTF-8nem lehet átalakítani: UTF-8 -> %snem lehet átalakítani: UTF-8 -> UCS-4nem lehet NFKC normalizálást végrehajtaniidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sbemeneti hibamalloccsak a következÅ‘k egyike adható meg: -s, -e, -d, -a, -u vagy -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (%lu. pozíció): %stld_check_4z: %slibidn-1.38/po/stamp-po0000644000000000000000000000001214076273631011700 00000000000000timestamp libidn-1.38/po/uk.gmo0000644000000000000000000002551614076273763011366 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6MmË~J©iíÕy×GQ¬™2FYy ÓTôÜIa&>ˆ;ÇV _Z Iº T!¥Y!*ÿ!T*"-"W­"q#jw#`â#`C$I¤$î$8%^?%Mž%Fì%3&*D&Yo&É&nY'È'!è'C (SN(V¢(Sù(VM)B¤)ç)ü)*+4*`*pg*Ø*ì*+%+=+1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-23 20:12+0300 Last-Translator: Yuri Chornoivan Language-Team: Ukrainian Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Lokalize 20.07.70 Plural-Forms: nplurals=1; plural=0; --allow-unassigned увімкнути або вимкнути прапорець AllowUnassigned IDNA (типово вимкнено) --usestd3asciirules увімкнути або вимкнути прапорець UseSTD3ASCIIRules IDNA (типово вимкнено) --debug вивеÑти діагноÑтичні дані --quiet обробка без додаткових повідомлень --no-tld не перевірÑти Ñ€Ñдок на викориÑÑ‚Ð°Ð½Ð½Ñ Ñпецифічних правил TLD Лише Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² --idna-to-ascii Ñ– --idna-to-unicode -h, --help вивеÑти довідкові дані Ñ– завершити роботу -V, --version вивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу -n, --nfkc нормалізувати Ñ€Ñдок відповідно до NFKC Unicode верÑÑ–Ñ— 3.2 -p, --profile=РЯДОК викориÑтовувати вказаний профіль stringprep profile instead Можливі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñ–Ð² stringprep: Nameprep, iSCSI, Nodeprep, Resourceprep, trace, SASLprep -s, --stringprep обробити Ñ€Ñдок відповідно до профілю nameprep -d, --punycode-decode декодувати Punycode -e, --punycode-encode закодувати у Punycode -a, --idna-to-ascii перетворити на ACE відповідно до IDNA (типовий режим) -u, --idna-to-unicode перетворити з ACE відповідно до IDNA Ðе вдалоÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ пам'ÑтьПомилка під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ ÑимволівÐабір Ñимволів: %s Символи коду, заборонені доменом вищого рівнÑÐ†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка до бібліотеки інтернаціоналізованих назв доменів. Програма вважає, що кодуваннÑм вÑÑ–Ñ… Ñ€Ñдків Ñ” оÑновне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ— локалі. СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ «--debug», щоб переглÑнути дані щодо кодуваннÑ. Змінити набір Ñимволів можна за допомогою змінної Ñередовища CHARSET. Ð”Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ñдка, що починаєтьÑÑ Ð· «-», наприклад, «-foo» додайте у команду «--» Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð². Приклад: idn --quiet -a -- -foo. Обов'Ñзкові аргументи Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² у розгорнутому запиÑів Ñ” обов'Ñзковими Ñ– Ð´Ð»Ñ Ñкорочених форм запиÑу. Суперечливі двонапрÑмні влаÑтивоÑті у вхідних данихПомилка у визначені профілю stringprepПрапорець конфліктує з профілемÐекоректний початковий або кінцевий Ð´ÐµÑ„Ñ–Ñ («-»)Ðекоректні непов'Ñзані Ñимволи коду у вхідних данихВхідні дані вже міÑÑ‚Ñть Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ ACE («xn--»)Вхідні дані не починаютьÑÑ Ð· префікÑа ACE («xn--»)ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Internationalized Domain Name (IDN) РЯДКІВ або даних зі Ñтандартного джерела вхідних даних. Ðекоректні вхідні даніПомилка у форматуванні двонаправленого Ñ€ÑдкаÐе вказано вхідних данихУ вхідних даних не знайдено домену вищого рівнÑСимвол, відмінний від цифри, літери або дефіÑа у вхідних данихВиведені дані будуть занадто об'ємними або занадто малимиОб'єм виведених даних перевищує наданий об'єм буфераÐекоректні двонапрÑмні Ñимволи коду у вхідних данихÐекоректні Ñимволи коду у вхідних данихПомилка punycodeРÑдок не Ñ” ідемпотентним у ToASCIIРÑдок не Ñ” ідемпотентним піÑÐ»Ñ NFKC-нормалізації UnicodeПомилка під Ñ‡Ð°Ñ Ñпроби Ð¿Ñ€Ð¸Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÑдкаПеревищено Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° довжину Ñ€ÑдкаВиконаноПомилка ÑиÑтемного dlopenВиконайте команду «%s --help», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ. Виводити кожен Ñ€Ñдок у окремому Ñ€Ñдку, розділÑти Ñ€Ñдки Ñимволом нового Ñ€Ñдка. Помилка під Ñ‡Ð°Ñ Ñпроби нормалізації Unicode (Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°)Ðевідома помилкаÐевідомий профільВикориÑтаннÑ: %s [ПÐРÐМЕТР]... [РЯДКИ]... не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату %s на UTF-8не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату UCS-4 на UTF-8не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату UTF-8 на %sне вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату UTF-8 на UCS-4не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ NFKC-нормалізаціюidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sпомилка у вхідних данихmallocможна викориÑтовувати лише один з параметрів -s, -e, -d, -a, -u або -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ %lu): %stld_check_4z: %slibidn-1.38/po/id.gmo0000644000000000000000000001401514076273630011324 00000000000000Þ•3´GLh–ic‘daöKX'¤Ì*ã-&<c)~I¨ ò  "- P &q -˜ -Æ ô  #$ 6H  ™ ´ ¼ OÑ -! O ] #m "‘ %´ "Ú %ý # C X w œ 5£ Ù í   8 I šç[‚™ÞhxLá.M)f##´Ø.öK%qƒŸ2®"á.63'j’²&Á6è6RYRm*Àëý%$8']#…&©$Ðõ ) BPGWŸ³ÇÞü*-)1 %!(.,+&  $"# 3 2 /0' --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCode points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden unassigned code points in inputInternationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.24 Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2012-05-18 17:42+0700 Last-Translator: Andhika Padmawan Language-Team: Indonesian Language: id MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. --allow-unassigned Ubah bendera AllowUnassigned IDNA (standar mati) --usestd3asciirules Ubah bendera UseSTD3ASCIIRules IDNA (standar mati) --debug Cetak informasi awakutu --quiet Operasi diam --no-tld Jangan cek benang untuk peraturan spesifik TLD Hanya untuk --idna-to-ascii dan --idna-to-unicode -h, --help Cetak bantuan lalu keluar -V, --version Cetak versi lalu keluar -n, --nfkc Normalisasi benang berdasarkan Unicode v3.2 NFKC -s, --stringprep Siapkan benang berdasarkan profil nameprep -d, --punycode-decode Awasandi Punycode -e, --punycode-encode Sandi Punycode -a, --idna-to-ascii Konversi ke ACE menurut IDNA (mode standar) -u, --idna-to-unicode Konversi dari ACE menurut IDNA Tak dapat alokasi memoriTitik kode dilarang oleh ranah level atasProperti dwiarah konflik di masukanGalat di definisi profil stringprepBendera konflik dengan profilTitik kode tak ditugaskan terlarang di masukanBENANG konversi Internationalized Domain Name (IDN), atau masukan standar. Masukan tidak sahBenang dwiarah salah bentukMasukan hilangTak ada ranah level atas yang ditemukan di masukanNon-digit/huruf/sambung di masukanKeluaran akan terlalu besar atau terlalu kecilKeluaran akan melebihi ruang penyangga yang disediakanTitik kode dwiarah terlarang di masukanTitik kode terlarang di masukanPunycode gagalBenar tidak idempoten di bawah ToASCIIBenang tak idempoten di bawah normalisasi Unicode NFKCPenyiapan benang gagalBatas ruang benang tercapaiSuksesSistem dlopen gagalKetik tiap benang masukan pada baris itu sendiri, diakhiri oleh karakter newline. Normalisasi unicode gagal (galat internal)Galat tak dikenalProfil tak diketahuiPenggunaan: %s [OPSI]... [BENANG]... tak dapat konversi dari %s ke UTF-8.tak dapat konversi dari UCS-4 ke UTF-8.tak dapat konversi dari UTF-8 ke %stak dapat konversi dari UTF-8 ke UCS-4tak dapat melakukan normalisasi NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sgalat masukanmallocHanya salah satu dari -s, -e, -d, -a, -u, atau -n yang dapat ditentukanpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (posisi %lu): %stld_check_4z: %slibidn-1.38/po/uk.po0000644000000000000000000003247214076273763011221 00000000000000# Ukrainian translation of libidn. # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Yuri Chornoivan , 2011, 2020. msgid "" msgstr "" "Project-Id-Version: libidn 1.36a\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2021-07-22 15:50+0200\n" "PO-Revision-Date: 2020-07-23 20:12+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Lokalize 20.07.70\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:87 lib/strerror-tld.c:68 msgid "Success" msgstr "Виконано" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ð¿Ñ€Ð¸Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñдка" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Помилка punycode" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Символ, відмінний від цифри, літери або дефіÑа у вхідних даних" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign ('-')" msgstr "Ðекоректний початковий або кінцевий Ð´ÐµÑ„Ñ–Ñ («-»)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Виведені дані будуть занадто об'ємними або занадто малими" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix ('xn--')" msgstr "Вхідні дані не починаютьÑÑ Ð· префікÑа ACE («xn--»)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "РÑдок не Ñ” ідемпотентним у ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix ('xn--')" msgstr "Вхідні дані вже міÑÑ‚Ñть Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ ACE («xn--»)" #: lib/strerror-idna.c:118 lib/strerror-stringprep.c:127 lib/strerror-tld.c:84 msgid "Character encoding conversion error" msgstr "Помилка під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñимволів" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:135 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ пам'Ñть" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Помилка ÑиÑтемного dlopen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:139 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Ðевідома помилка" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "РÑдок не Ñ” ідемпотентним піÑÐ»Ñ NFKC-нормалізації Unicode" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ðекоректні вхідні дані" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:111 msgid "Output would exceed the buffer space provided" msgstr "Об'єм виведених даних перевищує наданий об'єм буфера" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Перевищено Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° довжину Ñ€Ñдка" #: lib/strerror-stringprep.c:91 msgid "Forbidden unassigned code points in input" msgstr "Ðекоректні непов'Ñзані Ñимволи коду у вхідних даних" #: lib/strerror-stringprep.c:95 msgid "Prohibited code points in input" msgstr "Ðекоректні Ñимволи коду у вхідних даних" #: lib/strerror-stringprep.c:99 msgid "Conflicting bidirectional properties in input" msgstr "Суперечливі двонапрÑмні влаÑтивоÑті у вхідних даних" #: lib/strerror-stringprep.c:103 msgid "Malformed bidirectional string" msgstr "Помилка у форматуванні двонаправленого Ñ€Ñдка" #: lib/strerror-stringprep.c:107 msgid "Prohibited bidirectional code points in input" msgstr "Ðекоректні двонапрÑмні Ñимволи коду у вхідних даних" #: lib/strerror-stringprep.c:115 msgid "Error in stringprep profile definition" msgstr "Помилка у визначені профілю stringprep" #: lib/strerror-stringprep.c:119 msgid "Flag conflict with profile" msgstr "Прапорець конфліктує з профілем" #: lib/strerror-stringprep.c:123 msgid "Unknown profile" msgstr "Ðевідомий профіль" #: lib/strerror-stringprep.c:131 msgid "Unicode normalization failed (internal error)" msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби нормалізації Unicode (Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Символи коду, заборонені доменом вищого рівнÑ" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Ðе вказано вхідних даних" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "У вхідних даних не знайдено домену вищого рівнÑ" #: src/idn.c:65 #, c-format msgid "Try '%s --help' for more information.\n" msgstr "Виконайте команду «%s --help», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "ВикориÑтаннÑ: %s [ПÐРÐМЕТР]... [РЯДКИ]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Internationalized Domain Name (IDN) РЯДКІВ або даних зі " "Ñтандартного джерела вхідних даних.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use --debug to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with '-', for example '-foo', use '--'\n" "to signal the end of parameters, as in: idn --quiet -a -- -foo\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка до бібліотеки інтернаціоналізованих назв " "доменів.\n" "\n" "Програма вважає, що кодуваннÑм вÑÑ–Ñ… Ñ€Ñдків Ñ” оÑновне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ—\n" "локалі. СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ «--debug», щоб переглÑнути дані щодо " "кодуваннÑ.\n" "Змінити набір Ñимволів можна за допомогою змінної Ñередовища CHARSET.\n" "\n" "Ð”Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ñдка, що починаєтьÑÑ Ð· «-», наприклад, «-foo» додайте у команду " "«--»\n" "Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð². Приклад: idn --quiet -a -- -foo.\n" "\n" "Обов'Ñзкові аргументи Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² у розгорнутому запиÑів Ñ” обов'Ñзковими " "Ñ– длÑ\n" "Ñкорочених форм запиÑу.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help вивеÑти довідкові дані Ñ– завершити роботу\n" " -V, --version вивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep обробити Ñ€Ñдок відповідно до профілю nameprep\n" " -d, --punycode-decode декодувати Punycode\n" " -e, --punycode-encode закодувати у Punycode\n" " -a, --idna-to-ascii перетворити на ACE відповідно до IDNA (типовий " "режим)\n" " -u, --idna-to-unicode перетворити з ACE відповідно до IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned увімкнути або вимкнути прапорець AllowUnassigned " "IDNA (типово вимкнено)\n" " --usestd3asciirules увімкнути або вимкнути прапорець " "UseSTD3ASCIIRules IDNA (типово вимкнено)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld не перевірÑти Ñ€Ñдок на викориÑÑ‚Ð°Ð½Ð½Ñ Ñпецифічних " "правил TLD\n" " Лише Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² --idna-to-ascii Ñ– --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc нормалізувати Ñ€Ñдок відповідно до NFKC Unicode " "верÑÑ–Ñ— 3.2\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: Nameprep\n" " iSCSI Nodeprep Resourceprep trace SASLprep\n" msgstr "" " -p, --profile=РЯДОК викориÑтовувати вказаний профіль stringprep " "profile instead\n" " Можливі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñ–Ð² stringprep: " "Nameprep,\n" " iSCSI, Nodeprep, Resourceprep,\n" " trace, SASLprep\n" #: src/idn.c:115 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug вивеÑти діагноÑтичні дані\n" " --quiet обробка без додаткових повідомлень\n" #: src/idn.c:173 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "можна викориÑтовувати лише один з параметрів -s, -e, -d, -a, -u або -n" #: src/idn.c:182 #, c-format msgid "Charset: %s\n" msgstr "Ðабір Ñимволів: %s\n" #: src/idn.c:186 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Виводити кожен Ñ€Ñдок у окремому Ñ€Ñдку, розділÑти Ñ€Ñдки Ñимволом нового " "Ñ€Ñдка.\n" #: src/idn.c:198 #, c-format msgid "input error" msgstr "помилка у вхідних даних" #: src/idn.c:209 src/idn.c:272 src/idn.c:355 src/idn.c:432 src/idn.c:513 #, c-format msgid "could not convert from %s to UTF-8" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату %s на UTF-8" #: src/idn.c:217 src/idn.c:242 src/idn.c:279 src/idn.c:496 src/idn.c:525 #: src/idn.c:549 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату UTF-8 на UCS-4" #: src/idn.c:234 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:257 src/idn.c:300 src/idn.c:343 src/idn.c:501 src/idn.c:562 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату UTF-8 на %s" #: src/idn.c:293 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:315 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:321 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:338 src/idn.c:362 src/idn.c:440 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з формату UCS-4 на UTF-8" #: src/idn.c:379 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:393 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:407 src/idn.c:480 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ %lu): %s" #: src/idn.c:410 src/idn.c:486 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:459 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:538 #, c-format msgid "could not do NFKC normalization" msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ NFKC-нормалізацію" libidn-1.38/po/fr.gmo0000644000000000000000000002136614076273763011355 00000000000000Þ•;ôOÌ– c ‘a–KøÍD': #Q u *‚ ç­ -• &à ê . )4 )^ -ˆ I¶  - "; ^ & -¦ -Ô "#26V§ÂÊ&ßO-V „’#¢"Æ%é"%2Xx¬ ÅÑ5Ø"6MmÁ~ü@l=âªrsÖt!K m.޽:Ô¶@Æ/(7A`A¢8ä;2YŒ&ÄCÖ9+T)€Bª2í $35X'Ž,¶ãë3 G9 4 ¶ Æ ,Õ (!++!(W!+€!¬!Ì! ã!""0"D7"|"’"¨"!Á"ã"1)-( *87 &;#%94/0+2 5 :" 6$, 3'!. --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharacter encoding conversion errorCharset: %s Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with '-', for example '-foo', use '--' to signal the end of parameters, as in: idn --quiet -a -- -foo Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign ('-')Forbidden unassigned code points in inputInput already contain ACE prefix ('xn--')Input does not start with ACE prefix ('xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedTry '%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: GNU libidn-1.36a Report-Msgid-Bugs-To: bug-libidn@gnu.org PO-Revision-Date: 2020-07-24 21:29+0200 Last-Translator: Jean-Philippe Guérard Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n > 1); --allow-unassigned Bascule le drapeau AllowUnassigned d'IDNA (désactivé par défaut). --usestd3asciirules Bascule le drapeau UseSTD3ASCIIRules d'IDNA (désactivé par défaut). --debug Affiche des informations de débogage --quiet Mode silencieux --no-tld Ne pas vérifier les règles spécifiques aux domaines de premier niveau (TLD). Uniquement valable pour --idna-to-ascii et --idna-to-unicode -h, --help Imprime l'aide et s'arrête -V, --version Imprime la version et s'arrête -n, --nfkc Applique à la chaîne la normalisation NFKC d'Unicode 3.2 -p, --profile=CHAÃŽNE Utilise à la place le profil stringprep indiqué Les profils valides sont : Nameprep iSCSI Nodeprep Resourceprep trace SASLprep -s, --stringprep Prépare la chaîne selon le profil nameprep -d, --punycode-decode Décode le Punycode -e, --punycode-encode Code en Punycode -a, --idna-to-ascii Conversion IDNA vers un codage ACE -u, --idna-to-unicode Conversion IDNA depuis un codage ACE Impossible d'allouer la mémoireErreur de conversion du codage des caractèresJeu de caractères %s Le domaine de premier niveau prohibe ces codes caractèresInterface en ligne de commande de la bibliothèque libidn (noms de domaines internationalisés). Toutes les chaînes sont supposées être codées avec le jeu de caractère principal de vos paramètres régionaux (les « locales »). Utilisez « --debug » pour identifier le jeu de caractères en question. Vous pouvez modifier le jeu de caractère utilisé en définissant la variable d'environnement CHARSET. Pour traiter une chaîne commençant par « - », comme « -foo », utilisez « -- » pour indiquer la fin des options. Par exemple : « idn --quiet -a -- -foo ». Les arguments obligatoires des options longues sont également obligatoires pour les options courtes. L'entrée contient des propriétés bidirectionnelles en conflitErreur dans la définition de profil stringprepLe drapeau est en conflit avec le profilSigne de négation (« - ») interdit comme préfixe ou suffixeL'entrée contient des codes caractères non attribués interditsL'entrée contient déjà un préfixe ACE (« xn-- »)L'entrée ne débute pas par le préfixe ACE (« xn-- »)IDN converti des CHAÃŽNES ou l'entrée standard. Entrée invalideChaîne bidirectionnelle mal composéeEntrée manquanteAucun domaine de premier niveau n'a été identifié dans l'entréeUn non chiffre, lettre ou tiret a été fourni en entréeLa sortie serait trop grande ou trop petiteLa sortie dépasse l'espace tampon fourniL'entrée contient des codes caractères bidirectionnels prohibésL'entrée contient des codes caractères prohibésÉchec du PunycodeChaîne non idempotente avec ToASCIIChaîne non idempotente en normalisation NFKC UnicodeÉchec de la préparation de la chaîneLa taille limite des chaînes est dépasséeSuccèsÉchec du dlopen systèmeEssayez « %s --help » pour plus d'information. Saisissez une chaîne par ligne, terminée par un passage à la ligne. La normalisation Unicode a échoué (erreur interne)Erreur inconnueProfil inconnuUtilisation : %s [OPTION]... [CHAÃŽNES]... Conversion impossible en UTF-8 depuis %sConversion impossible en UTF-8 depuis UCS-4Conversion impossible en %s depuis UTF-8Conversion impossible en UCS-4 depuis UTF-8Échec de la normalisation NFKCidna_to_ascii_4z : %sidna_to_unicode_8z4z (TLD) : %sidna_to_unicode_8z4z : %sentrée erronéemallocUne seule option parmi -s, -e, -d, -a, -u et -n peut être indiquéepunycode_decode : %spunycode_encode : %sstringprep_profile : %stld_check_4z (position %lu) : %stld_check_4z : %slibidn-1.38/COPYING.LESSERv30000644000000000000000000001674314053001337012104 00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser 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 Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. libidn-1.38/java/0000755000000000000000000000000014076274121010602 500000000000000libidn-1.38/java/Makefile.in0000644000000000000000000017364014076273732012611 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @JAVA_TRUE@am__append_1 = install-jar subdir = java ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_libidn_jar_DATA_DIST) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = pom.xml CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_libidn_jar_DATA_DIST = libidn-$(VERSION).jar am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libidn_jardir)" DATA = $(dist_libidn_jar_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/pom.xml.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = src EXTRA_DIST = LICENSE-2.0.txt INSTALL_TARGETS = $(am__append_1) @JAVA_TRUE@libidn_jardir = $(datadir)/java @JAVA_TRUE@dist_libidn_jar_DATA = libidn-$(VERSION).jar all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): pom.xml: $(top_builddir)/config.status $(srcdir)/pom.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_libidn_jarDATA: $(dist_libidn_jar_DATA) @$(NORMAL_INSTALL) @list='$(dist_libidn_jar_DATA)'; test -n "$(libidn_jardir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libidn_jardir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libidn_jardir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libidn_jardir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(libidn_jardir)" || exit $$?; \ done uninstall-dist_libidn_jarDATA: @$(NORMAL_UNINSTALL) @list='$(dist_libidn_jar_DATA)'; test -n "$(libidn_jardir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(libidn_jardir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libidn_jardir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @JAVA_FALSE@clean-local: clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dist_libidn_jarDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_libidn_jarDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool clean-local \ cscopelist-am ctags ctags-am distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dist_libidn_jarDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-dist_libidn_jarDATA .PRECIOUS: Makefile @JAVA_TRUE@libidn-$(VERSION).jar: @JAVA_TRUE@ $(JAR) cf $@ \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/CombiningClass.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/Composition.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/DecompositionKeys.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/DecompositionMappings.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/IDNA.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/IDNAException.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/NFKC.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/Punycode.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/PunycodeException.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$Builder.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$Range.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$RangeContainsComparator.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RFC3454.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/Stringprep.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/StringprepException.class @JAVA_TRUE@install-jar: @JAVA_TRUE@ install -d -m 755 $(DESTDIR)$(libidn_jardir) @JAVA_TRUE@ ln -sf libidn-$(VERSION).jar $(DESTDIR)$(libidn_jardir)/libidn.jar @JAVA_TRUE@clean-local: @JAVA_TRUE@ rm -f $(libidn_jar_DATA) install-data-local: $(INSTALL_TARGETS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/pom.xml.in0000644000000000000000000000574614053001337012450 00000000000000 4.0.0 org.gnu.inet libidn GNU IDN Library @VERSION@ GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain names. UTF-8 1.5 1.5 true true http://www.gnu.org/software/libidn/ 2002 GNU Lesser General Public License version 3.0 or later http://www.gnu.org/licenses/licenses.html repo scm:git:git://git.savannah.gnu.org/libidn.git http://git.savannah.gnu.org/gitweb/?p=libidn.git GNU http://www.gnu.org/ com.google.code.findbugs annotations 2.0.1 provided junit junit 4.11 test com.google.guava guava 14.0.1 test com.google.caliper caliper 0.5-rc1 test org.apache.maven.plugins maven-compiler-plugin 3.1 org.apache.maven.plugins maven-surefire-plugin 2.14.1 caliper maven-surefire-plugin **/Caliper*.java libidn-1.38/java/LICENSE-2.0.txt0000644000000000000000000002613614076271517012660 00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. libidn-1.38/java/libidn-1.38.jar0000644000000000000000000034131714076273651013070 00000000000000PKP~öR META-INF/þÊPKPKP~öRMETA-INF/MANIFEST.MFóMÌËLK-.Ñ K-*ÎÌϳR0Ô3àår.JM,IMÑuª Eô 4\R“2ó4y¹x¹PK7Ã67PKO~öR&gnu/inet/encoding/CombiningClass.classíÝxTÅð»¹é É,¡÷Ð{轇ÞViQ4 !B‚4•¢ÏöJGªÒ›EÀÞ RUšHUì½Ì9ÿ‚<üC¿oggöîfQ<™Üìήÿcõ:Çqê:ùÃ`'wˆæ91 Oˆ“7ÄÉçq<ÉÇíÙ³¾–æqp%¸QZFÚ&z¾|…'0>³wŠÇ‰î˜–‘Òy耤”AÝ“ÒõLh£ätsdx×Ì¡ƒ’SZ§a>&>s@’¾!#5>=qðàªý‡%F:Nd¤â„F:aN¸Ç)‘š14N?⸔ŒäÌÞúà¸3ïæqî—ž¨oò%õKIâÄêg¬ÿDNA<”¾Vƾ‚6—ÕéÑTq•ãY®¯xœ(m0'Ãô£O:°—~ ýÏÀ*f­àz=ΚpÎA_B ¢Á4„†R%SJæ”™ “—ˆˆ”È%%-¡$¼¹%b$òHäõ:‡täó:»uä—( QP¢RØël×QD&‹J“(.QB"Öë¬×QR¢”L––(#QV¢œR^¢‚LV”¨$QY¢ŠDU‰8‰jÕ%jHÔ”¨¨© ꀺ ¨/·7h(ÑH¢±üKi"ÑT¢™Ds‰ñ-%Zy:Z˨F§OбtO'ЉtL§Ð'éT:N§3èL:‹>EŸ¦³é:—Σóéº.¢‹éº”>C—Ñåt]IŸ¥ÏÑçé*ú}‘®¦/Ñ5t-]G_¦¯ÐWékôuú}“¾EߦïÐwézºn¤ïÑ÷éôCº‰n¦Ñ-t+ý˜n£Û麓é'ôSúÝC÷Ò}t?=@?§éô=LУô=N¿¤_Ñôkú ý–~G¿§?ÐéOôgú ý•þF§Ð?]_WýB¾kè™@} Ò—`} Ñ—Pß)FŠÃ0"@$È¢@4PÀ rƒäù@~P…@aPÅ@qPÄ‚’ ( Ê€² (*€Š ¨ ª€ª TÕA PÔµAPÔõAÐ4AÐ4ÍA Z‚V 5hÚ‚v =è:‚N ³›m AH½A èRA_úþ   Ó½H Ì®×lr´É1&mÛ&¾ìš8È6±mb¿kbú/¯…ùãˆî`ÓæcMŽ39ÞäsÜD3ždr²É)ú¶²9nª™ŸfrºÉ&gšœeÒt´¹÷l“sLÎ59Ïä|s¯&šùEf¼Øäó¬–êâaw›ùe*œõ­"Øß*’®r±ÁU+\E³Ã•b‰+/[\åf«˜,=®ò°ÈU^6¹Ê—¥ÊUþ,]® °ÌUÁ,mnžíólîó`Ûç9Ôçª0 ]A£«¢¨tU ®Š£ÔU ´ºŠE­«’èu9³ÐM¢»œ,ñƒvW¥.Íz§ví§ lSÿÛLn7¹ÃäN“»Lî6yF=›¹=&÷šÜgr¿ùÖxÀŒÏ¨j3wȤ©ks£fö˜Éãfþ"ÖvH6Õ¶*í¿½-Íwú<7F5%jÉdmÕ‘¨+“õ$êŸ:ãÛÎuÆ£sñÆm§ÏxcÔJF­eÔFF§ÏxctòŒ7þvõž`ëÝÖû½Þµëmßy¬·Uˆ/N ¨°ÿÒÁRÔ]¤½ÿ¶ÚvmÛ.¾€.Æ_ã‹PÆø{mÛø<ÚXÙÓ®ŸÖ1°Kâ[ö†/ÿήÓ®­a[î­á¿ªa×¶°ë-lÏM¸çÓÂnŽ–°ê†V=m »¶†m »—O ‡Ù¾tjص°-a*a©\ûkº )áp[Âç*a•Ц Ø“Þê?Š˜¶§¨}ÁD‚­â½ŠÕ0v±D¶”±Î6–X/±AÂöñÿ×Ç9×Çg¾ÜõN–g#­l^ç†ëõåýéö(gW²îP”².ÑSµ¬Kô‹YŽ!1Rb”DÖ‚æÌ©Š6/ =õî@Y™ž>ùÖ@“¶«s`Ùl^­k_Þ–=i×;³×Íü…4W̶Ÿí’9á ¯a×–pv•p®‹S¬2na>Aû6m[¶„³¹„å‡ÛÂY[8Ê.…}9ý{<×vðØÁfS‹+®…][Â/áh[¶„m Û…p6V°9™¿Éäæ@Ö0Ýbæ¶šàã¶ÍØ4º 7Û¶Í{|ܶy­i[ÓÿcM«Pö´„-j»VξBöúk!«BÐÈÀ.–m ÛŲí`ÿïàÜþÚÁî© –=qb%JJ”’°Ul«ØµUl«øÒ¯â•Îɪ ÐU¬/A¦Šu¡ŠƒQÅxeWhª8U¬0Á×{Eâg6•‹/BˆÂ¾Ú*Ûj+…]µ•÷É b@äù±å¶*€·UAL…APÅA ìÉ­bqµ$(Jƒ2 ,(ʃ  "¨*ƒ* *ˆÕ°»·ªŽ«5@MP Ôu@]PÔ @CÐ4M@SÐ 4-@@¤чé#ôQú}œ>AÇÒqt<@'ÒIt2BŸ¤Sé4:Π3é,ú}šÎ¦sè\:Χ èBºˆ.¦KèRú ]F—Ót%}–>GŸ§«è ôEºš¾D×еt}™¾B_¥¯Ñ×éôMú}›¾Cߥë麑¾Gß§Ðé&º™~D·Ð­ôcºn§;èNº‹î¦ŸÐOégtÝK÷Ñýôýœ¤_ÐCô0=BÒcô8ý’~EOЯé7ô[úýžþ@¤?ÑŸé/ôWù(ß8øþ!+ðg€o¥xúsÃmD¿ÎF=£øñ„Þ¿PKv¨ ž qPKO~öR#gnu/inet/encoding/Composition.classí\e€Gíêuc«pÅ-ˆ’à ±!Ù ,°È.²ˆ#"½¸»ëÅÝÝíâ.½ØI½WÓ3]#ìÃ’ý±¯wÞTW½úê«75=ÕýÄï¼Çqœ~Î…N¡Ó1ÏéTà8]]Ýòœ–8vÏszä9=…S¸pÙ‚ÚªaUK–Ö 'kÊ”ÁÂ)ZZU=gAe„+6¯&Vά©ž%ÉòæÕÄÚŠ%º„)œ’Á5ÕKk+ªk'W,XV™¥u¬Ñe±,ø[„£‚UúoˆÕºå™5 Õ,­W1§R81jHEmj.·UuUí@ý²{ÉÂÉ\3K/]U]9vÙ•K&UÌX ™üþ3DJN¬Y¶d¦–^fUµU5Õ½çU,¯(vÚ8mÑààb§È).vJ-œ–ÅN+§µpÚÍ©^ÖG7QÛ§²zfÍ,Ý…>zt­¨©Ï‚ Í{3æUάu:è@ê.çë tµú¿V¨™ÇF‘c©#ý¿ë4Ö¯›^7Õ¯›^7ׯµž§%‘®±~ÕN…>æô¼Í7è„Ò˜K²@Ë(ó‹^q¯“§9çŠÓ•³ænÇ-Ï’ò®œò,åÜ.ÏVÎýáòå<.ÏU΃áò<%œpy¾n¸\æ*·«>ä)ç!}ÈW¡ õ¡@9ëC¡OëC‘ruyY¬\œP¢BçëC#YªDvxby¶Th0K7§ÿrô_®þËÓùYl$„SñZ’(ŠÅY¦âlTŒÿKR…ruÝ9²±_·¹èŠÈO¨_&©_‰b»…,»~€RΣº‘\Ù¤Ž$o Q|Šã»Ðˆ„¤>4V¡Æº­<ÙÔŒÎcÇ9:O`tBwqtstššŽ57£ó¤;m·6c“mÆ&×´{´}%ZÆ:év7íƒj¢B­µŒü`\`\ÛFº­Bí)!d$´OÚõÓˆ­è¨’¹²Y0¸JtN oGv3Ô5®7àÎÉÚ ±{ø¿  © õDÃÑH?ÅH?ÍH?ƒH‹îŒtOv³—éf_égM¤ tõYé|éB#ä‰@¤{G¥dE…¨P/h†9Ô7Yne% ï§ñß:>³¶5!Þ­ÄòW‰Óoe@|+ÛÇ·²“ieg“?ýÑX¡lëÒÀäÓe×tæû ÔVd¤+ñ3ÅŽÔ§œçí‡$íÀðø:‡Åw`„éÀPÓQh²X¶0yñóâEæÅKlôeæÅhæÅX6ìö6yñŠÉ‹g?oò¢ØäE##à©@^|ž$/˜ €fJŒÓ‡æJœQ%2/ÕIÉ£:'nŠ‚{& ÖžF¯4z½{Ålš Û*•-cmíÅÉ»wbkÓ“¶6=~hf$µˆiI"hh¡Ü–Ð!c:²’÷x^R ³â5,ˆïmµQ1äǢÔ:à™RÉV&s^gæ¼ÁÌy“Ž2—™3™³ :ã”ó–ÉØeÕF׋f$šš‘hn´}Èœ%væ¨Ðrã)µìYd²ç:èÕR…–@dãØüôƒ¥BÔe ³ó ÔÕÄÔ¥B‡0/e Ô&†ÿHv6txu…:›Êü:óSÛq(ÝÌWðCþ6,gŸ~FÈÝ­cçÀóÄ òŸRëø57­Z”X‰zCkWû'M¬ãk<9>±NE-ü•Ø»ÿóå}:ÍÌÁ|1M¹ÝLÆ|hä_ÄŒq>2 >c2F˜Œ‰4zA˜+1ar&-¶¬s)–ÖàçÄw'•· ZOG¢ 1bEI#VNc-ö Zi]çb,y ¥ñ(‰ïD)[ )3¥š ±6þáSŽÐg¡Ï™^ws„šp„š™®µ0#ô…¡ocÆ'ÇŒOžpG`F·ŠuÓía´2sº t´ †öG†¶]t9ÖÊŒ†I;ÿIáÐR»øåX—Äw2°[\+nY|ˆ»Ä‡ø4bö”¿ ÛM‡ü`É`Å`MûìÁ`oÁŽnŽÙç7&Ôºúœ u u‘òd Ô}ÂÉ–c[BA™,²;¿]z ¥áäöÁµÜV鯲>‹Ú6ñQÛÎŒO?´Ò!¸–Û)ýVÆ·Ò/¾•M+ýMö @cƒk¹]’϶ÝÒ1ŒÁ¨­“¿–û…â‡D×rßÚ5MÚñuïÀHÓa¦»£ÉÎþZÎ|<|Ï”úþÈ”ÔòذÛÇ$ÕO&©ž 4þ‚Iª“T¥FÀÓ¤ú"IR1·úÓx|˜ŸÆ@T—àZ.œ<ª{ `×à¬OQ°%ËnßÎh­Êp!¶*À¶ªì..Û¼¨žuTl9"®¥Ç¥Î?lOPÕÑ™SÕݨêaBöÄôCöÅcéëÓ×bV’u冖¸ƒ‘¸#´òµñ¢pÖq™ Ü£j$Tíî«âLÍ:ÁŠØgŒØ§ˆ]µaµeeåP6ÚO´_©ìÄÌÅk®QUeíwˆã‹[DqW[a»a»~#Te·‰Ž‘(ŒD~æŒõGv %^“¹øI#NA•ç®–ª®ÍÈZ󣫽ÑÕÁË—q~ЖSÞuÖ¸>Ïq}.0žØ€"_1"û‘[AÝx_Ý ª{*sCº«QµTM0ª²R}WÚ8Š>4Š>‚¢‰~œöcœž¶Fñ=Žâ»Q|rŽâÇFÝ8£n<ÔMò§ÀT÷LF¦ÀOF×t£«ÂLï!/ìäמ¬5‘÷*”Lö•¼O%×gD /ßïøz’õbJ*‹ß÷L}ñ@eì#û”.7¥U¶“´ü+òå÷Z[í÷J¿…ÒSüÚKâÊ«ì÷yF«À⌽eódõ«ì¯Y¾Q ü¿ÖKÜUöwhwêÚúõ| ÕQzšß¯qIË¿(ÏI·ÏÚj Púm”žî×>5! ðŒgÐr*REí–Ÿ(ÿízŠgë ʸùÚÚÚ©\þ&3S¶ßÔ”BªŸÚeªˆßfÉ›¤J@ ½*Æn.Y);nâBT ·£Ì–êƒZ@GUÂ+Bsd®õ3Zèê G„nE™¹ñe®±Ê܆2UþÇ»‹O‹²ìŒ|jåÚPe‡@Ú<_Z¥ådDZ^¼´U6ß—VHiÅ‘Ö(^÷v,ð¥QZIF¤•ÆKãÏ ÍåÁ²ÆTÖTu„jBª¨šÕšT[P‹"TRí@-ö»Ù‘\çŒt³k|7×@Ú_Z'Jë’iÝâ¥iK}i=)­WF¤õŽ—v¤ÕúÒ¶ ´-3"­O¼´3!m™¿²ßšÒ¶Íˆ4î2]î+Ù†J¶Ëˆî‘Ø×W²•ôψ’P²ÂW²3• Ȉ’] deĦQÈPûE¨Á¤†‚Ú?B"5ÔjwRc@è÷j¹¤»L7x¯¸õ _ÉD*IºGbƒ+áþ‰ƒ}%S¨djF”죕(çß­fPʬŒH™Žs«ó©m•¯m&µUfDÛœxmPÛ¡¾¶yÔ¶ #Úªãµ]Nm‡ùÚæSÛÂŒh«‰×vµî§þÓÔ–™«pÏRʾþþZöNF¤ü“RŽ”]êÍ÷6@'Õ[Æ;«¾‹©uýÓ¿Ô该þ£êŸþåFÿ¾ÔtýÓ¿Òèßú©ú0ú¤þcëŸþçŒþç©ÿ¸ú§ÿE£ÿ%ê?¾þéÅè•úO¨ú_7úß þëŸþ·Œþ·Ãorpÿïv6__²vÀ‚ cµîZ¶ÅL×LŽÅÔh&7Âäq‹TH3y†—"ŶšÉ·Ê”áK€Z6 ½Ê?OúT~ åƒ*°¨Þ  ƒu¹¼cµÈªë¿ Š­±ò%V©ß@5²ª/UjQ}@I«EÞ’¡¬ºþª±ÕíY šXT%¨¦5T3‹šª¹%b¨µTË•O Ÿ.²•EíªµUýÙ ÚD¨bªÿT[+^_‚jgQ_ YÔ» Ê,ê=Pí#T.[äÅÀÅ‹­¨öÕÉ¢¸¡³%õP]"w:–Qj×5”ÔÍ ºYÔC º[ofëŒW6ïÖê ´žâØn•búö²JƒÚÒ*õ1¨ÞÅûXÔÏ úZ;´•U=7enm•bFoc•ÚÔ¶V)þ²¼EqÇ÷öõ ¨~ÅÑÞÁ¢øm~ÇUJj9¨, k4¹³u¢Ù kQo‚`QŸ‡c›X#ÔáØ&ÖÜI r;‡c›X#T×plk„âÞêAÅ_t[Ô} †ª ?¨‚ †Z³p˜EÁääpC½ ªˆ·-ŽˆP÷zÔHCOU<Ô¨õ2)ŠØÝ¢xâhC• UÂ{vÆD(îŠ,áÈc %{ƒ’Œ„œC¡@³(îoQÌœ 5ÔDË:悚dQU ÂÁO€Ð# &[\Üâ^µ§Eq£y¹5Eµ—EjŠEjo‹:ÔT‹:Ô4‹Z j‹:Ôt‹:T…EñÛÅ›4fZÔ  fYÔ‰ *-êdP³-êPs,Šù5×¢x_E•EjžEj¾EjEñSa¡Eý=û¥'BŽýÒ¡Î Ç~é‰PçZlQ‚ZbQZjQƒªµ¨K@-³¨KA-·¨Ë@íkQW‚ZaQW…cW{#ÔÕáØÕÞuM8vµ7B]Ž]íP×:Т¸wÿ ‹¢ lQßq yˆÅÝFn•Å=JîP‹û7¹Ã"×dÎ"w¸ÅMî‹»–Ü‘÷4¹Õg®eqÏ;:ÈuÌ&wŒÅ;ÖâŠÉgqÉoq]É`q»‘;Ñâ†[cqÃÉdq#Élq Ébq3Èjq‹ÈýÍâÌ¥ŸÓ,Î\N9Ýâ–‘;ÃâV;ÓâV’;Ëâ!w¶Å­"÷w‹{—Ü9÷¹s-îprçYÜäη¸£È]`qG“»ÐâÞ'w‘Å}@îb‹»šÜ%w ¹K-Îääew¹Ë-îsrWXÜä®´¸/É]eq_‘»Úp}Ï×÷Tr×XÜhr×ZÜXr×YÜ8r×[Ür7XÜ$r7ZÜdr7YÜžän¶¸½ÈÝbq{“»Õ⦑»Í⦓»ÝâLŽßaq•äî´¸9äþaqUäsÉÝmq?»ÇâLÜkqfÌﳸëÉÝoq7’{Àân&÷ ÅÝJî!‹»ÜÃw'¹G,î.rZÜ=䳸ûÈ=nq{Ââ&÷¤ÅÊâ'÷´ÅoÆâ~&÷¬ÅýBî9‹û•Üó÷_|ÕÏ–Åoú¹ÝðN.ž-•m1]ÂÑoú‚)À 4×b°‘-ò½h8˜",Ió-†«Û\‹â¥‘óŠUüD8öM?B=Ž}Ó/ª„'F¾é—ð©1%ÜkZdQï —9rë» Ë³²¼òìlOwÄ+ÏÍõÊóò¼ò|×Ó‚ò5äá?¾,úMYˆ‹¤.#‹% ”È@—¤,Ô¨ðoc@@S@3@s@ @K@+@k@@[@;@HyxzB±Æö :ÈÐØ Dg@@W@7@w@@OÀ€^€-½}}e©Æ­\ï&'WÊ»<á úÝlý—£ÿrõºo‚áÚÁp£±J\;îz‰ ÌFÐÑ]/1pMô÷cÀ6€mÛ¶ôìØ°`g@í²ú0@«> Ô^ª»à]»é”’ƒtNéï† q†"e†i‡Õ‡áHœ̧‘L¥QÚe=Üï„7F3£Æ0Æ2 <¦Á8fÀx40i0‘£8IJ㕇Mé=loâa£wS¸›yØ–Ý\㜺7`*``Àt@…láaËnKÛc[yØ~ÚÚÃÞÎ6gkÏ÷°±­‡†í<ì% yضWæa‡\{›Ñ:h\(;j¬–4ÖÈÎÉ.£•%²«‡IÝ<ìêîa»M[]zzØf²…‡-½4®”[jÜOöÖ¸?N=p à ÀÁô‚˜¸Šx(ñ0âáÄ#ˆGW"M<†x,ñ8âñĈ'×O"žL<…x*ñoÄÓˆ§Ï žI<‹x6ñïÄsˆçÏ#žO¼€x!ñ"âÅÄKˆ—/#^.ûàp_\I¼Šx5ñâµÄëˆ×o ÞH¼‰x3ñâ­ÄÛˆ·ï ÞIüñ.âÝÄ{ˆ÷ï#ÞO|@öÅáA¾xHŸ‰ãÃú\‘[áð¨®ÇÇXèqârkžä‹§ˆOŸ!>«[Äñ9¾zžøñEâKr^–ÛâðŠV†ã«|ï5­Ç×ùê â›Ä·äv8¼ÍïÿI|—øñ}¹=ðŇºŸ8~¤{ŠãDzŸèãø) }Fü\î€Ã|ñ%ñ+â×Äotxpü_}KüŽø=ñ¹#?ÊpøIÇó½Ÿu(qü…¯~%þFü]îŒÃøâ¿Äÿ¹žþÐŽóvÙ_›»°¾Ü]„½Ë]6' tmg      ŒŒŒìîÒÒw¥¥ïKáƹQ?LL„“{ö”öÒóF®§O*+×s f®'ÜÔLÀ,@%`6``®žrðq=ç`äzÒÁÉõ¬ƒ•£ÀB@5 °Èº8`) ° °°/``%`?7•yëY½YØ·Dÿ–ƒÓ6p7mÿ–ChàrhÚ®=òO{¸°pâÃÄGˆº Þí®ÕºÝµ7ñeâ+nÀ´Ý–í¦áØnÀ°‰?&~â&8µF«ÖÒR˜µ»V«&þHüÉ Ø´›Â¤Ý¤Sß×ßzLáÐzPáÑzTáÒzXSù´k8µìMÍ«cÜ?ëÔ€:ÜnÝ ¨ÌÌw7‚3»Ý—õTßÎL\‡…µ›¶/7êºÚý‹y21åâÙÝ~œñcªÚ‘uªzxVÝÉžsxŠöe¨¾3ëlõøØ´ÓàÎ:_=>Gö 8´ÎXx´N8¸´Î\Û§uGZ§rÔ«u ­uÖí×:Ótl=MàÙ:×áÚzºß¾ÌøöÆ·ÏóR¬®õ42¾}±ç¯°õœ‚oëɶ!œ[ÏFÛ»õdlpïMȽå0Ú·›`ÞrxÀ½åˆ€}Ë‘iø·0pí6),\îžÂÃåè×n°qíZ F.Ǥpr96`åÒ x¹—†™Ëñ7—Rعœ˜ÂÏå$º ÓÑåäK×Þ›ÂÔå ®çêyu­²uo½u]gË==k¡­cåùKmYï–{Á¼uô`ßrJÔ¿u$½Ä·Žl*—{{‰Eôx‰—Eô˜¬û#Ͼü?Õ³ÖÛzТ¾-§Á¸å>pn=Œðn9=jÞzH“Ø·â$,+¼Äµ·N†$þ­“#êà:EÖÅÃu.m’.®³>®Ó{“vr7…‘»w6î¦áânÀÄÝî¦pp7ÁÀÝ€}» æí¦ðn7`ÝnÀ¹Ý4ŒÛ ø¶›Â¶Ý®MÜ «pm‘tlm’̳µõÒµµùn"¾_ß¯ŽºÉI|Úõ6±Ë×zТ¶¬‡Î[‡…µ«aËz¢Â˜•8ÊkX^—7˜ò2eí(Å–µg%³v°k&þe–Ò2w³ðd@wÝí4MY‡Æ‹[9ÿ¶±ŒÙõ®v¸ v¼iرG'²»QìØM0c7`ÅJóW4ã:/l¸õÆŒÝ4­ØõÖÇúX‰c3dÄJ+Vâø3þÃ?þÞ`ÇÆŽk×ÑŽåLú±6“ íÈÎuEGÞ<.Y¸ß‘Ý4ýX‡{=;2 aiܰ4^/W*´$x±'¤rãYtc7Á‹µ‹üi7Öý¤+q"Ùý+úqAƒÿ1?Öó#MG–•0d%Äz¶d%Ö4˜rƒ)o¿éiIkõc%NJщI.ËÙ v¬„›`ÈJœ¼9Xra=¶d%²2iÊnš– hX"7¸ñfêÆîZ½ØýNì&±›`Ãîæ`ÂEõØ„Ý aÁJàÆí~JäÔ/V÷“OQ"¯n+V7šÏT¢ ÁŽ×÷ sèÇrî&cÈJÒ’•(Ú覬D1mY‰’c^7c.޳¬ÒÎ,çáþÑ÷ŸˆRÜ"¤‡mqxꃦðØÍá¹ùr>|Z.ð¸ÂÆC ´Çã)ºF<¢D <é¡‘xÔC©xÖƒ” áÚ²ºnÛ–5ðm¹¨nã–‹áÜr ¬[ L‰I æ­o)^­Ää?dàÄ“”Ø#bà{ ÜÝö­Dy®Ä^´p%¦L\‰½Ó¶q%¦ÒÈ•˜F+Wbš¹Ó7y;wfî¬Üm0ryiúz]ìÛ­Û¼]ÏÞ’'*¼+k%f¬{fÔº•˜5o%*½Ø­„³£®Ä/¶dnÔÄ•¨ŠÚ¸ó¢F®Äü¨•+± `æ ãÍ—»Ìš[‰š¨™+±¨n;×gèî~ ¬½µ«zÖê[¬g­¿µ×zõëB¸vFÚ·vÆWbñZ-ÜMaàJ, X8ÑZƒ+±4`ßJÔ \‰e Wb9MÜXø¾´p7bà+®ÄÊ€…+±_ÀÄ•Ø?`ãJ0r% X¹%˜¹ì\‰C†®Äª´-]`‚©ëáL°u=¸ Æ®‡:ÁÚõÀgÈÜ•8”ö®Äa4x%x±é;%ŽøÓ&¯Ä‘¶Íßääßà8ŽpB›;9‹úíœ3úu±x̽âб‰[õ»í5ï:þPKùõ´¶÷«PKO~öR)gnu/inet/encoding/DecompositionKeys.classd½w¸«Uµ¾·æm‹‡B²²ˆHÏ """" X°`§© RÄv,Ø+ì½÷Þ±7QP)""JÞö÷œûûë»®sq6pØ;yǼïñÌ•p.î¾yÑ`0Ø7yg‘œŸ¼- îPJH‰(1%¡¤”!%£ä”‚RR*Ê eÊʈ"ʦ”Í(›S¶ lIÙŠ²5eʶ”{P¶£lOS&”UÊ”²FÙ2£Ü“²#å^”(;Sv¡ìJÙ²;eÊœ²NYPö¤ìEÙ›roÊ>”})ûQîCÙŸr_Ê”ûQ¤ÜŸr唃)¤ByåPʃ)‡QB9œråHÊC)GQަ<ŒòpÊ#(¤CyåÑ”ÇPK9–ò8Êã)O <‘ò$Ê“)O¡G9žråDÊI”§RžFy:ådÊ)”gPN¥<“råtÊ”gQΤœE9›råÙ”s)Ï¡<—ò<Êó)/ üå…”Q^Ly å<ÊK)/£¼œò Ê+)¯¢¼šòÊk)çS^Gy=å ”7RÞDy3åÊ[(o¥¸‘;åBÊ;(祿‹ònÊ{(良ò~Ê(¤|ˆòaÊG(¥|ŒòqÊ'(Ÿ¤|ŠòiÊg(Ÿ¥|ŽòyÊ(_¤|‰òeÊW(_¥|òuÊ7(ߤ|‹òmÊw(Q¾Kùåû”P~HùåÇ”ŸP~Jùå甋)—P~A¹”òKÊe”_Q~Mù årÊo)WP~G¹’ò{ÊU”?P®¦ü‘r åZÊŸ(¦\G¹žrå/”¿RþF¹‘òwÊM”Pn¦ÜB¹•r埔Û)ÿ¢ÜAù7åNÊ(wQþKùånÊ’RSJKé(½•%ü[¿%ü[¿%ü[¿%ü[¿%ü[¿%ü[¿%ü[¿%Ô[¼%˜[‚¹%˜[‚¹%˜[‚¹%˜[‚¹%˜[‚¹%„[·%H[‚´% [°% [°%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äZB®%äªy 5´æÖ<КZó@kh”j¤Tó´jžVÍÓªy(5Ú©y(5Ú©y25Ú©ÑNÍ3ªyF5Ú©ÑNvjYÍ#«yd5¬F;5Ú©yx5¯æáÕ<¼š‡Wóðj^Ís«yn5Ï­æ¹Õ<·šGVó´jžV̓ªyP5ϨæÕ<£šgTóŒjžQÍ3ªyF5ϨæÕ<£šgTóŒjžQÍ3ªyF5ϨæÕ<£šgTóŒjžQÍ3ªyF5ϨæÕ<£šgTóŒjžQÍ3ªyF5ϨæÕ<£šgT»g„]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©±K]jìRc—»ÔØ¥Æ.5v©w ¸kÀ]îp×€»Ü5à®w ¸kÀ]îp×€»Ü5à®w ¸kÀ]îp×€»Ü5à®w ¸kÀ]îp×€»Ü5à®w ¸kÀ]îp×€»Ü5à®w ¸kÀ]îp7œó†sÞpÎÎyÃ9o8ç ç¼Ü ànw¸ÀÝîp7,® ‹kÂ׎70¢ Œh`D#ˆÞ@ô¢7½è ðh zAÒ@‚4¤ i HAÒ@‚4¤ i HAÒ@‚4¤ i Hþ0Ò€‘Œ4`¤# øo`Iþ€Ò”ü7P¥* øo@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–´4 ¥- hi@KZÐÒ€–†ÅµaqmX\׆ŵaqmX\׆ŵaqmX\׆ŵaqmX\׆ŵaqmX\׆ŵaqmX\׆ŵaqmX\׆ŵaqmX\׆ŵ ükà_ÿø×À¿þ5ð¯ ükà_ÿø×À¿þ5ð¯ ükà_ÿø×À¿þ5ð¯ ükà_ÿø×À¿þ5ð¯ ükà_ÿø×À¿þ5ð¯ ükà_ÿø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ÿZø×¿þµð¯…-üká_ ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ¥Z(ÕB©JµPª…R-”j¡T ›ZØÔ¦6µ°©…M-ljaS ›ZØÔ¦6µ°©…M-ljaS ›ZØÔ¦6µ°©…M-ljaS ›ZØÔ¦6µ°©…M-ljaS ›ZØÔ¦6µ°©…M-ljaS ›ZØÔ¦6µ°©…M-ljaS ›ZØÔ¦6µ°©…M-gºåL·œé–3Ýr¦[ÎtË™n9Ó-gºåL·œé–3Ýr¦;†ºc¨;†ºc¨;†ºc¨;†ºc¨;†ºc¨;†ºc¨;†ºc¨;¤Þ!õ©wH½CêRïz‡À;Þ!ðw¼Càï8G£ãhtœŠŽSÑq*:NEÇ©è8§¢ãTtœŠŽSÑq*:NEÇ©è8§¢ãTtœŠŽSÑq*:DÇè8¢cø;†¿cø;æ¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾cä;F¾CÌbîþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïþŽáïs‡˜;ÄÜ!æ1wˆ¹CÌbîs‡˜;ÄÜ!æ1wˆ¹CÌbîs‡˜;ÄÜ!æ1wˆ¹CÌbîs‡˜;ÄÜ!æ1wˆ¹CÌbîs‡˜;ÄÜ!æ1wˆ¹CÌbî8ć¸ãwâŽCÜqˆ;qÇ!î8ć¸ãwâŽCÜ#á ÷H¸GÂ=î‘p„{$Ü#á ÷H¸GÂ=î‘p„{$Ü#á ÷H¸GÂ=î‘p„{$Ü#á ÷H¸GÂ=î‘p„{$Ü#á ÷H¸GÂ=î‘p„{$Ü#á ÷H¸GÂ=î‘p„{xÕë^õðª‡W=¼êáU¯zxÕë^õðª‡W=¼êáU¯zxÕë^õðª‡W=!¤'„ô„žÒð†õ0¬‡a= ëaXÃzÖð†õè½d= ëYÈz@Ö²õ€¬d= ëYÈz@Ö²õ€¬d= ëYÞ{hÖC³šõЬGï=zïÑ{Þ{×C¸Âõè½s=zïa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ëzX×úÖõ°®‡u=¬ëa]ÜzàÖ·¸õÀ­n=HëAZÒzÖƒ´¤õ€¬d= ëYÈz@Öƒ¯|õેW=¼êáU¯zxÕë^õ ªU=¨êAUªzPÕß–'¯MÞ>L.&ïÁ3‚Aøø‡ƒô€“O;ùìƒA´ÓÎñO?ñ¤`°áÈ“O;é¨sžyüIgsÜñ§Ú_É8áÔÿdñÈÓÏ9ó„“=™¿¾å!'pú3Ï8ý¬“Ï>ùôÓŽ8é¹gíqÊqÏ>®JÞ¼±J^—¼>ìð´ÓΙۿïìùI§pú‰'Ÿö´ùÿïÿ(Œø?›ŸzœýÝ£?å¤ÎLí|þ`0Ûð/²ÿ-ü{­¾É~µ½ýÀz²Ë×Áø“7[MÝ_ÌYrÁÿ÷^ûùAlmpí…ÚnÛoÇF¼ÿècãèèc >~ô±i|ô±C >yô±Yrô±£TƒÏY¦V2 ¾h-Z)4ø’µ2³Riðek+#þ¡M4øŠµ #þ©‘_·¦ÿئ|ÃÚf£Üêæ|ÓÚ£Âê–|ÛÚV£ÒêÖ|ÇÚ6£Êê¶\dí£«Ûið=kÛ6±:ÖàûÖ&£ VW5øµéhduMƒZÛa$«3 ~d힣M­î¨Á­Ýk´™Õ4ø©µG›[ÝEƒŸYÛu´…ÕÝ4ø¹µÝG[ZÝCƒ‹­ÍG[Y]×àk‹ÑÖV÷ÔàÖömcuo .µvïѶV÷Ñà—ÖöÝÃê~\fí>£í¬î¯Á¯­Ýw´½Õ4øµûÆVÔàrk÷M¬¤Áo­=`´jõ` ®°öÀÑÔê!üÎÚƒFkVÕà*kí`õ0 þ`í!£™ÕÃ5¸ÚÚ£{Z=Rƒ?Z{èhG«Gipµ£G÷²ú0 þlíᣬ>Bƒë¬=r´³Õc4¸ÞÚ£F»X}´7X{ÌhW«Õà/Öìm²ú8 þjíñ£Ý­>Aƒ­=q´‡Õ'iðwkOÍ­>Eƒ›¬7Z·z¼ÿ°vÂhaõD n¶vÒhO«OÕàkOíeõéÜjíäÑÞVOÑà6kÏÝÛê©üÓÚ3GûX=MƒY;}´¯Õ34¸ÃÚ³FûY=Sƒ[;kt«gkp§µsFû[}¶ÿ±vîè¾VŸ£Á]Öž;:Àêó4¸ÛÚóG÷³ú –Öþot ÕjP[{ÑèþG«Á‹5hè/D;Oƒ–þÒÑh/“ÙÓúËGÓ^¡`@åè´W)è¯B{‚þÚуhç+ˆè¯J{½‚˜þ†ÑƒioTÐß4:Œöf)ý‚ÑChoQ0¤¿ut8ím 2úÛGGÐ.TÓß1:’öNý]£‡ÒÞ­ ¤¿gtí½ *úûFGÓÞ¯`…þÑÃhT° ýC£‡Ó>¬`ý#£GÐ>ª`SúÇF¤}\ÁfôOŒŽ¡}RÁæôOEû´‚-èŸ=šöY[Ò?7z íó ¶¢aôXÚlMÿÒèXÚ—lCÿÊèq´¯*Ø–þµÑãi_Wpú7FO }SÁvôožHû¶‚íéß=‰v‘‚1ý»£'Ó¾§`Bÿþè)´(X¥ÿptíG ¦ôާýDÁý§£h?S°ýç£i+˜Ñ/Dû…‚{Ò/=•öK;Ñ/=ö+;Ó=z:í7 v¡_>:™ö[»Ò¯Bû‚ÝèWŽžAû½‚ÝéWN¥ýAÁô«GϤýQÁœ~Íè4Úµ ÖéNû³‚=é×Π]¯`/ú £gÑþ¢`oú_GgÒþ¦àÞôGgÑþ®`úM£³iÿP°/ýæÑ9´[܇~ëèÙ´ÛìOÿçè\Úí îKÿ×è9´;@ÿ÷è¹´;ÜþŸÑóhw)8þßÑóiÿSàÎâÝ£Ж ÜY¬GÿGk¸ÓÖŽ^Hë¸ÓÖ^d-(à´ez¨€ã˜ _BpÞsâyôT.03¾”ž)àĹvz¡€C”vèé•NU°b§Ÿ¾‰ŽU°Á(@)à\2Ð7UÀÁ 63,Ð7WÀÉ ¶0>зTÀá ¶2NзVÀé ¶1`зUÀñ îaà o§€ólo¡p€‚‰‘„¾ª€L )ô5¡`C }¦€3ÜÓCßQ‡(¸—±†¾“NQ°³A‡¾‹ŽQ°«Á‡¾›ÎQ°»Qˆ¾‡R07Ñ×p’‚…a‰¾§ŽR°—ቾ·ÎRpoã}¦`_ã}?œ¦à>.úþ 80Á} `ôpb‚ûÉè*àÈ÷7¢ÑRÀ™ à¶+àÐ4ÄÑQÀ© d¬£ª€c<ؘG?Lç&xˆÁ~¸Np„A~¤NNðP£!ý(àh£"ýa 8;ÁÃÝÎ¥à 8<Á# “ôcpz‚G¹MÌ®ŽOðã&ý± 8?¥?N(x¼”þœ à‰FTú“p„‚'»uΆÎPpœ!–~¼Qp‚¡–~¢NQp’[ùË-ˆöæ(øý,·#Ú›¡àÇôsÜšh/^ÁOèç¿éÏQðSúsÝæh/NÁÏèÏwË£½?§ÿŸÛí¯àbú‹Œðô+¸„þ·R*8OÁ/è/u[¥‚—)¸”þr·X*0…ÿ’þJ·[*0‡_Fµ[/˜ÄE­Û0˜ÅMÙnÿ ý néT`¿œþ&·w*0‘ÿ–~[=˜É¯ ¿ÕmŸ Lå¿£¿Ý-  ÌåWÒßávP&óßÓßåÖPfó«èïq›¨Óùèïs˨=,WÓ?`Ê¡›ÐÿHÿÛO˜Ñ¯¥Ä­¨ Lé¢Ìm© Ìé¦Â-ª Lê×Ñ?åvUfõëéŸqëªÓú ôÏ™­èæõ¿Ñ¿`Ú¢›Øo¤Ém´ Ìì§Å-µ Lí7Ñ¿æöZæöпáV[&÷›éßrÛ­³û-ôï˜éè¦÷[éß5ãÑÍï·Ñ¿ï`&øÒèv`F·ÓìÖ`>ÿ¢ÿÔmÂ6l î ÿÜ-Ã6\ þM¿ÄíÃ6L î¤_j¶¤›æÿC¿Ì­È6, þGÿµÛ’m8ÜM¿Ü-Ê6 –ô+Ü®l_AM¿Ò­Ëö°°W¹Ù®Ðàj·4ÛÃTÐѯq{³=Ll¤ÁŸÜêlO!+ip)˜~½BvÒà·M+ø‹B–Òà¯n¡¶‡¥­4¸ÑíÔöp²–7¹µÚ†BöÒàf·YÛ›¯Å4¸Õ-×öf+d3 þiö¦ß®Õ4ø—iœ~‡BvÓàßnÿ¶7O!Ëið·‚+¸K!Ûið_·…Û›§õ4¸ÛïáÁR!ûiPûEÜE!»g¸«ßæÃݲ|†»ûu>ÜC!Ûg8÷û|¸nÿC_ø…>ÜÓþWú^~£÷¶¿D¿·_éÃ}ìoÑ÷õ;}¸ŸBüÞÇ/õáþ ñVx_¿Õ‡(Ä[áýüZ¨o…÷÷{}xB¼>À/öáÁ ñVø@¿Ù‡‡(Ä[áƒüjªo…ö»}x˜B¼>Ä/÷áá áXx„ßîÃ#±ð¡¶:ÑRÇ£m…¢?L! î×ÿð áXøH¿ÿ‡Ç(„cá£|­N…ñ |¬B8ë#@ø8…p*|¼÷qø…p*|¢Ïá“©ðÉ>„OQIJçSAx¼"’kx‚ቊ؞ÓlE£?Uësø4Ÿ§+b_ OöA!N„/PÄZþŸÏá ±‡/ò"|±"Öàð%>Q„ç)b _ê#Eø2E¬]áË}¦_¡ˆµ+|¥mŒôW)bí _m›#ý5ŠX»Â×úО¯ˆµ+|Oáë±þ„oð±#|£"7¾oò±#|³"4^àcGøEh>|«áÛ¡ùðí>v„*Bóá;ló¤¿Sšße(ýÝŠÐzøKÂ÷*Bëáû|, ߯­‡ð±$ü "´~hãûóaEh=üÈÆ×ûQEh=ü˜-áÇ¡õð>¶„ŸT„FÂOùØ~Z ?c›-ý³ŠÐHø9ÛpéŸW„6Â/øX~QÚ¿äcMøeÅË_ñ±&üªb‡å¯ùX~]±Ãð7|¬ ¿©Øaõ[>Ö„ßVì°øk‹;,~×Çšð{Š¿ïcMøÅ;?ô±&ü‘b7g?ö±&ü‰b÷:êcMø3ÅîuþÜÇšðbÅîu]âcMø ÅîÏy©5á/»ßç2kÂ_)v¿Ï¯}¬ £Øý>—ûXþV1ë~x…mÞôß)fݯ´ œþ{Ŭ©áU>ö„PÌš^ícOøGÅîù_ãcOx­b÷üÿäcOøgÅîù_çcOx½b÷üoð±'ü‹b÷|ÿêcOø7Ŭmá>ö„Wìpv“=á?;œÝìcOx‹b‡³[}ì oSìpöO{ÂÛ³–…ÿò±'¼C1kYøo{Â;;œýÇÇžð.Ågÿõ±'üŸb‡³»}ì —ŠY»ÂÚÇž°QÌÚ¶>ö„bÖ®°÷±'(f­Š{¢P1kUùØÅŠY«¢ÄÇž(UÌZ }ì‰2ŬU‘éŸëƒ¨PÌZ™þ¹>ˆ*Åœ‡ÈôÏõA´‰bÎCdúçú )æ"Ó?\Œ¶VÌÚ™þáb´­bÖ¦Èô£í”¸Îô£±R4™þ¹>ˆV•¢±Èô'£5¥h,2ýs}Í”¢±Èô7£•¢±Èô7£”òœ"Ó?ÜŒvQÊsŠLÿ\D»)å9E¦®¢=”òœ"Ó?×ѺRbWdúçú ÚS)ó™þ¹>ˆöVʈöWŽv"Ó?×ÑÊáBdúçú :P9\ˆLÿ\D)‡ ‘éŸëƒè`åp!2ýs}¢œó™þ¹>ˆUÎyLÿ\D‡)ç¼Fñ±7:\9\ˆŽð±7:R9üŽLÿ\DG)‡ß‘éŸëƒèaÊ9‘éŸëƒèÊ9‘éŸëƒè圇ÈôÏõAôhh62ýs}=VÞŒHbôÇ©p¯ïñ–ÈèOPá^ŸéEORá^ŸéEOQáþü¦<¯ÏD¦<¨D¦<=U%‰žæc|ôt•îý9ÙÇøè•îý1ý³†E§ªtÏÕôϦ¿E§[£Ÿ¡Ò½?æÖ•èL•îý1ÿ³†Eg«ró?kXôlUn^Ìÿ¬aÑsT£#ó?kXô‹Þî¯=¢ µ=#z‡¿öˆÞ© x=z—¿öˆÞ­ x7z¿öˆÞ« ø(zŸ¿öˆÞ¯ îù}À_{DÔ¼}È_{DÖ8}Ä_{DÕwÞ?æ¯=¢kƒ;ïŸð×Ñ'µÁ÷OùkèÓÚàÎûgüµGôYm€ËÑçüµGôympœü‚¿öˆ¾¨ Ž _ò×Ñ—µÁïøkè«ÚàÎÑ×üµGôumpçàþÚ#ú¦6¸9þ–¿öˆ¾­ n¾ã¯=¢‹4rüú®¿öˆ¾§1ûEô}íý@cö‹ÈüïÞ÷iLì‹~ì¯A¢Ÿh̾ýÔ_ƒD?Ó˜ØýÜ_ƒDkLì‹.ñ× Ñ/4fÏ.õ× Ñ/5f?‰.ó× Ñ¯4&öEæ<ýFcb_dþÇcÑo5&öEWøk’èwû¢+ý5Iô{Ý<\å¯I¢?hÌ~]í¯I¢?jÌ~]ã¯I¢k5&öEò×$ÑŸ5&öE×ùk’èz‰}Ñ þš$ú‹ÆÄ¾è¯þš$ú›ÆÄ¾èFMý]cb_t“¿&‰þ¡1±/ºÙ_“D·hLì‹nõ×$Ñmû¢úk’èv‰}Ñ¿ü5It‡Æì_Ñ¿ý5It§ÆÄ¾ÈüÏõAt—ÆÄ¾ÈüÏõAô?‰}ÑÝþ%ZjLì‹j5û¢Ö_£DÆÄ¾¨÷×(ñ@cb_øk”8Ô˜ØGþ%Ž5Æ—qâ¯QâTc|ý5JœiŒ/ãÜ_£Ä…Æø2.ý5J\i̼Å+þ%ÞDcb_¼Á_£Ä#‰}±ü5J¼©Æø-ÞÌ_£Ä›kLì‹·ð×(ñ–ûâ­ü5J¼µÆÄ¾xo«11/¾‡¿F‰·Ó˜˜oï¯Qâ±ÆÄ¼xâ¯QâU‰yñÔ_£ÄkãÓxÏ4&æÅ÷ô×(ñŽïø^þ%ÞIc|ïì¯Qâ]4&æÅ»úk”x7ñS¼»¿F‰÷И\Ïý5J¼®1¹.^øk”xOÙ·ã½ü5J¼·ÆäºøÞþ%ÞGcr]¼¯¿F‰÷Ó˜\ßÇ_£ÄûkLn‰ïë¯Qâ4&×Å÷ó×(ñ“ëâûûk”ø Éuñ2GñÁ“sâ*dŽâC4&×Åò×,ñ¡ÃÛøÁþš%>Lcr]ü…nŽט\¡ÐÍÑ‘“ëâ‡*tst”Æäºøh…nަ1~‹®ÐÍÑ#4&×ÅTèæèñSü(?Zcü?Æ_ãÄÕ?ÅÇúkœøqÃÿøñþ'~‚Æäºø‰þ'~’Æä¶øÉþ'~Я䙸8¯1y&>Á_ãÄ'jŒ?â“ü5NüTÉ7ñÓü5NütÉmñÉþ'>Ecr[ü Ÿª1¹-~¦¿Æ‰OÓÿħûkœø ÙÏâg)tst¦Æì/ñY Ý­1ûK|ŽB7GÏÖ˜ý%>W¡›£çhŒ¿âç*tsô<Ù?âç+tsôÙoâÿSèæè…³ŸÅ/RèæèÅ“Ûâ—(tstžÆä¶ø¥ ݽLcr[ür…nŽ^¡1¹-~¥B7G¯Ò˜Ü¿Z¡›£×hLn‹_«ÐÍÑù“Ûâ×)tsôzÉmñº9z£Æä¶øM ݽYcü_ ÐÍÑ[4&·ÅoUèæèm“Ûâ·+tst¡Æä¶ø ݽScr[ü.…nŽÞ­1¹-~B7Gï՘ܿO¡›£÷kLn‹? ÐÍÑ5&·ÅRèæèÓÛâ(tsôQÙâ)tsôqÉmñ'º9ú¤Æìñ§º9ú´Æìñgº9ú¬Æìñçº9ú¼Æìñº9ú¢Æìñ—º9ú²Æä¶ø+ Ý}Ucr[ü5…n޾®1¹-þ†B7GßÔ˜ÜK¡›£okLn‹¿£ÐÍÑE“Ûâï*tsdþ'·ÅßWèæÈüÏ>ÿP¡›#ó?¹-þ±B7Gær[üS…nŽÌÿä¶øç Ý™ÿÉmñ% Ý™ÿÉmñ¥ Ý™ÿÉcñe Ý™ÿÉmñ¯º92ÿ“Ûâ˺92ÿ“Ûâ+º92ÿ“Ûâ+º92ÿ“Û⫺92ÿ“Û⫺92ÿ“Ûâkº92ÿ“Ûâ?)tsdþ'·Å×)tsdþ'·Å7(tsdþ'·ÅUèæÈüÏ~ߨÐÍ‘ùŸý>¾I¡›#ó?¹-¾Y¡›#ó?¹-¾U¡›#ó?¹-þ§B7Gær[ü/…nŽÌÿä¶øß Ý™ÿÉmñº92ÿ“Ûâÿn<ŸærW|·B7WærW\+tseþg_Œ[…n®Ìÿ䮸WÈ\%ærW(d®ó?¹+‰2W‰ùŸÜ•$ ™«ÄüϾ™ 2W‰ùŸÜ•˜ÿ™«ÄüOîJÌÿÌUbþ'w%ææ*1ÿ“»ó?s•˜ÿÙWó?s•˜ÿÉ]‰ùŸ¹JÌÿä®ÄüÏ\%ærWbþg®ó?¹+1ÿ3W‰ùŸÜ•˜ÿ™«ÄüOîJÌÿÌUbþ'o$ææ*1ÿ“»ó?s•˜ÿÉ]‰ùŸ¹JÌÿä®ÄüÏ\%ærWbþg®ó?¹+1ÿ3W‰ùŸ};1ÿ3W‰ùŸÜ•˜ÿ™«ÄüOîJÌÿÌUbþ'w%ææ*1ÿ“»ó?s•˜ÿÉ]‰ùŸ¹JÌÿä®ÄüÏ\%ærWbþg®ó?¹+1ÿ3W‰ùŸÜ•˜ÿ™«ÄüOîJÌÿÌUbþ'w%ææ*1ÿ“»ó?÷‰ùŸÜ•˜ÿÉ!‰ùŸÜ•˜ÿ¹HÌÿä®ÄüÏ}@bþ'w%ææ21ÿ“»ó?s™˜ÿÉ]‰ùŸ¹LÌÿä®ÄüÏ\&ærWbþwsiþ'w%æ7—ærWbþwsiþ'w%\ÉÒÍÿä®ÄüïæÒüOîJÌÿn.Íÿä®ÄüïæÒüOîJÌÿn.Íÿä®ÄüïæÒüOîJÌÿn.Íÿä®ÄüïæÒüOîJÌÿn.Íÿä®äþÇ2‰ùŸÜ•<ÓÿX&1ÿ“»’Óýeó?¹+y–ÿ±Lbþ'w%gùË$ærWrŽÿ±Lbþ'w%çúË$ærWò\ÿc™ÄüOîJžï,“˜ÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\šÿÉ]‰ùßÍ¥ùŸÜ•˜ÿÝ\~ZrQbþwsùYMÈE‰ùßÍåç5!%æ7—_Ô„\”˜ÿÝ\~YrQbþwsùUMÈE‰ùßÍå×5!%æ7—ßÔ„\”|Ëÿ.ù¶&ä¢ä;þÇpÉEš‹’ïúÃ%ßÓ„\”|ßÿ.ù&ä¢ä‡þÇpÉ4!%?ö?†K~¢ ¹(1ÿ»¹ü™&ä¢ÄüïæòbMÈEÉ%þÇtÉ/4!%—úÓ%¿Ô„\”\æL—üJrQòkÿcºä7š‹’Ëýé’ßjB.JÌÿn.§ ¹(1ÿ»¹ü½&äžÄüïæòš{ó¿›Ë?jBîIÌÿn.¯Õ„Ü“˜ÿÝ\þYrObþwsy½&äžÄüïæò/škó¿›Ë¿iB®IÌÿn.ÿ® ¹&1ÿ»¹ü‡&äšÄüïæòMÈ5‰ùßÍåmškó¿›ËÛ5!×$æ7—whB®IÌÿn.ïÔ„\“˜ÿÝ\Þ¥ ¹&1ÿ»¹üŸ&äšÄüïær© ¹&1ÿ»¹l4!×$æ7—&äšÄüÏ}@:Є\“šÿ¹HCMÈ5©ùŸû€4Ö„\“šÿ¹HSMÈ5©ùŸû€4Ó„\“šÿ¹H MÈ5i©ˆ¹O+MÈ5éŠ"æ>ÝDrMºAsŸŽ4!פRÄܧ›jB®I7SÄܧ›kB®I·PÄܧ[jB®I·RÄܧ[kB®I·QÄܧÛjB®I¹O·Ó„\“n¯ˆ¹OÇš°7¥EÌ}ºª ¹&*bîÓ5MÈ5銘ût¦ ¹&½§"æ>ÝQrMz/EÌ}º“&äštgEÌ}º‹&äštWEÌ}º›&äštwEÌ}º‡&äšt®ˆ¹O×5!·¤ EÌ}º§&ä–t/EÌ}º·&ä–ôÞŠ˜ûtMÈ-龊¸H÷Ó„Ü’ÞG÷éþš[Òû*â\¤hB.I杻s‘¨ ¹$½¿"ÎEz&ä’ôŠ8éÁšKÒ*â\¤‡hB.I¤ˆs‘ª ¹$}°"îÒÃ4!—¤QÄ}@z¸&ä’ôEœ›ôHMÈ!éCqnÒ£4!w¤G+âܤÓ„œ‘>\ç&}„&äŠô‘Š87é1š+ÒG)âܤք\‘>Fç&}¬&äŠôXEœ›ôqš+ÒÇ+âܤOЄ\‘>Qç&}’&äŠôÉŠ87éS4!W¤Ç)âܤÇkB®HOPĹIOÔ„\‘ž¤ˆs“>UrEú4EîÜ<]rEz²"wnNÑ„\‘>C‘;7§jB®HŸ©È›Ó4!W¤§+rçæ MÈé³¹ss¦&äŠô,EîÜœ­ ¹"=G‘;7ÏÖ„\‘žëÞž>GrEú\Eî=OrEú|ÿó÷ôš+ÒÿSäÎÕ 5!W¤/ò?O_¬ ¹"}‰"wÎÎÓ„‘¾Ôÿ|>}™&äˆôåŠÜ¹{…&äˆô•þçïé«4!G¤¯VäÎák4!G¤¯õ?OÏׄ‘¾N‘;—¯×„‘¾Áÿ|>}£&ä„ôMŠÜ9}³&ä„ôEErBúVEMrBúvEîœ^¨ 9!}‡ÿGúNMÈ é»üÇ8ÒwkBNHߣȽ_ïÕ„œ¾Ï¬#}¿&ä„ôþcé5!'¤Rä^ÿ‡5!'¤QÄýCúQMÈ éÇqÿ~\rBú EîRrBú)Eîý1ÿ“ÒÏ(rï‡ùŸœ~N‘{ýærBúEî›ÿÉ é—¹slþ''¤_QÄýCjþ''¤_SÄýCjþ''¤ßPäιùŸœ~K‘;çærBúEÿÉ éw¹snþ''¤ßWäιùŸœþP‘;çærBúcEÿÉ éO¹snþ''¤?WÄýCjþ''¤—(rçÞüONH/UÄýCjþ''¤—)r0ÿ“Ò_+âþ!5ÿ“ÒË9.˜ÿÉ éЏHÍÿä„ôJEŽærBz•"Ç ó?9!½Z‘ã„ùŸœ^£ÈqÂüONHÿ¤ÈqÂüONH¯Sä8aþ''¤7(rœ0ÿ“Ò¿*rœ0ÿ“Ò9N˜ÿÉ éMŠ'Ìÿä„ôfEŽærBz«"Ç ó?9!ý§"Ç ó?9!ý—"Ç ó?9!ý·"Ç ó?9!ý"Ç ó?9!ý¯"Ç ó?9!½[‘ã„ùŸ\ÖŠ'Ìÿä‚´Uä8aþ'¤½"814ÿ“ †ÿÓÐüO.FŠàÄÐüO.&þóHCó?¹`8T7†ærÁ0W7†ærÁÐü7†ærÁpeãß7ÿ“ †æ824ÿ“ †ò›šÿÉCó?šÿÉCó?šÿÉCó?šÿÉÃmüǬ†ærÀÐüÏ}ÄÐüOšÿáÌÐüONü秆ærÀÐüw†ærÀpÿyª¡ùŸ04ÿá¡ùŸ04ÿá¡ùŸ0ÜÙ¬khþ' wõŸëšÿÉÃÝý纆ærÀpî?×54ÿ“† ÿ¹®¡ùŸ0ÜËþjhþgÏÞÛÎkhþgÏîë?ç54ÿ³çÍÿpihþgÏÞ×îkhþgÏšÿáÒÐüÏž?¼¿ÿ|ØÐüÏ^?|€ÿ\ØÐüÏ^?| ÿ\ØÐüÏ^?|ÿ\ØÐüÏ^?4ÿé¡ùŸ½~hþ‡SCó?{ýÐü§†æöúáCý细æöú¡ùn ÍÿìõCó?ÜšÿÙë‡æ¸54ÿ³×Íÿpkhþg¯šÿáÖÐüÏ^?äGÀtó?{ýÐü·†æöúáý繆æöú¡ùŽ ÍÿìõCó?šÿÙë‡'øÏã ÍÿìõCó?\šÿÙÛ‡æ¸64ÿ³·ÍÿpmhþgošÿáÚÐüÏž>4ÿõ¡ùŸ=}hþ‡kCó?{úÐü׆æöôáYþózCó?{úÐüç†æöôá¹þózCó?{úÐü÷†æöôáóÝÇ ‡¦Öô¡é _¨UÖòá‹X¶‡/Ö*Kùð%îWçi••|øR÷«—iÕõ—»ú ­²Ž_é~õ*­²Œ_í~õ­ºßëµîWçk•E|ø:÷«×k•5|ø÷«7j•%|ø&÷«7k•|xûÕ[´Ê‚<4ÑèáÛ´ÊB;4Ñèá…Ze!šèôðZe!¾Ë@qøn­²ßã? 8|¯VYȆïsÿö÷k•õjøÿqÅáµÊz5üÿ¸âðÃZuû#þãŠÃjÕáîcþãŠÃkÕ=ŽOø+?©U÷ö›æÁõðÓZešæÁõð³ZešæÁõðóZešæÁõð‹ZEŸCÓ<×:Ã/k ¿âþ´_Õ*0šäùðëZæC“<0~S«Ö&y`>ü¶V¬MòæiÕÁÙ$ï`þ=­:øšäÌ Ug“¼ƒù´ê`l’w0ÿ‰VŒMòæ?Óªƒ±IÞÁüb­:›äÌ¡Uc“¼ƒù/µê`l’w0ÿ•VŒMòæ¿Ñªƒñå_ßoµêà{ÅÈÇï´êX{¥¤ßkÕ‘ö*7HЪãìÕ_úµê8{ÍÆ—~­Vgÿ´ñ¥ÿY«Ž³×m|é×kÕqö†/ý/Zu\ýëÆ—þ7­:®Þ¸ñ¥ÿ]«Ž«7m|éÿЪãêÍ_ú-Zu\½uãK¿M«Ž£ÿÜøÒoת_ó»óÖšºh~ç>kx§¦îšßÇîÒÔBó»óØÿ4u#a~w[jꎞùÝy¬ÑÔ¾ÖnvØiêÞµÞn6hÊ{šþs³Y¨)‡.‹üçf³XSro–øÏÍf©¦äÞl¸ñ×™¦äÞ,ßøëBSroVú›g•¦äÞÌüŽ÷²M4%÷füçn³‘¦ëL½©¦äÞl3ÿ9ÜlsMɽÙþãÛÙ–š’s³­üçr³­5%çfÛøÏåfÛjJŽÍîá?—›m§)96ÛÞ.7kJŽÍ&þs¹Ùª¦îÏ9Ýøë5MɱÙ=Ó”œš™ßñj¶£¦äÔÌüŽW³4%§fæw¼ší¢)ÊÌïx5ÛMS°“™ßñj¶‡¦äÎl¾ñï¯kJÎÌÌïܧe{jJÎÌö¹—½·¦îe›ÞÑp¶¦ÄÌl_ÿø³ý4…b™é-gûkJ¬ÌLïh9;@SbefzGËٚ¹Ìâ=ZÎÒÎe¹§~°¦¤ÈÌ쎥³C4{™ÙKg‡j ö2³;–ÎÓ”T˜™Ý±tv¸¦lMÙDÙ‘šbÕÌÒ=ÖÎŽÒ,ffw¬=LS¶˜Ì쎵³GhJJËÌîX;;FSRVfvÇÚÙ£5eKÈÌîX;{¬¦`5;vãËœ¦`5{üÆßÿ š‚Õì‰þË Ù“4%Õdfw,Ÿ=ESRMfvÇòÙñš’j2K÷X>;QSRMfvÇòÙS5ËÙÓü§¸³§kJªÉNöŸâÎNÑ”T“=Ê;;USRMfvg ÈNÓ”T“î?Õ¡)©&{–ÿTwv¦¦¤šÌÒ=[Av¶¦¤šÌìÎV=[S4«ˆ­ {ަ¤šì¹OÏó4%ÕdÏWÄ–½@SRMfzgKÈ^¨)©&{‘"¶„ìÅš’j2K÷l Ùyš’j²—*bKÈ^¦)©&³tÏš½BSRMöJEÜæe¯Ò”T“½Ú ={¦¤šìµþSèÙùš’j²×)†ZÙë5%ÕdoðŸJÏÞ¨)©&{ÓÆÓþfMI5ÙÇû-š’j²·n|þoÓ”T“½}ãø^¨)"ÌÞ±ñy¿SSD˜½K1ëHönMI5Ù{CÅ콚’j²÷)†ŠÙû5E”Ùü§â³jŠ(³)Æ&Ù‡5E”ÙG;J~TSD™}L±;/×QfŸPì(ùIMeö)ÿe’ìÓš"Êì3þSöÙg5E”Ùçü§ì³ÏkŠ(³/l¤Û5E”Ù—ü§î³/kŠ(³¯lœ÷¯jŠ(³¯)vTýº¦l±Ù7;ª~SS¶Öì[ŠU¿­)ëJöÅŽªiê¨þ]Å/ßÓÔQûûйMÌ~ ©£ô;ÊþHkî}ü±bGÙŸhͽ?UÌò•ýLkîuý\1·‰ÙÅZsô»ÄK û…Öý.Uì(üK­¹×y™bGá_iͽO¿Vì(ü­9œ]®ØQø·Zs8»B±;¿¿Ó·6Ù•Š¹MÌ~¯5ne²«;JÿAkŽW+v”þ£ÖÜù¿F±£ôµZsçåOйMÌþ¬5w>®SìþÜ×kÍÍß ŠY³¿hÍÍß_»×ñ7­¹ù»Q1·‰Ùßµææï&ÅŽêÿК›¿›s›˜Ý¢57_·*v”¿Mkn¾þ©ØQþv­¹ùù—b÷¾Ü¡57?ÿVìÞ—;µÆ"”ýG1·‰Ù]ZcÊþ«Ø½OÿÓÛNv·b÷>-µÆ¶“ÕŠö­±Íd­bn³Nkl3Y¯ ä­±îæb4‡ZcÝÍ#Åx µÆüä‰b<§ZcÝ͇Šñ@ži ­ä¹b<Zã\æ¥ÿVH^i ä+ŠIËù&ZÃ#ùŤË|¤5Îu.ŬÏù¦ZcÎóÍã|s­Áé| Åx#ßRkp:ßJ1ÞÈ·Ö¼Ïù6ŠñF¾­và}Î9É·ÓŒçoïÇ|¬xÌÝÀòUÍxøù”£ž¯ióüâ˜Ï4ù=ýâ˜ï¨hÌïåÇ|'Í@c¾³_ó]4ù®~qÌwÓ 4æ»ûÅ1ßC3ИÏsј¯kó…b.ó=5ù^Šé|oÍ@c~oÅ(0ßG3F3ßW1 Ì÷ÓŒÑÌ‘Ï÷׌ÑÌï«æhÆhæ÷SÌÈÔŒÑÌﯘ‹Æü Í@cþÅ\4ækó*æ¢1?D3F7b.óC5ctó+æ¢1?L3И?D1ùášÆüÿ üHÍíü¡þ @ùQš1ÚùÑŠ¹h̦hÌî¿”?B3И?R1JÎÑ 4æRŒ’óGkóÇ(FÉùc5ù±þ Dùã4ùã£äü šqtò'*FÉù“4ãèäOVŒ’ó§hFˆÈSŒ’óã5#Fä'ø/ å'jÆÑÊOò_@ÊŸªG+šÿRþtÍùÉŠQr~Šf‰üŠÝȪG/¦b7s§iÆÑËOWì¦î Íù³»¹;S3‚D~–b7wgkFÈÏQìæîÙš$òs»¹{Žf‰ü¹ŠÝÜ=O3.dòç+vs÷͸ÉÿO±›»jÆ…Lþ"Ånî^¬2ùK»¹;O3.dò—*vs÷2͸€É_®ØÍÝ+4ã&¥b7w¯ÒŒ ˜ÜÔïæî5šq“›úÝܯ0¹©ßÍÝë5ã&7õ»¹{£f¨+“b7woÖ uå(vs÷͸pÉߪØÍÝÛ4ã‚%»ÿÂW~¡f\°äïð_øÊß©,¹©ßÍÝ»5ã‚%7õ»¹{¯f\°ä¦~7wï׌ –ÜÔïæîƒšqÁ’›úÝÜ}X3.TrS¿›»jÆJnêws÷q͸1ÉMýnî>©÷ù§»¹û´f»ÜÔïæî³šq/‘›úÝÜ}^3î%ò/(vs÷E͸—ÈMýn™CóW»¹ûªfͦ~7w_×Ì¡ÙÔïæî›š94›úÝÜ}[3n"rS¿›»‹4ã&"7õ»¹ûžfÜDä¦~7w?ÐŒ›ˆÜÔïæîGšq‘›úÝÜýD3n"rS¿›»ŸiF6ÏMýnî.ÖŒ,¿Ä'•üš9Ž^êW¹ü—š9Ž^æW¹üWš9ŽþÚ'•ü7š9Ž^î“Jþ[ÍGMýnާ™ãè•>hæ¿×Œž_åWßüšÀsS¿›ó?jFϯñÁ*¿V3xþ'¿jæÖŒž_çWÉüz͸{ÈoðÁ2ÿ‹fòÜÔïÎÉß4#ç7ú`™ÿ]3y~“–ù?4s¯ófó[4#ç¦~w®nÓŒ@ž›úݹº]3ynêwçêÍäù¿ý*žß©<7õ»sv—f¬nùýjÿO3÷>˜úݹ[jÆê–×>Xæfî}iY|óN3÷ªMüœÊb ¯²ü¢Y„šŸ‹È/šE¬¯²H|°*RÍx•…‰ŸS\dšñ*‹Ü_…fÄãbcì/*͈ÇÅŠ_Ì‹M4#|+Fšñ§,LüP ØT3âq±™_„‹Í5ã©[øE·ØR3¦ªØÊß[kæþ\Û¸ÜZl«CT˜÷HaÞgˆŠí‘ÂÄÏC.&þKí…©Ÿ½¤˜ú/&ö’bÅ@¦0ù“o‹{*2…ÉŸ|[ÜËç„ÂäOž-vö_r/LþäÙbW¿÷&òl±»ÿÒ{aò'Ï& U˜ü9ÅÂ_p{jöèÂä´Š½µ ,Lþ@«ØG»ÁÂä´Šý´ ,Lþ@«Ø_»¸·Ëä´Š´‡û}Lþ@«8P{? “?Ð*Òœ¼V˜üVq°æ UaòZÅ!š“× “?Ð*Õœ¼V˜üVq˜æä‚Âä´ŠÃ5gÌ “?Ð*ŽÔœ|U˜üVq”æî}3ù­âaš³t& UAs7Ö& U®9y©ø„ÿ6wñIÍÉKŧü·¹‹OkN^*>ã¿Í]|VsòRñ9ÿmîâóš“—Š/øos_Ôœ¼T˜ü·¾¬9y©0ù;n}UsòRñ5ÿmïâëš“—Šoøo{ßÔœ¼T|ËÛ»ø¶æä¥â;þÛÞÅEš“—Šïúo{ßÓœ¼T|ßÛ»øæä¥Âäï¸õ#Í )…Éßqë'šRŠŸúoƒ?ÓœRüܼ¸XsBJq‰ÿ6xñ Í )Å¥þÛàÅ/5'¤—ùoƒ¿ÒœRüÚ¼øæ„”ârÿmðâ·šRŠ+ü·Á‹ßiNH)®ôß/~¯9!¥¸Ê¼øƒæ„”âjÿmðâšRŠkü·Á‹k5'¤–û¹W+þ¬9!¥°ÜϽZq½æ„”âÿmñâ/šRŠ¿úo‹ÓœRXîç­ø»æ„”Âr?÷hÅ?4'¤–û‘wq‹æ„”ÂäÏ=Zq›æ„”ÂäÏ=Zq»æ„”ÂäÏ=Zq‡æ„”âßJ—ïÔœRüG‰ãò]šRŠÿ*q\þŸæ„”ân%ŽËKÍ )E­Äq¹ÑœR´J—;Í )E¯.—Í )e .—¡æ„”2R—ËXsBJ™(Ëeª9!¥*Ëe¦9!¥Ì•Àå²ÐœR–JàrYiNH)W”ÀårÍ )å%p¹iNH)¥.—›jNH)7S—ËÍ5'¤”[(Ëå–šRÊ­”ÀårkÍ )å6Jàr¹­æ„”òJàr¹æ„”r{%p¹kNH)'Jàr¹ª9!¥œ*Ëåšæ„”r%p¹œiNH)ï©.—;jNH)ï¥.—;iŽŸË•ÀårÍñs¹«¸\î¦9~.wW—Ë=4'¤”s%p¹\לR.”ÀårOÍ )å^Jàr¹·æ„”òÞJàr¹æ„”r_%p¹ÜOsBJy%p¹Ü_sBJy_%p¹<@sBJy?%p¹P \.Íÿ„”òAJàriþ'¤”V—Kó?!¥|ˆ¸\šÿ )åJàriþ'¤”U—Kó?!¥«[Neöws÷y-àueöws÷E-Ør*³?·Õ—µ€ß•ÙŸÛê«Z°åTfnª¯kÏ+³?·Õ7µ`Ë©ÌþÜTßÖÂñÝìÏí@u‘l9•ÙŸÛê{Z8Þ›ý¹¨~ [Neöçv ú‘ŽÿfnªŸhÁ–S™ý¹¨~¦…óÙŸÛêb-Ør*³?·Õ/´p~0ûs;PýR ¶œÊìÏí@õ+-œ/ÌþÜT¿Ñ‚-§2ûs;PýV ç³?·Õï´`Ë©ÌþÜT¿×‚-§2ûs;PýA ç³?·Õµ`Ë©ÌþÜT×já|cöwçúÏZ°åTfnªëµpþ1ûs;PýE ¶œÊìïÎýß´`Ë©ÌþîÜÿ] ¶œÊìïÎý?´`Ë©ÌþîÜߢ[Nu«nªÛ´`Ë©ÌÿÜT·káüö/%ÜTwháüfþwœ¸S ¶œÊüï8q—ÎwÿUÊVQýO ç»»•r;P-µ`Ë©j¥ÜTέRöªÓÂù¯ÿ/k´2Ђ-g%PÊíÀJ¨>\‰”r;°kW¥Ü¬¤Z°å¬ •r;°’iWr¥Ü¬ZàÇ•R)·+•ì1++J¹XÙD ö˜• J¹XiÁ³"¥Ü¬lª{ÌÊfJ¹XÙ\ ö˜•-”r;°²¥ì1+[)åv`ek-ØcV¶QÊíÀʶZ°Ç¬ÜC)·+ÛiÁ³²½RnVÆZ°Ç¬L”r;°²ª{ÌÊT)·+kZ°Ç¬ì ”Û•™ì1+÷TÊíÀÊŽZ°Ç¬ÜK)·+;iÁ³²³RnVvÑ‚=feW¥Ü¬ì¦{ÌÊîJ¹XÙC ö’•¹¿m_Yׂ½deáoÇWöÔ‚}be/¥Ü¬ì­{Éʽ•r{°²ì%+û*åö`e?-ØKVۃ•ýµ`/Y¹¯RnVЂ½då~J¹=X9P ö’•ûûÛú•ƒ´`/Yy€ÿo®¬{ÉÊýëpå-ØKVäÿ[‡+‡jÁ^²ò`ÿß:\9L ö’•‡øÛû•õ's¹r„ÿo®©=™Ë•‡*åváÿµtÖñ¶UUfw\öZḵz]aoD@JDÄD@¤»»»¥•îîîîéîîn¾÷sù‡ç7ÑËYkÌ1çó>óž³çhI³/GKI—§ £¥e̾ýUº<]-#cëËe¥ËÓ…Ñr2¶¾ü›tyº0Z^ÆÖ——.OF+ÈØúrEéòta´’Œ­/ÿ!]ž.ŒV–±õå*ÒåéÂhU[_®&]ž.ŒV—±õåÒ%wGkÊØúr-é’»£µel}ùOé’»£udl}¹®tÉÝÑz2¶¾\_ºäîh[_n(]rw´‘Œ­/7–.¹;ÚDÆÖ—›J—Üm&cëËÍ¥K±õå–Ò%wG[ÉØúrké’»£mdl}¹­tÉÝÑv2¶¾Ü^ºäîh[_î(]rw´“Œ­/w–.¹;ÚEÆÖ—»J—Üí&cëËÝ¥KîŽö±õÝžÒ%wG{ÉØúhoé’»£}dl}´¯tÉÝÑ~2¶¾Ù_ºäîè[ß(]rwtŒ­o–.¹;:DÆÖ7‡J—Ü&cë“I—Ü.cë“#¤K”±õÉQÒ%wGGËØúäé’»£cel}òoé’»£ÿÈØúä8é’»£ãel}r‚tÉÝщ2¶>9Iºäîèd[Ÿœ"]rwtªŒ­ON“.¹;:]ÆÖ'gH—Ü)c듳¤KîŽÎ–±õÉ9Ò%wGçÊØúä<é’»£óel}rtÉÝÑ…2¶>¹Hºäîèb[Ÿ\"]rwt©Œ­O.“.¹;º\ÆÖ'WH—Ü])cë“«¤K–±õÉ5Ò%wG×ÊØúä:é’»£ëel}rƒtÉÝÑ2¶>¹Iºäîèf[ŸÜ"]rwt«Œ­On“.¹;º]ÆÖ'wH—ÜÝ)cë“»¤KîŽî–±õÉ=Ò%wG÷ÊØúä>é’»£ûelu}@ºäîèA[]’.¹;zXÆV×ÿJ—Ü="c«ëÿ¤K±Õõ1é’»£Çelu}BºäîèI[]Ÿ’.¹;zZÆV×g¤K•±Õõ9é’»£çelu}AºäîèE[]_’.¹;zYÆV×W¤KîŽ^•±Õõ5é’»£×elu}CºäîèM[]ßòŸí:z[ÆV×w|~½+c«ë{>ŸÞ—±ÕõŸ¿GÊØêú‘ÏÛ£eluýÄçßѧ2¶º~æóïès[]¿ðùvô¥Œ­®_ù<;úZÆV×o|ž}+c«ëw>¿Ž¾—±ÕõŸ_ƒid̺ Ÿ_ƒ¦ŒY× åókЖ1ët|~ º2f]ƒžÿìÚ /cÖ5øÏ® †2f]ƒ)þ³kƒie̺à?sEȘu ÀæŠ ’1ë€ÿÌ“1ë€ÿÌA,cÖ5ÿ™+‚TÆö}ÁæŠ —±}_ðŸ¹"(elßüg®¦Êؾ/øÏ\üXÆö}ÁæŠ`zÛ÷ÿ™+‚dlnFÏç`&ÛŸû©çs0³ŒíÏÍâùÌ*cûsÿçùÌ&cæ‘ü·¯³Ë˜y$ÿíë2f ~!]û:§Œ™G‚¹üßfc3à¿ýó¹eÌ<üÒŸóȘy$ø•ÿÛ±`^3óù¿m æ—1óHðkÿ·QÁ2f ô{,$cæ‘`a,"cž«¿ñ,*cž«¿õ;,&cž«à¿=×â2f~ À{®%dÌüüAºö\à?óKþÛsÿÌ/øoÏþ3¿à¿=øÏü€ÿö\à?óKþÛsÿÌ/øoÏþ3¿à¿=øÏü¬èÿ¶9ÿ™_ðßžüg~ À{NðŸù%ÿí9Áæ—ü·çÿy®€ÿöœà?ÏUðßžüç¹JþÛs‚ÿŸà?ÏU‚}> Àž«›ú|€ÿÖg࿽øÏs•ü·÷ÿy®€ÿö^à?ÏUðßÞ ügŽ À{/ðŸç*øoïþ[ß‚ÿö^à?ÏUðßÞ ügn À{/ðŸç*øoïþó\%ÿí½ÀëSðßÞ üç¹JþÛ{ÿ =«Óƒ2¡o‡IÏêô°LèÛá¥guzD&ôíðÒ³:=*úvø˜ô¬NË„¾>!=«Ó“2¡o‡OIÏêô´LèÛá3Ò³:=+úvøœô¬NÏË„¾¾ =«Ó‹2¡o‡/IÏêô²LèÛá+Ò³:½*úvøšô¬N¯Ë„¾¾!=«Ó›2¡o‡oIÏêô¶LèÛá;Ò³:½+úvøžô¬NïË„¾~ =«Ó‡2¡o‡IÏêô±LèÛá'Ò³:}*úvø™ô¬NŸË„¾~!=«Ó—2¡o‡_IÏêôµLèÛá7Ò³:}+úvøô¬NßË„¾þ =Ö)šF&ôí¨!=Ö)jÊ„¾µ¤Ç:Em™Ð·£ŽôX§¨+úrÔ“ëõeBOÒc¢¡LèéÑé±NÑ´2¡§G#é±NQ zzJuŠ"™Ð·#‘ë9™Ð·#•ëÅ2¡oG‰ôX§(• };ʤÇ:Eà?=;*¤Ç:Eà?=;ª¤Ç:Eà?=;ú‘ôX§ü§WGÓIuŠÀzmôé±NøO¯f”ëÿôÚè§Ò³:ÿôÚhéYÀzmôÒ³:ÿôÚègÒã¹DþÓk£ŸKçøO¯~!=žKDà?½6šKz<—ˆÀzm4‘žÕü§ÇF¿”žÕü§ÇF¿’žÕü§ÇFóIÏê þÓc£_KÏê þÓc#ðßê þÓc#ðßê þÓc#ðßê þÓc#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#ðßê þÓK#~~ ¿‚ÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÒü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü·:ƒÿôÎü§ÿGà?½3ÿéÿøOïŒÀ›ðŸÞÿœÿéþsü§w øÏyðŸÞ)à?çAÀz'ì©ÇyðŸÞ)à?çA†Ž)À?§A¦u´Hý9 8J$lß~´§Câ?=Ή8G… ŸS"±£A ÈÏ‘ÔQ àç„HîèRøŸº”ÒQ¥ª‡SíQ@}ΖüØQe:è-Ó;º£€ùœ;™ÁQÈçÔÉLŽæ( >gNfvGð9q2«£7 xÏy“ÙµQ€{N›ÌîhÚsÖdGiÀž“&s::£€õœ3;*#„½Ç)“¹Q@zΘÌã(ŒÐsÂd^G_pÞæk~G]`Þ¦kG[PÞfk!GY@Þ&kGW0ÞæjQGU žG²˜£)Êï¤ÏYÜQå÷Òç,áè‰òéÛÄþÑQåOÒ·‰ý³£%Ê_¤o»¤£$ÊRÒ·‰]ÚÑå¯Ò·‰]ÆQeYéÛÄ.çhˆò7éÛÄ.ï(ˆòwéÛÄ®à臲¢ômbWrÔCù‡ômbWv´CYEú6±«:Ê¡¬&}›ØÕÝPÖ¾M욎j(kIß&vmG3”Jß&vG1”uÑÊüºž£ÊúÒ·‰ÝÀQ eCéÛÄnäh…²±ômb7q”BÙTú6±›9:¡l.}›Ø-•P¶ô¿˜![9¡l-}›çm…P¶•¾ÍóvŽ>(ÛKßæyG”¥o󼓣 ÊÎÒ·yÞÅQeWéÛ<ïæè‚²»ômž÷pTAÙSú6Ï{9š ì-}›ç}EPö•¾Íó~Ž(ûKßæùG ”ýoËAŽ(KߦýG ”C¥oot˜³eü/éÛ´r„ômÚt4@9Jú6íG;  #}›öcýOþ-}›öÿ8êŸ'}›öãíON¾Mû‰Žò''IߦýdgËøéÛ´Ÿê¨~ršômÚOw4?9Cú6íg:ŠŸœ%}›ö³½OΑ¾Mû¹ŽÚ'çIߦý|Gë“ ¤oÓ~¡£ôÉEÒ·i¿ØÑùäéÛ´_ê¨|r™ômÚ/w4>¹Bú6íW: Ÿ\%}›ö«}O®‘¾MûµŽº'×IߦýzGÛ“¤oÓ~££ìÉMÒ·i¿ÙÑõäéÛ´ßê¨zr[½oÜîhzr‡ô­ ît=¹KúÖw;zžÜ#}ë‚{5OuÁýŽ–'HߺàAGÉ“‡¤o]ð°£ãÉ¥o]ðˆ£âÉÿ¤o]ð¨£áÉcÒ·.xÜQðä é[<éèwò”ô­ žvÔ;yFúÖÏ:Ú<'}ë‚çuÛ Ò·.xÑÑíä%é[¼ì¨vòŠô­ ^u4;yMúÖ¯;м!}ë‚7½NÞ’¾uÁÛŽZ'ïHߺà]G«“÷üïºÈûŽR'HßšâCG§“¤oMñ±£ÒÉ'Ò·¦øÔÑèä3é[S|î(tò…ô­)¾tô9ùJúÖ_;êœ|#}kŠoaé;é[S|ï(sòƒôÙnG—s é³)\ÓQå\Kúl ×v49ב>›ÂuEÎõ¤Ï¦p}Gsé³)ÜÐQãÜé³)Ü´ŽçFþoG]à(q.”>{ÄEŽç@qöˆsŽ çTúì;œK¤Ïq©£À¹Lúì—;ú›+¤Ïq¥£¾¹Júì7ÕÑÞܤÏq?v”77ÿj7½£»¹ŸHŸ-ãfpT77£ôÙ2n&Gss?•>[ÆÍì(nné³eܬŽÞæþOúl7›£¶¹ŸIŸ-ãfw´6÷sé³eÜŽÒæ~!}¶Œ›ÓÑÙÜ\Òg˸±£²¹‰ôÙ2nnGcs¿”>[ÆÍã(lîWÒg˸y}ÍÍ'}¶Œ›ßQ×ܯ¥Ï–q 8Úš[Púl·£¬¹…¥Ï–q‹8ºšûôÙ2nQGUs¿•>[Æ-æhjüe˸ÅEÍ¿l·„£§9ð—-ãþè¨iüµ–ù³£¥¹¿ønwK:Jš­ƒ–vt4þZ-ã¨hüµZÎÑÐøk´¼£ 9ð×:hG?sà¯uÐJŽzæÀ_ë •íÌ¿ÖA«:Ê™[Ío2nuG7sà¯5ÔšŽjæÀ_k¨µÍÌ¿ÖPë8Š™­¡Ösô2þZCmà¨eüµ†ÚÈÑÊøk µ‰£”9ð×j3G'sà¯5ÔŽJæ¶”¾5ÔVŽFæÀ_k¨m…Ì¿ÖPÛ9kMð×jGsà¯5ÔNŽ6æÀ_k¨]eÌ¿ÖP»9º˜­¡öpT1þZCíåhbüµ†ÚÇQÄøk µŸ£‡¹ýýfîpÔ0w ô­¿r´0þZâ(aüµþ:ÌÑÁøkýu¸£‚¹#ü/&¹# Ì¿ÖnG; ˜­ÝŽuô/þZ»ýÇQ¿økív¼£}9ð×ÚíDgÛøkív²£{9ð×ÚíTGõr௵ÛéŽæåÀ_k·3ÅË¿Öng;z—­ÝÎuÔ.þZ»ïh]îÿÓ2îBGérà¯ußÅŽÎåÀ_ë¾K•Ë¿Ö}—;—­û®t.þZ÷]íè[üµî»ÖQ·økÝw½£m9ð׺ïFGÙrà¯ußÍŽ®ånñ”t·:ª–»MúÖŒ·;š–­ït-þZ3ÞíèYüµf¼×Q³økÍx¿£e9ðךñAGÉrà¯5ãÃŽŽåÀ_kÆG˿֌:*–­wT,þZ3>éèTüµf|ÚÑ©økÍø¬£S¹çüïhºçʿ֛/:Z“­7_vÔ$þZo¾ê¨IüµÞ|ÝQ“øk½ù¦£&9ð×zómGMrà¯õ滎šäÞ“¾õæûŽšäÀ_ëÍ5ɿ֛;j’­7?u¶BÀ_ëÍÏ5ɿ֛_:j’ûÊÿ¶ûÚQ“øk­ú­£&9ð×Zõ{GMrà/[U§qÔ$ÙªÚtÔ$ÙªÚvÔ$ÙªÚÕ=I`öªöµAQR˜ÍªCmДf·ê´Ú *éHúlW ´AWR@˜ýª‘6(K ³aÕiƒ¶¤À0;VcmP—fËjª ú’ÄìY͵AaR˜M«¥6hLZùßoÖ©Ú 2)XÌ.ÖkƒÎ¤ÓùßgÖéµAiRИm­3hƒÖ¤À1ûZgÒµIÁc6¶Î¬ z“ÈìluãW™­­³iƒæ¤@2{[g×ÕIÁd6·Î¡ º“ÊìnS”'•ÙÞ:ÖíIeö·Î­ ú’‚ËlpG&˜Ùá:¯6hL 2³Åu~mP™hfëÚ`Gè‚þ÷åu!µ%RÀ™M¯‹hƒÖ¤ 3»^UûX"žÙöº˜Úç)øÌ¾×ŵAqRš¯Khƒæ¤ 4;_ÿ¨ û>@4[_ÿ¬ö¹@ F³÷uIµÏR@šÍ¯Kkƒº¤ 4»_—Ñ}Ii¶¿.§ “‚Óì]^4&¨¹tmP™”ýȯ+iƒÎ¤@5—€®¬ J“‚Õ\ºªÚÇ*)`ÍE ««}N‘‚Ö¶ ÖÔ½Ik[kkƒâ¤àµ­ƒu´AsÒuýç­èzÚ :éú2°u±6èNº¡ l]l¤ Ê“n,[›hƒö¤›ÊÀÖÅfÚ >éæ2°u±…Ú§éë–2°u±•Úmºµ l]l£ ”n+[Û©ÝΠÛËÀÖÅj·1èŽ2°u±“Úíº³ l]ì¢öiùº« l]ì¦öiÿº» l]ì¡öiùº§ l]ì¥v»‚î-[ûhƒê¤ûúŸxÔý´A*èþ2°ur€Úm;z  l¤v»Ž,['‡¨Ý¦£‡ÊÀÖÉaj·çè¿üO@êáj·è2°us¤6è*z” lÝ­ *”#[7Ǫݮ£ÿ–­›ÿ¨Ý¦£ÇÉÀÖÍñj·çè >Èê‰Úàž¯'ÉÀÖÑÉÚ Gé)2°utª6(Rzš l® fK=C¶ŽÎÔUJÏ’­£³µAyÒsd`ëè\mОô¼z|¾6¨Oz l]]¨ ú“^$[Wkƒ¥—ÈÀÖÕ¥Ú Aée2°uu¹6¨Pz… l]]© :”^%[WWkƒ¥×ÈÀÖÕµÚ Eéu2°uu½6¨QzC½žoÔ=Jo’­³›µA‘Ò[d`ëìVmФô6Ø:»]T)½C¶ÎîÔåIï’­³»µA{Ò{d`ëì^mPŸô>Ø:»_ô'}@¶ÎÔJ’­³‡µAƒÒÿÖãG´A…ÒÿÉÀÖÝ£Ú Céc2°u÷¸6hMú„ lÝ=© j“>%[wOkƒÞ¤ÏÈÀÖݳڠ8és2°u÷¼6hNú‚ lݽ¨ ª“¾$[w/kƒî¤¯øÏýÖWµAyÒ×üçzëëÚ =é2°uù¦6¨Oú– l]¾­ ú“¾#[—ïjÃúî=غ|_4(ý@¶.?ÔJ?’­ËµA‡ÒOü§êë§Ú Dég2°uú¹6hQú… l~© j”~%[§_kƒñW¿‘­ÓoµA‘Òïd`ëô{mФôpÆÓhƒ*7dÀu7µAyŠ[2à:ÛÚ =ÅpÆà?õ)îÉ€ë4ÿéOñ@\§1øOŠ§È€ë4ÿiPñH\§1øO…ŠCpÆà?³n,2à:ÁZS¬2à:ÁjSœÈ€ë4ÿéMq&®Óü§8Å… ¸NcðŸûR\É€ë4ÿ©NñdÀuƒÿt§x:pÆà?å)þ‰ ¸NcðŸûP<£ ¸NcðŸúÿT\§1øOŠg‘×i þS âÿ“×i þÓ âŸÉ€ë4ÿ©PñÏeÀuƒÿt¨ø2à:ÁJT<— ¸NcðŸOdÀuƒÿÔ¨ø—2à:ÁzTü+pÆà?E*ž¯ƒÿT§ø×2àºÁºS¼`=ÿ)OñÂõü§=Å¿©Çà?})þ­ ¸ÎcðŸÂÿ®ƒÿ4¦ø÷õü§2ŨÇà?)þ“ ¸/Äà?¥)þK=ÿiMñRõü§6Å­Çà?½)^VÜGbðŸâÿ­ƒÿ4§øïõü§:Å+ÖcðŸ²ÿCÜwb🶯RÁêR¼Z=ÿéKñõü§0ÅkÉ€ûT þÓ˜âÖcðŸÊ¯[Á:S¼~=ÿ)M1øÏ}-ÿ©IñÆõü§'Å›ÖcðŸ¢o^ÁšR þsŒÁªR¼u=ÿéJñ¶õü§,ÅÛ×c🶃ÿÜ7cðŸºï\ÁúR¼k=ÿ)Lñîõü羃ÿÜgcðŸÊï]ÁJR¼o=ÿiIñþõü§&Åà?÷åü§'Å×cðŸ¢ZÁšRü¯z þS•bðŸûx þÓ•â£ê1øOYŠ©Çà?m)þw=ÿ©K1øÏ}?ÿéKñ õü§0Åà?9ƒÿT¤ø”z þÓ‘bðŸ\ˆÁJR|F=ÿiI1øONÄà?5)>§ƒÿô¤ü'7bðŸ91¾ ƒÿô¤ü'GbðŸž_RÁzR þ“+1øOOН¨Çà?=)¾ªƒÿô¤øšz þÓ“bðŸŠÁzR|C=ÿéIñMõü§Å·ÔcðŸƒÿäV þÓƒâ;ê1øOŠïªÇà?=(¾§ƒÿäf þ“s1øOЍÇà?=(~¨ƒÿäjüßz þÓƒbðŸ\ŒÁzPüX=ÿéA1øONÆà?=(~ªƒÿô ø™z þÓƒâçê1øOï‰_¿ƒÿôžø¥z þ3'ůȀÜÁzOüZ=ÿé=ñõü§÷ÄoÕcðŸÞƒÿät þÓ{â÷ê1øOï‰?¨Çà?½'þ¨ƒÿôžøë1øOï‰?«Çà?½'þB<'ÀzOüU=ÿé=1øÏƒÿôžø»z þÓ{âü8ÿé=I£ƒÿôžügnHÀzOÒ©Ç]mÒsðŸ9"ék“ž“ êñP›ôœüg®H¦Õ&='Õã@›ôœ$ãdi“ž“€ÿ̉Ó&='Ñzk“ž“€ÿÌ!IªMzN’Õã\›ôœüg.IJmÒs’ªOÕ&='ÿ™S’k“ž“LW§×&='ùI=žA›ôœdÆz<“6é5 øÏ\“̬MzM2K=žU›ôšügÎIfÓ&½&ùY=ž]›ô˜ügîIæÐ&=&ùE=žS›ô˜ügJÆÚ¤Ç$“z<·6é1 øÏ\”Ì£MzKò«z<¯6é- øÏœ”̯MzKòëz¼€6é- øÏÜ”,¤MzK²p=^D›ô”ügŽJÕ&=%ùm=^L›ô”äwõxqmÒSðŸ9+YB›ô”äõøÚ¤§$ªÇÖ&=%ÿ™Ã’%µIOI–ªÇKk“ž’üµ/£MzI²l=^N›ô’ügnK–×&½$ÿ™Û’´I/Iø¹êüº’6é%É?ê￲6é% øÏ—¬ªMzIþ3Ç%«k“^’€ÿÌqÉšÚ¤‡$à¿õçÚÚ¤‡$à?s\²Ž6é! øÏý"YO›ôügŽK6Ð&=$ÿ¹“´IIÀæ¸dmÒCðŸ9.ÙL›ôügŽK¶Ð&=$ÿ™ã’­´IÏHÀæ¸dmÒ3ðŸ9.ÙN›ôŒügŽKvÐ&=#ÿ™ã’´IÏHÀæ¸dmÒ3ðŸ9.ÙM›ôŠügŽKöÐ&½"ÿ™ã’½´I¯HÀæ¸dmÒ+ðŸ9.ÙO›ôŠügŽKÐ&½"ÿ™ã’ƒ´I¯HÀæ¸ämÒ+ðŸ9.9L›ôŠügŽK×&½"ÿ™ã’#µI¯HÀæ¸ähmÒ+ðŸ9.9V›ôŠügŽKþ£MzEþ3Ç%Çk“^‘€ÿÌqɉڤW$à?s\r²6é øÏ—œªMzEþ3Ç%§k“^‘€ÿÌqəڤW$à?s\r¶6é øÏ—œ«MzEþ3Ç%çk“^‘€ÿÌqÉ…Ú¤W$à?s\r±6é øÏ—\ªMzEþ3Ç%—k“^‘€ÿÌqɕڤW$à?s\rµ6é øÏ—\«MzEþ3Ç%×k“^‘€ÿÌqÉÚ¤W$à?s\r³6é øÏ—ܪMzDþ3Ç%·k“^€ÿÌqÉÚdÎOÀæ¸änm2·'à?s\r¯6™ÃðŸ9.¹_›ÌÕ øÏ—<¨MæäügŽKÖ&soþ3Ç%h“96ÿ™ã’GµÉ\š€ÿÌqÉãÚdÎLÀæ¸äIm27&à?s\ò´6™ðŸ9.yV›Ì} øÏ—<¯Mæ¼þÏ—¼¨MæºþÏ—¼¬Mæ¸ügŽK^Õ&s[þ3Ç%¯k“9-ÿ™ã’7µÉÜ•€ÿÌqÉÛÚdŽJÀæ¸ä]m2%à?s\ò¾6™sðŸ9.ùP›Ì5 øÏ—|¬Mæ”ügŽK>Õ&sEþ3Ç%Ÿk“9!ÿ3Ç%_j“¹ ÿ3Ç%_kÓ8þ3Ç%ßjÓ¸ þ3Ç%ßkÓ8 þ3Ç¥Óh“\NÁ渴©Mr7ÿ™ãÒ¶6ÉÙügŽKÁr5ÿ™ãRðŸœLÁæ¸ü'SðŸ9.ÿÉÁügŽKÁr/…ÿ3Ç¥à?9—‚ÿÌq)øO®¥à?s\ þ“c)øÏ—‚ÿäV þ3Ç¥à?¹”‚ÿÌq)øÏ}?ÿ™ãRðŸIÁæ¸ü'GRðŸ9.ÿÉ‘ô'ž)øo_Áæºü'7ÒŸzž¤à?¹‘Îây’‚ÿäF þ3÷¥à?¹‘‚ÿÌ})øOn¤?÷üHÁr#ÿ™SðŸÜHçò¥à¿õÁ>¥à?¹‘žåóQ þ“é9>¥à?¹‘žçóQ þ[Ÿ\àóP þ“éE>¥à?¹‘^âóP þ“ée>¥à?¹‘^áóP þ“éU>¥à¿õÕ52¤7¥à¿õÑu>¥à¿õÑ >¥à?¹‘ÞäóQ þ“é->¥à?¹‘ÞæóQ þ“é>¥à¿qã.Ÿ‡Rð߸qÏC)øoܸÏç¡ü·>|Àç¡ü·¾{Èç¡ü·¾û¯ÏC)øoÜøŸÏC)øoÜxÌç¡ü·uð„ÏC)øoÜxÊçü7n<ãóN þ7žóù%ÿ/øü’‚ÿÆ—|~IÁãÆ+õþþ7^«÷ð߸ñ†Ï')øoœxËç“ü7¼ãóI þÞ«÷ðßöýdH¯MÁÛ×?òy$ÿm_ÿÄç‘ü·}ü3ŸGRðßöé/êýü·}ú+Ÿ7Rðßöåo|ÞHÁÛ·¾óy#ÿmŸúÁïGøÏ}*kÈ^ÿÜ—²–ÏøÏ}&ëø|‘uµÅ}&ëÉÞõµÅ}%ø<‘ µÅ}!›âóD6­¶¸d#Ÿ'²@[\ÇYè÷§,Ò×a&2¤·gN[ìãLý~’ÅÚb²Äï'Yª-{ÎÌïY®-{ŽÂïY©-û÷T~½gSµEÿÏ~ä×{öcmÑÿ³éüzϦ×ý?û‰ íÿ7ƒ¶èÿÙŒ~½e3i‹þŸýT†öçfÖý?›E†öçfÕý?û?ÚŸ›M[ôÿìg¾²ÙµEÿÏ~îû'›C[ôÿì¾²9µEÿÏæªçc¬-ú6©çcnmÑÿ³_ÖõšG[ôÿìWu½æÕý?›O†öœók‹þŸýZ†öœ h‹þŸ-(C{Î…´EÿÏ–¡=ç"Ú¢ÿg¿‘¡=ç¢Ú¢ÿg¿•¡=çbÚ¢ÿg¿“¡=çâÚ¢ÿg¿—¡=çÚ¢ÿg¡=çµEÿÏþ$C{Î?k‹þŸýE†öœKj‹þŸ-%C{Î¥µEÿÏþ*C{Îe´EÿÏ–•¡=çrÚ¢ÿg“¡=çòÚ¢ÿg—¡=ç Ú¢ÿg+ÊОs%mÑÿ³ÈОsemÑÿ³UdhϹª¶èÿÙj2´ç\][ôÿl Ús®©-ú¶– í9×Öý?û§ í9×Ñý?[W†öœëi‹þŸ­/C{Î ´EÿÏ6”¡=çFÚ¢ÿg×ý²‰¶èÿÙ¦2´çÞL[ôÿlsÚso¡-ú¶¥ í¹·Òý?ÛZ†öÜÛh‹þŸm[ÏßvÚ¢ÿgÛ×󷃶èÿÙŽõüí¤-ú¶s=»h‹þŸíZÏßnÚ¢ÿg»×󷇶èÿÙžõüí¥-ú¶w=ûh‹þŸí[Ïß~Ú¢ÿgû×ów€¶èÿÙõü¤-úvp=‡h‹þŸZÏßaÚ¢ÿgÿªçïpmÑÿ³#êù;R[ôÿì¨zþŽÖý?;¦ž¿cµEÿÏþ]Ïß´EÿÏŽ«çïxmÑÿ³êù;Q[ôÿì¤zþNÖý?;¥ž¿SµEÿÏN«çïtmÑÿ³3êù;S[ôÿì¬zþÎÖý?;§ž¿sµEÿÏΫçï|mÑÿ³ êù»P[ôÿì¢úû_¬-úvIýý/Õý?»¬þþ—k‹þŸ]Qÿ+µEÿÏ®ª÷£«µEÿÏ®©÷ŸkµEÿÏ®óçÙõÚ¢ÿg7ø¼‘ݨ-úv“ÏÙÍÚ¢ÿg·ø¼‘ݪ-úv[ý|·k‹þŸÝQ?ßÚ¢ÿgwÕÏw·¶èÿÙ=õ÷»W[ôÿì>Ÿ²ûµEÿÏ¡­³µEÿϪÇk‹þŸýW†¶îÑý?ûŸ mÝ=ª-úöX=~\[ôÿì Ú:|R[ôÿì)Ú:|Z[ôÿìÚ:|V[ôÿì9Ú:|^[ôÿìÚ:|Q[ôÿì%Ú:|Y[ôÿì•züª¶èÿÙk2´uùº¶èÿÙ2´uù¦¶èÿÙ[2´uù¶¶èÿÙ;2´uù®¶èÿÙ{2´uù¾¶èÿøoëòCmÑÿ³êñÇÚ¢ÿgŸÈÐÖé§Ú¢ÿgŸÉÐÖéçÚ¢ÿg_Ôã/µEÿϾ’¡­Û¯µEÿϾ©Çßj‹þŸ}'C[Çßk‹þŸý C®ã|mÑÿóF=nj‹þŸ·dÈu·µEÿÏ;2äºÎÁúÞ«Çà?ý?Èë<ÿéÿù”z þÓÿó‘ ¹îsðŸþŸ‡2äºÏÁú.õü§ÿç*Cî9øOÿÏ“z þÓÿóL†ÜrðŸþŸƒÿÜr🞞W2侃ÿôÿü羃ÿôš|ºz þÓkrðŸûDþ3wä3ÊûDþÓósðŸûDþÓcrðŸûDþÓcrðŸûDþÓcòŸÕcðŸ9%ÿ¹ ¹oäà?=?ÿ… ¹oäà?=?ŸK†Ü7rðŸ^“ƒÿÜ7rðŸ^“ÿR†Ü7rðŸ^“ƒÿÜ7rðŸ9'Ÿ¯ƒÿôüüç>’ƒÿôü|Áz þÓÿsðŸûJþ3å¿©Çà?=>ÿ¹Ïäà?=>ÿ¹Ïäà?½(ÿ¹Ïäà?½(ÿ¹Ïäà?½(ÿ¹Ïäà?½(ÿ¹Ïäà?½(ÿ¹Ïäà?ý?ÿ¹Ïäà?=)ÿ¹Ïäà?÷­üç>“ƒÿÜ·rðŸûLþsßÊÁî39øÏÜ–ƒÿÜgr🞔¯RÁzQþsßÉÁzQþsßÉÁzQþsßÉÁzQþsßÉÁzQ¾n=ÿéE9øÏ}(ÿ¹æà?÷¡üç>˜ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇r🞔ƒÿ܇rðŸþŸƒÿ܇rðŸþŸƒÿ܇r🕃ÿ܇r🕃ÿ܇rðŸþŸƒÿ܇rðŸþŸƒÿ܇rðŸþŸƒÿ܇rðŸÞ•ƒÿ܇rðŸÞ•ƒÿ܇rðŸÞ•ƒÿ¶ÿÌÍ9øoûøÏÜœU¯ðŸþŸS¯ðŸþŸƒÿ¶Oÿô²ü·} ü§—åà¿íSà?½,ÿmŸÿ™Ãsðßö)ðŸþŸƒÿ¶OÿôÿüŒúÿéiùYõ¿ü§§åà¿ícà?=-ÿmÿéi9øoûøOÿÏÁÛÇÀúþÛ>þÓãòËêïþÓãò+êý ü§ÇåWùý<ÿé 9øoûøOÿϯ“¡í{à?ý?¿A†¶ïÿôºü&Ú¾þÓëò[dhûøOÿÏÁÛ÷ÀúþÛ¾þÓórðßö=🞗ß#CÛ÷Àz^~Ÿ mßÿé-9øoûøOÿÏÁÛ÷ÀúþÛ¾þÓÿsðßö=ðŸþŸƒÿ¶ïÿôÿü ñëü§ÿçà¿íƒà?ý?ÿmÿéÿ9øoû øOÿÏ_¨Çà?ý?I|ƒÿôÿüñ} þÓÿsðßöMðŸþŸƒÿ¶o‚ÿôÿü·}ü§ÿçà¿í›à?ý?ÿmßÿéÿ9øoû&øOÿÏÁÛ7ÁúþÛ¾ þÓÿóÏü½î9øOÿÏ¿ð÷ºçà?ý?ÿm_ÿéÿ9øoû*øOÿÏÁÛWÁúþs_-ÀúÑÛÇ ðŸþ_´ê1øOÿ/:õ¸«múÑ«Ç}µKx‹¯g1Ô6ý¿˜R§Õ6½½Õã@Ûôôüç>^DÚ¦—à?÷ñÂi›þ_¨Ø¾^Äj÷̉ØÏI©¶éÅøÏù/rmÓÿ ðŸû|Qj›^\€ÿÜç‹©Ú¦×?òýQüXÛÌÍÅt~¾‹éµÍ\]üÄÏw1ƒÚ5ÀÅŒ~¾‹™Ô®Ý-~ê绘YÛôêb?ßŬڦWÿç绘MÛô²ü'WŠÙµM/+Àr¥˜CÛô²ü'WŠ9µM/+æò?ïYŒµM/+Àr¦˜[Ûô²ü·zÏ£mzYþ“3żڦ—ó‰íËÅüÚ¦—à?¹S, mzYþ“;ÅBÚ¦—à?¹S,¢mzYþ“;Å¢Ú¦—à?¹S,¦mzYþ“;ÅâÚ¦—à?¹S,¡mzYþ“;ŵM/+Àr§ø³¶éeøOîKj›^V€ÿäN±´¶éeøoᅩ¶éøOîËi›ÞQ€ÿö~Ëk›ÞQ€ÿ6+h›VðêN~]IÛô°ü'wŠ•µM+Àr§XUÛô°ü'wŠÕµM)Öû9ÑbMmÓCеêñÚÚ¦wÿû¹ÑbmÓ;ŠuëñzÚ¦wë‹ýi±¶éņõx#mÓ;ŠÅ~®´ØDÛôŽbÓz¼™¶­¯7û9Ób mÓ3Š-ëñVÚ¦g[×ãm´MÏ(¶­ÇÛi›žQ€ÿäf±ƒ¶éÅŽõx'mÓ+ ðŸ-vÑ6½¢Øµï¦mzD±{=ÞCÛô†bÏz¼—¶É™ü'w‹}Ôö¡bßz¼ŸÚ>T€ÿäpq€¶éÅõø mÓŠƒëñ!Ú¦‡ÖãôÍÜ_€ÿävq¸¶™ó‹#êñ‘ÚfÎ/ŽªÇGk›9¿8¦«mr±ÿÉùâ?Úf®/Ž«ÇÇk›¹¾8¡Ÿ¨mæúâ¤z|²¶™ë 🹠8UÛÌõÅiõøtm3ÇgÔã3µÍRœUÏÖ6s|þ3Gçj›¹¤8¯Ÿ¯mæøâ‚z|¡¶™ã‹‹êñÅÚfn/ÀæŽâRm3§—Õã˵Í\^€ÿÌ!Å•Úf./®ªÇWk›¹¼ÿ™KŠkµÍ\^\W¯×6syþ3§7j›¹¼¸©߬mæòügn)nÕ6syq[=¾]ÛÌåÅõøNm3—wÕ㻵Í\^€ÿÌ9ŽÚf./î«Ç÷k›¹¼x ?¨mæðâ¡zü°¶™Ã 🹨xDÛÌáÅÿêñ£Úf/«Çk›¹»x¢?©mæîügŽ*žÖ6swñL=~VÛÌÝÅsõøym3w/ÔãµÍÜ]Àÿ™»Š—µÍÜ]¼R_Õ6swñZ=~]ÛÌÝÅõøMm3wà?sZñ¶¶™»‹wêñ»Úfî.Þ«Çïk›¹»ø ¨mæîüg®+>Ö6swñI=þTÛÌÝÅgõøsm3w_Ôã/µÍÜ]€ÿÌÅ×Úfî.¾©Çßj›¹»ø®¯mæîâ?.§Ñ6sw ÿgn,›Úfî.[õ¸­mæê²SÁæê²WÁæàügÎ,ÁæêrJ=ÿ™›ËQ=ÿ™k˰ƒÿÌÍ%øÏ\Z‚ÿÌÍ¥Öc🹹Lê1øÏÜ\fõügn.ÁæØüg.«z þs/TÁîÛåtõüç>]Âÿ™{KðŸûr9c=ÿ¹Ï–?­Çà?sp9K=ÿ™ƒKðŸ9¹ÿ™ƒËŸÕcðŸ9¸üy=ÿ™ƒË_ÔcðŸ9¸„ÿ3W—à?sp9©Çà?spùËz þ3—¿ªÇà?sM ÿg/ÁæÞò×õügî*ô?¯X‚ÿÌ5åÂõüg®)Áæöüg®)[ÁæšòwõügŽ-_ÁæØügÎ/ÁæØòOõügŽ-ÁæþügN-—ªÇà?sj þÓJðŸ9µ\¶ƒÿÌ©%øO/(ÁæÆòïõügN,Wôy¯ÿ™ KðŸÞP‚ÿÌ…å*>•à¿ýÿVóy¨ÿퟯáóP þ3§•kù¼V‚ÿÌi%üŸÞQ‚ÿÌeåº>?–à?sY¹¾Ï%øÏ\Vnèó] þ3‡•û|W‚ÿö}7õù·ÿíûnîó^ þ3‡•[úü[‚ÿÌa%üŸžS‚ÿÌaå¶bç%øÏVn1—À?cX¹#Cs ø3„•;32—@?#X¹«ØB ô3‚•»‹!”@¿=âžbG%ÐÏVî-v„PýŒ`å¾bG%Ðo%Ø_ì¡ú­úh^ýŒ`åÁ>º—@?#Xy¨²%ÐÏVþËG×ègd)ðѶúAÊ£|´/~FŽòUK Ÿ¢ü·ø% ô3”lj)m ôñå bG%ÐOd—'‰)b ôÁå)bŠ[ýDnyš˜â–@?[ž!~ÉýDjy–ØA ô¡å9bG%ÐO$–ç‰ß€~"®¼@L¹K ŸÈ*/;2(~"¨¼DL¡K ŸH)/;B(~"¢¼Bü–ôsË/¯;B(~Û¯;B(~Û’¯;B(~Ûbo¿ýö7‰ß‚€~«Ó-â·  ß¶´Ûıú­.wˆß’€~«Ë]bÊWýöÜ÷ˆß¢€~Ûî;‚(~Û€~«7ÐoKþ!¯&%ÐoKè§¢—@¿-i ŸŠ^ý¶„óêXý¶¡þ¶eý¶$ž¢@–¿}—gÄo¿ý[Ÿºà·ë b%ÀOñ/!þöÖ?Å¿|Eü† ðSüË×ĈJ€Ÿâ_¾!ö Ô%ÀOñ/ß; +~ŠùŽØ/P—?Å¿|Oü† ðSüËÄ~¹ø)þåGb‚Yüÿò±³à§ø—ŸEôÙܧ÷—ð~+¸Oï/¿¿Ÿƒûôþò±ß×.Á}zùLcû ¸o“úƒØ~_ûôþª!¶ßWà>½¿j‰ùvîÓû«ŽØïoW]íÐû«žØïKW}í° ªØïsWCíÐû«)b¼¨¦Õ½¿y®íÐû+pŸe¯"ípÚ*ñ^]9íÐû+pŸÓPÅÚ±ç÷9 Uªnb¸Ïi¨rípëÀ}NCUj‡uª*RMÕ½¿ú‘?©~¬z5?g¨¦×½¿÷9mÕ Úa›T3úOÖ¯fÒ§¥÷9ÕÌÚ¡÷Wà>§±šU;ôþ Üç4V³i‡Þ_ûœÆjvíÐû+pŸÓXÍ¡zîs«9µCï¯À}Îc5Ö½¿÷9ÕÜÚ¡÷Wà>籚G;ôþ Üçö­ú‹¿é¢ZR;Ö'Kù›.ª¥µCï¯þêoº¨–ѽ¿ZÖßtQ-§zõ7ÓEµ¼vèýÕßýMÕ Ú¡÷W+ú›.ª•´Cï¯þáoº¨VÖ½¿ZÅßtQ­ª.»j5ÓEµºv¬×ð7]Tkj‡Þ_­åoº¨ÖÖ½¿ú§¿é¢ZG;ôþj]ÓEµžvèýÕúþ¦‹jíÐû« ýMÕFÚ¡÷Wû›.ªM´Cï¯6õ7]T›i‡P¬6÷7]T[¨}^Eµ¥¿é¢ÚJ;ôþjkÓEµvèýÕ¶þ¦‹j;µÏ¯¨¶÷7]T;h‡Þ_íèoº¨vÒ½¿ÚÙßtQí¢zµ«¿é¢ÚM;ôþjwÓEµ‡vèýÕžþ¦‹j/íÐû«½ýMÕ>Ú¡÷Wûú›.ªý´Cï¯ö÷7]Th‡Þ_èoº¨Ò½¿:ØßtQ¢zu¨¿é¢:LíC0+x¿íC‡k‡Þ_þ¶©öeàoûÐÑÚ¡÷WÇø›N«cµCï¯þío«þ£zuœ¿)¸:^;ôþêSpu¢Úg½T'ù›Èª“Õ> ³:Åß\ªzuš¿)¸:];ôþê SYu¦vèýÕYþ¦àêlíÐû«süÍeÕ¹Ú¡÷Wçù›‚«óµCï¯.ð7Wj‡Þ_]äo ®.Ö½¿ºÄß\]ªzu™¿)¸º\;ôþê Spu¥vèýÕUþ¦àêjíÐû«küMiÕµÚ¡÷W×ù›ÒªëµCï¯nð7W7j‡Þ_Ýäo ®nÖ½¿ºÅߤVݪzu›¿)¸º];ôþê³Zu§vèýÕ]þfµêníÐû«{üMÁÕ½Ú¡÷W÷ù›ÖªûµCï¯ð7­Uj‡Þ_=äoZ«Ö½¿ú¯¿i­zD;ôþêþ¦µêQíÐû«ÇüMÁÕãÚ¡÷WOø›‚«'µCﯞò7WOk‡Þ_=ão ®žÕ½¿zÎß\=¯ö‘ŽÕ þ¦àêEíÐû«—üMÁÕËÚ¡÷W¯ø›‚«WµCï¯^ó7W¯k‡Þ_½áo ®ÞÔ½¿zËß\½­zõŽ¿)¸zW;ôþê=Spõ¾vèýÕþ¦àêCíÐû«üMÁÕÇÚ¡÷WŸø›‚«OµCï¯>ó7WŸk‡Þ_}áo ®¾Ô½¿úÊß\}­ö±WÕ7þ¦àê[µ‚­¾ó7Wßk‡Þ_ý SÈñ©Óh‡Þ?µ!SÈñ©MíÐû§¶d 9>µ­zÿT£òTПÖ?µ'SHõ© ?­ê@¦êSAÚäÔ)2…TŸ úÓú§ŽdŠýyПÖ?5”)¤úTПÖ?Ud ©>ô§õOU™BªOýiýS™BªOýiýS3™BªOýiýS ™2íR—u¸dši¦itÇw§ià¿§`t$¾6;Gý?PKý˜¸@ÙnûPKO~öR-gnu/inet/encoding/DecompositionMappings.classl|tÅû5o(^Ü>³»‚+ª]D”¦ˆ&"UжôF „BèI€B!T{»4 -ÍÞ{ùæyf×øûŸïöÞ;í™>;;“—×ÿÞ±§I“&]â/?ÙÆ™'gÁ8Æ90ZÁh ã\çÁ8Æ0.„qŒ60.†q ŒKa\ãrWÀh £Œö0`t€ÑF'atÑÆ•0®‚q5Œk`\ ã:×øF77¸ Fw=`Ü £'Œ[`ô‚q+ŒÛ`ô†ÑF_ý`ô‡q;Œ;` €q'Œ0Á ã.C`Ü ã÷¸Æý0€ñ Œ¡0†ÁcŒ‘0‚1 ÆÃ0FÃxÆcaŒƒ1Æa< cŒÉ0¦À˜ ã1Ó`<c:Œ0ž€ñ$Œ§`< ã‰0’`$ÃH‘ # F:Œ ™0²`dØ #Æ,³aä˜#Æ\ó`̇±ÆBù0Á(€±F!Œ%0–ÂXc9Œ0VÂX£F1Œ«a¬±F)Œu0ÖÃØ£ ÆF›`l†Qc Œ [aTÂØ£ ÆvÕ0vÀØ cŒÝ0öÀØ ãYÏÁxÆ 0^„ñŒ—a¼ãU¯ÁxÆ0Þ„ñŒ}0Þ†ñŒwa¼ã}ÀøÆG0öÃ8ã ŒC0ÃøÆ'0>…ñŒ#0ŽÂ8ã8Œ0j`Ô¨ƒQ£Æç0¾€ñ%Œ¯`| ãßÂøÆ÷0~€ñ#ŒŸ`ü ã¿Âø Æï0þ€ñ'Œ¿`ü ã˜M`Æ`ÆÁl ³Ìæ0[À< &`¶„y2L¦ Ó‚iÃt`º0=˜¦„éà `ÆÃ<æ©0Oƒy:Ì3`ž ó,˜gÃ<f+˜­až ó<˜çüæ…0/‚ÙæÅ0/y)ÌË`^ó ˜ma¶ƒÙfÌ0;Âì³3Ì.0»Â¼æU0¯†y Ìka^óz˜7ÀìóF˜7Áì³Ì›aö„y Ì^0o…yÌÞ0ûÀì ³Ìþ0o‡yÌ0ï„9æ ˜ƒaÞsÌ»aÞó^˜÷Á¼æ0„9æ0˜ÃaŽ€9æC0GÁ|æh˜Às,Ìq0ÇÜs"ÌGaN‚9æ˜Sa>sÌÇaN‡9æ0Ÿ„ù̧a>3fÌd˜)0Sa¦ÁL‡™3fÌl˜3aæÀœs6Ì\˜s`æÁœ sÌù0À\3æ"˜0Ã,„¹æR˜Ë`.‡¹æJ˜«`Á,†Ys5Ì50×Â,…¹æz˜`–ÁÜsÌÍ0ËanYs+ÌJ˜Û`VÁܳæ˜;aæ˜{a> ó9˜ÏÃ|æ‹0_‚ù2ÌW`¾ ó5˜¯Ã|æ›0ß‚¹æÛ0ßù.Ì÷`¾ó˜Âüæ~˜`„yæa˜Ãüæ§0?ƒyæQ˜Ç`‡yf ÌZ˜u0ëa6Àüæ0¿„ù̯a~ó[˜ßÁüæ0„ùÌŸaþóW˜¿Áüæ0ÿ„ùÌ¿aþ« ¬¬8XMa5ƒÕV X'Á¬–°N†eÀ2aY°lX,–KÀ’°|X¬xX§À:Öi°N‡u¬3aëlXçÀj«5¬saë|XÀºÖE°ÚÀºÖ%°.…u¬Ëa]«-¬v°ÚÃJ€ÕVGX`u†ÕVWXWº ÖÕ°®u-¬ë`]ëXÝ`Ýë&XÝaõ€u3¬ž°nÕ Ö­°nƒÕVX}aõƒÕÖí°î€5Ö°Âk0¬»` u7¬{`Ý ë>X÷ÃzÖƒ°†Âk8¬°FÂzÖ(Xà ëXc`…5ÖxX`M„õ(¬I°&Úk*¬Ç`Mƒõ8¬é°fÀzÖ“°ž‚õ4¬g`%ÂJ‚• +V*¬4Xé°2`eÂÊ‚• k&¬X³`͆• k¬ öé°Ï€}&ì³`Ÿ ûØ­`·†}.ìó`ŸûؾvØþö¥°/ƒ}9ì+`·…Ýv{Ø °;Àî»ìΰ»Àî ûJØWÁ¾ö5°¯…}ìëaß»ìaß»;ì°o†Ýö-°{Á¾öm°{Ãî»/ì~°ûþö°À¾ö@؃`†}ì!°ï†}ì{aßû~ØÀ~öPØÃ`‡=öHØÁûaØ£a?{ ì±°ÇÁ{쉰…= ödØS`O…ýìi°‡=ö ØOÀ~öS°Ÿ†ý ìDØI°“a§ÀN…;vìLØY°³aÏ„{ìÙ°saÏ{.ìy°çÃ^{!ì|Ø‹`À^ »öØKa/ƒ½ö Ø+a¯‚]»v ìÕ°×À^ »ö:Øëao€]{#ìM°7Ã.‡½vì­°+aoƒ]{;ìjØ;` önØ{`ï…ý,ìç`?ûØ/Â~ ö˰_ý*ì×`¿û ØoÂ~ ö>ØoÃ~ö»°ßƒý>ì`û#Øûa€}ö!؇a ûØŸÂþ öØGaƒ}ö Ø5°ka×Á®‡ÝûsØ_ÀþöW°¿†ý ìoaû{Ø?ÀþöO°†ý ì_aÿûwØÀþö_°ÿ†ýœ&pbpâà4…Ó Ns8-àœpZÂ9ŽÇ„cÁ±á8p\8GÂñápâáœçT8§Á9Îp΄sœ³áœ§œÖpÎ…sœóá\çB8Áiçb8—À¹ŽÚÿ+k—ùN[8íà´‡“§œŽp:Áé § œ®p®„sœ«á\çZ8×Á¹Î pºÁ¹ÎMpºÃéçf8=áܧœ[áܧ7œ>púÂé§?œÛáÜgœ;á „3Î`8wÁçn8÷À¹Î}pî‡óœá …3 Îp8#àŒ„óœQp†3Î#pÆÀ gœñp&À™çQ8“àL†3ÎT8Á™çq8ÓáÌ€óœ'á<çi8ÏÀI„“'N œT8ipÒádÀÉ„“'ÎL89pfÁ™ 'Î8ypæÂ™g>œpÂɇ³NœÅp á,³Î28Ëᬀ³Î*8EpŠá”ÀY g œµpJᬃ³Î8ep6ÂÙg3œr8[àTÀÙ §Î68Up¶Ã©†³ÎN8»à솳Î^8ÏÂyÎóp^€ó"œ—༠ç8¯Ây ÎëpÞ€ó&œ·àìƒó6œw༠ç=8ïÃù·p>‚³Î8á‚sÎÇp>ó)œÏàsÎ18ÇᜀS§Nœz8 p>‡óœ/á|çk8ßÀùÎwp¾‡óœáüçg8¿ÀùÎop~‡óœ?áüço8ÿÀm77nS¸Íà6‡ÛîIp·%Ü“ápM¸\®×…ëÁp%\n7î)pO…{ÜÓáž÷L¸gÁ=î9p[Ám ÷\¸çÁ=îp/„{Ü6p/†{ ÜKá^÷r¸WÀm ·Üöpàv€Ûn'¸ávÛî•p¯‚{5Ükà^ ÷:¸×ýn7¸7½ nw¸=àÞ ·'Ü[àö‚{+ÜÛàö†Ûn_¸ýàö‡{;Ü;à€{'ÜpÁ ÷.¸CàÞ ÷¸÷½îýp€û Ü¡p‡ÁwÜ‘p‚; îÃpGÃ}î¸cᎃ;î¸á> wÜÉp§À ÷1¸Óà>w:ÜpŸ€û$ܧà> ÷¸‰p“à&ÃM› 7 n:Ü ¸™p³àfà 7î,¸³áæÂ7î\¸óà·»îB¸ùpÁ-€»n!Ü%p—Â]w9ÜpWÂ]·n1ܸ«á®»n)Üup×ÃÝ· îF¸›àn†[w Ü ¸[áVÂÝ· îv¸ÕpwÀÝ wÜÝp÷ÀÝ ÷Y¸ÏÁ}î p_„ûÜ—á¾÷U¸¯Á}îpß„ûÜ}p߆ûÜwá¾÷}¸ÀýîGp÷Ã=÷ ÜCpÃýî'p?…ûÜ#pÂ=÷8ÜpkàÖ­ƒ[·îçp¿€û%ܯà~ ÷¸ßÂýî÷p€û#ÜŸàþ ÷¸¿Âý îïpÿ€û'Ü¿àþ ÷xMàÅàÅÁk ¯¼æðZÀ; ൄw2<ž Ï‚gÃsà¹ðƒwÞQxÇà‡w^ ¼Zxuðêá5ÀûÞð¾„÷¼¯á}ï[xßÁûÞð~„÷¼ŸáýïWx¿ÁûÞðþ„÷¼¿áýÑ"Ñ¢Dsˆ'A¢%ÄÉ„ aAØ„ áA áCñ§@œ qÄég@œ qÄÙç@´‚h q.ÄyçC\q!ÄEm .†¸âRˆË .‡¸¢-D;ˆö  :Bt‚è Ñ¢+Ä•WA\ q ĵ×A\qD7ˆ!n‚èÑâfˆž·@ô‚¸â6ˆÞ} úBôƒèq;Ä î„1b0Ä]C â^ˆû î‡xâAˆ¡à †CŒ€ ñÄ(ˆ‡!FC<1b,Ä8ˆñ &B< 1 b2Ĉ©ALƒxb:Ä ˆ' ž„x âiˆg !’ ’!R R!Ò Ò!2 2!² ²!fBä@Ì‚˜ ‘ 1"b.Ä<ˆù BäC,‚(€X Q±b)Ä2ˆå+ VB¬‚(‚(†(X ±b-D)Ä:ˆõ Ê 6Bl‚Ø Q±¢b+D%Ä6ˆ*ˆíÕ; vBì‚Ø ±b/ijÏA<ñÄ‹/A¼ ñ Ä«¯A¼ñÄ›oAìƒxâˆw!Þƒxâˆ!>‚Øqâ Ä!ˆÃC|ñ)ÄgG ŽBƒ8q¢¢¢¢¢âsˆ/ ¾„ø âkˆo ¾…øâ{ˆ ~„ø âgˆ_ ~…ø âwˆ? þ„ø âoˆ ›@Æ ã ›B6ƒlÙò$H@¶„<Ò€4!-HÒt!=H)!}È2òÈS!Oƒ<ò È3!Ï‚<òÈV­!Ï…<ò|È /„¼² äÅ—@^ yäåW@¶…lÙ2²dGÈN!»@v…¼ò*È«!¯¼ò:Èë!o€ìy#äMÝ!{@Þ ÙòÈ^·BÞÙ²d_È~ý!o‡¼rä!A†¼ räÝ÷@Þ yäý@>9räpÈ#!‚ù0ähÈG Ç@Ž…9räDÈG!'AN†œ9ò1ÈiCN‡œùä“OA> ù d"dd2d d*dd:dd&dd6äLÈÈY³!s!ç@æAÎ…œ9räBÈ|ÈE‹! !—@.…\¹räJÈUEÅ%«!×@®…,…\¹rdäFÈM›!Ë!·@V@n…¬„ÜY¹²räNÈ]»!÷@î…|ò9Èç!_€|ò%È—!_|ò5È×!߀|ò-È}oC¾ù.ä{ïC~ù!äGû!@„<yòcÈO ?…ü òäQÈcÇ!O@Ö@ÖBÖAÖC6@~ùä—_A~ ù ä·ßA~ùä?Aþ ù 䯿AþùäŸAþ ùü&ðcðãà7…ß ~sø-àŸð[Â?¾ß„oÁ·á;ð]ø|_Â÷áðãáŸÿTø§Á?þðÏ„ü³áŸ¿üÖðÏ…üóá_ÿBøÁoÿbø—À¿þeð/‡ü¶ðÛÁo?~øáw‚ß~ø]á_ ÿ*øWÿþµð¯ƒ=üàwƒ#ü›àw‡ßþÍð{¿~/ø·Â¿ ~oø}à÷…ß~ø·Ã¿þøwÂüÁðï‚?þÝðï/üûàßÿøÂ üáðGÀ ÿ!ø£à? 4üGà?þ8øãáO€?þ£ð'ÁŸ  ü©ðƒ? þãð§ÃŸÿ øO þÓðŸŸ? ~2üø©ðÓà§ÃÏ€Ÿ ? ~6ü™ðsàÏ‚?~.ü9ðóàÏ…?þ|ø à/„Ÿüø‹áÂ_)üeð—Ã_%üUð‹àÃ/¿þøká—Â_=ü ðËào„¿ þføåð·À¯€¿~%ümð«ào‡_ üðwÁß ü½ðŸ…ÿüçá¿ÿEø/Áþ+ð_…ÿü×á¿ÿMøoÁßÿmøïÀþ{ð߇ÿüá?üðÂ?ÿ0üáÿSøŸÁ?ÿ(ücðÃ?¿~-ü:øõðàÿ ø_Âÿ þ×ð¿ÿ-üïàÿø?Âÿ þÏðÿ+üßàÿÿøÂÿ þßðÿAÐA A‚¦š!hŽ ‚“AK'#0˜,6‹ÀC H>‚A<‚SœŠà4§#8Á™ÎBp6‚s´BÐÁ¹ÎCp>‚ \ˆà"m\Œà—"¸ Áå®@ÐA;í$ 耠#‚N:#è‚ +‚+\…àj× ¸Áu®Gp‚nnDp‚îz ¸AO· è…àV·!è ‚¾ú!èàvw €àN B0Á]† ¸Á=îEp‚û<€àAC C0Á#<„`‚‡ŒFð‚1Æ"‡`<‚ &"xÁ$“LA0Ác¦!xÁt3<àIO!xÁ3$!HF‚ A‚t2d!ÈF0A‚Yf#ÈE0A‚¹æ!˜`‚…ò,BP€`1‚BK,E° Ár+¬D° A‚b%V#Xƒ`-‚Rë¬G°A‚6!ØŒ Á¶"¨D° A‚íªì@°Á.»ìA°Á³žCð<‚¼ˆà%/#xÁ«^Cð:‚7¼‰à-û¼àï"xÁû>@ð!‚ìGpÁA‡Fð1‚O|Šà3GEp Áq'Ô ¨EP‡ A‚Ï|àK_!øÁ7¾Eð‚ïü€àG?!øÁ/~Eð‚ßüàO!øÁ?ˆo‚øâãßñÍßñ-âø–ˆ?ñâMÄ[ˆ·ï ÞE¼‡xx‰xñâã âOEüiˆ?ñg þLÄŸ…ø³â[!¾5âÏEüyˆ?ñ þBÄ_„ø6ˆ¿¸¥áÅ_rRü¥'Å_kk"ïéýÈÐdž¶;tü¨¶¦L=~ÔÕ±&-®=~ô”ëbMš¶¹xP¬I³›&Œkâô=~dߩ㆜tçÐac•®>6Œyò€ S' yóhò?½ûÈáÆMœ0yô”ÑÆ÷:q¢²;ù ÊÉ4#>ÖÄý¿¹ªâ´Rùµz3S©¡¬R•JPOv%ÅšÄíÛÅròl¯ž ±&ÍÛKJí²ŠÜ¼ƒv7íöf"cc2c c&c¶Â›ÈRÓ³ÇìÁ1{pœ^ìß‹ý{±/öïËvúqh?íÇ¡ýBŠ3Crè@ÈþCØg(‡ u2c c&#•m8—m$ÇÉ1GrÌ‘g4ûfÿÑì?šýdz :C'pè„ПâLåЩ:•C§²ÿtö™¶O*—$•u:ëtÖkY¯åÖKâr&±NfÌ:ƒuëÖ„ÝG0ö`Ë#{°å‘Œ=8ÕHÆœËHÆœj$cOÎecON5б'§ÅØ“[oã-óá°S¸­RX§²NeÎ:õZÖkY+kq½nU0ú徕­<Âx[ÃØ›[a,coöúç°&ìý|iƾsSrÛMeÈ¥šÊ8K5•q ੌ¹„Sr›Ne̹OcÂ8=Ô4þîærÎ`¼›{tãÝ\†„±ÉÜ …Ü …l½­+lÖ#6ëÎ1›`ŠëMÝØ[ucÜX‚¾äìKjü#<´sxhçp·çðÈá,r8 ]ùÎBas5¡©âͧ†Lî¤ÐºsBw?1tw Ó ¹Û›¡›¹Ù éšVsóöäœG1ÞÆ8&,ÝZ.ÂæJ³… š›½\ŵ}.Ç|„Û ûÝ3Œ˜Áf“ج‡‰<ötá²¹C5Sa’ta˜iÚ®®¹Üp¹¬óXçñœÍå9›Ë:u7n.7n.ë<Öy\•\®J.ë<Öy<Šsyç²ÎcǑˑË:uâÕ<ŠWóÈ]Í#w5¯9¼äp93¸œzÑ+ínÂ̰ 5«5=t§„30ƒË•Áaa³¹©<Šéµõ°jà×T¦15²b“ÈQM°SÁëªÍbÓÔ3=Fï²tÆ ÆlƵŒ)Œ3)U‘Š øõ7\³ÚºRìŒÝ9öÆîœfcw~Œ`ìþfk…ÍÕV—_©#C&wRèÖŸeüú)c½™õfŽ·†–¹éÍœûCáö6•_Û©üZËà×Zë"ÖE¬3Yg²^ÃZo‡7²ÞȯßÍüú¥üz…û–ÑšÕ.#‰wZ±.b]Κ°7ûŒ%l®4¿ÇjVaå¦ã•±&ìÃÇ1öáRcìöÆ1öeŸñŒ}Ùg|è_κœuë²ð5¾¦“BwfèÎd·nû !÷ û`BØý'†:ƒuo72x»¡ukªëa]'…u½ƒK4‰qÇžÌ8€ÓLæ4jÎÛ†É!«ÍvèÎ ÝE¡›Ym]2xë¢uë"Öå¬ËY—±.ã-P1oŠYof½™uë2Þƒ¦„{Ô”pšÊí3UsÓA¼íxŒqçöã`ÞNcÌ­4q0§šÆ8˜K:q0§šÆxû<ÎxÇ|<üÎàí’ÞÖÓÖãÝœjãÝ\ËŒ‡õÖ9fsZ¡¯ïá^Ä3¼ˆuë,ÞÈ&‡YÍäN ݉¡;+tGñSBw »‹¨TÊ­Y} ‡öÒC{顽ôÐ^zh/=´—ÚKÿ×^zhOðñŒ/bÅ:‹u ë^ ’ÃCs°ì#Cî–}dÈ=² ¹GXö‘šÕ¬ÏâYŸÅºˆ5a?Æ ¡Îbų%9œ-ÉáìJgSr8›t¾Bîæ;!ä~aþBVm¡½ÂÐ^ah¯0´WÚ+ í†ö C{…<£&hV#¼ˆG¸ÖY¬³xt†£½0í…á˜æ¡ý©! íO y`˜ÏÔ0Ÿ!<þ§3aŸé¡ë,Ö)¬Sôfyž&Úù‹’’˜‰yz³M>¡˜÷VrèC‚vïó4±¼ÈF^d#/²‘ÙÈ‹läE6*µJm£2²QÙ¨ŒlTjô0O§X¥X¥X¥X¥¨Ò)ªtŠª(EU”¢*JQ•³**gUTÎ|m#_ÛÈläG6ò#ù‘üÈF~d£ZÛ¨Ö6ª#Õ‘êÈFud£:²QÙ(Ð6 ´‚ÈFAd£ ²QÙ(ˆlD6öj{µ½‘½‘½‘½Q .×)–ëˣˣˣËÃê“jž¦ùúóK§ w$æE_fó#¡ËI>ºœ%:»’(—’¨J%a õÅ6Oç’å’å’å’å’å’åRªëVª3+êVåZÕ­4ʾ4jÑÒÈF9žíÓrjÐ$ê~NÔÍœ¨["Q5š^ô5¬'“ÐS0’ó¥Ê¼Ñ÷_© 𯯖zr¥E“‹ómæ5ÚÌk´™×h3¯Ñf^£ÍªÈfUd³ªÑfU£ÍªF›U6«mV5ÚÌlæG6ómæ7ÚÌo´™ßh3¿Ñfþ¿6¹[Ó¢n¥@="9¿QF6õø×7´©‡….^iTÎÒ¨œ¥å,m,gic9KËYÚXÎÒÈ& ”tM©ºóCïh0$En½ÒFÉòt²<þtVÄ+š¶¢á·O°$ëÕhí ­WE]˜¹uxd]_¨æÔDžÊ Ïæ$ÍÑ"–®)5ÅèÁ­S™Ñ:•®)U“¶5ÿ_Ö6ÃiœÆ‘¥ÆÂ³ž+Izv'ÑÌT¡Ñê­éšR5q1VR\>_RÎØƒzDèfx;+!I‘[/Q3,×&JC [WÙkz,që eó ÕÚW(hza‹c‰[Ô?õm¨kåY©þ±ge¤ãZ·fÊjÜõ×´&O¥Ì“rêX;õŒVOGõtROgõtQOWõ\©žK©D™s•ºV=mÔs±zÆ+kwйóжՎݤÔó› ‡·À8UE{y{߬"ÐÝÖ-ÊëEº·ê¥žÞêéK‡Ï*z¬¿znWÏÊc@ÚÔ÷Páqw*£ÃÚ}¥JܦžÕ3R==ÔCfU„¸ýsòæð0­ `µ‚k¡‚cÝÕ3"¼&ë 8!drw ÝÂë3âŽ!S¸j›æB&w×0^×П¸‹æfN7&½hoI×kÊZ=qƒÈoù5Ý¥‚ÔwÝÅ~£GÓ~”0nôc*X=q‘ßcä×ì±0ˆÎB'ïÇÉS½ÑüXúœ7·3Ï y¾æŒÐ?#r‡á™)!g†<3ä¢Kˆ[Ë\¯þÑ@cÁZynTÿØsc¤UŠ]:eVh9+-dΡ鵡keȳØ÷ÆëB¿âKBÞrEÈÛB® yGÈ;5g'‡– ;=äŒW…¼6äÒׇv¢ìýóBÛ,;,OvXžì­!Wr-Ž'f2ª­p\ûví :t$èDЙ  AW5éâTЦmÚ_L˜Àر#c'ÆÎŒ]»2^©°Y›öí4µ×” ©ƒ¦Žš:iꬩ‹¦®š´•²מ֟‚ :t&èBЕàJZ¢Ú·clϘÀر#c'ÆÎŒ]»2rÚNÛf(×cãpÆŒ#bÅø0ãhÆGÇ0ŽeÇ8žqãDÆG'1NfœÂ8•ñ1ÆiŒ3NgœA+^7õôTÏ­êé§žê¹S=Õ3X=CÔ3L=©gŒz&ªçQõLQZc3héæ O¦W]¥–Ô¸k¯¥ AØüØú¥++ 3)—šlº8¬™I¯÷šœŒ‹©T5³’—0–Îf›³©T5¹™ŒôXS˜O¸„Ê_SÄysÌâlF¶\Lgp5%„eôލÙÈeØÄymÎe\ÅÈ>åé죦ŠËYŵ«Ò>töQS½…‘[ š[`çVF¥³[…ówsŽ»W2röÒ÷jmf&#Õ¨6‹â×ÎßÄHvjf0æ33R[Õæ¯`¤òÔÒYSí¶³„z­v‡–­bäø+¸—Ùþ¦ùŒT£Z®uíföÙL9Ö%QëÕe®cÜÆ¸“‘jW—•ÁXÀHê²7ÎNe¤ïðºyKéâ¯nþ"ÆåŒk©´u g2Î%,à\ v.ÞÈÈy²^ι,_ÅHµ¨+¦Ö®[½‘Ú¹®”K¾žm®§úÖ•sÌ Ž³‹íï¦ Êº=ÙŒ”W}bcã\FJUŸD¹×'S]ê3Š×1rhý!L}&§Ê,d¤ÚÕgmdÜÂHùÖÌb¤ö¬_™ÈÈ©V²Í*yýj*sýÎ}-ÇÙL¤P_žÎ¸€‘­mYJXYÌHmX¿Ë³ƒíï¤zÕïáòìáP:†oÚLµnH£º4d¤3æ0²ÿÊ«a!åÛ°ˆz­añ6FjÆBꯆ¥sé2ÆUŒ4–Ïd,c¤’4¬ ölXũР©eV/d,`¤ÑÒ°Žã¬_ÄÈq6”0nbÜÂHíÜPF«AC‡Vsx–5ì`Ÿ42v¦0ò ¶“K»“Ë¿“z¹a×lÆyŒ+9ÕîlFjù†=zõãØCqŽóx¨™•ÊHûêãI3'°˜‰ÜHäEb^$D"?‘(ŒÄÒH,ÄÊHGbu$ÖFbÓÄb["Ÿ-‘OeäSùl|¶G>;#Ÿ‘O:û4kõ/±wrTÌäÌãÉÙ,ÖG>e‘ˆ •\‰ŠHDeI®ŠDu$¢"$ïŽÄÞP¤$E"5é‘ÈŒDî5enä37ò‰ú„öYù,Š|¢!¡«µzJT¯”Í‘ˆ*˜µzÊîÆ*§Ð|45‘‘fÃÑôu¬“Yo`,cŸÆTÆ4ößÌXθ…±‚q+c%Ç\̘ΘÁ¨s\ɘŘÍ8“1‡qãlÆ\Æ9ŒyŒ4Ò¦±…´UŒEŒÅŒ%Œ«×0®e,eäÚñÛþh×.k—¶‘q#×+ë•ÆõJãz¥q½Ò¸^i+¸$óiÍ;šÁµËàÚñŠu4ƒËŸ11Ÿ±€ã/a½”q9û°N]ƨ-s½R¹^©\‹T.*—<•Kžªû…KžÊ%OåÒ¦nãrŸ¦q©Òty¸FºF\ž´EŒ\ªtîÙtݳ\‹tnítnít®i:—0ZþÄv껚ÂBÖÙŒeŒüN›¿…5￶󞨘wCKèö°pkN9%ä´ÓCÎ9+ä™!ç„<;äÜ焜ò\Å üÔx er£Li”i2½Qf4ʬF9³Qæ4ÊÙ2·QÎi”yrîÿXØÈ…U»XÍ;rB·®´jãоv§•…á)¡{½vW/ÕîYIÌjŬöGÚ½ykè¿–Y½Quü%˵~‰æëÂx:ÿºâ=:ÞœYÚUÍ\¿e¥v—„ùfkû'viwÞ.Íe«u¼Bíb—._}EFXÞù¡°^»t¹Ô&ä úÎJ Ãú8L Ãú8L Ãú8L Ãú8L Ãô9ÙRt (EJÑA¥h¡‡‹äH¤D"-é‘ȈDV$fF"'³#‘‰9‘È‹Ä\½f©~¤™¦g ­ªªçªv'\Â;ÒbÞÏ¡uPµwŒvS”Vµ5ùgóîqÞ©òŽ(‰gWê:~ûów,+øÛgÍäštšµeüõQEëcM.ïêshwQ³‘¿GÊx\XÄ©x·Y‘Á6¹ÌÅK¨ ©½;P{w öî@íݑڻ#µwGjïŽÔÞ©½;Ru¤)EGJÑ‘RtjG@ü Ð,ASM5uÒÔYSM]5]ÉÔ¼}»Û‡¬ 5=ž¼Š±˜q5ãZÆuŒëË71–3V0V2V1V3îdÜÍH{9õ²gLeLgä|S²g2æ0ÎbœÍ˜Ë8—qã"ÆBÆeŒËyG—²’‘ë’ÂuIẤp]RJ¹F)\£” Œ\¯®WÊfF®]ŠZ‘Õ2zóq-tÝÂ{9B!›-þOã†Ã’œ¼ã‹TZ+Õ’ƒþ-žÖ<)R–E㡌ƒØF[ÆÍ’éõ¼:¬+xœ¬‰Œ,F£îèå<=…ÿé2mve4éœu4HÌÿ/ÊYüŸ%¢eäÔvVë刣­ {0rëx4¹eæêVåìÖsòÿœÂyGB7W¹^%8‹çi³vuÔIÍÚkJÐÔASGM4uÖÔESWMW2©wRÈíCN¹CÈCîr组Ü5äÐ^Bh/!´—ÚKí%h{Mî?”þNŸ Û@å6”þ’|Ý¥L®Ú¡¦º¢6S}Dµ¨]TV37‡|Š×ðf@ù̮ݢÞq¦ÚÔìÊ=±k1o?â&v£Ÿ;(hºoÉqcn»QA‚ž š:V5À¦¸‰7Sª›9•ÆQ”–` Á-ôS‚1Œ}{2Þɸo™G0‚` ÁCãÈâ8&9Ž`8Áò7.Ê@Çr ã¸qØ›¶",Ç6w,sÁdUifJBíÖt cÆžŒ“†Žˆ59I¡ŽPQЉ“©<“¹<$ÇL¤–?ˆ=IŽ#CЇû`0æ`’ãÆô!Ï1tq×´a³¡WŒ£û‚¥Z'P%iq“ÊÚ¯éM(t7þtS—ßÒŸî¹èÆñ¶ÛèºoÌc©™ÆÒoƒÆN ÖKwaã†QûŒK8Z¸ÿ-*߉œoÓþý)qºaœLCh]ª Æ»5:½U»5¦š:jꤩ³¦.šºjº’‰vkšÛ‡œr‡;†Ü)äÎ!w ¹kÈ¡½„Ð^Bh/!´—ÚKí%„öB{ ¡½„Ð^Bh¯Ch¯ƒ¶×´¾œÏ§ ·ò.˜5ŸÕØÎ'è¹|²^Â;k>ó®)á8úl˜ú³ní¾ëñéì2:®/¢“цd>Ã^Kg,µ[ù´8…ϧsiX?‡Où¤¢a íÝNìà›Y´3­ÝÀçÖúwŸen§T5•tBR»—ÏVóù·„OßgêSaÚiÖ¯àÛ>y­]Â'ô•|j>“O.y—zbígkÒiÿ[3“,×Σk×Ïã|)—ºÂ5œ;ŸøÐiF}Ÿƒ.ásÐ2ÖU|潊vÁu%|:¾vµõ¹|²›C6ë×óM Ÿ¹Öìâz•sœ$>#Ïâô">'¦¿eoÚPÈ¥*¢ºÔ”ó]ÁZ*Um2Õî¢V­ÛJ¹×m篢¾Í˜ÉgÕɬ3øf†ÏgêÖò©ÿ6>ÕÎ-çøÔÂõ|ÇR;3—K¸‡{œo{6Q­kùœµn6ß*, ýuMN>—s'·ߨì)åTÔ µ”Wí>×ßÊw5¹ôÍW³’Ú¶n cåq­ãï¿Ônµ[x,Íä²Íä;“Ù+8Ç|ÏÃ'Z5”¶vÙ©«à~ÉÚÄ%çsâ ¾#šÉ÷Wy<ŠvÒWBm~nçbi y,•²ÞA5jØ9›Ç?õrmŸñïæòWó=O:7¾««ÛŸ¾ëøä¾n.ã¾»¨â”Ä¥ÚE_0õó¨ü ‰¿aßweò×g6›Îå{þ¢ª/Òe泦½<þgíäVâ›–Í\~ž'vÒh¯)äžÚÆm˜Èý;›Æd]žž‹¹$|«¹•Gß,¥¼V,âäó«Õ\B>ÉlXÌ÷)úÛgG ßømâ^ØL=^»ç/ŸøÕ$syN%Ö.fû‹8~6÷×R®ßBÔVRßÕîàÒÎáv[ÀÖVò½ÖVjç-µ™\ª¾ëKä;íüM_Å·=»øëŸË_›Æsv÷ãb.s&–9<ÊyD-â¹³”{™ï@jùÖ¢nůËçÙ·›ÏŠx.­äã1õÖ÷¨s–rÝye˜ËëLþΗû·œË°ƒæxí2^sªø)ƒïÖøÞ¯n Ï©™4–êhØ´¾Œûb'ß/åðÝi&ç•É+íEµ3yEªà5d#ç­ÜJ‹y¼é;¾ÑªÙÉ÷™|"Z“ϸ’Glß|fðLÌá•°G,ý4H­Zì_Âm²:—ÇÉB.-ÏÊE¼ª¬çõ<‘1…×í"^ýЏ÷‹ù fÛVWÜû)|£›Æ¥â•¹f&ÛYú=§;¼®Ö¬årri¹wjÊy=Oæ›O>Ó®Mç¾ãÝÚüNá^«]œÇ}ÊmRI3·v»ž¡Ü§|Ö]Ç×ëusØgß4–ðØã·X] ÷f ×w5ŸB­æ±]Ê}´ŽW›M¬ù¸®š}vó]b"¿õ2h=©×gWyÔïõÅd³žïÖê7ðº·C+¨wê·ò|ßÃó‘ÏŸ–ó½Ù úäCŒ& ]ËC$ÒÞe²Úæ4ûpë‡Û4•hZO´'òTEi¶¿à#ú¡Ùþ-©‰Û¿Š`>A!lí_J°–`Å,ÝŸ¤‰þ*méG»È­ý½Ûþ9d‰h»¦]Dyšæjš§i¾¦šjZ¤©@ÓbM…š–hZ¦i…¦•šŠ4kZ­i¦µšJ5­‹²­Ö%Û«sØ«“3Íáš,' †>HÿC‰¤èÇ•÷ÐÏQ¬& ¿Ù:”B@¿Ä[£òlÕ­Ò‚:Hç¾5гM·"‰°ÌUQUQœª¨„ÕQ•«£ ê¨Ì;"ŸQäa-5z‰N-“Ð>©a YdG"K‹ z©O’§FÉÓÂö!¡ƒÒ¢äia‹‘ˆ‚6F‘7F>ô°ÏÛ„J ¦GÅH줇]@ ŒÎ+=ª`vT÷µz¼é±ñ¯ÈІDv$²Â‘úDm¸!òÙuʆÆ!¦ª kÊ›õ`ØtB•0; ÊŽ‚²£ ´H$ÿ[È`uä“Òôo«nlÌ+-Š“•Yã(¯´H$EõZÅ©ˆì¤G Uy0•6TPÓ,U/=$SôâÝå6‘¯J¢ßt8P®¦A&½} |Rõ℃™Ê75œú%ÓZ‹V‘ñVQôV‘U¤ÔV‹ P~8‡1ú]ƒþuƒÚÇPÏêy*FÝ5Ÿ‘o ù·ÇóùÆ1‘oùï'òc"ß8&ªo‚Øe¬Ô&+v•z®WOkõœ§ž Õs‰z.WÏ5ê¹N=÷ªç|õ\ žTÊV´5SkëLvä0Îbœ­f³#W;rÙ1G;ø7¼$+G;æjmô¬$XC@{î´I<°Ž`=ÁÚ ÒlŠ£>‰;°™€vô¢‰;@›É[ èç¶Ðæþý_!h×z€7±´Á¤9ÆÈsŒÿçX:}l[È?öÈŸiÒðcM.5~jÛÑãGNi;rüð #FÕöÿûŸ²ýÏÅÖoØ##‡OiÒÚð ѤI“X“ÓȘRqMbôÿ¶)©I3å×dÐ7žaín7¤©h:`H3ÑlÀæ¢ù€!-D‹CN' CÜ¢¥Â“ÄÉ ! …-…©ðda)4„­ÐŽBK¸ má)t„Pè ©Ð¾B!…RÄ+ôÅ) qªÂxqšÂSÄé Og(,Æ(-Æ*|DŒS8FŒW8VLP8NLT8^<ªp‚˜¤p¢˜¬ðQ1Eá$1Uádñ˜Â)bšÂ©âq…‰é §‰ O(œ.žT8C<¥ð ñ´Â'Å3 Ÿ‰ ŸI ŸÉ†xME Q’H%JiD)"(Ud¥‰L¢t‘E”!²‰2ÅL¢,‘C”-fͳ‰rD.Ñ,1‡h¶È#Ês‰æˆyDyb>Ñ\±€hžXH4_ä-‹ˆŠ¢|±˜h‘($*Kˆ‹¥D…bѱœh©XA´L¬$Z.V­ED+E1Ñ*QBT$V‹5D%b-ÑjQJ´F¬#Z+Ö•Š DëDÑz±‘hƒØDT&6måD›Ä¢Í¢‚¨\l%Ú"*‰*Ä6¢­¢Š¨Rl'Ú&ª‰ªÄ¢íb'QµØE´Cì&Ú)öí{‰v‹g‰öˆçˆöŠç‰ž/='^$z^¼Dô‚x™èEñ ÑKâU¢—ÅkD¯ˆ×‰^o½&Þ$z]¼Eô†ØGô¦x›è-ñÑ>ñ.ÑÛâ=¢wÄûD޽/>"ú@ì'úP úH$Ú/‡‰Љ‰Oˆ‹O‰>Ÿ}"Ž}*Ž}&ŽÇ‰ŽŠDÇD ÑqQKtBÔÕˆz¢ZÑ@T'>'ª_5ˆ/‰>_}!¾&úR|Cô•ø–èkñÑ7â{¢oÅD߉‰¾?ý ~&úQüBô“ø•ègñÑ/âw¢_ÅD¿‰?‰~ý!þ&úSüCô—Œ5!þ[ÆbÄÿÈXœâXkJ“±fÄq2Öœ¸©Œµ n&c'7—1·±–Ä'ÉØÉÄ1ƒ¸¥Œ™Ä'˘ElȘMlʘClɘKl˘GìȘ veL{2æ  ˆ¥ŒÅû2v q c§ÇËØiÄ§ÈØéÄ§ÊØħɨ™Ä§ËØYÄgÈØÙÄgÊØ9ÄgÉX+â³e¬5ñ92v.q+;¸µŒO|®Œ]@|žŒ]H|¾Œ]D|Œµ!¾PÆ.&¾HÆ.!n#c—_,c—_"c—_*cW_&cm‰/—±vÄWÈX{â¶2–@ÜNÆ:·—±ŽÄ 2Ö‰¸ƒŒu&î(c]ˆ;ÉXWâÎ2v%q»Š¸«Œ]M|¥Œ]C|•Œ]K|µŒ]G|Œ]O|­ŒÝ@|Œu#¾^Æn$¾AÆn"î&c݉o”±Ä7ÉØÍÄÝe¬'q»…øfëEÜSÆn%¾EÆn#î%c½‰o•±>Ä·ÉX_âÞ2Ö¸Œõ'î+cÿ¯‹{üø,Ü6¾ÏåëúV[Ù¶m[³mÛV[Ͷm»¦šYS˜köÖ¼ß}<½¯ó/x?;ç´³3Íeç`šÛÎÉ4‹i^;7Ó|v¦ùí¼L Øù˜´ó3-d`ZØ.È´ˆ]ˆiQ»0Óbv¦Åí¢LKØÅ˜–´‹3-e—`ZÚ.É´Œ]ŠiY»4Órv¦åí²L+Øå˜V´Ë3­dW`ZٮȴŠ]‰iU»2Ójv¦ÕíªLkØÕ˜Ö´«3­e×`ZۮɴŽ]‹i]»6Ózv¦õíºLØõ˜6´ë3md7`ÚØnÈ´‰ÝˆiS»1Ófv¦Íí¦L[ØÍ˜¶´›3Ið´“O[2‰ð´“ O[3Éðô;&ž¶aâi[&%ž~Ï$ÅÓ˜´xÚŽIŒ§í™ÔxÚIާ™ôxÚ‰I§™yÚ…I’§]™4yÚI”§Ý™TyÚƒI–§=™tyÚ‹I˜§½™”yÚ‡Iš§}™´yÚIœ§ý™Ôy:€Iž§™ôy:ˆI §ƒ™z:„I¢§C™4z:ŒI¤§Ã™Tz:‚I¦§#™tz:ŠI¨§£™”z:†Iª§c™´z:ŽI¬§ã™Ôz:I®§™ôz:‰I°§“™{:…I²§S™4{:I´§Ó™T{:ƒI¶§3™t{:‹I¸§³™”{:‡Iº§s™´{:I¼§?2©÷ô'&ùžÎgÒïé&Ÿ.dRðé"& Ÿ.fÒðéÏL">ý…IŧK˜d|º”Iǧ˘„|ºœIɧ¿2Iùt“–OW2‰ùt“šOW3Éùt “žO×2 út“¢O×3Iút“¦O72‰út“ªO73Éúô7&]ŸþÎ$ìÓ-LÊ>ÝÊ$íÓmLÚ>ÝÎ$îÓLê>ýƒIÞ§2éûô/&ŸþͤðÓL?ÝŤñÓÝL"?ÝäòÓ½L2?ÝǤóÓýLB?ý‡Ié§ÿ2Iýô“ÖO2‰ýô“ÚO3Éýô“ÞO2 þô“âO3Iþô“æOO2‰þô“êOO3Éþô “îOÏ2 ÿô“òOÿc’þéy&íŸ^`ÿéE&õŸ^b’ÿée&ýŸ^!èÿô*Aÿ§×úf!è˜úAÿC$èHý™ ÿ¡ô?T‚þ‡FÐÿÐ úAÿà AÿÃëú^OÐÿð‚þ‡Y úf#èx#AÿÛú èx3AÿÃ[úÞJÐÿð6‚þ‡·ô?¼ƒ ÿáýï"èx7AÿÃ{úÞKÐÿð>‚þ‡÷ô?|€ ÿáƒý"èø0AÿÃGú>JÐÿð1‚þ‡ô?|‚ ÿá“ýŸ"èø4AÿÃgú>KÐÿð9‚þ‡Ïô?| ÿá‹ý_"èø2AÿÃWú¾JÐÿð5‚þ‡¯ô?|ƒ ÿá›ýß"èø6AÿÃwú¾KÐÿð=‚þ‡ïô?ü€ ÿá‡ý?"èø1AÿÃOú~JÐÿð3‚þ‡Ÿô?ü‚ ÿá—ý¿"èø5AÿÃoú~KÐÿ0;AÿÃýsô?ÌEÐÿ07AÿÃ<ýóô?ÌGÐÿ0?AÿÃý ô?,DÐÿ°0AÿÃ"ý‹ô?,FÐÿ°8AÿÃýKô?,EÐÿ°4AÿÃ2ýËô?,GÐÿ°AÿÃýô?lDÐÿ°1AÿÃ&ý›ô?lFÐÿ°9AÿÃý[ô?lEÐÿ°5AÿÃïú¶!èØ– ÿá÷ý èØŽ ÿa{‚þ‡úv$è؉ ÿag‚þ‡]úv%èØ ÿaw‚þ‡=úö$èØ‹ ÿao‚þ‡}úö%èØ ÿa‚þ‡ú$è8ˆ ÿá`‚þ‡Cú%è8Œ ÿáp‚þ‡#úŽ$è8Š ÿáh‚þ‡cúŽ%è8Ž ÿáx‚þ‡úN$è8‰ ÿád‚þ‡SúN%è8 ÿát‚þ‡3úÎ$è8‹ ÿál‚þ‡súÎ%è8 ÿáý"è8Ÿ ÿá‚þ‡ ú."踘 ÿáÏý!踄 ÿáR‚þ‡Ëú.'èø+AÿÃýWô?\EÐÿp5AÿÃ5ý×ô?\GÐÿp=Aÿà ý7ô?ÜDÐÿp3AÿÃßúþNÐÿp Aÿíý·ô?ÜNÐÿpAÿÃ?úþIÐÿð/‚þ‡ô?ÜIÐÿpAÿÃÝý÷ô?ÜKÐÿpAÿÃýýÿ!èø/AÿÃýô?LÔÿøQÿã£Dýõ?>NÔÿøQÿã“DýOõ?>MÔÿø Qÿã³DýÏõ?þ¨ÿñy¢þLjú_$ê|‰¨ÿñe¢þÇWHú_%é|¤ÿi’þ§‰¤ÿ)ô?E’þ§DÒÿ”IúŸ IÿS%éj$ýO¤ÿiô?Íô?½Ž¤ÿéõ$ýOo éš•¤ÿi6’þ§7’ô?½‰¤ÿ ’þ§7“ô?½…¤ÿé­$ýOo#éz;IÿÓ;HúŸÞIÒÿô.’þ§w“ô?½‡¤ÿé½$ýOï#éz?IÿÓHúŸ>HÒÿô!’þ§“ô?}„¤ÿé£$ýO#éú8IÿÓ'HúŸ>IÒÿô)’þ§O“ô?}†¤ÿé³$ýOŸ#éúIÿÓHúŸ~HÒÿô#’þ§“ô?ý„¤ÿé§$ýO?#éú9IÿÓ/HúŸ~IÒÿô+’þ§_“ô?ý†¤ÿé·$ýO³“ô?ÍAÒÿ4'IÿÓ\$ýOs“ô?ÍCÒÿ4/IÿÓ|$ýOó“ô?-@Òÿ´ IÿÓB$ýO “ô?-BÒÿ´(IÿÓb$ýO‹“ô?-AÒÿ´$IÿÓR$ýOK“ô?-CÒÿ´,IÿÓr$ýOË“ô?­@Òÿ´"IÿÓJ$ýO+“ô?­BÒÿ´*IÿÓj$ýO«“ô?­AÒÿ´&IÿÓZ$ýOk“ô?­CÒÿ´.IÿÓz$ýOë“ô?m@Òÿ´!IÿÓF$ýO“ô?mBÒÿ´)IÿÓf$ýO›“ô?mAÒÿ´%IÿÓV$ýO[“ô?ýޤÿi’þ§mIúŸ~OÒÿô’þ§íHúŸ¶'éÚ¤ÿiG’þ§HúŸv&éÚ…¤ÿiW’þ§ÝHúŸv'éÚƒ¤ÿiO’þ§½HúŸö&éÚ‡¤ÿi_’þ§ýHúŸö'é:€¤ÿé@’þ§ƒHúŸ&é:„¤ÿéP’þ§ÃHúŸ'é:‚¤ÿéH’þ§£HúŸŽ&é:†¤ÿéX’þ§ãHúŸŽ'é:¤ÿéD’þ§“HúŸN&é:…¤ÿéT’þ§ÓHúŸN'é:ƒ¤ÿéL’þ§³HúŸÎ&é:‡¤ÿé\’þ§óHúŸþHÒÿô'’þ§óIúŸ. 麤ÿé"’þ§‹IúŸþLÒÿô’þ§KHúŸ.%麌¤ÿér’þ§¿’ô?]AÒÿt%IÿÓU$ýOW“ô?]CÒÿt-IÿÓu$ýOדô?Ý@Òÿt#IÿÓM$ýO7“ô?ý¤ÿéï$ýO·ô?ÝJÒÿtIÿÓí$ýOwô?ýƒ¤ÿéŸ$ýOÿ"éú7IÿÓ$ýOw‘ô?ÝMÒÿtIÿÓ½$ýO÷‘ô?ÝOÒÿô’þ§ÿ’ô?=@Òÿô IÿÓC$ýO“ô?=BÒÿô(IÿÓc$ýO“ô?=AÒÿô$IÿÓS$ýOO“ô?=CÒÿô,IÿÓs$ýOÿ#ézž¤ÿé’þ§IúŸ^"éz™¤ÿé²þ§WÉúŸ^#ëž…¬ÿy"ëdýÏ‘¬ÿ9‘õ?g²þçBÖÿ\ÉúŸYÿs'ëdýÏ3dýϯ#ë~=YÿóÈúŸg%랬ÿùdýÏo"놬ÿùÍdýÏo!ë~+YÿóÛÈúŸßNÖÿü²þçw’õ?¿‹¬ÿùÝdýÏï!ë~/YÿóûÈúŸßOÖÿü²þç’õ?ˆ¬ÿùÃdýÏ!ëþ(YÿóÇÈúŸ?NÖÿü ²þçO’õ?ЬÿùÓdýÏŸ!ëþ,YÿóçÈúŸ?OÖÿü²þç/’õ?‰¬ÿùËdýÏ_!ëþ*Yÿó×ÈúŸ¿NÖÿü ²þço’õ?‹¬ÿùÛdýÏß!ëþ.Yÿó÷ÈúŸ¿OÖÿü²þç’õ?ÿˆ¬ÿùÇdýÏ?!ëþ)YÿóÏÈúŸNÖÿü ²þç_’õ?ÿЬÿù×dýÏ¿!ëþ-YÿóìdýÏsõ?ÏIÖÿ<YÿóÜdýÏóõ?ÏKÖÿ<YÿóüdýÏ õ?/HÖÿ¼YÿóÂdýÏ‹õ?/JÖÿ¼YÿóâdýÏKõ?/IÖÿ¼YÿóÒdýÏËõ?/KÖÿ¼YÿóòdýÏ+õ?¯HÖÿ¼YÿóÊdýÏ«õ?¯JÖÿ¼YÿóêdýÏkõ?¯IÖÿ¼YÿóÚdýÏëõ?¯KÖÿ¼YÿóúdýÏõ?oHÖÿ¼YÿóÆdýÏ›õ?oJÖÿ¼YÿóædýÏ[õ?oIÖÿ¼YÿóÖdýÏ¿#ëÞ†¬ÿy[²þçß“õ?ÿ¬ÿy;²þçíÉúŸw ëÞ‘¬ÿy'²þçÉúŸw!ëÞ•¬ÿy7²þçÝÉúŸ÷ ëÞ“¬ÿy/²þç½ÉúŸ÷!ëÞ—¬ÿy?²þçýÉúŸ ë>¬ÿù ²þçƒÉúŸ!ë>”¬ÿù0²þçÃÉúŸ ë>’¬ÿù(²þç£ÉúŸ!ë>–¬ÿù8²þçãÉúŸO ë>‘¬ÿù$²þç“ÉúŸO!ë>•¬ÿù4²þçÓÉúŸÏ ë>“¬ÿù,²þç³ÉúŸÏ!ë>—¬ÿù<²þç?’õ?ÿ‰¬ÿù|²þç ÈúŸ/$뾈¬ÿùb²þç?“õ?ÿ…¬ÿù²þçKÉúŸ/#뾜¬ÿù¯dýÏWõ?_IÖÿ|YÿóÕdýÏ×õ?_KÖÿ|YÿóõdýÏ7õ?ßHÖÿ|YÿóÍdýÏ#ëþ;Yÿó-dýÏ·’õ?ßFÖÿ|;YÿódýÏÿ ëþ'Yÿó¿ÈúŸÿMÖÿ|'Yÿó]dýÏw“õ?ßCÖÿ|/Yÿó}dýÏ÷“õ?ÿ‡¬ÿù¿dýÏõ??HÖÿüYÿóÃdýÏõ??JÖÿüYÿóãdýÏOõ??IÖÿüYÿóÓdýÏÏõ??KÖÿüYÿóÿÈúŸŸ'ë~¬ÿùE²þç—ÈúŸ_&ë~…¢ÿùUŠþç×(ú_f¡è™(ú_EÿK¤èIý/™¢ÿ¥Pô¿TŠþ—FÑÿÒ)ú_EÿË EÿËë(ú_^OÑÿòŠþ—Y)ú_f£èy#EÿË›(ú_ èy3EÿË[(ú_ÞJÑÿò6Šþ—·Sô¿¼ƒ¢ÿåý/ï¢èy7EÿË{(ú_ÞKÑÿò>Šþ—÷Sô¿|€¢ÿåƒý/¢èù0EÿËG(ú_>JÑÿò1Šþ—Sô¿|‚¢ÿå“ý/Ÿ¢èù4EÿËg(ú_>KÑÿò9Šþ—ÏSô¿|¢ÿå‹ý/_¢èù2EÿËW(ú_¾JÑÿò5Šþ—¯Sô¿|ƒ¢ÿå›ý/ߢèù6EÿËw(ú_¾KÑÿò=Šþ—ïSô¿ü€¢ÿå‡ý/?¢èù1EÿËO(ú_~JÑÿò3Šþ—ŸSô¿ü‚¢ÿå—ý/¿¢èù5EÿËo(ú_~KÑÿ2;EÿËý/sRô¿ÌEÑÿ27EÿË<ý/óRô¿ÌGÑÿ2?EÿËý/ Rô¿,DÑÿ²0EÿË"ý/‹Rô¿,FÑÿ²8EÿËý/KRô¿,EÑÿ²4EÿË2ý/ËRô¿,GÑÿ²EÿËý/Rô¿lDÑÿ²1EÿË&ý/›Rô¿lFÑÿ²9EÿËý/[Rô¿lEÑÿ²5EÿËï(ú_¶¡èÙ–¢ÿå÷ý/ èÙŽ¢ÿe{Šþ—(ú_v¤èÙ‰¢ÿegŠþ—](ú_v¥èÙ¢ÿewŠþ—=(ú_ö¤èÙ‹¢ÿeoŠþ—}(ú_ö¥èÙ¢ÿeŠþ—(ú_¤è9ˆ¢ÿå`Šþ—C(ú_¥è9Œ¢ÿåpŠþ—#(ú_ޤè9Š¢ÿåhŠþ—c(ú_Ž¥è9Ž¢ÿåxŠþ—(ú_N¤è9‰¢ÿådŠþ—S(ú_N¥è9¢ÿåtŠþ—3(ú_Τè9‹¢ÿålŠþ—s(ú_Î¥è9¢ÿåý/¢è9Ÿ¢ÿåŠþ— )ú_.¢è¹˜¢ÿåÏý/¡è¹„¢ÿåRŠþ—Ë(ú_.§èù+EÿËý/WRô¿\EÑÿr5EÿË5ý/×Rô¿\GÑÿr=EÿË ý/7Rô¿ÜDÑÿr3EÿËß(ú_þNÑÿr EÿË­ý/·Qô¿ÜNÑÿrEÿË?(ú_þIÑÿò/Šþ—Sô¿ÜIÑÿrEÿËÝý/÷Pô¿ÜKÑÿrEÿËýý/ÿ¡èù/EÿËý/Rô¿LÕÿúUÿë£Tý¯Qõ¿>NÕÿúUÿë“Tý¯OQõ¿>MÕÿú Uÿë³Tý¯ÏQõ¿þªÿõyªþרú__¤ê}‰ªÿõeªþ×Whú__¥é}¦ÿmšþ·‰¦ÿ-Ðô¿Ešþ·DÓÿ–iúß Mÿ[¥ék4ýo¦ÿmÐô¿ÍÐô¿½Ž¦ÿíõ4ýoo é›•¦ÿm6šþ·7Òô¿½‰¦ÿ šþ·7Óô¿½…¦ÿí­4ýoo£é{;MÿÛ;húßÞIÓÿö.šþ·wÓô¿½‡¦ÿí½4ýoï£é{?MÿÛhúß>HÓÿö!šþ·Óô¿}„¦ÿí£4ýo£éû8MÿÛ'húß>IÓÿö)šþ·OÓô¿}†¦ÿí³4ýoŸ£éûMÿÛhúß~HÓÿö#šþ·Óô¿ý„¦ÿí§4ýo?£éû9MÿÛ/húß~IÓÿö+šþ·_Óô¿ý†¦ÿí·4ýo³Óô¿ÍAÓÿ6'MÿÛ\4ýosÓô¿ÍCÓÿ6/MÿÛ|4ýoóÓô¿-@Óÿ¶ MÿÛB4ýo Óô¿-BÓÿ¶(MÿÛb4ýo‹Óô¿-AÓÿ¶$MÿÛR4ýoKÓô¿-CÓÿ¶,MÿÛr4ýoËÓô¿­@Óÿ¶"MÿÛJ4ýo+Óô¿­BÓÿ¶*MÿÛj4ýo«Óô¿­AÓÿ¶&MÿÛZ4ýokÓô¿­CÓÿ¶.MÿÛz4ýoëÓô¿m@Óÿ¶!MÿÛF4ýoÓô¿mBÓÿ¶)MÿÛf4ýo›Óô¿mAÓÿ¶%MÿÛV4ýo[Óô¿ýަÿmšþ·miúß~OÓÿöšþ·íhúß¶§éÛ¦ÿmGšþ·húßv¦éÛ…¦ÿmWšþ·Ýhúßv§éÛƒ¦ÿmOšþ·½húßö¦éÛ‡¦ÿm_šþ·ýhúßö§é;€¦ÿí@šþ·ƒhúߦé;„¦ÿíPšþ·Ãhúß§é;‚¦ÿíHšþ·£húߎ¦é;†¦ÿíXšþ·ãhúߎ§é;¦ÿíDšþ·“húßN¦é;…¦ÿíTšþ·ÓhúßN§é;ƒ¦ÿíLšþ·³húßΦé;‡¦ÿí\šþ·óhúßþHÓÿö'šþ·óiúß. é»¦ÿí"šþ·‹iúßþLÓÿöšþ·Khúß.¥é»Œ¦ÿíršþ·¿Òô¿]AÓÿv%MÿÛU4ýoWÓô¿]CÓÿv-MÿÛu4ýo×Óô¿Ý@Óÿv#MÿÛM4ýo7Óô¿ý¦ÿíï4ýo·Ðô¿ÝJÓÿvMÿÛí4ýowÐô¿ýƒ¦ÿíŸ4ýoÿ¢éû7MÿÛ4ýowÑô¿ÝMÓÿvMÿÛ½4ýo÷Ñô¿ÝOÓÿöšþ·ÿÒô¿=@Óÿö MÿÛC4ýoÓô¿=BÓÿö(MÿÛc4ýoÓô¿=AÓÿö$MÿÛS4ýoOÓô¿=CÓÿö,MÿÛs4ýoÿ£é{ž¦ÿíšþ·iúß^¢é{™¦ÿíºþ·Wéúß^£ëŸ…®ÿ}¢ëtýï‘®ÿ=Ñõ¿gºþ÷B×ÿ^éúß]ÿ{§ëtýï3týﯣë=]ÿûèúßg¥ëŸ®ÿýtýïo¢ë‡®ÿýÍtýïo¡ë+]ÿûÛèúßßN×ÿþºþ÷wÒõ¿¿‹®ÿýÝtýïï¡ë/]ÿûûèúßßO×ÿþºþ÷Òõ¿ˆ®ÿýÃtýï¡ëÿ(]ÿûÇèúß?N×ÿþ ºþ÷OÒõ¿Š®ÿýÓtýëÿ,]ÿûçèúß?O×ÿþºþ÷/Òõ¿‰®ÿýËtýï_¡ëÿ*]ÿû×èúß¿N×ÿþ ºþ÷oÒõ¿‹®ÿýÛtýïß¡ëÿ.]ÿû÷èúß¿O×ÿþºþ÷Òõ¿ÿˆ®ÿýÇtýï?¡ëÿ)]ÿûÏèúßN×ÿþ ºþ÷_Òõ¿ÿŠ®ÿý×týï¿¡ëÿ-]ÿûìtýïsÐõ¿ÏI×ÿ>]ÿûÜtýïóÐõ¿ÏK×ÿ>]ÿûütýï Ðõ¿/H×ÿ¾]ÿûÂtýï‹Ðõ¿/J×ÿ¾]ÿûâtýïKÐõ¿/I×ÿ¾]ÿûÒtýïËÐõ¿/K×ÿ¾]ÿûòtýï+Ðõ¿¯H×ÿ¾]ÿûÊtýï«Ðõ¿¯J×ÿ¾]ÿûêtýïkÐõ¿¯I×ÿ¾]ÿûÚtýïëÐõ¿¯K×ÿ¾]ÿûútýïÐõ¿oH×ÿ¾]ÿûÆtýï›Ðõ¿oJ×ÿ¾]ÿûætýï[Ðõ¿oI×ÿ¾]ÿûÖtýï¿£ë߆®ÿ}[ºþ÷ßÓõ¿ÿ®ÿ};ºþ÷íéúßw ëß‘®ÿ}'ºþ÷éúßw¡ëß•®ÿ}7ºþ÷Ýéúß÷ ëß“®ÿ}/ºþ÷½éúß÷¡ëß—®ÿ}?ºþ÷ýéúß ë?®ÿý ºþ÷ƒéúß¡ë?”®ÿý0ºþ÷Ãéúß ë?’®ÿý(ºþ÷£éúß¡ë?–®ÿý8ºþ÷ãéúßO ë?‘®ÿý$ºþ÷“éúßO¡ë?•®ÿý4ºþ÷ÓéúßÏ ë?“®ÿý,ºþ÷³éúßÏ¡ë?—®ÿý<ºþ÷?Òõ¿ÿ‰®ÿý|ºþ÷ èúß/¤ë¿ˆ®ÿýbºþ÷?Óõ¿ÿ…®ÿýºþ÷Kéúß/£ë¿œ®ÿý¯týïWÐõ¿_I×ÿ~]ÿûÕtýï×Ðõ¿_K×ÿ~]ÿûõtýï7Ðõ¿ßH×ÿ~]ÿûÍtýï£ëÿ;]ÿû-týï·Òõ¿ßF×ÿ~;]ÿûtýïÿ ëÿ']ÿû¿èúßÿM×ÿ~']ÿû]týïwÓõ¿ßC×ÿ~/]ÿû}týï÷Óõ¿ÿ‡®ÿý¿týïÐõ¿?H×ÿþ]ÿûÃtýïÐõ¿?J×ÿþ]ÿûãtýïOÐõ¿?I×ÿþ]ÿûÓtýïÏÐõ¿?K×ÿþ]ÿûÿèúߟ§ë®ÿýEºþ÷—èúß_¦ë…¡ÿýU†þ÷×ú?faèÿ˜ú?CÿGdèÿH ý™¡ÿ£0ôT†þÆÐÿÑú?CÿÇ CÿÇëú?^ÏÐÿñ†þYú?fcèÿx#CÿÇ›ú?`èÿx3CÿÇ[ú?ÞÊÐÿñ6†þ·3ô¼ƒ¡ÿã ýïbèÿx7CÿÇ{ú?ÞËÐÿñ>†þ÷3ô|€¡ÿムýbèÿø0CÿÇGú?>ÊÐÿñ1†þ3ô|‚¡ÿã“ ýŸbèÿø4CÿÇgú?>ËÐÿñ9†þÏ3ô|¡ÿã‹ ý_bèÿø2CÿÇWú?¾ÊÐÿñ5†þ¯3ô|ƒ¡ÿã› ýßbèÿø6CÿÇwú?¾ËÐÿñ=†þï3ôü€¡ÿ㇠ý?bèÿø1CÿÇOú?~ÊÐÿñ3†þŸ3ôü‚¡ÿã— ý¿bèÿø5CÿÇoú?~ËÐÿ1;CÿÇ ýs2ôÌÅÐÿ17CÿÇ< ýó2ôÌÇÐÿ1?CÿÇ ý 2ô,ÄÐÿ±0CÿÇ" ý‹2ô,ÆÐÿ±8CÿÇ ýK2ô,ÅÐÿ±4CÿÇ2 ýË2ô,ÇÐÿ±CÿÇ ý2ôlÄÐÿ±1CÿÇ& ý›2ôlÆÐÿ±9CÿÇ ý[2ôlÅÐÿ±5CÿÇïú?¶aèÿØ–¡ÿã÷ ý`èÿØŽ¡ÿc{†þú?vdèÿ؉¡ÿcg†þ]ú?veèÿØ¡ÿcw†þ=ú?ödèÿØ‹¡ÿco†þ}ú?öeèÿØ¡ÿc†þú?dèÿ8ˆ¡ÿã`†þCú?eèÿ8Œ¡ÿãp†þ#ú?Ždèÿ8Š¡ÿãh†þcú?Žeèÿ8Ž¡ÿãx†þú?Ndèÿ8‰¡ÿãd†þSú?Neèÿ8¡ÿãt†þ3ú?Îdèÿ8‹¡ÿãl†þsú?Îeèÿ8¡ÿã ýbèÿ8Ÿ¡ÿã†þ ú?.bèÿ¸˜¡ÿãÏ ýaèÿ¸„¡ÿãR†þËú?.gèÿø+CÿÇ ýW2ô\ÅÐÿq5CÿÇ5 ý×2ô\ÇÐÿq=CÿÇ ý72ôÜÄÐÿq3CÿÇßú?þÎÐÿq CÿÇ­ ý·1ôÜÎÐÿqCÿÇ?ú?þÉÐÿñ/†þ3ôÜÉÐÿqCÿÇÝ ý÷0ôÜËÐÿqCÿÇý ýÿaèÿø/CÿÇ ý2ô<ÄÐÿñ0CÿÇ# ý2ô<ÆÐÿñ8CÿÇ ýO2ô<ÅÐÿñ4CÿÇ3 ýÏ2ô<ÇÐÿñ?†þçú?^`èÿx‘¡ÿã%†þ—ú?^aFÿÇ«ÌèÿxýŸ™…ýŸ™˜Ñÿ™ÀŒþÏDfô&1£ÿ3™ýŸ)ÌèÿLeFÿg3ú?Ó™Ñÿ™ÁŒþÏÌ0£ÿ3¯cfֹϘ™íÿ?ÅùëþèμëÿPK˜)nk¼ÆPKO~öRgnu/inet/encoding/IDNA.classµV]lSç~¾øØÇ>qÇàR‡ü´%”Äùcí Ã¡`âá8´I¡Zsâœ&&æ×>fdÝú'¤i[{1íbЋRÚLh­Te»HP© Û´©Ûõ´]t“¦jÕ&MÛ¤^ e°ç;'Iù1,7Sâïï¼ï{ÞŸçy¿óëë\ð^ÑðUñe UxTC¶Éa»¸Q+]>xLÃ}øŠ\íC\C/vªx\EŸ†Zì pØ-Wý~ì‘ú 9ì•Ç*ýØ'—C’øªŠýR2æûÈã'¤ñ'¥Â¨“«§TÐú™O &Ÿ§Žë'õž¼nNõŒÚÅœ9Õ+P“°Ì’­›öA=_6|;sfÎîð´µÓ€’°&yZ—Ê™Fº|bÂ(Žéyž¨¶Õ?šH&n»Ón{ÅWÚzvfX/,›ÐNe‚£m¬>\ÁŽŠCÛzÊÌeß´Q«\̃9i3Ü›îï–JA<Œ-n7°§œËOÅ žÆx‡q$ˆ£x&ˆºƒx9SAý d6O™åo÷&ß—[µS(…ÕZ®¬JHw&ƒ0Ð*WÏ ˆ® ¦0DNÇÑ*p_e¬Â)³‹â3hU‘â:6Ý)| lÎÊœÜòRúÚcYvÉ.ê…aÞ¶&Ku>X~‚xA¥O[eø%ØA”åÙILSï‹ÜL7²ö-Gnˆ˜¼aNÙÓb_vZ/öSTiK¶'ü¶µ"¹¾­".|z¡`˜“]kBÒr©ØØ–¸çã{•ŽŽ™ú Ã]n©¾Š¾ÆÚRkD¯$O(1’ëO¦G3é‘t&µwH R)DITr°h—åd"+ ¦ÇÌÒ²Hݪé¡ñCiu«'7s¾áî(aâ3Ã!ßÐDG5| §¼‚ä:¡Ïl YÝ–n­´ÒÙ?62’I¤÷‘’¥òDib¢"& דñ|YÏ—’S¦U4zÉP1+aúMÖ/ôræIkÆXVwß?¨gm«8«â%ZKYÖL™u &MÓ(&òz©dЩ37çuنˈ!ݜ̥VW±÷Nï¦86[0*ˆIÝN[€¼l"¡çó£9Û`O{™fM¾ 4ß[ò2xˆWƒ@›ÐÊy3wUØ/×lŠÛxÒÄYpöÆ!~ì(´sô9‡í°#vPMŠ^…BeàÅK¨_„'µ<{úšb PÞÆX¬iÞíJD uŸC4¢Ôo­:‡úˆöƒÆI} ›::à÷(X€v¨#Ô½€êC+¦.@ëŒ(òä´G\¸ñîmÂÜÌ;aHAãøG;Ñ€Çvÿv!…ÝE?»x‚Ýv'›æ f±Ô` ®#¬¢Šÿb‰]´å|×Z* ¼Ö »Û »j>ÇpgDoŠ:œ§GçÄz¼%šñC±ïŠ8ÞxßÏlø¼B40)5ÕKðD›EMMÍ5h<­×– 8ϗР¢gHECµ?¬Ý¯­d•ø¿°ªÙ!ŠË¡ÿɪ滱êYõ!Yu™Å¹BV}DVý”¬úYõs–ådÕe–ác²êW÷f• ¶Û VdÈ¥…_¥‰BÄcs,â•Aú"> Ä€²]‘HôÒÛ«å,B+„RãÞ®y”o@.ã^gÇèZö˜Ä}RHíšú66²oÄU¹÷s¯FùŠ­¨ožž|‰Š£‰­ Í"‹åqQ”pÆo¹û£øõÄOÀø#;êUöÐOø§´òÚù-}ÆFóW&êl4ÿâ'øçLØ¿å8Ž ^•ºððs²yâ̼ÒD-Jb/¶¯¬'‘½¨¾?#Dó7Ly´ˆÀçœÉ?phX‚‡Ëý*jÝUµ”¬ä#¤ 1í_Ç‹xŽsïç>ÍßÈPKXî±ß¸ PKO~öR%gnu/inet/encoding/IDNAException.class’]oA†ß¡DK·V«ÖvûaYj€D/ª±1!” Éf!BŒ^‘í2˜u†lK–áÂÄ €?Êxf%ôóÂÝ䜳ï>çÌœ3óûÏÏ_PÌ"‡umžØÈà6 XÚoØÖ~ÇÀ®öÏÒØK£À¯µÜnµévznËí9G Óùâ}ó*'•N 9xð4çŸÚºË°2Wªµz¯ý¾~ÜüÈ`t[­žÓrß1¤…Ñ[†UûfÅâ†dMõ9•v„äîøë »ÞI@ʾí ä¸BrTáÒW}1O…|TŸø| %ã*ömp{,Ï)äWQãÐf{Z°µí¨qèóc¡W5›GnužPÖ[ÎÁÄŠ66ÃzMÉÈòÔ’J–hR–?ôBÏxxZÎá.î1îéõ-ZQè‰@ÇÃóÑKÊŠ,/Ôᄂñ šœE}ËžÈR©xÊk*ÿ¯s+RÊ ”¾¬õÍ›m_逎èbì—ÔµËÇцêLO„-º9ºIIdt?eôFcŸŸùåØ'ÁôhÈÞ§¯m$èRûÏ€}§ˆl6VKXD9æÜÆ'®ó/ˆóÿ‹? þ ¬áÑŒM^?«æÂIsqŠ”™žÂ03Sd/ÒMjØ£ô•²©Õ"ýyLZOþPK jZöUPKO~öRgnu/inet/encoding/NFKC.classVmlS×~Ž}¯¯íÜ$6ôòaû2>IœÐ”†­8¦`F ù¢„†A:Ǿ$cg‰C[Öv¥¤Ð}t£Ý´­©$ yª‚(„¬ÕèÖý˜4µÚ¦ýؤýÙ¦MÛ4MÓ:M*,=çÚ ¡°~ÏyÞóžsÞç¼×?¹õÖ5ðU -^¬B«mh×°Ó J°Ë Œƒâ—½è »åì19ëô`>-á^ Û¥Ø%á>)º$|\ŠÏH±ßƒ'ÐíA=R$<0‘”’ƤèÕÐ'5))JqH:‘–Û[5P;¶Ä-Ñ$PËfsñL®3ž¢Nm‘kôÕÏ£ÔÎY'Ø= ò®–Xv(“#ÂB¢Î9dížC!¢¶Yäh!ê˜EÕç‰"©L*pVVu (±l’.”·¤2VÛÐák`w¼'MMi&;p8žNµÚ¶5ÇÖT¶Œ‰×¥ã™ÞºŽÜ@*Ó»±ên7väâ‰C­ñþâAeI+‘=ÜŸ´š2Ië)^Y«bʨí¡/™ÞX:>8(àOÄ3ÙL*O·$-yš@èî[· ¥Ò\Þ(½×ï‡gt<‹çt|Ïk8¦ã×0¬ãE×q'u¼$g_³&¹%†MæÝÎÆì8S¹T6£ã‹ø’Ž/Kñ²_Ávßm×Û{Z‰œ€£+v‡¾ù”¶2½¹>›OM²¸M²0®D_|`s®€¹Ñïï·2Iµÿfk, pZÝ^®¸;¸­ÅrÛᑆýT’]‚pa×½Êî´r±¢»jeSÌ&VÒJ[9kVbÿÅ w.;›Žû*ïI­UÿÃÏfëiéã!™gfqù=kvÇk)þL{—ÜPR¤îÎx¯umçÈÖ’AîJ“ƃ9ÛžõÐ ºú «â=<”Î¥ŠÚÙ–Ú`ÛÑ*v–àãXM´†È¸b®$®š‡ÃÄÕóp ñÚy¸–¸n^G|ÿ<\OüÀ<¼žøÁy¸ ùÖ(?IÉQpTÃWá¸Ä‰ÀC”.[¹ŠÆ)˜ŠwùIðRûAxÎÈÛPö¯BmuFÍàZÃæ$\ Š¡,ÐF±˜ƒû|5†2Ï$¼{òX-ç% ª¡:΢”+“Щ.«™@©¡ÖK£a§ÈÏ\®™B™3êlPœÒ¸fåcx¦ÆP'ᛂ¿Áe¨§±Ï| ÓpÁNû$_ƒV°hpšážÂ‚áqœÁý\6<¯Nb¡½~ßžauÆP å,ÜÎh˨U’…“ Ë ×4Ce®è°JoŽñ~ãM;u2/'XX° * QÆäL~ˆé 3¡he¾¶2cmœíåúD v* ÛчÈ¡™-¨•¢ßÀNœÆ.ä±ð&щïóÛúîü1öá=<Ž_a?~ü†§üðGžñW¤ÐH/ê¡ß‚OhPÄ4Öð·H\‡÷Ô[(‚x¥¸…FÎ>D™û\[öÊbéGXO•ã&gd‹®©éÆ`¨[MG Lµ¯¶A È4• Ò];nÏBuŒS}n3’‡j6ægÞŸK¢T;îŸs$@þ_ct_G óìÇ7±ߢ##ö…n03¼KÞÃ/E‘ß&í5®¾B~—@¹äŒGð¢ ; i$Õåš’á°©tIÒ¿†GC2-ÍÔJÖžF4|›Y†r®<ªÃŠº8ή’˜öÔpqæŒù™…ä‘ökx%?ó쥹Àö1 àÛt3O×ßàs' /À‡‹XŠK|ç$äw™ÙËØ†+$Ô$É4Å^ßCoñÛø6krÇH´a¼ƒ“Üó2~ˆSx×NL÷4d%|R¬bñ T8>„ÛÁûbs%é!u«dI&°ôÚ¨$'×F‚޳ÖÛõªýhmÞc]ÞG)~Ê€~† ~ÎFô Û ŽÒi”ËÒðÓ],Í@–æb 8…`cˆ[ ¦Šš~\E…é'ǰ<8eR“¬w®?‹ò9¤¬wŒs¯YšŽbe`³ç[ßmh›¯c ÷žÃFªqjÈñʪ'°Ü¬HµÕÉ¥êµ1,YZDëÙžØB¼áâ!sQw²S€¯Ø…ß2òß1ò?`_órü‰OâÏìaôcŠÿÎñºðö‹â ®ó/Ê¿øã&ù{ ç0ƒï°5¿!¸ ÜÅ¢iÓ(å{_+}Xn“†ml²hü—T,Ú;,šÌ}"°@KF‚¯ÃôWŸ…›y\ñ¦ìçW±²ÕïGÐïhIwGýþ¸œõûBéîÅïÏ}¡~²»Æ|U¶n6V{4T.A ;iAGìe¸«¡Š5äTÿoWÁaTˆj<(jø'k-]­E›¨Ã~±ÎhœÓ4VfèºKØ NûÙ6Í2‚ýއ …‚‚¨*|î”ÓƒrˆI›É%wÉÙ!‰ K¬G# Fœñ¨î›ÍÌç™Ü¾Dz!é`ž엲I¹72•rPÀ‰MÄ"C‡F$pT@[zc‘q‰ rAdx/åªó”ÇïŠNJ¼…‹û£C±áØDtŒ‘û$¸]ÀݙʤrÝŽÖ¶}´ï›µ’5C©LrdáþÃÉìDâpšˆ;™™²§ZZ‡Ž$H´§™éöñ\6•™îhÛ qcã¹ÄÔdžs¶{|ÑÅ©ä\.ÅÓ£•,zt%¬Ä\Ž@k,v°%QRó½‰ùÔÓiík;Èt¬Ôt*·KšÏͦ299“–5eh—mÂã³ Ù©ä@J&]½w!ó 4Ù!óÓÂûÌéÌB;·—k··ÄdÛ×Ì®¿z#½ ©´•Ìjø0Æ4ŒcBC·k¸¬–Ý:–É%§“Yæÿï¾¼{ “Ø/Ó9 áƒØ­á¸MÃAÜ£á^©~DÎî‘ÒGqH@_3zøHr*·*æÉò¥“™éÜŒ}’,{j&‘”JÕG=17—ÌXÖtÓy•¶ÉcóŒî‹Ž N Ô^ëXk?káÉÍ®er]ë5 ¡¦ó¹XÆJ.ŽÞG6öFúÅFöÞ=ÁÜR™ùd–¹6µÆÞ%9le+Õ“·Ü€ëù_ ZLÊz€rS…~#å›*ô÷PÞZ¡o£Ü\¡)¿·Bo¡ü>´–õ6(”É&Ž7iâWðë xN¶0¶stÛ`¼Øv.£iÕ›p¡šÇü8ÚéèÒ»ÏÁqà œ{œŽ°ËvîÐi¸V îÓp‡C9 å¶48 å4<“K.±äùÂë†ëi¨ N}»D Wy©ØVë +ްÇð]m éÊkxŸÁÃk(+P oXYòÐÑECi´j}Ëp;ã铨rêç¡Aõ…€œ“øL¼ËP:+œ¾PátõKUÂXÞ°–Ëx,öéÁ°j¨M_×Öòh ¬›ñgàÓM©{©[aÍðÚ ÜyìàNmÍÒƒæâg±å {e,ö-©Á|áM}kÓ™§á6\ËPœy8gQÓíèb±ìmƘâ’ù+œ§¡Û>IyL¿Æm»áÄ<²Wµè‡(Y2À¼“—ù v#†Nb½!2Ê¿1^ãlÙ ÄÙÑiìGpŒüõϰ{ŸÂ!<‹žÇa|~ˆ$^Æ}xÓø%fð¤ðWþ÷ã-Ìâ>Ž!‹ÿb^8‘*~,Šð hÄCâV|Rô`V àa1Æ`ÇD ÇE–ÈâQ±€ÇÄ">%§±“»ZD}äUÜ"„Pààã‚æ·áÒV)¿ƒ!¶R3Wá«h#¢ ¡Ö¬Â%¼—*°­Ôеòª„(Ðõ&\~/ÃCwo³CwÑÄÉPYÏ[Ëô”˜Fúl¦HÙvIZwÚ`f7ohƒ'×V+ VîÙ¯±/òp;¤ƒ"Cß „ÝΰBöyŠÐò†Õ!ÃÅ%% ŸE]Øgøì.P6õ€ÏP$ÿ=E «’žu «’ÂRX¥¡jS¸Î`XCµfd‹‘§ÇÉMKÒî:ÉÐ'+ø(¡éZ_£µ1ncy.Þ¹&Îu58¤»1I:ç õWqù›¼“€Ï±ÊŸ'—¿ÀÚŸ —Ÿâ ùEÞ€_"—Ÿ&—¿L./“á+"6†“d_%C¿Ff~Gð dèíøŽã9ù|¿"»‡áø1þÆõ—ð’ðàer÷ÑŒŸŠvüLìÆ«¢?QüB â5›£Yø ¼‚7rt[I¦jWÕÔ­{­‹Ä, žJöÔ]•Xº”×y¿¯³³A>¾¥{ü(1'¿»' ™þªóéŽ<Ó•î0ÍÆt¼ÃÑmúÅK'¡›zsº£IÆ»ó…Küš3¦ÞÂs:U>ˆ–ø-ݽÎûþ"üø=Ÿ¬?2ÜŸøü¼ÁçåÏ´û‹]/œÕŽU(¢ŽÓüuQÊf']ɤÚd³¬”8³¡øº¼e{p¡J푯M; ûøcSMÝ\ÇÔñS¦\JÀÒwÆOUôBÙi=]§ó°6ÿdÚÿ¦×ÿØAœ R½¡r{ÊÑî-E ™úNK÷ÙQ(˜2fÂZËÀz—˜xy@~Áל7ßM½Ó_S Ã^×ù?PK5É™Õ&² PKO~öR)gnu/inet/encoding/PunycodeException.classePÛJQ]ÇÛ\´¬1íòÔÌ œzê! ²QI³ÇÇÓpb:#ÃŒÕg…A}@í#Rça_ÖYkíÍþúþøpŠ- :Ö dPÔQRy]ƆM½3hÜ4[;«õèLÛw¤g÷¢PHïŒÁ¨_\Ý_·»·}†LMH3+‹ÔƒCê2q†|KHÞŽŸ†<ì;CŸ½æúsm²¢˜f/ˆC—7…ú-ucùê’´ñâòq$YUö9d‘£ :>øÁs5iëÎh[Èqb*dÏ“±M3#›Kò¡uìK†Âßο(vèÝ)C¹Se(ÏÂÔ—¨Û¥>A9sxôöFÃ2Es†#Òç±2çïSV/k%¦HZ©)ÒÿEe)Úêl˜õPKÜ¡ï±0±PKO~öR(gnu/inet/encoding/RangeSet$Builder.classµV[lUþNw¦Ón§ÝRºÀBiK)¸7¨ ¶¥Új·E) ^˜v‡eèt¦îÌEñŠxC¼+ø"âL[HÀgß4Ñyð|Àø CýÏì,»´6&¦Û3gþó_¾ÿ:çË«ç.¸ï{±6zQ„ÎRÔcSZÐU†{Ñ-!æ…„Í|¹OB¼ŠDî÷‹¼ØŠ>/qo“°Ý ú¹ÔN~ïÊЊüuß=Äióå.ô(ßíæKw)©Vø2èÅÅf ª„= Å)ÅHªCe|Ÿ²_iJÛšÞ×,»…¡´OKŠN© âVÎÇ Ç CMuêŠeq©5Ó¤ZãI#ݤªÝ¤CfB3’MŽdŸj7:›–6Ò\ܪšÝÆà †ú„N3Aº}qìM ª©mÊ N”%‘p KiMO¨)†îà­„nÆâjâfõ“+­Á<_:M]W‡lÍ4 Uµ{vñ‚R ‰Pp×®ÎyËûleh¸Gu")!)a/C0X°qojƒ7 Ʋ5•T³QlN¯£Ðt‚MÂ>†}ÓY ŒÕª¸þЦ²šÑ$‡þÅzåí3Ó©!µKãÍRžeXÉuQóôª–ÝmZ¶Œ B ss&ÚS)eŒÛ‘Ñ€¥2†¡K‘aÀd¨¿•i®o”/Q¾¥:‘›bTóIEoO%Ó#ªao:8¤Žò ÙÒaš¶e§”ÑÕÞk&,_1R%°dØHsEû%qc2îB3ÃÂCàìÄvËx‡e<‰§dštÊH“¸GKñ}ENObÓ€öŒ(ÝtÆ$¼Åä]‚cÓŒýæ°êæ"“Ë.eˆb1&áMÜ4‡Ó£ 'ò=u…2Í×­ ]µ3œ-3|#Ámc£ê,ì»nÒ|Š®÷Q>iúŸdXV6úøÜœ«è¢³„.LT@|ѳ‘ÞŠpJhOSÖ0Q¢ðШ ƒ…Ï£h`žÏ!|êÈFhå—"àkø†(Q¬t%CDç'åá³"“‹°#|fšØ·(ÃwDiÂíôÎÅ–»bÞÉÏ&ó=A¼äÂ]åÈ®vM^D1ýF¤'z¡Í³Nð ‹?‚õ «›Å€xA8…EÍyHѳf%\§±ŽŽÅS¨Ë?ˆ±”fY枇—èÎfŒC¾xD`§§>pð9øðªñ#á'ÜŸÑŒ_Ð_±‡è:~#0âU”HXÃØ?KXÛð7|W :άsÙCåÎ4]çL9³f˜…é¯ùà ¹”‡¦Š— Íï”ÖËX?ëå(r¬¯eì …‘Ñ={½ks=e›‡x×?‘IÝ*âçሌ£2—Š âþ¤«ñº_ÿEŽÓç'“B¶’<áÈφ'1‡á$¤ Tqk'NĹ =ÑIT3|©wÅüͽÏã¼Â$æSÏŸÂÊ,mY@ðLbA‘Ã~M°Y\'hNO}••úxj2BÜÙ×Ä$z0‰E €GÍ(s,Ÿž:á'œ'’ _æÐz¥TþåÌ?PʱœIˆ² _b¬ÛYv3]+1̪°ŸUã8óã¶Ÿ±€òˆåS¨…(¡ÅùµJh”¬Ýà–ò'†mn¦äño¤Ô»#g±øCÔÑ£†&P»§Ÿö‹k¨DÉ'¾T u=Ñp¦ ¢nÓEs>ÕR¾ÀjÉŸ:X=Ým°š-¥‹C#:Ø2+õ{È…t7¸ÇÙµ£Ãyú¨?…Ä$Ñ~4F|TY¼÷ð={èœ^úßò/PK±gSjÉ PKO~öR&gnu/inet/encoding/RangeSet$Range.class­V[oGþƱ½¶Ù8Á!\â0vÀ…¶ÜBÄ@bpBÁá(lìÁÙÄÙ5»c.­*UUU©O­ªV奪Thû’‡¶*P¥RÛ§>ô7U¥gf×!sy¨Ïìœsæ;ß¹ÌLþþwáw{aÆÐ‰×4ìJÐòÍØE{å°/† ’ˆá ÞŠb‡b8Œ# ´!/wÕp,F¦Ç5Œhe]7W0°C°fÈÏðAÓ2ÅéÒ…Âös$ÏÛÎÐQ4->Þ˜›â΄1U#I{IåÙ1£î¯ƒie:cXUZêËâNžP]î2Œ¤‹U«‘#‘ãVÙ®˜V5§LK\ô©Á—[H‘²m ô\Ïå%†þWÀ–va—„CJ†UéíÅ㦑«‘6çI¢e{®n8|Â~ETJ\˜ßh5bÓ^yjj†—…çvÚp§½,¶¥åŽ–†$–̪eˆ†C–ÅgM–HòЦÌûÁ—“¢Àb%»á”ùqSU®i°S"ÁqîŠQÛ :ºq‚aó_…ZWÚ§Ú˜ã–8v»Ìë´-†ÎaÛ®pŒúÓvÅíãdEc—@§t$Ð¥cº"x[ŠOGpFCIÇÎj8§ã<.h¸¨ã&#¸,M®èxWR/ LÇô‹§EÕm•)†žç#ªÒœ‹á(ú~“;.¯¤ØưfΘåyÛ*â¼)¨’–+ KPÅWË3Òª–UØ—ÊÞíf)Úë7U3wRbÚ°RäâÂÿs:ZQ‰5Ý™†U)–Ú!}­\RZKð*wV{”ßnŽît먼L7„YËí²!Sª)Jt—$ŠOk—Õ¦ N®ÎÖët3.íßš~v[Kß¡I6À®0ìk‘Ù¹n©r¡î#†®eÇ_ 5LÉö#R}OT¦uÓžå>†×Dz°;(˜pѶgu†»Kiù›¼C1jX•wû<Ë\Ÿ·qâN·0Ÿlqw< ‘7jµ’)8E5MWÙ+qcØðb;ì¢Ç£“ž™•ôÊ$äѦg(!O7Í1’wc5khUF^`KæX²÷>¿!p1Ù» ¥ü#“|€P¦÷Â?‘YkiìA˜Æ!ÚzQz¹Öbë‘ÇfÅ:ÒÄÁ“°MCœúÊaïðuÂÐÜ!zàIœ)ðÁ#4ŽxÀN(€õ>À]ŸñI ý¡úù¼³ Ð<ÞRJÚp%¸Dñc’Û¤g2 /‹l³4¡æ â:ppYºûн7ŒI¢rYEØ…ÀcRʽ? Iü6`£Ïr¿æê ¹JÞCG’>Â÷ @°m~Ña2AWhU‡™‚Iù0‡|˜ÞŒNè2ªÍ4ÁzØ& Ê;Ly“) ö+¢?#ö+$Ôâb:ðãb-â*Óuê£Y¤t“ûhïúÔö4©}‹P`¾¹¸PP.Â’mS£J³„ôVª2p +píxdïS³|€~|ˆmø»ñ1ÞÀ'*¨0‚íº®ƒ~Úçñ¸E8’åþLö{ ý ñÌC´gé÷BmóÙ?Ëøò”H*²ôj|BÅëëO©…>£õçÔr_ ƒ/麯”{!-ÎþÁJ*¸$± iŸD?!ÈÔ¶wn”ž¦¥‡kó‹yô óuçÊßvË&?ÑŒ$øO›ï£f·,Ô¼;ÕœC¯:(*PŽoãë¨Ð¼[E¤SÆ(irܯÆA5ÿPKª¥—.¡ PKO~öR8gnu/inet/encoding/RangeSet$RangeContainsComparator.class…RßkÓPþn~46&®Î¹uuÓªvë0à‹)¨ƒZÁŠï·Y,™ÝÍHnüDÄú Ägÿ(ñK¬ÎÒ‡œï»çžósnΟ_¿¸‡[.¬Wa¡Q˜+6\T°éઃ¦ƒë•½XÅz_Àlo?°zÉa$°ÔU4ÈGQúLŽ&ô8ar|"S2û©Tc¢w T”ö&2Ë¢Làa»?VyÀ<D*Lc5ÊÐa¤[%é.ŽØ>ð‡Z†/Ë“YéÛíþ‘|%ƒ #‚'££(Ôݳž"³:ŒÇJê¼h³?/)×ñ$è•ÓH¤{‹›Úï ¸Ã$OÃèA\täÿ ¸S( œD™~”dÚÁ U¸n¢åa -æ"}>jwÅõ¥e¬²¿½ ¬Í½©ý;¾ÀÊÿæhÌ/Ì…àÿ%¾®ý"N3&7ȇ抙0Šqy:ÏÓ&Qí/ŸH¸$´•Òùš–sÎBL4‰S»§0ßÀ6¦$Fç÷ÁššSÞ¥Â*lÚ·Ì|G÷¨ãøˆ‹ôZ0|¯vŸþå™ö• m§óÖ.¿Ï°§gÚ±p©,°‚Ë%®b­Ä:–ˆËdù¬3£ŽkpPKìœÅÊWPKO~öR gnu/inet/encoding/RangeSet.class•WÛs×ÿ}ìÚ+­Ö7á5Á–ì8T–] ˆ4–]Œ¨A©eËM¡‰×Òb¯-ïiåâ’æBz#½<´Ðédxá¡<@ Á ƒ§—™L›^¦O}h§3þ÷;+ÉlçAçœýÎwý}—]}v÷“Eûñ3­à0Ž(Hˆý?ZðM•—AqJ*’^[^^V!aX,GùY#HùùqT,ßRðœŠ: †ç…ð b9Àq¼(XO¨ø6^ËËÒ96®b †XÆÅm:Ȥ “*ÀKÁA9X°²3GжmæâY#Ÿ7ó„m#†=aÆÛ5,;wffœá:ÌXáݶƇ‡FûC©—ãÃÉ£ý#ý£Ã#„½ƒv¡Ë²M·Ë´ÓNƲ'º<”é¶m ³‡P™Wl÷ñª€Ùƒ3NÞMY¶uÒJ¶{ؘ%´nF²2fÙ–ÛÇŒ9£«àZÙ®A+ïö´?GãN†c«d5C…™q37jŒg™âÖ ·ãóþEc·Üç©o8iÙ™ä:¾o"îöÍX•rôtÒ˜-9®Œ—3¼3ü… J•À*|éRŠp¢ý8¡¾Lé·çBGËv M% ²¬£+>iäRæ©kfWY¨wÃÛM„Êò5éœi¸æ¨yÚ-•\lc{›Æç:)7ÇWc±ªªH±t¶TRX$LM9…\Ú°”Ue»„(!0dæÝ¤)ª$¯á«8¨`ZC3„sGƒ GC;"žÄ^ è$Ô­ú”°]sÂÌ ½³b9¥á++`J®†æ4|s\÷Oª†§ð5 ½èÓð4b Nk˜ÇŒPõŠ‚3^ÅY ßÅk ÎixohøžXÞÄ[„ÚƒŽãæÝœ1›4ÝI'“¯©ÄÛ>¼£á<Þ%tù†'4n,ÄWQŸ2ÓLª¾¿á¸0óÖ+¦—¥׸ëôçrÆE­Øš>ÂÖ_¢Bº*üob$’éÎ"}Í— ÈW KWW‚h`÷A»¤=¨§½h¦}h§hÉQ©þ)è5~µô”L‡Ù´HÖ±€úd¤£ó#èWWœUEô4cßãIÅŠRô6‡QÅ÷ÿå’hàÛ|QxZô¾El ²ÀÖÒSm9…IÐVò•uùT]–Ç®À'67Z)8%½Ì\SfÞUtE—ßGµ®¬  +¿r\%2Ÿ]y,ÊObóKQUW›/ã©]]À#Ñ€®êl‹ªÂ€îÓý‚XÕ¯éÚ¯…¢+˼ß).eÐ(ÔÅQEÑaDèvSÝ”Ä!B‚žÅ Á)JñKÿœ¥ã8O/qáç”Á%2q™&ð²pƒ¦p‡¦ñÊâ_dãß4‹ÿÐ)/g­Ð–ØHÛZéÝå%‘Føá[„7p_{ãáPÛ ‚EpòA„# 7¶B„†#4AhŠÐ a;ŽŒ}·àÈ[pä-8òy ޼E>Å‘·„æ-Z"´B}¥» 슀nÚ¾B;„ö»#ì°'Â^{#샀QÝŽŽÝÞ ¡3B„r„®ÝöEÀÐnßá„ñâb_LžÈ7 ß|#òÉ7!ß”|3ò%ä™|B>oN¾ù–ä[‘oM~ò;’߉üÎäÛ/OÉ·%_J~ò»’/#¿ùväÛ“ßüä÷$¿ù½ÉïC¾ùŽä;‘ïL¾ ùrò]Éw#¿/ùýÈïOþò’?ˆüÁä!(ùÃÈNþòG’ïNþ(òG“?†ü±ä#<ùÈŸHþ$ò'“?…|ò§’?üéä{’?ƒ|/òg’?‹üÙä{“?‡ü¹äÏ#>ù È_Hþ"ò}È÷%ßüÅäû“@~ ùKÈ")ùÁä‡J~ùáäG¿ŒüHò£È&?†üåä¯ %ù«È_Mþò×’¿Žüõäo ?–ü8ò7’¿‰üxòÈO$?‰üdò7“¿…ü­äo#?…üíäï 'ù©äï"?üÝäï!/ùûÈßOþòÓÉ?Hþ!ò“„ü ò3É?Jþ1ò“ŸE~6ù'È?Iþ)òO“†ü³äŸ#ÿ<ùÈ¿Hþ%òsÈ¿L~.ùyä_!ÿ*ùùä_#_A¾’|ùä«É/$¿ˆüëäß ÿ&ù·È/&¿„üRòËÈ/'¿‚üJòo“_Eþò«É×_C¾–|ùµäב¯'¿žü»äß#ÿ>ùÈHþ#ò“ÿ„ü§ä?#ÿ9ù/ÈIþ+ò_“ÿ†ü·ä¿#ÿ=ù ä ÿ#ùŸÈÿL~#ùMä!ÿ+ùßÈÿNþò’ÿ‹üßäÿ!¿™üòÿ’ßJ~ùíQd(²9Šâƒ(>˜âC(>”âÃ(>œâ#(>’âîEñÑCñ±GññŸ@ñ‰ŸDñÉŸBqŠO¥ø4ŠO§¸'ÅgPÜ‹â3)>‹â³)îMñ9ŸKñyŸOñ_HñE÷¡¸/Åý(¾˜âþ x Å—P<ˆâK)LñЇR<Œâá ø2ŠGR<ŠâÑ¡ørН øJН¢øjН¡øZН£øzŠo x,Åã(¾‘â›(OñŠ'R<‰âÉßLñ-ßJñmO¡øvŠï øNЧR|ÅÓ(¾›â{(¾—âû(¾Ÿâ(žNñƒ?DñÃ?Bñ ŠgRü(ÅQü8ų(žMñ?IñS?Mñ3?Kñs?Oñ ¿HñKÏ¡øeŠçR<âW(~•âù¿FqÅ•WQ¼€âjŠR¼ˆâ×)~ƒâ7)~‹âÅ/¡x)ÅË(^Nñ ŠWRü6Å«(~‡âÕ×P¼†âZŠë(^Kñ:Šë)^Oñ»¿Gñû@ñ‡DñÇBñ§FñçAñ—Eñ×Cñ·Gñ÷o øŠ¤ø'Цx#Å›(þ…â_)þâß)þƒâ?)þ‹â¿)þ‡âÍo¡ø_Š·R¼âíT\DņŠ-;*öTQqLÅÅTLTÜ€ŠRq#*nLÅM¨¸)7£â*f*N¨8Pqs*nAÅ-©¸·¦â¨xG*Þ‰Šw¦â6T\ â”ŠÛRq)ïBÅ»RqïFÅí¨¸=ïNÅ{Pñž™á*Þ ao„}: tD÷¿hÂÊ}où7¬f1LÝVØÞ­blÅË0zïa»O¥)–o3„­ÈuCØAÌ}Øò-ð–[`+·Àn5Ür0¡°ù[Ž@èŽpÂ1sÖ¢Ü'l=÷[ïBÀÍÇÖMÿÂ(@p9‚ü6|ÑŒÙY˜‰ÂgÝ–…çð×»ga3ŒífôÆæKñPÁös ,Dx_´}%î;¶ãÖdû» |„/: ¸øÀââƒL‘=¢³)rçžÛ=ûóÈìO‹¿èÈ.£ú÷ÙïSÔàÈ.#ûÒ§_SÎ=éÒ>—÷é8¤Ï°{Ž9hØÀƒ°qùÿ½qùÿÙØuïÜYbÄ.òw—ìoÛ½¡+B7„}öCØ? G¡†£²í⃠4úÐl·Ý÷8ÓùîÃ/ÎŽÚì¤AÃúŸ2fhßþ#ÏèÓwH–¡ƒû Ñ-ö>fd¿þÇ B¾ñéÇt/ïÚ­k”ÜØýë¶6vߺï»ï݆Æî·Á•ü¿)2}²ÿ}³ÿý²ÿgÿ³#™Ù|–ýB3(ûiöpöHöhöXöxöDöÿ²ìÿÈìÿ¨ìÿèìÿ˜ìÿåÙÿ+²ÿWfÿ¯Êþ_ýÄÕ ²ðÖL„GCxaÂl„'žDx ái„gžExáy„^Dx aÂËsæ!¼‚ð*Âk•URK5ÂÂ,ŒÊj·‹Ç!Ü„0aÂÍ·"LA¸a*Â4„{îCxáA„‡f àW.Æ\Œß¶?k1~Ñbü˜Åø‹³Ÿà­’oBå‹Qôâù(u1ª\Œ—ŒE¸a<ÂD„ÉÙÎ+ ߨp *\‚ — Â%¨p *\‚ — Â%¨p *\‚ — Â%¨p *\‚ — Â%¨p *\‚N^‚þ]‚— À%(ð­Eø U.A•KPå |åRôàRôàŠ»ñ×düu/ÊXz[–¡‚(h Zzþ‰±µ¬@+0þKeT°ƒ»_¾5/ÅvKQóJtÌRl¼R¾5¯ÄW.ʼn±òtÎRœKq:¬Ä·-Åé°ã¿ ]¹ üLJ»áNl· ?aª_v?Ât„‡ÐËPË2Ô² µ,Cÿ-CõËÐËPË2Œð¥«äÐèÀeò0*KÑËPÇ2œ‘ˤä–ã<\Ž_³½¸gÇr¸?d9Fy9Fy9Fy9º|9Ž·Ý»=¶º}¼U.}¡Êå¨r9ª\Ž*—£Êå¨r9úx9Fy9Š\UåÚ"ÚÕ˜s«±ÍjÌ¹ÕØ°¿¦uÔd½¯®X5yj^¬ÆH­–£ ËWã÷®F¿¯ÆY³sq5ÎšÕøÑ«ñ£WãÔY_^ƒÁ¬Á¡jðókpª× j0H5舌m z£c[“uI\3A ¨Á¯¯Á¯¯Á¯¯Á¯¯ÁÕà××à××à××à××à××à—ÕàGÕbÌkÑ¥µøZôk-F¿[‹S =\‹ó _T‹“¡ßV‹3¢_Y‹¾®Å÷®Áù·=²=²=²=²=²=²=²=²]½ݲݲ3j úf úf ú¦}S‹_Y‹e T‹ªEÕ¢ƒjÑAµè ZtP-:¨çL-¬V‹Ó»gO-ú¥ýR‹~©E¿Ô¢_jÑ/µè—Zéü„ZT_‹ÂkQs-Ê­E¥µ(²õÕ¡´:|[¾¨ßQ‡î¬COÖ¡ëÐuèº:ôZ:¬}U‡ZêPKj©C-u¨¥µÔ¡–:ÔR‡ZêPKj©C-u¨¥µÔ¡–:Ô²=´³ý²]²½±±}°¥­EikQÚZ”¶¥­EikQÚZ”¶¥­EikQÚZ”¶¥­EikQÚZ”¶¥­EikQÚZTµ]²µc´ó#³Ý´Ý´ÝTï¨Çå°_TËa=¾­—Ãz|e=V¸z|o=.‡õøòzLÍzTP©Y2êqÖÕ£–zœuõ(¨g]=ªªÇYW^«ÇYW"ëqÖÕ£ÿêqÖÕ£ëqÖÕ£'×ã¬[ß±}º?f=:v=~Ñú¬w}ýl|ä>mœÄ›$N8IâÍo•8Eâ§Jœ&ñ‰÷I|@⃖8C⣗8[ⓟ–ø¬Äç%¾(qŽÄ¹_‘8_b…Ä*‰Õ!VHýR…Ô_!õWHýR…Ô_!õWHýR…Ô_!õWHýR…Ô_!õWHýR…Ô_!õWHýR…Ô_!õWHýR…Ô_!õWHýR…Ô_!õWJý•R¥Ô_)õWJý•R¥Ô_)õWJý•R%ê¿d¾qô*ØŠ+VeÓÅ]%±ÏÊ…²Ô_)õWJý•R¥Ô_)õWJý•R¥Ô_)õWJý•R¥Ô_)õWJý•R•Ô_%õWIýUR•Ô_%õWIýUR•Ô_%õWIÿWIÿWIÿWIÿWIÿWIÿWIýUR•Ô_%õWIýUR•Ô_%õWIýUR•Ô_%õWIý ÆJ”šÈù¿@*_0^¢Ô¿`¢Dù î”(5/¸K¢T¾àn‰Rÿ‚™¥ÎI”jÌ’(5/xB¢T¾à%‰Rç‚—%Jµ æI”š¼*Q*¯–𫥿j©¹Zj®–š«³š}v)–_Q§­û¿?ÆéïäûÈo¨–ê«¥îjé÷j©¾Zª¯–ê«¥új©¾Zª¯–ꫳ꣬a02§z£êMªãU'¨NT¤:SõQÕÇTW¥:[õ Õ's­Öý«uÿjÝ¿Z÷¯Öý«uÿjÝ¿úû¿õ«çäòœ¶ÐI1DLÔç eŒÊUËßÕsdïyùöósyA[ùÞóÿ·wµŒjµŒjµŒjõ+ÿs\c±CE¾CÖÎg‘œf‹ò!’¡¯žÿ?‡„jÆa|³a–ýÖýdðåƒW)Q&è¢ÙRì)¯ææ\n×V~Œ›ÿO±¯IÌÿ^ “‘Ù½•{ó¥~³ûJ;,»q´£†b­éŸÝOÚÑøó‹ /Iœ#ñe‰s%ΓøŠÄW%ΗøšÄ ‰•«$.X-q¡D,/_L»SâT‰wIœ&ñn‰÷H¼Wâ}ï—ø€Ä锸ć%>"q†Ä™•ø˜ÄÇ%Î’8[⟔ø”D,>—ŒÈnÁmŸì¾ÙÏnœ­4‡eÁ­^€?‡" –ÐM„#¤;Ȇøó’ì6Û –8Tâ@‰£ó<ë†J(_1_6ìrÙE,\O®OðçP„Áh†÷vCÅ÷Íîüã~_L¾gðÀ,×ox‡,w±wŠ}# Å!/ɶ1Bþ‰ßs¶€Ò BÈN7f§Æ¨Ñ0óà[ ³sy²ðI,ÙeQÛ(‹ÚFYÔ6Ê¢¶‹Z'Jœ$q²Ä›%Þ"ñV‰·Iœ"ñv‰wH¼SâT‰wIœ&ñn‰÷H¼Wâ}ï—ø€ÄéÝî§Æîg<€Ùˆ¿6á¯_~Å“™ß~GøáO„¿þFøa3Â÷)Úaà°1 ë?ºcÿaý†_E>¿©šš*©»ê¨»G·xNZ/k«RZsu{éç¦y?ÏÓ-ò3þm-“Ö«º½œñMk$7_sHîCɽ¦¹O$·]rù‘š'­Ê|‹fƒ±E³’«ÒÜm’»Cr t¯¼'ªµ•ÏÍ…ºý;²}>ú‹4·Frù7¿žïU²‹´ÞÐÖîÒzS[{Ië­|ï’rì]ÒMr‹5'ó©ä0É-ÑÜ9’›!¹¥š[*¹¼o–iîÉm–ÜrÍý+¹¼ÂyŽåx|äVjîqÉ=)¹·5'÷œï»*ÿI±´ÞÑÖ±ÒZ­­|Ž×ä{'2Ç“’[£[œ%­Zmõ–VnlŸÏÿµºÅ$i­ÓV~v×ëör&'ùø­×-^”Ö»Úš#­÷tûWeûù’{_·ÈÏÅ´õ†´>Ôí¥‡“üŒüH·Èûûcmå³ýmm”Ö§y+4“ÖgÚÊWÐÏó#‡–8rh%¹/t‹TZ_j+ïׯtûseû‹$÷µæ®“\~N|£9Y[šçkË·y®åȵ¼ArßiîaÉåû~¯¹_$—õ†¼ŠVùUà‡|‹V-°E«¼Î5·Ÿäò³õ'Í!¹|Ö# •ÖFm]&­MºýhÙ>¯ðÍ},¹üJö«æ6H.¯ð·üH­ó^þ=ߢõŽØ¢u^áš»RrùÑÿÔÜ3ȵÉôWž+<„\!ï“¿5'ç!ßîŸ<—ÊØ¥ùØmÖ\Arù÷nÑÜ1’ËÇñ_ÍÉŒHó±5ÿéÙÒÚ¦­s¤µ][ç¡eŠ´%óÕ=Öõr,ù]Æê¯HKŸˆ¤²²}&’®“íåje"Ýâ#ié£T\A*W+S¬[ü!-Ò–ô„ioß¶'¶o+×pÓPsr o›WÚHsKnäkn¤äFINŸv´½Cr2¦©æä溭Ì:ÓLsò¡m^‹>ü(•+héÁ’Ó§¥'IîtÉéãÒñ’“5Ãèó]kÛ5?^ójúH¤Ý-ȵ—YkvÊ÷jIK‡´o([4’\ÝB®+F…´?IZ©¶N‘–>i/ãÔ¾—äJu Y‡Í.º…Ü„¶—õÅ쪹{$wŸäÊt¯—¤¥ÏBÚ/’-ò±Ñ‡!픜¬„¦}žÛ«¹ùoÞ=?R‡éÒÒç!~—-ò¾Ô"×#×1?’>é(ײŽùvúH¤ÓáÒÒg"Äùu’«¸Ñ‡"åû;‹¿55'v:w’œ>霟út¤ók²Eþýúx¤KäºÈ<7嚯ÛåTÉéc’.×JîzÉés’.«$—÷Ö¾ù7vɉ>#)—•ºüjÉí¯9q6岚ò½Êó½ô1ÉÉrU;9ÏåÏI<&Iòß›?&I"dbÉäOI²Ëx–!Éšg ÓP2‡å<[IKæð<ƒÛô¤©dŽÈ3Í)‘Lþà$Á}{’H&n’i•7šKã輑O•còFKiäOIY`Mþ”$iCî ™ü!I‚•>ÙI2'ä<LÚHæÄ<ƒU9Éë¤<Ó™RÉœœgvAfWÉœ’gÊÙM2=òL;dÚK&‚’äsï´¼!·Cæô|Û=±­˜<“?@Iö–Fþ%Ái—tL¯üãŽÒÈŸœ$ðqgÉäN’.È”Kæì<ƒ'‰XF“? “³€LÚdÎ?“Bfù3I3—ŸIÛÌØgRšyùLvÉì{&»fŽ=“²Ì¤g²[æË3i—YñLÚgî;“Ý3ÛÉ™ßÎdÏÌhg²Wæ­3Ù;3ՙ쓹éL:d:“Ž™sΤSf™3霹äLºd†8“òÌgÒ53¿™tË\o&ûfF7“ý2‡›Éþ™µÍä€ÌÓfr`fD29(s™œ‹LÉÜC&‡f!“Ã2ÉáÙe>“#²«x&GféLºg×àLŽÊ.±™]A39&»Lfrlv-Ìä¸ì‚—ÉñÙU-“² X&'fW©LNÊ.B™œœ]i29%»dÒ#»Zdrjv1Èä´lÅÏäôlAϤg¶jgrF¶(gÒ+[s393[D39+[)39;[ 3Áz—É9Ù’–ɹ٪•ÉyÙ•ÉùÙz”ÉÙº“É…Ùb“ÉEÙz’IŸlÉȤo¶*dÒ/[2¹8›ê™ôϦt&²Y›ÉÀlbfrI63Ä&»Ó)¹” ¦Î`6}3Â&³I%CÙ Èd›K2ÎæÒLF°’Éel†e2’͈LF±ÉÀæeèt6s¡²yú›ùЇټ}„Íè 6‹¡3Ù,>Êfô16Ë¡³Y Åæmèl6ï@Ÿ`S}’M-ô)6k¡O³©‡>Ãæ]è³lÞ‡>ÇæCèól>¾Àæ3è‹l¾€¾Äæ+è6ß@_fót.› Ðyl~„¾Âægè«l6Aç³ùú›_¡l~‡V²ùZÅæ/è6C«Ùl†.dó/t›mÐ×ÙAß`k¡o²õÐ·ØÆÐÅl º„mCèR¶¡ËØ6….g[]Á6®dÛú6Û–ÐUl[Cßa»#t5Û¡5l Ð5lÛBkÙî­c[]˶tÛÝ¡õl÷„®g»7ô]¶ ï±í}Ÿmè쎆~ÈîjèGì&B?f7ú ;9ß?e'çûgìnƒ~ÎNÎ÷/ØÉùþ%;9ß¿b'çû×ìî‚~ÃNÎûoÙÉyÿ»{ ß³“ó;9ÿ`'çÿì€þÄn:ôgvB7²“y±‰Ì‹_Ø=ý•ÌߨÉüøÝ£Ð?Ø=ý“Ì“¿ØÍ†þÍNæË?ìd¾lf÷t ;™7ÿ²{º•ݳÐmì^‚ng—]­²užÝ¨a‡óÙXvuPÇçµÉœÂ:hÄç·‰Ù­‡³{Jì>€6`÷´!;œç¦;œç¦1;œç¦ ;œç¦);œç¦;œç¦„ÎsÃìpž›„ÎsØá<7ÍÙá<7-Øá<7-Ùá<7­ØýmÍç¯Ù½îÈç±Ù‰½ƒîÌç³iÃ>‚Øã¼6)ûbh[ö8¿M)ûÐ]Øã<7»²o-cóÝìÆ¾ ´{œ÷¦=ûfÐÝÙãü7{°gèžì1Ì^ìtoö˜fö- Øc^˜Žì[A;±Çü0ÙïíÂóÄ”³ß Ú•=æ‹éƾ t_ö˜7f?ö)tö˜?æö¥ÐÙc™ƒØï =˜=æ“9„ýnÐCÙc^™ÃØ·‡ÎóËÁ~è‘ì1ÏLwö{AbùfŽf¿ôö˜wæXö¡Ç±¿z<û¾ÐØ_ =‘ýèIì/žÌþRè)ì‡@{°=•ýèiìGBOg?Ú“ýåÐ3Ø_ íÅóÙœÉþZèY쯇žÍ~,´7{Ìgs{Ìgs.{Ìgs{Ìcs>{Ì_s{Ì[s!{ÌWs{ÌSÓ‡=æ§éËóÒôcùh.fyhú³ÇuÊ `ùg²Ç¼3—°Ç|3ƒØcž™KÙã:e³ÇuÊ aùf†²ÇõÉ c?:œý«Ðìq]2—±¯„Ždë“Å~!t4û7 cØ¿½œ=®Wæ ö¸^™+Ù¯€^Å×)s5{\§Ì5ìe^_Ë^æóuìe_Ï^æï ìeþŽe/ów{™¿7²—ù{{™¿ãÙËüÀ^æïDö2'±—ù;™½Ìß›ÙËü½…½Ìß[ÙËü½½ÌÛ)ìeÞÞÎ×#sG2oïäHæëTŽdžÞÅ‘ÌÏiɼ¼›#™÷p$óð^ŽdþÝÇQgèýaÝ7pTÎQWèƒuƒ>ÄѾЇ9ÚúGûCgptt&GBåè èc }œ£C ³8::›£Ã Opt8ôIŽŽ€>ÅёЧ9ê}†££ Ïr„ëyŽ£c Ïst,ôŽŽƒ¾ÈÑñЗ8::‡£¡/stt.G'Cçqt ôŽz@_åèTè|ŽNƒ¾ÆÑéÐ ŽzB+9:ZÅQ/èŽÎ„Vs¿grAú}¤ß_ç‚ôû\~“ ÒïoqAú}1¤ß—pAú})d½[ÆYç–sAÖ·\um%d={› ²Ž­â‚¬_ïpAÖ­Õ\õª† ²N­á‚¬Oµ\u©Ž ²­å‚¬Cë¸ ëO=dÝYÏ\ïÍ»\q 2ÞïsAÆù.Èø~È׸ ãù1d?ႌߧ\qûŒ 2^ŸsAÆé .Èø|É—¯¸ ãñ5d¾á‚ôÿ·\~ÿŽ ÒßßsAúyΆþÀ…s ?rá<èO\¸ú3d½ÜÈY/7qAÖË_¸ ëå¯\õò7.Èzù;d½üƒ ²^þÉY/ÿ€—sAÖ˸ ëåf.Èz¹… ²^þËY/·rAÖËm\õr;²›‚Ìüqa<Ôp>ÉZ.À'YǬ§Ös멸€õÔÆ\Àzj‹¹€õÔ°žÚ\ÀzjrþÇ6âÖUÛ˜ ð?¶ °¾Ú¦\€ÿ±Í¸€uÕ–pëªe.`]µ °®ÚÀ¬«¶9°®Ú\Àºj[rëªmŬ«¶5°®Ú¸€uÕîȬ«v'.`]µ;sëªmì«¶À¬«6åÂëж\€²¥\Àý€Ý… K¡»r÷¶Œ ¸°»qa´VCÛsë«Ý X_í\Àúj÷äÖW»°¾Ú½¹€õÕî쯶°¾ÚŽ\Àúj;që«í̬¯¶ °¾Úr.`}µ]¹€õÕvãÖW»/°¾Úý¸€õÕîϬ¯ö.`}µrþßĬ³ö`N1Ÿí!œÂߨC9ż¶‡q cçóÛÁ)ü=’SÌsÛSø{§˜ÏöhNáOì1œb^Ûc9…?±ÇqŠùmçþÄžÀ)æ¯=‘Sø {§˜ÇödNá'ì)œb>ÛœÂOØS9ż¶§q ?aOçó×öäë³=ƒSÌcÛ‹S¬ÏöLN1ŸíYœb}¶gsŠym{sŠõÙžÃ)æ¯=—S¬¯öNq¿cïçTÖ‰8ÅýŽÎ©¬rŠûû§²n<ÌéóÐG8•õc§x~`gr*ëÇ£œâ¹}ŒSYGçTÖ‘YœâùÍ©¬'OpZ}’SYWžâ´ ú4§²¾<é¬/Ïr*ëÊsœÂ·Ùç9•õåNe}y‘Sø7û§²ÎÌá>ξ̩¬7s9…Ÿ³ó8•uçNey•SÜ—ÙùœÊ:ó§xÞ`+8•õ¦’SÅ~Å¥¸¯²_s)üŠý†KáWì·\ ¿b¿ãRYï¾çRYç6p©¬s?p©¬s?r©¬s?q)|‹ý™Ká[íF.…_µ›¸TÖ¯_¸TÖ¯_¹¾ÑþÆ¥ð öw.íýƒKáìŸ\Úú—Â7Ø¿¹´?ô.…°›¹t t —ʺô/—ʺ´•Ke]ÚÆ¥².mçR¬K®ˆK±.9Ã¥X—œåR¬KÎqÎç¹ ç¿‹¸ ç¿‹¹ ç¿+æ2œÿޏ ç¿kÀe8ÿ]C.«†6â2ÌטËA›p®·®)—á~Æ5ã2ÌWÂe˜޹ óÃ%\†û¸ óÄ5ç2ÌׂË0O\K.Ãږ˱þºR.Çúëvár¬¿nW.Çúëʸë¯Û˱þºv\Žõ×µçr¬¿nw.Çzëöàr¬·nO.Çzëöâr¬«no.Ǻêöár¬«®—c]u¹ëªëÄåX·\g.Ǻåºp9Ö-WÎåX·\W.Çzäºq9žgº}¹\Æe?.—qÙŸËe\àr—¹\Æå .—q9˜Ëe\ár—C¹\Æå0.—q9œËe\Žàr—#¹\Æ£;—KÿÅåÒÿGs¹ôÿ1\.ý,—K¿ÇåÒßÇs¹ô÷ \ŽõÈÈåX‡ÜI\ŽuÈÌåð?î.ÿÚ#Áeךà.Æ–àâëNOpãz&¸»3ÜÁ¸^ .ÄîÌä,ÈY ìµ;;ÁUÙõN`²Ý9 ®ÍîÜVÛ—à íÎÇKFì.Hpv&˜NÉõI0™\ßsÉõK0•ÜÅ f’ëŸ`"¹ 摘`¹KÌ"7(Á$r—&˜Cnp"ShH"3hh"hX"ógx›îF$rÖ]–À¬»‘‰œ{£Xv7:ÓknÑåìÆT]ÑÛ%Wöìí“«zöŽ’«{öŽ“kzö.N®íÙ›’ëÀ¤$×CIny’Œl’Œe’ܼ$¹ \I2@I2 I2ðH2 ÔH2 Hr3Øäà É­ @’Û€~$SÀ|$·óHîß‘Ü °#™ –#¹ øF2 ÄFr7 äpɽ2’ûÀ`$÷»Hi‘Lb‘<¶"y8Eò0Šä@É ÐÉLÉ£`"’Ç€A$ƒ|HfyHfƒrHžØ< ¢!y (Cò4è…ä ɳ ’ç'$σGH^‚¼ê y ¸A2„Aò2 ‚d.8‚dÐäÐÉ«À’ùà’×$ ’J@IÞþOà…ÿ¤ïø' ñZ²ïó'¯ãþä ¼µŸ¼‰×õ“·ðž~²/è'Kðf~²¯ä'Ëð.~²/á'+ðÞ}²/Ü'oãMûd^®OÞÁûôÉj¼BŸÔà­ùd ^—Ojñ†|R‡—⓵x>Y‡×à“z¼ùž¬ÇËîÉ»x¿=y¯´'ïã-ö伸ž|ˆ7Ö“ð’zò1ÞKO>Á éɧx=ù /Ÿ'Ÿã}óä ¼hž|‰7Ì“¯ðRyò5Þ#O¾Á«ãÉ·xg<ù¯‰'ßãÍðd^ O~À[àÉxñ;ù ïz'?ã%ïd#ÞîN6áµîä¼Ï-çÛ5ɯxw;ù /m'¿ãmíä¼ ü‰w Æ&AÆ%CnLþÜ”l†ŒO¶@&$ÿB&&[!“’mÉÉvÈÍÁAo Æ@o ÆBo ÆA§ã¡·Aï&†ÞL1tj0½+˜ÐiÁ4„ÞL#è=Á4†ÞLè}Á4…ÞL3èÁ”@§ÃЃI  ÓúH0- 3‚i ©úh0­ ©>Lkè,ÕÙÁì}"˜¡O³ô©`v†>Lè3Á Ï“BŸ ¦-ôù`J¡/³ ôÅ`v…¾LtN0»A_¦tn0í¡ó‚ÙúJ0{@_ fOèü`ö‚¾¦ZÌÞÐÊ`öVÓº ˜ŽÐê`:AÓº(˜.Ð׃)‡¾LWè›Átƒ¾̾ÐÅÁì]ÌþÐ¥Á]ÌÐåÁ]ÌÁЕÁ};˜C¡«‚9 úN0‡CWs´&˜#¡k‚é­ æ(h]0GC×s t]0ÇBëƒ9º>˜ã¡ïsô½`N„¾ÌIЂ9úa0§@? ¦ôã`N…~ÌiÐOƒ9úY0=¡Ÿsô‹¿¦ÿe0gB¿ æ,è×Áœ ý&˜ÞÐoƒ9ú]0çB¿æ<è†`·þÌеžŸ‚¹ús0A7bMç¢MÁôþL_è¯ÁôƒþÌÅÐ߃éý#˜Ð?ƒý+˜K 3úO0—B73º%˜!Ѓ ÝÌ0è¶`†C·çÇ3EùÏ2&/רü¸ÆåÝa|¾Ÿ‰òï1q^—)f”‚¹ Ú ˜‘ІÁŒ‚6 f4´q0c M‚¹Ú4˜+ Í‚¹ZÌUPæjhÌ5Ðw—ižÿ~ÓBëm©u¶Ê»Ý´æZèÁ\Ý1˜ë¡;stç`ÆBÛ3ZæFhÌMжÁŒ‡–3ºK0¡»3 ZÌdènÁÜ mÌ-ÐöÁÜ Ý=˜Û {3ºg0·C÷ æèÞÁÜ Ý'˜©ÐÁ`ÜMÇ`¦A;s7´s0÷@»s/´<˜û ]ƒ¹Ú-˜ û3º_0B÷æ!èÁ< =0˜G 3zp03¡‡ó(ôÐ`ƒÌãÐÙ="˜ÙÐ#ƒyÚ=˜'¡Góôè`ž†Ì3Ðcƒyz\0ÏAæyè Á¼=1˜¡'óôä`æ@O æeh`æBO fô´`^ž̫ОÁ̇žÌkÐ^ÁT@Ï ¦zV0UгƒYíL5ôœ`BÏ fô¼`^‡žÌÐ ‚yza0oA/ f1´O0K }ƒY íÌ2èÅÁ,‡öft@0+¡ƒyzI0« ƒ‚yzi0«¡ƒƒ© f th0µÐaÁÔA‡³:"˜uÐË‚©‡Ž f=tT0ïBGótL0ïC/æèÁ|½2˜ Wó1ôê`>^̧Ðkƒù z]0ŸC¯æ è Á| ÌWÐqÁ| ½1˜o 7ó-t|0ßA'ó=tb0 “‚ù:9˜¡Ùåÿ'hvùÿš]þ7B³Ëÿ&hvùÿš]þ…f—ÿß Ùåÿwhvùÿš]þáFLvù‡1Ùå~Äd—“]þáHLvù‡%1ÙåžÄd—˜“]þáJLvù‡-1 [b¶Ä<,l‰™,l‰™,l‰y4XØóX°°%æñ`aK̬`aKÌì`aKÌÁ–˜'ƒ…-1O [bž¶Ä<,l‰y6XØó\°°%æù`aKÌ Á–˜ƒ…-1/ [bæ [b^vÄÌ 6ÄÌ öü,ì‡y5XØ3?XØóZ°°¦"XØS,쇩 öÃ,öÃT ûa ûa ûa^öü,ì‡y3XØóV°°fq°°fI°°fi°°fY°°fy°°fE°°fe°°æí`a;̪`a;Ì;ÁÂv˜ÕÁÂv˜š`a;Ìš`a;Lm°°¦.Xس6Xس.XØS,l‡Y,l‡y7XØó^°°æý`a;ÌÁÂv˜ƒ…í0 Ûa>¶Ã|,l‡ù4XØóY°°æó`a;ÌÁÂv˜/ƒ…í0_ Ûa¾¶Ã|,l‡ù6XØó]°°æû`q™7‚…í0? Ûa~ ¶Ãü,l‡ù9Xس1Xس)X¹Îþ¬¼1úk°°æ·`a;ÌïÁÊõù`a;ÌŸÁÂv˜¿‚•ëßßÁÂv˜‚…í0›ƒ•ëã–`åúùo°°fk°ðf[°ðf{°ð¶(X\Ï­ ×YkƒÅuÖº`á3¬~ÀFÁâúoã`á3lq°ð–‚…ϰ ‚…ϰ ƒ…_°‚…ϰƒ…O°M‚…O°Móßo› ¿`K‚…_°,ü‚M‚…_°!XøÛÀî,|€Ý5Xø[,|€Ý-XøÛ.XøÛ>Xø»{°ðv`áìžÁÂؽ‚…°{ `÷ >Àv>Àv >Àv >Àv>Àv >À– `» `» `÷ >Àî,|€Ý?Xø{@°ðöÀ`áìAÁÂ؃ƒ…°‡ ` >À,|€=À,|€=>Xø{B°ðöÄ`áìIÁÂØ“ƒ…°§ `{ `O >Àž,|€==XøÛ3Xø{F°ð¶W°ðöÌ`áìYÁÂسƒ…°½ƒ…°ç `Ï >Àž,|€=?Xø{A°ðöÂ`áìEÁÂØ>ÁÂؾÁÂØ~ÁÂØ‹ƒ…°ýƒ…°‚…°ƒ…°— ` `/ >À>À >À >À >À>ÀŽ>À^,|€,|€,|€,|€,|€½ÄÞ,|ˆ½_÷@÷Ÿ®û?¨û?¤û?¬û?¢ûÏÐý³ë?|ŒÍ®ÿð16»þÃÇØìúc³ë?|ŒÍ®ÿð16»þÃÇØìúc³ë?|Œ}Z÷&¿Ý³Ùõ¾Æf×ø›]ÿáklvý‡¯±Ùõ¾Æf×ø›]ÿáklvý‡¯±Ùõ¾ÆÎÓý³ë?ü}5¿-µÙõ>Çf×ø[|Ž­ >ÇVŸcŸc«ƒƒÏ± óû?»(8øûzpð;öààwì›ÁÁïØ·‚ƒß±‹ƒƒß±K‚ƒß±Kƒƒß±Ë‚ƒß±Ëƒƒß±+‚ƒß±+ƒƒß±o¿cW¿cß ~Ç®~ÇÖ¿c×èþµÁÁ÷غD–õµÁÁþØuòÄÉÖd×'²˜¿›Ë{¹¼ŸÈÊþA.&²ž”È2þqp°Mö“DVñOYÄ?Kd ÿ<—/rù288+ûUppVöëàà¬ì7‰,Øßæ7Ôö»¼ù}"— ‰¬Ê?$rQú1/þ§D.E?'r%ژȅeSþÜÀþ’ß@Û_¹ný|›ý=8ø6ûGpðmöÏààÛì_ÁÁ·Ù¿ƒƒo³ÿßf7ßf·ßfÿ ¾Ín ¾Ín ¾Ín¾ÍßæLpðmÎßæ\pðmÎßæ¢ààÛ\|›+¾ÍQpðm®Apðm®apðm®Qpðm®qpðm®Ipðm®ipðm®Ypðm®$8ø6ÇÁÁ·¹$8ø6‚ƒos̓ƒos-‚ƒos-ƒƒos­‚ƒos­ƒƒos;ßæv ¾Íí|›Û98ø6×&8ø6W¾Í¥ÁÁ·¹¶ÁÁ·¹ÒààÛÜ.ÁÁ·¹]ƒÃ|ueÁÁ·¹Ý‚ƒos킃os탃os»ßâö¾Íí|›Û+8ø6·wp˜—nŸààÛ\‡ààÛ\Çà0쮓~çààß\—ààß\ypðo®kpðo®[pðonßààßÜ~ÁÁ¿¹ýƒƒshûÀààãÜAÁÁǹƒƒÃiå >Î|œ;LÛ‡?çŽ~Îüœëüœ;*8ø9wtp8ÍÝ1ÁÁϹcƒƒŸsLJuÃüœ;!8ø9wbpðqî¤ààãÜÉÁÁǹS‚ƒs=‚ƒs§çN >ΦŒëæŒ;#8Ì×KõÌà0‰ÜYÁa¹³ƒƒŸs½ƒÃ¤wç‡éîÎ ~Î&¤;?8ÌwAp˜vîÂà°¸‹‚ƒŸs}‚ÃJàú‡¥Àõ ³ß]üœëüœüœüœ»$8ø97(8ø9wipðsnppXÜààçÜÐààçܰààçÜðààç܈ààçÜeÁÁϹ‘Áaåp£‚ƒŸs£ƒ›Þs®{0;SÿC®þC®þC®þC®þC®zÿ‡\ý@®µúHQ«µúDQ«OµúLQ«ÏµúBQ«/µúJQ«¯µúFQ«oµúNQ«ïµÚ ¨ÕŠZý¨¨ÕOŠZý¬¨ÕFE­6)jõ‹¢V¿*jõ›¢V¿+jõ‡¢V*jõ—¢V+jõ¢V›µÚ¢¨Õ¿ŠZmUÔj[ŽZ¹$£HQ+£H•U¤Ê)R婊©Š©*V¤Š©j HUCEª)RÕX‘ª&ŠT5U¤ª™"U%ŠT±"U‰"UA‘ªæŠTµP¤ª¥"U­©j­HÕŠTí¨HÕNŠTí¬HUEª ŠT¥ŠTµU¤ªT‘ª]©ÚU‘ª2EªvS¤ª"Uí©Ú]‘ª=©ÚS‘ª½©Ú[‘ª}©ê HUGEª:)RÕY‘ª.ŠT•+RÕU‘ªnŠTí«HÕ~ŠTí¯HÕŠT¨HÕAŠT¬HÕ!ŠTªHÕaŠT®HÕŠT©HUwEªŽR¤êhEªŽQ¤êXEªŽS¤êxEªNP¤êDEªNR¤êdEªNQ¤ª‡"U§*Ruš"U§+RÕS‘ª3©ê¥HÕ™ŠT¥HÕÙŠTõV¤êEªÎU¤êP¤êCEª>R¤êcEª>Q¤êSEª>S¤êsEª¾P¤êKEª¾R¤êkEª¾Q¤ê[Eª¾S¤ê{Eª6(Rõƒ"U?*Rõ“"U?+RµQ‘ªMŠTý¢HÕ¯ŠTý¦HÕïŠTý¡HÕŸŠTý¥HÕߊTý£HÕfEª¶äH+¼2 ä ~Èü+A3Š©2ŠTYEªœ"U^‘ªH‘ªX‘ªbEªH‘ªŠT5T¤ª‘"U©j¢HUSEªš)RU¢H+R•(R©j®HU EªZ*RÕJ‘ªÖŠTí HÕŽŠTí¤HÕΊTµQ¤ª HUªHU[EªJ©ÚE‘ª]©*S¤j7EªÚ)RÕ^‘ªÝ©ÚC‘ª=©ÚK‘ª½©ÚG‘ªŠTuT¤ª“"U©ê¢HU¹"U]©ê¦HÕ¾ŠTí§HÕþŠT HÕŠT¤HÕÁŠT¢HÕ¡ŠT¦HÕáŠT¡HÕ‘ŠTuW¤ê(EªŽV¤êEªŽU¤ê8EªŽW¤êEªNT¤ê$EªNV¤êEªz(Ruª"U§)Ruº"U=©:C‘ª^ŠT©HÕYŠT­HUoEªÎQ¤ê\EªÎS¤ê|Eª.P¤êBEª.R¤ª"U}©ê§HÕÅŠTõW¤j€"U©ºD‘ªAŠT]ªHÕ`Eª†(R5T‘ªaŠT W¤j„"U—)R5R‘ªQŠTV¤jŒ"U—+Ru…"UW*Ru•"UW+Ru"U×*Ru"U×+Ruƒ"Uc©§HÕŠTݤHÕxEª&(R5Q‘ªIŠTMV¤êfEªnQ¤êVEªnS¤jŠ"U·+Ru‡"Uw*R5U‘ª»©š¦HÕÝŠTÝ£HÕ½ŠTݧHÕýŠT= HÕtEªT¤ê!EªV¤êEªf(R5S‘ªG©zL‘ªÇ©š¥HÕlEªžP¤êIEªžR¤êiEªžQ¤êYEªžS¤êyEª^P¤êEEª^R¤jŽ"U/+R5W‘ªyŠT½¢HÕ«ŠTÍW¤ê5Eª*©ªT¤ªJ‘ªŠTU+RµP‘ªEŠT½®HÕŠT½©HÕ[ŠT-V¤j‰"UK©Z¦HÕrEªV(RµR‘ª·©Z¥HÕ;Š(­V4©FѤ5ŠÕ*ZT§hÑZE‹Ö)ZT¯hÑzE‹ÞU´è=E‹ÞW´èE‹>T´è£-r%óó“-r%óó³-²Ÿçh‘ý"G‹ì—9Zd¿ÊÑ"ûuŽÙor´È~›£Eö»-²ßçh‘Ý£Eö‡-²?æh‘ý)G‹ìÏ9Zd7æh‘Ý”£Eö—-²¿æh‘ý-G‹ìï9ZdÿÈÑ"ûgŽÙ¿r´Èþ£EöŸ-²›e±[e±ÿ Êb· Êb· Êb·ç(KQ޲˜e±9Êâr”Åç(K”£,q޲ç( å(Kƒei˜£,r”¥q޲4ÉQ–¦9ÊÒ,GYJr”…s”%ÉQ–£,Ís”¥E޲´ÌQ–V9ÊÒ:GYvÈQ–s”e§eÙ9GYÚä(K!GYR ,î!vmÿCYþCYþCYþCYþCYþÿ‚²Âò‘",+Âò‰",Ÿ*Âò™",Ÿ+Âò…",_*Âò•",_+Âò",ß*Âò",ß+²A–´ŽaùI–Ÿs„e£",›aùE–_aùM–ßaùC–?aùK–¿aùG–ÍŠ°lQ„å_EX¶*²M·]–"ECŒ¢*VQ§¨ŠWT%RT%VT¥XQRT¥¢* Ui¤¨JcEUš(ªÒTQ•fŠª”(ªÂŠª$ZOPT¥¹¢*-Ui©¨J+EUZ+ª²ƒ¢*;*ª²“¢*;+ªÒFQ•‚¢*©¢*mU)UTeEUvUT¥LQ•ÝUi§¨J{EUvWTeEUöTTe/EUöVTeEU:(ªÒQQ•NŠªtVT¥‹¢*努tUT¥›¢*û*ª²Ÿ¢*û+ªr€¢**ªr¢*+ªrˆ¢*‡*ªr˜¢*‡+ªr„¢*G*ªÒ]Q•£U9ZQ•cU9VQ•ãU9^Q•U9QQ•“U9YQ•SUé¡¨Ê©Šªœ¦¨Ê銪ôTTå EUz)ªr¦¢*g)ªr¶¢*½U9GQ•sU9OQ•óU¹@Q• U¹HQ•>ŠªôUT¥Ÿ¢*+ªÒ_Q•Šª TTåEU)ªr©¢*ƒU¢¨ÊPEU†)ª2\Q•Šª\¦¨ÊHEUF)ª2ZQ•1Šª\®¨ÊŠª\©¨ÊUŠª\­¨Ê5Šª\«¨ÊuŠª\¯¨Ê ŠªŒUTeœ¢*7*ªr“¢*ãU™ ¨ÊDEU&)ª2YQ•›U¹EQ•[U¹MQ•)ŠªÜ®¨ÊŠªÜ©¨ÊTEUîRTeš¢*w+ªr¢*÷*ªrŸ¢*÷+ªò€¢*ÓUyPQ•‡UyXQ•GU™¡¨ÊLEUUTå1EUWTe–¢*³UyBQ•'UyJQ•§UyFQ•gUyNQ•çUyAQ•UyIQ•9Šª¼¬¨Ê\EUæ)ªòŠ¢*¯*ª2_Q•×U©PT¥RQ•*EU(ªR­¨ÊBEU)ªòº¢*o(ªò¦¢*o)ª²XQ•%Šª,UTe™¢*ËUY¡¨ÊJEUÞVTe•¢*ï(ª²ZQ•EUÖ(ªR«¨J¢*kUY§¨J½¢*ëUyWQ•÷Uy_Q•UùPQ•UùXQ•OUùTQ•ÏUù\Q•/UùRQ•¯UùZQ•oUùVQ•ïUù^Q• Šªü ¨ÊŠªü¤¨ÊÏŠªlTTe“¢*¿(ªò«¢*¿)ªò»¢*(ªò§¢*)ªò·¢*ÿ(ª²YQ•-9ª”E®ç[sT(‹\g·+ªRôUuÞqNTkž™Íî2©“Èb!Yáz Ë¢ØiŠbÁŽ b—"ö‚â"*¨X°€ QATP bÁ.*¨¸öÞP¹v¼z÷{ϳ$÷ýgÎÉfrÊœóø¢ªø¨*ªJªJ U¥U¥U¥U¥ ªJˆªGUI ª$QUR¨*iT• ªJ„ª’EUÉ¡ªäQUÚ¢ª´CUiªR@U©CU逪²ªÊ†¨*¡ªlŒªÒU¥ˆªRBU©GUÙU¥ªJgT•¡ªlŠªòoT•ÍPU6GU邪²ªÊ–¨*[¡ªlªÒU¥U¥ªJ#ªJwT•mPU¶EU骲ªÊö¨*; ªìˆª²ªÊΨ*» ªôDUé…ªÒU¥ªJ_T•]QUvCUé‡ª²;ªÊ¨*ýQUöDUÙ UeoT•}PU ªì‹ª²ªÊþ¨* ªˆªrªÊÁ¨*QUAU9Uå0T•ÃQU¡ªªr$ªÊQ¨*G£ª FU9UeªÊ±¨*Ç¡ªªrªÊ‰¨*'¡ªœŒªr ªÊPT•a¨*ÃQMF šœŠj2Õä4T“ÓQMÎ@59Õä,ÚŸMûsh.íÏ£ýù´Eû h!ªÉhT“‹PMšPMÆ š\Œj2ÕäT“KiíÇÑ~<í/§ý´¿’öhªÉÕ¨&× š\‹j2Õä:T“ëQMn@5¹‘ö“h?™ö7ÑþfÚßBû[ií§ ªÜŽj2UåT•;QUîBU™†ª2UånT•´¿Ue&ªÊ,T“Ù¨*÷¢ªÜ‡ªr?ªÊT•¹¨* ªt"Gð‘9‚È|âDÓZlWcZ‹íjLk±]Mð…9‚/È|åDŽàk'rß8‘#øÖ‰ÁwNä¾w"G°Æ‰ÁNä~t"Gð“9‚µNä0ÁÅv5&¸Ø®ÆÛÕ˜àb»\lWc‚‹íjLp±] .zª®s†.zªþ׉&¸è©ú€ǿ}Äq  q †8P8Pƒ8P‹8Ðq Dˆ#$’ˆ)Ä4â@q BÈ"äòˆmÚ!´G( Ô!t@Øq`CÄ6Fèˆ8Ptâ€ËÙŒJçWM².cF!µíÇXÆLɳŒ™’o3¥À2fJU•1c?qoaÕ•1c¿t³¥Z“ ²%ûÁ{"[ M'È–ìwï)J“ΖºšQ- 6¥ ÛàµüÝ;ª¯ÈKDŠ, (æÞWÓÀ–÷xg”)×Èzcìíyw¬¯”­±XU¢Òj-h®†Ð9 @" ­dñHÄ£•cK¥’eE­µcÛZMáêÄ—†XXøÒ±V ¾tœZóÒ†*ól¤¡”Kô±Œ¯ÈŤåí7ª-jšÝÕôXù¦òöcÕ– 3ìÂ=Õ•fêÂ,»[Èl‘{­ê}ÿ÷÷ë»0·.ÄZÿjëg•¯z`ýg•¯zpýg¥÷Äg•¯šg/ñPÅkg»*s®ë:»0Ÿîp·_Õ»ÜU}ÊQJ—;¢”©èˆ.±EeGlYÙ[UvÄÖ•1´²#†UvÄpu…å.È–NUPi7± Ú¤â&ªŸ,ßDõ’òMT/³›pAµ"D«¿±[èC©þ¹|C5VÜPMQ7äêÖÔ[Ýšu[ ÞBŠ´&ª¯f„†I}5ʧ®YYq£ï­#®æs]WŒ3}5ŠC¬ù»<ð²µÊV«ÕÀÏ0S, ,"—¯6§ëêbùj5ÏjgÊÑDéäùŠNÚ2d”Nߎø°¢xFíA‹„5T=&¤@ó:^ÅÒ~£\_¬ëÖ3Ñ §„¬ƒ¢ AK…ž6´h™Ð3†6=+¤¼ôŽ ç…–*‚^Rz ô’ЈêA¯½j£èµ¬¿ky–8ùjÐú© ±ò¨òpòî-Ï oayNx–¾Ë¨0E*f:’ $’º½_+†“÷»¡ T1œÌhAÝ+†S°¿ÐœŠá<(´Hà ô¸ÐÒŠAh¬+*U Œäೊ™¬©NU£4œ(Œ«H&ÄL#(¤ª«4¸®|X-R±ŽU ¹µÏ¸uPéç÷1û‘ûúA¥_ºÇ²±±åA¥=· 5¬©aì—òÐÒOn[Ðå¡¥_ß¶ÌåLyhéµ1û¹èú¡•­>\hpyhe«‡×ÐbÕ¸BƒÊªòpʆ–ï— w(§l¸‹­¢1¡²îC‹ŠŒ:ñ*–[uæºÂ;C=‘Èx •ÝZnrDÄc8VÈ¢¨#C%Q‡úð7)Ì3œhˆ”Çð!{äD„<† b íymÁ;²œîhK®+Ü0Ôô&á1T†t¨¹JÀc¨¨îPSŽ|ÇPIÝ¡æñŽ¡…õF¤;†Íº®pÇðC¡ ‘í~!d‰¨ÑŽ¡¢*C‹XŽHvŒëÃ[rbÔ”ÒJHºc±Ù0%ñ¦•´íÝ ÓÓ1=_ì>^ÉõÉýÔPŸ¤ÝlšC ×Cs©¡íjú]±`Ú¥ß{бŒ6¬—o?¶Ø6b¹WÏôPi>¥íUZ@}øÌb aÚ|f†Š=L+e‚{PºL¥EÔ×î>3AìQ˜VòŒrí½Ç`Z32/‹=Î+)eÛ{ÂÕˆtG‘bŸ½Å°Nb uöž„m.ÖEì)÷J‘Ò›½%”Íì-¥äîùiZktFn¾.ƒéÄ+rï÷˜ú!ú]ìY^iJϹY½ßìábÏÃô¸ÎN[Ó1û‡Ø ŽåÔÖ%}{/ÂÚˆ¹yó’û‹9·ò¼L ­<¹b¯Àô/wˆØ«´:L¥×¨1H5Ž{¦*7Nl­Ü<{ƒú&•sóëMØD±¹boÑÊÍ€•ÔÐ È-[SB{îI±·iµD¥w¨ñ´j¸Ïÿ]Ør±WÅVÃÔ'9÷‚•Ä\Ÿ| ë/6H옾æ/û¦Q•wkèg޵ÕÚþ±Ïk¯u°ý­b_ÀÜìb_:VИ)¸çÝW0=ï Y±¯azÏ7¾iCRpkÁ·0Í„ÂbßÁ4. Þ‡*všØ˜‡ ‹ýÓ¬/¸^ü¦Y_p;…Ÿ`o‰­[ëz§Ð¬Ò¨¡]Aák±Ÿ«‹ŒÕ)\Þû¦;­;WìW˜ÞYÝ,±ßë¨O®ãmb¿Ãô wt³òÇŠªWt£âO˜FEQõÞ:˜þn±ŸØ_0Š¢››ÿ…inÝZó·»Ó¢[/þ¡¤'¢ïQÒõ}Zk-)Ž `º»â1Îf‹úò]|BŒCÌ¢f›_M ͯ¢ž:>‡JEí£‹Z}N•Šš_Å7Å8V2­&fÒŒ1ΕŠêŸâwb,µc(j´ûœ,™ú3¡ÅXëÁ¬f¥ßz2{ºJ­G³zÎøœ(Õ»Ÿ‹p¤T_«gJõq{åú¼‡Jõê7ŸS%K ŠY±¶Ôè¬R;J›ªÔž’ö‡>çHõÚÖo%ÆAR}W1Í+Ÿ“$ËjaÚGú%Õë‹a}/1Î’,¨…í)ÆaR½æZ½v>§Iô=³Ó(1Ž“:MRÉRf;O±57|Ž•´npŸçJ :pnØ\Œƒ¥h5l+Ö ¦3ІÅ8`jÐw•íA}N˜nÓ>Ê爩Aû¨†?Å8cjøKì1™ºéýuÓ3Ú甩›ÞK·kÄ8fê¦çK·GĶ€i-oÜHŒã¦FÍ¿Æ]Å8ojÔ§ÙxNMbzBùœ85jÖ¨ï)~Lã¾ño1Nžºk-讕Úçè©ûbÚ‡ùœ=u×\èîÚrø´ÚÐSÐçôi_cùª×ÅÜñSÞþW"-ì ±í`oн%¶=Ìý—•b;ÀV‰½-掠´p;ß@™«˹5Æ@™šË-² ¯ôŽ^I;N¿'lµ˜›õ½`Íbîî{Ã>Ów¿ì#1}§óûÂ>ûÔÍ?›çyž_õOË?÷òr-ÿLúùà ký+›«ý'´9ÿ„™‰)£§¦Ÿ=;½ì¢úôÛõM77Õ¥×4uK¯m:2ý[ÓÙéuM‹2UM+2µc&g:ŒmÎôôü˜ßòZA,øPKzmï[o»PKO~öR"gnu/inet/encoding/Stringprep.classÍWyT”×ÿ=fƒñSÇYÜqXEED`D…ÐŒÆaø„ÑaF‡AÅÄD«¦mb¢MZLMZ5Õ¡‰kªmbÓÄ´5­µKš¦Iº¤ý»9­†ÞûͰöœžöÌ9¿wï{÷¾»½ï¾7oqî€ø›˰Q6éàÖCÅL <14ãåéÍLmá9Ÿ­1Ðï'hÓa«#ÑÆËÛXp{ Ú±ƒáfäÕz<„‡Ydkîfê†G™ÝÃ"_â­÷2µçö³îc,òe†¯0ûU¦g¹'˜: G:žd§ô8ˆCL}M§±O‡gxíë,ú ö¤CÃx–á›Ìaê9¦žgø÷Ž2|‡á†c /2¼Äp\tw«`èîæ ^f'^á… 'u8¥Ã« –Êe%UÕ%Uöª"«µ¦¬º²¶´Ì^]d)-± hªž&Y@2{<²Ïäv´¶Ê­ÓëÊ›y³@б|£c«#ÓMQfZý>ŠxqêÝSú’íNy³ßåõPafEÐZQm¤Õïpnªplî5M>…LK>¹ÕÛæs†ÙÑ^»½Š*_Óìó¶55 ”‡Qÿ{K¤®Õ¡Œ’³ÁåöË>…w;_Üær7ʾ¡6[ÌUµ8ÈÓ¬Á7¨3ÕEÈ'iFç;Ýáâè­JÔË]œÑ!NÁV”P‹ÕlX'Ü·“¥Íí®òº<@otø®„Ó8#ÁŒ2 ëAÊ+Q.!€N:Pw‡Ògªw ßÃkl3(0a $Tð®N4êpVBª%¼Žsdlpt¸(áÖJ¨bÁ˼£…©J†7˜ý>®H¸ŠHø!Þ”ðÏÕc„vÝÊrvfW0À5 5eø#ßþŒ¿HXÅŸ1ü7©q •mC_j+6ÊN?}ȃ@§Âé“~¹FÞîwÆüþgÎÔìðYå-m¤IÇ{8=r¼Óëñ;\žÖ"O;wå, ,t×á|VãL•–š"³Åj¯µPg5—ZJ– ŒÔb#5ú0â#¢^9oþ<úhг[e‡ÏI½ ¦8›2év8)ã"|c$ì÷†hŠÖ±ÅÝmʲ|%5ß‘¯¯ÅávíC|_X=]šÃ’ŠÍËÌöâJº?ŠÊ©Ÿ8)_E”DµÑœJJÑ=)ÍPv´nÙÓäoVÚ±™¾{E¿¼FÑN¼ž¤9Ó8¼üK²[ö˦°'‰dwÐÖÔs Ûü.wf‘Ïçh'O¥—Çák·†³¬5Ö™Lì«®7Ù™F³y8WÄ@3ý–è~§M¸Øº†QÅ=TŠqÈÜ·oßЪ:¾-§Ý[ŽŒ£±Q™¥8S¤7L;ÅIj¿C:ÆñCÀhöÆQüZˆâw‚Š®mF¾´£L9 óæ3ä2,`XH§ª'¾‡q(†ç ÙÏRìga*½×–Ñkw&q3&jß'ʸ"<Ò­¢ŒáÑ+ÃcUx¤¦¨ŒÖ0_£Œ# øR#\C\‚FMÚYˆ3DÜG¨U&3CWßZD)¢É4ò¬6MÕ…¨Ód¢N¡£ÀsÖ[Ò¨¡£µÒÞˆóPÙÎB}9­ šŠ´]ÐuõÓ ‡@tZF1uz[#ÎBº|#mäÝ(ËìFwÁ@ØÆva¯Ìb|b•uÚ3O@Üìxuÿ]&ð.L Mçjˆ“ÚXMÆÅj{E'±(Of²¼*ˆ„ ;ÇYJR7†¦÷($³ûÀùˆRòQ „Ç(ê!áeŒÁ+HÀ Jõ)Êè«ôGæ щRºìW!H/…³Ø€sðá"vÒÕ¼Wpˆîä#¸†ãx‡´Þ¥[û:ýÞ£;òîWŠ©“nàCzü”è0’¨;Hb¦~@ê#×oòÀú}|—Þpê7å¿Q¿©ÿõû;Eý9ÕïŸT¿ÛT¿;T¿ndPª …¥B‹U"ëE 6=|BÂNaÀ~1‡DŽˆ 8.pJ$â ‘„ë"·Ä´³~öÈõ›6 ~"ç.½žúÙÃõ»¡~Óû×o"×/ˆC—o¢Íüßm-â(ÔåP‹RHbƈ•HåH¤‹JäŠj,5X.V£V¬A°¡IÜOEsPѨhM8(š©hn-xŽýUᥢµ(ØÄ;X^Dêš$ÒÔë ö¨È‹7û¼H¡S ñ8yñ•ïâÅ“HOa†8ˆLq‹hm©x¦¿W¹!¯šz®³¨CŠOWµ‘nS'0Ô:‹ «M­ps ‹N£pFÃæ:1EÓ_áá>•¡0$¡U÷IL mÙ‰é] ÏbN™AÌíD´Âf‘­°£6§gu¢ÂÎëaãv> äÿ@Á… .R0OÁÅ æ²õ±KÆõ –*ÛÄ¢/hÈÍiµ6µ!¥Ö¦1̪µi ™µ6!¯Ömȯµ´†B¡°¶…ŠÝ{Û  Hñ-äa±2ò³f"x2µ_@ýÅÿ£°fö=F.!“p²Co™hF>¶` ¶Ñ5º EØK/¦ôZzšÞGÏÑkéz¦WQ^Dè5t…®ÙkôºNÚïÓ+è#:*ŸÐΟ¡žZs£0Bs¨…Ï£Ž‡fQu’Ô=6Q×p‹ûÐ"êá¡Î°…:‚O´¡MìÆV±ÛèHn§£Ù.:°C<Ä1<(NPGy»ÄìWà§ãݬr]ùÀX¢ÒÑ‚åˆÇaßGü¿PKa ;»¸ âPKO~öR+gnu/inet/encoding/StringprepException.classe‘]oA†ß¡–-JÝŠÖïiëÕ‰7ÆØ˜­v“ÍbØÕÛf€ ƒ3›e0þ-Ã…I/úüQÆ3[¤hçbÞ9gžó1g~ý>;ð]làŽƒ»¸¸çà¾ÕZ}ä€[Ý)c·Œ=†­n/ŒÛ~| ÛQä¼à‹ø&Z¡Æ­ÈdRß®¢û½c¿ãÇ­vüCÿ¤Ó‹ûí€ÁÍÍ ÎÒTÒ¼c¨7®&ÜÿÌPìêQÂP ¤JÂÙ×A’Åb0!s0œ,b×–t#=ˆÉ{io·/R¤Y’}&©‘Z5m*nÀcà]­ŒjÊgJL§r¬’R)žj©Ì´YE×V¹4Ó§r Íîºåö–Ü@›SÞçBx;ø­YôUˆõ–#&rb+mþ¦Ñe¡ÈMùd¬f-šƒi%Šx¹œÔ?Ϥo¸œäÒ‹Ø_Š¨Ø§Ñ©b[ϵ¶ÐÍ\ `vH´o‘µKv´ôüÅO°tb¸I»›{_bM8¨ãÖ‚CjWÝ+̱æçX÷Js”=gŽÊe¸GO)ü¥jP ûts;/¿ýPK$ª±ªPKP~öR META-INF/þÊPKP~öR7Ã67=META-INF/MANIFEST.MFPKO~öRv¨ ž q&µgnu/inet/encoding/CombiningClass.classPKO~öRùõ´¶÷«#§ gnu/inet/encoding/Composition.classPKO~öRý˜¸@Ùnû)®(gnu/inet/encoding/DecompositionKeys.classPKO~öR˜)nk¼Æ-Þ¸gnu/inet/encoding/DecompositionMappings.classPKO~öRXî±ß¸ §$gnu/inet/encoding/IDNA.classPKO~öR jZöU%Ð+gnu/inet/encoding/IDNAException.classPKO~öRh1¶M„ .gnu/inet/encoding/NFKC.classPKO~öR5É™Õ&² °6gnu/inet/encoding/Punycode.classPKO~öRÜ¡ï±0±)$>gnu/inet/encoding/PunycodeException.classPKO~öR±gSjÉ («?gnu/inet/encoding/RangeSet$Builder.classPKO~öRª¥—.¡ &kFgnu/inet/encoding/RangeSet$Range.classPKO~öRìœÅÊW8íKgnu/inet/encoding/RangeSet$RangeContainsComparator.classPKO~öRÕ«Vs95 Ngnu/inet/encoding/RangeSet.classPKO~öRzmï[o»¤Ugnu/inet/encoding/RFC3454.classPKO~öRa ;»¸ â"ó°gnu/inet/encoding/Stringprep.classPKO~öR$ª±ª+ûºgnu/inet/encoding/StringprepException.classPK´½libidn-1.38/java/Makefile.am0000644000000000000000000000462014076271517012566 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = src EXTRA_DIST = LICENSE-2.0.txt INSTALL_TARGETS = if JAVA libidn_jardir = $(datadir)/java dist_libidn_jar_DATA = libidn-$(VERSION).jar libidn-$(VERSION).jar: $(JAR) cf $@ \ -C $(builddir)/src/main/java \ gnu/inet/encoding/CombiningClass.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/Composition.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/DecompositionKeys.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/DecompositionMappings.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/IDNA.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/IDNAException.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/NFKC.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/Punycode.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/PunycodeException.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$Builder.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$Range.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$RangeContainsComparator.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RFC3454.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/Stringprep.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/StringprepException.class INSTALL_TARGETS += install-jar install-jar: install -d -m 755 $(DESTDIR)$(libidn_jardir) ln -sf libidn-$(VERSION).jar $(DESTDIR)$(libidn_jardir)/libidn.jar clean-local: rm -f $(libidn_jar_DATA) endif install-data-local: $(INSTALL_TARGETS) libidn-1.38/java/src/0000755000000000000000000000000014076274122011372 500000000000000libidn-1.38/java/src/Makefile.in0000644000000000000000000016237514076273732013403 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = main test util all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/main/0000755000000000000000000000000014076274121012315 500000000000000libidn-1.38/java/src/main/Makefile.in0000644000000000000000000016240214076273732014316 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = java all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/main/java/0000755000000000000000000000000014076274122013237 500000000000000libidn-1.38/java/src/main/java/Makefile.in0000644000000000000000000016275014076273732015245 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gnu . INSTALL_TARGETS = all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Invoked by ../doc/java/Makefile. @JAVA_TRUE@.PHONY: javadoc @JAVA_TRUE@javadoc: @JAVA_TRUE@ cd $(srcdir) && \ @JAVA_TRUE@ $(JAVADOC) -d $(top_builddir)/doc/java/html gnu/inet/encoding/*.java # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/main/java/gnu/0000755000000000000000000000000014076274122014030 500000000000000libidn-1.38/java/src/main/java/gnu/inet/0000755000000000000000000000000014076274122014767 500000000000000libidn-1.38/java/src/main/java/gnu/inet/Makefile.in0000644000000000000000000016246014076273733016774 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java/gnu/inet ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = encoding all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/main/java/gnu/inet/Makefile.am0000644000000000000000000000143114076271517016747 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = encoding libidn-1.38/java/src/main/java/gnu/inet/encoding/0000755000000000000000000000000014076274122016555 500000000000000libidn-1.38/java/src/main/java/gnu/inet/encoding/RFC3454.java0000644000000000000000000022727214053001337020275 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateRFC3454.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing StringPrep mapping tables. */ public class RFC3454 { final static char[][] A1 = new char[][] { new char[] { '\u0221' }, new char[] { '\u0234', '\u024F' }, new char[] { '\u02AE', '\u02AF' }, new char[] { '\u02EF', '\u02FF' }, new char[] { '\u0350', '\u035F' }, new char[] { '\u0370', '\u0373' }, new char[] { '\u0376', '\u0379' }, new char[] { '\u037B', '\u037D' }, new char[] { '\u037F', '\u0383' }, new char[] { '\u038B' }, new char[] { '\u038D' }, new char[] { '\u03A2' }, new char[] { '\u03CF' }, new char[] { '\u03F7', '\u03FF' }, new char[] { '\u0487' }, new char[] { '\u04CF' }, new char[] { '\u04F6', '\u04F7' }, new char[] { '\u04FA', '\u04FF' }, new char[] { '\u0510', '\u0530' }, new char[] { '\u0557', '\u0558' }, new char[] { '\u0560' }, new char[] { '\u0588' }, new char[] { '\u058B', '\u0590' }, new char[] { '\u05A2' }, new char[] { '\u05BA' }, new char[] { '\u05C5', '\u05CF' }, new char[] { '\u05EB', '\u05EF' }, new char[] { '\u05F5', '\u060B' }, new char[] { '\u060D', '\u061A' }, new char[] { '\u061C', '\u061E' }, new char[] { '\u0620' }, new char[] { '\u063B', '\u063F' }, new char[] { '\u0656', '\u065F' }, new char[] { '\u06EE', '\u06EF' }, new char[] { '\u06FF' }, new char[] { '\u070E' }, new char[] { '\u072D', '\u072F' }, new char[] { '\u074B', '\u077F' }, new char[] { '\u07B2', '\u0900' }, new char[] { '\u0904' }, new char[] { '\u093A', '\u093B' }, new char[] { '\u094E', '\u094F' }, new char[] { '\u0955', '\u0957' }, new char[] { '\u0971', '\u0980' }, new char[] { '\u0984' }, new char[] { '\u098D', '\u098E' }, new char[] { '\u0991', '\u0992' }, new char[] { '\u09A9' }, new char[] { '\u09B1' }, new char[] { '\u09B3', '\u09B5' }, new char[] { '\u09BA', '\u09BB' }, new char[] { '\u09BD' }, new char[] { '\u09C5', '\u09C6' }, new char[] { '\u09C9', '\u09CA' }, new char[] { '\u09CE', '\u09D6' }, new char[] { '\u09D8', '\u09DB' }, new char[] { '\u09DE' }, new char[] { '\u09E4', '\u09E5' }, new char[] { '\u09FB', '\u0A01' }, new char[] { '\u0A03', '\u0A04' }, new char[] { '\u0A0B', '\u0A0E' }, new char[] { '\u0A11', '\u0A12' }, new char[] { '\u0A29' }, new char[] { '\u0A31' }, new char[] { '\u0A34' }, new char[] { '\u0A37' }, new char[] { '\u0A3A', '\u0A3B' }, new char[] { '\u0A3D' }, new char[] { '\u0A43', '\u0A46' }, new char[] { '\u0A49', '\u0A4A' }, new char[] { '\u0A4E', '\u0A58' }, new char[] { '\u0A5D' }, new char[] { '\u0A5F', '\u0A65' }, new char[] { '\u0A75', '\u0A80' }, new char[] { '\u0A84' }, new char[] { '\u0A8C' }, new char[] { '\u0A8E' }, new char[] { '\u0A92' }, new char[] { '\u0AA9' }, new char[] { '\u0AB1' }, new char[] { '\u0AB4' }, new char[] { '\u0ABA', '\u0ABB' }, new char[] { '\u0AC6' }, new char[] { '\u0ACA' }, new char[] { '\u0ACE', '\u0ACF' }, new char[] { '\u0AD1', '\u0ADF' }, new char[] { '\u0AE1', '\u0AE5' }, new char[] { '\u0AF0', '\u0B00' }, new char[] { '\u0B04' }, new char[] { '\u0B0D', '\u0B0E' }, new char[] { '\u0B11', '\u0B12' }, new char[] { '\u0B29' }, new char[] { '\u0B31' }, new char[] { '\u0B34', '\u0B35' }, new char[] { '\u0B3A', '\u0B3B' }, new char[] { '\u0B44', '\u0B46' }, new char[] { '\u0B49', '\u0B4A' }, new char[] { '\u0B4E', '\u0B55' }, new char[] { '\u0B58', '\u0B5B' }, new char[] { '\u0B5E' }, new char[] { '\u0B62', '\u0B65' }, new char[] { '\u0B71', '\u0B81' }, new char[] { '\u0B84' }, new char[] { '\u0B8B', '\u0B8D' }, new char[] { '\u0B91' }, new char[] { '\u0B96', '\u0B98' }, new char[] { '\u0B9B' }, new char[] { '\u0B9D' }, new char[] { '\u0BA0', '\u0BA2' }, new char[] { '\u0BA5', '\u0BA7' }, new char[] { '\u0BAB', '\u0BAD' }, new char[] { '\u0BB6' }, new char[] { '\u0BBA', '\u0BBD' }, new char[] { '\u0BC3', '\u0BC5' }, new char[] { '\u0BC9' }, new char[] { '\u0BCE', '\u0BD6' }, new char[] { '\u0BD8', '\u0BE6' }, new char[] { '\u0BF3', '\u0C00' }, new char[] { '\u0C04' }, new char[] { '\u0C0D' }, new char[] { '\u0C11' }, new char[] { '\u0C29' }, new char[] { '\u0C34' }, new char[] { '\u0C3A', '\u0C3D' }, new char[] { '\u0C45' }, new char[] { '\u0C49' }, new char[] { '\u0C4E', '\u0C54' }, new char[] { '\u0C57', '\u0C5F' }, new char[] { '\u0C62', '\u0C65' }, new char[] { '\u0C70', '\u0C81' }, new char[] { '\u0C84' }, new char[] { '\u0C8D' }, new char[] { '\u0C91' }, new char[] { '\u0CA9' }, new char[] { '\u0CB4' }, new char[] { '\u0CBA', '\u0CBD' }, new char[] { '\u0CC5' }, new char[] { '\u0CC9' }, new char[] { '\u0CCE', '\u0CD4' }, new char[] { '\u0CD7', '\u0CDD' }, new char[] { '\u0CDF' }, new char[] { '\u0CE2', '\u0CE5' }, new char[] { '\u0CF0', '\u0D01' }, new char[] { '\u0D04' }, new char[] { '\u0D0D' }, new char[] { '\u0D11' }, new char[] { '\u0D29' }, new char[] { '\u0D3A', '\u0D3D' }, new char[] { '\u0D44', '\u0D45' }, new char[] { '\u0D49' }, new char[] { '\u0D4E', '\u0D56' }, new char[] { '\u0D58', '\u0D5F' }, new char[] { '\u0D62', '\u0D65' }, new char[] { '\u0D70', '\u0D81' }, new char[] { '\u0D84' }, new char[] { '\u0D97', '\u0D99' }, new char[] { '\u0DB2' }, new char[] { '\u0DBC' }, new char[] { '\u0DBE', '\u0DBF' }, new char[] { '\u0DC7', '\u0DC9' }, new char[] { '\u0DCB', '\u0DCE' }, new char[] { '\u0DD5' }, new char[] { '\u0DD7' }, new char[] { '\u0DE0', '\u0DF1' }, new char[] { '\u0DF5', '\u0E00' }, new char[] { '\u0E3B', '\u0E3E' }, new char[] { '\u0E5C', '\u0E80' }, new char[] { '\u0E83' }, new char[] { '\u0E85', '\u0E86' }, new char[] { '\u0E89' }, new char[] { '\u0E8B', '\u0E8C' }, new char[] { '\u0E8E', '\u0E93' }, new char[] { '\u0E98' }, new char[] { '\u0EA0' }, new char[] { '\u0EA4' }, new char[] { '\u0EA6' }, new char[] { '\u0EA8', '\u0EA9' }, new char[] { '\u0EAC' }, new char[] { '\u0EBA' }, new char[] { '\u0EBE', '\u0EBF' }, new char[] { '\u0EC5' }, new char[] { '\u0EC7' }, new char[] { '\u0ECE', '\u0ECF' }, new char[] { '\u0EDA', '\u0EDB' }, new char[] { '\u0EDE', '\u0EFF' }, new char[] { '\u0F48' }, new char[] { '\u0F6B', '\u0F70' }, new char[] { '\u0F8C', '\u0F8F' }, new char[] { '\u0F98' }, new char[] { '\u0FBD' }, new char[] { '\u0FCD', '\u0FCE' }, new char[] { '\u0FD0', '\u0FFF' }, new char[] { '\u1022' }, new char[] { '\u1028' }, new char[] { '\u102B' }, new char[] { '\u1033', '\u1035' }, new char[] { '\u103A', '\u103F' }, new char[] { '\u105A', '\u109F' }, new char[] { '\u10C6', '\u10CF' }, new char[] { '\u10F9', '\u10FA' }, new char[] { '\u10FC', '\u10FF' }, new char[] { '\u115A', '\u115E' }, new char[] { '\u11A3', '\u11A7' }, new char[] { '\u11FA', '\u11FF' }, new char[] { '\u1207' }, new char[] { '\u1247' }, new char[] { '\u1249' }, new char[] { '\u124E', '\u124F' }, new char[] { '\u1257' }, new char[] { '\u1259' }, new char[] { '\u125E', '\u125F' }, new char[] { '\u1287' }, new char[] { '\u1289' }, new char[] { '\u128E', '\u128F' }, new char[] { '\u12AF' }, new char[] { '\u12B1' }, new char[] { '\u12B6', '\u12B7' }, new char[] { '\u12BF' }, new char[] { '\u12C1' }, new char[] { '\u12C6', '\u12C7' }, new char[] { '\u12CF' }, new char[] { '\u12D7' }, new char[] { '\u12EF' }, new char[] { '\u130F' }, new char[] { '\u1311' }, new char[] { '\u1316', '\u1317' }, new char[] { '\u131F' }, new char[] { '\u1347' }, new char[] { '\u135B', '\u1360' }, new char[] { '\u137D', '\u139F' }, new char[] { '\u13F5', '\u1400' }, new char[] { '\u1677', '\u167F' }, new char[] { '\u169D', '\u169F' }, new char[] { '\u16F1', '\u16FF' }, new char[] { '\u170D' }, new char[] { '\u1715', '\u171F' }, new char[] { '\u1737', '\u173F' }, new char[] { '\u1754', '\u175F' }, new char[] { '\u176D' }, new char[] { '\u1771' }, new char[] { '\u1774', '\u177F' }, new char[] { '\u17DD', '\u17DF' }, new char[] { '\u17EA', '\u17FF' }, new char[] { '\u180F' }, new char[] { '\u181A', '\u181F' }, new char[] { '\u1878', '\u187F' }, new char[] { '\u18AA', '\u1DFF' }, new char[] { '\u1E9C', '\u1E9F' }, new char[] { '\u1EFA', '\u1EFF' }, new char[] { '\u1F16', '\u1F17' }, new char[] { '\u1F1E', '\u1F1F' }, new char[] { '\u1F46', '\u1F47' }, new char[] { '\u1F4E', '\u1F4F' }, new char[] { '\u1F58' }, new char[] { '\u1F5A' }, new char[] { '\u1F5C' }, new char[] { '\u1F5E' }, new char[] { '\u1F7E', '\u1F7F' }, new char[] { '\u1FB5' }, new char[] { '\u1FC5' }, new char[] { '\u1FD4', '\u1FD5' }, new char[] { '\u1FDC' }, new char[] { '\u1FF0', '\u1FF1' }, new char[] { '\u1FF5' }, new char[] { '\u1FFF' }, new char[] { '\u2053', '\u2056' }, new char[] { '\u2058', '\u205E' }, new char[] { '\u2064', '\u2069' }, new char[] { '\u2072', '\u2073' }, new char[] { '\u208F', '\u209F' }, new char[] { '\u20B2', '\u20CF' }, new char[] { '\u20EB', '\u20FF' }, new char[] { '\u213B', '\u213C' }, new char[] { '\u214C', '\u2152' }, new char[] { '\u2184', '\u218F' }, new char[] { '\u23CF', '\u23FF' }, new char[] { '\u2427', '\u243F' }, new char[] { '\u244B', '\u245F' }, new char[] { '\u24FF' }, new char[] { '\u2614', '\u2615' }, new char[] { '\u2618' }, new char[] { '\u267E', '\u267F' }, new char[] { '\u268A', '\u2700' }, new char[] { '\u2705' }, new char[] { '\u270A', '\u270B' }, new char[] { '\u2728' }, new char[] { '\u274C' }, new char[] { '\u274E' }, new char[] { '\u2753', '\u2755' }, new char[] { '\u2757' }, new char[] { '\u275F', '\u2760' }, new char[] { '\u2795', '\u2797' }, new char[] { '\u27B0' }, new char[] { '\u27BF', '\u27CF' }, new char[] { '\u27EC', '\u27EF' }, new char[] { '\u2B00', '\u2E7F' }, new char[] { '\u2E9A' }, new char[] { '\u2EF4', '\u2EFF' }, new char[] { '\u2FD6', '\u2FEF' }, new char[] { '\u2FFC', '\u2FFF' }, new char[] { '\u3040' }, new char[] { '\u3097', '\u3098' }, new char[] { '\u3100', '\u3104' }, new char[] { '\u312D', '\u3130' }, new char[] { '\u318F' }, new char[] { '\u31B8', '\u31EF' }, new char[] { '\u321D', '\u321F' }, new char[] { '\u3244', '\u3250' }, new char[] { '\u327C', '\u327E' }, new char[] { '\u32CC', '\u32CF' }, new char[] { '\u32FF' }, new char[] { '\u3377', '\u337A' }, new char[] { '\u33DE', '\u33DF' }, new char[] { '\u33FF' }, new char[] { '\u4DB6', '\u4DFF' }, new char[] { '\u9FA6', '\u9FFF' }, new char[] { '\uA48D', '\uA48F' }, new char[] { '\uA4C7', '\uABFF' }, new char[] { '\uD7A4', '\uD7FF' }, new char[] { '\uFA2E', '\uFA2F' }, new char[] { '\uFA6B', '\uFAFF' }, new char[] { '\uFB07', '\uFB12' }, new char[] { '\uFB18', '\uFB1C' }, new char[] { '\uFB37' }, new char[] { '\uFB3D' }, new char[] { '\uFB3F' }, new char[] { '\uFB42' }, new char[] { '\uFB45' }, new char[] { '\uFBB2', '\uFBD2' }, new char[] { '\uFD40', '\uFD4F' }, new char[] { '\uFD90', '\uFD91' }, new char[] { '\uFDC8', '\uFDCF' }, new char[] { '\uFDFD', '\uFDFF' }, new char[] { '\uFE10', '\uFE1F' }, new char[] { '\uFE24', '\uFE2F' }, new char[] { '\uFE47', '\uFE48' }, new char[] { '\uFE53' }, new char[] { '\uFE67' }, new char[] { '\uFE6C', '\uFE6F' }, new char[] { '\uFE75' }, new char[] { '\uFEFD', '\uFEFE' }, new char[] { '\uFF00' }, new char[] { '\uFFBF', '\uFFC1' }, new char[] { '\uFFC8', '\uFFC9' }, new char[] { '\uFFD0', '\uFFD1' }, new char[] { '\uFFD8', '\uFFD9' }, new char[] { '\uFFDD', '\uFFDF' }, new char[] { '\uFFE7' }, new char[] { '\uFFEF', '\uFFF8' }, }; final static char[] B1 = new char[] { '\u00AD', '\u034F', '\u1806', '\u180B', '\u180C', '\u180D', '\u200B', '\u200C', '\u200D', '\u2060', '\uFE00', '\uFE01', '\uFE02', '\uFE03', '\uFE04', '\uFE05', '\uFE06', '\uFE07', '\uFE08', '\uFE09', '\uFE0A', '\uFE0B', '\uFE0C', '\uFE0D', '\uFE0E', '\uFE0F', '\uFEFF', }; final static char[] B2search = new char[] { '\u0041', '\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047', '\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D', '\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053', '\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059', '\u005A', '\u00B5', '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u00C4', '\u00C5', '\u00C6', '\u00C7', '\u00C8', '\u00C9', '\u00CA', '\u00CB', '\u00CC', '\u00CD', '\u00CE', '\u00CF', '\u00D0', '\u00D1', '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u00D6', '\u00D8', '\u00D9', '\u00DA', '\u00DB', '\u00DC', '\u00DD', '\u00DE', '\u00DF', '\u0100', '\u0102', '\u0104', '\u0106', '\u0108', '\u010A', '\u010C', '\u010E', '\u0110', '\u0112', '\u0114', '\u0116', '\u0118', '\u011A', '\u011C', '\u011E', '\u0120', '\u0122', '\u0124', '\u0126', '\u0128', '\u012A', '\u012C', '\u012E', '\u0130', '\u0132', '\u0134', '\u0136', '\u0139', '\u013B', '\u013D', '\u013F', '\u0141', '\u0143', '\u0145', '\u0147', '\u0149', '\u014A', '\u014C', '\u014E', '\u0150', '\u0152', '\u0154', '\u0156', '\u0158', '\u015A', '\u015C', '\u015E', '\u0160', '\u0162', '\u0164', '\u0166', '\u0168', '\u016A', '\u016C', '\u016E', '\u0170', '\u0172', '\u0174', '\u0176', '\u0178', '\u0179', '\u017B', '\u017D', '\u017F', '\u0181', '\u0182', '\u0184', '\u0186', '\u0187', '\u0189', '\u018A', '\u018B', '\u018E', '\u018F', '\u0190', '\u0191', '\u0193', '\u0194', '\u0196', '\u0197', '\u0198', '\u019C', '\u019D', '\u019F', '\u01A0', '\u01A2', '\u01A4', '\u01A6', '\u01A7', '\u01A9', '\u01AC', '\u01AE', '\u01AF', '\u01B1', '\u01B2', '\u01B3', '\u01B5', '\u01B7', '\u01B8', '\u01BC', '\u01C4', '\u01C5', '\u01C7', '\u01C8', '\u01CA', '\u01CB', '\u01CD', '\u01CF', '\u01D1', '\u01D3', '\u01D5', '\u01D7', '\u01D9', '\u01DB', '\u01DE', '\u01E0', '\u01E2', '\u01E4', '\u01E6', '\u01E8', '\u01EA', '\u01EC', '\u01EE', '\u01F0', '\u01F1', '\u01F2', '\u01F4', '\u01F6', '\u01F7', '\u01F8', '\u01FA', '\u01FC', '\u01FE', '\u0200', '\u0202', '\u0204', '\u0206', '\u0208', '\u020A', '\u020C', '\u020E', '\u0210', '\u0212', '\u0214', '\u0216', '\u0218', '\u021A', '\u021C', '\u021E', '\u0220', '\u0222', '\u0224', '\u0226', '\u0228', '\u022A', '\u022C', '\u022E', '\u0230', '\u0232', '\u0345', '\u037A', '\u0386', '\u0388', '\u0389', '\u038A', '\u038C', '\u038E', '\u038F', '\u0390', '\u0391', '\u0392', '\u0393', '\u0394', '\u0395', '\u0396', '\u0397', '\u0398', '\u0399', '\u039A', '\u039B', '\u039C', '\u039D', '\u039E', '\u039F', '\u03A0', '\u03A1', '\u03A3', '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9', '\u03AA', '\u03AB', '\u03B0', '\u03C2', '\u03D0', '\u03D1', '\u03D2', '\u03D3', '\u03D4', '\u03D5', '\u03D6', '\u03D8', '\u03DA', '\u03DC', '\u03DE', '\u03E0', '\u03E2', '\u03E4', '\u03E6', '\u03E8', '\u03EA', '\u03EC', '\u03EE', '\u03F0', '\u03F1', '\u03F2', '\u03F4', '\u03F5', '\u0400', '\u0401', '\u0402', '\u0403', '\u0404', '\u0405', '\u0406', '\u0407', '\u0408', '\u0409', '\u040A', '\u040B', '\u040C', '\u040D', '\u040E', '\u040F', '\u0410', '\u0411', '\u0412', '\u0413', '\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419', '\u041A', '\u041B', '\u041C', '\u041D', '\u041E', '\u041F', '\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425', '\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B', '\u042C', '\u042D', '\u042E', '\u042F', '\u0460', '\u0462', '\u0464', '\u0466', '\u0468', '\u046A', '\u046C', '\u046E', '\u0470', '\u0472', '\u0474', '\u0476', '\u0478', '\u047A', '\u047C', '\u047E', '\u0480', '\u048A', '\u048C', '\u048E', '\u0490', '\u0492', '\u0494', '\u0496', '\u0498', '\u049A', '\u049C', '\u049E', '\u04A0', '\u04A2', '\u04A4', '\u04A6', '\u04A8', '\u04AA', '\u04AC', '\u04AE', '\u04B0', '\u04B2', '\u04B4', '\u04B6', '\u04B8', '\u04BA', '\u04BC', '\u04BE', '\u04C1', '\u04C3', '\u04C5', '\u04C7', '\u04C9', '\u04CB', '\u04CD', '\u04D0', '\u04D2', '\u04D4', '\u04D6', '\u04D8', '\u04DA', '\u04DC', '\u04DE', '\u04E0', '\u04E2', '\u04E4', '\u04E6', '\u04E8', '\u04EA', '\u04EC', '\u04EE', '\u04F0', '\u04F2', '\u04F4', '\u04F8', '\u0500', '\u0502', '\u0504', '\u0506', '\u0508', '\u050A', '\u050C', '\u050E', '\u0531', '\u0532', '\u0533', '\u0534', '\u0535', '\u0536', '\u0537', '\u0538', '\u0539', '\u053A', '\u053B', '\u053C', '\u053D', '\u053E', '\u053F', '\u0540', '\u0541', '\u0542', '\u0543', '\u0544', '\u0545', '\u0546', '\u0547', '\u0548', '\u0549', '\u054A', '\u054B', '\u054C', '\u054D', '\u054E', '\u054F', '\u0550', '\u0551', '\u0552', '\u0553', '\u0554', '\u0555', '\u0556', '\u0587', '\u1E00', '\u1E02', '\u1E04', '\u1E06', '\u1E08', '\u1E0A', '\u1E0C', '\u1E0E', '\u1E10', '\u1E12', '\u1E14', '\u1E16', '\u1E18', '\u1E1A', '\u1E1C', '\u1E1E', '\u1E20', '\u1E22', '\u1E24', '\u1E26', '\u1E28', '\u1E2A', '\u1E2C', '\u1E2E', '\u1E30', '\u1E32', '\u1E34', '\u1E36', '\u1E38', '\u1E3A', '\u1E3C', '\u1E3E', '\u1E40', '\u1E42', '\u1E44', '\u1E46', '\u1E48', '\u1E4A', '\u1E4C', '\u1E4E', '\u1E50', '\u1E52', '\u1E54', '\u1E56', '\u1E58', '\u1E5A', '\u1E5C', '\u1E5E', '\u1E60', '\u1E62', '\u1E64', '\u1E66', '\u1E68', '\u1E6A', '\u1E6C', '\u1E6E', '\u1E70', '\u1E72', '\u1E74', '\u1E76', '\u1E78', '\u1E7A', '\u1E7C', '\u1E7E', '\u1E80', '\u1E82', '\u1E84', '\u1E86', '\u1E88', '\u1E8A', '\u1E8C', '\u1E8E', '\u1E90', '\u1E92', '\u1E94', '\u1E96', '\u1E97', '\u1E98', '\u1E99', '\u1E9A', '\u1E9B', '\u1EA0', '\u1EA2', '\u1EA4', '\u1EA6', '\u1EA8', '\u1EAA', '\u1EAC', '\u1EAE', '\u1EB0', '\u1EB2', '\u1EB4', '\u1EB6', '\u1EB8', '\u1EBA', '\u1EBC', '\u1EBE', '\u1EC0', '\u1EC2', '\u1EC4', '\u1EC6', '\u1EC8', '\u1ECA', '\u1ECC', '\u1ECE', '\u1ED0', '\u1ED2', '\u1ED4', '\u1ED6', '\u1ED8', '\u1EDA', '\u1EDC', '\u1EDE', '\u1EE0', '\u1EE2', '\u1EE4', '\u1EE6', '\u1EE8', '\u1EEA', '\u1EEC', '\u1EEE', '\u1EF0', '\u1EF2', '\u1EF4', '\u1EF6', '\u1EF8', '\u1F08', '\u1F09', '\u1F0A', '\u1F0B', '\u1F0C', '\u1F0D', '\u1F0E', '\u1F0F', '\u1F18', '\u1F19', '\u1F1A', '\u1F1B', '\u1F1C', '\u1F1D', '\u1F28', '\u1F29', '\u1F2A', '\u1F2B', '\u1F2C', '\u1F2D', '\u1F2E', '\u1F2F', '\u1F38', '\u1F39', '\u1F3A', '\u1F3B', '\u1F3C', '\u1F3D', '\u1F3E', '\u1F3F', '\u1F48', '\u1F49', '\u1F4A', '\u1F4B', '\u1F4C', '\u1F4D', '\u1F50', '\u1F52', '\u1F54', '\u1F56', '\u1F59', '\u1F5B', '\u1F5D', '\u1F5F', '\u1F68', '\u1F69', '\u1F6A', '\u1F6B', '\u1F6C', '\u1F6D', '\u1F6E', '\u1F6F', '\u1F80', '\u1F81', '\u1F82', '\u1F83', '\u1F84', '\u1F85', '\u1F86', '\u1F87', '\u1F88', '\u1F89', '\u1F8A', '\u1F8B', '\u1F8C', '\u1F8D', '\u1F8E', '\u1F8F', '\u1F90', '\u1F91', '\u1F92', '\u1F93', '\u1F94', '\u1F95', '\u1F96', '\u1F97', '\u1F98', '\u1F99', '\u1F9A', '\u1F9B', '\u1F9C', '\u1F9D', '\u1F9E', '\u1F9F', '\u1FA0', '\u1FA1', '\u1FA2', '\u1FA3', '\u1FA4', '\u1FA5', '\u1FA6', '\u1FA7', '\u1FA8', '\u1FA9', '\u1FAA', '\u1FAB', '\u1FAC', '\u1FAD', '\u1FAE', '\u1FAF', '\u1FB2', '\u1FB3', '\u1FB4', '\u1FB6', '\u1FB7', '\u1FB8', '\u1FB9', '\u1FBA', '\u1FBB', '\u1FBC', '\u1FBE', '\u1FC2', '\u1FC3', '\u1FC4', '\u1FC6', '\u1FC7', '\u1FC8', '\u1FC9', '\u1FCA', '\u1FCB', '\u1FCC', '\u1FD2', '\u1FD3', '\u1FD6', '\u1FD7', '\u1FD8', '\u1FD9', '\u1FDA', '\u1FDB', '\u1FE2', '\u1FE3', '\u1FE4', '\u1FE6', '\u1FE7', '\u1FE8', '\u1FE9', '\u1FEA', '\u1FEB', '\u1FEC', '\u1FF2', '\u1FF3', '\u1FF4', '\u1FF6', '\u1FF7', '\u1FF8', '\u1FF9', '\u1FFA', '\u1FFB', '\u1FFC', '\u20A8', '\u2102', '\u2103', '\u2107', '\u2109', '\u210B', '\u210C', '\u210D', '\u2110', '\u2111', '\u2112', '\u2115', '\u2116', '\u2119', '\u211A', '\u211B', '\u211C', '\u211D', '\u2120', '\u2121', '\u2122', '\u2124', '\u2126', '\u2128', '\u212A', '\u212B', '\u212C', '\u212D', '\u2130', '\u2131', '\u2133', '\u213E', '\u213F', '\u2145', '\u2160', '\u2161', '\u2162', '\u2163', '\u2164', '\u2165', '\u2166', '\u2167', '\u2168', '\u2169', '\u216A', '\u216B', '\u216C', '\u216D', '\u216E', '\u216F', '\u24B6', '\u24B7', '\u24B8', '\u24B9', '\u24BA', '\u24BB', '\u24BC', '\u24BD', '\u24BE', '\u24BF', '\u24C0', '\u24C1', '\u24C2', '\u24C3', '\u24C4', '\u24C5', '\u24C6', '\u24C7', '\u24C8', '\u24C9', '\u24CA', '\u24CB', '\u24CC', '\u24CD', '\u24CE', '\u24CF', '\u3371', '\u3373', '\u3375', '\u3380', '\u3381', '\u3382', '\u3383', '\u3384', '\u3385', '\u3386', '\u3387', '\u338A', '\u338B', '\u338C', '\u3390', '\u3391', '\u3392', '\u3393', '\u3394', '\u33A9', '\u33AA', '\u33AB', '\u33AC', '\u33B4', '\u33B5', '\u33B6', '\u33B7', '\u33B8', '\u33B9', '\u33BA', '\u33BB', '\u33BC', '\u33BD', '\u33BE', '\u33BF', '\u33C0', '\u33C1', '\u33C3', '\u33C6', '\u33C7', '\u33C8', '\u33C9', '\u33CB', '\u33CD', '\u33CE', '\u33D7', '\u33D9', '\u33DA', '\u33DC', '\u33DD', '\uFB00', '\uFB01', '\uFB02', '\uFB03', '\uFB04', '\uFB05', '\uFB06', '\uFB13', '\uFB14', '\uFB15', '\uFB16', '\uFB17', '\uFF21', '\uFF22', '\uFF23', '\uFF24', '\uFF25', '\uFF26', '\uFF27', '\uFF28', '\uFF29', '\uFF2A', '\uFF2B', '\uFF2C', '\uFF2D', '\uFF2E', '\uFF2F', '\uFF30', '\uFF31', '\uFF32', '\uFF33', '\uFF34', '\uFF35', '\uFF36', '\uFF37', '\uFF38', '\uFF39', '\uFF3A', }; final static String[] B2replace = new String[] { "\u0061", "\u0062", "\u0063", "\u0064", "\u0065", "\u0066", "\u0067", "\u0068", "\u0069", "\u006A", "\u006B", "\u006C", "\u006D", "\u006E", "\u006F", "\u0070", "\u0071", "\u0072", "\u0073", "\u0074", "\u0075", "\u0076", "\u0077", "\u0078", "\u0079", "\u007A", "\u03BC", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6", "\u00E7", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u00F0", "\u00F1", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u00FD", "\u00FE", "\u0073\u0073", "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0069\u0307", "\u0133", "\u0135", "\u0137", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", "\u0148", "\u02BC\u006E", "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u00FF", "\u017A", "\u017C", "\u017E", "\u0073", "\u0253", "\u0183", "\u0185", "\u0254", "\u0188", "\u0256", "\u0257", "\u018C", "\u01DD", "\u0259", "\u025B", "\u0192", "\u0260", "\u0263", "\u0269", "\u0268", "\u0199", "\u026F", "\u0272", "\u0275", "\u01A1", "\u01A3", "\u01A5", "\u0280", "\u01A8", "\u0283", "\u01AD", "\u0288", "\u01B0", "\u028A", "\u028B", "\u01B4", "\u01B6", "\u0292", "\u01B9", "\u01BD", "\u01C6", "\u01C6", "\u01C9", "\u01C9", "\u01CC", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", "\u01DC", "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", "\u01EF", "\u006A\u030C", "\u01F3", "\u01F3", "\u01F5", "\u0195", "\u01BF", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u019E", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", "\u0233", "\u03B9", "\u0020\u03B9", "\u03AC", "\u03AD", "\u03AE", "\u03AF", "\u03CC", "\u03CD", "\u03CE", "\u03B9\u0308\u0301", "\u03B1", "\u03B2", "\u03B3", "\u03B4", "\u03B5", "\u03B6", "\u03B7", "\u03B8", "\u03B9", "\u03BA", "\u03BB", "\u03BC", "\u03BD", "\u03BE", "\u03BF", "\u03C0", "\u03C1", "\u03C3", "\u03C4", "\u03C5", "\u03C6", "\u03C7", "\u03C8", "\u03C9", "\u03CA", "\u03CB", "\u03C5\u0308\u0301", "\u03C3", "\u03B2", "\u03B8", "\u03C5", "\u03CD", "\u03CB", "\u03C6", "\u03C0", "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", "\u03EF", "\u03BA", "\u03C1", "\u03C3", "\u03B8", "\u03B5", "\u0450", "\u0451", "\u0452", "\u0453", "\u0454", "\u0455", "\u0456", "\u0457", "\u0458", "\u0459", "\u045A", "\u045B", "\u045C", "\u045D", "\u045E", "\u045F", "\u0430", "\u0431", "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439", "\u043A", "\u043B", "\u043C", "\u043D", "\u043E", "\u043F", "\u0440", "\u0441", "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449", "\u044A", "\u044B", "\u044C", "\u044D", "\u044E", "\u044F", "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", "\u04CE", "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F9", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0561", "\u0562", "\u0563", "\u0564", "\u0565", "\u0566", "\u0567", "\u0568", "\u0569", "\u056A", "\u056B", "\u056C", "\u056D", "\u056E", "\u056F", "\u0570", "\u0571", "\u0572", "\u0573", "\u0574", "\u0575", "\u0576", "\u0577", "\u0578", "\u0579", "\u057A", "\u057B", "\u057C", "\u057D", "\u057E", "\u057F", "\u0580", "\u0581", "\u0582", "\u0583", "\u0584", "\u0585", "\u0586", "\u0565\u0582", "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", "\u1E95", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u1E61", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1F00", "\u1F01", "\u1F02", "\u1F03", "\u1F04", "\u1F05", "\u1F06", "\u1F07", "\u1F10", "\u1F11", "\u1F12", "\u1F13", "\u1F14", "\u1F15", "\u1F20", "\u1F21", "\u1F22", "\u1F23", "\u1F24", "\u1F25", "\u1F26", "\u1F27", "\u1F30", "\u1F31", "\u1F32", "\u1F33", "\u1F34", "\u1F35", "\u1F36", "\u1F37", "\u1F40", "\u1F41", "\u1F42", "\u1F43", "\u1F44", "\u1F45", "\u03C5\u0313", "\u03C5\u0313\u0300", "\u03C5\u0313\u0301", "\u03C5\u0313\u0342", "\u1F51", "\u1F53", "\u1F55", "\u1F57", "\u1F60", "\u1F61", "\u1F62", "\u1F63", "\u1F64", "\u1F65", "\u1F66", "\u1F67", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F70\u03B9", "\u03B1\u03B9", "\u03AC\u03B9", "\u03B1\u0342", "\u03B1\u0342\u03B9", "\u1FB0", "\u1FB1", "\u1F70", "\u1F71", "\u03B1\u03B9", "\u03B9", "\u1F74\u03B9", "\u03B7\u03B9", "\u03AE\u03B9", "\u03B7\u0342", "\u03B7\u0342\u03B9", "\u1F72", "\u1F73", "\u1F74", "\u1F75", "\u03B7\u03B9", "\u03B9\u0308\u0300", "\u03B9\u0308\u0301", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u1FD0", "\u1FD1", "\u1F76", "\u1F77", "\u03C5\u0308\u0300", "\u03C5\u0308\u0301", "\u03C1\u0313", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u1FE0", "\u1FE1", "\u1F7A", "\u1F7B", "\u1FE5", "\u1F7C\u03B9", "\u03C9\u03B9", "\u03CE\u03B9", "\u03C9\u0342", "\u03C9\u0342\u03B9", "\u1F78", "\u1F79", "\u1F7C", "\u1F7D", "\u03C9\u03B9", "\u0072\u0073", "\u0063", "\u00B0\u0063", "\u025B", "\u00B0\u0066", "\u0068", "\u0068", "\u0068", "\u0069", "\u0069", "\u006C", "\u006E", "\u006E\u006F", "\u0070", "\u0071", "\u0072", "\u0072", "\u0072", "\u0073\u006D", "\u0074\u0065\u006C", "\u0074\u006D", "\u007A", "\u03C9", "\u007A", "\u006B", "\u00E5", "\u0062", "\u0063", "\u0065", "\u0066", "\u006D", "\u03B3", "\u03C0", "\u0064", "\u2170", "\u2171", "\u2172", "\u2173", "\u2174", "\u2175", "\u2176", "\u2177", "\u2178", "\u2179", "\u217A", "\u217B", "\u217C", "\u217D", "\u217E", "\u217F", "\u24D0", "\u24D1", "\u24D2", "\u24D3", "\u24D4", "\u24D5", "\u24D6", "\u24D7", "\u24D8", "\u24D9", "\u24DA", "\u24DB", "\u24DC", "\u24DD", "\u24DE", "\u24DF", "\u24E0", "\u24E1", "\u24E2", "\u24E3", "\u24E4", "\u24E5", "\u24E6", "\u24E7", "\u24E8", "\u24E9", "\u0068\u0070\u0061", "\u0061\u0075", "\u006F\u0076", "\u0070\u0061", "\u006E\u0061", "\u03BC\u0061", "\u006D\u0061", "\u006B\u0061", "\u006B\u0062", "\u006D\u0062", "\u0067\u0062", "\u0070\u0066", "\u006E\u0066", "\u03BC\u0066", "\u0068\u007A", "\u006B\u0068\u007A", "\u006D\u0068\u007A", "\u0067\u0068\u007A", "\u0074\u0068\u007A", "\u0070\u0061", "\u006B\u0070\u0061", "\u006D\u0070\u0061", "\u0067\u0070\u0061", "\u0070\u0076", "\u006E\u0076", "\u03BC\u0076", "\u006D\u0076", "\u006B\u0076", "\u006D\u0076", "\u0070\u0077", "\u006E\u0077", "\u03BC\u0077", "\u006D\u0077", "\u006B\u0077", "\u006D\u0077", "\u006B\u03C9", "\u006D\u03C9", "\u0062\u0071", "\u0063\u2215\u006B\u0067", "\u0063\u006F\u002E", "\u0064\u0062", "\u0067\u0079", "\u0068\u0070", "\u006B\u006B", "\u006B\u006D", "\u0070\u0068", "\u0070\u0070\u006D", "\u0070\u0072", "\u0073\u0076", "\u0077\u0062", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\uFF41", "\uFF42", "\uFF43", "\uFF44", "\uFF45", "\uFF46", "\uFF47", "\uFF48", "\uFF49", "\uFF4A", "\uFF4B", "\uFF4C", "\uFF4D", "\uFF4E", "\uFF4F", "\uFF50", "\uFF51", "\uFF52", "\uFF53", "\uFF54", "\uFF55", "\uFF56", "\uFF57", "\uFF58", "\uFF59", "\uFF5A", }; final static char[] B3search = new char[] { '\u0041', '\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047', '\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D', '\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053', '\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059', '\u005A', '\u00B5', '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u00C4', '\u00C5', '\u00C6', '\u00C7', '\u00C8', '\u00C9', '\u00CA', '\u00CB', '\u00CC', '\u00CD', '\u00CE', '\u00CF', '\u00D0', '\u00D1', '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u00D6', '\u00D8', '\u00D9', '\u00DA', '\u00DB', '\u00DC', '\u00DD', '\u00DE', '\u00DF', '\u0100', '\u0102', '\u0104', '\u0106', '\u0108', '\u010A', '\u010C', '\u010E', '\u0110', '\u0112', '\u0114', '\u0116', '\u0118', '\u011A', '\u011C', '\u011E', '\u0120', '\u0122', '\u0124', '\u0126', '\u0128', '\u012A', '\u012C', '\u012E', '\u0130', '\u0132', '\u0134', '\u0136', '\u0139', '\u013B', '\u013D', '\u013F', '\u0141', '\u0143', '\u0145', '\u0147', '\u0149', '\u014A', '\u014C', '\u014E', '\u0150', '\u0152', '\u0154', '\u0156', '\u0158', '\u015A', '\u015C', '\u015E', '\u0160', '\u0162', '\u0164', '\u0166', '\u0168', '\u016A', '\u016C', '\u016E', '\u0170', '\u0172', '\u0174', '\u0176', '\u0178', '\u0179', '\u017B', '\u017D', '\u017F', '\u0181', '\u0182', '\u0184', '\u0186', '\u0187', '\u0189', '\u018A', '\u018B', '\u018E', '\u018F', '\u0190', '\u0191', '\u0193', '\u0194', '\u0196', '\u0197', '\u0198', '\u019C', '\u019D', '\u019F', '\u01A0', '\u01A2', '\u01A4', '\u01A6', '\u01A7', '\u01A9', '\u01AC', '\u01AE', '\u01AF', '\u01B1', '\u01B2', '\u01B3', '\u01B5', '\u01B7', '\u01B8', '\u01BC', '\u01C4', '\u01C5', '\u01C7', '\u01C8', '\u01CA', '\u01CB', '\u01CD', '\u01CF', '\u01D1', '\u01D3', '\u01D5', '\u01D7', '\u01D9', '\u01DB', '\u01DE', '\u01E0', '\u01E2', '\u01E4', '\u01E6', '\u01E8', '\u01EA', '\u01EC', '\u01EE', '\u01F0', '\u01F1', '\u01F2', '\u01F4', '\u01F6', '\u01F7', '\u01F8', '\u01FA', '\u01FC', '\u01FE', '\u0200', '\u0202', '\u0204', '\u0206', '\u0208', '\u020A', '\u020C', '\u020E', '\u0210', '\u0212', '\u0214', '\u0216', '\u0218', '\u021A', '\u021C', '\u021E', '\u0220', '\u0222', '\u0224', '\u0226', '\u0228', '\u022A', '\u022C', '\u022E', '\u0230', '\u0232', '\u0345', '\u0386', '\u0388', '\u0389', '\u038A', '\u038C', '\u038E', '\u038F', '\u0390', '\u0391', '\u0392', '\u0393', '\u0394', '\u0395', '\u0396', '\u0397', '\u0398', '\u0399', '\u039A', '\u039B', '\u039C', '\u039D', '\u039E', '\u039F', '\u03A0', '\u03A1', '\u03A3', '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9', '\u03AA', '\u03AB', '\u03B0', '\u03C2', '\u03D0', '\u03D1', '\u03D5', '\u03D6', '\u03D8', '\u03DA', '\u03DC', '\u03DE', '\u03E0', '\u03E2', '\u03E4', '\u03E6', '\u03E8', '\u03EA', '\u03EC', '\u03EE', '\u03F0', '\u03F1', '\u03F2', '\u03F4', '\u03F5', '\u0400', '\u0401', '\u0402', '\u0403', '\u0404', '\u0405', '\u0406', '\u0407', '\u0408', '\u0409', '\u040A', '\u040B', '\u040C', '\u040D', '\u040E', '\u040F', '\u0410', '\u0411', '\u0412', '\u0413', '\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419', '\u041A', '\u041B', '\u041C', '\u041D', '\u041E', '\u041F', '\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425', '\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B', '\u042C', '\u042D', '\u042E', '\u042F', '\u0460', '\u0462', '\u0464', '\u0466', '\u0468', '\u046A', '\u046C', '\u046E', '\u0470', '\u0472', '\u0474', '\u0476', '\u0478', '\u047A', '\u047C', '\u047E', '\u0480', '\u048A', '\u048C', '\u048E', '\u0490', '\u0492', '\u0494', '\u0496', '\u0498', '\u049A', '\u049C', '\u049E', '\u04A0', '\u04A2', '\u04A4', '\u04A6', '\u04A8', '\u04AA', '\u04AC', '\u04AE', '\u04B0', '\u04B2', '\u04B4', '\u04B6', '\u04B8', '\u04BA', '\u04BC', '\u04BE', '\u04C1', '\u04C3', '\u04C5', '\u04C7', '\u04C9', '\u04CB', '\u04CD', '\u04D0', '\u04D2', '\u04D4', '\u04D6', '\u04D8', '\u04DA', '\u04DC', '\u04DE', '\u04E0', '\u04E2', '\u04E4', '\u04E6', '\u04E8', '\u04EA', '\u04EC', '\u04EE', '\u04F0', '\u04F2', '\u04F4', '\u04F8', '\u0500', '\u0502', '\u0504', '\u0506', '\u0508', '\u050A', '\u050C', '\u050E', '\u0531', '\u0532', '\u0533', '\u0534', '\u0535', '\u0536', '\u0537', '\u0538', '\u0539', '\u053A', '\u053B', '\u053C', '\u053D', '\u053E', '\u053F', '\u0540', '\u0541', '\u0542', '\u0543', '\u0544', '\u0545', '\u0546', '\u0547', '\u0548', '\u0549', '\u054A', '\u054B', '\u054C', '\u054D', '\u054E', '\u054F', '\u0550', '\u0551', '\u0552', '\u0553', '\u0554', '\u0555', '\u0556', '\u0587', '\u1E00', '\u1E02', '\u1E04', '\u1E06', '\u1E08', '\u1E0A', '\u1E0C', '\u1E0E', '\u1E10', '\u1E12', '\u1E14', '\u1E16', '\u1E18', '\u1E1A', '\u1E1C', '\u1E1E', '\u1E20', '\u1E22', '\u1E24', '\u1E26', '\u1E28', '\u1E2A', '\u1E2C', '\u1E2E', '\u1E30', '\u1E32', '\u1E34', '\u1E36', '\u1E38', '\u1E3A', '\u1E3C', '\u1E3E', '\u1E40', '\u1E42', '\u1E44', '\u1E46', '\u1E48', '\u1E4A', '\u1E4C', '\u1E4E', '\u1E50', '\u1E52', '\u1E54', '\u1E56', '\u1E58', '\u1E5A', '\u1E5C', '\u1E5E', '\u1E60', '\u1E62', '\u1E64', '\u1E66', '\u1E68', '\u1E6A', '\u1E6C', '\u1E6E', '\u1E70', '\u1E72', '\u1E74', '\u1E76', '\u1E78', '\u1E7A', '\u1E7C', '\u1E7E', '\u1E80', '\u1E82', '\u1E84', '\u1E86', '\u1E88', '\u1E8A', '\u1E8C', '\u1E8E', '\u1E90', '\u1E92', '\u1E94', '\u1E96', '\u1E97', '\u1E98', '\u1E99', '\u1E9A', '\u1E9B', '\u1EA0', '\u1EA2', '\u1EA4', '\u1EA6', '\u1EA8', '\u1EAA', '\u1EAC', '\u1EAE', '\u1EB0', '\u1EB2', '\u1EB4', '\u1EB6', '\u1EB8', '\u1EBA', '\u1EBC', '\u1EBE', '\u1EC0', '\u1EC2', '\u1EC4', '\u1EC6', '\u1EC8', '\u1ECA', '\u1ECC', '\u1ECE', '\u1ED0', '\u1ED2', '\u1ED4', '\u1ED6', '\u1ED8', '\u1EDA', '\u1EDC', '\u1EDE', '\u1EE0', '\u1EE2', '\u1EE4', '\u1EE6', '\u1EE8', '\u1EEA', '\u1EEC', '\u1EEE', '\u1EF0', '\u1EF2', '\u1EF4', '\u1EF6', '\u1EF8', '\u1F08', '\u1F09', '\u1F0A', '\u1F0B', '\u1F0C', '\u1F0D', '\u1F0E', '\u1F0F', '\u1F18', '\u1F19', '\u1F1A', '\u1F1B', '\u1F1C', '\u1F1D', '\u1F28', '\u1F29', '\u1F2A', '\u1F2B', '\u1F2C', '\u1F2D', '\u1F2E', '\u1F2F', '\u1F38', '\u1F39', '\u1F3A', '\u1F3B', '\u1F3C', '\u1F3D', '\u1F3E', '\u1F3F', '\u1F48', '\u1F49', '\u1F4A', '\u1F4B', '\u1F4C', '\u1F4D', '\u1F50', '\u1F52', '\u1F54', '\u1F56', '\u1F59', '\u1F5B', '\u1F5D', '\u1F5F', '\u1F68', '\u1F69', '\u1F6A', '\u1F6B', '\u1F6C', '\u1F6D', '\u1F6E', '\u1F6F', '\u1F80', '\u1F81', '\u1F82', '\u1F83', '\u1F84', '\u1F85', '\u1F86', '\u1F87', '\u1F88', '\u1F89', '\u1F8A', '\u1F8B', '\u1F8C', '\u1F8D', '\u1F8E', '\u1F8F', '\u1F90', '\u1F91', '\u1F92', '\u1F93', '\u1F94', '\u1F95', '\u1F96', '\u1F97', '\u1F98', '\u1F99', '\u1F9A', '\u1F9B', '\u1F9C', '\u1F9D', '\u1F9E', '\u1F9F', '\u1FA0', '\u1FA1', '\u1FA2', '\u1FA3', '\u1FA4', '\u1FA5', '\u1FA6', '\u1FA7', '\u1FA8', '\u1FA9', '\u1FAA', '\u1FAB', '\u1FAC', '\u1FAD', '\u1FAE', '\u1FAF', '\u1FB2', '\u1FB3', '\u1FB4', '\u1FB6', '\u1FB7', '\u1FB8', '\u1FB9', '\u1FBA', '\u1FBB', '\u1FBC', '\u1FBE', '\u1FC2', '\u1FC3', '\u1FC4', '\u1FC6', '\u1FC7', '\u1FC8', '\u1FC9', '\u1FCA', '\u1FCB', '\u1FCC', '\u1FD2', '\u1FD3', '\u1FD6', '\u1FD7', '\u1FD8', '\u1FD9', '\u1FDA', '\u1FDB', '\u1FE2', '\u1FE3', '\u1FE4', '\u1FE6', '\u1FE7', '\u1FE8', '\u1FE9', '\u1FEA', '\u1FEB', '\u1FEC', '\u1FF2', '\u1FF3', '\u1FF4', '\u1FF6', '\u1FF7', '\u1FF8', '\u1FF9', '\u1FFA', '\u1FFB', '\u1FFC', '\u2126', '\u212A', '\u212B', '\u2160', '\u2161', '\u2162', '\u2163', '\u2164', '\u2165', '\u2166', '\u2167', '\u2168', '\u2169', '\u216A', '\u216B', '\u216C', '\u216D', '\u216E', '\u216F', '\u24B6', '\u24B7', '\u24B8', '\u24B9', '\u24BA', '\u24BB', '\u24BC', '\u24BD', '\u24BE', '\u24BF', '\u24C0', '\u24C1', '\u24C2', '\u24C3', '\u24C4', '\u24C5', '\u24C6', '\u24C7', '\u24C8', '\u24C9', '\u24CA', '\u24CB', '\u24CC', '\u24CD', '\u24CE', '\u24CF', '\uFB00', '\uFB01', '\uFB02', '\uFB03', '\uFB04', '\uFB05', '\uFB06', '\uFB13', '\uFB14', '\uFB15', '\uFB16', '\uFB17', '\uFF21', '\uFF22', '\uFF23', '\uFF24', '\uFF25', '\uFF26', '\uFF27', '\uFF28', '\uFF29', '\uFF2A', '\uFF2B', '\uFF2C', '\uFF2D', '\uFF2E', '\uFF2F', '\uFF30', '\uFF31', '\uFF32', '\uFF33', '\uFF34', '\uFF35', '\uFF36', '\uFF37', '\uFF38', '\uFF39', '\uFF3A', }; final static String[] B3replace = new String[] { "\u0061", "\u0062", "\u0063", "\u0064", "\u0065", "\u0066", "\u0067", "\u0068", "\u0069", "\u006A", "\u006B", "\u006C", "\u006D", "\u006E", "\u006F", "\u0070", "\u0071", "\u0072", "\u0073", "\u0074", "\u0075", "\u0076", "\u0077", "\u0078", "\u0079", "\u007A", "\u03BC", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6", "\u00E7", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u00F0", "\u00F1", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u00FD", "\u00FE", "\u0073\u0073", "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0069\u0307", "\u0133", "\u0135", "\u0137", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", "\u0148", "\u02BC\u006E", "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u00FF", "\u017A", "\u017C", "\u017E", "\u0073", "\u0253", "\u0183", "\u0185", "\u0254", "\u0188", "\u0256", "\u0257", "\u018C", "\u01DD", "\u0259", "\u025B", "\u0192", "\u0260", "\u0263", "\u0269", "\u0268", "\u0199", "\u026F", "\u0272", "\u0275", "\u01A1", "\u01A3", "\u01A5", "\u0280", "\u01A8", "\u0283", "\u01AD", "\u0288", "\u01B0", "\u028A", "\u028B", "\u01B4", "\u01B6", "\u0292", "\u01B9", "\u01BD", "\u01C6", "\u01C6", "\u01C9", "\u01C9", "\u01CC", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", "\u01DC", "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", "\u01EF", "\u006A\u030C", "\u01F3", "\u01F3", "\u01F5", "\u0195", "\u01BF", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u019E", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", "\u0233", "\u03B9", "\u03AC", "\u03AD", "\u03AE", "\u03AF", "\u03CC", "\u03CD", "\u03CE", "\u03B9\u0308\u0301", "\u03B1", "\u03B2", "\u03B3", "\u03B4", "\u03B5", "\u03B6", "\u03B7", "\u03B8", "\u03B9", "\u03BA", "\u03BB", "\u03BC", "\u03BD", "\u03BE", "\u03BF", "\u03C0", "\u03C1", "\u03C3", "\u03C4", "\u03C5", "\u03C6", "\u03C7", "\u03C8", "\u03C9", "\u03CA", "\u03CB", "\u03C5\u0308\u0301", "\u03C3", "\u03B2", "\u03B8", "\u03C6", "\u03C0", "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", "\u03EF", "\u03BA", "\u03C1", "\u03C3", "\u03B8", "\u03B5", "\u0450", "\u0451", "\u0452", "\u0453", "\u0454", "\u0455", "\u0456", "\u0457", "\u0458", "\u0459", "\u045A", "\u045B", "\u045C", "\u045D", "\u045E", "\u045F", "\u0430", "\u0431", "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439", "\u043A", "\u043B", "\u043C", "\u043D", "\u043E", "\u043F", "\u0440", "\u0441", "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449", "\u044A", "\u044B", "\u044C", "\u044D", "\u044E", "\u044F", "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", "\u04CE", "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F9", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0561", "\u0562", "\u0563", "\u0564", "\u0565", "\u0566", "\u0567", "\u0568", "\u0569", "\u056A", "\u056B", "\u056C", "\u056D", "\u056E", "\u056F", "\u0570", "\u0571", "\u0572", "\u0573", "\u0574", "\u0575", "\u0576", "\u0577", "\u0578", "\u0579", "\u057A", "\u057B", "\u057C", "\u057D", "\u057E", "\u057F", "\u0580", "\u0581", "\u0582", "\u0583", "\u0584", "\u0585", "\u0586", "\u0565\u0582", "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", "\u1E95", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u1E61", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1F00", "\u1F01", "\u1F02", "\u1F03", "\u1F04", "\u1F05", "\u1F06", "\u1F07", "\u1F10", "\u1F11", "\u1F12", "\u1F13", "\u1F14", "\u1F15", "\u1F20", "\u1F21", "\u1F22", "\u1F23", "\u1F24", "\u1F25", "\u1F26", "\u1F27", "\u1F30", "\u1F31", "\u1F32", "\u1F33", "\u1F34", "\u1F35", "\u1F36", "\u1F37", "\u1F40", "\u1F41", "\u1F42", "\u1F43", "\u1F44", "\u1F45", "\u03C5\u0313", "\u03C5\u0313\u0300", "\u03C5\u0313\u0301", "\u03C5\u0313\u0342", "\u1F51", "\u1F53", "\u1F55", "\u1F57", "\u1F60", "\u1F61", "\u1F62", "\u1F63", "\u1F64", "\u1F65", "\u1F66", "\u1F67", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F70\u03B9", "\u03B1\u03B9", "\u03AC\u03B9", "\u03B1\u0342", "\u03B1\u0342\u03B9", "\u1FB0", "\u1FB1", "\u1F70", "\u1F71", "\u03B1\u03B9", "\u03B9", "\u1F74\u03B9", "\u03B7\u03B9", "\u03AE\u03B9", "\u03B7\u0342", "\u03B7\u0342\u03B9", "\u1F72", "\u1F73", "\u1F74", "\u1F75", "\u03B7\u03B9", "\u03B9\u0308\u0300", "\u03B9\u0308\u0301", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u1FD0", "\u1FD1", "\u1F76", "\u1F77", "\u03C5\u0308\u0300", "\u03C5\u0308\u0301", "\u03C1\u0313", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u1FE0", "\u1FE1", "\u1F7A", "\u1F7B", "\u1FE5", "\u1F7C\u03B9", "\u03C9\u03B9", "\u03CE\u03B9", "\u03C9\u0342", "\u03C9\u0342\u03B9", "\u1F78", "\u1F79", "\u1F7C", "\u1F7D", "\u03C9\u03B9", "\u03C9", "\u006B", "\u00E5", "\u2170", "\u2171", "\u2172", "\u2173", "\u2174", "\u2175", "\u2176", "\u2177", "\u2178", "\u2179", "\u217A", "\u217B", "\u217C", "\u217D", "\u217E", "\u217F", "\u24D0", "\u24D1", "\u24D2", "\u24D3", "\u24D4", "\u24D5", "\u24D6", "\u24D7", "\u24D8", "\u24D9", "\u24DA", "\u24DB", "\u24DC", "\u24DD", "\u24DE", "\u24DF", "\u24E0", "\u24E1", "\u24E2", "\u24E3", "\u24E4", "\u24E5", "\u24E6", "\u24E7", "\u24E8", "\u24E9", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\uFF41", "\uFF42", "\uFF43", "\uFF44", "\uFF45", "\uFF46", "\uFF47", "\uFF48", "\uFF49", "\uFF4A", "\uFF4B", "\uFF4C", "\uFF4D", "\uFF4E", "\uFF4F", "\uFF50", "\uFF51", "\uFF52", "\uFF53", "\uFF54", "\uFF55", "\uFF56", "\uFF57", "\uFF58", "\uFF59", "\uFF5A", }; final static char[] C11 = new char[] { '\u0020', }; final static char[] C12 = new char[] { '\u00A0', '\u1680', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A', '\u200B', '\u202F', '\u205F', '\u3000', }; final static char[][] C21 = new char[][] { new char[] { '\u0000', '\u001F' }, new char[] { '\u007F' }, }; final static char[][] C22 = new char[][] { new char[] { '\u0080', '\u009F' }, new char[] { '\u06DD' }, new char[] { '\u070F' }, new char[] { '\u180E' }, new char[] { '\u200C' }, new char[] { '\u200D' }, new char[] { '\u2028' }, new char[] { '\u2029' }, new char[] { '\u2060' }, new char[] { '\u2061' }, new char[] { '\u2062' }, new char[] { '\u2063' }, new char[] { '\u206A', '\u206F' }, new char[] { '\uFEFF' }, new char[] { '\uFFF9', '\uFFFC' }, }; final static char[][] C3 = new char[][] { new char[] { '\uE000', '\uF8FF' }, }; final static char[][] C4 = new char[][] { new char[] { '\uFDD0', '\uFDEF' }, new char[] { '\uFFFE', '\uFFFF' }, }; final static char[][] C5 = new char[][] { new char[] { '\uD800', '\uDFFF' }, }; final static char[][] C6 = new char[][] { new char[] { '\uFFF9' }, new char[] { '\uFFFA' }, new char[] { '\uFFFB' }, new char[] { '\uFFFC' }, new char[] { '\uFFFD' }, }; final static char[][] C7 = new char[][] { new char[] { '\u2FF0', '\u2FFB' }, }; final static char[][] C8 = new char[][] { new char[] { '\u0340' }, new char[] { '\u0341' }, new char[] { '\u200E' }, new char[] { '\u200F' }, new char[] { '\u202A' }, new char[] { '\u202B' }, new char[] { '\u202C' }, new char[] { '\u202D' }, new char[] { '\u202E' }, new char[] { '\u206A' }, new char[] { '\u206B' }, new char[] { '\u206C' }, new char[] { '\u206D' }, new char[] { '\u206E' }, new char[] { '\u206F' }, }; final static char[][] D1 = new char[][] { new char[] { '\u05BE' }, new char[] { '\u05C0' }, new char[] { '\u05C3' }, new char[] { '\u05D0', '\u05EA' }, new char[] { '\u05F0', '\u05F4' }, new char[] { '\u061B' }, new char[] { '\u061F' }, new char[] { '\u0621', '\u063A' }, new char[] { '\u0640', '\u064A' }, new char[] { '\u066D', '\u066F' }, new char[] { '\u0671', '\u06D5' }, new char[] { '\u06DD' }, new char[] { '\u06E5', '\u06E6' }, new char[] { '\u06FA', '\u06FE' }, new char[] { '\u0700', '\u070D' }, new char[] { '\u0710' }, new char[] { '\u0712', '\u072C' }, new char[] { '\u0780', '\u07A5' }, new char[] { '\u07B1' }, new char[] { '\u200F' }, new char[] { '\uFB1D' }, new char[] { '\uFB1F', '\uFB28' }, new char[] { '\uFB2A', '\uFB36' }, new char[] { '\uFB38', '\uFB3C' }, new char[] { '\uFB3E' }, new char[] { '\uFB40', '\uFB41' }, new char[] { '\uFB43', '\uFB44' }, new char[] { '\uFB46', '\uFBB1' }, new char[] { '\uFBD3', '\uFD3D' }, new char[] { '\uFD50', '\uFD8F' }, new char[] { '\uFD92', '\uFDC7' }, new char[] { '\uFDF0', '\uFDFC' }, new char[] { '\uFE70', '\uFE74' }, new char[] { '\uFE76', '\uFEFC' }, }; final static char[][] D2 = new char[][] { new char[] { '\u0041', '\u005A' }, new char[] { '\u0061', '\u007A' }, new char[] { '\u00AA' }, new char[] { '\u00B5' }, new char[] { '\u00BA' }, new char[] { '\u00C0', '\u00D6' }, new char[] { '\u00D8', '\u00F6' }, new char[] { '\u00F8', '\u0220' }, new char[] { '\u0222', '\u0233' }, new char[] { '\u0250', '\u02AD' }, new char[] { '\u02B0', '\u02B8' }, new char[] { '\u02BB', '\u02C1' }, new char[] { '\u02D0', '\u02D1' }, new char[] { '\u02E0', '\u02E4' }, new char[] { '\u02EE' }, new char[] { '\u037A' }, new char[] { '\u0386' }, new char[] { '\u0388', '\u038A' }, new char[] { '\u038C' }, new char[] { '\u038E', '\u03A1' }, new char[] { '\u03A3', '\u03CE' }, new char[] { '\u03D0', '\u03F5' }, new char[] { '\u0400', '\u0482' }, new char[] { '\u048A', '\u04CE' }, new char[] { '\u04D0', '\u04F5' }, new char[] { '\u04F8', '\u04F9' }, new char[] { '\u0500', '\u050F' }, new char[] { '\u0531', '\u0556' }, new char[] { '\u0559', '\u055F' }, new char[] { '\u0561', '\u0587' }, new char[] { '\u0589' }, new char[] { '\u0903' }, new char[] { '\u0905', '\u0939' }, new char[] { '\u093D', '\u0940' }, new char[] { '\u0949', '\u094C' }, new char[] { '\u0950' }, new char[] { '\u0958', '\u0961' }, new char[] { '\u0964', '\u0970' }, new char[] { '\u0982', '\u0983' }, new char[] { '\u0985', '\u098C' }, new char[] { '\u098F', '\u0990' }, new char[] { '\u0993', '\u09A8' }, new char[] { '\u09AA', '\u09B0' }, new char[] { '\u09B2' }, new char[] { '\u09B6', '\u09B9' }, new char[] { '\u09BE', '\u09C0' }, new char[] { '\u09C7', '\u09C8' }, new char[] { '\u09CB', '\u09CC' }, new char[] { '\u09D7' }, new char[] { '\u09DC', '\u09DD' }, new char[] { '\u09DF', '\u09E1' }, new char[] { '\u09E6', '\u09F1' }, new char[] { '\u09F4', '\u09FA' }, new char[] { '\u0A05', '\u0A0A' }, new char[] { '\u0A0F', '\u0A10' }, new char[] { '\u0A13', '\u0A28' }, new char[] { '\u0A2A', '\u0A30' }, new char[] { '\u0A32', '\u0A33' }, new char[] { '\u0A35', '\u0A36' }, new char[] { '\u0A38', '\u0A39' }, new char[] { '\u0A3E', '\u0A40' }, new char[] { '\u0A59', '\u0A5C' }, new char[] { '\u0A5E' }, new char[] { '\u0A66', '\u0A6F' }, new char[] { '\u0A72', '\u0A74' }, new char[] { '\u0A83' }, new char[] { '\u0A85', '\u0A8B' }, new char[] { '\u0A8D' }, new char[] { '\u0A8F', '\u0A91' }, new char[] { '\u0A93', '\u0AA8' }, new char[] { '\u0AAA', '\u0AB0' }, new char[] { '\u0AB2', '\u0AB3' }, new char[] { '\u0AB5', '\u0AB9' }, new char[] { '\u0ABD', '\u0AC0' }, new char[] { '\u0AC9' }, new char[] { '\u0ACB', '\u0ACC' }, new char[] { '\u0AD0' }, new char[] { '\u0AE0' }, new char[] { '\u0AE6', '\u0AEF' }, new char[] { '\u0B02', '\u0B03' }, new char[] { '\u0B05', '\u0B0C' }, new char[] { '\u0B0F', '\u0B10' }, new char[] { '\u0B13', '\u0B28' }, new char[] { '\u0B2A', '\u0B30' }, new char[] { '\u0B32', '\u0B33' }, new char[] { '\u0B36', '\u0B39' }, new char[] { '\u0B3D', '\u0B3E' }, new char[] { '\u0B40' }, new char[] { '\u0B47', '\u0B48' }, new char[] { '\u0B4B', '\u0B4C' }, new char[] { '\u0B57' }, new char[] { '\u0B5C', '\u0B5D' }, new char[] { '\u0B5F', '\u0B61' }, new char[] { '\u0B66', '\u0B70' }, new char[] { '\u0B83' }, new char[] { '\u0B85', '\u0B8A' }, new char[] { '\u0B8E', '\u0B90' }, new char[] { '\u0B92', '\u0B95' }, new char[] { '\u0B99', '\u0B9A' }, new char[] { '\u0B9C' }, new char[] { '\u0B9E', '\u0B9F' }, new char[] { '\u0BA3', '\u0BA4' }, new char[] { '\u0BA8', '\u0BAA' }, new char[] { '\u0BAE', '\u0BB5' }, new char[] { '\u0BB7', '\u0BB9' }, new char[] { '\u0BBE', '\u0BBF' }, new char[] { '\u0BC1', '\u0BC2' }, new char[] { '\u0BC6', '\u0BC8' }, new char[] { '\u0BCA', '\u0BCC' }, new char[] { '\u0BD7' }, new char[] { '\u0BE7', '\u0BF2' }, new char[] { '\u0C01', '\u0C03' }, new char[] { '\u0C05', '\u0C0C' }, new char[] { '\u0C0E', '\u0C10' }, new char[] { '\u0C12', '\u0C28' }, new char[] { '\u0C2A', '\u0C33' }, new char[] { '\u0C35', '\u0C39' }, new char[] { '\u0C41', '\u0C44' }, new char[] { '\u0C60', '\u0C61' }, new char[] { '\u0C66', '\u0C6F' }, new char[] { '\u0C82', '\u0C83' }, new char[] { '\u0C85', '\u0C8C' }, new char[] { '\u0C8E', '\u0C90' }, new char[] { '\u0C92', '\u0CA8' }, new char[] { '\u0CAA', '\u0CB3' }, new char[] { '\u0CB5', '\u0CB9' }, new char[] { '\u0CBE' }, new char[] { '\u0CC0', '\u0CC4' }, new char[] { '\u0CC7', '\u0CC8' }, new char[] { '\u0CCA', '\u0CCB' }, new char[] { '\u0CD5', '\u0CD6' }, new char[] { '\u0CDE' }, new char[] { '\u0CE0', '\u0CE1' }, new char[] { '\u0CE6', '\u0CEF' }, new char[] { '\u0D02', '\u0D03' }, new char[] { '\u0D05', '\u0D0C' }, new char[] { '\u0D0E', '\u0D10' }, new char[] { '\u0D12', '\u0D28' }, new char[] { '\u0D2A', '\u0D39' }, new char[] { '\u0D3E', '\u0D40' }, new char[] { '\u0D46', '\u0D48' }, new char[] { '\u0D4A', '\u0D4C' }, new char[] { '\u0D57' }, new char[] { '\u0D60', '\u0D61' }, new char[] { '\u0D66', '\u0D6F' }, new char[] { '\u0D82', '\u0D83' }, new char[] { '\u0D85', '\u0D96' }, new char[] { '\u0D9A', '\u0DB1' }, new char[] { '\u0DB3', '\u0DBB' }, new char[] { '\u0DBD' }, new char[] { '\u0DC0', '\u0DC6' }, new char[] { '\u0DCF', '\u0DD1' }, new char[] { '\u0DD8', '\u0DDF' }, new char[] { '\u0DF2', '\u0DF4' }, new char[] { '\u0E01', '\u0E30' }, new char[] { '\u0E32', '\u0E33' }, new char[] { '\u0E40', '\u0E46' }, new char[] { '\u0E4F', '\u0E5B' }, new char[] { '\u0E81', '\u0E82' }, new char[] { '\u0E84' }, new char[] { '\u0E87', '\u0E88' }, new char[] { '\u0E8A' }, new char[] { '\u0E8D' }, new char[] { '\u0E94', '\u0E97' }, new char[] { '\u0E99', '\u0E9F' }, new char[] { '\u0EA1', '\u0EA3' }, new char[] { '\u0EA5' }, new char[] { '\u0EA7' }, new char[] { '\u0EAA', '\u0EAB' }, new char[] { '\u0EAD', '\u0EB0' }, new char[] { '\u0EB2', '\u0EB3' }, new char[] { '\u0EBD' }, new char[] { '\u0EC0', '\u0EC4' }, new char[] { '\u0EC6' }, new char[] { '\u0ED0', '\u0ED9' }, new char[] { '\u0EDC', '\u0EDD' }, new char[] { '\u0F00', '\u0F17' }, new char[] { '\u0F1A', '\u0F34' }, new char[] { '\u0F36' }, new char[] { '\u0F38' }, new char[] { '\u0F3E', '\u0F47' }, new char[] { '\u0F49', '\u0F6A' }, new char[] { '\u0F7F' }, new char[] { '\u0F85' }, new char[] { '\u0F88', '\u0F8B' }, new char[] { '\u0FBE', '\u0FC5' }, new char[] { '\u0FC7', '\u0FCC' }, new char[] { '\u0FCF' }, new char[] { '\u1000', '\u1021' }, new char[] { '\u1023', '\u1027' }, new char[] { '\u1029', '\u102A' }, new char[] { '\u102C' }, new char[] { '\u1031' }, new char[] { '\u1038' }, new char[] { '\u1040', '\u1057' }, new char[] { '\u10A0', '\u10C5' }, new char[] { '\u10D0', '\u10F8' }, new char[] { '\u10FB' }, new char[] { '\u1100', '\u1159' }, new char[] { '\u115F', '\u11A2' }, new char[] { '\u11A8', '\u11F9' }, new char[] { '\u1200', '\u1206' }, new char[] { '\u1208', '\u1246' }, new char[] { '\u1248' }, new char[] { '\u124A', '\u124D' }, new char[] { '\u1250', '\u1256' }, new char[] { '\u1258' }, new char[] { '\u125A', '\u125D' }, new char[] { '\u1260', '\u1286' }, new char[] { '\u1288' }, new char[] { '\u128A', '\u128D' }, new char[] { '\u1290', '\u12AE' }, new char[] { '\u12B0' }, new char[] { '\u12B2', '\u12B5' }, new char[] { '\u12B8', '\u12BE' }, new char[] { '\u12C0' }, new char[] { '\u12C2', '\u12C5' }, new char[] { '\u12C8', '\u12CE' }, new char[] { '\u12D0', '\u12D6' }, new char[] { '\u12D8', '\u12EE' }, new char[] { '\u12F0', '\u130E' }, new char[] { '\u1310' }, new char[] { '\u1312', '\u1315' }, new char[] { '\u1318', '\u131E' }, new char[] { '\u1320', '\u1346' }, new char[] { '\u1348', '\u135A' }, new char[] { '\u1361', '\u137C' }, new char[] { '\u13A0', '\u13F4' }, new char[] { '\u1401', '\u1676' }, new char[] { '\u1681', '\u169A' }, new char[] { '\u16A0', '\u16F0' }, new char[] { '\u1700', '\u170C' }, new char[] { '\u170E', '\u1711' }, new char[] { '\u1720', '\u1731' }, new char[] { '\u1735', '\u1736' }, new char[] { '\u1740', '\u1751' }, new char[] { '\u1760', '\u176C' }, new char[] { '\u176E', '\u1770' }, new char[] { '\u1780', '\u17B6' }, new char[] { '\u17BE', '\u17C5' }, new char[] { '\u17C7', '\u17C8' }, new char[] { '\u17D4', '\u17DA' }, new char[] { '\u17DC' }, new char[] { '\u17E0', '\u17E9' }, new char[] { '\u1810', '\u1819' }, new char[] { '\u1820', '\u1877' }, new char[] { '\u1880', '\u18A8' }, new char[] { '\u1E00', '\u1E9B' }, new char[] { '\u1EA0', '\u1EF9' }, new char[] { '\u1F00', '\u1F15' }, new char[] { '\u1F18', '\u1F1D' }, new char[] { '\u1F20', '\u1F45' }, new char[] { '\u1F48', '\u1F4D' }, new char[] { '\u1F50', '\u1F57' }, new char[] { '\u1F59' }, new char[] { '\u1F5B' }, new char[] { '\u1F5D' }, new char[] { '\u1F5F', '\u1F7D' }, new char[] { '\u1F80', '\u1FB4' }, new char[] { '\u1FB6', '\u1FBC' }, new char[] { '\u1FBE' }, new char[] { '\u1FC2', '\u1FC4' }, new char[] { '\u1FC6', '\u1FCC' }, new char[] { '\u1FD0', '\u1FD3' }, new char[] { '\u1FD6', '\u1FDB' }, new char[] { '\u1FE0', '\u1FEC' }, new char[] { '\u1FF2', '\u1FF4' }, new char[] { '\u1FF6', '\u1FFC' }, new char[] { '\u200E' }, new char[] { '\u2071' }, new char[] { '\u207F' }, new char[] { '\u2102' }, new char[] { '\u2107' }, new char[] { '\u210A', '\u2113' }, new char[] { '\u2115' }, new char[] { '\u2119', '\u211D' }, new char[] { '\u2124' }, new char[] { '\u2126' }, new char[] { '\u2128' }, new char[] { '\u212A', '\u212D' }, new char[] { '\u212F', '\u2131' }, new char[] { '\u2133', '\u2139' }, new char[] { '\u213D', '\u213F' }, new char[] { '\u2145', '\u2149' }, new char[] { '\u2160', '\u2183' }, new char[] { '\u2336', '\u237A' }, new char[] { '\u2395' }, new char[] { '\u249C', '\u24E9' }, new char[] { '\u3005', '\u3007' }, new char[] { '\u3021', '\u3029' }, new char[] { '\u3031', '\u3035' }, new char[] { '\u3038', '\u303C' }, new char[] { '\u3041', '\u3096' }, new char[] { '\u309D', '\u309F' }, new char[] { '\u30A1', '\u30FA' }, new char[] { '\u30FC', '\u30FF' }, new char[] { '\u3105', '\u312C' }, new char[] { '\u3131', '\u318E' }, new char[] { '\u3190', '\u31B7' }, new char[] { '\u31F0', '\u321C' }, new char[] { '\u3220', '\u3243' }, new char[] { '\u3260', '\u327B' }, new char[] { '\u327F', '\u32B0' }, new char[] { '\u32C0', '\u32CB' }, new char[] { '\u32D0', '\u32FE' }, new char[] { '\u3300', '\u3376' }, new char[] { '\u337B', '\u33DD' }, new char[] { '\u33E0', '\u33FE' }, new char[] { '\u3400', '\u4DB5' }, new char[] { '\u4E00', '\u9FA5' }, new char[] { '\uA000', '\uA48C' }, new char[] { '\uAC00', '\uD7A3' }, new char[] { '\uD800', '\uFA2D' }, new char[] { '\uFA30', '\uFA6A' }, new char[] { '\uFB00', '\uFB06' }, new char[] { '\uFB13', '\uFB17' }, new char[] { '\uFF21', '\uFF3A' }, new char[] { '\uFF41', '\uFF5A' }, new char[] { '\uFF66', '\uFFBE' }, new char[] { '\uFFC2', '\uFFC7' }, new char[] { '\uFFCA', '\uFFCF' }, new char[] { '\uFFD2', '\uFFD7' }, new char[] { '\uFFDA', '\uFFDC' }, }; } libidn-1.38/java/src/main/java/gnu/inet/encoding/StringprepException.java0000644000000000000000000000305114076271517023360 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * Exception handling for StringPrep class. */ public class StringprepException extends Exception { public static String CONTAINS_UNASSIGNED = "Contains unassigned code points."; public static String CONTAINS_PROHIBITED = "Contains prohibited code points."; public static String BIDI_BOTHRAL = "Contains both R and AL code points."; public static String BIDI_LTRAL = "Leading and trailing code points not both R or AL."; public StringprepException(String m) { super(m); } } libidn-1.38/java/src/main/java/gnu/inet/encoding/IDNA.java0000644000000000000000000001631314076271517020064 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * This class offers static methods for converting internationalized * domain names to ACE and back. *
    *
  • RFC3490 IDNA *
* Note that this implementation only supports 16-bit Unicode code * points. */ public class IDNA { public final static String ACE_PREFIX = "xn--"; /** * Converts a Unicode string to ASCII using the procedure in RFC3490 * section 4.1. Unassigned characters are not allowed and STD3 ASCII * rules are enforced. The input string may be a domain name * containing dots. * * @param input Unicode string. * @return Encoded string. */ public static String toASCII(String input) throws IDNAException { StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.append(toASCII(h.toString(), false, true)); o.append('.'); h = new StringBuilder(); } else { h.append(c); } } o.append(toASCII(h.toString(), false, true)); return o.toString(); } /** * Converts a Unicode string to ASCII using the procedure in RFC3490 * section 4.1. Unassigned characters are not allowed and STD3 ASCII * rules are enforced. * * @param input Unicode string. * @param allowUnassigned Unassigned characters, allowed or not? * @param useSTD3ASCIIRules STD3 ASCII rules, enforced or not? * @return Encoded string. */ public static String toASCII(String input, boolean allowUnassigned, boolean useSTD3ASCIIRules) throws IDNAException { // Step 1: Check if the string contains code points outside // the ASCII range 0..0x7c. boolean nonASCII = false; for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the nameprep operation. if (nonASCII) { try { input = Stringprep.nameprep(input, allowUnassigned); } catch (StringprepException e) { throw new IDNAException(e); } } // Step 3: - Verify the absence of non-LDH ASCII code points // 0..0x2c, 0x2e..0x2f, 0x3a..0x40, 0x5b..0x60, // 0x7b..0x7f // - Verify the absence of leading and trailing // hyphen-minus if (useSTD3ASCIIRules) { for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if ((c <= 0x2c) || (c >= 0x2e && c <= 0x2f) || (c >= 0x3a && c <= 0x40) || (c >= 0x5b && c <= 0x60) || (c >= 0x7b && c <= 0x7f)) { throw new IDNAException(IDNAException.CONTAINS_NON_LDH); } } if (input.startsWith("-") || input.endsWith("-")) { throw new IDNAException(IDNAException.CONTAINS_HYPHEN); } } // Step 4: If all code points are inside 0..0x7f, skip to step 8 nonASCII = false; for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c > 0x7f) { nonASCII = true; break; } } String output = input; if (nonASCII) { // Step 5: Verify that the sequence does not begin with the ACE prefix. if (input.startsWith(ACE_PREFIX)) { throw new IDNAException(IDNAException.CONTAINS_ACE_PREFIX); } // Step 6: Punycode try { output = Punycode.encode(input); } catch (PunycodeException e) { throw new IDNAException(e); } // Step 7: Prepend the ACE prefix. output = ACE_PREFIX + output; } // Step 8: Check that the length is inside 1..63. if (output.length() < 1 || output.length() > 63) { throw new IDNAException(IDNAException.TOO_LONG); } return output; } /** * Converts an ASCII-encoded string to Unicode. Unassigned * characters are not allowed and STD3 hostnames are enforced. Input * may be domain name containing dots. * * @param input ASCII input string. * @return Unicode string. */ public static String toUnicode(String input) { StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.append(toUnicode(h.toString(), false, true)); o.append(c); h = new StringBuilder(); } else { h.append(c); } } o.append(toUnicode(h.toString(), false, true)); return o.toString(); } /** * Converts an ASCII-encoded string to Unicode. * * @param input ASCII input string. * @param allowUnassigned Allow unassigned Unicode characters. * @param useSTD3ASCIIRules Check that the output conforms to STD3. * @return Unicode string. */ public static String toUnicode(String input, boolean allowUnassigned, boolean useSTD3ASCIIRules) { String original = input; boolean nonASCII = false; // Step 1: If all code points are inside 0..0x7f, skip to step 3. for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the Nameprep operation. if (nonASCII) { try { input = Stringprep.nameprep(input, allowUnassigned); } catch (StringprepException e) { // ToUnicode never fails! return original; } } // Step 3: Verify the sequence starts with the ACE prefix. if (!input.startsWith(ACE_PREFIX)) { // ToUnicode never fails! return original; } String stored = input; // Step 4: Remove the ACE prefix. input = input.substring(ACE_PREFIX.length()); // Step 5: Decode using punycode String output; try { output = Punycode.decode(input); } catch (PunycodeException e) { // ToUnicode never fails! return original; } // Step 6: Apply toASCII String ascii; try { ascii = toASCII(output, allowUnassigned, useSTD3ASCIIRules); } catch (IDNAException e) { // ToUnicode never fails! return original; } // Step 7: Compare case-insensitively. if (!ascii.equalsIgnoreCase(stored)) { // ToUnicode never fails! return original; } // Step 8: Return the result. return output; } } libidn-1.38/java/src/main/java/gnu/inet/encoding/DecompositionMappings.java0000644000000000000000000015624714053001337023661 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class DecompositionMappings { public final static String[] m = new String[] { "\u0020", "\u0020\u0308", "\u0061", "\u0020\u0304", "\u0032", "\u0033", "\u0020\u0301", "\u03BC", "\u0020\u0327", "\u0031", "\u006F", "\u0031\u2044\u0034", "\u0031\u2044\u0032", "\u0033\u2044\u0034", "\u0041\u0300", "\u0041\u0301", "\u0041\u0302", "\u0041\u0303", "\u0041\u0308", "\u0041\u030A", "\u0043\u0327", "\u0045\u0300", "\u0045\u0301", "\u0045\u0302", "\u0045\u0308", "\u0049\u0300", "\u0049\u0301", "\u0049\u0302", "\u0049\u0308", "\u004E\u0303", "\u004F\u0300", "\u004F\u0301", "\u004F\u0302", "\u004F\u0303", "\u004F\u0308", "\u0055\u0300", "\u0055\u0301", "\u0055\u0302", "\u0055\u0308", "\u0059\u0301", "\u0061\u0300", "\u0061\u0301", "\u0061\u0302", "\u0061\u0303", "\u0061\u0308", "\u0061\u030A", "\u0063\u0327", "\u0065\u0300", "\u0065\u0301", "\u0065\u0302", "\u0065\u0308", "\u0069\u0300", "\u0069\u0301", "\u0069\u0302", "\u0069\u0308", "\u006E\u0303", "\u006F\u0300", "\u006F\u0301", "\u006F\u0302", "\u006F\u0303", "\u006F\u0308", "\u0075\u0300", "\u0075\u0301", "\u0075\u0302", "\u0075\u0308", "\u0079\u0301", "\u0079\u0308", "\u0041\u0304", "\u0061\u0304", "\u0041\u0306", "\u0061\u0306", "\u0041\u0328", "\u0061\u0328", "\u0043\u0301", "\u0063\u0301", "\u0043\u0302", "\u0063\u0302", "\u0043\u0307", "\u0063\u0307", "\u0043\u030C", "\u0063\u030C", "\u0044\u030C", "\u0064\u030C", "\u0045\u0304", "\u0065\u0304", "\u0045\u0306", "\u0065\u0306", "\u0045\u0307", "\u0065\u0307", "\u0045\u0328", "\u0065\u0328", "\u0045\u030C", "\u0065\u030C", "\u0047\u0302", "\u0067\u0302", "\u0047\u0306", "\u0067\u0306", "\u0047\u0307", "\u0067\u0307", "\u0047\u0327", "\u0067\u0327", "\u0048\u0302", "\u0068\u0302", "\u0049\u0303", "\u0069\u0303", "\u0049\u0304", "\u0069\u0304", "\u0049\u0306", "\u0069\u0306", "\u0049\u0328", "\u0069\u0328", "\u0049\u0307", "\u0049\u004A", "\u0069\u006A", "\u004A\u0302", "\u006A\u0302", "\u004B\u0327", "\u006B\u0327", "\u004C\u0301", "\u006C\u0301", "\u004C\u0327", "\u006C\u0327", "\u004C\u030C", "\u006C\u030C", "\u004C\u00B7", "\u006C\u00B7", "\u004E\u0301", "\u006E\u0301", "\u004E\u0327", "\u006E\u0327", "\u004E\u030C", "\u006E\u030C", "\u02BC\u006E", "\u004F\u0304", "\u006F\u0304", "\u004F\u0306", "\u006F\u0306", "\u004F\u030B", "\u006F\u030B", "\u0052\u0301", "\u0072\u0301", "\u0052\u0327", "\u0072\u0327", "\u0052\u030C", "\u0072\u030C", "\u0053\u0301", "\u0073\u0301", "\u0053\u0302", "\u0073\u0302", "\u0053\u0327", "\u0073\u0327", "\u0053\u030C", "\u0073\u030C", "\u0054\u0327", "\u0074\u0327", "\u0054\u030C", "\u0074\u030C", "\u0055\u0303", "\u0075\u0303", "\u0055\u0304", "\u0075\u0304", "\u0055\u0306", "\u0075\u0306", "\u0055\u030A", "\u0075\u030A", "\u0055\u030B", "\u0075\u030B", "\u0055\u0328", "\u0075\u0328", "\u0057\u0302", "\u0077\u0302", "\u0059\u0302", "\u0079\u0302", "\u0059\u0308", "\u005A\u0301", "\u007A\u0301", "\u005A\u0307", "\u007A\u0307", "\u005A\u030C", "\u007A\u030C", "\u0073", "\u004F\u031B", "\u006F\u031B", "\u0055\u031B", "\u0075\u031B", "\u0044\u005A\u030C", "\u0044\u007A\u030C", "\u0064\u007A\u030C", "\u004C\u004A", "\u004C\u006A", "\u006C\u006A", "\u004E\u004A", "\u004E\u006A", "\u006E\u006A", "\u0041\u030C", "\u0061\u030C", "\u0049\u030C", "\u0069\u030C", "\u004F\u030C", "\u006F\u030C", "\u0055\u030C", "\u0075\u030C", "\u0055\u0308\u0304", "\u0075\u0308\u0304", "\u0055\u0308\u0301", "\u0075\u0308\u0301", "\u0055\u0308\u030C", "\u0075\u0308\u030C", "\u0055\u0308\u0300", "\u0075\u0308\u0300", "\u0041\u0308\u0304", "\u0061\u0308\u0304", "\u0041\u0307\u0304", "\u0061\u0307\u0304", "\u00C6\u0304", "\u00E6\u0304", "\u0047\u030C", "\u0067\u030C", "\u004B\u030C", "\u006B\u030C", "\u004F\u0328", "\u006F\u0328", "\u004F\u0328\u0304", "\u006F\u0328\u0304", "\u01B7\u030C", "\u0292\u030C", "\u006A\u030C", "\u0044\u005A", "\u0044\u007A", "\u0064\u007A", "\u0047\u0301", "\u0067\u0301", "\u004E\u0300", "\u006E\u0300", "\u0041\u030A\u0301", "\u0061\u030A\u0301", "\u00C6\u0301", "\u00E6\u0301", "\u00D8\u0301", "\u00F8\u0301", "\u0041\u030F", "\u0061\u030F", "\u0041\u0311", "\u0061\u0311", "\u0045\u030F", "\u0065\u030F", "\u0045\u0311", "\u0065\u0311", "\u0049\u030F", "\u0069\u030F", "\u0049\u0311", "\u0069\u0311", "\u004F\u030F", "\u006F\u030F", "\u004F\u0311", "\u006F\u0311", "\u0052\u030F", "\u0072\u030F", "\u0052\u0311", "\u0072\u0311", "\u0055\u030F", "\u0075\u030F", "\u0055\u0311", "\u0075\u0311", "\u0053\u0326", "\u0073\u0326", "\u0054\u0326", "\u0074\u0326", "\u0048\u030C", "\u0068\u030C", "\u0041\u0307", "\u0061\u0307", "\u0045\u0327", "\u0065\u0327", "\u004F\u0308\u0304", "\u006F\u0308\u0304", "\u004F\u0303\u0304", "\u006F\u0303\u0304", "\u004F\u0307", "\u006F\u0307", "\u004F\u0307\u0304", "\u006F\u0307\u0304", "\u0059\u0304", "\u0079\u0304", "\u0068", "\u0266", "\u006A", "\u0072", "\u0279", "\u027B", "\u0281", "\u0077", "\u0079", "\u0020\u0306", "\u0020\u0307", "\u0020\u030A", "\u0020\u0328", "\u0020\u0303", "\u0020\u030B", "\u0263", "\u006C", "\u0078", "\u0295", "\u0300", "\u0301", "\u0313", "\u0308\u0301", "\u02B9", "\u0020\u0345", "\u003B", "\u0020\u0308\u0301", "\u0391\u0301", "\u00B7", "\u0395\u0301", "\u0397\u0301", "\u0399\u0301", "\u039F\u0301", "\u03A5\u0301", "\u03A9\u0301", "\u03B9\u0308\u0301", "\u0399\u0308", "\u03A5\u0308", "\u03B1\u0301", "\u03B5\u0301", "\u03B7\u0301", "\u03B9\u0301", "\u03C5\u0308\u0301", "\u03B9\u0308", "\u03C5\u0308", "\u03BF\u0301", "\u03C5\u0301", "\u03C9\u0301", "\u03B2", "\u03B8", "\u03A5", "\u03C6", "\u03C0", "\u03BA", "\u03C1", "\u03C2", "\u0398", "\u03B5", "\u0415\u0300", "\u0415\u0308", "\u0413\u0301", "\u0406\u0308", "\u041A\u0301", "\u0418\u0300", "\u0423\u0306", "\u0418\u0306", "\u0438\u0306", "\u0435\u0300", "\u0435\u0308", "\u0433\u0301", "\u0456\u0308", "\u043A\u0301", "\u0438\u0300", "\u0443\u0306", "\u0474\u030F", "\u0475\u030F", "\u0416\u0306", "\u0436\u0306", "\u0410\u0306", "\u0430\u0306", "\u0410\u0308", "\u0430\u0308", "\u0415\u0306", "\u0435\u0306", "\u04D8\u0308", "\u04D9\u0308", "\u0416\u0308", "\u0436\u0308", "\u0417\u0308", "\u0437\u0308", "\u0418\u0304", "\u0438\u0304", "\u0418\u0308", "\u0438\u0308", "\u041E\u0308", "\u043E\u0308", "\u04E8\u0308", "\u04E9\u0308", "\u042D\u0308", "\u044D\u0308", "\u0423\u0304", "\u0443\u0304", "\u0423\u0308", "\u0443\u0308", "\u0423\u030B", "\u0443\u030B", "\u0427\u0308", "\u0447\u0308", "\u042B\u0308", "\u044B\u0308", "\u0565\u0582", "\u0627\u0653", "\u0627\u0654", "\u0648\u0654", "\u0627\u0655", "\u064A\u0654", "\u0627\u0674", "\u0648\u0674", "\u06C7\u0674", "\u064A\u0674", "\u06D5\u0654", "\u06C1\u0654", "\u06D2\u0654", "\u0928\u093C", "\u0930\u093C", "\u0933\u093C", "\u0915\u093C", "\u0916\u093C", "\u0917\u093C", "\u091C\u093C", "\u0921\u093C", "\u0922\u093C", "\u092B\u093C", "\u092F\u093C", "\u09C7\u09BE", "\u09C7\u09D7", "\u09A1\u09BC", "\u09A2\u09BC", "\u09AF\u09BC", "\u0A32\u0A3C", "\u0A38\u0A3C", "\u0A16\u0A3C", "\u0A17\u0A3C", "\u0A1C\u0A3C", "\u0A2B\u0A3C", "\u0B47\u0B56", "\u0B47\u0B3E", "\u0B47\u0B57", "\u0B21\u0B3C", "\u0B22\u0B3C", "\u0B92\u0BD7", "\u0BC6\u0BBE", "\u0BC7\u0BBE", "\u0BC6\u0BD7", "\u0C46\u0C56", "\u0CBF\u0CD5", "\u0CC6\u0CD5", "\u0CC6\u0CD6", "\u0CC6\u0CC2", "\u0CC6\u0CC2\u0CD5", "\u0D46\u0D3E", "\u0D47\u0D3E", "\u0D46\u0D57", "\u0DD9\u0DCA", "\u0DD9\u0DCF", "\u0DD9\u0DCF\u0DCA", "\u0DD9\u0DDF", "\u0E4D\u0E32", "\u0ECD\u0EB2", "\u0EAB\u0E99", "\u0EAB\u0EA1", "\u0F0B", "\u0F42\u0FB7", "\u0F4C\u0FB7", "\u0F51\u0FB7", "\u0F56\u0FB7", "\u0F5B\u0FB7", "\u0F40\u0FB5", "\u0F71\u0F72", "\u0F71\u0F74", "\u0FB2\u0F80", "\u0FB2\u0F71\u0F80", "\u0FB3\u0F80", "\u0FB3\u0F71\u0F80", "\u0F71\u0F80", "\u0F92\u0FB7", "\u0F9C\u0FB7", "\u0FA1\u0FB7", "\u0FA6\u0FB7", "\u0FAB\u0FB7", "\u0F90\u0FB5", "\u1025\u102E", "\u0041\u0325", "\u0061\u0325", "\u0042\u0307", "\u0062\u0307", "\u0042\u0323", "\u0062\u0323", "\u0042\u0331", "\u0062\u0331", "\u0043\u0327\u0301", "\u0063\u0327\u0301", "\u0044\u0307", "\u0064\u0307", "\u0044\u0323", "\u0064\u0323", "\u0044\u0331", "\u0064\u0331", "\u0044\u0327", "\u0064\u0327", "\u0044\u032D", "\u0064\u032D", "\u0045\u0304\u0300", "\u0065\u0304\u0300", "\u0045\u0304\u0301", "\u0065\u0304\u0301", "\u0045\u032D", "\u0065\u032D", "\u0045\u0330", "\u0065\u0330", "\u0045\u0327\u0306", "\u0065\u0327\u0306", "\u0046\u0307", "\u0066\u0307", "\u0047\u0304", "\u0067\u0304", "\u0048\u0307", "\u0068\u0307", "\u0048\u0323", "\u0068\u0323", "\u0048\u0308", "\u0068\u0308", "\u0048\u0327", "\u0068\u0327", "\u0048\u032E", "\u0068\u032E", "\u0049\u0330", "\u0069\u0330", "\u0049\u0308\u0301", "\u0069\u0308\u0301", "\u004B\u0301", "\u006B\u0301", "\u004B\u0323", "\u006B\u0323", "\u004B\u0331", "\u006B\u0331", "\u004C\u0323", "\u006C\u0323", "\u004C\u0323\u0304", "\u006C\u0323\u0304", "\u004C\u0331", "\u006C\u0331", "\u004C\u032D", "\u006C\u032D", "\u004D\u0301", "\u006D\u0301", "\u004D\u0307", "\u006D\u0307", "\u004D\u0323", "\u006D\u0323", "\u004E\u0307", "\u006E\u0307", "\u004E\u0323", "\u006E\u0323", "\u004E\u0331", "\u006E\u0331", "\u004E\u032D", "\u006E\u032D", "\u004F\u0303\u0301", "\u006F\u0303\u0301", "\u004F\u0303\u0308", "\u006F\u0303\u0308", "\u004F\u0304\u0300", "\u006F\u0304\u0300", "\u004F\u0304\u0301", "\u006F\u0304\u0301", "\u0050\u0301", "\u0070\u0301", "\u0050\u0307", "\u0070\u0307", "\u0052\u0307", "\u0072\u0307", "\u0052\u0323", "\u0072\u0323", "\u0052\u0323\u0304", "\u0072\u0323\u0304", "\u0052\u0331", "\u0072\u0331", "\u0053\u0307", "\u0073\u0307", "\u0053\u0323", "\u0073\u0323", "\u0053\u0301\u0307", "\u0073\u0301\u0307", "\u0053\u030C\u0307", "\u0073\u030C\u0307", "\u0053\u0323\u0307", "\u0073\u0323\u0307", "\u0054\u0307", "\u0074\u0307", "\u0054\u0323", "\u0074\u0323", "\u0054\u0331", "\u0074\u0331", "\u0054\u032D", "\u0074\u032D", "\u0055\u0324", "\u0075\u0324", "\u0055\u0330", "\u0075\u0330", "\u0055\u032D", "\u0075\u032D", "\u0055\u0303\u0301", "\u0075\u0303\u0301", "\u0055\u0304\u0308", "\u0075\u0304\u0308", "\u0056\u0303", "\u0076\u0303", "\u0056\u0323", "\u0076\u0323", "\u0057\u0300", "\u0077\u0300", "\u0057\u0301", "\u0077\u0301", "\u0057\u0308", "\u0077\u0308", "\u0057\u0307", "\u0077\u0307", "\u0057\u0323", "\u0077\u0323", "\u0058\u0307", "\u0078\u0307", "\u0058\u0308", "\u0078\u0308", "\u0059\u0307", "\u0079\u0307", "\u005A\u0302", "\u007A\u0302", "\u005A\u0323", "\u007A\u0323", "\u005A\u0331", "\u007A\u0331", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u0041\u0323", "\u0061\u0323", "\u0041\u0309", "\u0061\u0309", "\u0041\u0302\u0301", "\u0061\u0302\u0301", "\u0041\u0302\u0300", "\u0061\u0302\u0300", "\u0041\u0302\u0309", "\u0061\u0302\u0309", "\u0041\u0302\u0303", "\u0061\u0302\u0303", "\u0041\u0323\u0302", "\u0061\u0323\u0302", "\u0041\u0306\u0301", "\u0061\u0306\u0301", "\u0041\u0306\u0300", "\u0061\u0306\u0300", "\u0041\u0306\u0309", "\u0061\u0306\u0309", "\u0041\u0306\u0303", "\u0061\u0306\u0303", "\u0041\u0323\u0306", "\u0061\u0323\u0306", "\u0045\u0323", "\u0065\u0323", "\u0045\u0309", "\u0065\u0309", "\u0045\u0303", "\u0065\u0303", "\u0045\u0302\u0301", "\u0065\u0302\u0301", "\u0045\u0302\u0300", "\u0065\u0302\u0300", "\u0045\u0302\u0309", "\u0065\u0302\u0309", "\u0045\u0302\u0303", "\u0065\u0302\u0303", "\u0045\u0323\u0302", "\u0065\u0323\u0302", "\u0049\u0309", "\u0069\u0309", "\u0049\u0323", "\u0069\u0323", "\u004F\u0323", "\u006F\u0323", "\u004F\u0309", "\u006F\u0309", "\u004F\u0302\u0301", "\u006F\u0302\u0301", "\u004F\u0302\u0300", "\u006F\u0302\u0300", "\u004F\u0302\u0309", "\u006F\u0302\u0309", "\u004F\u0302\u0303", "\u006F\u0302\u0303", "\u004F\u0323\u0302", "\u006F\u0323\u0302", "\u004F\u031B\u0301", "\u006F\u031B\u0301", "\u004F\u031B\u0300", "\u006F\u031B\u0300", "\u004F\u031B\u0309", "\u006F\u031B\u0309", "\u004F\u031B\u0303", "\u006F\u031B\u0303", "\u004F\u031B\u0323", "\u006F\u031B\u0323", "\u0055\u0323", "\u0075\u0323", "\u0055\u0309", "\u0075\u0309", "\u0055\u031B\u0301", "\u0075\u031B\u0301", "\u0055\u031B\u0300", "\u0075\u031B\u0300", "\u0055\u031B\u0309", "\u0075\u031B\u0309", "\u0055\u031B\u0303", "\u0075\u031B\u0303", "\u0055\u031B\u0323", "\u0075\u031B\u0323", "\u0059\u0300", "\u0079\u0300", "\u0059\u0323", "\u0079\u0323", "\u0059\u0309", "\u0079\u0309", "\u0059\u0303", "\u0079\u0303", "\u03B1\u0313", "\u03B1\u0314", "\u03B1\u0313\u0300", "\u03B1\u0314\u0300", "\u03B1\u0313\u0301", "\u03B1\u0314\u0301", "\u03B1\u0313\u0342", "\u03B1\u0314\u0342", "\u0391\u0313", "\u0391\u0314", "\u0391\u0313\u0300", "\u0391\u0314\u0300", "\u0391\u0313\u0301", "\u0391\u0314\u0301", "\u0391\u0313\u0342", "\u0391\u0314\u0342", "\u03B5\u0313", "\u03B5\u0314", "\u03B5\u0313\u0300", "\u03B5\u0314\u0300", "\u03B5\u0313\u0301", "\u03B5\u0314\u0301", "\u0395\u0313", "\u0395\u0314", "\u0395\u0313\u0300", "\u0395\u0314\u0300", "\u0395\u0313\u0301", "\u0395\u0314\u0301", "\u03B7\u0313", "\u03B7\u0314", "\u03B7\u0313\u0300", "\u03B7\u0314\u0300", "\u03B7\u0313\u0301", "\u03B7\u0314\u0301", "\u03B7\u0313\u0342", "\u03B7\u0314\u0342", "\u0397\u0313", "\u0397\u0314", "\u0397\u0313\u0300", "\u0397\u0314\u0300", "\u0397\u0313\u0301", "\u0397\u0314\u0301", "\u0397\u0313\u0342", "\u0397\u0314\u0342", "\u03B9\u0313", "\u03B9\u0314", "\u03B9\u0313\u0300", "\u03B9\u0314\u0300", "\u03B9\u0313\u0301", "\u03B9\u0314\u0301", "\u03B9\u0313\u0342", "\u03B9\u0314\u0342", "\u0399\u0313", "\u0399\u0314", "\u0399\u0313\u0300", "\u0399\u0314\u0300", "\u0399\u0313\u0301", "\u0399\u0314\u0301", "\u0399\u0313\u0342", "\u0399\u0314\u0342", "\u03BF\u0313", "\u03BF\u0314", "\u03BF\u0313\u0300", "\u03BF\u0314\u0300", "\u03BF\u0313\u0301", "\u03BF\u0314\u0301", "\u039F\u0313", "\u039F\u0314", "\u039F\u0313\u0300", "\u039F\u0314\u0300", "\u039F\u0313\u0301", "\u039F\u0314\u0301", "\u03C5\u0313", "\u03C5\u0314", "\u03C5\u0313\u0300", "\u03C5\u0314\u0300", "\u03C5\u0313\u0301", "\u03C5\u0314\u0301", "\u03C5\u0313\u0342", "\u03C5\u0314\u0342", "\u03A5\u0314", "\u03A5\u0314\u0300", "\u03A5\u0314\u0301", "\u03A5\u0314\u0342", "\u03C9\u0313", "\u03C9\u0314", "\u03C9\u0313\u0300", "\u03C9\u0314\u0300", "\u03C9\u0313\u0301", "\u03C9\u0314\u0301", "\u03C9\u0313\u0342", "\u03C9\u0314\u0342", "\u03A9\u0313", "\u03A9\u0314", "\u03A9\u0313\u0300", "\u03A9\u0314\u0300", "\u03A9\u0313\u0301", "\u03A9\u0314\u0301", "\u03A9\u0313\u0342", "\u03A9\u0314\u0342", "\u03B1\u0300", "\u03B5\u0300", "\u03B7\u0300", "\u03B9\u0300", "\u03BF\u0300", "\u03C5\u0300", "\u03C9\u0300", "\u03B1\u0313\u0345", "\u03B1\u0314\u0345", "\u03B1\u0313\u0300\u0345", "\u03B1\u0314\u0300\u0345", "\u03B1\u0313\u0301\u0345", "\u03B1\u0314\u0301\u0345", "\u03B1\u0313\u0342\u0345", "\u03B1\u0314\u0342\u0345", "\u0391\u0313\u0345", "\u0391\u0314\u0345", "\u0391\u0313\u0300\u0345", "\u0391\u0314\u0300\u0345", "\u0391\u0313\u0301\u0345", "\u0391\u0314\u0301\u0345", "\u0391\u0313\u0342\u0345", "\u0391\u0314\u0342\u0345", "\u03B7\u0313\u0345", "\u03B7\u0314\u0345", "\u03B7\u0313\u0300\u0345", "\u03B7\u0314\u0300\u0345", "\u03B7\u0313\u0301\u0345", "\u03B7\u0314\u0301\u0345", "\u03B7\u0313\u0342\u0345", "\u03B7\u0314\u0342\u0345", "\u0397\u0313\u0345", "\u0397\u0314\u0345", "\u0397\u0313\u0300\u0345", "\u0397\u0314\u0300\u0345", "\u0397\u0313\u0301\u0345", "\u0397\u0314\u0301\u0345", "\u0397\u0313\u0342\u0345", "\u0397\u0314\u0342\u0345", "\u03C9\u0313\u0345", "\u03C9\u0314\u0345", "\u03C9\u0313\u0300\u0345", "\u03C9\u0314\u0300\u0345", "\u03C9\u0313\u0301\u0345", "\u03C9\u0314\u0301\u0345", "\u03C9\u0313\u0342\u0345", "\u03C9\u0314\u0342\u0345", "\u03A9\u0313\u0345", "\u03A9\u0314\u0345", "\u03A9\u0313\u0300\u0345", "\u03A9\u0314\u0300\u0345", "\u03A9\u0313\u0301\u0345", "\u03A9\u0314\u0301\u0345", "\u03A9\u0313\u0342\u0345", "\u03A9\u0314\u0342\u0345", "\u03B1\u0306", "\u03B1\u0304", "\u03B1\u0300\u0345", "\u03B1\u0345", "\u03B1\u0301\u0345", "\u03B1\u0342", "\u03B1\u0342\u0345", "\u0391\u0306", "\u0391\u0304", "\u0391\u0300", "\u0391\u0345", "\u0020\u0313", "\u03B9", "\u0020\u0342", "\u0020\u0308\u0342", "\u03B7\u0300\u0345", "\u03B7\u0345", "\u03B7\u0301\u0345", "\u03B7\u0342", "\u03B7\u0342\u0345", "\u0395\u0300", "\u0397\u0300", "\u0397\u0345", "\u0020\u0313\u0300", "\u0020\u0313\u0301", "\u0020\u0313\u0342", "\u03B9\u0306", "\u03B9\u0304", "\u03B9\u0308\u0300", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u0399\u0306", "\u0399\u0304", "\u0399\u0300", "\u0020\u0314\u0300", "\u0020\u0314\u0301", "\u0020\u0314\u0342", "\u03C5\u0306", "\u03C5\u0304", "\u03C5\u0308\u0300", "\u03C1\u0313", "\u03C1\u0314", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u03A5\u0306", "\u03A5\u0304", "\u03A5\u0300", "\u03A1\u0314", "\u0020\u0308\u0300", "\u0060", "\u03C9\u0300\u0345", "\u03C9\u0345", "\u03C9\u0301\u0345", "\u03C9\u0342", "\u03C9\u0342\u0345", "\u039F\u0300", "\u03A9\u0300", "\u03A9\u0345", "\u0020\u0314", "\u2010", "\u0020\u0333", "\u002E", "\u002E\u002E", "\u002E\u002E\u002E", "\u2032\u2032", "\u2032\u2032\u2032", "\u2035\u2035", "\u2035\u2035\u2035", "\u0021\u0021", "\u0020\u0305", "\u003F\u003F", "\u003F\u0021", "\u0021\u003F", "\u2032\u2032\u2032\u2032", "\u0030", "\u0069", "\u0034", "\u0035", "\u0036", "\u0037", "\u0038", "\u0039", "\u002B", "\u2212", "\u003D", "\u0028", "\u0029", "\u006E", "\u0052\u0073", "\u0061\u002F\u0063", "\u0061\u002F\u0073", "\u0043", "\u00B0\u0043", "\u0063\u002F\u006F", "\u0063\u002F\u0075", "\u0190", "\u00B0\u0046", "\u0067", "\u0048", "\u0127", "\u0049", "\u004C", "\u004E", "\u004E\u006F", "\u0050", "\u0051", "\u0052", "\u0053\u004D", "\u0054\u0045\u004C", "\u0054\u004D", "\u005A", "\u03A9", "\u004B", "\u0042", "\u0065", "\u0045", "\u0046", "\u004D", "\u05D0", "\u05D1", "\u05D2", "\u05D3", "\u03B3", "\u0393", "\u03A0", "\u2211", "\u0044", "\u0064", "\u0031\u2044\u0033", "\u0032\u2044\u0033", "\u0031\u2044\u0035", "\u0032\u2044\u0035", "\u0033\u2044\u0035", "\u0034\u2044\u0035", "\u0031\u2044\u0036", "\u0035\u2044\u0036", "\u0031\u2044\u0038", "\u0033\u2044\u0038", "\u0035\u2044\u0038", "\u0037\u2044\u0038", "\u0031\u2044", "\u0049\u0049", "\u0049\u0049\u0049", "\u0049\u0056", "\u0056", "\u0056\u0049", "\u0056\u0049\u0049", "\u0056\u0049\u0049\u0049", "\u0049\u0058", "\u0058", "\u0058\u0049", "\u0058\u0049\u0049", "\u0069\u0069", "\u0069\u0069\u0069", "\u0069\u0076", "\u0076", "\u0076\u0069", "\u0076\u0069\u0069", "\u0076\u0069\u0069\u0069", "\u0069\u0078", "\u0078\u0069", "\u0078\u0069\u0069", "\u0063", "\u006D", "\u2190\u0338", "\u2192\u0338", "\u2194\u0338", "\u21D0\u0338", "\u21D4\u0338", "\u21D2\u0338", "\u2203\u0338", "\u2208\u0338", "\u220B\u0338", "\u2223\u0338", "\u2225\u0338", "\u222B\u222B", "\u222B\u222B\u222B", "\u222E\u222E", "\u222E\u222E\u222E", "\u223C\u0338", "\u2243\u0338", "\u2245\u0338", "\u2248\u0338", "\u003D\u0338", "\u2261\u0338", "\u224D\u0338", "\u003C\u0338", "\u003E\u0338", "\u2264\u0338", "\u2265\u0338", "\u2272\u0338", "\u2273\u0338", "\u2276\u0338", "\u2277\u0338", "\u227A\u0338", "\u227B\u0338", "\u2282\u0338", "\u2283\u0338", "\u2286\u0338", "\u2287\u0338", "\u22A2\u0338", "\u22A8\u0338", "\u22A9\u0338", "\u22AB\u0338", "\u227C\u0338", "\u227D\u0338", "\u2291\u0338", "\u2292\u0338", "\u22B2\u0338", "\u22B3\u0338", "\u22B4\u0338", "\u22B5\u0338", "\u3008", "\u3009", "\u0031\u0030", "\u0031\u0031", "\u0031\u0032", "\u0031\u0033", "\u0031\u0034", "\u0031\u0035", "\u0031\u0036", "\u0031\u0037", "\u0031\u0038", "\u0031\u0039", "\u0032\u0030", "\u0028\u0031\u0029", "\u0028\u0032\u0029", "\u0028\u0033\u0029", "\u0028\u0034\u0029", "\u0028\u0035\u0029", "\u0028\u0036\u0029", "\u0028\u0037\u0029", "\u0028\u0038\u0029", "\u0028\u0039\u0029", "\u0028\u0031\u0030\u0029", "\u0028\u0031\u0031\u0029", "\u0028\u0031\u0032\u0029", "\u0028\u0031\u0033\u0029", "\u0028\u0031\u0034\u0029", "\u0028\u0031\u0035\u0029", "\u0028\u0031\u0036\u0029", "\u0028\u0031\u0037\u0029", "\u0028\u0031\u0038\u0029", "\u0028\u0031\u0039\u0029", "\u0028\u0032\u0030\u0029", "\u0031\u002E", "\u0032\u002E", "\u0033\u002E", "\u0034\u002E", "\u0035\u002E", "\u0036\u002E", "\u0037\u002E", "\u0038\u002E", "\u0039\u002E", "\u0031\u0030\u002E", "\u0031\u0031\u002E", "\u0031\u0032\u002E", "\u0031\u0033\u002E", "\u0031\u0034\u002E", "\u0031\u0035\u002E", "\u0031\u0036\u002E", "\u0031\u0037\u002E", "\u0031\u0038\u002E", "\u0031\u0039\u002E", "\u0032\u0030\u002E", "\u0028\u0061\u0029", "\u0028\u0062\u0029", "\u0028\u0063\u0029", "\u0028\u0064\u0029", "\u0028\u0065\u0029", "\u0028\u0066\u0029", "\u0028\u0067\u0029", "\u0028\u0068\u0029", "\u0028\u0069\u0029", "\u0028\u006A\u0029", "\u0028\u006B\u0029", "\u0028\u006C\u0029", "\u0028\u006D\u0029", "\u0028\u006E\u0029", "\u0028\u006F\u0029", "\u0028\u0070\u0029", "\u0028\u0071\u0029", "\u0028\u0072\u0029", "\u0028\u0073\u0029", "\u0028\u0074\u0029", "\u0028\u0075\u0029", "\u0028\u0076\u0029", "\u0028\u0077\u0029", "\u0028\u0078\u0029", "\u0028\u0079\u0029", "\u0028\u007A\u0029", "\u0041", "\u0047", "\u004A", "\u004F", "\u0053", "\u0054", "\u0055", "\u0057", "\u0059", "\u0062", "\u0066", "\u006B", "\u0070", "\u0071", "\u0074", "\u0075", "\u007A", "\u222B\u222B\u222B\u222B", "\u003A\u003A\u003D", "\u003D\u003D", "\u003D\u003D\u003D", "\u2ADD\u0338", "\u6BCD", "\u9F9F", "\u4E00", "\u4E28", "\u4E36", "\u4E3F", "\u4E59", "\u4E85", "\u4E8C", "\u4EA0", "\u4EBA", "\u513F", "\u5165", "\u516B", "\u5182", "\u5196", "\u51AB", "\u51E0", "\u51F5", "\u5200", "\u529B", "\u52F9", "\u5315", "\u531A", "\u5338", "\u5341", "\u535C", "\u5369", "\u5382", "\u53B6", "\u53C8", "\u53E3", "\u56D7", "\u571F", "\u58EB", "\u5902", "\u590A", "\u5915", "\u5927", "\u5973", "\u5B50", "\u5B80", "\u5BF8", "\u5C0F", "\u5C22", "\u5C38", "\u5C6E", "\u5C71", "\u5DDB", "\u5DE5", "\u5DF1", "\u5DFE", "\u5E72", "\u5E7A", "\u5E7F", "\u5EF4", "\u5EFE", "\u5F0B", "\u5F13", "\u5F50", "\u5F61", "\u5F73", "\u5FC3", "\u6208", "\u6236", "\u624B", "\u652F", "\u6534", "\u6587", "\u6597", "\u65A4", "\u65B9", "\u65E0", "\u65E5", "\u66F0", "\u6708", "\u6728", "\u6B20", "\u6B62", "\u6B79", "\u6BB3", "\u6BCB", "\u6BD4", "\u6BDB", "\u6C0F", "\u6C14", "\u6C34", "\u706B", "\u722A", "\u7236", "\u723B", "\u723F", "\u7247", "\u7259", "\u725B", "\u72AC", "\u7384", "\u7389", "\u74DC", "\u74E6", "\u7518", "\u751F", "\u7528", "\u7530", "\u758B", "\u7592", "\u7676", "\u767D", "\u76AE", "\u76BF", "\u76EE", "\u77DB", "\u77E2", "\u77F3", "\u793A", "\u79B8", "\u79BE", "\u7A74", "\u7ACB", "\u7AF9", "\u7C73", "\u7CF8", "\u7F36", "\u7F51", "\u7F8A", "\u7FBD", "\u8001", "\u800C", "\u8012", "\u8033", "\u807F", "\u8089", "\u81E3", "\u81EA", "\u81F3", "\u81FC", "\u820C", "\u821B", "\u821F", "\u826E", "\u8272", "\u8278", "\u864D", "\u866B", "\u8840", "\u884C", "\u8863", "\u897E", "\u898B", "\u89D2", "\u8A00", "\u8C37", "\u8C46", "\u8C55", "\u8C78", "\u8C9D", "\u8D64", "\u8D70", "\u8DB3", "\u8EAB", "\u8ECA", "\u8F9B", "\u8FB0", "\u8FB5", "\u9091", "\u9149", "\u91C6", "\u91CC", "\u91D1", "\u9577", "\u9580", "\u961C", "\u96B6", "\u96B9", "\u96E8", "\u9751", "\u975E", "\u9762", "\u9769", "\u97CB", "\u97ED", "\u97F3", "\u9801", "\u98A8", "\u98DB", "\u98DF", "\u9996", "\u9999", "\u99AC", "\u9AA8", "\u9AD8", "\u9ADF", "\u9B25", "\u9B2F", "\u9B32", "\u9B3C", "\u9B5A", "\u9CE5", "\u9E75", "\u9E7F", "\u9EA5", "\u9EBB", "\u9EC3", "\u9ECD", "\u9ED1", "\u9EF9", "\u9EFD", "\u9F0E", "\u9F13", "\u9F20", "\u9F3B", "\u9F4A", "\u9F52", "\u9F8D", "\u9F9C", "\u9FA0", "\u3012", "\u5344", "\u5345", "\u304B\u3099", "\u304D\u3099", "\u304F\u3099", "\u3051\u3099", "\u3053\u3099", "\u3055\u3099", "\u3057\u3099", "\u3059\u3099", "\u305B\u3099", "\u305D\u3099", "\u305F\u3099", "\u3061\u3099", "\u3064\u3099", "\u3066\u3099", "\u3068\u3099", "\u306F\u3099", "\u306F\u309A", "\u3072\u3099", "\u3072\u309A", "\u3075\u3099", "\u3075\u309A", "\u3078\u3099", "\u3078\u309A", "\u307B\u3099", "\u307B\u309A", "\u3046\u3099", "\u0020\u3099", "\u0020\u309A", "\u309D\u3099", "\u3088\u308A", "\u30AB\u3099", "\u30AD\u3099", "\u30AF\u3099", "\u30B1\u3099", "\u30B3\u3099", "\u30B5\u3099", "\u30B7\u3099", "\u30B9\u3099", "\u30BB\u3099", "\u30BD\u3099", "\u30BF\u3099", "\u30C1\u3099", "\u30C4\u3099", "\u30C6\u3099", "\u30C8\u3099", "\u30CF\u3099", "\u30CF\u309A", "\u30D2\u3099", "\u30D2\u309A", "\u30D5\u3099", "\u30D5\u309A", "\u30D8\u3099", "\u30D8\u309A", "\u30DB\u3099", "\u30DB\u309A", "\u30A6\u3099", "\u30EF\u3099", "\u30F0\u3099", "\u30F1\u3099", "\u30F2\u3099", "\u30FD\u3099", "\u30B3\u30C8", "\u1100", "\u1101", "\u11AA", "\u1102", "\u11AC", "\u11AD", "\u1103", "\u1104", "\u1105", "\u11B0", "\u11B1", "\u11B2", "\u11B3", "\u11B4", "\u11B5", "\u111A", "\u1106", "\u1107", "\u1108", "\u1121", "\u1109", "\u110A", "\u110B", "\u110C", "\u110D", "\u110E", "\u110F", "\u1110", "\u1111", "\u1112", "\u1161", "\u1162", "\u1163", "\u1164", "\u1165", "\u1166", "\u1167", "\u1168", "\u1169", "\u116A", "\u116B", "\u116C", "\u116D", "\u116E", "\u116F", "\u1170", "\u1171", "\u1172", "\u1173", "\u1174", "\u1175", "\u1160", "\u1114", "\u1115", "\u11C7", "\u11C8", "\u11CC", "\u11CE", "\u11D3", "\u11D7", "\u11D9", "\u111C", "\u11DD", "\u11DF", "\u111D", "\u111E", "\u1120", "\u1122", "\u1123", "\u1127", "\u1129", "\u112B", "\u112C", "\u112D", "\u112E", "\u112F", "\u1132", "\u1136", "\u1140", "\u1147", "\u114C", "\u11F1", "\u11F2", "\u1157", "\u1158", "\u1159", "\u1184", "\u1185", "\u1188", "\u1191", "\u1192", "\u1194", "\u119E", "\u11A1", "\u4E09", "\u56DB", "\u4E0A", "\u4E2D", "\u4E0B", "\u7532", "\u4E19", "\u4E01", "\u5929", "\u5730", "\u0028\u1100\u0029", "\u0028\u1102\u0029", "\u0028\u1103\u0029", "\u0028\u1105\u0029", "\u0028\u1106\u0029", "\u0028\u1107\u0029", "\u0028\u1109\u0029", "\u0028\u110B\u0029", "\u0028\u110C\u0029", "\u0028\u110E\u0029", "\u0028\u110F\u0029", "\u0028\u1110\u0029", "\u0028\u1111\u0029", "\u0028\u1112\u0029", "\u0028\u1100\u1161\u0029", "\u0028\u1102\u1161\u0029", "\u0028\u1103\u1161\u0029", "\u0028\u1105\u1161\u0029", "\u0028\u1106\u1161\u0029", "\u0028\u1107\u1161\u0029", "\u0028\u1109\u1161\u0029", "\u0028\u110B\u1161\u0029", "\u0028\u110C\u1161\u0029", "\u0028\u110E\u1161\u0029", "\u0028\u110F\u1161\u0029", "\u0028\u1110\u1161\u0029", "\u0028\u1111\u1161\u0029", "\u0028\u1112\u1161\u0029", "\u0028\u110C\u116E\u0029", "\u0028\u4E00\u0029", "\u0028\u4E8C\u0029", "\u0028\u4E09\u0029", "\u0028\u56DB\u0029", "\u0028\u4E94\u0029", "\u0028\u516D\u0029", "\u0028\u4E03\u0029", "\u0028\u516B\u0029", "\u0028\u4E5D\u0029", "\u0028\u5341\u0029", "\u0028\u6708\u0029", "\u0028\u706B\u0029", "\u0028\u6C34\u0029", "\u0028\u6728\u0029", "\u0028\u91D1\u0029", "\u0028\u571F\u0029", "\u0028\u65E5\u0029", "\u0028\u682A\u0029", "\u0028\u6709\u0029", "\u0028\u793E\u0029", "\u0028\u540D\u0029", "\u0028\u7279\u0029", "\u0028\u8CA1\u0029", "\u0028\u795D\u0029", "\u0028\u52B4\u0029", "\u0028\u4EE3\u0029", "\u0028\u547C\u0029", "\u0028\u5B66\u0029", "\u0028\u76E3\u0029", "\u0028\u4F01\u0029", "\u0028\u8CC7\u0029", "\u0028\u5354\u0029", "\u0028\u796D\u0029", "\u0028\u4F11\u0029", "\u0028\u81EA\u0029", "\u0028\u81F3\u0029", "\u0032\u0031", "\u0032\u0032", "\u0032\u0033", "\u0032\u0034", "\u0032\u0035", "\u0032\u0036", "\u0032\u0037", "\u0032\u0038", "\u0032\u0039", "\u0033\u0030", "\u0033\u0031", "\u0033\u0032", "\u0033\u0033", "\u0033\u0034", "\u0033\u0035", "\u1100\u1161", "\u1102\u1161", "\u1103\u1161", "\u1105\u1161", "\u1106\u1161", "\u1107\u1161", "\u1109\u1161", "\u110B\u1161", "\u110C\u1161", "\u110E\u1161", "\u110F\u1161", "\u1110\u1161", "\u1111\u1161", "\u1112\u1161", "\u4E94", "\u516D", "\u4E03", "\u4E5D", "\u682A", "\u6709", "\u793E", "\u540D", "\u7279", "\u8CA1", "\u795D", "\u52B4", "\u79D8", "\u7537", "\u9069", "\u512A", "\u5370", "\u6CE8", "\u9805", "\u4F11", "\u5199", "\u6B63", "\u5DE6", "\u53F3", "\u533B", "\u5B97", "\u5B66", "\u76E3", "\u4F01", "\u8CC7", "\u5354", "\u591C", "\u0033\u0036", "\u0033\u0037", "\u0033\u0038", "\u0033\u0039", "\u0034\u0030", "\u0034\u0031", "\u0034\u0032", "\u0034\u0033", "\u0034\u0034", "\u0034\u0035", "\u0034\u0036", "\u0034\u0037", "\u0034\u0038", "\u0034\u0039", "\u0035\u0030", "\u0031\u6708", "\u0032\u6708", "\u0033\u6708", "\u0034\u6708", "\u0035\u6708", "\u0036\u6708", "\u0037\u6708", "\u0038\u6708", "\u0039\u6708", "\u0031\u0030\u6708", "\u0031\u0031\u6708", "\u0031\u0032\u6708", "\u30A2", "\u30A4", "\u30A6", "\u30A8", "\u30AA", "\u30AB", "\u30AD", "\u30AF", "\u30B1", "\u30B3", "\u30B5", "\u30B7", "\u30B9", "\u30BB", "\u30BD", "\u30BF", "\u30C1", "\u30C4", "\u30C6", "\u30C8", "\u30CA", "\u30CB", "\u30CC", "\u30CD", "\u30CE", "\u30CF", "\u30D2", "\u30D5", "\u30D8", "\u30DB", "\u30DE", "\u30DF", "\u30E0", "\u30E1", "\u30E2", "\u30E4", "\u30E6", "\u30E8", "\u30E9", "\u30EA", "\u30EB", "\u30EC", "\u30ED", "\u30EF", "\u30F0", "\u30F1", "\u30F2", "\u30A2\u30CF\u309A\u30FC\u30C8", "\u30A2\u30EB\u30D5\u30A1", "\u30A2\u30F3\u30D8\u309A\u30A2", "\u30A2\u30FC\u30EB", "\u30A4\u30CB\u30F3\u30AF\u3099", "\u30A4\u30F3\u30C1", "\u30A6\u30A9\u30F3", "\u30A8\u30B9\u30AF\u30FC\u30C8\u3099", "\u30A8\u30FC\u30AB\u30FC", "\u30AA\u30F3\u30B9", "\u30AA\u30FC\u30E0", "\u30AB\u30A4\u30EA", "\u30AB\u30E9\u30C3\u30C8", "\u30AB\u30ED\u30EA\u30FC", "\u30AB\u3099\u30ED\u30F3", "\u30AB\u3099\u30F3\u30DE", "\u30AD\u3099\u30AB\u3099", "\u30AD\u3099\u30CB\u30FC", "\u30AD\u30E5\u30EA\u30FC", "\u30AD\u3099\u30EB\u30BF\u3099\u30FC", "\u30AD\u30ED", "\u30AD\u30ED\u30AF\u3099\u30E9\u30E0", "\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB", "\u30AD\u30ED\u30EF\u30C3\u30C8", "\u30AF\u3099\u30E9\u30E0", "\u30AF\u3099\u30E9\u30E0\u30C8\u30F3", "\u30AF\u30EB\u30BB\u3099\u30A4\u30ED", "\u30AF\u30ED\u30FC\u30CD", "\u30B1\u30FC\u30B9", "\u30B3\u30EB\u30CA", "\u30B3\u30FC\u30DB\u309A", "\u30B5\u30A4\u30AF\u30EB", "\u30B5\u30F3\u30C1\u30FC\u30E0", "\u30B7\u30EA\u30F3\u30AF\u3099", "\u30BB\u30F3\u30C1", "\u30BB\u30F3\u30C8", "\u30BF\u3099\u30FC\u30B9", "\u30C6\u3099\u30B7", "\u30C8\u3099\u30EB", "\u30C8\u30F3", "\u30CA\u30CE", "\u30CE\u30C3\u30C8", "\u30CF\u30A4\u30C4", "\u30CF\u309A\u30FC\u30BB\u30F3\u30C8", "\u30CF\u309A\u30FC\u30C4", "\u30CF\u3099\u30FC\u30EC\u30EB", "\u30D2\u309A\u30A2\u30B9\u30C8\u30EB", "\u30D2\u309A\u30AF\u30EB", "\u30D2\u309A\u30B3", "\u30D2\u3099\u30EB", "\u30D5\u30A1\u30E9\u30C3\u30C8\u3099", "\u30D5\u30A3\u30FC\u30C8", "\u30D5\u3099\u30C3\u30B7\u30A7\u30EB", "\u30D5\u30E9\u30F3", "\u30D8\u30AF\u30BF\u30FC\u30EB", "\u30D8\u309A\u30BD", "\u30D8\u309A\u30CB\u30D2", "\u30D8\u30EB\u30C4", "\u30D8\u309A\u30F3\u30B9", "\u30D8\u309A\u30FC\u30B7\u3099", "\u30D8\u3099\u30FC\u30BF", "\u30DB\u309A\u30A4\u30F3\u30C8", "\u30DB\u3099\u30EB\u30C8", "\u30DB\u30F3", "\u30DB\u309A\u30F3\u30C8\u3099", "\u30DB\u30FC\u30EB", "\u30DB\u30FC\u30F3", "\u30DE\u30A4\u30AF\u30ED", "\u30DE\u30A4\u30EB", "\u30DE\u30C3\u30CF", "\u30DE\u30EB\u30AF", "\u30DE\u30F3\u30B7\u30E7\u30F3", "\u30DF\u30AF\u30ED\u30F3", "\u30DF\u30EA", "\u30DF\u30EA\u30CF\u3099\u30FC\u30EB", "\u30E1\u30AB\u3099", "\u30E1\u30AB\u3099\u30C8\u30F3", "\u30E1\u30FC\u30C8\u30EB", "\u30E4\u30FC\u30C8\u3099", "\u30E4\u30FC\u30EB", "\u30E6\u30A2\u30F3", "\u30EA\u30C3\u30C8\u30EB", "\u30EA\u30E9", "\u30EB\u30D2\u309A\u30FC", "\u30EB\u30FC\u30D5\u3099\u30EB", "\u30EC\u30E0", "\u30EC\u30F3\u30C8\u30B1\u3099\u30F3", "\u30EF\u30C3\u30C8", "\u0030\u70B9", "\u0031\u70B9", "\u0032\u70B9", "\u0033\u70B9", "\u0034\u70B9", "\u0035\u70B9", "\u0036\u70B9", "\u0037\u70B9", "\u0038\u70B9", "\u0039\u70B9", "\u0031\u0030\u70B9", "\u0031\u0031\u70B9", "\u0031\u0032\u70B9", "\u0031\u0033\u70B9", "\u0031\u0034\u70B9", "\u0031\u0035\u70B9", "\u0031\u0036\u70B9", "\u0031\u0037\u70B9", "\u0031\u0038\u70B9", "\u0031\u0039\u70B9", "\u0032\u0030\u70B9", "\u0032\u0031\u70B9", "\u0032\u0032\u70B9", "\u0032\u0033\u70B9", "\u0032\u0034\u70B9", "\u0068\u0050\u0061", "\u0064\u0061", "\u0041\u0055", "\u0062\u0061\u0072", "\u006F\u0056", "\u0070\u0063", "\u5E73\u6210", "\u662D\u548C", "\u5927\u6B63", "\u660E\u6CBB", "\u682A\u5F0F\u4F1A\u793E", "\u0070\u0041", "\u006E\u0041", "\u03BC\u0041", "\u006D\u0041", "\u006B\u0041", "\u004B\u0042", "\u004D\u0042", "\u0047\u0042", "\u0063\u0061\u006C", "\u006B\u0063\u0061\u006C", "\u0070\u0046", "\u006E\u0046", "\u03BC\u0046", "\u03BC\u0067", "\u006D\u0067", "\u006B\u0067", "\u0048\u007A", "\u006B\u0048\u007A", "\u004D\u0048\u007A", "\u0047\u0048\u007A", "\u0054\u0048\u007A", "\u03BC\u006C", "\u006D\u006C", "\u0064\u006C", "\u006B\u006C", "\u0066\u006D", "\u006E\u006D", "\u03BC\u006D", "\u006D\u006D", "\u0063\u006D", "\u006B\u006D", "\u006D\u006D\u0032", "\u0063\u006D\u0032", "\u006D\u0032", "\u006B\u006D\u0032", "\u006D\u006D\u0033", "\u0063\u006D\u0033", "\u006D\u0033", "\u006B\u006D\u0033", "\u006D\u2215\u0073", "\u006D\u2215\u0073\u0032", "\u0050\u0061", "\u006B\u0050\u0061", "\u004D\u0050\u0061", "\u0047\u0050\u0061", "\u0072\u0061\u0064", "\u0072\u0061\u0064\u2215\u0073", "\u0072\u0061\u0064\u2215\u0073\u0032", "\u0070\u0073", "\u006E\u0073", "\u03BC\u0073", "\u006D\u0073", "\u0070\u0056", "\u006E\u0056", "\u03BC\u0056", "\u006D\u0056", "\u006B\u0056", "\u004D\u0056", "\u0070\u0057", "\u006E\u0057", "\u03BC\u0057", "\u006D\u0057", "\u006B\u0057", "\u004D\u0057", "\u006B\u03A9", "\u004D\u03A9", "\u0061\u002E\u006D\u002E", "\u0042\u0071", "\u0063\u0063", "\u0063\u0064", "\u0043\u2215\u006B\u0067", "\u0043\u006F\u002E", "\u0064\u0042", "\u0047\u0079", "\u0068\u0061", "\u0048\u0050", "\u0069\u006E", "\u004B\u004B", "\u004B\u004D", "\u006B\u0074", "\u006C\u006D", "\u006C\u006E", "\u006C\u006F\u0067", "\u006C\u0078", "\u006D\u0062", "\u006D\u0069\u006C", "\u006D\u006F\u006C", "\u0050\u0048", "\u0070\u002E\u006D\u002E", "\u0050\u0050\u004D", "\u0050\u0052", "\u0073\u0072", "\u0053\u0076", "\u0057\u0062", "\u0031\u65E5", "\u0032\u65E5", "\u0033\u65E5", "\u0034\u65E5", "\u0035\u65E5", "\u0036\u65E5", "\u0037\u65E5", "\u0038\u65E5", "\u0039\u65E5", "\u0031\u0030\u65E5", "\u0031\u0031\u65E5", "\u0031\u0032\u65E5", "\u0031\u0033\u65E5", "\u0031\u0034\u65E5", "\u0031\u0035\u65E5", "\u0031\u0036\u65E5", "\u0031\u0037\u65E5", "\u0031\u0038\u65E5", "\u0031\u0039\u65E5", "\u0032\u0030\u65E5", "\u0032\u0031\u65E5", "\u0032\u0032\u65E5", "\u0032\u0033\u65E5", "\u0032\u0034\u65E5", "\u0032\u0035\u65E5", "\u0032\u0036\u65E5", "\u0032\u0037\u65E5", "\u0032\u0038\u65E5", "\u0032\u0039\u65E5", "\u0033\u0030\u65E5", "\u0033\u0031\u65E5", "\u8C48", "\u66F4", "\u8CC8", "\u6ED1", "\u4E32", "\u53E5", "\u5951", "\u5587", "\u5948", "\u61F6", "\u7669", "\u7F85", "\u863F", "\u87BA", "\u88F8", "\u908F", "\u6A02", "\u6D1B", "\u70D9", "\u73DE", "\u843D", "\u916A", "\u99F1", "\u4E82", "\u5375", "\u6B04", "\u721B", "\u862D", "\u9E1E", "\u5D50", "\u6FEB", "\u85CD", "\u8964", "\u62C9", "\u81D8", "\u881F", "\u5ECA", "\u6717", "\u6D6A", "\u72FC", "\u90CE", "\u4F86", "\u51B7", "\u52DE", "\u64C4", "\u6AD3", "\u7210", "\u76E7", "\u8606", "\u865C", "\u8DEF", "\u9732", "\u9B6F", "\u9DFA", "\u788C", "\u797F", "\u7DA0", "\u83C9", "\u9304", "\u8AD6", "\u58DF", "\u5F04", "\u7C60", "\u807E", "\u7262", "\u78CA", "\u8CC2", "\u96F7", "\u58D8", "\u5C62", "\u6A13", "\u6DDA", "\u6F0F", "\u7D2F", "\u7E37", "\u964B", "\u52D2", "\u808B", "\u51DC", "\u51CC", "\u7A1C", "\u7DBE", "\u83F1", "\u9675", "\u8B80", "\u62CF", "\u8AFE", "\u4E39", "\u5BE7", "\u6012", "\u7387", "\u7570", "\u5317", "\u78FB", "\u4FBF", "\u5FA9", "\u4E0D", "\u6CCC", "\u6578", "\u7D22", "\u53C3", "\u585E", "\u7701", "\u8449", "\u8AAA", "\u6BBA", "\u6C88", "\u62FE", "\u82E5", "\u63A0", "\u7565", "\u4EAE", "\u5169", "\u51C9", "\u6881", "\u7CE7", "\u826F", "\u8AD2", "\u91CF", "\u52F5", "\u5442", "\u5EEC", "\u65C5", "\u6FFE", "\u792A", "\u95AD", "\u9A6A", "\u9E97", "\u9ECE", "\u66C6", "\u6B77", "\u8F62", "\u5E74", "\u6190", "\u6200", "\u649A", "\u6F23", "\u7149", "\u7489", "\u79CA", "\u7DF4", "\u806F", "\u8F26", "\u84EE", "\u9023", "\u934A", "\u5217", "\u52A3", "\u54BD", "\u70C8", "\u88C2", "\u5EC9", "\u5FF5", "\u637B", "\u6BAE", "\u7C3E", "\u7375", "\u4EE4", "\u56F9", "\u5DBA", "\u601C", "\u73B2", "\u7469", "\u7F9A", "\u8046", "\u9234", "\u96F6", "\u9748", "\u9818", "\u4F8B", "\u79AE", "\u91B4", "\u96B8", "\u60E1", "\u4E86", "\u50DA", "\u5BEE", "\u5C3F", "\u6599", "\u71CE", "\u7642", "\u84FC", "\u907C", "\u6688", "\u962E", "\u5289", "\u677B", "\u67F3", "\u6D41", "\u6E9C", "\u7409", "\u7559", "\u786B", "\u7D10", "\u985E", "\u622E", "\u9678", "\u502B", "\u5D19", "\u6DEA", "\u8F2A", "\u5F8B", "\u6144", "\u6817", "\u9686", "\u5229", "\u540F", "\u5C65", "\u6613", "\u674E", "\u68A8", "\u6CE5", "\u7406", "\u75E2", "\u7F79", "\u88CF", "\u88E1", "\u96E2", "\u533F", "\u6EBA", "\u541D", "\u71D0", "\u7498", "\u85FA", "\u96A3", "\u9C57", "\u9E9F", "\u6797", "\u6DCB", "\u81E8", "\u7B20", "\u7C92", "\u72C0", "\u7099", "\u8B58", "\u4EC0", "\u8336", "\u523A", "\u5207", "\u5EA6", "\u62D3", "\u7CD6", "\u5B85", "\u6D1E", "\u66B4", "\u8F3B", "\u964D", "\u5ED3", "\u5140", "\u55C0", "\u585A", "\u6674", "\u51DE", "\u732A", "\u76CA", "\u793C", "\u795E", "\u7965", "\u798F", "\u9756", "\u7CBE", "\u8612", "\u8AF8", "\u9038", "\u90FD", "\u98EF", "\u98FC", "\u9928", "\u9DB4", "\u4FAE", "\u50E7", "\u514D", "\u52C9", "\u52E4", "\u5351", "\u559D", "\u5606", "\u5668", "\u5840", "\u58A8", "\u5C64", "\u6094", "\u6168", "\u618E", "\u61F2", "\u654F", "\u65E2", "\u6691", "\u6885", "\u6D77", "\u6E1A", "\u6F22", "\u716E", "\u722B", "\u7422", "\u7891", "\u7949", "\u7948", "\u7950", "\u7956", "\u798D", "\u798E", "\u7A40", "\u7A81", "\u7BC0", "\u7E09", "\u7E41", "\u7F72", "\u8005", "\u81ED", "\u8279", "\u8457", "\u8910", "\u8996", "\u8B01", "\u8B39", "\u8CD3", "\u8D08", "\u8FB6", "\u96E3", "\u97FF", "\u983B", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\u05D9\u05B4", "\u05F2\u05B7", "\u05E2", "\u05D4", "\u05DB", "\u05DC", "\u05DD", "\u05E8", "\u05EA", "\u05E9\u05C1", "\u05E9\u05C2", "\u05E9\u05BC\u05C1", "\u05E9\u05BC\u05C2", "\u05D0\u05B7", "\u05D0\u05B8", "\u05D0\u05BC", "\u05D1\u05BC", "\u05D2\u05BC", "\u05D3\u05BC", "\u05D4\u05BC", "\u05D5\u05BC", "\u05D6\u05BC", "\u05D8\u05BC", "\u05D9\u05BC", "\u05DA\u05BC", "\u05DB\u05BC", "\u05DC\u05BC", "\u05DE\u05BC", "\u05E0\u05BC", "\u05E1\u05BC", "\u05E3\u05BC", "\u05E4\u05BC", "\u05E6\u05BC", "\u05E7\u05BC", "\u05E8\u05BC", "\u05E9\u05BC", "\u05EA\u05BC", "\u05D5\u05B9", "\u05D1\u05BF", "\u05DB\u05BF", "\u05E4\u05BF", "\u05D0\u05DC", "\u0671", "\u067B", "\u067E", "\u0680", "\u067A", "\u067F", "\u0679", "\u06A4", "\u06A6", "\u0684", "\u0683", "\u0686", "\u0687", "\u068D", "\u068C", "\u068E", "\u0688", "\u0698", "\u0691", "\u06A9", "\u06AF", "\u06B3", "\u06B1", "\u06BA", "\u06BB", "\u06C1", "\u06BE", "\u06D2", "\u06AD", "\u06C7", "\u06C6", "\u06C8", "\u06CB", "\u06C5", "\u06C9", "\u06D0", "\u0649", "\u064A\u0654\u0627", "\u064A\u0654\u06D5", "\u064A\u0654\u0648", "\u064A\u0654\u06C7", "\u064A\u0654\u06C6", "\u064A\u0654\u06C8", "\u064A\u0654\u06D0", "\u064A\u0654\u0649", "\u06CC", "\u064A\u0654\u062C", "\u064A\u0654\u062D", "\u064A\u0654\u0645", "\u064A\u0654\u064A", "\u0628\u062C", "\u0628\u062D", "\u0628\u062E", "\u0628\u0645", "\u0628\u0649", "\u0628\u064A", "\u062A\u062C", "\u062A\u062D", "\u062A\u062E", "\u062A\u0645", "\u062A\u0649", "\u062A\u064A", "\u062B\u062C", "\u062B\u0645", "\u062B\u0649", "\u062B\u064A", "\u062C\u062D", "\u062C\u0645", "\u062D\u062C", "\u062D\u0645", "\u062E\u062C", "\u062E\u062D", "\u062E\u0645", "\u0633\u062C", "\u0633\u062D", "\u0633\u062E", "\u0633\u0645", "\u0635\u062D", "\u0635\u0645", "\u0636\u062C", "\u0636\u062D", "\u0636\u062E", "\u0636\u0645", "\u0637\u062D", "\u0637\u0645", "\u0638\u0645", "\u0639\u062C", "\u0639\u0645", "\u063A\u062C", "\u063A\u0645", "\u0641\u062C", "\u0641\u062D", "\u0641\u062E", "\u0641\u0645", "\u0641\u0649", "\u0641\u064A", "\u0642\u062D", "\u0642\u0645", "\u0642\u0649", "\u0642\u064A", "\u0643\u0627", "\u0643\u062C", "\u0643\u062D", "\u0643\u062E", "\u0643\u0644", "\u0643\u0645", "\u0643\u0649", "\u0643\u064A", "\u0644\u062C", "\u0644\u062D", "\u0644\u062E", "\u0644\u0645", "\u0644\u0649", "\u0644\u064A", "\u0645\u062C", "\u0645\u062D", "\u0645\u062E", "\u0645\u0645", "\u0645\u0649", "\u0645\u064A", "\u0646\u062C", "\u0646\u062D", "\u0646\u062E", "\u0646\u0645", "\u0646\u0649", "\u0646\u064A", "\u0647\u062C", "\u0647\u0645", "\u0647\u0649", "\u0647\u064A", "\u064A\u062C", "\u064A\u062D", "\u064A\u062E", "\u064A\u0645", "\u064A\u0649", "\u064A\u064A", "\u0630\u0670", "\u0631\u0670", "\u0649\u0670", "\u0020\u064C\u0651", "\u0020\u064D\u0651", "\u0020\u064E\u0651", "\u0020\u064F\u0651", "\u0020\u0650\u0651", "\u0020\u0651\u0670", "\u064A\u0654\u0631", "\u064A\u0654\u0632", "\u064A\u0654\u0646", "\u0628\u0631", "\u0628\u0632", "\u0628\u0646", "\u062A\u0631", "\u062A\u0632", "\u062A\u0646", "\u062B\u0631", "\u062B\u0632", "\u062B\u0646", "\u0645\u0627", "\u0646\u0631", "\u0646\u0632", "\u0646\u0646", "\u064A\u0631", "\u064A\u0632", "\u064A\u0646", "\u064A\u0654\u062E", "\u064A\u0654\u0647", "\u0628\u0647", "\u062A\u0647", "\u0635\u062E", "\u0644\u0647", "\u0646\u0647", "\u0647\u0670", "\u064A\u0647", "\u062B\u0647", "\u0633\u0647", "\u0634\u0645", "\u0634\u0647", "\u0640\u064E\u0651", "\u0640\u064F\u0651", "\u0640\u0650\u0651", "\u0637\u0649", "\u0637\u064A", "\u0639\u0649", "\u0639\u064A", "\u063A\u0649", "\u063A\u064A", "\u0633\u0649", "\u0633\u064A", "\u0634\u0649", "\u0634\u064A", "\u062D\u0649", "\u062D\u064A", "\u062C\u0649", "\u062C\u064A", "\u062E\u0649", "\u062E\u064A", "\u0635\u0649", "\u0635\u064A", "\u0636\u0649", "\u0636\u064A", "\u0634\u062C", "\u0634\u062D", "\u0634\u062E", "\u0634\u0631", "\u0633\u0631", "\u0635\u0631", "\u0636\u0631", "\u0627\u064B", "\u062A\u062C\u0645", "\u062A\u062D\u062C", "\u062A\u062D\u0645", "\u062A\u062E\u0645", "\u062A\u0645\u062C", "\u062A\u0645\u062D", "\u062A\u0645\u062E", "\u062C\u0645\u062D", "\u062D\u0645\u064A", "\u062D\u0645\u0649", "\u0633\u062D\u062C", "\u0633\u062C\u062D", "\u0633\u062C\u0649", "\u0633\u0645\u062D", "\u0633\u0645\u062C", "\u0633\u0645\u0645", "\u0635\u062D\u062D", "\u0635\u0645\u0645", "\u0634\u062D\u0645", "\u0634\u062C\u064A", "\u0634\u0645\u062E", "\u0634\u0645\u0645", "\u0636\u062D\u0649", "\u0636\u062E\u0645", "\u0637\u0645\u062D", "\u0637\u0645\u0645", "\u0637\u0645\u064A", "\u0639\u062C\u0645", "\u0639\u0645\u0645", "\u0639\u0645\u0649", "\u063A\u0645\u0645", "\u063A\u0645\u064A", "\u063A\u0645\u0649", "\u0641\u062E\u0645", "\u0642\u0645\u062D", "\u0642\u0645\u0645", "\u0644\u062D\u0645", "\u0644\u062D\u064A", "\u0644\u062D\u0649", "\u0644\u062C\u062C", "\u0644\u062E\u0645", "\u0644\u0645\u062D", "\u0645\u062D\u062C", "\u0645\u062D\u0645", "\u0645\u062D\u064A", "\u0645\u062C\u062D", "\u0645\u062C\u0645", "\u0645\u062E\u062C", "\u0645\u062E\u0645", "\u0645\u062C\u062E", "\u0647\u0645\u062C", "\u0647\u0645\u0645", "\u0646\u062D\u0645", "\u0646\u062D\u0649", "\u0646\u062C\u0645", "\u0646\u062C\u0649", "\u0646\u0645\u064A", "\u0646\u0645\u0649", "\u064A\u0645\u0645", "\u0628\u062E\u064A", "\u062A\u062C\u064A", "\u062A\u062C\u0649", "\u062A\u062E\u064A", "\u062A\u062E\u0649", "\u062A\u0645\u064A", "\u062A\u0645\u0649", "\u062C\u0645\u064A", "\u062C\u062D\u0649", "\u062C\u0645\u0649", "\u0633\u062E\u0649", "\u0635\u062D\u064A", "\u0634\u062D\u064A", "\u0636\u062D\u064A", "\u0644\u062C\u064A", "\u0644\u0645\u064A", "\u064A\u062D\u064A", "\u064A\u062C\u064A", "\u064A\u0645\u064A", "\u0645\u0645\u064A", "\u0642\u0645\u064A", "\u0646\u062D\u064A", "\u0639\u0645\u064A", "\u0643\u0645\u064A", "\u0646\u062C\u062D", "\u0645\u062E\u064A", "\u0644\u062C\u0645", "\u0643\u0645\u0645", "\u062C\u062D\u064A", "\u062D\u062C\u064A", "\u0645\u062C\u064A", "\u0641\u0645\u064A", "\u0628\u062D\u064A", "\u0633\u062E\u064A", "\u0646\u062C\u064A", "\u0635\u0644\u06D2", "\u0642\u0644\u06D2", "\u0627\u0644\u0644\u0647", "\u0627\u0643\u0628\u0631", "\u0645\u062D\u0645\u062F", "\u0635\u0644\u0639\u0645", "\u0631\u0633\u0648\u0644", "\u0639\u0644\u064A\u0647", "\u0648\u0633\u0644\u0645", "\u0635\u0644\u0649", "\u0635\u0644\u0649\u0020\u0627\u0644\u0644\u0647\u0020\u0639\u0644\u064A\u0647\u0020\u0648\u0633\u0644\u0645", "\u062C\u0644\u0020\u062C\u0644\u0627\u0644\u0647", "\u0631\u06CC\u0627\u0644", "\u2014", "\u2013", "\u005F", "\u007B", "\u007D", "\u3014", "\u3015", "\u3010", "\u3011", "\u300A", "\u300B", "\u300C", "\u300D", "\u300E", "\u300F", "\u002C", "\u3001", "\u003A", "\u003F", "\u0021", "\u0023", "\u0026", "\u002A", "\u002D", "\u003C", "\u003E", "\\", "\u0024", "\u0025", "\u0040", "\u0020\u064B", "\u0640\u064B", "\u0020\u064C", "\u0020\u064D", "\u0020\u064E", "\u0640\u064E", "\u0020\u064F", "\u0640\u064F", "\u0020\u0650", "\u0640\u0650", "\u0020\u0651", "\u0640\u0651", "\u0020\u0652", "\u0640\u0652", "\u0621", "\u0627", "\u0628", "\u0629", "\u062A", "\u062B", "\u062C", "\u062D", "\u062E", "\u062F", "\u0630", "\u0631", "\u0632", "\u0633", "\u0634", "\u0635", "\u0636", "\u0637", "\u0638", "\u0639", "\u063A", "\u0641", "\u0642", "\u0643", "\u0644", "\u0645", "\u0646", "\u0647", "\u0648", "\u064A", "\u0644\u0627\u0653", "\u0644\u0627\u0654", "\u0644\u0627\u0655", "\u0644\u0627", "\"", "\u0027", "\u002F", "\u005B", "\u005D", "\u005E", "\u007C", "\u007E", "\u2985", "\u2986", "\u3002", "\u30FB", "\u30A1", "\u30A3", "\u30A5", "\u30A7", "\u30A9", "\u30E3", "\u30E5", "\u30E7", "\u30C3", "\u30FC", "\u30F3", "\u3099", "\u309A", "\u00A2", "\u00A3", "\u00AC", "\u00A6", "\u00A5", "\u20A9", "\u2502", "\u2190", "\u2191", "\u2192", "\u2193", "\u25A0", "\u25CB", }; } libidn-1.38/java/src/main/java/gnu/inet/encoding/Makefile.in0000644000000000000000000015100414076273733020552 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java/gnu/inet/encoding ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_noinst_JAVA_DIST) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_noinst_JAVA_DIST = CombiningClass.java Composition.java \ DecompositionKeys.java DecompositionMappings.java IDNA.java \ IDNAException.java NFKC.java Punycode.java \ PunycodeException.java RangeSet.java RFC3454.java \ Stringprep.java StringprepException.java CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} am__java_sources = $(dist_noinst_JAVA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ JAVAROOT = $(top_builddir)/java/src/main/java @JAVA_TRUE@dist_noinst_JAVA = \ @JAVA_TRUE@ CombiningClass.java \ @JAVA_TRUE@ Composition.java \ @JAVA_TRUE@ DecompositionKeys.java \ @JAVA_TRUE@ DecompositionMappings.java \ @JAVA_TRUE@ IDNA.java \ @JAVA_TRUE@ IDNAException.java \ @JAVA_TRUE@ NFKC.java \ @JAVA_TRUE@ Punycode.java \ @JAVA_TRUE@ PunycodeException.java \ @JAVA_TRUE@ RangeSet.java \ @JAVA_TRUE@ RFC3454.java \ @JAVA_TRUE@ Stringprep.java \ @JAVA_TRUE@ StringprepException.java all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/encoding/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/encoding/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs classnoinst.stamp: $(am__java_sources) @list1='$?'; list2=; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ list2="$$list2 $$d$$p"; \ done; \ echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $$list2; \ else :; fi echo timestamp > $@ clean-noinstJAVA: -rm -f *.class classnoinst.stamp tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile classnoinst.stamp installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstJAVA mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-noinstJAVA cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/main/java/gnu/inet/encoding/DecompositionKeys.java0000644000000000000000000021231514053001337023003 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class DecompositionKeys { public final static int[] k = new int[] { '\u00A0', 0, '\u00A8', 1, '\u00AA', 2, '\u00AF', 3, '\u00B2', 4, '\u00B3', 5, '\u00B4', 6, '\u00B5', 7, '\u00B8', 8, '\u00B9', 9, '\u00BA', 10, '\u00BC', 11, '\u00BD', 12, '\u00BE', 13, '\u00C0', 14, '\u00C1', 15, '\u00C2', 16, '\u00C3', 17, '\u00C4', 18, '\u00C5', 19, '\u00C7', 20, '\u00C8', 21, '\u00C9', 22, '\u00CA', 23, '\u00CB', 24, '\u00CC', 25, '\u00CD', 26, '\u00CE', 27, '\u00CF', 28, '\u00D1', 29, '\u00D2', 30, '\u00D3', 31, '\u00D4', 32, '\u00D5', 33, '\u00D6', 34, '\u00D9', 35, '\u00DA', 36, '\u00DB', 37, '\u00DC', 38, '\u00DD', 39, '\u00E0', 40, '\u00E1', 41, '\u00E2', 42, '\u00E3', 43, '\u00E4', 44, '\u00E5', 45, '\u00E7', 46, '\u00E8', 47, '\u00E9', 48, '\u00EA', 49, '\u00EB', 50, '\u00EC', 51, '\u00ED', 52, '\u00EE', 53, '\u00EF', 54, '\u00F1', 55, '\u00F2', 56, '\u00F3', 57, '\u00F4', 58, '\u00F5', 59, '\u00F6', 60, '\u00F9', 61, '\u00FA', 62, '\u00FB', 63, '\u00FC', 64, '\u00FD', 65, '\u00FF', 66, '\u0100', 67, '\u0101', 68, '\u0102', 69, '\u0103', 70, '\u0104', 71, '\u0105', 72, '\u0106', 73, '\u0107', 74, '\u0108', 75, '\u0109', 76, '\u010A', 77, '\u010B', 78, '\u010C', 79, '\u010D', 80, '\u010E', 81, '\u010F', 82, '\u0112', 83, '\u0113', 84, '\u0114', 85, '\u0115', 86, '\u0116', 87, '\u0117', 88, '\u0118', 89, '\u0119', 90, '\u011A', 91, '\u011B', 92, '\u011C', 93, '\u011D', 94, '\u011E', 95, '\u011F', 96, '\u0120', 97, '\u0121', 98, '\u0122', 99, '\u0123', 100, '\u0124', 101, '\u0125', 102, '\u0128', 103, '\u0129', 104, '\u012A', 105, '\u012B', 106, '\u012C', 107, '\u012D', 108, '\u012E', 109, '\u012F', 110, '\u0130', 111, '\u0132', 112, '\u0133', 113, '\u0134', 114, '\u0135', 115, '\u0136', 116, '\u0137', 117, '\u0139', 118, '\u013A', 119, '\u013B', 120, '\u013C', 121, '\u013D', 122, '\u013E', 123, '\u013F', 124, '\u0140', 125, '\u0143', 126, '\u0144', 127, '\u0145', 128, '\u0146', 129, '\u0147', 130, '\u0148', 131, '\u0149', 132, '\u014C', 133, '\u014D', 134, '\u014E', 135, '\u014F', 136, '\u0150', 137, '\u0151', 138, '\u0154', 139, '\u0155', 140, '\u0156', 141, '\u0157', 142, '\u0158', 143, '\u0159', 144, '\u015A', 145, '\u015B', 146, '\u015C', 147, '\u015D', 148, '\u015E', 149, '\u015F', 150, '\u0160', 151, '\u0161', 152, '\u0162', 153, '\u0163', 154, '\u0164', 155, '\u0165', 156, '\u0168', 157, '\u0169', 158, '\u016A', 159, '\u016B', 160, '\u016C', 161, '\u016D', 162, '\u016E', 163, '\u016F', 164, '\u0170', 165, '\u0171', 166, '\u0172', 167, '\u0173', 168, '\u0174', 169, '\u0175', 170, '\u0176', 171, '\u0177', 172, '\u0178', 173, '\u0179', 174, '\u017A', 175, '\u017B', 176, '\u017C', 177, '\u017D', 178, '\u017E', 179, '\u017F', 180, '\u01A0', 181, '\u01A1', 182, '\u01AF', 183, '\u01B0', 184, '\u01C4', 185, '\u01C5', 186, '\u01C6', 187, '\u01C7', 188, '\u01C8', 189, '\u01C9', 190, '\u01CA', 191, '\u01CB', 192, '\u01CC', 193, '\u01CD', 194, '\u01CE', 195, '\u01CF', 196, '\u01D0', 197, '\u01D1', 198, '\u01D2', 199, '\u01D3', 200, '\u01D4', 201, '\u01D5', 202, '\u01D6', 203, '\u01D7', 204, '\u01D8', 205, '\u01D9', 206, '\u01DA', 207, '\u01DB', 208, '\u01DC', 209, '\u01DE', 210, '\u01DF', 211, '\u01E0', 212, '\u01E1', 213, '\u01E2', 214, '\u01E3', 215, '\u01E6', 216, '\u01E7', 217, '\u01E8', 218, '\u01E9', 219, '\u01EA', 220, '\u01EB', 221, '\u01EC', 222, '\u01ED', 223, '\u01EE', 224, '\u01EF', 225, '\u01F0', 226, '\u01F1', 227, '\u01F2', 228, '\u01F3', 229, '\u01F4', 230, '\u01F5', 231, '\u01F8', 232, '\u01F9', 233, '\u01FA', 234, '\u01FB', 235, '\u01FC', 236, '\u01FD', 237, '\u01FE', 238, '\u01FF', 239, '\u0200', 240, '\u0201', 241, '\u0202', 242, '\u0203', 243, '\u0204', 244, '\u0205', 245, '\u0206', 246, '\u0207', 247, '\u0208', 248, '\u0209', 249, '\u020A', 250, '\u020B', 251, '\u020C', 252, '\u020D', 253, '\u020E', 254, '\u020F', 255, '\u0210', 256, '\u0211', 257, '\u0212', 258, '\u0213', 259, '\u0214', 260, '\u0215', 261, '\u0216', 262, '\u0217', 263, '\u0218', 264, '\u0219', 265, '\u021A', 266, '\u021B', 267, '\u021E', 268, '\u021F', 269, '\u0226', 270, '\u0227', 271, '\u0228', 272, '\u0229', 273, '\u022A', 274, '\u022B', 275, '\u022C', 276, '\u022D', 277, '\u022E', 278, '\u022F', 279, '\u0230', 280, '\u0231', 281, '\u0232', 282, '\u0233', 283, '\u02B0', 284, '\u02B1', 285, '\u02B2', 286, '\u02B3', 287, '\u02B4', 288, '\u02B5', 289, '\u02B6', 290, '\u02B7', 291, '\u02B8', 292, '\u02D8', 293, '\u02D9', 294, '\u02DA', 295, '\u02DB', 296, '\u02DC', 297, '\u02DD', 298, '\u02E0', 299, '\u02E1', 300, '\u02E2', 180, '\u02E3', 301, '\u02E4', 302, '\u0340', 303, '\u0341', 304, '\u0343', 305, '\u0344', 306, '\u0374', 307, '\u037A', 308, '\u037E', 309, '\u0384', 6, '\u0385', 310, '\u0386', 311, '\u0387', 312, '\u0388', 313, '\u0389', 314, '\u038A', 315, '\u038C', 316, '\u038E', 317, '\u038F', 318, '\u0390', 319, '\u03AA', 320, '\u03AB', 321, '\u03AC', 322, '\u03AD', 323, '\u03AE', 324, '\u03AF', 325, '\u03B0', 326, '\u03CA', 327, '\u03CB', 328, '\u03CC', 329, '\u03CD', 330, '\u03CE', 331, '\u03D0', 332, '\u03D1', 333, '\u03D2', 334, '\u03D3', 317, '\u03D4', 321, '\u03D5', 335, '\u03D6', 336, '\u03F0', 337, '\u03F1', 338, '\u03F2', 339, '\u03F4', 340, '\u03F5', 341, '\u0400', 342, '\u0401', 343, '\u0403', 344, '\u0407', 345, '\u040C', 346, '\u040D', 347, '\u040E', 348, '\u0419', 349, '\u0439', 350, '\u0450', 351, '\u0451', 352, '\u0453', 353, '\u0457', 354, '\u045C', 355, '\u045D', 356, '\u045E', 357, '\u0476', 358, '\u0477', 359, '\u04C1', 360, '\u04C2', 361, '\u04D0', 362, '\u04D1', 363, '\u04D2', 364, '\u04D3', 365, '\u04D6', 366, '\u04D7', 367, '\u04DA', 368, '\u04DB', 369, '\u04DC', 370, '\u04DD', 371, '\u04DE', 372, '\u04DF', 373, '\u04E2', 374, '\u04E3', 375, '\u04E4', 376, '\u04E5', 377, '\u04E6', 378, '\u04E7', 379, '\u04EA', 380, '\u04EB', 381, '\u04EC', 382, '\u04ED', 383, '\u04EE', 384, '\u04EF', 385, '\u04F0', 386, '\u04F1', 387, '\u04F2', 388, '\u04F3', 389, '\u04F4', 390, '\u04F5', 391, '\u04F8', 392, '\u04F9', 393, '\u0587', 394, '\u0622', 395, '\u0623', 396, '\u0624', 397, '\u0625', 398, '\u0626', 399, '\u0675', 400, '\u0676', 401, '\u0677', 402, '\u0678', 403, '\u06C0', 404, '\u06C2', 405, '\u06D3', 406, '\u0929', 407, '\u0931', 408, '\u0934', 409, '\u0958', 410, '\u0959', 411, '\u095A', 412, '\u095B', 413, '\u095C', 414, '\u095D', 415, '\u095E', 416, '\u095F', 417, '\u09CB', 418, '\u09CC', 419, '\u09DC', 420, '\u09DD', 421, '\u09DF', 422, '\u0A33', 423, '\u0A36', 424, '\u0A59', 425, '\u0A5A', 426, '\u0A5B', 427, '\u0A5E', 428, '\u0B48', 429, '\u0B4B', 430, '\u0B4C', 431, '\u0B5C', 432, '\u0B5D', 433, '\u0B94', 434, '\u0BCA', 435, '\u0BCB', 436, '\u0BCC', 437, '\u0C48', 438, '\u0CC0', 439, '\u0CC7', 440, '\u0CC8', 441, '\u0CCA', 442, '\u0CCB', 443, '\u0D4A', 444, '\u0D4B', 445, '\u0D4C', 446, '\u0DDA', 447, '\u0DDC', 448, '\u0DDD', 449, '\u0DDE', 450, '\u0E33', 451, '\u0EB3', 452, '\u0EDC', 453, '\u0EDD', 454, '\u0F0C', 455, '\u0F43', 456, '\u0F4D', 457, '\u0F52', 458, '\u0F57', 459, '\u0F5C', 460, '\u0F69', 461, '\u0F73', 462, '\u0F75', 463, '\u0F76', 464, '\u0F77', 465, '\u0F78', 466, '\u0F79', 467, '\u0F81', 468, '\u0F93', 469, '\u0F9D', 470, '\u0FA2', 471, '\u0FA7', 472, '\u0FAC', 473, '\u0FB9', 474, '\u1026', 475, '\u1E00', 476, '\u1E01', 477, '\u1E02', 478, '\u1E03', 479, '\u1E04', 480, '\u1E05', 481, '\u1E06', 482, '\u1E07', 483, '\u1E08', 484, '\u1E09', 485, '\u1E0A', 486, '\u1E0B', 487, '\u1E0C', 488, '\u1E0D', 489, '\u1E0E', 490, '\u1E0F', 491, '\u1E10', 492, '\u1E11', 493, '\u1E12', 494, '\u1E13', 495, '\u1E14', 496, '\u1E15', 497, '\u1E16', 498, '\u1E17', 499, '\u1E18', 500, '\u1E19', 501, '\u1E1A', 502, '\u1E1B', 503, '\u1E1C', 504, '\u1E1D', 505, '\u1E1E', 506, '\u1E1F', 507, '\u1E20', 508, '\u1E21', 509, '\u1E22', 510, '\u1E23', 511, '\u1E24', 512, '\u1E25', 513, '\u1E26', 514, '\u1E27', 515, '\u1E28', 516, '\u1E29', 517, '\u1E2A', 518, '\u1E2B', 519, '\u1E2C', 520, '\u1E2D', 521, '\u1E2E', 522, '\u1E2F', 523, '\u1E30', 524, '\u1E31', 525, '\u1E32', 526, '\u1E33', 527, '\u1E34', 528, '\u1E35', 529, '\u1E36', 530, '\u1E37', 531, '\u1E38', 532, '\u1E39', 533, '\u1E3A', 534, '\u1E3B', 535, '\u1E3C', 536, '\u1E3D', 537, '\u1E3E', 538, '\u1E3F', 539, '\u1E40', 540, '\u1E41', 541, '\u1E42', 542, '\u1E43', 543, '\u1E44', 544, '\u1E45', 545, '\u1E46', 546, '\u1E47', 547, '\u1E48', 548, '\u1E49', 549, '\u1E4A', 550, '\u1E4B', 551, '\u1E4C', 552, '\u1E4D', 553, '\u1E4E', 554, '\u1E4F', 555, '\u1E50', 556, '\u1E51', 557, '\u1E52', 558, '\u1E53', 559, '\u1E54', 560, '\u1E55', 561, '\u1E56', 562, '\u1E57', 563, '\u1E58', 564, '\u1E59', 565, '\u1E5A', 566, '\u1E5B', 567, '\u1E5C', 568, '\u1E5D', 569, '\u1E5E', 570, '\u1E5F', 571, '\u1E60', 572, '\u1E61', 573, '\u1E62', 574, '\u1E63', 575, '\u1E64', 576, '\u1E65', 577, '\u1E66', 578, '\u1E67', 579, '\u1E68', 580, '\u1E69', 581, '\u1E6A', 582, '\u1E6B', 583, '\u1E6C', 584, '\u1E6D', 585, '\u1E6E', 586, '\u1E6F', 587, '\u1E70', 588, '\u1E71', 589, '\u1E72', 590, '\u1E73', 591, '\u1E74', 592, '\u1E75', 593, '\u1E76', 594, '\u1E77', 595, '\u1E78', 596, '\u1E79', 597, '\u1E7A', 598, '\u1E7B', 599, '\u1E7C', 600, '\u1E7D', 601, '\u1E7E', 602, '\u1E7F', 603, '\u1E80', 604, '\u1E81', 605, '\u1E82', 606, '\u1E83', 607, '\u1E84', 608, '\u1E85', 609, '\u1E86', 610, '\u1E87', 611, '\u1E88', 612, '\u1E89', 613, '\u1E8A', 614, '\u1E8B', 615, '\u1E8C', 616, '\u1E8D', 617, '\u1E8E', 618, '\u1E8F', 619, '\u1E90', 620, '\u1E91', 621, '\u1E92', 622, '\u1E93', 623, '\u1E94', 624, '\u1E95', 625, '\u1E96', 626, '\u1E97', 627, '\u1E98', 628, '\u1E99', 629, '\u1E9A', 630, '\u1E9B', 573, '\u1EA0', 631, '\u1EA1', 632, '\u1EA2', 633, '\u1EA3', 634, '\u1EA4', 635, '\u1EA5', 636, '\u1EA6', 637, '\u1EA7', 638, '\u1EA8', 639, '\u1EA9', 640, '\u1EAA', 641, '\u1EAB', 642, '\u1EAC', 643, '\u1EAD', 644, '\u1EAE', 645, '\u1EAF', 646, '\u1EB0', 647, '\u1EB1', 648, '\u1EB2', 649, '\u1EB3', 650, '\u1EB4', 651, '\u1EB5', 652, '\u1EB6', 653, '\u1EB7', 654, '\u1EB8', 655, '\u1EB9', 656, '\u1EBA', 657, '\u1EBB', 658, '\u1EBC', 659, '\u1EBD', 660, '\u1EBE', 661, '\u1EBF', 662, '\u1EC0', 663, '\u1EC1', 664, '\u1EC2', 665, '\u1EC3', 666, '\u1EC4', 667, '\u1EC5', 668, '\u1EC6', 669, '\u1EC7', 670, '\u1EC8', 671, '\u1EC9', 672, '\u1ECA', 673, '\u1ECB', 674, '\u1ECC', 675, '\u1ECD', 676, '\u1ECE', 677, '\u1ECF', 678, '\u1ED0', 679, '\u1ED1', 680, '\u1ED2', 681, '\u1ED3', 682, '\u1ED4', 683, '\u1ED5', 684, '\u1ED6', 685, '\u1ED7', 686, '\u1ED8', 687, '\u1ED9', 688, '\u1EDA', 689, '\u1EDB', 690, '\u1EDC', 691, '\u1EDD', 692, '\u1EDE', 693, '\u1EDF', 694, '\u1EE0', 695, '\u1EE1', 696, '\u1EE2', 697, '\u1EE3', 698, '\u1EE4', 699, '\u1EE5', 700, '\u1EE6', 701, '\u1EE7', 702, '\u1EE8', 703, '\u1EE9', 704, '\u1EEA', 705, '\u1EEB', 706, '\u1EEC', 707, '\u1EED', 708, '\u1EEE', 709, '\u1EEF', 710, '\u1EF0', 711, '\u1EF1', 712, '\u1EF2', 713, '\u1EF3', 714, '\u1EF4', 715, '\u1EF5', 716, '\u1EF6', 717, '\u1EF7', 718, '\u1EF8', 719, '\u1EF9', 720, '\u1F00', 721, '\u1F01', 722, '\u1F02', 723, '\u1F03', 724, '\u1F04', 725, '\u1F05', 726, '\u1F06', 727, '\u1F07', 728, '\u1F08', 729, '\u1F09', 730, '\u1F0A', 731, '\u1F0B', 732, '\u1F0C', 733, '\u1F0D', 734, '\u1F0E', 735, '\u1F0F', 736, '\u1F10', 737, '\u1F11', 738, '\u1F12', 739, '\u1F13', 740, '\u1F14', 741, '\u1F15', 742, '\u1F18', 743, '\u1F19', 744, '\u1F1A', 745, '\u1F1B', 746, '\u1F1C', 747, '\u1F1D', 748, '\u1F20', 749, '\u1F21', 750, '\u1F22', 751, '\u1F23', 752, '\u1F24', 753, '\u1F25', 754, '\u1F26', 755, '\u1F27', 756, '\u1F28', 757, '\u1F29', 758, '\u1F2A', 759, '\u1F2B', 760, '\u1F2C', 761, '\u1F2D', 762, '\u1F2E', 763, '\u1F2F', 764, '\u1F30', 765, '\u1F31', 766, '\u1F32', 767, '\u1F33', 768, '\u1F34', 769, '\u1F35', 770, '\u1F36', 771, '\u1F37', 772, '\u1F38', 773, '\u1F39', 774, '\u1F3A', 775, '\u1F3B', 776, '\u1F3C', 777, '\u1F3D', 778, '\u1F3E', 779, '\u1F3F', 780, '\u1F40', 781, '\u1F41', 782, '\u1F42', 783, '\u1F43', 784, '\u1F44', 785, '\u1F45', 786, '\u1F48', 787, '\u1F49', 788, '\u1F4A', 789, '\u1F4B', 790, '\u1F4C', 791, '\u1F4D', 792, '\u1F50', 793, '\u1F51', 794, '\u1F52', 795, '\u1F53', 796, '\u1F54', 797, '\u1F55', 798, '\u1F56', 799, '\u1F57', 800, '\u1F59', 801, '\u1F5B', 802, '\u1F5D', 803, '\u1F5F', 804, '\u1F60', 805, '\u1F61', 806, '\u1F62', 807, '\u1F63', 808, '\u1F64', 809, '\u1F65', 810, '\u1F66', 811, '\u1F67', 812, '\u1F68', 813, '\u1F69', 814, '\u1F6A', 815, '\u1F6B', 816, '\u1F6C', 817, '\u1F6D', 818, '\u1F6E', 819, '\u1F6F', 820, '\u1F70', 821, '\u1F71', 322, '\u1F72', 822, '\u1F73', 323, '\u1F74', 823, '\u1F75', 324, '\u1F76', 824, '\u1F77', 325, '\u1F78', 825, '\u1F79', 329, '\u1F7A', 826, '\u1F7B', 330, '\u1F7C', 827, '\u1F7D', 331, '\u1F80', 828, '\u1F81', 829, '\u1F82', 830, '\u1F83', 831, '\u1F84', 832, '\u1F85', 833, '\u1F86', 834, '\u1F87', 835, '\u1F88', 836, '\u1F89', 837, '\u1F8A', 838, '\u1F8B', 839, '\u1F8C', 840, '\u1F8D', 841, '\u1F8E', 842, '\u1F8F', 843, '\u1F90', 844, '\u1F91', 845, '\u1F92', 846, '\u1F93', 847, '\u1F94', 848, '\u1F95', 849, '\u1F96', 850, '\u1F97', 851, '\u1F98', 852, '\u1F99', 853, '\u1F9A', 854, '\u1F9B', 855, '\u1F9C', 856, '\u1F9D', 857, '\u1F9E', 858, '\u1F9F', 859, '\u1FA0', 860, '\u1FA1', 861, '\u1FA2', 862, '\u1FA3', 863, '\u1FA4', 864, '\u1FA5', 865, '\u1FA6', 866, '\u1FA7', 867, '\u1FA8', 868, '\u1FA9', 869, '\u1FAA', 870, '\u1FAB', 871, '\u1FAC', 872, '\u1FAD', 873, '\u1FAE', 874, '\u1FAF', 875, '\u1FB0', 876, '\u1FB1', 877, '\u1FB2', 878, '\u1FB3', 879, '\u1FB4', 880, '\u1FB6', 881, '\u1FB7', 882, '\u1FB8', 883, '\u1FB9', 884, '\u1FBA', 885, '\u1FBB', 311, '\u1FBC', 886, '\u1FBD', 887, '\u1FBE', 888, '\u1FBF', 887, '\u1FC0', 889, '\u1FC1', 890, '\u1FC2', 891, '\u1FC3', 892, '\u1FC4', 893, '\u1FC6', 894, '\u1FC7', 895, '\u1FC8', 896, '\u1FC9', 313, '\u1FCA', 897, '\u1FCB', 314, '\u1FCC', 898, '\u1FCD', 899, '\u1FCE', 900, '\u1FCF', 901, '\u1FD0', 902, '\u1FD1', 903, '\u1FD2', 904, '\u1FD3', 319, '\u1FD6', 905, '\u1FD7', 906, '\u1FD8', 907, '\u1FD9', 908, '\u1FDA', 909, '\u1FDB', 315, '\u1FDD', 910, '\u1FDE', 911, '\u1FDF', 912, '\u1FE0', 913, '\u1FE1', 914, '\u1FE2', 915, '\u1FE3', 326, '\u1FE4', 916, '\u1FE5', 917, '\u1FE6', 918, '\u1FE7', 919, '\u1FE8', 920, '\u1FE9', 921, '\u1FEA', 922, '\u1FEB', 317, '\u1FEC', 923, '\u1FED', 924, '\u1FEE', 310, '\u1FEF', 925, '\u1FF2', 926, '\u1FF3', 927, '\u1FF4', 928, '\u1FF6', 929, '\u1FF7', 930, '\u1FF8', 931, '\u1FF9', 316, '\u1FFA', 932, '\u1FFB', 318, '\u1FFC', 933, '\u1FFD', 6, '\u1FFE', 934, '\u2000', 0, '\u2001', 0, '\u2002', 0, '\u2003', 0, '\u2004', 0, '\u2005', 0, '\u2006', 0, '\u2007', 0, '\u2008', 0, '\u2009', 0, '\u200A', 0, '\u2011', 935, '\u2017', 936, '\u2024', 937, '\u2025', 938, '\u2026', 939, '\u202F', 0, '\u2033', 940, '\u2034', 941, '\u2036', 942, '\u2037', 943, '\u203C', 944, '\u203E', 945, '\u2047', 946, '\u2048', 947, '\u2049', 948, '\u2057', 949, '\u205F', 0, '\u2070', 950, '\u2071', 951, '\u2074', 952, '\u2075', 953, '\u2076', 954, '\u2077', 955, '\u2078', 956, '\u2079', 957, '\u207A', 958, '\u207B', 959, '\u207C', 960, '\u207D', 961, '\u207E', 962, '\u207F', 963, '\u2080', 950, '\u2081', 9, '\u2082', 4, '\u2083', 5, '\u2084', 952, '\u2085', 953, '\u2086', 954, '\u2087', 955, '\u2088', 956, '\u2089', 957, '\u208A', 958, '\u208B', 959, '\u208C', 960, '\u208D', 961, '\u208E', 962, '\u20A8', 964, '\u2100', 965, '\u2101', 966, '\u2102', 967, '\u2103', 968, '\u2105', 969, '\u2106', 970, '\u2107', 971, '\u2109', 972, '\u210A', 973, '\u210B', 974, '\u210C', 974, '\u210D', 974, '\u210E', 284, '\u210F', 975, '\u2110', 976, '\u2111', 976, '\u2112', 977, '\u2113', 300, '\u2115', 978, '\u2116', 979, '\u2119', 980, '\u211A', 981, '\u211B', 982, '\u211C', 982, '\u211D', 982, '\u2120', 983, '\u2121', 984, '\u2122', 985, '\u2124', 986, '\u2126', 987, '\u2128', 986, '\u212A', 988, '\u212B', 19, '\u212C', 989, '\u212D', 967, '\u212F', 990, '\u2130', 991, '\u2131', 992, '\u2133', 993, '\u2134', 10, '\u2135', 994, '\u2136', 995, '\u2137', 996, '\u2138', 997, '\u2139', 951, '\u213D', 998, '\u213E', 999, '\u213F', 1000, '\u2140', 1001, '\u2145', 1002, '\u2146', 1003, '\u2147', 990, '\u2148', 951, '\u2149', 286, '\u2153', 1004, '\u2154', 1005, '\u2155', 1006, '\u2156', 1007, '\u2157', 1008, '\u2158', 1009, '\u2159', 1010, '\u215A', 1011, '\u215B', 1012, '\u215C', 1013, '\u215D', 1014, '\u215E', 1015, '\u215F', 1016, '\u2160', 976, '\u2161', 1017, '\u2162', 1018, '\u2163', 1019, '\u2164', 1020, '\u2165', 1021, '\u2166', 1022, '\u2167', 1023, '\u2168', 1024, '\u2169', 1025, '\u216A', 1026, '\u216B', 1027, '\u216C', 977, '\u216D', 967, '\u216E', 1002, '\u216F', 993, '\u2170', 951, '\u2171', 1028, '\u2172', 1029, '\u2173', 1030, '\u2174', 1031, '\u2175', 1032, '\u2176', 1033, '\u2177', 1034, '\u2178', 1035, '\u2179', 301, '\u217A', 1036, '\u217B', 1037, '\u217C', 300, '\u217D', 1038, '\u217E', 1003, '\u217F', 1039, '\u219A', 1040, '\u219B', 1041, '\u21AE', 1042, '\u21CD', 1043, '\u21CE', 1044, '\u21CF', 1045, '\u2204', 1046, '\u2209', 1047, '\u220C', 1048, '\u2224', 1049, '\u2226', 1050, '\u222C', 1051, '\u222D', 1052, '\u222F', 1053, '\u2230', 1054, '\u2241', 1055, '\u2244', 1056, '\u2247', 1057, '\u2249', 1058, '\u2260', 1059, '\u2262', 1060, '\u226D', 1061, '\u226E', 1062, '\u226F', 1063, '\u2270', 1064, '\u2271', 1065, '\u2274', 1066, '\u2275', 1067, '\u2278', 1068, '\u2279', 1069, '\u2280', 1070, '\u2281', 1071, '\u2284', 1072, '\u2285', 1073, '\u2288', 1074, '\u2289', 1075, '\u22AC', 1076, '\u22AD', 1077, '\u22AE', 1078, '\u22AF', 1079, '\u22E0', 1080, '\u22E1', 1081, '\u22E2', 1082, '\u22E3', 1083, '\u22EA', 1084, '\u22EB', 1085, '\u22EC', 1086, '\u22ED', 1087, '\u2329', 1088, '\u232A', 1089, '\u2460', 9, '\u2461', 4, '\u2462', 5, '\u2463', 952, '\u2464', 953, '\u2465', 954, '\u2466', 955, '\u2467', 956, '\u2468', 957, '\u2469', 1090, '\u246A', 1091, '\u246B', 1092, '\u246C', 1093, '\u246D', 1094, '\u246E', 1095, '\u246F', 1096, '\u2470', 1097, '\u2471', 1098, '\u2472', 1099, '\u2473', 1100, '\u2474', 1101, '\u2475', 1102, '\u2476', 1103, '\u2477', 1104, '\u2478', 1105, '\u2479', 1106, '\u247A', 1107, '\u247B', 1108, '\u247C', 1109, '\u247D', 1110, '\u247E', 1111, '\u247F', 1112, '\u2480', 1113, '\u2481', 1114, '\u2482', 1115, '\u2483', 1116, '\u2484', 1117, '\u2485', 1118, '\u2486', 1119, '\u2487', 1120, '\u2488', 1121, '\u2489', 1122, '\u248A', 1123, '\u248B', 1124, '\u248C', 1125, '\u248D', 1126, '\u248E', 1127, '\u248F', 1128, '\u2490', 1129, '\u2491', 1130, '\u2492', 1131, '\u2493', 1132, '\u2494', 1133, '\u2495', 1134, '\u2496', 1135, '\u2497', 1136, '\u2498', 1137, '\u2499', 1138, '\u249A', 1139, '\u249B', 1140, '\u249C', 1141, '\u249D', 1142, '\u249E', 1143, '\u249F', 1144, '\u24A0', 1145, '\u24A1', 1146, '\u24A2', 1147, '\u24A3', 1148, '\u24A4', 1149, '\u24A5', 1150, '\u24A6', 1151, '\u24A7', 1152, '\u24A8', 1153, '\u24A9', 1154, '\u24AA', 1155, '\u24AB', 1156, '\u24AC', 1157, '\u24AD', 1158, '\u24AE', 1159, '\u24AF', 1160, '\u24B0', 1161, '\u24B1', 1162, '\u24B2', 1163, '\u24B3', 1164, '\u24B4', 1165, '\u24B5', 1166, '\u24B6', 1167, '\u24B7', 989, '\u24B8', 967, '\u24B9', 1002, '\u24BA', 991, '\u24BB', 992, '\u24BC', 1168, '\u24BD', 974, '\u24BE', 976, '\u24BF', 1169, '\u24C0', 988, '\u24C1', 977, '\u24C2', 993, '\u24C3', 978, '\u24C4', 1170, '\u24C5', 980, '\u24C6', 981, '\u24C7', 982, '\u24C8', 1171, '\u24C9', 1172, '\u24CA', 1173, '\u24CB', 1020, '\u24CC', 1174, '\u24CD', 1025, '\u24CE', 1175, '\u24CF', 986, '\u24D0', 2, '\u24D1', 1176, '\u24D2', 1038, '\u24D3', 1003, '\u24D4', 990, '\u24D5', 1177, '\u24D6', 973, '\u24D7', 284, '\u24D8', 951, '\u24D9', 286, '\u24DA', 1178, '\u24DB', 300, '\u24DC', 1039, '\u24DD', 963, '\u24DE', 10, '\u24DF', 1179, '\u24E0', 1180, '\u24E1', 287, '\u24E2', 180, '\u24E3', 1181, '\u24E4', 1182, '\u24E5', 1031, '\u24E6', 291, '\u24E7', 301, '\u24E8', 292, '\u24E9', 1183, '\u24EA', 950, '\u2A0C', 1184, '\u2A74', 1185, '\u2A75', 1186, '\u2A76', 1187, '\u2ADC', 1188, '\u2E9F', 1189, '\u2EF3', 1190, '\u2F00', 1191, '\u2F01', 1192, '\u2F02', 1193, '\u2F03', 1194, '\u2F04', 1195, '\u2F05', 1196, '\u2F06', 1197, '\u2F07', 1198, '\u2F08', 1199, '\u2F09', 1200, '\u2F0A', 1201, '\u2F0B', 1202, '\u2F0C', 1203, '\u2F0D', 1204, '\u2F0E', 1205, '\u2F0F', 1206, '\u2F10', 1207, '\u2F11', 1208, '\u2F12', 1209, '\u2F13', 1210, '\u2F14', 1211, '\u2F15', 1212, '\u2F16', 1213, '\u2F17', 1214, '\u2F18', 1215, '\u2F19', 1216, '\u2F1A', 1217, '\u2F1B', 1218, '\u2F1C', 1219, '\u2F1D', 1220, '\u2F1E', 1221, '\u2F1F', 1222, '\u2F20', 1223, '\u2F21', 1224, '\u2F22', 1225, '\u2F23', 1226, '\u2F24', 1227, '\u2F25', 1228, '\u2F26', 1229, '\u2F27', 1230, '\u2F28', 1231, '\u2F29', 1232, '\u2F2A', 1233, '\u2F2B', 1234, '\u2F2C', 1235, '\u2F2D', 1236, '\u2F2E', 1237, '\u2F2F', 1238, '\u2F30', 1239, '\u2F31', 1240, '\u2F32', 1241, '\u2F33', 1242, '\u2F34', 1243, '\u2F35', 1244, '\u2F36', 1245, '\u2F37', 1246, '\u2F38', 1247, '\u2F39', 1248, '\u2F3A', 1249, '\u2F3B', 1250, '\u2F3C', 1251, '\u2F3D', 1252, '\u2F3E', 1253, '\u2F3F', 1254, '\u2F40', 1255, '\u2F41', 1256, '\u2F42', 1257, '\u2F43', 1258, '\u2F44', 1259, '\u2F45', 1260, '\u2F46', 1261, '\u2F47', 1262, '\u2F48', 1263, '\u2F49', 1264, '\u2F4A', 1265, '\u2F4B', 1266, '\u2F4C', 1267, '\u2F4D', 1268, '\u2F4E', 1269, '\u2F4F', 1270, '\u2F50', 1271, '\u2F51', 1272, '\u2F52', 1273, '\u2F53', 1274, '\u2F54', 1275, '\u2F55', 1276, '\u2F56', 1277, '\u2F57', 1278, '\u2F58', 1279, '\u2F59', 1280, '\u2F5A', 1281, '\u2F5B', 1282, '\u2F5C', 1283, '\u2F5D', 1284, '\u2F5E', 1285, '\u2F5F', 1286, '\u2F60', 1287, '\u2F61', 1288, '\u2F62', 1289, '\u2F63', 1290, '\u2F64', 1291, '\u2F65', 1292, '\u2F66', 1293, '\u2F67', 1294, '\u2F68', 1295, '\u2F69', 1296, '\u2F6A', 1297, '\u2F6B', 1298, '\u2F6C', 1299, '\u2F6D', 1300, '\u2F6E', 1301, '\u2F6F', 1302, '\u2F70', 1303, '\u2F71', 1304, '\u2F72', 1305, '\u2F73', 1306, '\u2F74', 1307, '\u2F75', 1308, '\u2F76', 1309, '\u2F77', 1310, '\u2F78', 1311, '\u2F79', 1312, '\u2F7A', 1313, '\u2F7B', 1314, '\u2F7C', 1315, '\u2F7D', 1316, '\u2F7E', 1317, '\u2F7F', 1318, '\u2F80', 1319, '\u2F81', 1320, '\u2F82', 1321, '\u2F83', 1322, '\u2F84', 1323, '\u2F85', 1324, '\u2F86', 1325, '\u2F87', 1326, '\u2F88', 1327, '\u2F89', 1328, '\u2F8A', 1329, '\u2F8B', 1330, '\u2F8C', 1331, '\u2F8D', 1332, '\u2F8E', 1333, '\u2F8F', 1334, '\u2F90', 1335, '\u2F91', 1336, '\u2F92', 1337, '\u2F93', 1338, '\u2F94', 1339, '\u2F95', 1340, '\u2F96', 1341, '\u2F97', 1342, '\u2F98', 1343, '\u2F99', 1344, '\u2F9A', 1345, '\u2F9B', 1346, '\u2F9C', 1347, '\u2F9D', 1348, '\u2F9E', 1349, '\u2F9F', 1350, '\u2FA0', 1351, '\u2FA1', 1352, '\u2FA2', 1353, '\u2FA3', 1354, '\u2FA4', 1355, '\u2FA5', 1356, '\u2FA6', 1357, '\u2FA7', 1358, '\u2FA8', 1359, '\u2FA9', 1360, '\u2FAA', 1361, '\u2FAB', 1362, '\u2FAC', 1363, '\u2FAD', 1364, '\u2FAE', 1365, '\u2FAF', 1366, '\u2FB0', 1367, '\u2FB1', 1368, '\u2FB2', 1369, '\u2FB3', 1370, '\u2FB4', 1371, '\u2FB5', 1372, '\u2FB6', 1373, '\u2FB7', 1374, '\u2FB8', 1375, '\u2FB9', 1376, '\u2FBA', 1377, '\u2FBB', 1378, '\u2FBC', 1379, '\u2FBD', 1380, '\u2FBE', 1381, '\u2FBF', 1382, '\u2FC0', 1383, '\u2FC1', 1384, '\u2FC2', 1385, '\u2FC3', 1386, '\u2FC4', 1387, '\u2FC5', 1388, '\u2FC6', 1389, '\u2FC7', 1390, '\u2FC8', 1391, '\u2FC9', 1392, '\u2FCA', 1393, '\u2FCB', 1394, '\u2FCC', 1395, '\u2FCD', 1396, '\u2FCE', 1397, '\u2FCF', 1398, '\u2FD0', 1399, '\u2FD1', 1400, '\u2FD2', 1401, '\u2FD3', 1402, '\u2FD4', 1403, '\u2FD5', 1404, '\u3000', 0, '\u3036', 1405, '\u3038', 1214, '\u3039', 1406, '\u303A', 1407, '\u304C', 1408, '\u304E', 1409, '\u3050', 1410, '\u3052', 1411, '\u3054', 1412, '\u3056', 1413, '\u3058', 1414, '\u305A', 1415, '\u305C', 1416, '\u305E', 1417, '\u3060', 1418, '\u3062', 1419, '\u3065', 1420, '\u3067', 1421, '\u3069', 1422, '\u3070', 1423, '\u3071', 1424, '\u3073', 1425, '\u3074', 1426, '\u3076', 1427, '\u3077', 1428, '\u3079', 1429, '\u307A', 1430, '\u307C', 1431, '\u307D', 1432, '\u3094', 1433, '\u309B', 1434, '\u309C', 1435, '\u309E', 1436, '\u309F', 1437, '\u30AC', 1438, '\u30AE', 1439, '\u30B0', 1440, '\u30B2', 1441, '\u30B4', 1442, '\u30B6', 1443, '\u30B8', 1444, '\u30BA', 1445, '\u30BC', 1446, '\u30BE', 1447, '\u30C0', 1448, '\u30C2', 1449, '\u30C5', 1450, '\u30C7', 1451, '\u30C9', 1452, '\u30D0', 1453, '\u30D1', 1454, '\u30D3', 1455, '\u30D4', 1456, '\u30D6', 1457, '\u30D7', 1458, '\u30D9', 1459, '\u30DA', 1460, '\u30DC', 1461, '\u30DD', 1462, '\u30F4', 1463, '\u30F7', 1464, '\u30F8', 1465, '\u30F9', 1466, '\u30FA', 1467, '\u30FE', 1468, '\u30FF', 1469, '\u3131', 1470, '\u3132', 1471, '\u3133', 1472, '\u3134', 1473, '\u3135', 1474, '\u3136', 1475, '\u3137', 1476, '\u3138', 1477, '\u3139', 1478, '\u313A', 1479, '\u313B', 1480, '\u313C', 1481, '\u313D', 1482, '\u313E', 1483, '\u313F', 1484, '\u3140', 1485, '\u3141', 1486, '\u3142', 1487, '\u3143', 1488, '\u3144', 1489, '\u3145', 1490, '\u3146', 1491, '\u3147', 1492, '\u3148', 1493, '\u3149', 1494, '\u314A', 1495, '\u314B', 1496, '\u314C', 1497, '\u314D', 1498, '\u314E', 1499, '\u314F', 1500, '\u3150', 1501, '\u3151', 1502, '\u3152', 1503, '\u3153', 1504, '\u3154', 1505, '\u3155', 1506, '\u3156', 1507, '\u3157', 1508, '\u3158', 1509, '\u3159', 1510, '\u315A', 1511, '\u315B', 1512, '\u315C', 1513, '\u315D', 1514, '\u315E', 1515, '\u315F', 1516, '\u3160', 1517, '\u3161', 1518, '\u3162', 1519, '\u3163', 1520, '\u3164', 1521, '\u3165', 1522, '\u3166', 1523, '\u3167', 1524, '\u3168', 1525, '\u3169', 1526, '\u316A', 1527, '\u316B', 1528, '\u316C', 1529, '\u316D', 1530, '\u316E', 1531, '\u316F', 1532, '\u3170', 1533, '\u3171', 1534, '\u3172', 1535, '\u3173', 1536, '\u3174', 1537, '\u3175', 1538, '\u3176', 1539, '\u3177', 1540, '\u3178', 1541, '\u3179', 1542, '\u317A', 1543, '\u317B', 1544, '\u317C', 1545, '\u317D', 1546, '\u317E', 1547, '\u317F', 1548, '\u3180', 1549, '\u3181', 1550, '\u3182', 1551, '\u3183', 1552, '\u3184', 1553, '\u3185', 1554, '\u3186', 1555, '\u3187', 1556, '\u3188', 1557, '\u3189', 1558, '\u318A', 1559, '\u318B', 1560, '\u318C', 1561, '\u318D', 1562, '\u318E', 1563, '\u3192', 1191, '\u3193', 1197, '\u3194', 1564, '\u3195', 1565, '\u3196', 1566, '\u3197', 1567, '\u3198', 1568, '\u3199', 1569, '\u319A', 1195, '\u319B', 1570, '\u319C', 1571, '\u319D', 1572, '\u319E', 1573, '\u319F', 1199, '\u3200', 1574, '\u3201', 1575, '\u3202', 1576, '\u3203', 1577, '\u3204', 1578, '\u3205', 1579, '\u3206', 1580, '\u3207', 1581, '\u3208', 1582, '\u3209', 1583, '\u320A', 1584, '\u320B', 1585, '\u320C', 1586, '\u320D', 1587, '\u320E', 1588, '\u320F', 1589, '\u3210', 1590, '\u3211', 1591, '\u3212', 1592, '\u3213', 1593, '\u3214', 1594, '\u3215', 1595, '\u3216', 1596, '\u3217', 1597, '\u3218', 1598, '\u3219', 1599, '\u321A', 1600, '\u321B', 1601, '\u321C', 1602, '\u3220', 1603, '\u3221', 1604, '\u3222', 1605, '\u3223', 1606, '\u3224', 1607, '\u3225', 1608, '\u3226', 1609, '\u3227', 1610, '\u3228', 1611, '\u3229', 1612, '\u322A', 1613, '\u322B', 1614, '\u322C', 1615, '\u322D', 1616, '\u322E', 1617, '\u322F', 1618, '\u3230', 1619, '\u3231', 1620, '\u3232', 1621, '\u3233', 1622, '\u3234', 1623, '\u3235', 1624, '\u3236', 1625, '\u3237', 1626, '\u3238', 1627, '\u3239', 1628, '\u323A', 1629, '\u323B', 1630, '\u323C', 1631, '\u323D', 1632, '\u323E', 1633, '\u323F', 1634, '\u3240', 1635, '\u3241', 1636, '\u3242', 1637, '\u3243', 1638, '\u3251', 1639, '\u3252', 1640, '\u3253', 1641, '\u3254', 1642, '\u3255', 1643, '\u3256', 1644, '\u3257', 1645, '\u3258', 1646, '\u3259', 1647, '\u325A', 1648, '\u325B', 1649, '\u325C', 1650, '\u325D', 1651, '\u325E', 1652, '\u325F', 1653, '\u3260', 1470, '\u3261', 1473, '\u3262', 1476, '\u3263', 1478, '\u3264', 1486, '\u3265', 1487, '\u3266', 1490, '\u3267', 1492, '\u3268', 1493, '\u3269', 1495, '\u326A', 1496, '\u326B', 1497, '\u326C', 1498, '\u326D', 1499, '\u326E', 1654, '\u326F', 1655, '\u3270', 1656, '\u3271', 1657, '\u3272', 1658, '\u3273', 1659, '\u3274', 1660, '\u3275', 1661, '\u3276', 1662, '\u3277', 1663, '\u3278', 1664, '\u3279', 1665, '\u327A', 1666, '\u327B', 1667, '\u3280', 1191, '\u3281', 1197, '\u3282', 1564, '\u3283', 1565, '\u3284', 1668, '\u3285', 1669, '\u3286', 1670, '\u3287', 1202, '\u3288', 1671, '\u3289', 1214, '\u328A', 1264, '\u328B', 1276, '\u328C', 1275, '\u328D', 1265, '\u328E', 1357, '\u328F', 1222, '\u3290', 1262, '\u3291', 1672, '\u3292', 1673, '\u3293', 1674, '\u3294', 1675, '\u3295', 1676, '\u3296', 1677, '\u3297', 1678, '\u3298', 1679, '\u3299', 1680, '\u329A', 1681, '\u329B', 1228, '\u329C', 1682, '\u329D', 1683, '\u329E', 1684, '\u329F', 1685, '\u32A0', 1686, '\u32A1', 1687, '\u32A2', 1688, '\u32A3', 1689, '\u32A4', 1566, '\u32A5', 1567, '\u32A6', 1568, '\u32A7', 1690, '\u32A8', 1691, '\u32A9', 1692, '\u32AA', 1693, '\u32AB', 1694, '\u32AC', 1695, '\u32AD', 1696, '\u32AE', 1697, '\u32AF', 1698, '\u32B0', 1699, '\u32B1', 1700, '\u32B2', 1701, '\u32B3', 1702, '\u32B4', 1703, '\u32B5', 1704, '\u32B6', 1705, '\u32B7', 1706, '\u32B8', 1707, '\u32B9', 1708, '\u32BA', 1709, '\u32BB', 1710, '\u32BC', 1711, '\u32BD', 1712, '\u32BE', 1713, '\u32BF', 1714, '\u32C0', 1715, '\u32C1', 1716, '\u32C2', 1717, '\u32C3', 1718, '\u32C4', 1719, '\u32C5', 1720, '\u32C6', 1721, '\u32C7', 1722, '\u32C8', 1723, '\u32C9', 1724, '\u32CA', 1725, '\u32CB', 1726, '\u32D0', 1727, '\u32D1', 1728, '\u32D2', 1729, '\u32D3', 1730, '\u32D4', 1731, '\u32D5', 1732, '\u32D6', 1733, '\u32D7', 1734, '\u32D8', 1735, '\u32D9', 1736, '\u32DA', 1737, '\u32DB', 1738, '\u32DC', 1739, '\u32DD', 1740, '\u32DE', 1741, '\u32DF', 1742, '\u32E0', 1743, '\u32E1', 1744, '\u32E2', 1745, '\u32E3', 1746, '\u32E4', 1747, '\u32E5', 1748, '\u32E6', 1749, '\u32E7', 1750, '\u32E8', 1751, '\u32E9', 1752, '\u32EA', 1753, '\u32EB', 1754, '\u32EC', 1755, '\u32ED', 1756, '\u32EE', 1757, '\u32EF', 1758, '\u32F0', 1759, '\u32F1', 1760, '\u32F2', 1761, '\u32F3', 1762, '\u32F4', 1763, '\u32F5', 1764, '\u32F6', 1765, '\u32F7', 1766, '\u32F8', 1767, '\u32F9', 1768, '\u32FA', 1769, '\u32FB', 1770, '\u32FC', 1771, '\u32FD', 1772, '\u32FE', 1773, '\u3300', 1774, '\u3301', 1775, '\u3302', 1776, '\u3303', 1777, '\u3304', 1778, '\u3305', 1779, '\u3306', 1780, '\u3307', 1781, '\u3308', 1782, '\u3309', 1783, '\u330A', 1784, '\u330B', 1785, '\u330C', 1786, '\u330D', 1787, '\u330E', 1788, '\u330F', 1789, '\u3310', 1790, '\u3311', 1791, '\u3312', 1792, '\u3313', 1793, '\u3314', 1794, '\u3315', 1795, '\u3316', 1796, '\u3317', 1797, '\u3318', 1798, '\u3319', 1799, '\u331A', 1800, '\u331B', 1801, '\u331C', 1802, '\u331D', 1803, '\u331E', 1804, '\u331F', 1805, '\u3320', 1806, '\u3321', 1807, '\u3322', 1808, '\u3323', 1809, '\u3324', 1810, '\u3325', 1811, '\u3326', 1812, '\u3327', 1813, '\u3328', 1814, '\u3329', 1815, '\u332A', 1816, '\u332B', 1817, '\u332C', 1818, '\u332D', 1819, '\u332E', 1820, '\u332F', 1821, '\u3330', 1822, '\u3331', 1823, '\u3332', 1824, '\u3333', 1825, '\u3334', 1826, '\u3335', 1827, '\u3336', 1828, '\u3337', 1829, '\u3338', 1830, '\u3339', 1831, '\u333A', 1832, '\u333B', 1833, '\u333C', 1834, '\u333D', 1835, '\u333E', 1836, '\u333F', 1837, '\u3340', 1838, '\u3341', 1839, '\u3342', 1840, '\u3343', 1841, '\u3344', 1842, '\u3345', 1843, '\u3346', 1844, '\u3347', 1845, '\u3348', 1846, '\u3349', 1847, '\u334A', 1848, '\u334B', 1849, '\u334C', 1850, '\u334D', 1851, '\u334E', 1852, '\u334F', 1853, '\u3350', 1854, '\u3351', 1855, '\u3352', 1856, '\u3353', 1857, '\u3354', 1858, '\u3355', 1859, '\u3356', 1860, '\u3357', 1861, '\u3358', 1862, '\u3359', 1863, '\u335A', 1864, '\u335B', 1865, '\u335C', 1866, '\u335D', 1867, '\u335E', 1868, '\u335F', 1869, '\u3360', 1870, '\u3361', 1871, '\u3362', 1872, '\u3363', 1873, '\u3364', 1874, '\u3365', 1875, '\u3366', 1876, '\u3367', 1877, '\u3368', 1878, '\u3369', 1879, '\u336A', 1880, '\u336B', 1881, '\u336C', 1882, '\u336D', 1883, '\u336E', 1884, '\u336F', 1885, '\u3370', 1886, '\u3371', 1887, '\u3372', 1888, '\u3373', 1889, '\u3374', 1890, '\u3375', 1891, '\u3376', 1892, '\u337B', 1893, '\u337C', 1894, '\u337D', 1895, '\u337E', 1896, '\u337F', 1897, '\u3380', 1898, '\u3381', 1899, '\u3382', 1900, '\u3383', 1901, '\u3384', 1902, '\u3385', 1903, '\u3386', 1904, '\u3387', 1905, '\u3388', 1906, '\u3389', 1907, '\u338A', 1908, '\u338B', 1909, '\u338C', 1910, '\u338D', 1911, '\u338E', 1912, '\u338F', 1913, '\u3390', 1914, '\u3391', 1915, '\u3392', 1916, '\u3393', 1917, '\u3394', 1918, '\u3395', 1919, '\u3396', 1920, '\u3397', 1921, '\u3398', 1922, '\u3399', 1923, '\u339A', 1924, '\u339B', 1925, '\u339C', 1926, '\u339D', 1927, '\u339E', 1928, '\u339F', 1929, '\u33A0', 1930, '\u33A1', 1931, '\u33A2', 1932, '\u33A3', 1933, '\u33A4', 1934, '\u33A5', 1935, '\u33A6', 1936, '\u33A7', 1937, '\u33A8', 1938, '\u33A9', 1939, '\u33AA', 1940, '\u33AB', 1941, '\u33AC', 1942, '\u33AD', 1943, '\u33AE', 1944, '\u33AF', 1945, '\u33B0', 1946, '\u33B1', 1947, '\u33B2', 1948, '\u33B3', 1949, '\u33B4', 1950, '\u33B5', 1951, '\u33B6', 1952, '\u33B7', 1953, '\u33B8', 1954, '\u33B9', 1955, '\u33BA', 1956, '\u33BB', 1957, '\u33BC', 1958, '\u33BD', 1959, '\u33BE', 1960, '\u33BF', 1961, '\u33C0', 1962, '\u33C1', 1963, '\u33C2', 1964, '\u33C3', 1965, '\u33C4', 1966, '\u33C5', 1967, '\u33C6', 1968, '\u33C7', 1969, '\u33C8', 1970, '\u33C9', 1971, '\u33CA', 1972, '\u33CB', 1973, '\u33CC', 1974, '\u33CD', 1975, '\u33CE', 1976, '\u33CF', 1977, '\u33D0', 1978, '\u33D1', 1979, '\u33D2', 1980, '\u33D3', 1981, '\u33D4', 1982, '\u33D5', 1983, '\u33D6', 1984, '\u33D7', 1985, '\u33D8', 1986, '\u33D9', 1987, '\u33DA', 1988, '\u33DB', 1989, '\u33DC', 1990, '\u33DD', 1991, '\u33E0', 1992, '\u33E1', 1993, '\u33E2', 1994, '\u33E3', 1995, '\u33E4', 1996, '\u33E5', 1997, '\u33E6', 1998, '\u33E7', 1999, '\u33E8', 2000, '\u33E9', 2001, '\u33EA', 2002, '\u33EB', 2003, '\u33EC', 2004, '\u33ED', 2005, '\u33EE', 2006, '\u33EF', 2007, '\u33F0', 2008, '\u33F1', 2009, '\u33F2', 2010, '\u33F3', 2011, '\u33F4', 2012, '\u33F5', 2013, '\u33F6', 2014, '\u33F7', 2015, '\u33F8', 2016, '\u33F9', 2017, '\u33FA', 2018, '\u33FB', 2019, '\u33FC', 2020, '\u33FD', 2021, '\u33FE', 2022, '\uF900', 2023, '\uF901', 2024, '\uF902', 1349, '\uF903', 2025, '\uF904', 2026, '\uF905', 2027, '\uF906', 2028, '\uF907', 1403, '\uF908', 1403, '\uF909', 2029, '\uF90A', 1357, '\uF90B', 2030, '\uF90C', 2031, '\uF90D', 2032, '\uF90E', 2033, '\uF90F', 2034, '\uF910', 2035, '\uF911', 2036, '\uF912', 2037, '\uF913', 2038, '\uF914', 2039, '\uF915', 2040, '\uF916', 2041, '\uF917', 2042, '\uF918', 2043, '\uF919', 2044, '\uF91A', 2045, '\uF91B', 2046, '\uF91C', 2047, '\uF91D', 2048, '\uF91E', 2049, '\uF91F', 2050, '\uF920', 2051, '\uF921', 2052, '\uF922', 2053, '\uF923', 2054, '\uF924', 2055, '\uF925', 2056, '\uF926', 2057, '\uF927', 2058, '\uF928', 2059, '\uF929', 2060, '\uF92A', 2061, '\uF92B', 2062, '\uF92C', 2063, '\uF92D', 2064, '\uF92E', 2065, '\uF92F', 2066, '\uF930', 2067, '\uF931', 2068, '\uF932', 2069, '\uF933', 2070, '\uF934', 1315, '\uF935', 2071, '\uF936', 2072, '\uF937', 2073, '\uF938', 2074, '\uF939', 2075, '\uF93A', 2076, '\uF93B', 2077, '\uF93C', 2078, '\uF93D', 2079, '\uF93E', 2080, '\uF93F', 2081, '\uF940', 1388, '\uF941', 2082, '\uF942', 2083, '\uF943', 2084, '\uF944', 2085, '\uF945', 2086, '\uF946', 2087, '\uF947', 2088, '\uF948', 2089, '\uF949', 2090, '\uF94A', 2091, '\uF94B', 2092, '\uF94C', 2093, '\uF94D', 2094, '\uF94E', 2095, '\uF94F', 2096, '\uF950', 2097, '\uF951', 2098, '\uF952', 2099, '\uF953', 2100, '\uF954', 2101, '\uF955', 2102, '\uF956', 2103, '\uF957', 2104, '\uF958', 2105, '\uF959', 2106, '\uF95A', 2107, '\uF95B', 2108, '\uF95C', 2039, '\uF95D', 2109, '\uF95E', 2110, '\uF95F', 2111, '\uF960', 2112, '\uF961', 2113, '\uF962', 2114, '\uF963', 2115, '\uF964', 2116, '\uF965', 2117, '\uF966', 2118, '\uF967', 2119, '\uF968', 2120, '\uF969', 2121, '\uF96A', 2122, '\uF96B', 2123, '\uF96C', 2124, '\uF96D', 2125, '\uF96E', 2126, '\uF96F', 2127, '\uF970', 2128, '\uF971', 1351, '\uF972', 2129, '\uF973', 2130, '\uF974', 2131, '\uF975', 2132, '\uF976', 2133, '\uF977', 2134, '\uF978', 2135, '\uF979', 2136, '\uF97A', 2137, '\uF97B', 2138, '\uF97C', 2139, '\uF97D', 2140, '\uF97E', 2141, '\uF97F', 2142, '\uF980', 2143, '\uF981', 1228, '\uF982', 2144, '\uF983', 2145, '\uF984', 2146, '\uF985', 2147, '\uF986', 2148, '\uF987', 2149, '\uF988', 2150, '\uF989', 2151, '\uF98A', 1209, '\uF98B', 2152, '\uF98C', 2153, '\uF98D', 2154, '\uF98E', 2155, '\uF98F', 2156, '\uF990', 2157, '\uF991', 2158, '\uF992', 2159, '\uF993', 2160, '\uF994', 2161, '\uF995', 2162, '\uF996', 2163, '\uF997', 2164, '\uF998', 2165, '\uF999', 2166, '\uF99A', 2167, '\uF99B', 2168, '\uF99C', 2169, '\uF99D', 2170, '\uF99E', 2171, '\uF99F', 2172, '\uF9A0', 2173, '\uF9A1', 2127, '\uF9A2', 2174, '\uF9A3', 2175, '\uF9A4', 2176, '\uF9A5', 2177, '\uF9A6', 2178, '\uF9A7', 2179, '\uF9A8', 2180, '\uF9A9', 2181, '\uF9AA', 2111, '\uF9AB', 2182, '\uF9AC', 2183, '\uF9AD', 2184, '\uF9AE', 2185, '\uF9AF', 2186, '\uF9B0', 2187, '\uF9B1', 2188, '\uF9B2', 2189, '\uF9B3', 2190, '\uF9B4', 2191, '\uF9B5', 2192, '\uF9B6', 2193, '\uF9B7', 2194, '\uF9B8', 2195, '\uF9B9', 2196, '\uF9BA', 2197, '\uF9BB', 2198, '\uF9BC', 2199, '\uF9BD', 2200, '\uF9BE', 2201, '\uF9BF', 2039, '\uF9C0', 2202, '\uF9C1', 2203, '\uF9C2', 2204, '\uF9C3', 2205, '\uF9C4', 1402, '\uF9C5', 2206, '\uF9C6', 2207, '\uF9C7', 2208, '\uF9C8', 2209, '\uF9C9', 2210, '\uF9CA', 2211, '\uF9CB', 2212, '\uF9CC', 2213, '\uF9CD', 2214, '\uF9CE', 2215, '\uF9CF', 2216, '\uF9D0', 2217, '\uF9D1', 1669, '\uF9D2', 2218, '\uF9D3', 2219, '\uF9D4', 2220, '\uF9D5', 2221, '\uF9D6', 2222, '\uF9D7', 2223, '\uF9D8', 2224, '\uF9D9', 2225, '\uF9DA', 2226, '\uF9DB', 2113, '\uF9DC', 2227, '\uF9DD', 2228, '\uF9DE', 2229, '\uF9DF', 2230, '\uF9E0', 2231, '\uF9E1', 2232, '\uF9E2', 2233, '\uF9E3', 2234, '\uF9E4', 2235, '\uF9E5', 2236, '\uF9E6', 2237, '\uF9E7', 2238, '\uF9E8', 2239, '\uF9E9', 1356, '\uF9EA', 2240, '\uF9EB', 2241, '\uF9EC', 2242, '\uF9ED', 2243, '\uF9EE', 2244, '\uF9EF', 2245, '\uF9F0', 2246, '\uF9F1', 2247, '\uF9F2', 2248, '\uF9F3', 2249, '\uF9F4', 2250, '\uF9F5', 2251, '\uF9F6', 2252, '\uF9F7', 1307, '\uF9F8', 2253, '\uF9F9', 2254, '\uF9FA', 2255, '\uF9FB', 2256, '\uF9FC', 2257, '\uF9FD', 2258, '\uF9FE', 2259, '\uF9FF', 2260, '\uFA00', 2261, '\uFA01', 2262, '\uFA02', 2263, '\uFA03', 2264, '\uFA04', 2265, '\uFA05', 2266, '\uFA06', 2267, '\uFA07', 2268, '\uFA08', 1334, '\uFA09', 2269, '\uFA0A', 1337, '\uFA0B', 2270, '\uFA0C', 2271, '\uFA0D', 2272, '\uFA10', 2273, '\uFA12', 2274, '\uFA15', 2275, '\uFA16', 2276, '\uFA17', 2277, '\uFA18', 2278, '\uFA19', 2279, '\uFA1A', 2280, '\uFA1B', 2281, '\uFA1C', 2282, '\uFA1D', 2283, '\uFA1E', 1314, '\uFA20', 2284, '\uFA22', 2285, '\uFA25', 2286, '\uFA26', 2287, '\uFA2A', 2288, '\uFA2B', 2289, '\uFA2C', 2290, '\uFA2D', 2291, '\uFA30', 2292, '\uFA31', 2293, '\uFA32', 2294, '\uFA33', 2295, '\uFA34', 2296, '\uFA35', 2297, '\uFA36', 2298, '\uFA37', 2299, '\uFA38', 2300, '\uFA39', 2301, '\uFA3A', 2302, '\uFA3B', 2303, '\uFA3C', 1235, '\uFA3D', 2304, '\uFA3E', 2305, '\uFA3F', 2306, '\uFA40', 2307, '\uFA41', 2308, '\uFA42', 2309, '\uFA43', 2310, '\uFA44', 2311, '\uFA45', 2312, '\uFA46', 2313, '\uFA47', 2314, '\uFA48', 2315, '\uFA49', 2316, '\uFA4A', 2317, '\uFA4B', 2318, '\uFA4C', 1674, '\uFA4D', 2319, '\uFA4E', 2320, '\uFA4F', 2321, '\uFA50', 2322, '\uFA51', 1678, '\uFA52', 2323, '\uFA53', 2324, '\uFA54', 2325, '\uFA55', 2326, '\uFA56', 2327, '\uFA57', 2163, '\uFA58', 2328, '\uFA59', 2329, '\uFA5A', 2330, '\uFA5B', 2331, '\uFA5C', 2332, '\uFA5D', 2333, '\uFA5E', 2333, '\uFA5F', 2334, '\uFA60', 2335, '\uFA61', 2336, '\uFA62', 2337, '\uFA63', 2338, '\uFA64', 2339, '\uFA65', 2340, '\uFA66', 2341, '\uFA67', 2286, '\uFA68', 2342, '\uFA69', 2343, '\uFA6A', 2344, '\uFB00', 2345, '\uFB01', 2346, '\uFB02', 2347, '\uFB03', 2348, '\uFB04', 2349, '\uFB05', 2350, '\uFB06', 2350, '\uFB13', 2351, '\uFB14', 2352, '\uFB15', 2353, '\uFB16', 2354, '\uFB17', 2355, '\uFB1D', 2356, '\uFB1F', 2357, '\uFB20', 2358, '\uFB21', 994, '\uFB22', 997, '\uFB23', 2359, '\uFB24', 2360, '\uFB25', 2361, '\uFB26', 2362, '\uFB27', 2363, '\uFB28', 2364, '\uFB29', 958, '\uFB2A', 2365, '\uFB2B', 2366, '\uFB2C', 2367, '\uFB2D', 2368, '\uFB2E', 2369, '\uFB2F', 2370, '\uFB30', 2371, '\uFB31', 2372, '\uFB32', 2373, '\uFB33', 2374, '\uFB34', 2375, '\uFB35', 2376, '\uFB36', 2377, '\uFB38', 2378, '\uFB39', 2379, '\uFB3A', 2380, '\uFB3B', 2381, '\uFB3C', 2382, '\uFB3E', 2383, '\uFB40', 2384, '\uFB41', 2385, '\uFB43', 2386, '\uFB44', 2387, '\uFB46', 2388, '\uFB47', 2389, '\uFB48', 2390, '\uFB49', 2391, '\uFB4A', 2392, '\uFB4B', 2393, '\uFB4C', 2394, '\uFB4D', 2395, '\uFB4E', 2396, '\uFB4F', 2397, '\uFB50', 2398, '\uFB51', 2398, '\uFB52', 2399, '\uFB53', 2399, '\uFB54', 2399, '\uFB55', 2399, '\uFB56', 2400, '\uFB57', 2400, '\uFB58', 2400, '\uFB59', 2400, '\uFB5A', 2401, '\uFB5B', 2401, '\uFB5C', 2401, '\uFB5D', 2401, '\uFB5E', 2402, '\uFB5F', 2402, '\uFB60', 2402, '\uFB61', 2402, '\uFB62', 2403, '\uFB63', 2403, '\uFB64', 2403, '\uFB65', 2403, '\uFB66', 2404, '\uFB67', 2404, '\uFB68', 2404, '\uFB69', 2404, '\uFB6A', 2405, '\uFB6B', 2405, '\uFB6C', 2405, '\uFB6D', 2405, '\uFB6E', 2406, '\uFB6F', 2406, '\uFB70', 2406, '\uFB71', 2406, '\uFB72', 2407, '\uFB73', 2407, '\uFB74', 2407, '\uFB75', 2407, '\uFB76', 2408, '\uFB77', 2408, '\uFB78', 2408, '\uFB79', 2408, '\uFB7A', 2409, '\uFB7B', 2409, '\uFB7C', 2409, '\uFB7D', 2409, '\uFB7E', 2410, '\uFB7F', 2410, '\uFB80', 2410, '\uFB81', 2410, '\uFB82', 2411, '\uFB83', 2411, '\uFB84', 2412, '\uFB85', 2412, '\uFB86', 2413, '\uFB87', 2413, '\uFB88', 2414, '\uFB89', 2414, '\uFB8A', 2415, '\uFB8B', 2415, '\uFB8C', 2416, '\uFB8D', 2416, '\uFB8E', 2417, '\uFB8F', 2417, '\uFB90', 2417, '\uFB91', 2417, '\uFB92', 2418, '\uFB93', 2418, '\uFB94', 2418, '\uFB95', 2418, '\uFB96', 2419, '\uFB97', 2419, '\uFB98', 2419, '\uFB99', 2419, '\uFB9A', 2420, '\uFB9B', 2420, '\uFB9C', 2420, '\uFB9D', 2420, '\uFB9E', 2421, '\uFB9F', 2421, '\uFBA0', 2422, '\uFBA1', 2422, '\uFBA2', 2422, '\uFBA3', 2422, '\uFBA4', 404, '\uFBA5', 404, '\uFBA6', 2423, '\uFBA7', 2423, '\uFBA8', 2423, '\uFBA9', 2423, '\uFBAA', 2424, '\uFBAB', 2424, '\uFBAC', 2424, '\uFBAD', 2424, '\uFBAE', 2425, '\uFBAF', 2425, '\uFBB0', 406, '\uFBB1', 406, '\uFBD3', 2426, '\uFBD4', 2426, '\uFBD5', 2426, '\uFBD6', 2426, '\uFBD7', 2427, '\uFBD8', 2427, '\uFBD9', 2428, '\uFBDA', 2428, '\uFBDB', 2429, '\uFBDC', 2429, '\uFBDD', 402, '\uFBDE', 2430, '\uFBDF', 2430, '\uFBE0', 2431, '\uFBE1', 2431, '\uFBE2', 2432, '\uFBE3', 2432, '\uFBE4', 2433, '\uFBE5', 2433, '\uFBE6', 2433, '\uFBE7', 2433, '\uFBE8', 2434, '\uFBE9', 2434, '\uFBEA', 2435, '\uFBEB', 2435, '\uFBEC', 2436, '\uFBED', 2436, '\uFBEE', 2437, '\uFBEF', 2437, '\uFBF0', 2438, '\uFBF1', 2438, '\uFBF2', 2439, '\uFBF3', 2439, '\uFBF4', 2440, '\uFBF5', 2440, '\uFBF6', 2441, '\uFBF7', 2441, '\uFBF8', 2441, '\uFBF9', 2442, '\uFBFA', 2442, '\uFBFB', 2442, '\uFBFC', 2443, '\uFBFD', 2443, '\uFBFE', 2443, '\uFBFF', 2443, '\uFC00', 2444, '\uFC01', 2445, '\uFC02', 2446, '\uFC03', 2442, '\uFC04', 2447, '\uFC05', 2448, '\uFC06', 2449, '\uFC07', 2450, '\uFC08', 2451, '\uFC09', 2452, '\uFC0A', 2453, '\uFC0B', 2454, '\uFC0C', 2455, '\uFC0D', 2456, '\uFC0E', 2457, '\uFC0F', 2458, '\uFC10', 2459, '\uFC11', 2460, '\uFC12', 2461, '\uFC13', 2462, '\uFC14', 2463, '\uFC15', 2464, '\uFC16', 2465, '\uFC17', 2466, '\uFC18', 2467, '\uFC19', 2468, '\uFC1A', 2469, '\uFC1B', 2470, '\uFC1C', 2471, '\uFC1D', 2472, '\uFC1E', 2473, '\uFC1F', 2474, '\uFC20', 2475, '\uFC21', 2476, '\uFC22', 2477, '\uFC23', 2478, '\uFC24', 2479, '\uFC25', 2480, '\uFC26', 2481, '\uFC27', 2482, '\uFC28', 2483, '\uFC29', 2484, '\uFC2A', 2485, '\uFC2B', 2486, '\uFC2C', 2487, '\uFC2D', 2488, '\uFC2E', 2489, '\uFC2F', 2490, '\uFC30', 2491, '\uFC31', 2492, '\uFC32', 2493, '\uFC33', 2494, '\uFC34', 2495, '\uFC35', 2496, '\uFC36', 2497, '\uFC37', 2498, '\uFC38', 2499, '\uFC39', 2500, '\uFC3A', 2501, '\uFC3B', 2502, '\uFC3C', 2503, '\uFC3D', 2504, '\uFC3E', 2505, '\uFC3F', 2506, '\uFC40', 2507, '\uFC41', 2508, '\uFC42', 2509, '\uFC43', 2510, '\uFC44', 2511, '\uFC45', 2512, '\uFC46', 2513, '\uFC47', 2514, '\uFC48', 2515, '\uFC49', 2516, '\uFC4A', 2517, '\uFC4B', 2518, '\uFC4C', 2519, '\uFC4D', 2520, '\uFC4E', 2521, '\uFC4F', 2522, '\uFC50', 2523, '\uFC51', 2524, '\uFC52', 2525, '\uFC53', 2526, '\uFC54', 2527, '\uFC55', 2528, '\uFC56', 2529, '\uFC57', 2530, '\uFC58', 2531, '\uFC59', 2532, '\uFC5A', 2533, '\uFC5B', 2534, '\uFC5C', 2535, '\uFC5D', 2536, '\uFC5E', 2537, '\uFC5F', 2538, '\uFC60', 2539, '\uFC61', 2540, '\uFC62', 2541, '\uFC63', 2542, '\uFC64', 2543, '\uFC65', 2544, '\uFC66', 2446, '\uFC67', 2545, '\uFC68', 2442, '\uFC69', 2447, '\uFC6A', 2546, '\uFC6B', 2547, '\uFC6C', 2451, '\uFC6D', 2548, '\uFC6E', 2452, '\uFC6F', 2453, '\uFC70', 2549, '\uFC71', 2550, '\uFC72', 2457, '\uFC73', 2551, '\uFC74', 2458, '\uFC75', 2459, '\uFC76', 2552, '\uFC77', 2553, '\uFC78', 2461, '\uFC79', 2554, '\uFC7A', 2462, '\uFC7B', 2463, '\uFC7C', 2492, '\uFC7D', 2493, '\uFC7E', 2496, '\uFC7F', 2497, '\uFC80', 2498, '\uFC81', 2502, '\uFC82', 2503, '\uFC83', 2504, '\uFC84', 2505, '\uFC85', 2509, '\uFC86', 2510, '\uFC87', 2511, '\uFC88', 2555, '\uFC89', 2515, '\uFC8A', 2556, '\uFC8B', 2557, '\uFC8C', 2521, '\uFC8D', 2558, '\uFC8E', 2522, '\uFC8F', 2523, '\uFC90', 2536, '\uFC91', 2559, '\uFC92', 2560, '\uFC93', 2531, '\uFC94', 2561, '\uFC95', 2532, '\uFC96', 2533, '\uFC97', 2444, '\uFC98', 2445, '\uFC99', 2562, '\uFC9A', 2446, '\uFC9B', 2563, '\uFC9C', 2448, '\uFC9D', 2449, '\uFC9E', 2450, '\uFC9F', 2451, '\uFCA0', 2564, '\uFCA1', 2454, '\uFCA2', 2455, '\uFCA3', 2456, '\uFCA4', 2457, '\uFCA5', 2565, '\uFCA6', 2461, '\uFCA7', 2464, '\uFCA8', 2465, '\uFCA9', 2466, '\uFCAA', 2467, '\uFCAB', 2468, '\uFCAC', 2470, '\uFCAD', 2471, '\uFCAE', 2472, '\uFCAF', 2473, '\uFCB0', 2474, '\uFCB1', 2475, '\uFCB2', 2566, '\uFCB3', 2476, '\uFCB4', 2477, '\uFCB5', 2478, '\uFCB6', 2479, '\uFCB7', 2480, '\uFCB8', 2481, '\uFCB9', 2483, '\uFCBA', 2484, '\uFCBB', 2485, '\uFCBC', 2486, '\uFCBD', 2487, '\uFCBE', 2488, '\uFCBF', 2489, '\uFCC0', 2490, '\uFCC1', 2491, '\uFCC2', 2494, '\uFCC3', 2495, '\uFCC4', 2499, '\uFCC5', 2500, '\uFCC6', 2501, '\uFCC7', 2502, '\uFCC8', 2503, '\uFCC9', 2506, '\uFCCA', 2507, '\uFCCB', 2508, '\uFCCC', 2509, '\uFCCD', 2567, '\uFCCE', 2512, '\uFCCF', 2513, '\uFCD0', 2514, '\uFCD1', 2515, '\uFCD2', 2518, '\uFCD3', 2519, '\uFCD4', 2520, '\uFCD5', 2521, '\uFCD6', 2568, '\uFCD7', 2524, '\uFCD8', 2525, '\uFCD9', 2569, '\uFCDA', 2528, '\uFCDB', 2529, '\uFCDC', 2530, '\uFCDD', 2531, '\uFCDE', 2570, '\uFCDF', 2446, '\uFCE0', 2563, '\uFCE1', 2451, '\uFCE2', 2564, '\uFCE3', 2457, '\uFCE4', 2565, '\uFCE5', 2461, '\uFCE6', 2571, '\uFCE7', 2474, '\uFCE8', 2572, '\uFCE9', 2573, '\uFCEA', 2574, '\uFCEB', 2502, '\uFCEC', 2503, '\uFCED', 2509, '\uFCEE', 2521, '\uFCEF', 2568, '\uFCF0', 2531, '\uFCF1', 2570, '\uFCF2', 2575, '\uFCF3', 2576, '\uFCF4', 2577, '\uFCF5', 2578, '\uFCF6', 2579, '\uFCF7', 2580, '\uFCF8', 2581, '\uFCF9', 2582, '\uFCFA', 2583, '\uFCFB', 2584, '\uFCFC', 2585, '\uFCFD', 2586, '\uFCFE', 2587, '\uFCFF', 2588, '\uFD00', 2589, '\uFD01', 2590, '\uFD02', 2591, '\uFD03', 2592, '\uFD04', 2593, '\uFD05', 2594, '\uFD06', 2595, '\uFD07', 2596, '\uFD08', 2597, '\uFD09', 2598, '\uFD0A', 2599, '\uFD0B', 2600, '\uFD0C', 2573, '\uFD0D', 2601, '\uFD0E', 2602, '\uFD0F', 2603, '\uFD10', 2604, '\uFD11', 2578, '\uFD12', 2579, '\uFD13', 2580, '\uFD14', 2581, '\uFD15', 2582, '\uFD16', 2583, '\uFD17', 2584, '\uFD18', 2585, '\uFD19', 2586, '\uFD1A', 2587, '\uFD1B', 2588, '\uFD1C', 2589, '\uFD1D', 2590, '\uFD1E', 2591, '\uFD1F', 2592, '\uFD20', 2593, '\uFD21', 2594, '\uFD22', 2595, '\uFD23', 2596, '\uFD24', 2597, '\uFD25', 2598, '\uFD26', 2599, '\uFD27', 2600, '\uFD28', 2573, '\uFD29', 2601, '\uFD2A', 2602, '\uFD2B', 2603, '\uFD2C', 2604, '\uFD2D', 2598, '\uFD2E', 2599, '\uFD2F', 2600, '\uFD30', 2573, '\uFD31', 2572, '\uFD32', 2574, '\uFD33', 2482, '\uFD34', 2471, '\uFD35', 2472, '\uFD36', 2473, '\uFD37', 2598, '\uFD38', 2599, '\uFD39', 2600, '\uFD3A', 2482, '\uFD3B', 2483, '\uFD3C', 2605, '\uFD3D', 2605, '\uFD50', 2606, '\uFD51', 2607, '\uFD52', 2607, '\uFD53', 2608, '\uFD54', 2609, '\uFD55', 2610, '\uFD56', 2611, '\uFD57', 2612, '\uFD58', 2613, '\uFD59', 2613, '\uFD5A', 2614, '\uFD5B', 2615, '\uFD5C', 2616, '\uFD5D', 2617, '\uFD5E', 2618, '\uFD5F', 2619, '\uFD60', 2619, '\uFD61', 2620, '\uFD62', 2621, '\uFD63', 2621, '\uFD64', 2622, '\uFD65', 2622, '\uFD66', 2623, '\uFD67', 2624, '\uFD68', 2624, '\uFD69', 2625, '\uFD6A', 2626, '\uFD6B', 2626, '\uFD6C', 2627, '\uFD6D', 2627, '\uFD6E', 2628, '\uFD6F', 2629, '\uFD70', 2629, '\uFD71', 2630, '\uFD72', 2630, '\uFD73', 2631, '\uFD74', 2632, '\uFD75', 2633, '\uFD76', 2634, '\uFD77', 2634, '\uFD78', 2635, '\uFD79', 2636, '\uFD7A', 2637, '\uFD7B', 2638, '\uFD7C', 2639, '\uFD7D', 2639, '\uFD7E', 2640, '\uFD7F', 2641, '\uFD80', 2642, '\uFD81', 2643, '\uFD82', 2644, '\uFD83', 2645, '\uFD84', 2645, '\uFD85', 2646, '\uFD86', 2646, '\uFD87', 2647, '\uFD88', 2647, '\uFD89', 2648, '\uFD8A', 2649, '\uFD8B', 2650, '\uFD8C', 2651, '\uFD8D', 2652, '\uFD8E', 2653, '\uFD8F', 2654, '\uFD92', 2655, '\uFD93', 2656, '\uFD94', 2657, '\uFD95', 2658, '\uFD96', 2659, '\uFD97', 2660, '\uFD98', 2660, '\uFD99', 2661, '\uFD9A', 2662, '\uFD9B', 2663, '\uFD9C', 2664, '\uFD9D', 2664, '\uFD9E', 2665, '\uFD9F', 2666, '\uFDA0', 2667, '\uFDA1', 2668, '\uFDA2', 2669, '\uFDA3', 2670, '\uFDA4', 2671, '\uFDA5', 2672, '\uFDA6', 2673, '\uFDA7', 2674, '\uFDA8', 2675, '\uFDA9', 2676, '\uFDAA', 2677, '\uFDAB', 2678, '\uFDAC', 2679, '\uFDAD', 2680, '\uFDAE', 2681, '\uFDAF', 2682, '\uFDB0', 2683, '\uFDB1', 2684, '\uFDB2', 2685, '\uFDB3', 2686, '\uFDB4', 2640, '\uFDB5', 2642, '\uFDB6', 2687, '\uFDB7', 2688, '\uFDB8', 2689, '\uFDB9', 2690, '\uFDBA', 2691, '\uFDBB', 2692, '\uFDBC', 2691, '\uFDBD', 2689, '\uFDBE', 2693, '\uFDBF', 2694, '\uFDC0', 2695, '\uFDC1', 2696, '\uFDC2', 2697, '\uFDC3', 2692, '\uFDC4', 2633, '\uFDC5', 2623, '\uFDC6', 2698, '\uFDC7', 2699, '\uFDF0', 2700, '\uFDF1', 2701, '\uFDF2', 2702, '\uFDF3', 2703, '\uFDF4', 2704, '\uFDF5', 2705, '\uFDF6', 2706, '\uFDF7', 2707, '\uFDF8', 2708, '\uFDF9', 2709, '\uFDFA', 2710, '\uFDFB', 2711, '\uFDFC', 2712, '\uFE30', 938, '\uFE31', 2713, '\uFE32', 2714, '\uFE33', 2715, '\uFE34', 2715, '\uFE35', 961, '\uFE36', 962, '\uFE37', 2716, '\uFE38', 2717, '\uFE39', 2718, '\uFE3A', 2719, '\uFE3B', 2720, '\uFE3C', 2721, '\uFE3D', 2722, '\uFE3E', 2723, '\uFE3F', 1088, '\uFE40', 1089, '\uFE41', 2724, '\uFE42', 2725, '\uFE43', 2726, '\uFE44', 2727, '\uFE49', 945, '\uFE4A', 945, '\uFE4B', 945, '\uFE4C', 945, '\uFE4D', 2715, '\uFE4E', 2715, '\uFE4F', 2715, '\uFE50', 2728, '\uFE51', 2729, '\uFE52', 937, '\uFE54', 309, '\uFE55', 2730, '\uFE56', 2731, '\uFE57', 2732, '\uFE58', 2713, '\uFE59', 961, '\uFE5A', 962, '\uFE5B', 2716, '\uFE5C', 2717, '\uFE5D', 2718, '\uFE5E', 2719, '\uFE5F', 2733, '\uFE60', 2734, '\uFE61', 2735, '\uFE62', 958, '\uFE63', 2736, '\uFE64', 2737, '\uFE65', 2738, '\uFE66', 960, '\uFE68', 2739, '\uFE69', 2740, '\uFE6A', 2741, '\uFE6B', 2742, '\uFE70', 2743, '\uFE71', 2744, '\uFE72', 2745, '\uFE74', 2746, '\uFE76', 2747, '\uFE77', 2748, '\uFE78', 2749, '\uFE79', 2750, '\uFE7A', 2751, '\uFE7B', 2752, '\uFE7C', 2753, '\uFE7D', 2754, '\uFE7E', 2755, '\uFE7F', 2756, '\uFE80', 2757, '\uFE81', 395, '\uFE82', 395, '\uFE83', 396, '\uFE84', 396, '\uFE85', 397, '\uFE86', 397, '\uFE87', 398, '\uFE88', 398, '\uFE89', 399, '\uFE8A', 399, '\uFE8B', 399, '\uFE8C', 399, '\uFE8D', 2758, '\uFE8E', 2758, '\uFE8F', 2759, '\uFE90', 2759, '\uFE91', 2759, '\uFE92', 2759, '\uFE93', 2760, '\uFE94', 2760, '\uFE95', 2761, '\uFE96', 2761, '\uFE97', 2761, '\uFE98', 2761, '\uFE99', 2762, '\uFE9A', 2762, '\uFE9B', 2762, '\uFE9C', 2762, '\uFE9D', 2763, '\uFE9E', 2763, '\uFE9F', 2763, '\uFEA0', 2763, '\uFEA1', 2764, '\uFEA2', 2764, '\uFEA3', 2764, '\uFEA4', 2764, '\uFEA5', 2765, '\uFEA6', 2765, '\uFEA7', 2765, '\uFEA8', 2765, '\uFEA9', 2766, '\uFEAA', 2766, '\uFEAB', 2767, '\uFEAC', 2767, '\uFEAD', 2768, '\uFEAE', 2768, '\uFEAF', 2769, '\uFEB0', 2769, '\uFEB1', 2770, '\uFEB2', 2770, '\uFEB3', 2770, '\uFEB4', 2770, '\uFEB5', 2771, '\uFEB6', 2771, '\uFEB7', 2771, '\uFEB8', 2771, '\uFEB9', 2772, '\uFEBA', 2772, '\uFEBB', 2772, '\uFEBC', 2772, '\uFEBD', 2773, '\uFEBE', 2773, '\uFEBF', 2773, '\uFEC0', 2773, '\uFEC1', 2774, '\uFEC2', 2774, '\uFEC3', 2774, '\uFEC4', 2774, '\uFEC5', 2775, '\uFEC6', 2775, '\uFEC7', 2775, '\uFEC8', 2775, '\uFEC9', 2776, '\uFECA', 2776, '\uFECB', 2776, '\uFECC', 2776, '\uFECD', 2777, '\uFECE', 2777, '\uFECF', 2777, '\uFED0', 2777, '\uFED1', 2778, '\uFED2', 2778, '\uFED3', 2778, '\uFED4', 2778, '\uFED5', 2779, '\uFED6', 2779, '\uFED7', 2779, '\uFED8', 2779, '\uFED9', 2780, '\uFEDA', 2780, '\uFEDB', 2780, '\uFEDC', 2780, '\uFEDD', 2781, '\uFEDE', 2781, '\uFEDF', 2781, '\uFEE0', 2781, '\uFEE1', 2782, '\uFEE2', 2782, '\uFEE3', 2782, '\uFEE4', 2782, '\uFEE5', 2783, '\uFEE6', 2783, '\uFEE7', 2783, '\uFEE8', 2783, '\uFEE9', 2784, '\uFEEA', 2784, '\uFEEB', 2784, '\uFEEC', 2784, '\uFEED', 2785, '\uFEEE', 2785, '\uFEEF', 2434, '\uFEF0', 2434, '\uFEF1', 2786, '\uFEF2', 2786, '\uFEF3', 2786, '\uFEF4', 2786, '\uFEF5', 2787, '\uFEF6', 2787, '\uFEF7', 2788, '\uFEF8', 2788, '\uFEF9', 2789, '\uFEFA', 2789, '\uFEFB', 2790, '\uFEFC', 2790, '\uFF01', 2732, '\uFF02', 2791, '\uFF03', 2733, '\uFF04', 2740, '\uFF05', 2741, '\uFF06', 2734, '\uFF07', 2792, '\uFF08', 961, '\uFF09', 962, '\uFF0A', 2735, '\uFF0B', 958, '\uFF0C', 2728, '\uFF0D', 2736, '\uFF0E', 937, '\uFF0F', 2793, '\uFF10', 950, '\uFF11', 9, '\uFF12', 4, '\uFF13', 5, '\uFF14', 952, '\uFF15', 953, '\uFF16', 954, '\uFF17', 955, '\uFF18', 956, '\uFF19', 957, '\uFF1A', 2730, '\uFF1B', 309, '\uFF1C', 2737, '\uFF1D', 960, '\uFF1E', 2738, '\uFF1F', 2731, '\uFF20', 2742, '\uFF21', 1167, '\uFF22', 989, '\uFF23', 967, '\uFF24', 1002, '\uFF25', 991, '\uFF26', 992, '\uFF27', 1168, '\uFF28', 974, '\uFF29', 976, '\uFF2A', 1169, '\uFF2B', 988, '\uFF2C', 977, '\uFF2D', 993, '\uFF2E', 978, '\uFF2F', 1170, '\uFF30', 980, '\uFF31', 981, '\uFF32', 982, '\uFF33', 1171, '\uFF34', 1172, '\uFF35', 1173, '\uFF36', 1020, '\uFF37', 1174, '\uFF38', 1025, '\uFF39', 1175, '\uFF3A', 986, '\uFF3B', 2794, '\uFF3C', 2739, '\uFF3D', 2795, '\uFF3E', 2796, '\uFF3F', 2715, '\uFF40', 925, '\uFF41', 2, '\uFF42', 1176, '\uFF43', 1038, '\uFF44', 1003, '\uFF45', 990, '\uFF46', 1177, '\uFF47', 973, '\uFF48', 284, '\uFF49', 951, '\uFF4A', 286, '\uFF4B', 1178, '\uFF4C', 300, '\uFF4D', 1039, '\uFF4E', 963, '\uFF4F', 10, '\uFF50', 1179, '\uFF51', 1180, '\uFF52', 287, '\uFF53', 180, '\uFF54', 1181, '\uFF55', 1182, '\uFF56', 1031, '\uFF57', 291, '\uFF58', 301, '\uFF59', 292, '\uFF5A', 1183, '\uFF5B', 2716, '\uFF5C', 2797, '\uFF5D', 2717, '\uFF5E', 2798, '\uFF5F', 2799, '\uFF60', 2800, '\uFF61', 2801, '\uFF62', 2724, '\uFF63', 2725, '\uFF64', 2729, '\uFF65', 2802, '\uFF66', 1773, '\uFF67', 2803, '\uFF68', 2804, '\uFF69', 2805, '\uFF6A', 2806, '\uFF6B', 2807, '\uFF6C', 2808, '\uFF6D', 2809, '\uFF6E', 2810, '\uFF6F', 2811, '\uFF70', 2812, '\uFF71', 1727, '\uFF72', 1728, '\uFF73', 1729, '\uFF74', 1730, '\uFF75', 1731, '\uFF76', 1732, '\uFF77', 1733, '\uFF78', 1734, '\uFF79', 1735, '\uFF7A', 1736, '\uFF7B', 1737, '\uFF7C', 1738, '\uFF7D', 1739, '\uFF7E', 1740, '\uFF7F', 1741, '\uFF80', 1742, '\uFF81', 1743, '\uFF82', 1744, '\uFF83', 1745, '\uFF84', 1746, '\uFF85', 1747, '\uFF86', 1748, '\uFF87', 1749, '\uFF88', 1750, '\uFF89', 1751, '\uFF8A', 1752, '\uFF8B', 1753, '\uFF8C', 1754, '\uFF8D', 1755, '\uFF8E', 1756, '\uFF8F', 1757, '\uFF90', 1758, '\uFF91', 1759, '\uFF92', 1760, '\uFF93', 1761, '\uFF94', 1762, '\uFF95', 1763, '\uFF96', 1764, '\uFF97', 1765, '\uFF98', 1766, '\uFF99', 1767, '\uFF9A', 1768, '\uFF9B', 1769, '\uFF9C', 1770, '\uFF9D', 2813, '\uFF9E', 2814, '\uFF9F', 2815, '\uFFA0', 1521, '\uFFA1', 1470, '\uFFA2', 1471, '\uFFA3', 1472, '\uFFA4', 1473, '\uFFA5', 1474, '\uFFA6', 1475, '\uFFA7', 1476, '\uFFA8', 1477, '\uFFA9', 1478, '\uFFAA', 1479, '\uFFAB', 1480, '\uFFAC', 1481, '\uFFAD', 1482, '\uFFAE', 1483, '\uFFAF', 1484, '\uFFB0', 1485, '\uFFB1', 1486, '\uFFB2', 1487, '\uFFB3', 1488, '\uFFB4', 1489, '\uFFB5', 1490, '\uFFB6', 1491, '\uFFB7', 1492, '\uFFB8', 1493, '\uFFB9', 1494, '\uFFBA', 1495, '\uFFBB', 1496, '\uFFBC', 1497, '\uFFBD', 1498, '\uFFBE', 1499, '\uFFC2', 1500, '\uFFC3', 1501, '\uFFC4', 1502, '\uFFC5', 1503, '\uFFC6', 1504, '\uFFC7', 1505, '\uFFCA', 1506, '\uFFCB', 1507, '\uFFCC', 1508, '\uFFCD', 1509, '\uFFCE', 1510, '\uFFCF', 1511, '\uFFD2', 1512, '\uFFD3', 1513, '\uFFD4', 1514, '\uFFD5', 1515, '\uFFD6', 1516, '\uFFD7', 1517, '\uFFDA', 1518, '\uFFDB', 1519, '\uFFDC', 1520, '\uFFE0', 2816, '\uFFE1', 2817, '\uFFE2', 2818, '\uFFE3', 3, '\uFFE4', 2819, '\uFFE5', 2820, '\uFFE6', 2821, '\uFFE8', 2822, '\uFFE9', 2823, '\uFFEA', 2824, '\uFFEB', 2825, '\uFFEC', 2826, '\uFFED', 2827, '\uFFEE', 2828, }; } libidn-1.38/java/src/main/java/gnu/inet/encoding/Composition.java0000644000000000000000000015333514053001337021644 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class Composition { public final static char[][] multiFirst = new char[][] { { '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u0100', '\u0102', '\u0226', '\u00C4', '\u1EA2', '\u00C5', '\u01CD', '\u0200', '\u0202', '\u1EA0', '\u1E00', '\u0104', }, { 0, 0, 0, 0, 0, 0, '\u1E02', 0, 0, 0, 0, 0, 0, '\u1E04', 0, 0, '\u1E06', }, { 0, '\u0106', '\u0108', 0, 0, 0, '\u010A', 0, 0, 0, '\u010C', 0, 0, 0, 0, 0, 0, '\u00C7', }, { 0, 0, 0, 0, 0, 0, '\u1E0A', 0, 0, 0, '\u010E', 0, 0, '\u1E0C', 0, 0, '\u1E0E', '\u1E10', '\u1E12', }, { '\u00C8', '\u00C9', '\u00CA', '\u1EBC', '\u0112', '\u0114', '\u0116', '\u00CB', '\u1EBA', 0, '\u011A', '\u0204', '\u0206', '\u1EB8', 0, '\u0118', 0, '\u0228', '\u1E18', '\u1E1A', }, { 0, '\u01F4', '\u011C', 0, '\u1E20', '\u011E', '\u0120', 0, 0, 0, '\u01E6', 0, 0, 0, 0, 0, 0, '\u0122', }, { 0, 0, '\u0124', 0, 0, 0, '\u1E22', '\u1E26', 0, 0, '\u021E', 0, 0, '\u1E24', 0, 0, 0, '\u1E28', 0, 0, '\u1E2A', }, { '\u00CC', '\u00CD', '\u00CE', '\u0128', '\u012A', '\u012C', '\u0130', '\u00CF', '\u1EC8', 0, '\u01CF', '\u0208', '\u020A', '\u1ECA', 0, '\u012E', 0, 0, 0, '\u1E2C', }, { 0, '\u1E30', 0, 0, 0, 0, 0, 0, 0, 0, '\u01E8', 0, 0, '\u1E32', 0, 0, '\u1E34', '\u0136', }, { 0, '\u0139', 0, 0, 0, 0, 0, 0, 0, 0, '\u013D', 0, 0, '\u1E36', 0, 0, '\u1E3A', '\u013B', '\u1E3C', }, { 0, '\u1E3E', 0, 0, 0, 0, '\u1E40', 0, 0, 0, 0, 0, 0, '\u1E42', }, { '\u01F8', '\u0143', 0, '\u00D1', 0, 0, '\u1E44', 0, 0, 0, '\u0147', 0, 0, '\u1E46', 0, 0, '\u1E48', '\u0145', '\u1E4A', }, { '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u014C', '\u014E', '\u022E', '\u00D6', '\u1ECE', 0, '\u01D1', '\u020C', '\u020E', '\u1ECC', 0, '\u01EA', 0, 0, 0, 0, 0, '\u0150', '\u01A0', }, { 0, '\u1E54', 0, 0, 0, 0, '\u1E56', }, { 0, '\u0154', 0, 0, 0, 0, '\u1E58', 0, 0, 0, '\u0158', '\u0210', '\u0212', '\u1E5A', 0, 0, '\u1E5E', '\u0156', }, { 0, '\u015A', '\u015C', 0, 0, 0, '\u1E60', 0, 0, 0, '\u0160', 0, 0, '\u1E62', 0, 0, 0, '\u015E', 0, 0, 0, 0, 0, '\u0218', }, { 0, 0, 0, 0, 0, 0, '\u1E6A', 0, 0, 0, '\u0164', 0, 0, '\u1E6C', 0, 0, '\u1E6E', '\u0162', '\u1E70', 0, 0, 0, 0, '\u021A', }, { '\u00D9', '\u00DA', '\u00DB', '\u0168', '\u016A', '\u016C', 0, '\u00DC', '\u1EE6', '\u016E', '\u01D3', '\u0214', '\u0216', '\u1EE4', 0, '\u0172', 0, 0, '\u1E76', '\u1E74', 0, '\u0170', '\u01AF', 0, '\u1E72', }, { 0, 0, 0, '\u1E7C', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1E7E', }, { '\u1E80', '\u1E82', '\u0174', 0, 0, 0, '\u1E86', '\u1E84', 0, 0, 0, 0, 0, '\u1E88', }, { 0, 0, 0, 0, 0, 0, '\u1E8A', '\u1E8C', }, { '\u1EF2', '\u00DD', '\u0176', '\u1EF8', '\u0232', 0, '\u1E8E', '\u0178', '\u1EF6', 0, 0, 0, 0, '\u1EF4', }, { 0, '\u0179', '\u1E90', 0, 0, 0, '\u017B', 0, 0, 0, '\u017D', 0, 0, '\u1E92', 0, 0, '\u1E94', }, { '\u00E0', '\u00E1', '\u00E2', '\u00E3', '\u0101', '\u0103', '\u0227', '\u00E4', '\u1EA3', '\u00E5', '\u01CE', '\u0201', '\u0203', '\u1EA1', '\u1E01', '\u0105', }, { 0, 0, 0, 0, 0, 0, '\u1E03', 0, 0, 0, 0, 0, 0, '\u1E05', 0, 0, '\u1E07', }, { 0, '\u0107', '\u0109', 0, 0, 0, '\u010B', 0, 0, 0, '\u010D', 0, 0, 0, 0, 0, 0, '\u00E7', }, { 0, 0, 0, 0, 0, 0, '\u1E0B', 0, 0, 0, '\u010F', 0, 0, '\u1E0D', 0, 0, '\u1E0F', '\u1E11', '\u1E13', }, { '\u00E8', '\u00E9', '\u00EA', '\u1EBD', '\u0113', '\u0115', '\u0117', '\u00EB', '\u1EBB', 0, '\u011B', '\u0205', '\u0207', '\u1EB9', 0, '\u0119', 0, '\u0229', '\u1E19', '\u1E1B', }, { 0, '\u01F5', '\u011D', 0, '\u1E21', '\u011F', '\u0121', 0, 0, 0, '\u01E7', 0, 0, 0, 0, 0, 0, '\u0123', }, { 0, 0, '\u0125', 0, 0, 0, '\u1E23', '\u1E27', 0, 0, '\u021F', 0, 0, '\u1E25', 0, 0, '\u1E96', '\u1E29', 0, 0, '\u1E2B', }, { '\u00EC', '\u00ED', '\u00EE', '\u0129', '\u012B', '\u012D', 0, '\u00EF', '\u1EC9', 0, '\u01D0', '\u0209', '\u020B', '\u1ECB', 0, '\u012F', 0, 0, 0, '\u1E2D', }, { 0, 0, '\u0135', 0, 0, 0, 0, 0, 0, 0, '\u01F0', }, { 0, '\u1E31', 0, 0, 0, 0, 0, 0, 0, 0, '\u01E9', 0, 0, '\u1E33', 0, 0, '\u1E35', '\u0137', }, { 0, '\u013A', 0, 0, 0, 0, 0, 0, 0, 0, '\u013E', 0, 0, '\u1E37', 0, 0, '\u1E3B', '\u013C', '\u1E3D', }, { 0, '\u1E3F', 0, 0, 0, 0, '\u1E41', 0, 0, 0, 0, 0, 0, '\u1E43', }, { '\u01F9', '\u0144', 0, '\u00F1', 0, 0, '\u1E45', 0, 0, 0, '\u0148', 0, 0, '\u1E47', 0, 0, '\u1E49', '\u0146', '\u1E4B', }, { '\u00F2', '\u00F3', '\u00F4', '\u00F5', '\u014D', '\u014F', '\u022F', '\u00F6', '\u1ECF', 0, '\u01D2', '\u020D', '\u020F', '\u1ECD', 0, '\u01EB', 0, 0, 0, 0, 0, '\u0151', '\u01A1', }, { 0, '\u1E55', 0, 0, 0, 0, '\u1E57', }, { 0, '\u0155', 0, 0, 0, 0, '\u1E59', 0, 0, 0, '\u0159', '\u0211', '\u0213', '\u1E5B', 0, 0, '\u1E5F', '\u0157', }, { 0, '\u015B', '\u015D', 0, 0, 0, '\u1E61', 0, 0, 0, '\u0161', 0, 0, '\u1E63', 0, 0, 0, '\u015F', 0, 0, 0, 0, 0, '\u0219', }, { 0, 0, 0, 0, 0, 0, '\u1E6B', '\u1E97', 0, 0, '\u0165', 0, 0, '\u1E6D', 0, 0, '\u1E6F', '\u0163', '\u1E71', 0, 0, 0, 0, '\u021B', }, { '\u00F9', '\u00FA', '\u00FB', '\u0169', '\u016B', '\u016D', 0, '\u00FC', '\u1EE7', '\u016F', '\u01D4', '\u0215', '\u0217', '\u1EE5', 0, '\u0173', 0, 0, '\u1E77', '\u1E75', 0, '\u0171', '\u01B0', 0, '\u1E73', }, { 0, 0, 0, '\u1E7D', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1E7F', }, { '\u1E81', '\u1E83', '\u0175', 0, 0, 0, '\u1E87', '\u1E85', 0, '\u1E98', 0, 0, 0, '\u1E89', }, { 0, 0, 0, 0, 0, 0, '\u1E8B', '\u1E8D', }, { '\u1EF3', '\u00FD', '\u0177', '\u1EF9', '\u0233', 0, '\u1E8F', '\u00FF', '\u1EF7', '\u1E99', 0, 0, 0, '\u1EF5', }, { 0, '\u017A', '\u1E91', 0, 0, 0, '\u017C', 0, 0, 0, '\u017E', 0, 0, '\u1E93', 0, 0, '\u1E95', }, { '\u1FED', '\u0385', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FC1', }, { '\u1EA6', '\u1EA4', 0, '\u1EAA', 0, 0, 0, 0, '\u1EA8', }, { 0, '\u01FC', 0, 0, '\u01E2', }, { '\u1EC0', '\u1EBE', 0, '\u1EC4', 0, 0, 0, 0, '\u1EC2', }, { '\u1ED2', '\u1ED0', 0, '\u1ED6', 0, 0, 0, 0, '\u1ED4', }, { 0, '\u1E4C', 0, 0, '\u022C', 0, 0, '\u1E4E', }, { '\u01DB', '\u01D7', 0, 0, '\u01D5', 0, 0, 0, 0, 0, '\u01D9', }, { '\u1EA7', '\u1EA5', 0, '\u1EAB', 0, 0, 0, 0, '\u1EA9', }, { 0, '\u01FD', 0, 0, '\u01E3', }, { '\u1EC1', '\u1EBF', 0, '\u1EC5', 0, 0, 0, 0, '\u1EC3', }, { '\u1ED3', '\u1ED1', 0, '\u1ED7', 0, 0, 0, 0, '\u1ED5', }, { 0, '\u1E4D', 0, 0, '\u022D', 0, 0, '\u1E4F', }, { '\u01DC', '\u01D8', 0, 0, '\u01D6', 0, 0, 0, 0, 0, '\u01DA', }, { '\u1EB0', '\u1EAE', 0, '\u1EB4', 0, 0, 0, 0, '\u1EB2', }, { '\u1EB1', '\u1EAF', 0, '\u1EB5', 0, 0, 0, 0, '\u1EB3', }, { '\u1E14', '\u1E16', }, { '\u1E15', '\u1E17', }, { '\u1E50', '\u1E52', }, { '\u1E51', '\u1E53', }, { '\u1EDC', '\u1EDA', 0, '\u1EE0', 0, 0, 0, 0, '\u1EDE', 0, 0, 0, 0, '\u1EE2', }, { '\u1EDD', '\u1EDB', 0, '\u1EE1', 0, 0, 0, 0, '\u1EDF', 0, 0, 0, 0, '\u1EE3', }, { '\u1EEA', '\u1EE8', 0, '\u1EEE', 0, 0, 0, 0, '\u1EEC', 0, 0, 0, 0, '\u1EF0', }, { '\u1EEB', '\u1EE9', 0, '\u1EEF', 0, 0, 0, 0, '\u1EED', 0, 0, 0, 0, '\u1EF1', }, { '\u1FBA', '\u0386', 0, 0, '\u1FB9', '\u1FB8', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F08', '\u1F09', '\u1FBC', }, { '\u1FC8', '\u0388', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F18', '\u1F19', }, { '\u1FCA', '\u0389', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F28', '\u1F29', '\u1FCC', }, { '\u1FDA', '\u038A', 0, 0, '\u1FD9', '\u1FD8', 0, '\u03AA', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F38', '\u1F39', }, { '\u1FF8', '\u038C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F48', '\u1F49', }, { '\u1FEA', '\u038E', 0, 0, '\u1FE9', '\u1FE8', 0, '\u03AB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F59', }, { '\u1FFA', '\u038F', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F68', '\u1F69', '\u1FFC', }, { '\u1F70', '\u03AC', 0, 0, '\u1FB1', '\u1FB0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FB6', '\u1F00', '\u1F01', '\u1FB3', }, { '\u1F72', '\u03AD', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F10', '\u1F11', }, { '\u1F74', '\u03AE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FC6', '\u1F20', '\u1F21', '\u1FC3', }, { '\u1F76', '\u03AF', 0, 0, '\u1FD1', '\u1FD0', 0, '\u03CA', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FD6', '\u1F30', '\u1F31', }, { '\u1F78', '\u03CC', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F40', '\u1F41', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FE4', '\u1FE5', }, { '\u1F7A', '\u03CD', 0, 0, '\u1FE1', '\u1FE0', 0, '\u03CB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FE6', '\u1F50', '\u1F51', }, { '\u1F7C', '\u03CE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FF6', '\u1F60', '\u1F61', '\u1FF3', }, { '\u1FD2', '\u0390', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FD7', }, { '\u1FE2', '\u03B0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FE7', }, { 0, '\u03D3', 0, 0, 0, 0, 0, '\u03D4', }, { 0, 0, 0, 0, 0, '\u04D0', 0, '\u04D2', }, { '\u0400', 0, 0, 0, 0, '\u04D6', 0, '\u0401', }, { 0, 0, 0, 0, 0, '\u04C1', 0, '\u04DC', }, { '\u040D', 0, 0, 0, '\u04E2', '\u0419', 0, '\u04E4', }, { 0, 0, 0, 0, '\u04EE', '\u040E', 0, '\u04F0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u04F2', }, { 0, 0, 0, 0, 0, '\u04D1', 0, '\u04D3', }, { '\u0450', 0, 0, 0, 0, '\u04D7', 0, '\u0451', }, { 0, 0, 0, 0, 0, '\u04C2', 0, '\u04DD', }, { '\u045D', 0, 0, 0, '\u04E3', '\u0439', 0, '\u04E5', }, { 0, 0, 0, 0, '\u04EF', '\u045E', 0, '\u04F1', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u04F3', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0623', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0BCA', '\u0BCC', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0CC7', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0D4A', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0DDA', }, { 0, 0, '\u1EAC', 0, 0, '\u1EB6', }, { 0, 0, '\u1EAD', 0, 0, '\u1EB7', }, { '\u1F02', '\u1F04', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F06', 0, 0, '\u1F80', }, { '\u1F03', '\u1F05', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F07', 0, 0, '\u1F81', }, { '\u1F0A', '\u1F0C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F0E', 0, 0, '\u1F88', }, { '\u1F0B', '\u1F0D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F0F', 0, 0, '\u1F89', }, { '\u1F12', '\u1F14', }, { '\u1F13', '\u1F15', }, { '\u1F1A', '\u1F1C', }, { '\u1F1B', '\u1F1D', }, { '\u1F22', '\u1F24', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F26', 0, 0, '\u1F90', }, { '\u1F23', '\u1F25', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F27', 0, 0, '\u1F91', }, { '\u1F2A', '\u1F2C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F2E', 0, 0, '\u1F98', }, { '\u1F2B', '\u1F2D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F2F', 0, 0, '\u1F99', }, { '\u1F32', '\u1F34', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F36', }, { '\u1F33', '\u1F35', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F37', }, { '\u1F3A', '\u1F3C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F3E', }, { '\u1F3B', '\u1F3D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F3F', }, { '\u1F42', '\u1F44', }, { '\u1F43', '\u1F45', }, { '\u1F4A', '\u1F4C', }, { '\u1F4B', '\u1F4D', }, { '\u1F52', '\u1F54', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F56', }, { '\u1F53', '\u1F55', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F57', }, { '\u1F5B', '\u1F5D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F5F', }, { '\u1F62', '\u1F64', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F66', 0, 0, '\u1FA0', }, { '\u1F63', '\u1F65', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F67', 0, 0, '\u1FA1', }, { '\u1F6A', '\u1F6C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F6E', 0, 0, '\u1FA8', }, { '\u1F6B', '\u1F6D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F6F', 0, 0, '\u1FA9', }, { '\u1FCD', '\u1FCE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FCF', }, { '\u1FDD', '\u1FDE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FDF', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3070', '\u3071', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3073', '\u3074', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3076', '\u3077', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3079', '\u307A', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u307C', '\u307D', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D0', '\u30D1', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D3', '\u30D4', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D6', '\u30D7', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D9', '\u30DA', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30DC', '\u30DD', }, }; public final static char[][] singleFirst = new char[][] { { '\u0338', '\u226E' }, { '\u0338', '\u2260' }, { '\u0338', '\u226F' }, { '\u0307', '\u1E1E' }, { '\u0302', '\u0134' }, { '\u0307', '\u1E1F' }, { '\u0304', '\u01DE' }, { '\u0301', '\u01FA' }, { '\u0301', '\u1E08' }, { '\u0301', '\u1E2E' }, { '\u0304', '\u022A' }, { '\u0301', '\u01FE' }, { '\u0304', '\u01DF' }, { '\u0301', '\u01FB' }, { '\u0301', '\u1E09' }, { '\u0301', '\u1E2F' }, { '\u0304', '\u022B' }, { '\u0301', '\u01FF' }, { '\u0307', '\u1E64' }, { '\u0307', '\u1E65' }, { '\u0307', '\u1E66' }, { '\u0307', '\u1E67' }, { '\u0301', '\u1E78' }, { '\u0301', '\u1E79' }, { '\u0308', '\u1E7A' }, { '\u0308', '\u1E7B' }, { '\u0307', '\u1E9B' }, { '\u030C', '\u01EE' }, { '\u0304', '\u01EC' }, { '\u0304', '\u01ED' }, { '\u0304', '\u01E0' }, { '\u0304', '\u01E1' }, { '\u0306', '\u1E1C' }, { '\u0306', '\u1E1D' }, { '\u0304', '\u0230' }, { '\u0304', '\u0231' }, { '\u030C', '\u01EF' }, { '\u0314', '\u1FEC' }, { '\u0345', '\u1FB4' }, { '\u0345', '\u1FC4' }, { '\u0345', '\u1FF4' }, { '\u0308', '\u0407' }, { '\u0301', '\u0403' }, { '\u0308', '\u04DE' }, { '\u0301', '\u040C' }, { '\u0308', '\u04E6' }, { '\u0308', '\u04F4' }, { '\u0308', '\u04F8' }, { '\u0308', '\u04EC' }, { '\u0301', '\u0453' }, { '\u0308', '\u04DF' }, { '\u0301', '\u045C' }, { '\u0308', '\u04E7' }, { '\u0308', '\u04F5' }, { '\u0308', '\u04F9' }, { '\u0308', '\u04ED' }, { '\u0308', '\u0457' }, { '\u030F', '\u0476' }, { '\u030F', '\u0477' }, { '\u0308', '\u04DA' }, { '\u0308', '\u04DB' }, { '\u0308', '\u04EA' }, { '\u0308', '\u04EB' }, { '\u0654', '\u0624' }, { '\u0654', '\u0626' }, { '\u0654', '\u06C2' }, { '\u0654', '\u06D3' }, { '\u0654', '\u06C0' }, { '\u093C', '\u0929' }, { '\u093C', '\u0931' }, { '\u093C', '\u0934' }, { '\u0BD7', '\u0B94' }, { '\u0BBE', '\u0BCB' }, { '\u0C56', '\u0C48' }, { '\u0CD5', '\u0CC0' }, { '\u0CD5', '\u0CCB' }, { '\u0D3E', '\u0D4B' }, { '\u0DCA', '\u0DDD' }, { '\u102E', '\u1026' }, { '\u0304', '\u1E38' }, { '\u0304', '\u1E39' }, { '\u0304', '\u1E5C' }, { '\u0304', '\u1E5D' }, { '\u0307', '\u1E68' }, { '\u0307', '\u1E69' }, { '\u0302', '\u1EC6' }, { '\u0302', '\u1EC7' }, { '\u0302', '\u1ED8' }, { '\u0302', '\u1ED9' }, { '\u0345', '\u1F82' }, { '\u0345', '\u1F83' }, { '\u0345', '\u1F84' }, { '\u0345', '\u1F85' }, { '\u0345', '\u1F86' }, { '\u0345', '\u1F87' }, { '\u0345', '\u1F8A' }, { '\u0345', '\u1F8B' }, { '\u0345', '\u1F8C' }, { '\u0345', '\u1F8D' }, { '\u0345', '\u1F8E' }, { '\u0345', '\u1F8F' }, { '\u0345', '\u1F92' }, { '\u0345', '\u1F93' }, { '\u0345', '\u1F94' }, { '\u0345', '\u1F95' }, { '\u0345', '\u1F96' }, { '\u0345', '\u1F97' }, { '\u0345', '\u1F9A' }, { '\u0345', '\u1F9B' }, { '\u0345', '\u1F9C' }, { '\u0345', '\u1F9D' }, { '\u0345', '\u1F9E' }, { '\u0345', '\u1F9F' }, { '\u0345', '\u1FA2' }, { '\u0345', '\u1FA3' }, { '\u0345', '\u1FA4' }, { '\u0345', '\u1FA5' }, { '\u0345', '\u1FA6' }, { '\u0345', '\u1FA7' }, { '\u0345', '\u1FAA' }, { '\u0345', '\u1FAB' }, { '\u0345', '\u1FAC' }, { '\u0345', '\u1FAD' }, { '\u0345', '\u1FAE' }, { '\u0345', '\u1FAF' }, { '\u0345', '\u1FB2' }, { '\u0345', '\u1FC2' }, { '\u0345', '\u1FF2' }, { '\u0345', '\u1FB7' }, { '\u0345', '\u1FC7' }, { '\u0345', '\u1FF7' }, { '\u0338', '\u219A' }, { '\u0338', '\u219B' }, { '\u0338', '\u21AE' }, { '\u0338', '\u21CD' }, { '\u0338', '\u21CF' }, { '\u0338', '\u21CE' }, { '\u0338', '\u2204' }, { '\u0338', '\u2209' }, { '\u0338', '\u220C' }, { '\u0338', '\u2224' }, { '\u0338', '\u2226' }, { '\u0338', '\u2241' }, { '\u0338', '\u2244' }, { '\u0338', '\u2247' }, { '\u0338', '\u2249' }, { '\u0338', '\u226D' }, { '\u0338', '\u2262' }, { '\u0338', '\u2270' }, { '\u0338', '\u2271' }, { '\u0338', '\u2274' }, { '\u0338', '\u2275' }, { '\u0338', '\u2278' }, { '\u0338', '\u2279' }, { '\u0338', '\u2280' }, { '\u0338', '\u2281' }, { '\u0338', '\u22E0' }, { '\u0338', '\u22E1' }, { '\u0338', '\u2284' }, { '\u0338', '\u2285' }, { '\u0338', '\u2288' }, { '\u0338', '\u2289' }, { '\u0338', '\u22E2' }, { '\u0338', '\u22E3' }, { '\u0338', '\u22AC' }, { '\u0338', '\u22AD' }, { '\u0338', '\u22AE' }, { '\u0338', '\u22AF' }, { '\u0338', '\u22EA' }, { '\u0338', '\u22EB' }, { '\u0338', '\u22EC' }, { '\u0338', '\u22ED' }, { '\u3099', '\u3094' }, { '\u3099', '\u304C' }, { '\u3099', '\u304E' }, { '\u3099', '\u3050' }, { '\u3099', '\u3052' }, { '\u3099', '\u3054' }, { '\u3099', '\u3056' }, { '\u3099', '\u3058' }, { '\u3099', '\u305A' }, { '\u3099', '\u305C' }, { '\u3099', '\u305E' }, { '\u3099', '\u3060' }, { '\u3099', '\u3062' }, { '\u3099', '\u3065' }, { '\u3099', '\u3067' }, { '\u3099', '\u3069' }, { '\u3099', '\u309E' }, { '\u3099', '\u30F4' }, { '\u3099', '\u30AC' }, { '\u3099', '\u30AE' }, { '\u3099', '\u30B0' }, { '\u3099', '\u30B2' }, { '\u3099', '\u30B4' }, { '\u3099', '\u30B6' }, { '\u3099', '\u30B8' }, { '\u3099', '\u30BA' }, { '\u3099', '\u30BC' }, { '\u3099', '\u30BE' }, { '\u3099', '\u30C0' }, { '\u3099', '\u30C2' }, { '\u3099', '\u30C5' }, { '\u3099', '\u30C7' }, { '\u3099', '\u30C9' }, { '\u3099', '\u30F7' }, { '\u3099', '\u30F8' }, { '\u3099', '\u30F9' }, { '\u3099', '\u30FA' }, { '\u3099', '\u30FE' }, }; public final static char[][] singleSecond = new char[][] { { '\u0627', '\u0622' }, { '\u0627', '\u0625' }, { '\u09C7', '\u09CB' }, { '\u09C7', '\u09CC' }, { '\u0B47', '\u0B4B' }, { '\u0B47', '\u0B48' }, { '\u0B47', '\u0B4C' }, { '\u0CC6', '\u0CCA' }, { '\u0CC6', '\u0CC8' }, { '\u0D46', '\u0D4C' }, { '\u0DD9', '\u0DDC' }, { '\u0DD9', '\u0DDE' }, }; public final static int multiSecondStart = 144; public final static int singleFirstStart = 181; public final static int singleSecondStart = 391; public final static int[] composePage = new int[] { 0, 1, 2, 3, 4, -1, 5, -1, -1, 6, -1, 7, 8, 9, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, }; public final static int[][] composeData = new int[][] { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, 182, 183, -1, -1, 0, 1, 2, 3, 4, 184, 5, 6, 7, 185, 8, 9, 10, 11, 12, 13, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, 23, 24, 25, 26, 27, 186, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, 187, 188, 49, 189, -1, -1, 50, -1, -1, -1, -1, 190, -1, -1, -1, -1, 51, 52, 191, -1, 192, -1, -1, -1, 53, -1, -1, -1, -1, -1, 54, -1, 193, 194, 55, 195, -1, -1, 56, -1, -1, -1, -1, 196, -1, -1, -1, -1, 57, 58, 197, -1, 198, -1, -1, -1, 59, -1, -1, -1, }, { -1, -1, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, 203, 204, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, 214, -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 144, 145, 146, 147, 148, -1, 149, 150, 151, 152, 153, 165, 154, -1, -1, 155, -1, 156, -1, 170, 171, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, 157, 168, 158, 167, 161, 159, -1, -1, -1, -1, 162, 164, -1, 163, 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 71, -1, 72, -1, 73, -1, -1, -1, -1, -1, 74, -1, 218, -1, -1, -1, 75, -1, -1, -1, 76, -1, -1, 219, -1, 220, -1, -1, 77, -1, -1, -1, 78, -1, 79, -1, 80, -1, -1, -1, -1, -1, 81, -1, 82, -1, -1, -1, 83, -1, -1, -1, 84, 85, 86, -1, -1, 221, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, 223, -1, 89, 90, 224, 91, -1, 225, -1, -1, -1, 226, -1, -1, -1, -1, 92, -1, -1, -1, 227, -1, -1, -1, 228, -1, 229, -1, -1, 93, -1, -1, 230, -1, 94, 95, 231, 96, -1, 232, -1, -1, -1, 233, -1, -1, -1, -1, 97, -1, -1, -1, 234, -1, -1, -1, 235, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, 245, -1, -1, -1, -1, -1, -1, -1, -1, 391, 173, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, 248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 249, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, 99, 253, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, 398, -1, -1, -1, 100, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, 101, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, 258, -1, -1, 402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, -1, -1, -1, -1, -1, -1, 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 105, 106, 270, 271, 272, 273, 274, 275, 107, 108, 276, 277, 278, 279, 280, 281, 109, 110, -1, -1, -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, 113, 114, 282, 283, 284, 285, 286, 287, 115, 116, 288, 289, 290, 291, 292, 293, 117, 118, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, 125, 126, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, 128, 129, 294, 295, 296, 297, 298, 299, 130, 131, 300, 301, 302, 303, 304, 305, 306, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, 133, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 313, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, -1, 316, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, 318, -1, -1, -1, -1, 319, -1, -1, 320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 324, -1, 325, -1, -1, 326, -1, -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, 329, 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, 332, -1, -1, 333, 334, -1, -1, 335, 336, 337, 338, -1, -1, -1, -1, 339, 340, -1, -1, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, -1, -1, -1, 346, 347, -1, 348, -1, -1, -1, -1, -1, -1, 349, 350, 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, 354, -1, 355, -1, 356, -1, 357, -1, 358, -1, 359, -1, 360, -1, 361, -1, 362, -1, 363, -1, 364, -1, 365, -1, -1, 366, -1, 367, -1, 368, -1, -1, -1, -1, -1, -1, 134, -1, -1, 135, -1, -1, 136, -1, -1, 137, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 179, 180, -1, -1, 369, -1, -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, -1, 380, -1, 381, -1, 382, -1, -1, 383, -1, 384, -1, 385, -1, -1, -1, -1, -1, -1, 139, -1, -1, 140, -1, -1, 141, -1, -1, 142, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, -1, -1, }, }; } libidn-1.38/java/src/main/java/gnu/inet/encoding/PunycodeException.java0000644000000000000000000000261014076271517023011 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * Exception handling for Punycode class. */ public class PunycodeException extends Exception { public static String OVERFLOW = "Overflow."; public static String BAD_INPUT = "Bad input."; /** * Creates a new PunycodeException. * * @param m message. */ public PunycodeException(String m) { super(m); } } libidn-1.38/java/src/main/java/gnu/inet/encoding/Stringprep.java0000644000000000000000000003102514076271517021503 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; import java.util.Arrays; /** * This class offers static methods for preparing internationalized * strings. It supports the following stringprep profiles: *
    *
  • RFC3491 nameprep *
  • RFC3920 XMPP nodeprep and resourceprep *
* Note that this implementation only supports 16-bit Unicode code * points. */ public class Stringprep { private static final RangeSet.Range[] NODEPREP_PASSTHROUGH_RANGES = new RangeSet.Range[] { new RangeSet.Range(0x5B, 0x7E), new RangeSet.Range(0x30, 0x39), new RangeSet.Range(0x28, 0x2E)}; private static final RangeSet.Range[] NAMEPREP_PASSTHROUGH_RANGES = new RangeSet.Range[] { new RangeSet.Range(0x5B, 0x7F), new RangeSet.Range(0x00, 0x40)}; private static final RangeSet.Range[] RESOURCEPREP_PASSTHROUGH_RANGES = new RangeSet.Range[] { new RangeSet.Range(0x20, 0x7E)}; private static final RangeSet RANGE_A1 = RangeSet.builder().addRanges(RFC3454.A1) .build(); private static final RangeSet RANGE_B1 = RangeSet.builder().addRanges(RFC3454.B1) .build(); private static final RangeSet RANGE_D1 = RangeSet.builder().addRanges(RFC3454.D1) .build(); private static final RangeSet RANGE_D2 = RangeSet.builder().addRanges(RFC3454.D2) .build(); private static final RangeSet RANGE_C3_to_C8_C12_C22 = RangeSet.builder().addRanges(RFC3454.C12) .addRanges(RFC3454.C22) .addRanges(RFC3454.C3) .addRanges(RFC3454.C4) .addRanges(RFC3454.C5) .addRanges(RFC3454.C6) .addRanges(RFC3454.C7) .addRanges(RFC3454.C8) // TODO Add C9 table now, proper unicode support now // Temporary rejection of all "unsupported" in java 1.4 .addRange(new RangeSet.Range(0xffff, 0x10ffff)) .build(); /** * Characters prohibited by RFC3920 nodeprep that aren't defined as * part of the RFC3454 tables. */ private static final char [] RFC3920_NODEPREP_PROHIBIT = new char [] { '\u0022', '\u0026', '\'', '\u002F', '\u003A', '\u003C', '\u003E', '\u0040' }; private static final RangeSet RANGE_C3_TO_C8_C11_12_21_22_NP_PROHIB = RangeSet.builder().addRanges(RFC3454.C3) .addRanges(RFC3454.C4) .addRanges(RFC3454.C5) .addRanges(RFC3454.C6) .addRanges(RFC3454.C7) .addRanges(RFC3454.C8) .addRanges(RFC3454.C11) .addRanges(RFC3454.C12) .addRanges(RFC3454.C21) .addRanges(RFC3454.C22) .addRanges(RFC3920_NODEPREP_PROHIBIT) // TODO Add C9 table now, proper unicode support now // Temporary rejection of all "unsupported" in java 1.4 .addRange(new RangeSet.Range(0xffff, 0x10ffff)) .build(); private static final RangeSet RANGE_C3_to_C8_C12_C21_C22 = RangeSet.builder().addRanges(RFC3454.C12) .addRanges(RFC3454.C21) .addRanges(RFC3454.C22) .addRanges(RFC3454.C3) .addRanges(RFC3454.C4) .addRanges(RFC3454.C5) .addRanges(RFC3454.C6) .addRanges(RFC3454.C7) .addRanges(RFC3454.C8) // TODO Add C9 table now, proper unicode support now // Temporary rejection of all "unsupported" in java 1.4 .addRange(new RangeSet.Range(0xffff, 0x10ffff)) .build(); /** * Preps a name according to the Stringprep profile defined in * RFC3491. Unassigned code points are not allowed. * * @param input the name to prep. * @return the prepped name. * @throws StringprepException If the name cannot be prepped with * this profile. * @throws NullPointerException If the name is null. */ public static String nameprep(String input) throws StringprepException, NullPointerException { return nameprep(input, false); } /** * Preps a name according to the Stringprep profile defined in * RFC3491. * * @param input the name to prep. * @param allowUnassigned true if the name may contain unassigned * code points. * @return the prepped name. * @throws StringprepException If the name cannot be prepped with * this profile. * @throws NullPointerException If the name is null. */ public static String nameprep(String input, boolean allowUnassigned) throws StringprepException, NullPointerException { if (input == null) { throw new NullPointerException(); } final RangeSet.Range inputRange = RangeSet.createTextRange(input); if (onlyPassThrough(NAMEPREP_PASSTHROUGH_RANGES, inputRange)) { return input; } if (!allowUnassigned && RANGE_A1.containsAnyCodePoint(input, inputRange)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } StringBuilder s = new StringBuilder(input); filter(s, RANGE_B1); map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.normalizeNFKC(s.toString())); final RangeSet.Range normalizedRange = RangeSet.createTextRange(s); // B.3 is only needed if NFKC is not used, right? // map(s, RFC3454.B3search, RFC3454.B3replace); if (RANGE_C3_to_C8_C12_C22.containsAnyCodePoint(s, normalizedRange)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling boolean r = RANGE_D1.containsAnyCodePoint(s, normalizedRange); boolean l = RANGE_D2.containsAnyCodePoint(s, normalizedRange); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!RANGE_D1.contains(s.charAt(0)) || !RANGE_D1.contains(s.charAt(s.length()-1))) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.toString(); } /** * Preps a node name according to the Stringprep profile defined in * RFC3920. Unassigned code points are not allowed. * * @param input the node name to prep. * @return the prepped node name. * @throws StringprepException If the node name cannot be prepped * with this profile. * @throws NullPointerException If the node name is null. */ public static String nodeprep(String input) throws StringprepException, NullPointerException { return nodeprep(input, false); } /** * Preps a node name according to the Stringprep profile defined in * RFC3920. * * @param input the node name to prep. * @param allowUnassigned true if the node name may contain * unassigned code points. * @return the prepped node name. * @throws StringprepException If the node name cannot be prepped * with this profile. * @throws NullPointerException If the node name is null. */ public static String nodeprep(String input, boolean allowUnassigned) throws StringprepException, NullPointerException { if (input == null) { throw new NullPointerException(); } final RangeSet.Range inputRange = RangeSet.createTextRange(input); if (onlyPassThrough(NODEPREP_PASSTHROUGH_RANGES, inputRange)) { return input; } if (!allowUnassigned && RANGE_A1.containsAnyCodePoint(input, inputRange)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } StringBuilder s = new StringBuilder(input); filter(s, RANGE_B1); map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.normalizeNFKC(s.toString())); final RangeSet.Range normalizedRange = RangeSet.createTextRange(s); if (RANGE_C3_TO_C8_C11_12_21_22_NP_PROHIB.containsAnyCodePoint(s, normalizedRange)) { throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling boolean r = RANGE_D1.containsAnyCodePoint(s, normalizedRange); boolean l = RANGE_D2.containsAnyCodePoint(s, normalizedRange); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!RANGE_D1.contains(s.charAt(0)) || !RANGE_D1.contains(s.charAt(s.length() - 1))) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.toString(); } /** * Preps a resource name according to the Stringprep profile defined * in RFC3920. Unassigned code points are not allowed. * * @param input the resource name to prep. * @return the prepped node name. * @throws StringprepException If the resource name cannot be prepped * with this profile. * @throws NullPointerException If the resource name is null. */ public static String resourceprep(String input) throws StringprepException, NullPointerException { return resourceprep(input, false); } /** * Preps a resource name according to the Stringprep profile defined * in RFC3920. * * @param input the resource name to prep. * @param allowUnassigned true if the resource name may contain * unassigned code points. * @return the prepped node name. * @throws StringprepException If the resource name cannot be prepped * with this profile. * @throws NullPointerException If the resource name is null. */ public static String resourceprep(String input, boolean allowUnassigned) throws StringprepException, NullPointerException { if (input == null) { throw new NullPointerException(); } final RangeSet.Range inputRange = RangeSet.createTextRange(input); if (onlyPassThrough(RESOURCEPREP_PASSTHROUGH_RANGES, inputRange)) { return input; } if (!allowUnassigned && RANGE_A1.containsAnyCodePoint(input)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } StringBuilder s = new StringBuilder(input); filter(s, RANGE_B1); s = new StringBuilder(NFKC.normalizeNFKC(s.toString())); final RangeSet.Range normalizedRange = RangeSet.createTextRange(s); if (RANGE_C3_to_C8_C12_C21_C22.containsAnyCodePoint(s, normalizedRange)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling boolean r = RANGE_D1.containsAnyCodePoint(s, normalizedRange); boolean l = RANGE_D2.containsAnyCodePoint(s, normalizedRange); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!RANGE_D1.contains(s.charAt(0)) || !RANGE_D1.contains(s.charAt(s.length() - 1))) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.toString(); } private static boolean onlyPassThrough(final RangeSet.Range[] passThroughs, final RangeSet.Range inputRange) { for (final RangeSet.Range passThrough : passThroughs) { if (passThrough.contains(inputRange)) { return true; } } return false; } static void filter(StringBuilder s, RangeSet f) { for (int j = 0; j < s.length(); ) { if (f.contains(s.charAt(j))) { s.deleteCharAt(j); } else { j++; } } } static void map(StringBuilder s, char[] search, String[] replace) { for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); int mapIndex = Arrays.binarySearch(search, c); if (mapIndex >= 0) { String replacement = replace[mapIndex]; s.replace(i, i + 1, replacement); i += replacement.length() - 1; } } } } libidn-1.38/java/src/main/java/gnu/inet/encoding/RangeSet.java0000644000000000000000000002523314076271517021062 00000000000000/* Copyright (C) 2013-2021 Free Software Foundation, Inc. Author: Stefan Larsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Locale; /** * Set of integer ranges supporting efficient contains-checks. * @author Stefan Larsson */ public final class RangeSet { private static final RangeContainsComparator CONTAINS_COMPARATOR = new RangeContainsComparator(); private final Range[] ranges; private final Range mostSignificantGap; // TODO Store ranges with improved cache-locality, probably int[] with even/odd elements being first/last public static final class Range implements Comparable { private final int first; private final int last; public Range(int first, int last) { if (first > last) { throw new IllegalArgumentException("Reversed " + first + "-" + last); } this.first = first; this.last = last; } public Range(int single) { this.first = single; this.last = single; } public Range(Range firstRange, Range lastRange) { // firstRange shouldn't start later than lastRange starts if (firstRange.first > lastRange.first) { throw new IllegalArgumentException(firstRange + " starts later than " + lastRange); } if (lastRange.first - firstRange.last > 1) { throw new IllegalArgumentException("Disjunct " + firstRange + " - " + lastRange); } this.first = firstRange.first; this.last = lastRange.last; } public boolean contains(final int i) { return first <= i && i <= last; } /** * Checks if this range completely can contain the other range. * @param other other range to verify * @return {@code true} if other completely contained by this, * otherwise {@code false} */ public boolean contains(final Range other) { return (this.first <= other.first) && (other.last <= this.last); } @Override public String toString() { return "[" + Integer.toHexString(first).toUpperCase(Locale.ENGLISH) + "," + Integer.toHexString(last).toUpperCase(Locale.ENGLISH) + ']'; } //@Override public int compareTo(final Range other) { if (this.first < other.first) { return -1; } if (this.first > other.first) { return 1; } if (this.last < other.last) { return -1; } if (this.last > other.last) { return 1; } return 0; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Range range = (Range) o; if (first != range.first) return false; if (last != range.last) return false; return true; } @Override public int hashCode() { return 31 * first + last; } } private static class RangeContainsComparator implements Comparator { public int compare(Range current, Range contained) { if (current.last < contained.first) { return -1; } if (contained.last < current.first) { return 1; } return 0; } } private RangeSet(final List ranges) { this.ranges = ranges.toArray(new Range[ranges.size()]); this.mostSignificantGap = findMostSignificantGap(this.ranges); } /** * Returns the most significant gap, or {@code null} if no important gap found. * @param ranges ranges to search * @return most significant gap, or {@code null} if no important gap found */ private static Range findMostSignificantGap(final Range[] ranges) { if (ranges.length == 0) { return new Range(0, Integer.MAX_VALUE); } final int aIdx = Arrays.binarySearch(ranges, new Range('a'), CONTAINS_COMPARATOR); if (aIdx >= 0) { // 'a' in ranges, don't even attempt to exclude smartly return null; } final int insertionPoint = -(aIdx + 1); if (insertionPoint == 0) { return new Range(0, ranges[0].first - 1); } if (insertionPoint == ranges.length) { return new Range(ranges[ranges.length - 1].last + 1, Integer.MAX_VALUE); } return new Range(ranges[insertionPoint - 1].last + 1, ranges[insertionPoint].first - 1); } public static final class Builder { private final List ranges = new ArrayList(); public Builder addRange(final Range range) { ranges.add(range); return this; } public Builder addRanges(final Collection ranges) { ranges.addAll(ranges); return this; } public Builder addRanges(final char[][] ranges) { for (final char[] range : ranges) { if (range.length == 1) { this.ranges.add(new Range(range[0])); } else if (range.length == 2) { this.ranges.add(new Range(range[0], range[1])); } else { throw new IllegalArgumentException("Unexpected range len:" + range.length); } } return this; } public Builder addRanges(final char[] items) { for (final char item : items) { this.ranges.add(new Range(item)); } return this; } public RangeSet build() { Collections.sort(ranges); final List mergedRanges = mergeRanges(ranges); return new RangeSet(mergedRanges); } static List mergeRanges(final List ranges) { if (ranges.isEmpty()) { return Collections.emptyList(); } final List result = new ArrayList(); final Iterator it = ranges.iterator(); Range leftRange = it.next(); List merged = Collections.singletonList(leftRange); while (it.hasNext()) { // merge ranges as long as they're adjacent/overlapping while (merged.size() == 1 && it.hasNext()) { leftRange = merged.get(0); Range rightRange = it.next(); merged = mergeRanges(leftRange, rightRange); } // when ranges weren't merge-able, add all but last, merge against last if (merged.size() > 1) { result.addAll(merged.subList(0, merged.size() - 1)); merged = Collections.singletonList(merged.get(merged.size() - 1)); } } result.addAll(merged); return result; } static List mergeRanges(Range leftRange, Range rightRange) { if (leftRange.last + 1 >= rightRange.first) { final int last = Math.max(rightRange.last, leftRange.last); return Collections.singletonList(new Range(leftRange.first, last)); } else { final List result = new ArrayList(2); result.add(leftRange); result.add(rightRange); return result; } } } public static Builder builder() { return new Builder(); } public boolean contains(final int i) { if (mostSignificantGap != null && mostSignificantGap.contains(i)) { return false; } final Range searchRange = new Range(i); int idx = Arrays.binarySearch(ranges, searchRange, CONTAINS_COMPARATOR); return idx >= 0; } public boolean containsAnyCodePoint(final CharSequence text) { final Range inputRange = createTextRange(text); return containsAnyCodePoint(text, inputRange); } public boolean containsAnyCodePoint(final CharSequence text, final Range inputRange) { final int len = text.length(); if (len == 0) { return false; } if (mostSignificantGap != null && mostSignificantGap.contains(inputRange.first) && mostSignificantGap.contains(inputRange.last)) { return false; } // if found, returns the index, otherwise "-insertionPoint - 1" final int idxEnd = Arrays.binarySearch(ranges, new Range(inputRange.last), CONTAINS_COMPARATOR); // search for start in "head" range only (likely small) final int startFromIdx = 0; final int startEndIdx = idxEnd >= 0 ? idxEnd + 1 : -(idxEnd + 1); final int idxStart = Arrays.binarySearch(ranges, startFromIdx, startEndIdx, new Range(inputRange.first), CONTAINS_COMPARATOR); // If whole range in text outside same non-contained range, won't be found // If whole range in text inside single contained range, must match if (idxStart == idxEnd) { return idxStart >= 0; } // if start or end inside contained range, match if (idxStart >= 0 || idxEnd >= 0) { return true; } // text spans across multiple ranges of set, need to search individual chars final int searchStart = -idxStart + 1; final int searchEnd = -idxEnd + 1; for (int i = 0; i < len; ) { final int cp = Character.codePointAt(text, i); i += Character.charCount(cp); final int idx = Arrays.binarySearch(ranges, searchStart, searchEnd, new Range(cp), CONTAINS_COMPARATOR); if (idx > 0) { return true; } } return false; } /** * Returns the range of the input or {@code all-inclusive range} if input is empty * @param text input text * @return range of input, or {@code all-inclusive} if empty input */ public static Range createTextRange(final CharSequence text) { final int len = text.length(); if (len == 0) { return new Range(Integer.MIN_VALUE, Integer.MAX_VALUE); } int minCodePoint = Integer.MAX_VALUE; int maxCodePoint = Integer.MIN_VALUE; for (int i = 0; i < len; ) { final int cp = Character.codePointAt(text, i); minCodePoint = Math.min(minCodePoint, cp); maxCodePoint = Math.max(maxCodePoint, cp); i += Character.charCount(cp); } return new Range(minCodePoint, maxCodePoint); } @Override public String toString() { return "RangeSet{" + "ranges=" + Arrays.asList(ranges) + ", mostSignificantGap=" + mostSignificantGap + '}'; } } libidn-1.38/java/src/main/java/gnu/inet/encoding/NFKC.java0000644000000000000000000002026314076271517020071 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * This class offers static methods for Unicode NFKC string normalization. */ public class NFKC { /** * Applies NFKC normalization to a string. * * @param in The string to normalize. * @return An NFKC normalized string. */ public static String normalizeNFKC(String in) { int len = in.length(); StringBuilder out = new StringBuilder(len); for (int i = 0; i < len; i++) { char code = in.charAt(i); // In Unicode 3.0, Hangul was defined as the block from U+AC00 // to U+D7A3, however, since Unicode 3.2 the block extends until // U+D7AF. The decomposeHangul function only decomposes until // U+D7A3. Should this be changed? if (code >= 0xAC00 && code <= 0xD7AF) { out.append(decomposeHangul(code)); } else { int index = decomposeIndex(code); if (index == -1) { out.append(code); } else { out.append(DecompositionMappings.m[index]); } } } // Bring the StringBuilder into canonical order. canonicalOrdering(out); // Do the canonical composition. int last_cc = 0; int last_start = 0; for (int i = 0; i < out.length(); i++) { int cc = combiningClass(out.charAt(i)); if (i > 0 && (last_cc == 0 || last_cc != cc)) { // Try to combine characters char a = out.charAt(last_start); char b = out.charAt(i); int c = compose(a, b); if (c != -1) { out.setCharAt(last_start, (char) c); out.deleteCharAt(i); i--; if (i == last_start) { last_cc = 0; } else { last_cc = combiningClass(out.charAt(i-1)); } continue; } } if (cc == 0) { last_start = i; } last_cc = cc; } return out.toString(); } /** * Returns the index inside the decomposition table, implemented * using a binary search. * * @param c Character to look up. * @return Index if found, -1 otherwise. */ static int decomposeIndex(char c) { int start = 0; int end = DecompositionKeys.k.length/2; while (true) { int half = (start + end) / 2; int code = DecompositionKeys.k[half*2]; if (c == code) { return DecompositionKeys.k[half*2 + 1]; } if (half == start) { // Character not found return -1; } else if (c > code) { start = half; } else { end = half; } } } /** * Returns the combining class of a given character. * * @param c The character. * @return The combining class. */ static int combiningClass(char c) { int h = c >> 8; int l = c & 0xff; int i = CombiningClass.i[h]; if (i > -1) { return CombiningClass.c[i][l]; } else { return 0; } } /** * Rearranges characters in a StringBuilder in order to respect the * canonical ordering properties. * * @param in The StringBuilder to rearrange. */ static void canonicalOrdering(StringBuilder in) { if (in.length() == 0) { return; } boolean isOrdered = false; while (!isOrdered) { isOrdered = true; int lastCC = combiningClass(in.charAt(0)); for (int i = 0; i < in.length()-1; i++) { int nextCC = combiningClass(in.charAt(i+1)); if (nextCC != 0 && lastCC > nextCC) { for (int j = i+1; j > 0; j--) { if (combiningClass(in.charAt(j-1)) <= nextCC) { break; } char t = in.charAt(j); in.setCharAt(j, in.charAt(j-1)); in.setCharAt(j-1, t); isOrdered = false; } nextCC = lastCC; } lastCC = nextCC; } } } /** * Returns the index inside the composition table. * * @param a Character to look up. * @return Index if found, -1 otherwise. */ static int composeIndex(char a) { if (a>>8 >= Composition.composePage.length) { return -1; } int ap = Composition.composePage[a>>8]; if (ap == -1) { return -1; } return Composition.composeData[ap][a & 0xff]; } /** * Tries to compose two characters canonically. * * @param a First character. * @param b Second character. * @return The composed character or -1 if no composition could be * found. */ static int compose(char a, char b) { int h = composeHangul(a, b); if (h != -1) { return h; } int ai = composeIndex(a); if (ai >= Composition.singleFirstStart && ai < Composition.singleSecondStart) { if (b == Composition.singleFirst[ai - Composition.singleFirstStart][0]) { return Composition.singleFirst[ai - Composition.singleFirstStart][1]; } else { return -1; } } int bi = composeIndex(b); if (bi >= Composition.singleSecondStart) { if (a == Composition.singleSecond[bi - Composition.singleSecondStart][0]) { return Composition.singleSecond[bi - Composition.singleSecondStart][1]; } else { return -1; } } if (ai >= 0 && ai < Composition.multiSecondStart && bi >= Composition.multiSecondStart && bi < Composition.singleFirstStart) { char[] f = Composition.multiFirst[ai]; if (bi - Composition.multiSecondStart < f.length) { char r = f[bi - Composition.multiSecondStart]; if (r == 0) { return -1; } else { return r; } } } return -1; } /** * Entire hangul code copied from: * http://www.unicode.org/unicode/reports/tr15/ * * Several hangul specific constants */ static final int SBase = 0xAC00; static final int LBase = 0x1100; static final int VBase = 0x1161; static final int TBase = 0x11A7; static final int LCount = 19; static final int VCount = 21; static final int TCount = 28; static final int NCount = VCount * TCount; static final int SCount = LCount * NCount; /** * Decomposes a hangul character. * * @param s A character to decompose. * @return A string containing the hangul decomposition of the input * character. If no hangul decomposition can be found, a string * containing the character itself is returned. */ static String decomposeHangul(char s) { int SIndex = s - SBase; if (SIndex < 0 || SIndex >= SCount) { return String.valueOf(s); } StringBuilder result = new StringBuilder(); int L = LBase + SIndex / NCount; int V = VBase + (SIndex % NCount) / TCount; int T = TBase + SIndex % TCount; result.append((char)L); result.append((char)V); if (T != TBase) result.append((char)T); return result.toString(); } /** * Composes two hangul characters. * * @param a First character. * @param b Second character. * @return Returns the composed character or -1 if the two * characters cannot be composed. */ static int composeHangul(char a, char b) { // 1. check to see if two current characters are L and V int LIndex = a - LBase; if (0 <= LIndex && LIndex < LCount) { int VIndex = b - VBase; if (0 <= VIndex && VIndex < VCount) { // make syllable of form LV return SBase + (LIndex * VCount + VIndex) * TCount; } } // 2. check to see if two current characters are LV and T int SIndex = a - SBase; if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0) { int TIndex = b - TBase; if (0 <= TIndex && TIndex <= TCount) { // make syllable of form LVT return a+TIndex; } } return -1; } } libidn-1.38/java/src/main/java/gnu/inet/encoding/IDNAException.java0000644000000000000000000000317114076271517021741 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * Exception handling for IDNA class. */ public class IDNAException extends Exception { public static String CONTAINS_NON_LDH = "Contains non-LDH characters."; public static String CONTAINS_HYPHEN = "Leading or trailing hyphen not allowed."; public static String CONTAINS_ACE_PREFIX = "ACE prefix (xn--) not allowed."; public static String TOO_LONG = "String too long."; public IDNAException(String m) { super(m); } public IDNAException(StringprepException e) { super(e); } public IDNAException(PunycodeException e) { super(e); } } libidn-1.38/java/src/main/java/gnu/inet/encoding/Punycode.java0000644000000000000000000001357114076271517021142 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * This class offers static methods for encoding/decoding strings * using the Punycode algorithm. *
    *
  • RFC3492 Punycode *
* Note that this implementation only supports 16-bit Unicode code * points. */ public class Punycode { /* Punycode parameters */ final static int TMIN = 1; final static int TMAX = 26; final static int BASE = 36; final static int INITIAL_N = 128; final static int INITIAL_BIAS = 72; final static int DAMP = 700; final static int SKEW = 38; final static char DELIMITER = '-'; /** * Punycodes a unicode string. * * @param input Unicode string. * @return Punycoded string. */ public static String encode(String input) throws PunycodeException { int n = INITIAL_N; int delta = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); // Copy all basic code points to the output int b = 0; for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (isBasic(c)) { output.append(c); b++; } } // Append delimiter if (b > 0) { output.append(DELIMITER); } int h = b; while (h < input.length()) { int m = Integer.MAX_VALUE; // Find the minimum code point >= n for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c >= n && c < m) { m = c; } } if (m - n > (Integer.MAX_VALUE - delta) / (h + 1)) { throw new PunycodeException(PunycodeException.OVERFLOW); } delta = delta + (m - n) * (h + 1); n = m; for (int j = 0; j < input.length(); j++) { int c = input.charAt(j); if (c < n) { delta++; if (0 == delta) { throw new PunycodeException(PunycodeException.OVERFLOW); } } if (c == n) { int q = delta; for (int k = BASE;; k += BASE) { int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (q < t) { break; } output.append((char) digit2codepoint(t + (q - t) % (BASE - t))); q = (q - t) / (BASE - t); } output.append((char) digit2codepoint(q)); bias = adapt(delta, h + 1, h == b); delta = 0; h++; } } delta++; n++; } return output.toString(); } /** * Decode a punycoded string. * * @param input Punycode string * @return Unicode string. */ public static String decode(String input) throws PunycodeException { int n = INITIAL_N; int i = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); int d = input.lastIndexOf(DELIMITER); if (d > 0) { for (int j = 0; j < d; j++) { char c = input.charAt(j); if (!isBasic(c)) { throw new PunycodeException(PunycodeException.BAD_INPUT); } output.append(c); } d++; } else { d = 0; } while (d < input.length()) { int oldi = i; int w = 1; for (int k = BASE; ; k += BASE) { if (d == input.length()) { throw new PunycodeException(PunycodeException.BAD_INPUT); } int c = input.charAt(d++); int digit = codepoint2digit(c); if (digit > (Integer.MAX_VALUE - i) / w) { throw new PunycodeException(PunycodeException.OVERFLOW); } i = i + digit * w; int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (digit < t) { break; } w = w * (BASE - t); } bias = adapt(i - oldi, output.length()+1, oldi == 0); if (i / (output.length() + 1) > Integer.MAX_VALUE - n) { throw new PunycodeException(PunycodeException.OVERFLOW); } n = n + i / (output.length() + 1); i = i % (output.length() + 1); output.insert(i, (char) n); i++; } return output.toString(); } public final static int adapt(int delta, int numpoints, boolean first) { if (first) { delta = delta / DAMP; } else { delta = delta / 2; } delta = delta + (delta / numpoints); int k = 0; while (delta > ((BASE - TMIN) * TMAX) / 2) { delta = delta / (BASE - TMIN); k = k + BASE; } return k + ((BASE - TMIN + 1) * delta) / (delta + SKEW); } public final static boolean isBasic(char c) { return c < 0x80; } public final static int digit2codepoint(int d) throws PunycodeException { if (d < 26) { // 0..25 : 'a'..'z' return d + 'a'; } else if (d < 36) { // 26..35 : '0'..'9'; return d - 26 + '0'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } public final static int codepoint2digit(int c) throws PunycodeException { if (c - '0' < 10) { // '0'..'9' : 26..35 return c - '0' + 26; } else if (c - 'a' < 26) { // 'a'..'z' : 0..25 return c - 'a'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } } libidn-1.38/java/src/main/java/gnu/inet/encoding/Makefile.am0000644000000000000000000000216514076271517020542 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . JAVAROOT = $(top_builddir)/java/src/main/java if JAVA dist_noinst_JAVA = \ CombiningClass.java \ Composition.java \ DecompositionKeys.java \ DecompositionMappings.java \ IDNA.java \ IDNAException.java \ NFKC.java \ Punycode.java \ PunycodeException.java \ RangeSet.java \ RFC3454.java \ Stringprep.java \ StringprepException.java endif libidn-1.38/java/src/main/java/gnu/inet/encoding/CombiningClass.java0000644000000000000000000004512414053001337022230 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class CombiningClass { public final static int[][] c = new int[][] { { /* Page 3 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 14 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 23 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 48 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 254 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, }; public final static int[] i = new int[] { -1, -1, -1, 0, 1, 2, 3, 4, -1, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, 18, -1, }; } libidn-1.38/java/src/main/java/gnu/Makefile.in0000644000000000000000000016243514076273732016036 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java/gnu ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = inet all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/gnu/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/gnu/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/main/java/gnu/Makefile.am0000644000000000000000000000142514076271517016013 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = inet libidn-1.38/java/src/main/java/Makefile.am0000644000000000000000000000171614076271517015225 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = gnu . INSTALL_TARGETS = if JAVA # Invoked by ../doc/java/Makefile. .PHONY: javadoc javadoc: cd $(srcdir) && \ $(JAVADOC) -d $(top_builddir)/doc/java/html gnu/inet/encoding/*.java endif libidn-1.38/java/src/main/Makefile.am0000644000000000000000000000142514076271517014301 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = java libidn-1.38/java/src/util/0000755000000000000000000000000014076274122012347 500000000000000libidn-1.38/java/src/util/Makefile.in0000644000000000000000000016240214076273733014350 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/util ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = java all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/util/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/util/java/0000755000000000000000000000000014076274122013270 500000000000000libidn-1.38/java/src/util/java/TestIDNA.java0000644000000000000000000001037714076271517015443 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import gnu.inet.encoding.IDNA; import gnu.inet.encoding.IDNAException; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.StringTokenizer; public class TestIDNA { final static int STATE_SCAN = 0; final static int STATE_INPUT = 1; public static void usage() { System.err.println("Usage: "+TestIDNA.class.toString()+" [-a|-u string] [-t]"); System.err.println(" -a string: apply toASCII(string)"); System.err.println(" -u string: apply toUnicode(string)"); System.err.println(" -t: automatic test using draft-josefsson-idn-test-vectors.html"); System.exit(1); } public static void main(String[] args) throws Exception { String[] tests = new String[] { "domain\u3002invalid", "domain\uFF0Einvalid", "domain\uFF61invalid", }; for ( int i = 0; i < tests.length ; i++ ) { if (!IDNA.toASCII( tests[i] ).equals( "domain.invalid" )) { System.err.println("Dot-test failed"); System.exit(1); } } if (args.length == 2) { if (args[0].equals("-u")) { System.out.println("Input: "+args[1]); System.out.println("Output: "+IDNA.toUnicode(args[1])); } else if (args[0].equals("-a")) { try { System.out.println("Input: "+args[1]); System.out.println("Output: "+IDNA.toASCII(args[1])); } catch (IDNAException e) { System.out.println(e); } } else { usage(); } } else if (args.length == 1 && args[0].equals("-t")) { File f = new File("draft-josefsson-idn-test-vectors.html"); if (!f.exists()) { System.err.println("Unable to find draft-josefsson-idn-test-vectors.html."); System.err.println("Please download the latest version of this file from:"); System.err.println("http://www.gnu.org/software/libidn/"); System.exit(1); } BufferedReader r = new BufferedReader(new FileReader(f)); int state = STATE_SCAN; StringBuilder input = new StringBuilder(); String out; while (true) { String l = r.readLine(); if (null == l) { break; } switch (state) { case STATE_SCAN: if (l.startsWith("input (length ")) { state = STATE_INPUT; input = new StringBuilder(); } break; case STATE_INPUT: if (l.equals("")) { // Empty line (before "out:") } else if (l.startsWith("out: ")) { out = l.substring(5).trim(); try { String ascii = IDNA.toASCII(input.toString()); if (ascii.equals(out)) { // Ok } else { System.err.println("Error detected:"); System.err.println(" Input: "+input); System.err.println(" toASCII returned: "+ascii); System.err.println(" expected result: "+out); System.exit(1); } } catch (IDNAException e) { System.out.println(" exception thrown ("+e+")"); } state = STATE_SCAN; } else { StringTokenizer tok = new StringTokenizer(l.trim(), " "); while (tok.hasMoreTokens()) { String t = tok.nextToken(); if (t.startsWith("U+")) { char u = (char) Integer.parseInt(t.substring(2, 6), 16); input.append(u); } else { System.err.println("Unknown token: "+t); } } } break; } } System.out.println("No errors detected!"); } else { usage(); } } } libidn-1.38/java/src/util/java/Makefile.in0000644000000000000000000015007314076273733015272 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/util/java ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_noinst_JAVA_DIST) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_noinst_JAVA_DIST = GenerateRFC3454.java GenerateNFKC.java \ TestIDNA.java TestNFKC.java CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} am__java_sources = $(dist_noinst_JAVA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ JAVAROOT = $(top_builddir)/java/src/util/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/src/main/java @JAVA_TRUE@dist_noinst_JAVA = \ @JAVA_TRUE@ GenerateRFC3454.java \ @JAVA_TRUE@ GenerateNFKC.java \ @JAVA_TRUE@ TestIDNA.java \ @JAVA_TRUE@ TestNFKC.java all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/util/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/util/java/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs classnoinst.stamp: $(am__java_sources) @list1='$?'; list2=; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ list2="$$list2 $$d$$p"; \ done; \ echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $$list2; \ else :; fi echo timestamp > $@ clean-noinstJAVA: -rm -f *.class classnoinst.stamp tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile classnoinst.stamp installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstJAVA mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-noinstJAVA cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/util/java/GenerateRFC3454.java0000644000000000000000000001711014076271517016465 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.StringTokenizer; public class GenerateRFC3454 { static class Range { int t, f; public Range(String r) { if (r.length() == 9) { f = Integer.parseInt(r.substring(0, 4), 16); t = Integer.parseInt(r.substring(5, 9), 16); } else { f = Integer.parseInt(r.substring(0, 5), 16); t = Integer.parseInt(r.substring(6, 11), 16); } } public boolean hasNext() { return (f <= t); } public String next() { StringBuilder s = new StringBuilder(Integer.toHexString(f)); while (s.length() < 4) { s.insert(0, '0'); } f++; return s.toString(); } } public static void main(String[] arg) throws Exception { File f = new File("rfc3454.txt"); if (!f.exists()) { System.err.println("Unable to find rfc3454.txt."); System.err.println("Please download this file from:"); System.err.println("http://www.ietf.org/rfc/rfc3454.txt"); System.exit(1); } System.out.print("Creating RFC3454.java..."); BufferedReader r = new BufferedReader(new FileReader(f)); PrintWriter w = new PrintWriter(new FileWriter("RFC3454.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateRFC3454.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing StringPrep mapping tables."); w.println(" */"); w.println("public class RFC3454"); w.println("{"); int n = 0; String t = null; StringBuilder o1 = null; StringBuilder o2 = null; while (true) { String l = r.readLine(); if (null == l) { break; } l = l.trim(); if (l.equals("")) { // Ignore empty line } else if (-1 != l.indexOf("\u000c")) { // Ignore FF } else if (0 == l.indexOf("RFC")) { // Ignore page header } else if (0 == l.indexOf("Hoffman & Blanchet")) { // Ignore page footer } else if (-1 != l.indexOf("----- Start Table ")) { // Start of a table t = l.substring(l.indexOf("Table")+6, l.lastIndexOf("-----")-1); o1 = new StringBuilder(); o2 = new StringBuilder(); } else if (-1 != l.indexOf("----- End Table ")) { // End of a table if ("A.1".equals(t)) { w.println(" final static char[][] A1 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("B.1".equals(t)) { w.println(" final static char[] B1 = new char[] {\n"+o1.toString()+" };\n"); } else if ("B.2".equals(t)) { w.println(" final static char[] B2search = new char[] {\n"+o1.toString()+" };\n"); w.println(" final static String[] B2replace = new String[] {\n"+o2.toString()+" };\n"); } else if ("B.3".equals(t)) { w.println(" final static char[] B3search = new char[] {\n"+o1.toString()+" };\n"); w.println(" final static String[] B3replace = new String[] {\n"+o2.toString()+" };\n"); } else if ("C.1.1".equals(t)) { w.println(" final static char[] C11 = new char[] {\n"+o1.toString()+" };\n"); } else if ("C.1.2".equals(t)) { w.println(" final static char[] C12 = new char[] {\n"+o1.toString()+" };\n"); } else if ("C.2.1".equals(t)) { w.println(" final static char[][] C21 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.2.2".equals(t)) { w.println(" final static char[][] C22 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.3".equals(t)) { w.println(" final static char[][] C3 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.4".equals(t)) { w.println(" final static char[][] C4 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.5".equals(t)) { w.println(" final static char[][] C5 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.6".equals(t)) { w.println(" final static char[][] C6 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.7".equals(t)) { w.println(" final static char[][] C7 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.8".equals(t)) { w.println(" final static char[][] C8 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("D.1".equals(t)) { w.println(" final static char[][] D1 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("D.2".equals(t)) { w.println(" final static char[][] D2 = new char[][] {\n"+o1.toString()+" };\n"); } t = null; } else if (null != t) { // Filter comments if (-1 != l.lastIndexOf(";")) { String c = l.substring(l.lastIndexOf(";")).trim(); try { Integer.parseInt(c, 16); } catch (NumberFormatException e) { l = l.substring(0, l.lastIndexOf(";")); } } if ("A.1".equals(t)) { if (4 == l.length()) { o1.append(" new char[] { '\\u"); o1.append(l); o1.append("' },\n"); } else if (5 == l.length()) { // Skip characters outside the range of Java unicode } else if (9 == l.length()) { o1.append(" new char[] { '\\u"); o1.append(l.substring(0, 4)); o1.append("', '\\u"); o1.append(l.substring(5, 9)); o1.append("' },\n"); } else if (11 == l.length()) { // Skip characters outside the range of Java unicode } else { System.err.println("Unknown format of A.1 line: "+l); } } else if ("B.1".equals(t)) { StringTokenizer tok = new StringTokenizer(l, " ;"); o1.append(" '\\u"+tok.nextToken()+"',\n"); } else if ("B.2".equals(t) || "B.3".equals(t)) { StringTokenizer tok = new StringTokenizer(l, "; "); String c = tok.nextToken(); if (c.length() == 4) { o1.append(" '\\u"+c+"',\n"); if (tok.hasMoreElements()) { o2.append(" \""); while (tok.hasMoreElements()) { o2.append("\\u"+tok.nextToken()); } o2.append("\",\n"); } else { o2.append(" null,\n"); } } } else if ("C.1.1".equals(t)) { o1.append(" '\\u"+l+"',\n"); } else if ("C.1.2".equals(t)) { o1.append(" '\\u"+l+"',\n"); } else if ("C.2.1".equals(t) || "C.2.2".equals(t) || "C.3".equals(t) || "C.4".equals(t) || "C.5".equals(t) || "C.6".equals(t) || "C.7".equals(t) || "C.8".equals(t) || "D.1".equals(t) || "D.2".equals(t)) { if (4 == l.length()) { o1.append(" new char[] { '\\u"+l+"' },\n"); } else if (9 == l.length()) { o1.append(" new char[] { '\\u"); o1.append(l.substring(0, 4)); o1.append("', '\\u"); o1.append(l.substring(5, 9)); o1.append("' },\n"); } } } n++; } w.println("}"); w.close(); System.out.println(" Ok."); } } libidn-1.38/java/src/util/java/GenerateNFKC.java0000644000000000000000000004025114076271517016256 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.TreeMap; import java.util.TreeSet; import java.util.Iterator; public class GenerateNFKC { static String stripComment(String in) { int c = in.indexOf('#'); if (c == -1) { return in; } else { return in.substring(0, c); } } static String[] split(String in, char sep) { StringBuilder sb = new StringBuilder(in); int c = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { c++; } } String out[] = new String[c+1]; c = 0; int l = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { if (l >= i) { out[c] = ""; } else { out[c] = sb.substring(l, i); } l = i+1; c++; } } if (l < sb.length()) { out[c] = sb.substring(l); } return out; } static boolean isCompatibilityMapping(String in) { return in.length() > 0 && in.charAt(0) == '<'; } static String stripCompatibilityTag(String in) { return in.substring(in.indexOf('>')+2); } static String toJavaString(String in) { StringBuilder out = new StringBuilder(); String[] chars = split(in, ' '); for (int i = 0; i < chars.length; i++) { if (chars[i].equals("005C")) { out.append("\\\\"); } else if (chars[i].equals("0022")) { out.append("\\\""); } else { out.append("\\u"); out.append(chars[i]); } } return out.toString(); } static String decompose(String in, TreeMap mappings) { StringBuilder out = new StringBuilder(""); String[] c = split(in, ' '); for (int i = 0; i < c.length; i++) { if (mappings.containsKey(c[i])) { if (out.length() > 0) { out.append(" "); } out.append(decompose((String) mappings.get(c[i]), mappings)); } else { if (out.length() > 0) { out.append(" "); } out.append(c[i]); } } return out.toString(); } public static void main(String[] arg) throws Exception { // Check if the unicode files exist { File f1 = new File("CompositionExclusions.txt"); File f2 = new File("UnicodeData.txt"); if (!f1.exists() || !f2.exists()) { System.err.println("Unable to find UnicodeData.txt or CompositionExclusions.txt."); System.err.println("Please download the latest version of these file from:"); System.err.println("http://www.unicode.org/Public/UNIDATA/"); System.exit(1); } } // Read CompositionExclusions TreeSet exclusions = new TreeSet(); { BufferedReader r = new BufferedReader(new FileReader("CompositionExclusions.txt")); String line; while (null != (line = r.readLine())) { line = stripComment(line); line = line.trim(); if (line.length() == 0) { // Empty line } else if (line.length() == 4) { exclusions.add(line); } else { // Skip code points > 0xffff } } r.close(); } // Read UnicodeData TreeMap canonical = new TreeMap(); TreeMap compatibility = new TreeMap(); TreeMap combiningClasses = new TreeMap(); { BufferedReader r = new BufferedReader(new FileReader("UnicodeData.txt")); String line; while (null != (line = r.readLine())) { line = stripComment(line); line = line.trim(); if (line.length() == 0) { // Empty line } else { String[] f = split(line, ';'); if (f[0].length() == 4) { if (!f[5].equals("")) { if (isCompatibilityMapping(f[5])) { compatibility.put(f[0], stripCompatibilityTag(f[5])); } else { compatibility.put(f[0], f[5]); if (!exclusions.contains(f[0])) { canonical.put(f[0], f[5]); } } } if (!f[3].equals("0")) { combiningClasses.put(new Integer(Integer.parseInt(f[0], 16)), f[3]); } } else { // Skip code points > 0xffff } } } r.close(); } // Recursively apply compatibility mappings while (true) { boolean replaced = false; Iterator i = compatibility.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) compatibility.get(k); String d = decompose(v, compatibility); if (!d.equals(v)) { replaced = true; compatibility.put(k, d); } } if (!replaced) { break; } } // Eliminate duplicate mappings TreeMap compatibilityKeys = new TreeMap(); ArrayList compatibilityMappings = new ArrayList(); { Iterator i = compatibility.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) compatibility.get(k); int index = compatibilityMappings.indexOf(v); if (index == -1) { index = compatibilityMappings.size(); compatibilityMappings.add(v); } compatibilityKeys.put(k, new Integer(index)); } } // Create composition tables TreeMap firstMap = new TreeMap(); TreeMap secondMap = new TreeMap(); { Iterator i = canonical.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) canonical.get(k); String[] s = split(v, ' '); if (s.length == 2) { // If both characters have the same combining class, they // won't be combined (in the sequence AB, B is blocked from // A if both have the same combining class) String cc1 = (String) combiningClasses.get(new Integer(Integer.parseInt(s[0], 16))); String cc2 = (String) combiningClasses.get(new Integer(Integer.parseInt(s[1], 16))); if (cc1 != null || (cc1 != null && cc1.equals(cc2))) { // Ignore this composition i.remove(); continue; } if (firstMap.containsKey(s[0])) { Integer c = (Integer) firstMap.get(s[0]); firstMap.put(s[0], new Integer(c.intValue()+1)); } else { firstMap.put(s[0], new Integer(1)); } if (secondMap.containsKey(s[1])) { Integer c = (Integer) secondMap.get(s[1]); secondMap.put(s[1], new Integer(c.intValue()+1)); } else { secondMap.put(s[1], new Integer(1)); } } else if (s.length > 2) { System.err.println("? wrong canonical mapping for "+k); System.exit(1); } } } TreeMap singleFirstComposition = new TreeMap(); TreeMap singleSecondComposition = new TreeMap(); TreeMap complexComposition = new TreeMap(); int composeLookupMax = 0; { Iterator i = canonical.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) canonical.get(k); String[] s = split(v, ' '); if (s.length == 2) { Integer first = (Integer) firstMap.get(s[0]); Integer second = (Integer) secondMap.get(s[1]); if (first.intValue() == 1) { singleFirstComposition.put(s[0], new String[] { s[1], k }); composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[0], 16)); } else if (second.intValue() == 1) { singleSecondComposition.put(s[1], new String[] { s[0], k }); composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[1], 16)); } else { if (complexComposition.containsKey(s[0])) { TreeMap m = (TreeMap) complexComposition.get(s[0]); if (m.containsKey(s[1])) { System.err.println("? ambiguous canonical mapping for "+s[0]); System.exit(1); } m.put(s[1], k); } else { TreeMap m = new TreeMap(); m.put(s[1], k); complexComposition.put(s[0], m); } composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[0], 16)); composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[1], 16)); } } } } System.out.print("Creating CombiningClass.java..."); // Dump combining classes { PrintWriter w = new PrintWriter(new FileWriter("CombiningClass.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class CombiningClass"); w.println("{"); w.println(" public final static int[][] c = new int[][] {"); StringBuilder index = new StringBuilder(); int count = 0; for (int i = 0; i < 256; i++) { boolean empty = true; StringBuilder page = new StringBuilder(); page.append(" { /* Page "+i+" */"); for (int j = 0; j < 256; j++) { Integer c = new Integer((i << 8) + j); String cc = (String) combiningClasses.get(c); if (0 == (j & 31)) { page.append("\n "); } if (cc == null) { page.append("0, "); } else { page.append(cc+", "); empty = false; } } page.append("\n },"); index.append(" "); if (!empty) { w.println(page.toString()); index.append(count++); index.append(",\n"); } else { index.append("-1,\n"); } } w.println(" };\n"); w.println(" public final static int[] i = new int[] {"); w.print(index.toString()); w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); System.out.print("Creating DecompositionKeys.java..."); // Dump compatibility decomposition { PrintWriter w = new PrintWriter(new FileWriter("DecompositionKeys.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class DecompositionKeys"); w.println("{"); w.println(" public final static int[] k = new int[] {"); Iterator i = compatibilityKeys.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); int index = ((Integer) compatibilityKeys.get(k)).intValue(); w.println(" '\\u"+k+"', "+index+","); } w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); System.out.print("Creating DecompositionMappings.java..."); { PrintWriter w = new PrintWriter(new FileWriter("DecompositionMappings.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class DecompositionMappings"); w.println("{"); w.println(" public final static String[] m = new String[] {"); Iterator i = compatibilityMappings.iterator(); while (i.hasNext()) { String m = (String) i.next(); w.println(" \""+toJavaString(m)+"\","); } w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); System.out.print("Creating Composition.java..."); // Dump canonical composition { PrintWriter w = new PrintWriter(new FileWriter("Composition.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class Composition"); w.println("{"); Iterator i; int index = 0; TreeMap indices = new TreeMap(); i = complexComposition.keySet().iterator(); while (i.hasNext()) { String s0 = (String) i.next(); indices.put(new Integer(Integer.parseInt(s0, 16)), new Integer(index)); index++; } int multiSecondStart = index; w.println(" public final static char[][] multiFirst = new char[][] {"); i = complexComposition.keySet().iterator(); while (i.hasNext()) { String s0 = (String) i.next(); TreeMap m = (TreeMap) complexComposition.get(s0); TreeMap line = new TreeMap(); int maxIndex = 1; Iterator i2 = m.keySet().iterator(); while (i2.hasNext()) { String s1 = (String) i2.next(); String k = (String) m.get(s1); Integer s1i = new Integer(Integer.parseInt(s1, 16)); if (!indices.containsKey(s1i)) { indices.put(s1i, new Integer(index)); index++; } line.put(indices.get(s1i), k); maxIndex = Math.max(maxIndex, ((Integer) indices.get(s1i)).intValue()); } w.print(" { "); for (int j = multiSecondStart; j <= maxIndex; j++) { if (line.containsKey(new Integer(j))) { String s = (String) line.get(new Integer(j)); w.print("'"+toJavaString(s)+"', "); } else { w.print(" 0, "); } } w.println("},"); } w.println(" };"); int singleFirstStart = index; w.println(" public final static char[][] singleFirst = new char[][] {"); i = singleFirstComposition.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String[] v = ((String[]) singleFirstComposition.get(k)); w.println(" { '"+toJavaString(v[0])+"', '"+toJavaString(v[1])+"' },"); if (indices.containsKey(new Integer(Integer.parseInt(k, 16)))) { System.out.println(k+" already indexed!"); } indices.put(new Integer(Integer.parseInt(k, 16)), new Integer(index)); index++; } w.println(" };"); int singleSecondStart = index; w.println(" public final static char[][] singleSecond = new char[][] {"); i = singleSecondComposition.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String[] v = ((String[]) singleSecondComposition.get(k)); w.println(" { '"+toJavaString(v[0])+"', '"+toJavaString(v[1])+"' },"); indices.put(new Integer(Integer.parseInt(k, 16)), new Integer(index)); index++; } w.println(" };"); w.println(" public final static int multiSecondStart = "+multiSecondStart+";"); w.println(" public final static int singleFirstStart = "+singleFirstStart+";"); w.println(" public final static int singleSecondStart = "+singleSecondStart+";"); StringBuilder compositionPages = new StringBuilder(); w.println(" public final static int[] composePage = new int[] {"); int pageCount = 0; for (int j = 0; j*256 < composeLookupMax+255; j++) { boolean empty = true; StringBuilder page = new StringBuilder(); for (int k = 0; k < 256; k++) { if (k % 16 == 0) { page.append("\n "); } if (indices.containsKey(new Integer(j*256+k))) { page.append(indices.get(new Integer(j*256+k))); page.append(", "); empty = false; } else { page.append("-1, "); } } if (empty) { w.println(" -1,"); } else { w.println(" "+pageCount+","); compositionPages.append(" {"); compositionPages.append(page); compositionPages.append("\n },\n"); pageCount++; } } w.println(" };"); w.println(" public final static int[][] composeData = new int[][] {"); w.print(compositionPages); w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); } } libidn-1.38/java/src/util/java/Makefile.am0000644000000000000000000000176214076271517015257 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 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, see . JAVAROOT = $(top_builddir)/java/src/util/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/src/main/java if JAVA dist_noinst_JAVA = \ GenerateRFC3454.java \ GenerateNFKC.java \ TestIDNA.java \ TestNFKC.java endif libidn-1.38/java/src/util/java/TestNFKC.java0000644000000000000000000001124014076271517015437 00000000000000/* Copyright (C) 2004-2021 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import gnu.inet.encoding.NFKC; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class TestNFKC { static String stripComment(String in) { int c = in.indexOf('#'); if (c == -1) { return in; } else { return in.substring(0, c); } } static String[] split(String in, char sep) { StringBuilder sb = new StringBuilder(in); int c = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { c++; } } String out[] = new String[c+1]; c = 0; int l = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { if (l >= i) { out[c] = ""; } else { out[c] = sb.substring(l, i); } l = i+1; c++; } } if (l < sb.length()) { out[c] = sb.substring(l); } return out; } static boolean containsHighChar(String in) { String[] s = split(in, ' '); for (int i = 0; i < s.length; i++) { if (s[i].length() != 4) { return true; } } return false; } static String evalUnicode(String in) { StringBuilder out = new StringBuilder(); String[] s = split(in, ' '); for (int i = 0; i < s.length; i++) { out.append((char) Integer.parseInt(s[i], 16)); } return out.toString(); } static String toUnicode(String in) { StringBuilder out = new StringBuilder(); for (int i = 0; i < in.length(); i++) { int c = in.charAt(i); out.append(Integer.toHexString(c)); out.append(" "); } return out.toString(); } public static void main(String[] args) throws Exception { if (args.length > 0) { System.out.println("Input: "+args[0]); System.out.println("Output: "+NFKC.normalizeNFKC(args[0])); } else { // Check if the normalization test file exists File f = new File("NormalizationTest.txt"); if (!f.exists()) { System.err.println("Unable to find NormalizationTest.txt."); System.err.println("Please download the latest version of this file from:"); System.err.println("http://www.unicode.org/Public/UNIDATA/"); System.exit(1); } BufferedReader r = new BufferedReader(new FileReader(f)); String line; while (null != (line = r.readLine())) { line = stripComment(line); line = line.trim(); if (line.length() == 0) { // Empty line } else { String[] cols = split(line, ';'); if (!containsHighChar(cols[0]) && !containsHighChar(cols[1]) && !containsHighChar(cols[2]) && !containsHighChar(cols[3]) && !containsHighChar(cols[4])) { String c1 = evalUnicode(cols[0]); String c2 = evalUnicode(cols[1]); String c3 = evalUnicode(cols[2]); String c4 = evalUnicode(cols[3]); String c5 = evalUnicode(cols[4]); String nc1 = NFKC.normalizeNFKC(c1); String nc2 = NFKC.normalizeNFKC(c2); String nc3 = NFKC.normalizeNFKC(c3); String nc4 = NFKC.normalizeNFKC(c4); String nc5 = NFKC.normalizeNFKC(c5); if (!nc1.equals(c4) || !nc2.equals(c4) || !nc3.equals(c4) || !nc4.equals(c4) || !nc5.equals(c4)) { System.out.println("Error at `"+line+"'"); System.out.println("NFKC(c1) = "+toUnicode(nc1)+", should be "+toUnicode(c4)); System.out.println("NFKC(c2) = "+toUnicode(nc2)+", should be "+toUnicode(c4)); System.out.println("NFKC(c3) = "+toUnicode(nc3)+", should be "+toUnicode(c4)); System.out.println("NFKC(c4) = "+toUnicode(nc4)+", should be "+toUnicode(c4)); System.out.println("NFKC(c5) = "+toUnicode(nc5)+", should be "+toUnicode(c4)); return; } } } } System.out.println("No errors detected!"); } } } libidn-1.38/java/src/util/Makefile.am0000644000000000000000000000142514076271517014332 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = java libidn-1.38/java/src/test/0000755000000000000000000000000014076274122012351 500000000000000libidn-1.38/java/src/test/Makefile.in0000644000000000000000000016240214076273733014352 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = java all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/test/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/test/java/0000755000000000000000000000000014076274122013272 500000000000000libidn-1.38/java/src/test/java/Makefile.in0000644000000000000000000014751514076273733015303 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/test/java ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_noinst_JAVA) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ JAVAROOT = $(top_builddir)/java/src/test/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/libidn-$(VERSION).jar:$(top_srcdir)/java/libidn-$(VERSION).jar @JAVA_TRUE@dist_noinst_JAVA = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/test/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/test/java/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs classnoinst.stamp: $(am__java_sources) @list1='$?'; list2=; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ list2="$$list2 $$d$$p"; \ done; \ echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $$list2; \ else :; fi echo timestamp > $@ clean-noinstJAVA: -rm -f *.class classnoinst.stamp tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstJAVA mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-noinstJAVA cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/java/src/test/java/Makefile.am0000644000000000000000000000172614076271517015261 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 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, see . JAVAROOT = $(top_builddir)/java/src/test/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/libidn-$(VERSION).jar:$(top_srcdir)/java/libidn-$(VERSION).jar if JAVA dist_noinst_JAVA = endif libidn-1.38/java/src/test/Makefile.am0000644000000000000000000000142514076271517014334 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = java libidn-1.38/java/src/Makefile.am0000644000000000000000000000143714076271517013360 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . SUBDIRS = main test util libidn-1.38/config.h.in0000644000000000000000000011056514076273762011646 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T /* Define to the number of bits in type 'sig_atomic_t'. */ #undef BITSIZEOF_SIG_ATOMIC_T /* Define to the number of bits in type 'size_t'. */ #undef BITSIZEOF_SIZE_T /* Define to the number of bits in type 'wchar_t'. */ #undef BITSIZEOF_WCHAR_T /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T /* Define if mono is the preferred C# implementation. */ #undef CSHARP_CHOICE_MONO /* Define to 1 if using 'alloca.c'. */ #undef C_ALLOCA /* Define to 1 if // is a file system root distinct from /. */ #undef DOUBLE_SLASH_IS_DISTINCT_ROOT /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define this to 1 if F_DUPFD behavior does not match POSIX */ #undef FCNTL_DUPFD_BUGGY /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module msvc-nothrow shall be considered present. */ #undef GNULIB_MSVC_NOTHROW /* Disable VLA usage in gettext.h. */ #undef GNULIB_NO_VLA /* Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__" */ #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ #undef GNULIB_SCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #undef GNULIB_STRERROR /* Define to 1 when the gnulib module cloexec should be tested. */ #undef GNULIB_TEST_CLOEXEC /* Define to 1 when the gnulib module close should be tested. */ #undef GNULIB_TEST_CLOSE /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module fcntl should be tested. */ #undef GNULIB_TEST_FCNTL /* Define to 1 when the gnulib module fgetc should be tested. */ #undef GNULIB_TEST_FGETC /* Define to 1 when the gnulib module fgets should be tested. */ #undef GNULIB_TEST_FGETS /* Define to 1 when the gnulib module fprintf should be tested. */ #undef GNULIB_TEST_FPRINTF /* Define to 1 when the gnulib module fputc should be tested. */ #undef GNULIB_TEST_FPUTC /* Define to 1 when the gnulib module fputs should be tested. */ #undef GNULIB_TEST_FPUTS /* Define to 1 when the gnulib module fread should be tested. */ #undef GNULIB_TEST_FREAD /* Define to 1 when the gnulib module free-posix should be tested. */ #undef GNULIB_TEST_FREE_POSIX /* Define to 1 when the gnulib module fscanf should be tested. */ #undef GNULIB_TEST_FSCANF /* Define to 1 when the gnulib module fstat should be tested. */ #undef GNULIB_TEST_FSTAT /* Define to 1 when the gnulib module fwrite should be tested. */ #undef GNULIB_TEST_FWRITE /* Define to 1 when the gnulib module getc should be tested. */ #undef GNULIB_TEST_GETC /* Define to 1 when the gnulib module getchar should be tested. */ #undef GNULIB_TEST_GETCHAR /* Define to 1 when the gnulib module getdelim should be tested. */ #undef GNULIB_TEST_GETDELIM /* Define to 1 when the gnulib module getdtablesize should be tested. */ #undef GNULIB_TEST_GETDTABLESIZE /* Define to 1 when the gnulib module getline should be tested. */ #undef GNULIB_TEST_GETLINE /* Define to 1 when the gnulib module getopt-posix should be tested. */ #undef GNULIB_TEST_GETOPT_POSIX /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN /* Define to 1 when the gnulib module printf should be tested. */ #undef GNULIB_TEST_PRINTF /* Define to 1 when the gnulib module putc should be tested. */ #undef GNULIB_TEST_PUTC /* Define to 1 when the gnulib module putchar should be tested. */ #undef GNULIB_TEST_PUTCHAR /* Define to 1 when the gnulib module puts should be tested. */ #undef GNULIB_TEST_PUTS /* Define to 1 when the gnulib module scanf should be tested. */ #undef GNULIB_TEST_SCANF /* Define to 1 when the gnulib module stat should be tested. */ #undef GNULIB_TEST_STAT /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strverscmp should be tested. */ #undef GNULIB_TEST_STRVERSCMP /* Define to 1 when the gnulib module vfprintf should be tested. */ #undef GNULIB_TEST_VFPRINTF /* Define to 1 when the gnulib module vprintf should be tested. */ #undef GNULIB_TEST_VPRINTF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-mbtoucr shall be considered present. */ #undef GNULIB_UNISTR_U8_MBTOUCR /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-uctomb shall be considered present. */ #undef GNULIB_UNISTR_U8_UCTOMB /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. */ #undef HAVE_DECL_ECVT /* Define to 1 if you have the declaration of `execvpe', and to 0 if you don't. */ #undef HAVE_DECL_EXECVPE /* Define to 1 if you have the declaration of `fcloseall', and to 0 if you don't. */ #undef HAVE_DECL_FCLOSEALL /* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. */ #undef HAVE_DECL_FCVT /* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. */ #undef HAVE_DECL_GCVT /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED /* Define to 1 if you have the declaration of `getdelim', and to 0 if you don't. */ #undef HAVE_DECL_GETDELIM /* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you don't. */ #undef HAVE_DECL_GETDTABLESIZE /* Define to 1 if you have the declaration of `getline', and to 0 if you don't. */ #undef HAVE_DECL_GETLINE /* Define to 1 if you have the declaration of `program_invocation_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_NAME /* Define to 1 if you have the declaration of `program_invocation_short_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. */ #undef HAVE_DECL___ARGV /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `fcntl' function. */ #undef HAVE_FCNTL /* Define to 1 if you have the `flockfile' function. */ #undef HAVE_FLOCKFILE /* Define if the 'free' function is guaranteed to preserve errno. */ #undef HAVE_FREE_POSIX /* Define to 1 if you have the `funlockfile' function. */ #undef HAVE_FUNLOCKFILE /* Define to 1 if you have the `getdelim' function. */ #undef HAVE_GETDELIM /* Define to 1 if you have the `getdtablesize' function. */ #undef HAVE_GETDTABLESIZE /* Define to 1 if you have the `getexecname' function. */ #undef HAVE_GETEXECNAME /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getopt_long_only' function. */ #undef HAVE_GETOPT_LONG_ONLY /* Define to 1 if you have the `getprogname' function. */ #undef HAVE_GETPROGNAME /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if the compiler supports one of the keywords 'inline', '__inline__', '__inline' and effectively inlines functions marked as such. */ #undef HAVE_INLINE /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_MINIX_CONFIG_H /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Define to 1 if you have the header file. */ #undef HAVE_SDKDDKVER_H /* Define to 1 if you have the `setdtablesize' function. */ #undef HAVE_SETDTABLESIZE /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T /* Define to 1 if 'wchar_t' is a signed integer type. */ #undef HAVE_SIGNED_WCHAR_T /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if `st_atimensec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIMENSEC /* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC /* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC /* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC /* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC /* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC /* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC /* Define to 1 if you have the `strverscmp' function. */ #undef HAVE_STRVERSCMP /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_CDEFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define if you have a global __progname variable */ #undef HAVE_VAR___PROGNAME /* Define to 1 or 0, depending whether the compiler supports simple visibility declarations. */ #undef HAVE_VISIBILITY /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* Define to 1 if the compiler supports the keyword '__inline'. */ #undef HAVE___INLINE /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define to a symbolic name denoting the flavor of iconv_open() implementation. */ #undef ICONV_FLAVOR /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif /* Define to 1 if open() fails to recognize a trailing slash. */ #undef OPEN_TRAILING_SLASH_BUG /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* String identifying the packager of this software */ #undef PACKAGE_PACKAGER /* Packager info for bug reports (URL/e-mail/...) */ #undef PACKAGE_PACKAGER_BUG_REPORTS /* Packager-specific version information */ #undef PACKAGE_PACKAGER_VERSION /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the type that is the result of default argument promotions of type mode_t. */ #undef PROMOTED_MODE_T /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ #undef SIG_ATOMIC_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ #undef SIZE_T_SUFFIX /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P /* Define to 1 if the type of the st_atim member of a struct stat is struct timespec. */ #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable X/Open compliant socket functions that do not require linking with -lxnet on HP-UX 11.11. */ #ifndef _HPUX_ALT_XOPEN_SOCKET_API # undef _HPUX_ALT_XOPEN_SOCKET_API #endif /* Identify the host operating system as Minix. This macro does not affect the system headers' behavior. A future release of Autoconf may stop defining this macro. */ #ifndef _MINIX # undef _MINIX #endif /* Enable general extensions on NetBSD. Enable NetBSD compatibility extensions on Minix. */ #ifndef _NETBSD_SOURCE # undef _NETBSD_SOURCE #endif /* Enable OpenBSD compatibility extensions on NetBSD. Oddly enough, this does nothing on OpenBSD. */ #ifndef _OPENBSD_SOURCE # undef _OPENBSD_SOURCE #endif /* Define to 1 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_SOURCE # undef _POSIX_SOURCE #endif /* Define to 2 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_1_SOURCE # undef _POSIX_1_SOURCE #endif /* Enable POSIX-compatible threading on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions. Define to 500 only if necessary to make mbstate_t available. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Version number of package */ #undef VERSION /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wint_t'. */ #undef WINT_T_SUFFIX /* Define to 1 if you want TLD code. */ #undef WITH_TLD /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* True if the compiler says it groks GNU C version MAJOR.MINOR. */ #if defined __GNUC__ && defined __GNUC_MINOR__ # define _GL_GNUC_PREREQ(major, minor) \ ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) #else # define _GL_GNUC_PREREQ(major, minor) 0 #endif /* Define to enable the declarations of ISO C 11 types and functions. */ #undef _ISOC11_SOURCE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* The _Noreturn keyword of C11. */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (defined _MSC_VER && 1900 <= _MSC_VER)) \ && 0) /* [[noreturn]] is not practically usable, because with it the syntax extern _Noreturn void func (...); would not be valid; such a declaration would only be valid with 'extern' and '_Noreturn' swapped, or without the 'extern' keyword. However, some AIX system header files and several gnulib header files use precisely this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif ((!defined __cplusplus || defined __clang__) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ || (!defined __STRICT_ANSI__ \ && (_GL_GNUC_PREREQ (4, 7) \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ # elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif /* Number of bits in a timestamp, on hosts where this is settable. */ #undef _TIME_BITS /* For standard stat data types on VMS. */ #undef _USE_STD_STAT /* Define to rpl_ if the getopt replacement functions and variables should be used. */ #undef __GETOPT_PREFIX /* For 64-bit time_t on 32-bit mingw. */ #undef __MINGW_USE_VC2005_COMPAT /* Define to 1 if the system predates C++11. */ #undef __STDC_CONSTANT_MACROS /* Define to 1 if the system predates C++11. */ #undef __STDC_LIMIT_MACROS /* The _GL_ASYNC_SAFE marker should be attached to functions that are signal handlers (for signals other than SIGABRT, SIGPIPE) or can be invoked from such signal handlers. Such functions have some restrictions: * All functions that it calls should be marked _GL_ASYNC_SAFE as well, or should be listed as async-signal-safe in POSIX section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in particular, are NOT async-signal-safe. * All memory locations (variables and struct fields) that these functions access must be marked 'volatile'. This holds for both read and write accesses. Otherwise the compiler might optimize away stores to and reads from such locations that occur in the program, depending on its data flow analysis. For example, when the program contains a loop that is intended to inspect a variable set from within a signal handler while (!signal_occurred) ; the compiler is allowed to transform this into an endless loop if the variable 'signal_occurred' is not declared 'volatile'. Additionally, recall that: * A signal handler should not modify errno (except if it is a handler for a fatal signal and ends by raising the same signal again, thus provoking the termination of the process). If it invokes a function that may clobber errno, it needs to save and restore the value of errno. */ #define _GL_ASYNC_SAFE /* Attributes. */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || 3 < __clang_major__ + (5 <= __clang_minor__))) # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) #else # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr # define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) # define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) # define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_diagnose_if 0 # define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) # define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) # define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) # ifdef _ICC # define _GL_ATTR_may_alias 0 # else # define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) # endif # define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) # define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) # define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) # define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) # define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) #endif #if _GL_HAS_ATTRIBUTE (alloc_size) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) #else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) #endif #if _GL_HAS_ATTRIBUTE (always_inline) # define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) #else # define _GL_ATTRIBUTE_ALWAYS_INLINE #endif #if _GL_HAS_ATTRIBUTE (artificial) # define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) #else # define _GL_ATTRIBUTE_ARTIFICIAL #endif /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at . Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ #if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ # ifndef __SUNPRO_C # define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) # else # define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) # endif #else # define _GL_ATTRIBUTE_COLD #endif #if _GL_HAS_ATTRIBUTE (const) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST #endif #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] #elif _GL_HAS_ATTRIBUTE (deprecated) # define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) #else # define _GL_ATTRIBUTE_DEPRECATED #endif #if _GL_HAS_ATTRIBUTE (error) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) #elif _GL_HAS_ATTRIBUTE (diagnose_if) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) #else # define _GL_ATTRIBUTE_ERROR(msg) # define _GL_ATTRIBUTE_WARNING(msg) #endif #if _GL_HAS_ATTRIBUTE (externally_visible) # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) #else # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE #endif /* FALLTHROUGH is special, because it always expands to something. */ #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] #elif _GL_HAS_ATTRIBUTE (fallthrough) # define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) #else # define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) #endif #if _GL_HAS_ATTRIBUTE (format) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) #endif #if _GL_HAS_ATTRIBUTE (leaf) # define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) #else # define _GL_ATTRIBUTE_LEAF #endif /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ #if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C # define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) #else # define _GL_ATTRIBUTE_MAY_ALIAS #endif #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] #elif _GL_HAS_ATTRIBUTE (unused) # define _GL_ATTRIBUTE_MAYBE_UNUSED __attribute__ ((__unused__)) #else # define _GL_ATTRIBUTE_MAYBE_UNUSED #endif /* Earlier spellings of this macro. */ #define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED #define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED #if _GL_HAS_ATTRIBUTE (malloc) # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) #else # define _GL_ATTRIBUTE_MALLOC #endif #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] #elif _GL_HAS_ATTRIBUTE (warn_unused_result) # define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) #else # define _GL_ATTRIBUTE_NODISCARD #endif #if _GL_HAS_ATTRIBUTE (noinline) # define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) #else # define _GL_ATTRIBUTE_NOINLINE #endif #if _GL_HAS_ATTRIBUTE (nonnull) # define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) #else # define _GL_ATTRIBUTE_NONNULL(args) #endif #if _GL_HAS_ATTRIBUTE (nonstring) # define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) #else # define _GL_ATTRIBUTE_NONSTRING #endif /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ #if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus # define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) #else # define _GL_ATTRIBUTE_NOTHROW #endif #if _GL_HAS_ATTRIBUTE (packed) # define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) #else # define _GL_ATTRIBUTE_PACKED #endif #if _GL_HAS_ATTRIBUTE (pure) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE #endif #if _GL_HAS_ATTRIBUTE (returns_nonnull) # define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) #else # define _GL_ATTRIBUTE_RETURNS_NONNULL #endif #if _GL_HAS_ATTRIBUTE (sentinel) # define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) #else # define _GL_ATTRIBUTE_SENTINEL(pos) #endif /* To support C++ as well as C, use _GL_UNUSED_LABEL with trailing ';'. */ #if !defined __cplusplus || _GL_GNUC_PREREQ (4, 5) # define _GL_UNUSED_LABEL _GL_ATTRIBUTE_MAYBE_UNUSED #else # define _GL_UNUSED_LABEL #endif /* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like . For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions (ISO C 99 section 6.7.4.(3). This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log FreeBSD; see: https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see . Assume DragonFly and FreeBSD will be similar. GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. It defines a macro __GNUC_STDC_INLINE__ to indicate this situation or a macro __GNUC_GNU_INLINE__ to indicate the opposite situation. GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline semantics but warns, unless -fgnu89-inline is used: warning: C99 inline functions are not supported; using GNU89 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see and . */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif /* A replacement for va_copy, if needed. */ #define gl_va_copy(a,b) ((a) = (b)) /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif /* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where n1 and n2 are expressions without side effects, that evaluate to real numbers (excluding NaN). It returns 1 if n1 > n2 0 if n1 == n2 -1 if n1 < n2 The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional jump with nearly all GCC versions up to GCC 10. This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many GCC versions up to GCC 9. The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 avoids conditional jumps in all GCC versions >= 3.4. */ #define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) /* Define to `int' if does not define. */ #undef mode_t /* Define to the type of st_nlink in struct stat, or a supertype. */ #undef nlink_t /* Define as a signed integer type capable of holding a process identifier. */ #undef pid_t /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported only directly. */ #undef restrict /* Work around a bug in older versions of Sun C++, which did not #define __restrict__ or support _Restrict or __restrict__ even though the corresponding Sun C compiler ended up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. This workaround can be removed once we assume Oracle Developer Studio 12.5 (2016) or later. */ #if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ # define _Restrict # define __restrict__ #endif /* Define to `unsigned int' if does not define. */ #undef size_t /* Define as a signed type of the same size as size_t. */ #undef ssize_t /* This definition is a duplicate of the one in unitypes.h. It is here so that we can cope with an older version of unitypes.h that does not contain this definition and that is pre-installed among the public header files. */ # if defined __restrict \ || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ || __clang_major__ >= 3 # define _UC_RESTRICT __restrict # elif 199901L <= __STDC_VERSION__ || defined restrict # define _UC_RESTRICT restrict # else # define _UC_RESTRICT # endif /* Define as a macro for copying va_list variables. */ #undef va_copy libidn-1.38/csharp/0000755000000000000000000000000014076274122011142 500000000000000libidn-1.38/csharp/IDNA.cs0000644000000000000000000001711714076271517012140 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { public class IDNA { public const string ACE_PREFIX = "xn--"; /// /// Converts a Unicode string to ASCII using the procedure in RFC3490 /// section 4.1. Unassigned characters are not allowed and STD3 ASCII /// rules are enforced. The input string may be a domain name /// containing dots. /// /// Unicode string. /// Encoded string. public static string ToASCII(string input) { StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.Length; i++) { char c = input[i]; if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.Append(ToASCII(h.ToString(), false, true)); o.Append('.'); h = new StringBuilder(); } else { h.Append(c); } } o.Append(ToASCII(h.ToString(), false, true)); return o.ToString(); } /// /// Converts a Unicode string to ASCII using the procedure in RFC3490 /// section 4.1. Unassigned characters are not allowed and STD3 ASCII /// rules are enforced. /// /// Unicode string. /// Unassigned characters, allowed or not? /// STD3 ASCII rules, enforced or not? /// Encoded string. public static string ToASCII(string input, bool allowUnassigned, bool useSTD3ASCIIRules) { // Step 1: Check if the string contains code points outside // the ASCII range 0..0x7c. bool nonASCII = false; for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the nameprep operation. if (nonASCII) { try { input = Stringprep.NamePrep(input, allowUnassigned); } catch (StringprepException e) { // TODO throw new IDNAException(e); } } // Step 3: - Verify the absence of non-LDH ASCII code points // (char) 0..0x2c, 0x2e..0x2f, 0x3a..0x40, 0x5b..0x60, // (char) 0x7b..0x7f // - Verify the absence of leading and trailing // hyphen-minus if (useSTD3ASCIIRules) { for (int i = 0; i < input.Length; i++) { int c = input[i]; if ((c <= 0x2c) || (c >= 0x2e && c <= 0x2f) || (c >= 0x3a && c <= 0x40) || (c >= 0x5b && c <= 0x60) || (c >= 0x7b && c <= 0x7f)) { throw new IDNAException(IDNAException.CONTAINS_NON_LDH); } } if (input.StartsWith("-") || input.EndsWith("-")) { throw new IDNAException(IDNAException.CONTAINS_HYPHEN); } } // Step 4: If all code points are inside 0..0x7f, skip to step 8 nonASCII = false; for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c > 0x7f) { nonASCII = true; break; } } string output = input; if (nonASCII) { // Step 5: Verify that the sequence does not begin with the ACE prefix. if (input.StartsWith(ACE_PREFIX)) { throw new IDNAException(IDNAException.CONTAINS_ACE_PREFIX); } // Step 6: Punycode try { output = Punycode.Encode(input); } catch (PunycodeException e) { // TODO throw new IDNAException(e); } // Step 7: Prepend the ACE prefix. output = ACE_PREFIX + output; } // Step 8: Check that the length is inside 1..63. if (output.Length < 1 || output.Length > 63) { throw new IDNAException(IDNAException.TOO_LONG); } return output; } /// /// Converts an ASCII-encoded string to Unicode. Unassigned /// characters are not allowed and STD3 hostnames are enforced. Input /// may be domain name containing dots. /// /// ASCII input string. /// Unicode string. public static string ToUnicode(string input) { input = input.ToLower(); StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.Length; i++) { char c = input[i]; if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.Append(ToUnicode(h.ToString(), false, true)); o.Append(c); h = new StringBuilder(); } else { h.Append(c); } } o.Append(ToUnicode(h.ToString(), false, true)); return o.ToString(); } /// /// Converts an ASCII-encoded string to Unicode. /// /// ASCII input string. /// Allow unassigned Unicode characters. /// Check that the output conforms to STD3. /// Unicode string. public static string ToUnicode(string input, bool allowUnassigned, bool useSTD3ASCIIRules) { string original = input; bool nonASCII = false; // Step 1: If all code points are inside 0..0x7f, skip to step 3. for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the Nameprep operation. if (nonASCII) { try { input = Stringprep.NamePrep(input, allowUnassigned); } catch (StringprepException e) { // ToUnicode never fails! return original; } } // Step 3: Verify the sequence starts with the ACE prefix. if (!input.StartsWith(ACE_PREFIX)) { // ToUnicode never fails! return original; } string stored = input; // Step 4: Remove the ACE prefix. input = input.Substring(ACE_PREFIX.Length); // Step 5: Decode using punycode string output; try { output = Punycode.Decode(input); } catch (PunycodeException e) { // ToUnicode never fails! return original; } // Step 6: Apply toASCII string ascii; try { ascii = ToASCII(output, allowUnassigned, useSTD3ASCIIRules); } catch (IDNAException e) { // ToUnicode never fails! return original; } // Step 7: Compare case-insensitively. if (!ascii.ToUpper().Equals(stored.ToUpper())) { // ToUnicode never fails! return original; } // Step 8: Return the result. return output; } } } libidn-1.38/csharp/libidn_PPC.sln0000644000000000000000000000207014053001337013531 00000000000000Microsoft Visual Studio Solution File, Format Version 8.00 Project("{20D4826A-C6FA-45DB-90F4-C717570B9F32}") = "libidn_PPC", "libidn_PPC.csdproj", "{D890E339-5F13-482B-BD29-C0ED806F41BD}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug.ActiveCfg = Debug|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug.Build.0 = Debug|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug.Deploy.0 = Debug|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Release.ActiveCfg = Release|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Release.Build.0 = Release|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Release.Deploy.0 = Release|Pocket PC EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal libidn-1.38/csharp/libidn_PPC.suo0000644000000000000000000002000014053001337013534 00000000000000ÐÏࡱá>þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿÿ þÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ `Ôj¨$\Ç@ ProjInfoExÿÿÿÿÿÿÿÿTaskListUserTasks$ÿÿÿÿIToolboxService ÿÿÿÿÿÿÿÿîþÿÿÿþÿÿÿþÿÿÿþÿÿÿ þÿÿÿþÿÿÿ þÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿ !"þÿÿÿ$%&þÿÿÿ()*þÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZuû°Ž¼#Cžè°&ˈwgðC Eigene BenutzersteuerelementeDeveloper Express: DXCoreDevice ControlsData XML Schema Dialog EditorMobile Web Forms Web Forms Components Windows FormsHTMLClipboard RingGeneralæC:\Dokumente und EinstellungIVSMDPropertyBrowser* ÿÿÿÿþÿÿÿIVSMDDesignerService*ÿÿÿÿÿÿÿÿþÿÿÿDebuggerWatches ÿÿÿÿDebuggerBreakpoints( ÿÿÿÿÿÿÿÿòen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\xD:\Programme\Microsoft Visual Studio .NET 2003\Vc7\crt\src\†D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\DebuggerExceptions&ÿÿÿÿÿÿÿÿÿÿÿÿ DebuggerFindSource& ÿÿÿÿ ¤DebuggerFindSymbol&ÿÿÿÿÿÿÿÿÿÿÿÿDebuggerMemoryWindows,ÿÿÿÿÿÿÿÿÿÿÿÿTsrc\mfc\†D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\atl\dêl ÿÿ&°KÈL$NE¨{D89ExternalFilesProjectContents:ÿÿÿÿÿÿÿÿDocumentWindowPositions0ÿÿÿÿÿÿÿÿ DocumentWindowUserData.ÿÿÿÿÿÿÿÿÿÿÿÿSolutionConfiguration, ÿÿÿÿn339-5F13-482B-BD29-C0ED806F41BMultiStartupProj=;4{D890E339-5F13-482B-BD29-C0ED806F41BD}.dwStartupOpt=;StartupProject=&{D890E339-5F13-482B-BD29-C0ED806F41BD};C{D890E339-5F13-482B-BD29-C0ED806F41BD}.Release|Pocket PC.fBatchBld=;A{D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug|Pocket PC.fBatchBld=; ActiveCfg=Debug;artupProjNSܾï MŠ%˜¿Ÿø[È{0ä‡Awï—Ý9 šÿкñXˆ"¹E¬:Õc˜÷x© Testconsoletest©libidn_PPC Tests‘libidnrÉJA)˜jK¨× Rþ¸ªcket PC.fBatchBld=;A{D890Q æc:\dokumente und einstellungen\gnauck\eigene dateien\visual studio 2005\projects\agsxmpp_net2.0\libidn.net\libidn\estXÏ oletestÉlibidn_PPC Testè"ÿþ EndOfStreamQ Ög:\dokumente und einstellungen\gnauck\eigene dateien\programmierung\dotnet 2003\agsxmpp\libidObjMgrContentsÿÿÿÿÿÿÿÿÿÿÿÿ#ÃClassViewContents$ÿÿÿÿþÿÿÿProjExplorerState$ÿÿÿÿÿÿÿÿÿÿÿÿ'ôUnloadedProjects"ÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿn.net\libidn\XÏ KÈL$NE°{D890E339-5F13-482B-BD29-C0ED806F41BD}|libidn_PPC.csdproj|g:\dokumente und einstellungen\gnauck\eigene dateien\programmierung\dotnet 2003\agsxmpp\libidn.net\libidn\punycode.cs||{A6C7TaskListShortcuts$ÿÿÿÿÿÿÿÿÿÿÿÿ+SourceCodeControl$ÿÿÿÿ,,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlibidn-1.38/csharp/libidn_PPC.csdproj.user0000644000000000000000000000417614053001337015367 00000000000000 libidn-1.38/csharp/DecompositionMappings.cs0000644000000000000000000015603614076273653015747 00000000000000// Do not edit !!! // this file is generated automatically public class DecompositionMappings { public static readonly string[] m = new string[] { "\u0020", "\u0020\u0308", "\u0061", "\u0020\u0304", "\u0032", "\u0033", "\u0020\u0301", "\u03BC", "\u0020\u0327", "\u0031", "\u006F", "\u0031\u2044\u0034", "\u0031\u2044\u0032", "\u0033\u2044\u0034", "\u0041\u0300", "\u0041\u0301", "\u0041\u0302", "\u0041\u0303", "\u0041\u0308", "\u0041\u030A", "\u0043\u0327", "\u0045\u0300", "\u0045\u0301", "\u0045\u0302", "\u0045\u0308", "\u0049\u0300", "\u0049\u0301", "\u0049\u0302", "\u0049\u0308", "\u004E\u0303", "\u004F\u0300", "\u004F\u0301", "\u004F\u0302", "\u004F\u0303", "\u004F\u0308", "\u0055\u0300", "\u0055\u0301", "\u0055\u0302", "\u0055\u0308", "\u0059\u0301", "\u0061\u0300", "\u0061\u0301", "\u0061\u0302", "\u0061\u0303", "\u0061\u0308", "\u0061\u030A", "\u0063\u0327", "\u0065\u0300", "\u0065\u0301", "\u0065\u0302", "\u0065\u0308", "\u0069\u0300", "\u0069\u0301", "\u0069\u0302", "\u0069\u0308", "\u006E\u0303", "\u006F\u0300", "\u006F\u0301", "\u006F\u0302", "\u006F\u0303", "\u006F\u0308", "\u0075\u0300", "\u0075\u0301", "\u0075\u0302", "\u0075\u0308", "\u0079\u0301", "\u0079\u0308", "\u0041\u0304", "\u0061\u0304", "\u0041\u0306", "\u0061\u0306", "\u0041\u0328", "\u0061\u0328", "\u0043\u0301", "\u0063\u0301", "\u0043\u0302", "\u0063\u0302", "\u0043\u0307", "\u0063\u0307", "\u0043\u030C", "\u0063\u030C", "\u0044\u030C", "\u0064\u030C", "\u0045\u0304", "\u0065\u0304", "\u0045\u0306", "\u0065\u0306", "\u0045\u0307", "\u0065\u0307", "\u0045\u0328", "\u0065\u0328", "\u0045\u030C", "\u0065\u030C", "\u0047\u0302", "\u0067\u0302", "\u0047\u0306", "\u0067\u0306", "\u0047\u0307", "\u0067\u0307", "\u0047\u0327", "\u0067\u0327", "\u0048\u0302", "\u0068\u0302", "\u0049\u0303", "\u0069\u0303", "\u0049\u0304", "\u0069\u0304", "\u0049\u0306", "\u0069\u0306", "\u0049\u0328", "\u0069\u0328", "\u0049\u0307", "\u0049\u004A", "\u0069\u006A", "\u004A\u0302", "\u006A\u0302", "\u004B\u0327", "\u006B\u0327", "\u004C\u0301", "\u006C\u0301", "\u004C\u0327", "\u006C\u0327", "\u004C\u030C", "\u006C\u030C", "\u004C\u00B7", "\u006C\u00B7", "\u004E\u0301", "\u006E\u0301", "\u004E\u0327", "\u006E\u0327", "\u004E\u030C", "\u006E\u030C", "\u02BC\u006E", "\u004F\u0304", "\u006F\u0304", "\u004F\u0306", "\u006F\u0306", "\u004F\u030B", "\u006F\u030B", "\u0052\u0301", "\u0072\u0301", "\u0052\u0327", "\u0072\u0327", "\u0052\u030C", "\u0072\u030C", "\u0053\u0301", "\u0073\u0301", "\u0053\u0302", "\u0073\u0302", "\u0053\u0327", "\u0073\u0327", "\u0053\u030C", "\u0073\u030C", "\u0054\u0327", "\u0074\u0327", "\u0054\u030C", "\u0074\u030C", "\u0055\u0303", "\u0075\u0303", "\u0055\u0304", "\u0075\u0304", "\u0055\u0306", "\u0075\u0306", "\u0055\u030A", "\u0075\u030A", "\u0055\u030B", "\u0075\u030B", "\u0055\u0328", "\u0075\u0328", "\u0057\u0302", "\u0077\u0302", "\u0059\u0302", "\u0079\u0302", "\u0059\u0308", "\u005A\u0301", "\u007A\u0301", "\u005A\u0307", "\u007A\u0307", "\u005A\u030C", "\u007A\u030C", "\u0073", "\u004F\u031B", "\u006F\u031B", "\u0055\u031B", "\u0075\u031B", "\u0044\u005A\u030C", "\u0044\u007A\u030C", "\u0064\u007A\u030C", "\u004C\u004A", "\u004C\u006A", "\u006C\u006A", "\u004E\u004A", "\u004E\u006A", "\u006E\u006A", "\u0041\u030C", "\u0061\u030C", "\u0049\u030C", "\u0069\u030C", "\u004F\u030C", "\u006F\u030C", "\u0055\u030C", "\u0075\u030C", "\u0055\u0308\u0304", "\u0075\u0308\u0304", "\u0055\u0308\u0301", "\u0075\u0308\u0301", "\u0055\u0308\u030C", "\u0075\u0308\u030C", "\u0055\u0308\u0300", "\u0075\u0308\u0300", "\u0041\u0308\u0304", "\u0061\u0308\u0304", "\u0041\u0307\u0304", "\u0061\u0307\u0304", "\u00C6\u0304", "\u00E6\u0304", "\u0047\u030C", "\u0067\u030C", "\u004B\u030C", "\u006B\u030C", "\u004F\u0328", "\u006F\u0328", "\u004F\u0328\u0304", "\u006F\u0328\u0304", "\u01B7\u030C", "\u0292\u030C", "\u006A\u030C", "\u0044\u005A", "\u0044\u007A", "\u0064\u007A", "\u0047\u0301", "\u0067\u0301", "\u004E\u0300", "\u006E\u0300", "\u0041\u030A\u0301", "\u0061\u030A\u0301", "\u00C6\u0301", "\u00E6\u0301", "\u00D8\u0301", "\u00F8\u0301", "\u0041\u030F", "\u0061\u030F", "\u0041\u0311", "\u0061\u0311", "\u0045\u030F", "\u0065\u030F", "\u0045\u0311", "\u0065\u0311", "\u0049\u030F", "\u0069\u030F", "\u0049\u0311", "\u0069\u0311", "\u004F\u030F", "\u006F\u030F", "\u004F\u0311", "\u006F\u0311", "\u0052\u030F", "\u0072\u030F", "\u0052\u0311", "\u0072\u0311", "\u0055\u030F", "\u0075\u030F", "\u0055\u0311", "\u0075\u0311", "\u0053\u0326", "\u0073\u0326", "\u0054\u0326", "\u0074\u0326", "\u0048\u030C", "\u0068\u030C", "\u0041\u0307", "\u0061\u0307", "\u0045\u0327", "\u0065\u0327", "\u004F\u0308\u0304", "\u006F\u0308\u0304", "\u004F\u0303\u0304", "\u006F\u0303\u0304", "\u004F\u0307", "\u006F\u0307", "\u004F\u0307\u0304", "\u006F\u0307\u0304", "\u0059\u0304", "\u0079\u0304", "\u0068", "\u0266", "\u006A", "\u0072", "\u0279", "\u027B", "\u0281", "\u0077", "\u0079", "\u0020\u0306", "\u0020\u0307", "\u0020\u030A", "\u0020\u0328", "\u0020\u0303", "\u0020\u030B", "\u0263", "\u006C", "\u0078", "\u0295", "\u0300", "\u0301", "\u0313", "\u0308\u0301", "\u02B9", "\u0020\u0345", "\u003B", "\u0020\u0308\u0301", "\u0391\u0301", "\u00B7", "\u0395\u0301", "\u0397\u0301", "\u0399\u0301", "\u039F\u0301", "\u03A5\u0301", "\u03A9\u0301", "\u03B9\u0308\u0301", "\u0399\u0308", "\u03A5\u0308", "\u03B1\u0301", "\u03B5\u0301", "\u03B7\u0301", "\u03B9\u0301", "\u03C5\u0308\u0301", "\u03B9\u0308", "\u03C5\u0308", "\u03BF\u0301", "\u03C5\u0301", "\u03C9\u0301", "\u03B2", "\u03B8", "\u03A5", "\u03C6", "\u03C0", "\u03BA", "\u03C1", "\u03C2", "\u0398", "\u03B5", "\u0415\u0300", "\u0415\u0308", "\u0413\u0301", "\u0406\u0308", "\u041A\u0301", "\u0418\u0300", "\u0423\u0306", "\u0418\u0306", "\u0438\u0306", "\u0435\u0300", "\u0435\u0308", "\u0433\u0301", "\u0456\u0308", "\u043A\u0301", "\u0438\u0300", "\u0443\u0306", "\u0474\u030F", "\u0475\u030F", "\u0416\u0306", "\u0436\u0306", "\u0410\u0306", "\u0430\u0306", "\u0410\u0308", "\u0430\u0308", "\u0415\u0306", "\u0435\u0306", "\u04D8\u0308", "\u04D9\u0308", "\u0416\u0308", "\u0436\u0308", "\u0417\u0308", "\u0437\u0308", "\u0418\u0304", "\u0438\u0304", "\u0418\u0308", "\u0438\u0308", "\u041E\u0308", "\u043E\u0308", "\u04E8\u0308", "\u04E9\u0308", "\u042D\u0308", "\u044D\u0308", "\u0423\u0304", "\u0443\u0304", "\u0423\u0308", "\u0443\u0308", "\u0423\u030B", "\u0443\u030B", "\u0427\u0308", "\u0447\u0308", "\u042B\u0308", "\u044B\u0308", "\u0565\u0582", "\u0627\u0653", "\u0627\u0654", "\u0648\u0654", "\u0627\u0655", "\u064A\u0654", "\u0627\u0674", "\u0648\u0674", "\u06C7\u0674", "\u064A\u0674", "\u06D5\u0654", "\u06C1\u0654", "\u06D2\u0654", "\u0928\u093C", "\u0930\u093C", "\u0933\u093C", "\u0915\u093C", "\u0916\u093C", "\u0917\u093C", "\u091C\u093C", "\u0921\u093C", "\u0922\u093C", "\u092B\u093C", "\u092F\u093C", "\u09C7\u09BE", "\u09C7\u09D7", "\u09A1\u09BC", "\u09A2\u09BC", "\u09AF\u09BC", "\u0A32\u0A3C", "\u0A38\u0A3C", "\u0A16\u0A3C", "\u0A17\u0A3C", "\u0A1C\u0A3C", "\u0A2B\u0A3C", "\u0B47\u0B56", "\u0B47\u0B3E", "\u0B47\u0B57", "\u0B21\u0B3C", "\u0B22\u0B3C", "\u0B92\u0BD7", "\u0BC6\u0BBE", "\u0BC7\u0BBE", "\u0BC6\u0BD7", "\u0C46\u0C56", "\u0CBF\u0CD5", "\u0CC6\u0CD5", "\u0CC6\u0CD6", "\u0CC6\u0CC2", "\u0CC6\u0CC2\u0CD5", "\u0D46\u0D3E", "\u0D47\u0D3E", "\u0D46\u0D57", "\u0DD9\u0DCA", "\u0DD9\u0DCF", "\u0DD9\u0DCF\u0DCA", "\u0DD9\u0DDF", "\u0E4D\u0E32", "\u0ECD\u0EB2", "\u0EAB\u0E99", "\u0EAB\u0EA1", "\u0F0B", "\u0F42\u0FB7", "\u0F4C\u0FB7", "\u0F51\u0FB7", "\u0F56\u0FB7", "\u0F5B\u0FB7", "\u0F40\u0FB5", "\u0F71\u0F72", "\u0F71\u0F74", "\u0FB2\u0F80", "\u0FB2\u0F71\u0F80", "\u0FB3\u0F80", "\u0FB3\u0F71\u0F80", "\u0F71\u0F80", "\u0F92\u0FB7", "\u0F9C\u0FB7", "\u0FA1\u0FB7", "\u0FA6\u0FB7", "\u0FAB\u0FB7", "\u0F90\u0FB5", "\u1025\u102E", "\u0041\u0325", "\u0061\u0325", "\u0042\u0307", "\u0062\u0307", "\u0042\u0323", "\u0062\u0323", "\u0042\u0331", "\u0062\u0331", "\u0043\u0327\u0301", "\u0063\u0327\u0301", "\u0044\u0307", "\u0064\u0307", "\u0044\u0323", "\u0064\u0323", "\u0044\u0331", "\u0064\u0331", "\u0044\u0327", "\u0064\u0327", "\u0044\u032D", "\u0064\u032D", "\u0045\u0304\u0300", "\u0065\u0304\u0300", "\u0045\u0304\u0301", "\u0065\u0304\u0301", "\u0045\u032D", "\u0065\u032D", "\u0045\u0330", "\u0065\u0330", "\u0045\u0327\u0306", "\u0065\u0327\u0306", "\u0046\u0307", "\u0066\u0307", "\u0047\u0304", "\u0067\u0304", "\u0048\u0307", "\u0068\u0307", "\u0048\u0323", "\u0068\u0323", "\u0048\u0308", "\u0068\u0308", "\u0048\u0327", "\u0068\u0327", "\u0048\u032E", "\u0068\u032E", "\u0049\u0330", "\u0069\u0330", "\u0049\u0308\u0301", "\u0069\u0308\u0301", "\u004B\u0301", "\u006B\u0301", "\u004B\u0323", "\u006B\u0323", "\u004B\u0331", "\u006B\u0331", "\u004C\u0323", "\u006C\u0323", "\u004C\u0323\u0304", "\u006C\u0323\u0304", "\u004C\u0331", "\u006C\u0331", "\u004C\u032D", "\u006C\u032D", "\u004D\u0301", "\u006D\u0301", "\u004D\u0307", "\u006D\u0307", "\u004D\u0323", "\u006D\u0323", "\u004E\u0307", "\u006E\u0307", "\u004E\u0323", "\u006E\u0323", "\u004E\u0331", "\u006E\u0331", "\u004E\u032D", "\u006E\u032D", "\u004F\u0303\u0301", "\u006F\u0303\u0301", "\u004F\u0303\u0308", "\u006F\u0303\u0308", "\u004F\u0304\u0300", "\u006F\u0304\u0300", "\u004F\u0304\u0301", "\u006F\u0304\u0301", "\u0050\u0301", "\u0070\u0301", "\u0050\u0307", "\u0070\u0307", "\u0052\u0307", "\u0072\u0307", "\u0052\u0323", "\u0072\u0323", "\u0052\u0323\u0304", "\u0072\u0323\u0304", "\u0052\u0331", "\u0072\u0331", "\u0053\u0307", "\u0073\u0307", "\u0053\u0323", "\u0073\u0323", "\u0053\u0301\u0307", "\u0073\u0301\u0307", "\u0053\u030C\u0307", "\u0073\u030C\u0307", "\u0053\u0323\u0307", "\u0073\u0323\u0307", "\u0054\u0307", "\u0074\u0307", "\u0054\u0323", "\u0074\u0323", "\u0054\u0331", "\u0074\u0331", "\u0054\u032D", "\u0074\u032D", "\u0055\u0324", "\u0075\u0324", "\u0055\u0330", "\u0075\u0330", "\u0055\u032D", "\u0075\u032D", "\u0055\u0303\u0301", "\u0075\u0303\u0301", "\u0055\u0304\u0308", "\u0075\u0304\u0308", "\u0056\u0303", "\u0076\u0303", "\u0056\u0323", "\u0076\u0323", "\u0057\u0300", "\u0077\u0300", "\u0057\u0301", "\u0077\u0301", "\u0057\u0308", "\u0077\u0308", "\u0057\u0307", "\u0077\u0307", "\u0057\u0323", "\u0077\u0323", "\u0058\u0307", "\u0078\u0307", "\u0058\u0308", "\u0078\u0308", "\u0059\u0307", "\u0079\u0307", "\u005A\u0302", "\u007A\u0302", "\u005A\u0323", "\u007A\u0323", "\u005A\u0331", "\u007A\u0331", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u0041\u0323", "\u0061\u0323", "\u0041\u0309", "\u0061\u0309", "\u0041\u0302\u0301", "\u0061\u0302\u0301", "\u0041\u0302\u0300", "\u0061\u0302\u0300", "\u0041\u0302\u0309", "\u0061\u0302\u0309", "\u0041\u0302\u0303", "\u0061\u0302\u0303", "\u0041\u0323\u0302", "\u0061\u0323\u0302", "\u0041\u0306\u0301", "\u0061\u0306\u0301", "\u0041\u0306\u0300", "\u0061\u0306\u0300", "\u0041\u0306\u0309", "\u0061\u0306\u0309", "\u0041\u0306\u0303", "\u0061\u0306\u0303", "\u0041\u0323\u0306", "\u0061\u0323\u0306", "\u0045\u0323", "\u0065\u0323", "\u0045\u0309", "\u0065\u0309", "\u0045\u0303", "\u0065\u0303", "\u0045\u0302\u0301", "\u0065\u0302\u0301", "\u0045\u0302\u0300", "\u0065\u0302\u0300", "\u0045\u0302\u0309", "\u0065\u0302\u0309", "\u0045\u0302\u0303", "\u0065\u0302\u0303", "\u0045\u0323\u0302", "\u0065\u0323\u0302", "\u0049\u0309", "\u0069\u0309", "\u0049\u0323", "\u0069\u0323", "\u004F\u0323", "\u006F\u0323", "\u004F\u0309", "\u006F\u0309", "\u004F\u0302\u0301", "\u006F\u0302\u0301", "\u004F\u0302\u0300", "\u006F\u0302\u0300", "\u004F\u0302\u0309", "\u006F\u0302\u0309", "\u004F\u0302\u0303", "\u006F\u0302\u0303", "\u004F\u0323\u0302", "\u006F\u0323\u0302", "\u004F\u031B\u0301", "\u006F\u031B\u0301", "\u004F\u031B\u0300", "\u006F\u031B\u0300", "\u004F\u031B\u0309", "\u006F\u031B\u0309", "\u004F\u031B\u0303", "\u006F\u031B\u0303", "\u004F\u031B\u0323", "\u006F\u031B\u0323", "\u0055\u0323", "\u0075\u0323", "\u0055\u0309", "\u0075\u0309", "\u0055\u031B\u0301", "\u0075\u031B\u0301", "\u0055\u031B\u0300", "\u0075\u031B\u0300", "\u0055\u031B\u0309", "\u0075\u031B\u0309", "\u0055\u031B\u0303", "\u0075\u031B\u0303", "\u0055\u031B\u0323", "\u0075\u031B\u0323", "\u0059\u0300", "\u0079\u0300", "\u0059\u0323", "\u0079\u0323", "\u0059\u0309", "\u0079\u0309", "\u0059\u0303", "\u0079\u0303", "\u03B1\u0313", "\u03B1\u0314", "\u03B1\u0313\u0300", "\u03B1\u0314\u0300", "\u03B1\u0313\u0301", "\u03B1\u0314\u0301", "\u03B1\u0313\u0342", "\u03B1\u0314\u0342", "\u0391\u0313", "\u0391\u0314", "\u0391\u0313\u0300", "\u0391\u0314\u0300", "\u0391\u0313\u0301", "\u0391\u0314\u0301", "\u0391\u0313\u0342", "\u0391\u0314\u0342", "\u03B5\u0313", "\u03B5\u0314", "\u03B5\u0313\u0300", "\u03B5\u0314\u0300", "\u03B5\u0313\u0301", "\u03B5\u0314\u0301", "\u0395\u0313", "\u0395\u0314", "\u0395\u0313\u0300", "\u0395\u0314\u0300", "\u0395\u0313\u0301", "\u0395\u0314\u0301", "\u03B7\u0313", "\u03B7\u0314", "\u03B7\u0313\u0300", "\u03B7\u0314\u0300", "\u03B7\u0313\u0301", "\u03B7\u0314\u0301", "\u03B7\u0313\u0342", "\u03B7\u0314\u0342", "\u0397\u0313", "\u0397\u0314", "\u0397\u0313\u0300", "\u0397\u0314\u0300", "\u0397\u0313\u0301", "\u0397\u0314\u0301", "\u0397\u0313\u0342", "\u0397\u0314\u0342", "\u03B9\u0313", "\u03B9\u0314", "\u03B9\u0313\u0300", "\u03B9\u0314\u0300", "\u03B9\u0313\u0301", "\u03B9\u0314\u0301", "\u03B9\u0313\u0342", "\u03B9\u0314\u0342", "\u0399\u0313", "\u0399\u0314", "\u0399\u0313\u0300", "\u0399\u0314\u0300", "\u0399\u0313\u0301", "\u0399\u0314\u0301", "\u0399\u0313\u0342", "\u0399\u0314\u0342", "\u03BF\u0313", "\u03BF\u0314", "\u03BF\u0313\u0300", "\u03BF\u0314\u0300", "\u03BF\u0313\u0301", "\u03BF\u0314\u0301", "\u039F\u0313", "\u039F\u0314", "\u039F\u0313\u0300", "\u039F\u0314\u0300", "\u039F\u0313\u0301", "\u039F\u0314\u0301", "\u03C5\u0313", "\u03C5\u0314", "\u03C5\u0313\u0300", "\u03C5\u0314\u0300", "\u03C5\u0313\u0301", "\u03C5\u0314\u0301", "\u03C5\u0313\u0342", "\u03C5\u0314\u0342", "\u03A5\u0314", "\u03A5\u0314\u0300", "\u03A5\u0314\u0301", "\u03A5\u0314\u0342", "\u03C9\u0313", "\u03C9\u0314", "\u03C9\u0313\u0300", "\u03C9\u0314\u0300", "\u03C9\u0313\u0301", "\u03C9\u0314\u0301", "\u03C9\u0313\u0342", "\u03C9\u0314\u0342", "\u03A9\u0313", "\u03A9\u0314", "\u03A9\u0313\u0300", "\u03A9\u0314\u0300", "\u03A9\u0313\u0301", "\u03A9\u0314\u0301", "\u03A9\u0313\u0342", "\u03A9\u0314\u0342", "\u03B1\u0300", "\u03B5\u0300", "\u03B7\u0300", "\u03B9\u0300", "\u03BF\u0300", "\u03C5\u0300", "\u03C9\u0300", "\u03B1\u0313\u0345", "\u03B1\u0314\u0345", "\u03B1\u0313\u0300\u0345", "\u03B1\u0314\u0300\u0345", "\u03B1\u0313\u0301\u0345", "\u03B1\u0314\u0301\u0345", "\u03B1\u0313\u0342\u0345", "\u03B1\u0314\u0342\u0345", "\u0391\u0313\u0345", "\u0391\u0314\u0345", "\u0391\u0313\u0300\u0345", "\u0391\u0314\u0300\u0345", "\u0391\u0313\u0301\u0345", "\u0391\u0314\u0301\u0345", "\u0391\u0313\u0342\u0345", "\u0391\u0314\u0342\u0345", "\u03B7\u0313\u0345", "\u03B7\u0314\u0345", "\u03B7\u0313\u0300\u0345", "\u03B7\u0314\u0300\u0345", "\u03B7\u0313\u0301\u0345", "\u03B7\u0314\u0301\u0345", "\u03B7\u0313\u0342\u0345", "\u03B7\u0314\u0342\u0345", "\u0397\u0313\u0345", "\u0397\u0314\u0345", "\u0397\u0313\u0300\u0345", "\u0397\u0314\u0300\u0345", "\u0397\u0313\u0301\u0345", "\u0397\u0314\u0301\u0345", "\u0397\u0313\u0342\u0345", "\u0397\u0314\u0342\u0345", "\u03C9\u0313\u0345", "\u03C9\u0314\u0345", "\u03C9\u0313\u0300\u0345", "\u03C9\u0314\u0300\u0345", "\u03C9\u0313\u0301\u0345", "\u03C9\u0314\u0301\u0345", "\u03C9\u0313\u0342\u0345", "\u03C9\u0314\u0342\u0345", "\u03A9\u0313\u0345", "\u03A9\u0314\u0345", "\u03A9\u0313\u0300\u0345", "\u03A9\u0314\u0300\u0345", "\u03A9\u0313\u0301\u0345", "\u03A9\u0314\u0301\u0345", "\u03A9\u0313\u0342\u0345", "\u03A9\u0314\u0342\u0345", "\u03B1\u0306", "\u03B1\u0304", "\u03B1\u0300\u0345", "\u03B1\u0345", "\u03B1\u0301\u0345", "\u03B1\u0342", "\u03B1\u0342\u0345", "\u0391\u0306", "\u0391\u0304", "\u0391\u0300", "\u0391\u0345", "\u0020\u0313", "\u03B9", "\u0020\u0342", "\u0020\u0308\u0342", "\u03B7\u0300\u0345", "\u03B7\u0345", "\u03B7\u0301\u0345", "\u03B7\u0342", "\u03B7\u0342\u0345", "\u0395\u0300", "\u0397\u0300", "\u0397\u0345", "\u0020\u0313\u0300", "\u0020\u0313\u0301", "\u0020\u0313\u0342", "\u03B9\u0306", "\u03B9\u0304", "\u03B9\u0308\u0300", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u0399\u0306", "\u0399\u0304", "\u0399\u0300", "\u0020\u0314\u0300", "\u0020\u0314\u0301", "\u0020\u0314\u0342", "\u03C5\u0306", "\u03C5\u0304", "\u03C5\u0308\u0300", "\u03C1\u0313", "\u03C1\u0314", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u03A5\u0306", "\u03A5\u0304", "\u03A5\u0300", "\u03A1\u0314", "\u0020\u0308\u0300", "\u0060", "\u03C9\u0300\u0345", "\u03C9\u0345", "\u03C9\u0301\u0345", "\u03C9\u0342", "\u03C9\u0342\u0345", "\u039F\u0300", "\u03A9\u0300", "\u03A9\u0345", "\u0020\u0314", "\u2010", "\u0020\u0333", "\u002E", "\u002E\u002E", "\u002E\u002E\u002E", "\u2032\u2032", "\u2032\u2032\u2032", "\u2035\u2035", "\u2035\u2035\u2035", "\u0021\u0021", "\u0020\u0305", "\u003F\u003F", "\u003F\u0021", "\u0021\u003F", "\u2032\u2032\u2032\u2032", "\u0030", "\u0069", "\u0034", "\u0035", "\u0036", "\u0037", "\u0038", "\u0039", "\u002B", "\u2212", "\u003D", "\u0028", "\u0029", "\u006E", "\u0052\u0073", "\u0061\u002F\u0063", "\u0061\u002F\u0073", "\u0043", "\u00B0\u0043", "\u0063\u002F\u006F", "\u0063\u002F\u0075", "\u0190", "\u00B0\u0046", "\u0067", "\u0048", "\u0127", "\u0049", "\u004C", "\u004E", "\u004E\u006F", "\u0050", "\u0051", "\u0052", "\u0053\u004D", "\u0054\u0045\u004C", "\u0054\u004D", "\u005A", "\u03A9", "\u004B", "\u0042", "\u0065", "\u0045", "\u0046", "\u004D", "\u05D0", "\u05D1", "\u05D2", "\u05D3", "\u03B3", "\u0393", "\u03A0", "\u2211", "\u0044", "\u0064", "\u0031\u2044\u0033", "\u0032\u2044\u0033", "\u0031\u2044\u0035", "\u0032\u2044\u0035", "\u0033\u2044\u0035", "\u0034\u2044\u0035", "\u0031\u2044\u0036", "\u0035\u2044\u0036", "\u0031\u2044\u0038", "\u0033\u2044\u0038", "\u0035\u2044\u0038", "\u0037\u2044\u0038", "\u0031\u2044", "\u0049\u0049", "\u0049\u0049\u0049", "\u0049\u0056", "\u0056", "\u0056\u0049", "\u0056\u0049\u0049", "\u0056\u0049\u0049\u0049", "\u0049\u0058", "\u0058", "\u0058\u0049", "\u0058\u0049\u0049", "\u0069\u0069", "\u0069\u0069\u0069", "\u0069\u0076", "\u0076", "\u0076\u0069", "\u0076\u0069\u0069", "\u0076\u0069\u0069\u0069", "\u0069\u0078", "\u0078\u0069", "\u0078\u0069\u0069", "\u0063", "\u006D", "\u2190\u0338", "\u2192\u0338", "\u2194\u0338", "\u21D0\u0338", "\u21D4\u0338", "\u21D2\u0338", "\u2203\u0338", "\u2208\u0338", "\u220B\u0338", "\u2223\u0338", "\u2225\u0338", "\u222B\u222B", "\u222B\u222B\u222B", "\u222E\u222E", "\u222E\u222E\u222E", "\u223C\u0338", "\u2243\u0338", "\u2245\u0338", "\u2248\u0338", "\u003D\u0338", "\u2261\u0338", "\u224D\u0338", "\u003C\u0338", "\u003E\u0338", "\u2264\u0338", "\u2265\u0338", "\u2272\u0338", "\u2273\u0338", "\u2276\u0338", "\u2277\u0338", "\u227A\u0338", "\u227B\u0338", "\u2282\u0338", "\u2283\u0338", "\u2286\u0338", "\u2287\u0338", "\u22A2\u0338", "\u22A8\u0338", "\u22A9\u0338", "\u22AB\u0338", "\u227C\u0338", "\u227D\u0338", "\u2291\u0338", "\u2292\u0338", "\u22B2\u0338", "\u22B3\u0338", "\u22B4\u0338", "\u22B5\u0338", "\u3008", "\u3009", "\u0031\u0030", "\u0031\u0031", "\u0031\u0032", "\u0031\u0033", "\u0031\u0034", "\u0031\u0035", "\u0031\u0036", "\u0031\u0037", "\u0031\u0038", "\u0031\u0039", "\u0032\u0030", "\u0028\u0031\u0029", "\u0028\u0032\u0029", "\u0028\u0033\u0029", "\u0028\u0034\u0029", "\u0028\u0035\u0029", "\u0028\u0036\u0029", "\u0028\u0037\u0029", "\u0028\u0038\u0029", "\u0028\u0039\u0029", "\u0028\u0031\u0030\u0029", "\u0028\u0031\u0031\u0029", "\u0028\u0031\u0032\u0029", "\u0028\u0031\u0033\u0029", "\u0028\u0031\u0034\u0029", "\u0028\u0031\u0035\u0029", "\u0028\u0031\u0036\u0029", "\u0028\u0031\u0037\u0029", "\u0028\u0031\u0038\u0029", "\u0028\u0031\u0039\u0029", "\u0028\u0032\u0030\u0029", "\u0031\u002E", "\u0032\u002E", "\u0033\u002E", "\u0034\u002E", "\u0035\u002E", "\u0036\u002E", "\u0037\u002E", "\u0038\u002E", "\u0039\u002E", "\u0031\u0030\u002E", "\u0031\u0031\u002E", "\u0031\u0032\u002E", "\u0031\u0033\u002E", "\u0031\u0034\u002E", "\u0031\u0035\u002E", "\u0031\u0036\u002E", "\u0031\u0037\u002E", "\u0031\u0038\u002E", "\u0031\u0039\u002E", "\u0032\u0030\u002E", "\u0028\u0061\u0029", "\u0028\u0062\u0029", "\u0028\u0063\u0029", "\u0028\u0064\u0029", "\u0028\u0065\u0029", "\u0028\u0066\u0029", "\u0028\u0067\u0029", "\u0028\u0068\u0029", "\u0028\u0069\u0029", "\u0028\u006A\u0029", "\u0028\u006B\u0029", "\u0028\u006C\u0029", "\u0028\u006D\u0029", "\u0028\u006E\u0029", "\u0028\u006F\u0029", "\u0028\u0070\u0029", "\u0028\u0071\u0029", "\u0028\u0072\u0029", "\u0028\u0073\u0029", "\u0028\u0074\u0029", "\u0028\u0075\u0029", "\u0028\u0076\u0029", "\u0028\u0077\u0029", "\u0028\u0078\u0029", "\u0028\u0079\u0029", "\u0028\u007A\u0029", "\u0041", "\u0047", "\u004A", "\u004F", "\u0053", "\u0054", "\u0055", "\u0057", "\u0059", "\u0062", "\u0066", "\u006B", "\u0070", "\u0071", "\u0074", "\u0075", "\u007A", "\u222B\u222B\u222B\u222B", "\u003A\u003A\u003D", "\u003D\u003D", "\u003D\u003D\u003D", "\u2ADD\u0338", "\u6BCD", "\u9F9F", "\u4E00", "\u4E28", "\u4E36", "\u4E3F", "\u4E59", "\u4E85", "\u4E8C", "\u4EA0", "\u4EBA", "\u513F", "\u5165", "\u516B", "\u5182", "\u5196", "\u51AB", "\u51E0", "\u51F5", "\u5200", "\u529B", "\u52F9", "\u5315", "\u531A", "\u5338", "\u5341", "\u535C", "\u5369", "\u5382", "\u53B6", "\u53C8", "\u53E3", "\u56D7", "\u571F", "\u58EB", "\u5902", "\u590A", "\u5915", "\u5927", "\u5973", "\u5B50", "\u5B80", "\u5BF8", "\u5C0F", "\u5C22", "\u5C38", "\u5C6E", "\u5C71", "\u5DDB", "\u5DE5", "\u5DF1", "\u5DFE", "\u5E72", "\u5E7A", "\u5E7F", "\u5EF4", "\u5EFE", "\u5F0B", "\u5F13", "\u5F50", "\u5F61", "\u5F73", "\u5FC3", "\u6208", "\u6236", "\u624B", "\u652F", "\u6534", "\u6587", "\u6597", "\u65A4", "\u65B9", "\u65E0", "\u65E5", "\u66F0", "\u6708", "\u6728", "\u6B20", "\u6B62", "\u6B79", "\u6BB3", "\u6BCB", "\u6BD4", "\u6BDB", "\u6C0F", "\u6C14", "\u6C34", "\u706B", "\u722A", "\u7236", "\u723B", "\u723F", "\u7247", "\u7259", "\u725B", "\u72AC", "\u7384", "\u7389", "\u74DC", "\u74E6", "\u7518", "\u751F", "\u7528", "\u7530", "\u758B", "\u7592", "\u7676", "\u767D", "\u76AE", "\u76BF", "\u76EE", "\u77DB", "\u77E2", "\u77F3", "\u793A", "\u79B8", "\u79BE", "\u7A74", "\u7ACB", "\u7AF9", "\u7C73", "\u7CF8", "\u7F36", "\u7F51", "\u7F8A", "\u7FBD", "\u8001", "\u800C", "\u8012", "\u8033", "\u807F", "\u8089", "\u81E3", "\u81EA", "\u81F3", "\u81FC", "\u820C", "\u821B", "\u821F", "\u826E", "\u8272", "\u8278", "\u864D", "\u866B", "\u8840", "\u884C", "\u8863", "\u897E", "\u898B", "\u89D2", "\u8A00", "\u8C37", "\u8C46", "\u8C55", "\u8C78", "\u8C9D", "\u8D64", "\u8D70", "\u8DB3", "\u8EAB", "\u8ECA", "\u8F9B", "\u8FB0", "\u8FB5", "\u9091", "\u9149", "\u91C6", "\u91CC", "\u91D1", "\u9577", "\u9580", "\u961C", "\u96B6", "\u96B9", "\u96E8", "\u9751", "\u975E", "\u9762", "\u9769", "\u97CB", "\u97ED", "\u97F3", "\u9801", "\u98A8", "\u98DB", "\u98DF", "\u9996", "\u9999", "\u99AC", "\u9AA8", "\u9AD8", "\u9ADF", "\u9B25", "\u9B2F", "\u9B32", "\u9B3C", "\u9B5A", "\u9CE5", "\u9E75", "\u9E7F", "\u9EA5", "\u9EBB", "\u9EC3", "\u9ECD", "\u9ED1", "\u9EF9", "\u9EFD", "\u9F0E", "\u9F13", "\u9F20", "\u9F3B", "\u9F4A", "\u9F52", "\u9F8D", "\u9F9C", "\u9FA0", "\u3012", "\u5344", "\u5345", "\u304B\u3099", "\u304D\u3099", "\u304F\u3099", "\u3051\u3099", "\u3053\u3099", "\u3055\u3099", "\u3057\u3099", "\u3059\u3099", "\u305B\u3099", "\u305D\u3099", "\u305F\u3099", "\u3061\u3099", "\u3064\u3099", "\u3066\u3099", "\u3068\u3099", "\u306F\u3099", "\u306F\u309A", "\u3072\u3099", "\u3072\u309A", "\u3075\u3099", "\u3075\u309A", "\u3078\u3099", "\u3078\u309A", "\u307B\u3099", "\u307B\u309A", "\u3046\u3099", "\u0020\u3099", "\u0020\u309A", "\u309D\u3099", "\u3088\u308A", "\u30AB\u3099", "\u30AD\u3099", "\u30AF\u3099", "\u30B1\u3099", "\u30B3\u3099", "\u30B5\u3099", "\u30B7\u3099", "\u30B9\u3099", "\u30BB\u3099", "\u30BD\u3099", "\u30BF\u3099", "\u30C1\u3099", "\u30C4\u3099", "\u30C6\u3099", "\u30C8\u3099", "\u30CF\u3099", "\u30CF\u309A", "\u30D2\u3099", "\u30D2\u309A", "\u30D5\u3099", "\u30D5\u309A", "\u30D8\u3099", "\u30D8\u309A", "\u30DB\u3099", "\u30DB\u309A", "\u30A6\u3099", "\u30EF\u3099", "\u30F0\u3099", "\u30F1\u3099", "\u30F2\u3099", "\u30FD\u3099", "\u30B3\u30C8", "\u1100", "\u1101", "\u11AA", "\u1102", "\u11AC", "\u11AD", "\u1103", "\u1104", "\u1105", "\u11B0", "\u11B1", "\u11B2", "\u11B3", "\u11B4", "\u11B5", "\u111A", "\u1106", "\u1107", "\u1108", "\u1121", "\u1109", "\u110A", "\u110B", "\u110C", "\u110D", "\u110E", "\u110F", "\u1110", "\u1111", "\u1112", "\u1161", "\u1162", "\u1163", "\u1164", "\u1165", "\u1166", "\u1167", "\u1168", "\u1169", "\u116A", "\u116B", "\u116C", "\u116D", "\u116E", "\u116F", "\u1170", "\u1171", "\u1172", "\u1173", "\u1174", "\u1175", "\u1160", "\u1114", "\u1115", "\u11C7", "\u11C8", "\u11CC", "\u11CE", "\u11D3", "\u11D7", "\u11D9", "\u111C", "\u11DD", "\u11DF", "\u111D", "\u111E", "\u1120", "\u1122", "\u1123", "\u1127", "\u1129", "\u112B", "\u112C", "\u112D", "\u112E", "\u112F", "\u1132", "\u1136", "\u1140", "\u1147", "\u114C", "\u11F1", "\u11F2", "\u1157", "\u1158", "\u1159", "\u1184", "\u1185", "\u1188", "\u1191", "\u1192", "\u1194", "\u119E", "\u11A1", "\u4E09", "\u56DB", "\u4E0A", "\u4E2D", "\u4E0B", "\u7532", "\u4E19", "\u4E01", "\u5929", "\u5730", "\u0028\u1100\u0029", "\u0028\u1102\u0029", "\u0028\u1103\u0029", "\u0028\u1105\u0029", "\u0028\u1106\u0029", "\u0028\u1107\u0029", "\u0028\u1109\u0029", "\u0028\u110B\u0029", "\u0028\u110C\u0029", "\u0028\u110E\u0029", "\u0028\u110F\u0029", "\u0028\u1110\u0029", "\u0028\u1111\u0029", "\u0028\u1112\u0029", "\u0028\u1100\u1161\u0029", "\u0028\u1102\u1161\u0029", "\u0028\u1103\u1161\u0029", "\u0028\u1105\u1161\u0029", "\u0028\u1106\u1161\u0029", "\u0028\u1107\u1161\u0029", "\u0028\u1109\u1161\u0029", "\u0028\u110B\u1161\u0029", "\u0028\u110C\u1161\u0029", "\u0028\u110E\u1161\u0029", "\u0028\u110F\u1161\u0029", "\u0028\u1110\u1161\u0029", "\u0028\u1111\u1161\u0029", "\u0028\u1112\u1161\u0029", "\u0028\u110C\u116E\u0029", "\u0028\u4E00\u0029", "\u0028\u4E8C\u0029", "\u0028\u4E09\u0029", "\u0028\u56DB\u0029", "\u0028\u4E94\u0029", "\u0028\u516D\u0029", "\u0028\u4E03\u0029", "\u0028\u516B\u0029", "\u0028\u4E5D\u0029", "\u0028\u5341\u0029", "\u0028\u6708\u0029", "\u0028\u706B\u0029", "\u0028\u6C34\u0029", "\u0028\u6728\u0029", "\u0028\u91D1\u0029", "\u0028\u571F\u0029", "\u0028\u65E5\u0029", "\u0028\u682A\u0029", "\u0028\u6709\u0029", "\u0028\u793E\u0029", "\u0028\u540D\u0029", "\u0028\u7279\u0029", "\u0028\u8CA1\u0029", "\u0028\u795D\u0029", "\u0028\u52B4\u0029", "\u0028\u4EE3\u0029", "\u0028\u547C\u0029", "\u0028\u5B66\u0029", "\u0028\u76E3\u0029", "\u0028\u4F01\u0029", "\u0028\u8CC7\u0029", "\u0028\u5354\u0029", "\u0028\u796D\u0029", "\u0028\u4F11\u0029", "\u0028\u81EA\u0029", "\u0028\u81F3\u0029", "\u0032\u0031", "\u0032\u0032", "\u0032\u0033", "\u0032\u0034", "\u0032\u0035", "\u0032\u0036", "\u0032\u0037", "\u0032\u0038", "\u0032\u0039", "\u0033\u0030", "\u0033\u0031", "\u0033\u0032", "\u0033\u0033", "\u0033\u0034", "\u0033\u0035", "\u1100\u1161", "\u1102\u1161", "\u1103\u1161", "\u1105\u1161", "\u1106\u1161", "\u1107\u1161", "\u1109\u1161", "\u110B\u1161", "\u110C\u1161", "\u110E\u1161", "\u110F\u1161", "\u1110\u1161", "\u1111\u1161", "\u1112\u1161", "\u4E94", "\u516D", "\u4E03", "\u4E5D", "\u682A", "\u6709", "\u793E", "\u540D", "\u7279", "\u8CA1", "\u795D", "\u52B4", "\u79D8", "\u7537", "\u9069", "\u512A", "\u5370", "\u6CE8", "\u9805", "\u4F11", "\u5199", "\u6B63", "\u5DE6", "\u53F3", "\u533B", "\u5B97", "\u5B66", "\u76E3", "\u4F01", "\u8CC7", "\u5354", "\u591C", "\u0033\u0036", "\u0033\u0037", "\u0033\u0038", "\u0033\u0039", "\u0034\u0030", "\u0034\u0031", "\u0034\u0032", "\u0034\u0033", "\u0034\u0034", "\u0034\u0035", "\u0034\u0036", "\u0034\u0037", "\u0034\u0038", "\u0034\u0039", "\u0035\u0030", "\u0031\u6708", "\u0032\u6708", "\u0033\u6708", "\u0034\u6708", "\u0035\u6708", "\u0036\u6708", "\u0037\u6708", "\u0038\u6708", "\u0039\u6708", "\u0031\u0030\u6708", "\u0031\u0031\u6708", "\u0031\u0032\u6708", "\u30A2", "\u30A4", "\u30A6", "\u30A8", "\u30AA", "\u30AB", "\u30AD", "\u30AF", "\u30B1", "\u30B3", "\u30B5", "\u30B7", "\u30B9", "\u30BB", "\u30BD", "\u30BF", "\u30C1", "\u30C4", "\u30C6", "\u30C8", "\u30CA", "\u30CB", "\u30CC", "\u30CD", "\u30CE", "\u30CF", "\u30D2", "\u30D5", "\u30D8", "\u30DB", "\u30DE", "\u30DF", "\u30E0", "\u30E1", "\u30E2", "\u30E4", "\u30E6", "\u30E8", "\u30E9", "\u30EA", "\u30EB", "\u30EC", "\u30ED", "\u30EF", "\u30F0", "\u30F1", "\u30F2", "\u30A2\u30CF\u309A\u30FC\u30C8", "\u30A2\u30EB\u30D5\u30A1", "\u30A2\u30F3\u30D8\u309A\u30A2", "\u30A2\u30FC\u30EB", "\u30A4\u30CB\u30F3\u30AF\u3099", "\u30A4\u30F3\u30C1", "\u30A6\u30A9\u30F3", "\u30A8\u30B9\u30AF\u30FC\u30C8\u3099", "\u30A8\u30FC\u30AB\u30FC", "\u30AA\u30F3\u30B9", "\u30AA\u30FC\u30E0", "\u30AB\u30A4\u30EA", "\u30AB\u30E9\u30C3\u30C8", "\u30AB\u30ED\u30EA\u30FC", "\u30AB\u3099\u30ED\u30F3", "\u30AB\u3099\u30F3\u30DE", "\u30AD\u3099\u30AB\u3099", "\u30AD\u3099\u30CB\u30FC", "\u30AD\u30E5\u30EA\u30FC", "\u30AD\u3099\u30EB\u30BF\u3099\u30FC", "\u30AD\u30ED", "\u30AD\u30ED\u30AF\u3099\u30E9\u30E0", "\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB", "\u30AD\u30ED\u30EF\u30C3\u30C8", "\u30AF\u3099\u30E9\u30E0", "\u30AF\u3099\u30E9\u30E0\u30C8\u30F3", "\u30AF\u30EB\u30BB\u3099\u30A4\u30ED", "\u30AF\u30ED\u30FC\u30CD", "\u30B1\u30FC\u30B9", "\u30B3\u30EB\u30CA", "\u30B3\u30FC\u30DB\u309A", "\u30B5\u30A4\u30AF\u30EB", "\u30B5\u30F3\u30C1\u30FC\u30E0", "\u30B7\u30EA\u30F3\u30AF\u3099", "\u30BB\u30F3\u30C1", "\u30BB\u30F3\u30C8", "\u30BF\u3099\u30FC\u30B9", "\u30C6\u3099\u30B7", "\u30C8\u3099\u30EB", "\u30C8\u30F3", "\u30CA\u30CE", "\u30CE\u30C3\u30C8", "\u30CF\u30A4\u30C4", "\u30CF\u309A\u30FC\u30BB\u30F3\u30C8", "\u30CF\u309A\u30FC\u30C4", "\u30CF\u3099\u30FC\u30EC\u30EB", "\u30D2\u309A\u30A2\u30B9\u30C8\u30EB", "\u30D2\u309A\u30AF\u30EB", "\u30D2\u309A\u30B3", "\u30D2\u3099\u30EB", "\u30D5\u30A1\u30E9\u30C3\u30C8\u3099", "\u30D5\u30A3\u30FC\u30C8", "\u30D5\u3099\u30C3\u30B7\u30A7\u30EB", "\u30D5\u30E9\u30F3", "\u30D8\u30AF\u30BF\u30FC\u30EB", "\u30D8\u309A\u30BD", "\u30D8\u309A\u30CB\u30D2", "\u30D8\u30EB\u30C4", "\u30D8\u309A\u30F3\u30B9", "\u30D8\u309A\u30FC\u30B7\u3099", "\u30D8\u3099\u30FC\u30BF", "\u30DB\u309A\u30A4\u30F3\u30C8", "\u30DB\u3099\u30EB\u30C8", "\u30DB\u30F3", "\u30DB\u309A\u30F3\u30C8\u3099", "\u30DB\u30FC\u30EB", "\u30DB\u30FC\u30F3", "\u30DE\u30A4\u30AF\u30ED", "\u30DE\u30A4\u30EB", "\u30DE\u30C3\u30CF", "\u30DE\u30EB\u30AF", "\u30DE\u30F3\u30B7\u30E7\u30F3", "\u30DF\u30AF\u30ED\u30F3", "\u30DF\u30EA", "\u30DF\u30EA\u30CF\u3099\u30FC\u30EB", "\u30E1\u30AB\u3099", "\u30E1\u30AB\u3099\u30C8\u30F3", "\u30E1\u30FC\u30C8\u30EB", "\u30E4\u30FC\u30C8\u3099", "\u30E4\u30FC\u30EB", "\u30E6\u30A2\u30F3", "\u30EA\u30C3\u30C8\u30EB", "\u30EA\u30E9", "\u30EB\u30D2\u309A\u30FC", "\u30EB\u30FC\u30D5\u3099\u30EB", "\u30EC\u30E0", "\u30EC\u30F3\u30C8\u30B1\u3099\u30F3", "\u30EF\u30C3\u30C8", "\u0030\u70B9", "\u0031\u70B9", "\u0032\u70B9", "\u0033\u70B9", "\u0034\u70B9", "\u0035\u70B9", "\u0036\u70B9", "\u0037\u70B9", "\u0038\u70B9", "\u0039\u70B9", "\u0031\u0030\u70B9", "\u0031\u0031\u70B9", "\u0031\u0032\u70B9", "\u0031\u0033\u70B9", "\u0031\u0034\u70B9", "\u0031\u0035\u70B9", "\u0031\u0036\u70B9", "\u0031\u0037\u70B9", "\u0031\u0038\u70B9", "\u0031\u0039\u70B9", "\u0032\u0030\u70B9", "\u0032\u0031\u70B9", "\u0032\u0032\u70B9", "\u0032\u0033\u70B9", "\u0032\u0034\u70B9", "\u0068\u0050\u0061", "\u0064\u0061", "\u0041\u0055", "\u0062\u0061\u0072", "\u006F\u0056", "\u0070\u0063", "\u5E73\u6210", "\u662D\u548C", "\u5927\u6B63", "\u660E\u6CBB", "\u682A\u5F0F\u4F1A\u793E", "\u0070\u0041", "\u006E\u0041", "\u03BC\u0041", "\u006D\u0041", "\u006B\u0041", "\u004B\u0042", "\u004D\u0042", "\u0047\u0042", "\u0063\u0061\u006C", "\u006B\u0063\u0061\u006C", "\u0070\u0046", "\u006E\u0046", "\u03BC\u0046", "\u03BC\u0067", "\u006D\u0067", "\u006B\u0067", "\u0048\u007A", "\u006B\u0048\u007A", "\u004D\u0048\u007A", "\u0047\u0048\u007A", "\u0054\u0048\u007A", "\u03BC\u006C", "\u006D\u006C", "\u0064\u006C", "\u006B\u006C", "\u0066\u006D", "\u006E\u006D", "\u03BC\u006D", "\u006D\u006D", "\u0063\u006D", "\u006B\u006D", "\u006D\u006D\u0032", "\u0063\u006D\u0032", "\u006D\u0032", "\u006B\u006D\u0032", "\u006D\u006D\u0033", "\u0063\u006D\u0033", "\u006D\u0033", "\u006B\u006D\u0033", "\u006D\u2215\u0073", "\u006D\u2215\u0073\u0032", "\u0050\u0061", "\u006B\u0050\u0061", "\u004D\u0050\u0061", "\u0047\u0050\u0061", "\u0072\u0061\u0064", "\u0072\u0061\u0064\u2215\u0073", "\u0072\u0061\u0064\u2215\u0073\u0032", "\u0070\u0073", "\u006E\u0073", "\u03BC\u0073", "\u006D\u0073", "\u0070\u0056", "\u006E\u0056", "\u03BC\u0056", "\u006D\u0056", "\u006B\u0056", "\u004D\u0056", "\u0070\u0057", "\u006E\u0057", "\u03BC\u0057", "\u006D\u0057", "\u006B\u0057", "\u004D\u0057", "\u006B\u03A9", "\u004D\u03A9", "\u0061\u002E\u006D\u002E", "\u0042\u0071", "\u0063\u0063", "\u0063\u0064", "\u0043\u2215\u006B\u0067", "\u0043\u006F\u002E", "\u0064\u0042", "\u0047\u0079", "\u0068\u0061", "\u0048\u0050", "\u0069\u006E", "\u004B\u004B", "\u004B\u004D", "\u006B\u0074", "\u006C\u006D", "\u006C\u006E", "\u006C\u006F\u0067", "\u006C\u0078", "\u006D\u0062", "\u006D\u0069\u006C", "\u006D\u006F\u006C", "\u0050\u0048", "\u0070\u002E\u006D\u002E", "\u0050\u0050\u004D", "\u0050\u0052", "\u0073\u0072", "\u0053\u0076", "\u0057\u0062", "\u0031\u65E5", "\u0032\u65E5", "\u0033\u65E5", "\u0034\u65E5", "\u0035\u65E5", "\u0036\u65E5", "\u0037\u65E5", "\u0038\u65E5", "\u0039\u65E5", "\u0031\u0030\u65E5", "\u0031\u0031\u65E5", "\u0031\u0032\u65E5", "\u0031\u0033\u65E5", "\u0031\u0034\u65E5", "\u0031\u0035\u65E5", "\u0031\u0036\u65E5", "\u0031\u0037\u65E5", "\u0031\u0038\u65E5", "\u0031\u0039\u65E5", "\u0032\u0030\u65E5", "\u0032\u0031\u65E5", "\u0032\u0032\u65E5", "\u0032\u0033\u65E5", "\u0032\u0034\u65E5", "\u0032\u0035\u65E5", "\u0032\u0036\u65E5", "\u0032\u0037\u65E5", "\u0032\u0038\u65E5", "\u0032\u0039\u65E5", "\u0033\u0030\u65E5", "\u0033\u0031\u65E5", "\u8C48", "\u66F4", "\u8CC8", "\u6ED1", "\u4E32", "\u53E5", "\u5951", "\u5587", "\u5948", "\u61F6", "\u7669", "\u7F85", "\u863F", "\u87BA", "\u88F8", "\u908F", "\u6A02", "\u6D1B", "\u70D9", "\u73DE", "\u843D", "\u916A", "\u99F1", "\u4E82", "\u5375", "\u6B04", "\u721B", "\u862D", "\u9E1E", "\u5D50", "\u6FEB", "\u85CD", "\u8964", "\u62C9", "\u81D8", "\u881F", "\u5ECA", "\u6717", "\u6D6A", "\u72FC", "\u90CE", "\u4F86", "\u51B7", "\u52DE", "\u64C4", "\u6AD3", "\u7210", "\u76E7", "\u8606", "\u865C", "\u8DEF", "\u9732", "\u9B6F", "\u9DFA", "\u788C", "\u797F", "\u7DA0", "\u83C9", "\u9304", "\u8AD6", "\u58DF", "\u5F04", "\u7C60", "\u807E", "\u7262", "\u78CA", "\u8CC2", "\u96F7", "\u58D8", "\u5C62", "\u6A13", "\u6DDA", "\u6F0F", "\u7D2F", "\u7E37", "\u964B", "\u52D2", "\u808B", "\u51DC", "\u51CC", "\u7A1C", "\u7DBE", "\u83F1", "\u9675", "\u8B80", "\u62CF", "\u8AFE", "\u4E39", "\u5BE7", "\u6012", "\u7387", "\u7570", "\u5317", "\u78FB", "\u4FBF", "\u5FA9", "\u4E0D", "\u6CCC", "\u6578", "\u7D22", "\u53C3", "\u585E", "\u7701", "\u8449", "\u8AAA", "\u6BBA", "\u6C88", "\u62FE", "\u82E5", "\u63A0", "\u7565", "\u4EAE", "\u5169", "\u51C9", "\u6881", "\u7CE7", "\u826F", "\u8AD2", "\u91CF", "\u52F5", "\u5442", "\u5EEC", "\u65C5", "\u6FFE", "\u792A", "\u95AD", "\u9A6A", "\u9E97", "\u9ECE", "\u66C6", "\u6B77", "\u8F62", "\u5E74", "\u6190", "\u6200", "\u649A", "\u6F23", "\u7149", "\u7489", "\u79CA", "\u7DF4", "\u806F", "\u8F26", "\u84EE", "\u9023", "\u934A", "\u5217", "\u52A3", "\u54BD", "\u70C8", "\u88C2", "\u5EC9", "\u5FF5", "\u637B", "\u6BAE", "\u7C3E", "\u7375", "\u4EE4", "\u56F9", "\u5DBA", "\u601C", "\u73B2", "\u7469", "\u7F9A", "\u8046", "\u9234", "\u96F6", "\u9748", "\u9818", "\u4F8B", "\u79AE", "\u91B4", "\u96B8", "\u60E1", "\u4E86", "\u50DA", "\u5BEE", "\u5C3F", "\u6599", "\u71CE", "\u7642", "\u84FC", "\u907C", "\u6688", "\u962E", "\u5289", "\u677B", "\u67F3", "\u6D41", "\u6E9C", "\u7409", "\u7559", "\u786B", "\u7D10", "\u985E", "\u622E", "\u9678", "\u502B", "\u5D19", "\u6DEA", "\u8F2A", "\u5F8B", "\u6144", "\u6817", "\u9686", "\u5229", "\u540F", "\u5C65", "\u6613", "\u674E", "\u68A8", "\u6CE5", "\u7406", "\u75E2", "\u7F79", "\u88CF", "\u88E1", "\u96E2", "\u533F", "\u6EBA", "\u541D", "\u71D0", "\u7498", "\u85FA", "\u96A3", "\u9C57", "\u9E9F", "\u6797", "\u6DCB", "\u81E8", "\u7B20", "\u7C92", "\u72C0", "\u7099", "\u8B58", "\u4EC0", "\u8336", "\u523A", "\u5207", "\u5EA6", "\u62D3", "\u7CD6", "\u5B85", "\u6D1E", "\u66B4", "\u8F3B", "\u964D", "\u5ED3", "\u5140", "\u55C0", "\u585A", "\u6674", "\u51DE", "\u732A", "\u76CA", "\u793C", "\u795E", "\u7965", "\u798F", "\u9756", "\u7CBE", "\u8612", "\u8AF8", "\u9038", "\u90FD", "\u98EF", "\u98FC", "\u9928", "\u9DB4", "\u4FAE", "\u50E7", "\u514D", "\u52C9", "\u52E4", "\u5351", "\u559D", "\u5606", "\u5668", "\u5840", "\u58A8", "\u5C64", "\u6094", "\u6168", "\u618E", "\u61F2", "\u654F", "\u65E2", "\u6691", "\u6885", "\u6D77", "\u6E1A", "\u6F22", "\u716E", "\u722B", "\u7422", "\u7891", "\u7949", "\u7948", "\u7950", "\u7956", "\u798D", "\u798E", "\u7A40", "\u7A81", "\u7BC0", "\u7E09", "\u7E41", "\u7F72", "\u8005", "\u81ED", "\u8279", "\u8457", "\u8910", "\u8996", "\u8B01", "\u8B39", "\u8CD3", "\u8D08", "\u8FB6", "\u96E3", "\u97FF", "\u983B", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\u05D9\u05B4", "\u05F2\u05B7", "\u05E2", "\u05D4", "\u05DB", "\u05DC", "\u05DD", "\u05E8", "\u05EA", "\u05E9\u05C1", "\u05E9\u05C2", "\u05E9\u05BC\u05C1", "\u05E9\u05BC\u05C2", "\u05D0\u05B7", "\u05D0\u05B8", "\u05D0\u05BC", "\u05D1\u05BC", "\u05D2\u05BC", "\u05D3\u05BC", "\u05D4\u05BC", "\u05D5\u05BC", "\u05D6\u05BC", "\u05D8\u05BC", "\u05D9\u05BC", "\u05DA\u05BC", "\u05DB\u05BC", "\u05DC\u05BC", "\u05DE\u05BC", "\u05E0\u05BC", "\u05E1\u05BC", "\u05E3\u05BC", "\u05E4\u05BC", "\u05E6\u05BC", "\u05E7\u05BC", "\u05E8\u05BC", "\u05E9\u05BC", "\u05EA\u05BC", "\u05D5\u05B9", "\u05D1\u05BF", "\u05DB\u05BF", "\u05E4\u05BF", "\u05D0\u05DC", "\u0671", "\u067B", "\u067E", "\u0680", "\u067A", "\u067F", "\u0679", "\u06A4", "\u06A6", "\u0684", "\u0683", "\u0686", "\u0687", "\u068D", "\u068C", "\u068E", "\u0688", "\u0698", "\u0691", "\u06A9", "\u06AF", "\u06B3", "\u06B1", "\u06BA", "\u06BB", "\u06C1", "\u06BE", "\u06D2", "\u06AD", "\u06C7", "\u06C6", "\u06C8", "\u06CB", "\u06C5", "\u06C9", "\u06D0", "\u0649", "\u064A\u0654\u0627", "\u064A\u0654\u06D5", "\u064A\u0654\u0648", "\u064A\u0654\u06C7", "\u064A\u0654\u06C6", "\u064A\u0654\u06C8", "\u064A\u0654\u06D0", "\u064A\u0654\u0649", "\u06CC", "\u064A\u0654\u062C", "\u064A\u0654\u062D", "\u064A\u0654\u0645", "\u064A\u0654\u064A", "\u0628\u062C", "\u0628\u062D", "\u0628\u062E", "\u0628\u0645", "\u0628\u0649", "\u0628\u064A", "\u062A\u062C", "\u062A\u062D", "\u062A\u062E", "\u062A\u0645", "\u062A\u0649", "\u062A\u064A", "\u062B\u062C", "\u062B\u0645", "\u062B\u0649", "\u062B\u064A", "\u062C\u062D", "\u062C\u0645", "\u062D\u062C", "\u062D\u0645", "\u062E\u062C", "\u062E\u062D", "\u062E\u0645", "\u0633\u062C", "\u0633\u062D", "\u0633\u062E", "\u0633\u0645", "\u0635\u062D", "\u0635\u0645", "\u0636\u062C", "\u0636\u062D", "\u0636\u062E", "\u0636\u0645", "\u0637\u062D", "\u0637\u0645", "\u0638\u0645", "\u0639\u062C", "\u0639\u0645", "\u063A\u062C", "\u063A\u0645", "\u0641\u062C", "\u0641\u062D", "\u0641\u062E", "\u0641\u0645", "\u0641\u0649", "\u0641\u064A", "\u0642\u062D", "\u0642\u0645", "\u0642\u0649", "\u0642\u064A", "\u0643\u0627", "\u0643\u062C", "\u0643\u062D", "\u0643\u062E", "\u0643\u0644", "\u0643\u0645", "\u0643\u0649", "\u0643\u064A", "\u0644\u062C", "\u0644\u062D", "\u0644\u062E", "\u0644\u0645", "\u0644\u0649", "\u0644\u064A", "\u0645\u062C", "\u0645\u062D", "\u0645\u062E", "\u0645\u0645", "\u0645\u0649", "\u0645\u064A", "\u0646\u062C", "\u0646\u062D", "\u0646\u062E", "\u0646\u0645", "\u0646\u0649", "\u0646\u064A", "\u0647\u062C", "\u0647\u0645", "\u0647\u0649", "\u0647\u064A", "\u064A\u062C", "\u064A\u062D", "\u064A\u062E", "\u064A\u0645", "\u064A\u0649", "\u064A\u064A", "\u0630\u0670", "\u0631\u0670", "\u0649\u0670", "\u0020\u064C\u0651", "\u0020\u064D\u0651", "\u0020\u064E\u0651", "\u0020\u064F\u0651", "\u0020\u0650\u0651", "\u0020\u0651\u0670", "\u064A\u0654\u0631", "\u064A\u0654\u0632", "\u064A\u0654\u0646", "\u0628\u0631", "\u0628\u0632", "\u0628\u0646", "\u062A\u0631", "\u062A\u0632", "\u062A\u0646", "\u062B\u0631", "\u062B\u0632", "\u062B\u0646", "\u0645\u0627", "\u0646\u0631", "\u0646\u0632", "\u0646\u0646", "\u064A\u0631", "\u064A\u0632", "\u064A\u0646", "\u064A\u0654\u062E", "\u064A\u0654\u0647", "\u0628\u0647", "\u062A\u0647", "\u0635\u062E", "\u0644\u0647", "\u0646\u0647", "\u0647\u0670", "\u064A\u0647", "\u062B\u0647", "\u0633\u0647", "\u0634\u0645", "\u0634\u0647", "\u0640\u064E\u0651", "\u0640\u064F\u0651", "\u0640\u0650\u0651", "\u0637\u0649", "\u0637\u064A", "\u0639\u0649", "\u0639\u064A", "\u063A\u0649", "\u063A\u064A", "\u0633\u0649", "\u0633\u064A", "\u0634\u0649", "\u0634\u064A", "\u062D\u0649", "\u062D\u064A", "\u062C\u0649", "\u062C\u064A", "\u062E\u0649", "\u062E\u064A", "\u0635\u0649", "\u0635\u064A", "\u0636\u0649", "\u0636\u064A", "\u0634\u062C", "\u0634\u062D", "\u0634\u062E", "\u0634\u0631", "\u0633\u0631", "\u0635\u0631", "\u0636\u0631", "\u0627\u064B", "\u062A\u062C\u0645", "\u062A\u062D\u062C", "\u062A\u062D\u0645", "\u062A\u062E\u0645", "\u062A\u0645\u062C", "\u062A\u0645\u062D", "\u062A\u0645\u062E", "\u062C\u0645\u062D", "\u062D\u0645\u064A", "\u062D\u0645\u0649", "\u0633\u062D\u062C", "\u0633\u062C\u062D", "\u0633\u062C\u0649", "\u0633\u0645\u062D", "\u0633\u0645\u062C", "\u0633\u0645\u0645", "\u0635\u062D\u062D", "\u0635\u0645\u0645", "\u0634\u062D\u0645", "\u0634\u062C\u064A", "\u0634\u0645\u062E", "\u0634\u0645\u0645", "\u0636\u062D\u0649", "\u0636\u062E\u0645", "\u0637\u0645\u062D", "\u0637\u0645\u0645", "\u0637\u0645\u064A", "\u0639\u062C\u0645", "\u0639\u0645\u0645", "\u0639\u0645\u0649", "\u063A\u0645\u0645", "\u063A\u0645\u064A", "\u063A\u0645\u0649", "\u0641\u062E\u0645", "\u0642\u0645\u062D", "\u0642\u0645\u0645", "\u0644\u062D\u0645", "\u0644\u062D\u064A", "\u0644\u062D\u0649", "\u0644\u062C\u062C", "\u0644\u062E\u0645", "\u0644\u0645\u062D", "\u0645\u062D\u062C", "\u0645\u062D\u0645", "\u0645\u062D\u064A", "\u0645\u062C\u062D", "\u0645\u062C\u0645", "\u0645\u062E\u062C", "\u0645\u062E\u0645", "\u0645\u062C\u062E", "\u0647\u0645\u062C", "\u0647\u0645\u0645", "\u0646\u062D\u0645", "\u0646\u062D\u0649", "\u0646\u062C\u0645", "\u0646\u062C\u0649", "\u0646\u0645\u064A", "\u0646\u0645\u0649", "\u064A\u0645\u0645", "\u0628\u062E\u064A", "\u062A\u062C\u064A", "\u062A\u062C\u0649", "\u062A\u062E\u064A", "\u062A\u062E\u0649", "\u062A\u0645\u064A", "\u062A\u0645\u0649", "\u062C\u0645\u064A", "\u062C\u062D\u0649", "\u062C\u0645\u0649", "\u0633\u062E\u0649", "\u0635\u062D\u064A", "\u0634\u062D\u064A", "\u0636\u062D\u064A", "\u0644\u062C\u064A", "\u0644\u0645\u064A", "\u064A\u062D\u064A", "\u064A\u062C\u064A", "\u064A\u0645\u064A", "\u0645\u0645\u064A", "\u0642\u0645\u064A", "\u0646\u062D\u064A", "\u0639\u0645\u064A", "\u0643\u0645\u064A", "\u0646\u062C\u062D", "\u0645\u062E\u064A", "\u0644\u062C\u0645", "\u0643\u0645\u0645", "\u062C\u062D\u064A", "\u062D\u062C\u064A", "\u0645\u062C\u064A", "\u0641\u0645\u064A", "\u0628\u062D\u064A", "\u0633\u062E\u064A", "\u0646\u062C\u064A", "\u0635\u0644\u06D2", "\u0642\u0644\u06D2", "\u0627\u0644\u0644\u0647", "\u0627\u0643\u0628\u0631", "\u0645\u062D\u0645\u062F", "\u0635\u0644\u0639\u0645", "\u0631\u0633\u0648\u0644", "\u0639\u0644\u064A\u0647", "\u0648\u0633\u0644\u0645", "\u0635\u0644\u0649", "\u0635\u0644\u0649\u0020\u0627\u0644\u0644\u0647\u0020\u0639\u0644\u064A\u0647\u0020\u0648\u0633\u0644\u0645", "\u062C\u0644\u0020\u062C\u0644\u0627\u0644\u0647", "\u0631\u06CC\u0627\u0644", "\u2014", "\u2013", "\u005F", "\u007B", "\u007D", "\u3014", "\u3015", "\u3010", "\u3011", "\u300A", "\u300B", "\u300C", "\u300D", "\u300E", "\u300F", "\u002C", "\u3001", "\u003A", "\u003F", "\u0021", "\u0023", "\u0026", "\u002A", "\u002D", "\u003C", "\u003E", "\\", "\u0024", "\u0025", "\u0040", "\u0020\u064B", "\u0640\u064B", "\u0020\u064C", "\u0020\u064D", "\u0020\u064E", "\u0640\u064E", "\u0020\u064F", "\u0640\u064F", "\u0020\u0650", "\u0640\u0650", "\u0020\u0651", "\u0640\u0651", "\u0020\u0652", "\u0640\u0652", "\u0621", "\u0627", "\u0628", "\u0629", "\u062A", "\u062B", "\u062C", "\u062D", "\u062E", "\u062F", "\u0630", "\u0631", "\u0632", "\u0633", "\u0634", "\u0635", "\u0636", "\u0637", "\u0638", "\u0639", "\u063A", "\u0641", "\u0642", "\u0643", "\u0644", "\u0645", "\u0646", "\u0647", "\u0648", "\u064A", "\u0644\u0627\u0653", "\u0644\u0627\u0654", "\u0644\u0627\u0655", "\u0644\u0627", "\"", "\u0027", "\u002F", "\u005B", "\u005D", "\u005E", "\u007C", "\u007E", "\u2985", "\u2986", "\u3002", "\u30FB", "\u30A1", "\u30A3", "\u30A5", "\u30A7", "\u30A9", "\u30E3", "\u30E5", "\u30E7", "\u30C3", "\u30FC", "\u30F3", "\u3099", "\u309A", "\u00A2", "\u00A3", "\u00AC", "\u00A6", "\u00A5", "\u20A9", "\u2502", "\u2190", "\u2191", "\u2192", "\u2193", "\u25A0", "\u25CB", }; } libidn-1.38/csharp/AssemblyInfo.cs0000644000000000000000000000671014076271517014015 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System.Reflection; using System.Runtime.CompilerServices; // // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // // Version information for an assembly consists of the following four values: // // Major Version // Minor Versionu // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.*")] // // In order to sign your assembly you must specify a key to use. Refer to the // Microsoft .NET Framework documentation for more information on assembly signing. // // Use the attributes below to control which key is used for signing. // // Notes: // (*) If no key is specified, the assembly is not signed. // (*) KeyName refers to a key that has been installed in the Crypto Service // Provider (CSP) on your machine. KeyFile refers to a file which contains // a key. // (*) If the KeyFile and the KeyName values are both specified, the // following processing occurs: // (1) If the KeyName can be found in the CSP, that key is used. // (2) If the KeyName does not exist and the KeyFile does exist, the key // in the KeyFile is installed into the CSP and used. // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. // When specifying the KeyFile, the location of the KeyFile should be // relative to the project output directory which is // %Project Directory%\obj\. For example, if your KeyFile is // located in the project directory, you would specify the AssemblyKeyFile // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework // documentation for more information on this. // [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")] libidn-1.38/csharp/Makefile.in0000644000000000000000000015750714076273731013153 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2005-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @CSHARP_TRUE@am__append_1 = Libidn.dll @CSHARP_TRUE@am__append_2 = install-dll-dir @CSHARP_TRUE@am__append_3 = install-dll @CSHARP_TRUE@am__append_4 = uninstall-dll subdir = csharp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CSHARPEXEC = $(SHELL) $(top_builddir)/csharpexec.sh CSHARPCOMP = $(SHELL) $(top_builddir)/csharpcomp.sh SOURCES = AssemblyInfo.cs IDNA.cs RFC3454.cs CombiningClass.cs \ IDNAException.cs Stringprep.cs Composition.cs NFKC.cs \ StringprepException.cs DecompositionKeys.cs Punycode.cs \ DecompositionMappings.cs PunycodeException.cs SOURCES_GENERATE = generate/AssemblyInfo.cs \ generate/GenerateNFKC.cs generate/GenerateRFC3454.cs \ generate/HashSet.cs generate/Program.cs generate/Tokenizer.cs MSVSC = libidn.csproj libidn.csproj.user libidn_PPC.csdproj \ libidn_PPC.csdproj.user libidn_PPC.sln libidn_PPC.suo \ libidn.sln libidn.suo EXTRA_DIST = $(SOURCES) $(SOURCES_GENERATE) $(MSVSC) CLEANFILES = Libidn.dll ALL_LOCAL_TARGETS = $(am__append_1) INSTALLDIRS_LOCAL_TARGETS = $(am__append_2) INSTALL_DATA_LOCAL_TARGETS = $(am__append_3) UNINSTALL_LOCAL_TARGETS = $(am__append_4) @CSHARP_TRUE@SPEC = $(top_srcdir)/doc/specifications all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu csharp/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu csharp/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: installdirs-local install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-generic clean-libtool cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-libtool distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-local .PRECIOUS: Makefile @CSHARP_TRUE@Libidn.dll: $(SOURCES) @CSHARP_TRUE@ $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ @CSHARP_TRUE@ `for src in $(SOURCES); do echo $(srcdir)/$$src; done` @CSHARP_TRUE@GenerateTables.exe: $(SOURCES_GENERATE) @CSHARP_TRUE@ $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ @CSHARP_TRUE@ `for src in $(SOURCES_GENERATE); do echo $(srcdir)/$$src; done` @CSHARP_TRUE@ if ! test -f rfc3454.txt; then \ @CSHARP_TRUE@ ln -s $(SPEC)/rfc3454.txt . \ @CSHARP_TRUE@ || cp $(SPEC)/rfc3454.txt . || true; \ @CSHARP_TRUE@ fi @CSHARP_TRUE@ if ! test -f UnicodeData.txt; then \ @CSHARP_TRUE@ ln -s $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt \ @CSHARP_TRUE@ || cp $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt || true; \ @CSHARP_TRUE@ fi @CSHARP_TRUE@ if ! test -f CompositionExclusions.txt; then \ @CSHARP_TRUE@ ln -s $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt \ @CSHARP_TRUE@ || cp $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt || true; \ @CSHARP_TRUE@ fi @CSHARP_TRUE@RFC3454.cs CombiningClass.cs DecompositionKeys.cs DecompositionMappings.cs Composition.cs: $(GEN_SOURCES) @CSHARP_TRUE@ make GenerateTables.exe @CSHARP_TRUE@ $(CSHARPEXEC) ./GenerateTables.exe @CSHARP_TRUE@install-dll-dir: @CSHARP_TRUE@ $(mkinstalldirs) $(DESTDIR)$(libdir) @CSHARP_TRUE@install-dll: install-dll-dir @CSHARP_TRUE@ $(INSTALL_DATA) Libidn.dll $(DESTDIR)$(libdir)/Libidn.dll @CSHARP_TRUE@uninstall-dll: @CSHARP_TRUE@ rm -f $(DESTDIR)$(libdir)/Libidn.dll all-local: $(ALL_LOCAL_TARGETS) install-data-local: $(INSTALL_DATA_LOCAL_TARGETS) installdirs-local: $(INSTALLDIRS_LOCAL_TARGETS) uninstall-local: $(UNINSTALL_LOCAL_TARGETS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/csharp/PunycodeException.cs0000644000000000000000000000303614076271517015065 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace Gnu.Inet.Encoding { public class PunycodeException : Exception { public static string OVERFLOW = "Overflow."; public static string BAD_INPUT = "Bad input."; /// /// Creates a new PunycodeException. /// /// message public PunycodeException(string message) : base(message) { } } } libidn-1.38/csharp/libidn.suo0000644000000000000000000024100014053001337013037 00000000000000ÐÏࡱá>þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿ  I 8:"#$%&'()þÿÿÿ+,-./01234567þÿÿÿ9;=<>TV@ABCDEFGHJþÿÿÿKLMNOPQRþÿÿÿÿÿÿÿUkÿÿÿÿYŸþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlmxXqÿÿÿÿrsZÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿRoot EntryÿÿÿÿÿÿÿÿP^+J%\ÇIProjInfoExÿÿÿÿÿÿÿÿÿÿÿÿTaskListUserTasks$HÿÿÿÿIToolboxService )ÿÿÿÿ×þÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿ þÿÿÿþÿÿÿþÿÿÿþÿÿÿ þÿÿÿ"#$þÿÿÿþÿÿÿ'Dþÿÿÿþÿÿÿþÿÿÿþÿÿÿ-./0þÿÿÿ23456789þÿÿÿ;<=>þÿÿÿ@ABCþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOPQRþÿÿÿTUVWþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_`abþÿÿÿdefkhijþÿÿÿþÿÿÿmnopþÿÿÿrstuþÿÿÿwxyzþÿÿÿÿÿÿÿ}~€Ðå#ü\µE”5Ï­Ý—° ðC My User ControlsDevice ControlsCrystal ReportsData XML Schema Dialog EditorMobile Web Forms Web Forms Components Windows FormsHTMLClipboard RingGeneralonenten Windows FormsHTMLZwsbC:\Dokumente und EinstellungIVSMDPropertyBrowser*ÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿIVSMDDesignerService*ÿÿÿÿþÿÿÿDebuggerWatches ÿÿÿÿÿÿÿÿÿÿÿÿDebuggerBreakpoints(ÿÿÿÿÿÿÿÿ*¸xD:\Programme\Microsoft Visual Studio .NET 2003\Vc7\crt\src\†D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\mfc\†D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\atl\2003\Vc7\crt\sDebuggerExceptions&' ÿÿÿÿDebuggerFindSource&ÿÿÿÿ ÿÿÿÿ¤DebuggerFindSymbol&ÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿDebuggerMemoryWindows,ÿÿÿÿT .NET 2003\Vc7\atlmfc\Í«4ïþîÿ.ËFÍ«4ïþîÿMultiStartupProj=;4{BED43666-B1A2-486D-871C-A65A2A925764}.dwStartupOpt=ÿÿ;StartupProject=&{BED43666-B1A2-486D-871C-A65A2A925764};A{BED43666-B1A2-486D-871C-A65A2A925764}.Release|ExternalFilesProjectContents: ÿÿÿÿþÿÿÿDocumentWindowPositions0 7ÿÿÿÿ1DocumentWindowUserData.ÿÿÿÿÿÿÿÿSolutionConfiguration,ÿÿÿÿÿÿÿÿÿÿÿÿvAny CPU.fBatchBld=;?{BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.fBatchBld=; ActiveCfg= Debug|Any CPU;A3E01S$ ýA+ÁH±ÚªÏ¥WLrÉJA)˜jK¨× Rþ¸ªLкñXˆ"¹E¬:Õc˜÷xL[È{0ä‡Awï—Ý9 šLÉlü #Oÿ‡øÏ¤ELç%Ò¯##G¶åá}'bm4S8fÂþÂL¤d®—ï9LrÉJA)˜jK¨× Rþ¸ªLкñXˆ"¹E¬:Õc˜÷xL[È{0ä‡Awï—Ý9 šLÉlü #Oÿ‡øÏ¤ELç%Ò¯##G¶åá}'bm43-449142B4CAC2}.dwStartupOptQ æc:\dokumente und einstellungen\gnauck\eigene dateien\visual studio 2005\projects\agsxmpp_net2.0\libidn.net\libidn\g|Any ECSPU.fBatchBld=;4{70359C49-7[È{0ä‡Awï—Ý9 šÿNSܾï MŠ%˜¿ŸøкñXˆ"¹E¬:Õc˜÷x©IDNATestÓ Testqconsoletes$Bookmarks V001.01EinstellungeXÏ auck\Eigene Dateien\Visual SECSPf6Ô¾¢±mH‡¦Z*’Wd®rojects\agsxmpp_Net2\libidn.NET\libidn\Decompositi€C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.resx]D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.resxund Einstellungen\gnauck\Eigd¯à ÿÿ|ù°{ùÈ|ù¾{BED43666-B1A2-486D-871C-A65A2A925764}|libidn.csproj|c:\dokumente und einstellungen\gnauck\eigene dateien\visual studio 2005\projects\agsxmpp_net2.0\libidn.net\libidn\assemblyinfo.cs||{A6CTaskListShortcuts$ÿÿÿÿÿÿÿÿÿÿÿÿ)OutliningState9 %ÿÿÿÿgÐVsToolboxService"ÿÿÿÿ+ObjMgrContentsV8"ÿÿÿÿÿÿÿÿ744A8-0E4A-4FC6-886A-064283054674}P:üC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cse}Í ÿÿÿÿÿÿÿÿsŽE:\Documents\agsxmpC:\Dokumente und Einstellungen\NET\libidn\DecompositionMappings.cs€E:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cs"ÈD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompoôC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csXÛuÿÿÿÿÿÿÿÿal Studio 2005\Projects\agsxC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cs7ÛøÿÿÿÿÿÿÿÿÀD:\Eigene DateieüC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cse}sitionKeys.csžC:\Dokumente unÍ ÿÿÿÿÿÿÿÿVisual Studio 2005\ProjeC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\PunycodeException.csܖäÿÿÿÿÿÿÿÿibidn.NET\libidC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.cs¼D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csÅ•$÷ÿÿÿÿÿÿÿÿd einstellungen\gnauck\eäÁmïÿÿÿÿÿÿÿÿ\gnauck\Desktop\libidnôC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csuÀêÚ ÿÿÿÿÿÿÿÿdn\_Composition.cs´D:\EigöC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs†ê3)%ÿÿÿÿÿÿÿÿateien\Visual Studio 2005\PþC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csP ôJÿÿÿÿÿÿÿÿNATest\frmMain.cs ºd Einstellungen\gnauck\Lokale EiúC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csˆt8þÿÿÿ‚ƒ„†‡ˆ‰þÿÿÿ‹ŒŽþÿÿÿþÿÿÿ‘’“”þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™šœŸžþÿÿÿ þÿÿÿ¢Ã¤¥¦þÿÿÿ¨©ªþÿÿÿ¬­®þÿÿÿ°±²þÿÿÿ´µ¶þÿÿÿ¸¹ºþÿÿÿ¼½¾þÿÿÿÀÁÂþÿÿÿÄÅþÿÿÿÿÿÿÿÈÉÊþÿÿÿÌÍÎþÿÿÿÐÑÒþÿÿÿÔÕÖþÿÿÿØÙÚþÿÿÿÜÝÞþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿStudio 2005\Projects\agsxC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\StringprepException.csèÔvÿÿÿÿÿÿÿÿProjects\agsxC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csžþ¤'ÿÿÿÿÿÿÿÿ 2005\Projects\agsxs¡åcfÿÿÿÿÿÿÿÿŽE:\Documents\agsxmpC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.cs“2ÞÿÿÿÿÿÿÿÿonMappings.csnstellungen\Temp\vsp3853.tmp.cs/°D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\HiddenSlnFolders"ÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿOutliningStateDir$ÿÿÿÿÿÿÿÿÿÿÿÿ?ö%BookmarkStateÿÿÿÿÿÿÿÿ((FAE04EC1-301F-11D3_ProjTrust: ÿÿÿÿÿÿÿÿþÿÿÿC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0®D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\li\libidn.NET\libidn\DecompositionMappings.csýÎÿÿÿÿÿÿÿÿents\agsxmpbidn.NET\libidn\IDNA.cs·6hÙ ÿÿÿÿÿÿÿÿç%Ò¯##G¶åá}'bm4-71E8-4AD1-BA56-259C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual StuÂD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csØIõÿÿÿÿÿÿÿÿvisual studio 2005\pr®D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs['à©ÿÿÿÿÿÿÿÿ­Û ÿÿ\8°[8È\8 |{CÈD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.cs+žŠÿÿÿÿÿÿÿÿ0\libidn.net\libid¶D:\Eigene Dateien\Visual StudioFAE04EC1-301F-11D3_ProjState:ÿÿÿÿÿÿÿÿÿÿÿÿ!ÊOutliningState7 $ÿÿÿÿ¯ÊOutliningState2 #"ÿÿÿÿ§ÂOutliningState5 ! ÿÿÿÿ«ÜBCSPf6Ô¾¢±mH‡¦Z*’Wd®GBSC€C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\libidn.csproj”^p%\Ç…C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\libidn.csproj.user4†±$\ÇBCSCDebug|Any CPU 1701;1702ÿÿlibraryobj\Debug\libidn.dlllibraryGBLI‰C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\StringprepException.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csGBLI€C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csGBLI~C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.csGBLIƒC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csGBLI‚C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\AssemblyInfo.csGBLI}C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csGBLIzC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csGBLI‹C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.csGBLI„C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csGBLIzC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\PunycodeException.csDELIGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllDELIGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemDELIDELIDELIDESCECSPDELIGBLI;C:\WINDOWS\MicrosoftæC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\ ÞC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.5.20\libidn-0.5.20\java\gnu\inet\encoding\Test\Form1.csddP:òG:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Programmierung\dotNet 2003\agsxmpp\libidn.NET\ConsoleTest\Class1.csB:þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csÊÊ:"IDNATest.frmMain¾üC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs××9:`Gnu.Inet.Encoding.Punycode.Decode(string input)BøbQ?ÆÓSÀO£¡þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csÚÚ:"IDNATest.frmMainÎþC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csàà:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csá áI:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)øbQ?ÆÓSÀO£¡þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csãã:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csåå:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e) þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csæ æD:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e) øbQ?ÆÓSÀO£¡þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csèè:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e) þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csÜ Ü :xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)øbQ?ÆÓSÀO£¡nd Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI5C:\Programme\ProgTools\nUn 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csIHw½ ÿÿÿÿÿÿÿÿÐD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs£-BÿÿÿÿÿÿÿÿºD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csêD™ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cs:Ÿ/øÿÿÿÿÿÿÿÿlSÿÿÿÿÿÿÿÿ´D:\Eigene Dateien\Visual StudioOutliningState6 ÿÿÿÿÿÿÿÿÿÿÿÿ³äOutliningState4 ÿÿÿÿÿÿÿÿ¿ÈOutliningState3 ÿÿÿÿÿÿÿÿÿÿÿÿ»ÔOutliningState1 ÿÿÿÿÿÿÿÿÿÿÿÿ·Î 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs0ð îÿÿÿÿÿÿÿÿdio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs_0ÈšÿÿÿÿÿÿÿÿïºY7ÿÿÿÿÿÿÿÿents\agsxmplibidn.NET\Tests\Class1.cs lE:°D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs¤¿ÏY$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csþE-ÿÿÿÿÿÿÿÿÿÿÿÿÊD:\Eigene Dateien\Visual StudioOutliningState8 ÿÿÿÿÿÿÿÿÿÿÿÿ£ÖOutliningState10"+ÿÿÿÿÏÞE6FDF8B0-F3D1-11D4_ProjState:ÿÿÿÿÿÿÿÿÿÿÿÿ%XmlPackageOptions$ÿÿÿÿÿÿÿÿÿÿÿÿ, 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_DecompositionKeys.cséèœïÿÿÿÿÿÿÿÿÒC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\DecompositionKeys.javaR–}òÿÿÿÿÿÿÿÿ6-2590E339D9A¾D:\Eigene Dateien\Visual Studio2C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.csŽE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs$C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\AssemblyInfo.cs1ÐD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs€E:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cs"ÈD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.csžC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3853.tmp.cs/°D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs lE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs!ÀD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csvE:\Documents\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs*nE:\Documents\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs(C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs#ôC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csôC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs¸C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\NFKC.javaÒC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\DecompositionKeys.java ¾D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_Composition.cs´D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\PunycodeException.cslE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cs%¸D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs ºD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\StringprepException.csžC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3811.tmp.cs.C:\Dokumente und Einstellungen\gnaucÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ þÿÿÿ  þÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿ þÿÿÿ"#þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿk\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs0öC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs®D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csÂD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cstE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csžC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp37DF.tmp.cs+üC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csžC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3802.tmp.cs,þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csžC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3807.tmp.cs-C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csÊD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_DecompositionKeys.cs úC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csœC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp1B2.tmp.cs'C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csrE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs¶D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs¼D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs xE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.cs&®D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs)l Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csœC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp1B2.tmp.cs'C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libOutliningState14"ÿÿÿÿÿÿÿÿÿÿÿÿ›ÂOutliningState12",ÿÿÿÿÇÄOutliningState13"ÿÿÿÿ(ÿÿÿÿËÐOutliningState11"ÿÿÿÿÿÿÿÿÿÿÿÿÓæOutliningState15"*;ÿÿÿÿ×ÒOutliningState16"ÿÿÿÿÿÿÿÿÿÿÿÿÛÌOutliningState24"/6ÿÿÿÿNOutliningState23"1ÿÿÿÿÿÿÿÿS 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_Composition.csÿ¨|ÿÿÿÿÿÿÿÿÿ¸C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\NFKC.java›2²sÿÿÿÿÿÿÿÿ\Documents\agsxmpp_Net2.0\libidnidn\Composition.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csrE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs C:\Dokumente und Einstellungen\gnauck\EigenOutliningState37"ÿÿÿÿÿÿÿÿÿÿÿÿ€OutliningState31"<>ÿÿÿÿ ˆOutliningState36"C@ÿÿÿÿ ¢OutliningState35"DÿÿÿÿÿÿÿÿŽOutliningState34"ÿÿÿÿÿÿÿÿÿÿÿÿ”OutliningState40"ÿÿÿÿÿÿÿÿÿÿÿÿ‚OutliningState41"EÿÿÿÿŽOutliningState42"ÿÿÿÿÿÿÿÿÿÿÿÿ!Žÿÿÿÿÿÿÿÿs\agsxmpp_Net2.0\libidn.NvE:\Documents\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csк[±ÿÿÿÿÿÿÿÿio 2005\Projects\agsxmpp_þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csÜ Ü :xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)øbQ?ÆÓSÀO£¡frmMain.csá áI:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)øbQ?ÆÓSÀO£¡m.XML.dll System.XMLDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702ÿÿpromptlibraryobj\Debug\Tests.dlllibraryGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\AssemblyInfo.csGBLI{C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dllGBLI5C:\Programme\ProgTools\nUnit\bin\nunit.framework.dllGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NETe Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs¶D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs¼D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs xE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.cs&®D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs)csd\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllDELIGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI5C:\Programme\ProgTools\nUnit\bin\nunit.framework.dllnunit.frameworkGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll System.XMLDELIDELIDELIDESCBCSPÑúm®‚†J¦ãD‘B´ÊÂæGBSCŠC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\ConsoleTest.csproj(Nã»ÆC:\Dokumente und Einstellungen\gnþe und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\ ÞC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.5.20\libidn-0.5.20\java\gnu\inet\encoding\Test\Form1.csdæC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\ ÞC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.5.20\libidn-0.5.20\java\gnu\inet\encoding\Test\Form1.csddP:òG:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Programmierung\dotNet 2003\agsxmpp\libidn.NET\ConsoleTest\Class1.csB:þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csÊÊ:"IDNATest.frmMain¾auck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\ConsoleTest.csproj.userâþ±àÆBCSCRelease|Any CPU 285212672TRACE 1701;1702promptexeÿÿobj\Release\ConsoleTest.exeexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.csGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Asse.NET\libidn\NFKC.cs!ÀD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csvE:\Documents\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs*nE:\Documents\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs(C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs#ôC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csôC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs¸C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encodOutliningState30"ÿÿÿÿÿÿÿÿÿÿÿÿ˜*OutliningState32"ÿÿÿÿÿÿÿÿÿÿÿÿ†OutliningState33"=?ÿÿÿÿ€OutliningState38"BFÿÿÿÿŒ005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csþxE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csÏü&àÿÿÿÿÿÿÿÿ2005\Projects\agsxmpp_Net2mblyInfo.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dllGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLI‰C:\Dokumente und Einstellungen\gnauck\lE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csÆò% ÿÿÿÿÿÿÿÿtE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csö®ñ ÿÿÿÿÿÿÿÿeien\Visual Studio 2005\ProjŽE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs£-Bÿÿÿÿÿÿÿÿsxmpp_Net2.0\lizE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csÅ•$÷ÿÿÿÿÿÿÿÿ05\Projects\agsxmpp_Net2.€E:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csØIõÿÿÿÿÿÿÿÿbidn.NET\libidn\NFKC.cnE:\Documents\agsxmpp_Net2.0\libidn.NET\Tests\Class1.csFÁÆE%ÿÿÿÿÿÿÿÿ\libidn.NET\Tests\Class1.cs vzE:\Documents\agsxmpp_Net2.0\librE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csž• Mÿÿÿÿÿÿÿÿio 2005\Projects\agsxmpp_Net2lE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs}-rÿÿÿÿÿÿÿÿidn.NET\ConsoleTest\Class1.cs1«)Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}DELIGBLI‰C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll System.XMLDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702ÿÿpromptexeobj\Debug\ConsoleTest.exeexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.csGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\AssemblyInfo.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dllGBLI‡ing\NFKC.javaÒC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\DecompositionKeys.java ¾D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_Composition.cs´D:\Eigene Dateien\Visual Studio 2C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllDELIGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll System.XMLDELIDELIDELIDESCBCSPIœ5pèqÑJºV%ã9Ù©GBSC„C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\IDNATest.csprojˆüÇû4ljC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\IDNATest.csproj.userú/ŲÆBCSCRelease|Any CPU 285212672TRACE 1701;1702promptwinexeÿÿobj\Release\IDNATest.exewinexeApp.icoGBLI„C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLI‰C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLI‰C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702ÿÿpromptwinexeobj\Debug\IDNATest.exewinexeApp.icoGBLI„C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\DokuOutliningState26"ÿÿÿÿÿÿÿÿÿÿÿÿ…&OutliningState27"3:ÿÿÿÿŠOutliningState28"ÿÿÿÿÿÿÿÿÿÿÿÿOutliningState29"9Aÿÿÿÿ"mente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIDESCECSPft.NET\Framework\v2.0.50727\System.Drawing.düC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs××9:`Gnu.Inet.Encoding.Punycode.Decode(string input)BøbQ?ÆÓSÀO£¡þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csÚÚ:OutliningState21"ÿÿÿÿÿÿÿÿÿÿÿÿ:OutliningState22"0ÿÿÿÿÿÿÿÿ^"OutliningState17"-4ÿÿÿÿcOutliningState20"2.ÿÿÿÿlOutliningState18"ÿÿÿÿ5ÿÿÿÿq OutliningState19"ÿÿÿÿÿÿÿÿÿÿÿÿvOutliningState25"ÿÿÿÿ8ÿÿÿÿ|164B10B9-B200-11D0_ProjState:ÿÿÿÿ&ÿÿÿÿ*"IDNATest.frmMainÎþC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csàà:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csá áI:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)øbQ?ÆÓSÀO£¡þC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csãã:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)þC:\Dokumente und Einstellungen\gnauck\Eige672TRACE 1701;1702promptwinexeÿÿobj\Release\IDNATest.exewinexeApp.icoGBLI„C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLI‰C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLI‰C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702ÿÿpromptwinexeobj\Debug\IDNATest.exewinexeApp.icoGBLI„C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLI‡C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIDESCECSPOutliningState48"Gÿÿÿÿ¡OutliningState49"ÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlibidn-1.38/csharp/Stringprep.cs0000644000000000000000000002767114076271517013570 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { /// This class offers static methods for preparing internationalized /// strings. It supports the following stringprep profiles: ///
    ///
  • RFC3491 nameprep ///
  • RFC3920 XMPP nodeprep and resourceprep ///
/// Note that this implementation only supports 16-bit Unicode code /// points. ///
public class Stringprep { /// Preps a name according to the Stringprep profile defined in /// RFC3491. Unassigned code points are not allowed. /// * /// /// the name to prep. /// /// the prepped name. /// @throws StringprepException If the name cannot be prepped with /// this profile. /// @throws NullPointerException If the name is null. /// /// public static string NamePrep(string input) { return NamePrep(input, false); } /// Preps a name according to the Stringprep profile defined in /// RFC3491. /// * /// /// the name to prep. /// /// true if the name may contain unassigned /// code points. /// /// the prepped name. /// @throws StringprepException If the name cannot be prepped with /// this profile. /// @throws NullPointerException If the name is null. /// /// public static string NamePrep(string input, bool allowUnassigned) { if (input == null) { throw new System.NullReferenceException(); } StringBuilder s = new StringBuilder(input); if (!allowUnassigned && Contains(s, RFC3454.A1)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } Filter(s, RFC3454.B1); Map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.NormalizeNFKC(s.ToString())); // B.3 is only needed if NFKC is not used, right? // map(s, RFC3454.B3search, RFC3454.B3replace); if (Contains(s, RFC3454.C12) || Contains(s, RFC3454.C22) || Contains(s, RFC3454.C3) || Contains(s, RFC3454.C4) || Contains(s, RFC3454.C5) || Contains(s, RFC3454.C6) || Contains(s, RFC3454.C7) || Contains(s, RFC3454.C8)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling bool r = Contains(s, RFC3454.D1); bool l = Contains(s, RFC3454.D2); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!Contains(s[0], RFC3454.D1) || !Contains(s[s.Length - 1], RFC3454.D1)) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.ToString(); } /** * Characters prohibited by RFC3920 nodeprep that aren't defined as * part of the RFC3454 tables. */ private static char [] RFC3920_NODEPREP_PROHIBIT = new char [] { '\u0022', '\u0026', '\'', '\u002F', '\u003A', '\u003C', '\u003E', '\u0040' }; /// Preps a node name according to the Stringprep profile defined in /// RFC3920. Unassigned code points are not allowed. /// * /// /// the node name to prep. /// /// the prepped node name. /// @throws StringprepException If the node name cannot be prepped /// with this profile. /// @throws NullPointerException If the node name is null. /// /// public static string NodePrep(string input) { return NodePrep(input, false); } /// /// Preps a node name according to the Stringprep profile defined in RFC3920. /// /// the node name to prep. /// /// true if the node name may contain /// unassigned code points. /// /// the prepped node name. /// @throws StringprepException If the node name cannot be prepped /// with this profile. /// @throws NullPointerException If the node name is null. /// /// public static string NodePrep(string input, bool allowUnassigned) { if (input == null) { throw new System.NullReferenceException(); } StringBuilder s = new StringBuilder(input); if (!allowUnassigned && Contains(s, RFC3454.A1)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } Filter(s, RFC3454.B1); Map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.NormalizeNFKC(s.ToString())); if (Contains(s, RFC3454.C11) || Contains(s, RFC3454.C12) || Contains(s, RFC3454.C21) || Contains(s, RFC3454.C22) || Contains(s, RFC3454.C3) || Contains(s, RFC3454.C4) || Contains(s, RFC3454.C5) || Contains(s, RFC3454.C6) || Contains(s, RFC3454.C7) || Contains(s, RFC3454.C8) || Contains(s, RFC3920_NODEPREP_PROHIBIT)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling bool r = Contains(s, RFC3454.D1); bool l = Contains(s, RFC3454.D2); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!Contains(s[0], RFC3454.D1) || !Contains(s[s.Length - 1], RFC3454.D1)) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.ToString(); } /// /// Preps a resource name according to the Stringprep profile defined /// in RFC3920. Unassigned code points are not allowed. /// /// the resource name to prep. /// /// the prepped node name. /// @throws StringprepException If the resource name cannot be prepped /// with this profile. /// @throws NullPointerException If the resource name is null. /// /// public static string ResourcePrep(string input) { return ResourcePrep(input, false); } /// /// Preps a resource name according to the Stringprep profile defined /// in RFC3920. /// /// the resource name to prep. /// /// true if the resource name may contain /// unassigned code points. /// /// /// the prepped node name. /// @throws StringprepException If the resource name cannot be prepped /// with this profile. /// @throws NullPointerException If the resource name is null. /// /// public static string ResourcePrep(string input, bool allowUnassigned) { if (input == null) { throw new System.NullReferenceException(); } StringBuilder s = new StringBuilder(input); if (!allowUnassigned && Contains(s, RFC3454.A1)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } Filter(s, RFC3454.B1); s = new StringBuilder(NFKC.NormalizeNFKC(s.ToString())); if (Contains(s, RFC3454.C12) || Contains(s, RFC3454.C21) || Contains(s, RFC3454.C22) || Contains(s, RFC3454.C3) || Contains(s, RFC3454.C4) || Contains(s, RFC3454.C5) || Contains(s, RFC3454.C6) || Contains(s, RFC3454.C7) || Contains(s, RFC3454.C8)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling bool r = Contains(s, RFC3454.D1); bool l = Contains(s, RFC3454.D2); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!Contains(s[0], RFC3454.D1) || !Contains(s[s.Length - 1], RFC3454.D1)) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.ToString(); } internal static bool Contains(StringBuilder s, char[] p) { for (int i = 0; i < p.Length; i++) { char c = p[i]; for (int j = 0; j < s.Length; j++) { if (c == s[j]) { return true; } } } return false; } internal static bool Contains(StringBuilder s, char[][] p) { for (int i = 0; i < p.Length; i++) { char[] r = p[i]; if (1 == r.Length) { char c = r[0]; for (int j = 0; j < s.Length; j++) { if (c == s[j]) { return true; } } } else if (2 == r.Length) { char f = r[0]; char t = r[1]; for (int j = 0; j < s.Length; j++) { if (f <= s[j] && t >= s[j]) { return true; } } } } return false; } internal static bool Contains(char c, char[][] p) { for (int i = 0; i < p.Length; i++) { char[] r = p[i]; if (1 == r.Length) { if (c == r[0]) { return true; } } else if (2 == r.Length) { char f = r[0]; char t = r[1]; if (f <= c && t >= c) { return true; } } } return false; } internal static void Filter(StringBuilder s, char[] f) { for (int i = 0; i < f.Length; i++) { char c = f[i]; int j = 0; while (j < s.Length) { if (c == s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); } else { j++; } } } } internal static void Filter(StringBuilder s, char[][] f) { for (int i = 0; i < f.Length; i++) { char[] r = f[i]; if (1 == r.Length) { char c = r[0]; int j = 0; while (j < s.Length) { if (c == s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); } else { j++; } } } else if (2 == r.Length) { char from = r[0]; char to = r[1]; int j = 0; while (j < s.Length) { if (from <= s[j] && to >= s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); } else { j++; } } } } } internal static void Map(StringBuilder s, char[] search, string[] replace) { for (int i = 0; i < search.Length; i++) { char c = search[i]; int j = 0; while (j < s.Length) { if (c == s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); if (null != replace[i]) { s.Insert(j, replace[i]); j += replace[i].Length - 1; } } else { j++; } } } } } } libidn-1.38/csharp/Punycode.cs0000644000000000000000000001433114076271517013206 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { public class Punycode { /* Punycode parameters */ internal const int TMIN = 1; internal const int TMAX = 26; internal const int BASE = 36; internal const int INITIAL_N = 128; internal const int INITIAL_BIAS = 72; internal const int DAMP = 700; internal const int SKEW = 38; internal const char DELIMITER = '-'; /// /// Punycodes a unicode string. /// /// Unicode string. /// Punycoded string. public static string Encode(string input) { int n = INITIAL_N; int delta = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); // Copy all basic code points to the output int b = 0; for (int i = 0; i < input.Length; i++) { char c = input[i]; if (IsBasic(c)) { output.Append(c); b++; } } // Append delimiter if (b > 0) { output.Append(DELIMITER); } int h = b; while (h < input.Length) { int m = System.Int32.MaxValue; // Find the minimum code point >= n for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c >= n && c < m) { m = c; } } if (m - n > (System.Int32.MaxValue - delta) / (h + 1)) { throw new PunycodeException(PunycodeException.OVERFLOW); } delta = delta + (m - n) * (h + 1); n = m; for (int j = 0; j < input.Length; j++) { int c = input[j]; if (c < n) { delta++; if (0 == delta) { throw new PunycodeException(PunycodeException.OVERFLOW); } } if (c == n) { int q = delta; for (int k = BASE; ; k += BASE) { int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (q < t) { break; } output.Append((char) Digit2Codepoint(t + (q - t) % (BASE - t))); q = (q - t) / (BASE - t); } output.Append((char) Digit2Codepoint(q)); bias = Adapt(delta, h + 1, h == b); delta = 0; h++; } } delta++; n++; } return output.ToString(); } /// /// Decode a punycoded string. /// /// Punycode string /// Unicode string. public static string Decode(string input) { int n = INITIAL_N; int i = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); int d = input.LastIndexOf((System.Char) DELIMITER); if (d > 0) { for (int j = 0; j < d; j++) { char c = input[j]; if (!IsBasic(c)) { throw new PunycodeException(PunycodeException.BAD_INPUT); } output.Append(c); } d++; } else { d = 0; } while (d < input.Length) { int oldi = i; int w = 1; for (int k = BASE; ; k += BASE) { if (d == input.Length) { throw new PunycodeException(PunycodeException.BAD_INPUT); } int c = input[d++]; int digit = Codepoint2Digit(c); if (digit > (System.Int32.MaxValue - i) / w) { throw new PunycodeException(PunycodeException.OVERFLOW); } i = i + digit * w; int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (digit < t) { break; } w = w * (BASE - t); } bias = Adapt(i - oldi, output.Length + 1, oldi == 0); if (i / (output.Length + 1) > Int32.MaxValue - n) { throw new PunycodeException(PunycodeException.OVERFLOW); } n = n + i / (output.Length + 1); i = i % (output.Length + 1); // following overload is not supported on CF //output.Insert(i,(char) n); output.Insert(i, new char[1] { (char) n }); i++; } return output.ToString(); } public static int Adapt(int delta, int numpoints, bool first) { if (first) { delta = delta / DAMP; } else { delta = delta / 2; } delta = delta + (delta / numpoints); int k = 0; while (delta > ((BASE - TMIN) * TMAX) / 2) { delta = delta / (BASE - TMIN); k = k + BASE; } return k + ((BASE - TMIN + 1) * delta) / (delta + SKEW); } public static bool IsBasic(char c) { return c < 0x80; } public static int Digit2Codepoint(int d) { if (d < 26) { // 0..25 : 'a'..'z' return d + 'a'; } else if (d < 36) { // 26..35 : '0'..'9'; return d - 26 + '0'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } public static int Codepoint2Digit(int c) { if (c - '0' < 10) { // '0'..'9' : 26..35 return c - '0' + 26; } else if (c - 'a' < 26) { // 'a'..'z' : 0..25 return c - 'a'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } } } libidn-1.38/csharp/Composition.cs0000644000000000000000000015574014076273653013740 00000000000000// Do not edit !!! // this file is generated automatically public class Composition { /* jagged Array */ public static readonly char[][] multiFirst = new char[][] { new char[] { '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u0100', '\u0102', '\u0226', '\u00C4', '\u1EA2', '\u00C5', '\u01CD', '\u0200', '\u0202', '\u1EA0', '\u1E00', '\u0104', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E02', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E04', '\u0000', '\u0000', '\u1E06', }, new char[] { '\u0000', '\u0106', '\u0108', '\u0000', '\u0000', '\u0000', '\u010A', '\u0000', '\u0000', '\u0000', '\u010C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u00C7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E0A', '\u0000', '\u0000', '\u0000', '\u010E', '\u0000', '\u0000', '\u1E0C', '\u0000', '\u0000', '\u1E0E', '\u1E10', '\u1E12', }, new char[] { '\u00C8', '\u00C9', '\u00CA', '\u1EBC', '\u0112', '\u0114', '\u0116', '\u00CB', '\u1EBA', '\u0000', '\u011A', '\u0204', '\u0206', '\u1EB8', '\u0000', '\u0118', '\u0000', '\u0228', '\u1E18', '\u1E1A', }, new char[] { '\u0000', '\u01F4', '\u011C', '\u0000', '\u1E20', '\u011E', '\u0120', '\u0000', '\u0000', '\u0000', '\u01E6', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0122', }, new char[] { '\u0000', '\u0000', '\u0124', '\u0000', '\u0000', '\u0000', '\u1E22', '\u1E26', '\u0000', '\u0000', '\u021E', '\u0000', '\u0000', '\u1E24', '\u0000', '\u0000', '\u0000', '\u1E28', '\u0000', '\u0000', '\u1E2A', }, new char[] { '\u00CC', '\u00CD', '\u00CE', '\u0128', '\u012A', '\u012C', '\u0130', '\u00CF', '\u1EC8', '\u0000', '\u01CF', '\u0208', '\u020A', '\u1ECA', '\u0000', '\u012E', '\u0000', '\u0000', '\u0000', '\u1E2C', }, new char[] { '\u0000', '\u1E30', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01E8', '\u0000', '\u0000', '\u1E32', '\u0000', '\u0000', '\u1E34', '\u0136', }, new char[] { '\u0000', '\u0139', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u013D', '\u0000', '\u0000', '\u1E36', '\u0000', '\u0000', '\u1E3A', '\u013B', '\u1E3C', }, new char[] { '\u0000', '\u1E3E', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E40', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E42', }, new char[] { '\u01F8', '\u0143', '\u0000', '\u00D1', '\u0000', '\u0000', '\u1E44', '\u0000', '\u0000', '\u0000', '\u0147', '\u0000', '\u0000', '\u1E46', '\u0000', '\u0000', '\u1E48', '\u0145', '\u1E4A', }, new char[] { '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u014C', '\u014E', '\u022E', '\u00D6', '\u1ECE', '\u0000', '\u01D1', '\u020C', '\u020E', '\u1ECC', '\u0000', '\u01EA', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0150', '\u01A0', }, new char[] { '\u0000', '\u1E54', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E56', }, new char[] { '\u0000', '\u0154', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E58', '\u0000', '\u0000', '\u0000', '\u0158', '\u0210', '\u0212', '\u1E5A', '\u0000', '\u0000', '\u1E5E', '\u0156', }, new char[] { '\u0000', '\u015A', '\u015C', '\u0000', '\u0000', '\u0000', '\u1E60', '\u0000', '\u0000', '\u0000', '\u0160', '\u0000', '\u0000', '\u1E62', '\u0000', '\u0000', '\u0000', '\u015E', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0218', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E6A', '\u0000', '\u0000', '\u0000', '\u0164', '\u0000', '\u0000', '\u1E6C', '\u0000', '\u0000', '\u1E6E', '\u0162', '\u1E70', '\u0000', '\u0000', '\u0000', '\u0000', '\u021A', }, new char[] { '\u00D9', '\u00DA', '\u00DB', '\u0168', '\u016A', '\u016C', '\u0000', '\u00DC', '\u1EE6', '\u016E', '\u01D3', '\u0214', '\u0216', '\u1EE4', '\u0000', '\u0172', '\u0000', '\u0000', '\u1E76', '\u1E74', '\u0000', '\u0170', '\u01AF', '\u0000', '\u1E72', }, new char[] { '\u0000', '\u0000', '\u0000', '\u1E7C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E7E', }, new char[] { '\u1E80', '\u1E82', '\u0174', '\u0000', '\u0000', '\u0000', '\u1E86', '\u1E84', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E88', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E8A', '\u1E8C', }, new char[] { '\u1EF2', '\u00DD', '\u0176', '\u1EF8', '\u0232', '\u0000', '\u1E8E', '\u0178', '\u1EF6', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EF4', }, new char[] { '\u0000', '\u0179', '\u1E90', '\u0000', '\u0000', '\u0000', '\u017B', '\u0000', '\u0000', '\u0000', '\u017D', '\u0000', '\u0000', '\u1E92', '\u0000', '\u0000', '\u1E94', }, new char[] { '\u00E0', '\u00E1', '\u00E2', '\u00E3', '\u0101', '\u0103', '\u0227', '\u00E4', '\u1EA3', '\u00E5', '\u01CE', '\u0201', '\u0203', '\u1EA1', '\u1E01', '\u0105', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E03', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E05', '\u0000', '\u0000', '\u1E07', }, new char[] { '\u0000', '\u0107', '\u0109', '\u0000', '\u0000', '\u0000', '\u010B', '\u0000', '\u0000', '\u0000', '\u010D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u00E7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E0B', '\u0000', '\u0000', '\u0000', '\u010F', '\u0000', '\u0000', '\u1E0D', '\u0000', '\u0000', '\u1E0F', '\u1E11', '\u1E13', }, new char[] { '\u00E8', '\u00E9', '\u00EA', '\u1EBD', '\u0113', '\u0115', '\u0117', '\u00EB', '\u1EBB', '\u0000', '\u011B', '\u0205', '\u0207', '\u1EB9', '\u0000', '\u0119', '\u0000', '\u0229', '\u1E19', '\u1E1B', }, new char[] { '\u0000', '\u01F5', '\u011D', '\u0000', '\u1E21', '\u011F', '\u0121', '\u0000', '\u0000', '\u0000', '\u01E7', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0123', }, new char[] { '\u0000', '\u0000', '\u0125', '\u0000', '\u0000', '\u0000', '\u1E23', '\u1E27', '\u0000', '\u0000', '\u021F', '\u0000', '\u0000', '\u1E25', '\u0000', '\u0000', '\u1E96', '\u1E29', '\u0000', '\u0000', '\u1E2B', }, new char[] { '\u00EC', '\u00ED', '\u00EE', '\u0129', '\u012B', '\u012D', '\u0000', '\u00EF', '\u1EC9', '\u0000', '\u01D0', '\u0209', '\u020B', '\u1ECB', '\u0000', '\u012F', '\u0000', '\u0000', '\u0000', '\u1E2D', }, new char[] { '\u0000', '\u0000', '\u0135', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01F0', }, new char[] { '\u0000', '\u1E31', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01E9', '\u0000', '\u0000', '\u1E33', '\u0000', '\u0000', '\u1E35', '\u0137', }, new char[] { '\u0000', '\u013A', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u013E', '\u0000', '\u0000', '\u1E37', '\u0000', '\u0000', '\u1E3B', '\u013C', '\u1E3D', }, new char[] { '\u0000', '\u1E3F', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E41', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E43', }, new char[] { '\u01F9', '\u0144', '\u0000', '\u00F1', '\u0000', '\u0000', '\u1E45', '\u0000', '\u0000', '\u0000', '\u0148', '\u0000', '\u0000', '\u1E47', '\u0000', '\u0000', '\u1E49', '\u0146', '\u1E4B', }, new char[] { '\u00F2', '\u00F3', '\u00F4', '\u00F5', '\u014D', '\u014F', '\u022F', '\u00F6', '\u1ECF', '\u0000', '\u01D2', '\u020D', '\u020F', '\u1ECD', '\u0000', '\u01EB', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0151', '\u01A1', }, new char[] { '\u0000', '\u1E55', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E57', }, new char[] { '\u0000', '\u0155', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E59', '\u0000', '\u0000', '\u0000', '\u0159', '\u0211', '\u0213', '\u1E5B', '\u0000', '\u0000', '\u1E5F', '\u0157', }, new char[] { '\u0000', '\u015B', '\u015D', '\u0000', '\u0000', '\u0000', '\u1E61', '\u0000', '\u0000', '\u0000', '\u0161', '\u0000', '\u0000', '\u1E63', '\u0000', '\u0000', '\u0000', '\u015F', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0219', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E6B', '\u1E97', '\u0000', '\u0000', '\u0165', '\u0000', '\u0000', '\u1E6D', '\u0000', '\u0000', '\u1E6F', '\u0163', '\u1E71', '\u0000', '\u0000', '\u0000', '\u0000', '\u021B', }, new char[] { '\u00F9', '\u00FA', '\u00FB', '\u0169', '\u016B', '\u016D', '\u0000', '\u00FC', '\u1EE7', '\u016F', '\u01D4', '\u0215', '\u0217', '\u1EE5', '\u0000', '\u0173', '\u0000', '\u0000', '\u1E77', '\u1E75', '\u0000', '\u0171', '\u01B0', '\u0000', '\u1E73', }, new char[] { '\u0000', '\u0000', '\u0000', '\u1E7D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E7F', }, new char[] { '\u1E81', '\u1E83', '\u0175', '\u0000', '\u0000', '\u0000', '\u1E87', '\u1E85', '\u0000', '\u1E98', '\u0000', '\u0000', '\u0000', '\u1E89', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E8B', '\u1E8D', }, new char[] { '\u1EF3', '\u00FD', '\u0177', '\u1EF9', '\u0233', '\u0000', '\u1E8F', '\u00FF', '\u1EF7', '\u1E99', '\u0000', '\u0000', '\u0000', '\u1EF5', }, new char[] { '\u0000', '\u017A', '\u1E91', '\u0000', '\u0000', '\u0000', '\u017C', '\u0000', '\u0000', '\u0000', '\u017E', '\u0000', '\u0000', '\u1E93', '\u0000', '\u0000', '\u1E95', }, new char[] { '\u1FED', '\u0385', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FC1', }, new char[] { '\u1EA6', '\u1EA4', '\u0000', '\u1EAA', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EA8', }, new char[] { '\u0000', '\u01FC', '\u0000', '\u0000', '\u01E2', }, new char[] { '\u1EC0', '\u1EBE', '\u0000', '\u1EC4', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EC2', }, new char[] { '\u1ED2', '\u1ED0', '\u0000', '\u1ED6', '\u0000', '\u0000', '\u0000', '\u0000', '\u1ED4', }, new char[] { '\u0000', '\u1E4C', '\u0000', '\u0000', '\u022C', '\u0000', '\u0000', '\u1E4E', }, new char[] { '\u01DB', '\u01D7', '\u0000', '\u0000', '\u01D5', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01D9', }, new char[] { '\u1EA7', '\u1EA5', '\u0000', '\u1EAB', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EA9', }, new char[] { '\u0000', '\u01FD', '\u0000', '\u0000', '\u01E3', }, new char[] { '\u1EC1', '\u1EBF', '\u0000', '\u1EC5', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EC3', }, new char[] { '\u1ED3', '\u1ED1', '\u0000', '\u1ED7', '\u0000', '\u0000', '\u0000', '\u0000', '\u1ED5', }, new char[] { '\u0000', '\u1E4D', '\u0000', '\u0000', '\u022D', '\u0000', '\u0000', '\u1E4F', }, new char[] { '\u01DC', '\u01D8', '\u0000', '\u0000', '\u01D6', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01DA', }, new char[] { '\u1EB0', '\u1EAE', '\u0000', '\u1EB4', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EB2', }, new char[] { '\u1EB1', '\u1EAF', '\u0000', '\u1EB5', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EB3', }, new char[] { '\u1E14', '\u1E16', }, new char[] { '\u1E15', '\u1E17', }, new char[] { '\u1E50', '\u1E52', }, new char[] { '\u1E51', '\u1E53', }, new char[] { '\u1EDC', '\u1EDA', '\u0000', '\u1EE0', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EDE', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EE2', }, new char[] { '\u1EDD', '\u1EDB', '\u0000', '\u1EE1', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EDF', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EE3', }, new char[] { '\u1EEA', '\u1EE8', '\u0000', '\u1EEE', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EEC', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EF0', }, new char[] { '\u1EEB', '\u1EE9', '\u0000', '\u1EEF', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EED', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EF1', }, new char[] { '\u1FBA', '\u0386', '\u0000', '\u0000', '\u1FB9', '\u1FB8', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F08', '\u1F09', '\u1FBC', }, new char[] { '\u1FC8', '\u0388', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F18', '\u1F19', }, new char[] { '\u1FCA', '\u0389', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F28', '\u1F29', '\u1FCC', }, new char[] { '\u1FDA', '\u038A', '\u0000', '\u0000', '\u1FD9', '\u1FD8', '\u0000', '\u03AA', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F38', '\u1F39', }, new char[] { '\u1FF8', '\u038C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F48', '\u1F49', }, new char[] { '\u1FEA', '\u038E', '\u0000', '\u0000', '\u1FE9', '\u1FE8', '\u0000', '\u03AB', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F59', }, new char[] { '\u1FFA', '\u038F', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F68', '\u1F69', '\u1FFC', }, new char[] { '\u1F70', '\u03AC', '\u0000', '\u0000', '\u1FB1', '\u1FB0', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FB6', '\u1F00', '\u1F01', '\u1FB3', }, new char[] { '\u1F72', '\u03AD', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F10', '\u1F11', }, new char[] { '\u1F74', '\u03AE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FC6', '\u1F20', '\u1F21', '\u1FC3', }, new char[] { '\u1F76', '\u03AF', '\u0000', '\u0000', '\u1FD1', '\u1FD0', '\u0000', '\u03CA', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FD6', '\u1F30', '\u1F31', }, new char[] { '\u1F78', '\u03CC', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F40', '\u1F41', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FE4', '\u1FE5', }, new char[] { '\u1F7A', '\u03CD', '\u0000', '\u0000', '\u1FE1', '\u1FE0', '\u0000', '\u03CB', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FE6', '\u1F50', '\u1F51', }, new char[] { '\u1F7C', '\u03CE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FF6', '\u1F60', '\u1F61', '\u1FF3', }, new char[] { '\u1FD2', '\u0390', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FD7', }, new char[] { '\u1FE2', '\u03B0', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FE7', }, new char[] { '\u0000', '\u03D3', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u03D4', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D0', '\u0000', '\u04D2', }, new char[] { '\u0400', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D6', '\u0000', '\u0401', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04C1', '\u0000', '\u04DC', }, new char[] { '\u040D', '\u0000', '\u0000', '\u0000', '\u04E2', '\u0419', '\u0000', '\u04E4', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u04EE', '\u040E', '\u0000', '\u04F0', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04F2', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D1', '\u0000', '\u04D3', }, new char[] { '\u0450', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D7', '\u0000', '\u0451', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04C2', '\u0000', '\u04DD', }, new char[] { '\u045D', '\u0000', '\u0000', '\u0000', '\u04E3', '\u0439', '\u0000', '\u04E5', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u04EF', '\u045E', '\u0000', '\u04F1', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04F3', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0623', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0BCA', '\u0BCC', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0CC7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0D4A', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0DDA', }, new char[] { '\u0000', '\u0000', '\u1EAC', '\u0000', '\u0000', '\u1EB6', }, new char[] { '\u0000', '\u0000', '\u1EAD', '\u0000', '\u0000', '\u1EB7', }, new char[] { '\u1F02', '\u1F04', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F06', '\u0000', '\u0000', '\u1F80', }, new char[] { '\u1F03', '\u1F05', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F07', '\u0000', '\u0000', '\u1F81', }, new char[] { '\u1F0A', '\u1F0C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F0E', '\u0000', '\u0000', '\u1F88', }, new char[] { '\u1F0B', '\u1F0D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F0F', '\u0000', '\u0000', '\u1F89', }, new char[] { '\u1F12', '\u1F14', }, new char[] { '\u1F13', '\u1F15', }, new char[] { '\u1F1A', '\u1F1C', }, new char[] { '\u1F1B', '\u1F1D', }, new char[] { '\u1F22', '\u1F24', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F26', '\u0000', '\u0000', '\u1F90', }, new char[] { '\u1F23', '\u1F25', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F27', '\u0000', '\u0000', '\u1F91', }, new char[] { '\u1F2A', '\u1F2C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F2E', '\u0000', '\u0000', '\u1F98', }, new char[] { '\u1F2B', '\u1F2D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F2F', '\u0000', '\u0000', '\u1F99', }, new char[] { '\u1F32', '\u1F34', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F36', }, new char[] { '\u1F33', '\u1F35', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F37', }, new char[] { '\u1F3A', '\u1F3C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F3E', }, new char[] { '\u1F3B', '\u1F3D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F3F', }, new char[] { '\u1F42', '\u1F44', }, new char[] { '\u1F43', '\u1F45', }, new char[] { '\u1F4A', '\u1F4C', }, new char[] { '\u1F4B', '\u1F4D', }, new char[] { '\u1F52', '\u1F54', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F56', }, new char[] { '\u1F53', '\u1F55', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F57', }, new char[] { '\u1F5B', '\u1F5D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F5F', }, new char[] { '\u1F62', '\u1F64', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F66', '\u0000', '\u0000', '\u1FA0', }, new char[] { '\u1F63', '\u1F65', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F67', '\u0000', '\u0000', '\u1FA1', }, new char[] { '\u1F6A', '\u1F6C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F6E', '\u0000', '\u0000', '\u1FA8', }, new char[] { '\u1F6B', '\u1F6D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F6F', '\u0000', '\u0000', '\u1FA9', }, new char[] { '\u1FCD', '\u1FCE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FCF', }, new char[] { '\u1FDD', '\u1FDE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FDF', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3070', '\u3071', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3073', '\u3074', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3076', '\u3077', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3079', '\u307A', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u307C', '\u307D', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D0', '\u30D1', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D3', '\u30D4', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D6', '\u30D7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D9', '\u30DA', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30DC', '\u30DD', }, }; public static readonly char[,] singleFirst = new char[,] { { '\u0338', '\u226E' }, { '\u0338', '\u2260' }, { '\u0338', '\u226F' }, { '\u0307', '\u1E1E' }, { '\u0302', '\u0134' }, { '\u0307', '\u1E1F' }, { '\u0304', '\u01DE' }, { '\u0301', '\u01FA' }, { '\u0301', '\u1E08' }, { '\u0301', '\u1E2E' }, { '\u0304', '\u022A' }, { '\u0301', '\u01FE' }, { '\u0304', '\u01DF' }, { '\u0301', '\u01FB' }, { '\u0301', '\u1E09' }, { '\u0301', '\u1E2F' }, { '\u0304', '\u022B' }, { '\u0301', '\u01FF' }, { '\u0307', '\u1E64' }, { '\u0307', '\u1E65' }, { '\u0307', '\u1E66' }, { '\u0307', '\u1E67' }, { '\u0301', '\u1E78' }, { '\u0301', '\u1E79' }, { '\u0308', '\u1E7A' }, { '\u0308', '\u1E7B' }, { '\u0307', '\u1E9B' }, { '\u030C', '\u01EE' }, { '\u0304', '\u01EC' }, { '\u0304', '\u01ED' }, { '\u0304', '\u01E0' }, { '\u0304', '\u01E1' }, { '\u0306', '\u1E1C' }, { '\u0306', '\u1E1D' }, { '\u0304', '\u0230' }, { '\u0304', '\u0231' }, { '\u030C', '\u01EF' }, { '\u0314', '\u1FEC' }, { '\u0345', '\u1FB4' }, { '\u0345', '\u1FC4' }, { '\u0345', '\u1FF4' }, { '\u0308', '\u0407' }, { '\u0301', '\u0403' }, { '\u0308', '\u04DE' }, { '\u0301', '\u040C' }, { '\u0308', '\u04E6' }, { '\u0308', '\u04F4' }, { '\u0308', '\u04F8' }, { '\u0308', '\u04EC' }, { '\u0301', '\u0453' }, { '\u0308', '\u04DF' }, { '\u0301', '\u045C' }, { '\u0308', '\u04E7' }, { '\u0308', '\u04F5' }, { '\u0308', '\u04F9' }, { '\u0308', '\u04ED' }, { '\u0308', '\u0457' }, { '\u030F', '\u0476' }, { '\u030F', '\u0477' }, { '\u0308', '\u04DA' }, { '\u0308', '\u04DB' }, { '\u0308', '\u04EA' }, { '\u0308', '\u04EB' }, { '\u0654', '\u0624' }, { '\u0654', '\u0626' }, { '\u0654', '\u06C2' }, { '\u0654', '\u06D3' }, { '\u0654', '\u06C0' }, { '\u093C', '\u0929' }, { '\u093C', '\u0931' }, { '\u093C', '\u0934' }, { '\u0BD7', '\u0B94' }, { '\u0BBE', '\u0BCB' }, { '\u0C56', '\u0C48' }, { '\u0CD5', '\u0CC0' }, { '\u0CD5', '\u0CCB' }, { '\u0D3E', '\u0D4B' }, { '\u0DCA', '\u0DDD' }, { '\u102E', '\u1026' }, { '\u0304', '\u1E38' }, { '\u0304', '\u1E39' }, { '\u0304', '\u1E5C' }, { '\u0304', '\u1E5D' }, { '\u0307', '\u1E68' }, { '\u0307', '\u1E69' }, { '\u0302', '\u1EC6' }, { '\u0302', '\u1EC7' }, { '\u0302', '\u1ED8' }, { '\u0302', '\u1ED9' }, { '\u0345', '\u1F82' }, { '\u0345', '\u1F83' }, { '\u0345', '\u1F84' }, { '\u0345', '\u1F85' }, { '\u0345', '\u1F86' }, { '\u0345', '\u1F87' }, { '\u0345', '\u1F8A' }, { '\u0345', '\u1F8B' }, { '\u0345', '\u1F8C' }, { '\u0345', '\u1F8D' }, { '\u0345', '\u1F8E' }, { '\u0345', '\u1F8F' }, { '\u0345', '\u1F92' }, { '\u0345', '\u1F93' }, { '\u0345', '\u1F94' }, { '\u0345', '\u1F95' }, { '\u0345', '\u1F96' }, { '\u0345', '\u1F97' }, { '\u0345', '\u1F9A' }, { '\u0345', '\u1F9B' }, { '\u0345', '\u1F9C' }, { '\u0345', '\u1F9D' }, { '\u0345', '\u1F9E' }, { '\u0345', '\u1F9F' }, { '\u0345', '\u1FA2' }, { '\u0345', '\u1FA3' }, { '\u0345', '\u1FA4' }, { '\u0345', '\u1FA5' }, { '\u0345', '\u1FA6' }, { '\u0345', '\u1FA7' }, { '\u0345', '\u1FAA' }, { '\u0345', '\u1FAB' }, { '\u0345', '\u1FAC' }, { '\u0345', '\u1FAD' }, { '\u0345', '\u1FAE' }, { '\u0345', '\u1FAF' }, { '\u0345', '\u1FB2' }, { '\u0345', '\u1FC2' }, { '\u0345', '\u1FF2' }, { '\u0345', '\u1FB7' }, { '\u0345', '\u1FC7' }, { '\u0345', '\u1FF7' }, { '\u0338', '\u219A' }, { '\u0338', '\u219B' }, { '\u0338', '\u21AE' }, { '\u0338', '\u21CD' }, { '\u0338', '\u21CF' }, { '\u0338', '\u21CE' }, { '\u0338', '\u2204' }, { '\u0338', '\u2209' }, { '\u0338', '\u220C' }, { '\u0338', '\u2224' }, { '\u0338', '\u2226' }, { '\u0338', '\u2241' }, { '\u0338', '\u2244' }, { '\u0338', '\u2247' }, { '\u0338', '\u2249' }, { '\u0338', '\u226D' }, { '\u0338', '\u2262' }, { '\u0338', '\u2270' }, { '\u0338', '\u2271' }, { '\u0338', '\u2274' }, { '\u0338', '\u2275' }, { '\u0338', '\u2278' }, { '\u0338', '\u2279' }, { '\u0338', '\u2280' }, { '\u0338', '\u2281' }, { '\u0338', '\u22E0' }, { '\u0338', '\u22E1' }, { '\u0338', '\u2284' }, { '\u0338', '\u2285' }, { '\u0338', '\u2288' }, { '\u0338', '\u2289' }, { '\u0338', '\u22E2' }, { '\u0338', '\u22E3' }, { '\u0338', '\u22AC' }, { '\u0338', '\u22AD' }, { '\u0338', '\u22AE' }, { '\u0338', '\u22AF' }, { '\u0338', '\u22EA' }, { '\u0338', '\u22EB' }, { '\u0338', '\u22EC' }, { '\u0338', '\u22ED' }, { '\u3099', '\u3094' }, { '\u3099', '\u304C' }, { '\u3099', '\u304E' }, { '\u3099', '\u3050' }, { '\u3099', '\u3052' }, { '\u3099', '\u3054' }, { '\u3099', '\u3056' }, { '\u3099', '\u3058' }, { '\u3099', '\u305A' }, { '\u3099', '\u305C' }, { '\u3099', '\u305E' }, { '\u3099', '\u3060' }, { '\u3099', '\u3062' }, { '\u3099', '\u3065' }, { '\u3099', '\u3067' }, { '\u3099', '\u3069' }, { '\u3099', '\u309E' }, { '\u3099', '\u30F4' }, { '\u3099', '\u30AC' }, { '\u3099', '\u30AE' }, { '\u3099', '\u30B0' }, { '\u3099', '\u30B2' }, { '\u3099', '\u30B4' }, { '\u3099', '\u30B6' }, { '\u3099', '\u30B8' }, { '\u3099', '\u30BA' }, { '\u3099', '\u30BC' }, { '\u3099', '\u30BE' }, { '\u3099', '\u30C0' }, { '\u3099', '\u30C2' }, { '\u3099', '\u30C5' }, { '\u3099', '\u30C7' }, { '\u3099', '\u30C9' }, { '\u3099', '\u30F7' }, { '\u3099', '\u30F8' }, { '\u3099', '\u30F9' }, { '\u3099', '\u30FA' }, { '\u3099', '\u30FE' }, }; public static readonly char[,] singleSecond = new char[,] { { '\u0627', '\u0622' }, { '\u0627', '\u0625' }, { '\u09C7', '\u09CB' }, { '\u09C7', '\u09CC' }, { '\u0B47', '\u0B4B' }, { '\u0B47', '\u0B48' }, { '\u0B47', '\u0B4C' }, { '\u0CC6', '\u0CCA' }, { '\u0CC6', '\u0CC8' }, { '\u0D46', '\u0D4C' }, { '\u0DD9', '\u0DDC' }, { '\u0DD9', '\u0DDE' }, }; public static readonly int multiSecondStart = 144; public static readonly int singleFirstStart = 181; public static readonly int singleSecondStart = 391; public static readonly int[] composePage = new int[] { 0, 1, 2, 3, 4, -1, 5, -1, -1, 6, -1, 7, 8, 9, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, }; public static readonly int[,] composeData = new int[,] { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, 182, 183, -1, -1, 0, 1, 2, 3, 4, 184, 5, 6, 7, 185, 8, 9, 10, 11, 12, 13, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, 23, 24, 25, 26, 27, 186, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, 187, 188, 49, 189, -1, -1, 50, -1, -1, -1, -1, 190, -1, -1, -1, -1, 51, 52, 191, -1, 192, -1, -1, -1, 53, -1, -1, -1, -1, -1, 54, -1, 193, 194, 55, 195, -1, -1, 56, -1, -1, -1, -1, 196, -1, -1, -1, -1, 57, 58, 197, -1, 198, -1, -1, -1, 59, -1, -1, -1, }, { -1, -1, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, 203, 204, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, 214, -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 144, 145, 146, 147, 148, -1, 149, 150, 151, 152, 153, 165, 154, -1, -1, 155, -1, 156, -1, 170, 171, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, 157, 168, 158, 167, 161, 159, -1, -1, -1, -1, 162, 164, -1, 163, 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 71, -1, 72, -1, 73, -1, -1, -1, -1, -1, 74, -1, 218, -1, -1, -1, 75, -1, -1, -1, 76, -1, -1, 219, -1, 220, -1, -1, 77, -1, -1, -1, 78, -1, 79, -1, 80, -1, -1, -1, -1, -1, 81, -1, 82, -1, -1, -1, 83, -1, -1, -1, 84, 85, 86, -1, -1, 221, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, 223, -1, 89, 90, 224, 91, -1, 225, -1, -1, -1, 226, -1, -1, -1, -1, 92, -1, -1, -1, 227, -1, -1, -1, 228, -1, 229, -1, -1, 93, -1, -1, 230, -1, 94, 95, 231, 96, -1, 232, -1, -1, -1, 233, -1, -1, -1, -1, 97, -1, -1, -1, 234, -1, -1, -1, 235, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, 245, -1, -1, -1, -1, -1, -1, -1, -1, 391, 173, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, 248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 249, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, 99, 253, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, 398, -1, -1, -1, 100, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, 101, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, 258, -1, -1, 402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, -1, -1, -1, -1, -1, -1, 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 105, 106, 270, 271, 272, 273, 274, 275, 107, 108, 276, 277, 278, 279, 280, 281, 109, 110, -1, -1, -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, 113, 114, 282, 283, 284, 285, 286, 287, 115, 116, 288, 289, 290, 291, 292, 293, 117, 118, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, 125, 126, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, 128, 129, 294, 295, 296, 297, 298, 299, 130, 131, 300, 301, 302, 303, 304, 305, 306, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, 133, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 313, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, -1, 316, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, 318, -1, -1, -1, -1, 319, -1, -1, 320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 324, -1, 325, -1, -1, 326, -1, -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, 329, 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, 332, -1, -1, 333, 334, -1, -1, 335, 336, 337, 338, -1, -1, -1, -1, 339, 340, -1, -1, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, -1, -1, -1, 346, 347, -1, 348, -1, -1, -1, -1, -1, -1, 349, 350, 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, 354, -1, 355, -1, 356, -1, 357, -1, 358, -1, 359, -1, 360, -1, 361, -1, 362, -1, 363, -1, 364, -1, 365, -1, -1, 366, -1, 367, -1, 368, -1, -1, -1, -1, -1, -1, 134, -1, -1, 135, -1, -1, 136, -1, -1, 137, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 179, 180, -1, -1, 369, -1, -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, -1, 380, -1, 381, -1, 382, -1, -1, 383, -1, 384, -1, 385, -1, -1, -1, -1, -1, -1, 139, -1, -1, 140, -1, -1, 141, -1, -1, 142, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, -1, -1, }, }; } libidn-1.38/csharp/libidn.csproj0000644000000000000000000000454614053001337013545 00000000000000 Debug AnyCPU 2.0 {BED43666-B1A2-486D-871C-A65A2A925764} libidn Library 1 False False OnSuccessfulBuild True False False False bin\Debug\ False False False False False bin\Release\ False libidn-1.38/csharp/DecompositionKeys.cs0000644000000000000000000021210414076273653015071 00000000000000// Do not edit !!! // this file is generated automatically public class DecompositionKeys { public static readonly int[] k = new int[] { '\u00A0', 0, '\u00A8', 1, '\u00AA', 2, '\u00AF', 3, '\u00B2', 4, '\u00B3', 5, '\u00B4', 6, '\u00B5', 7, '\u00B8', 8, '\u00B9', 9, '\u00BA', 10, '\u00BC', 11, '\u00BD', 12, '\u00BE', 13, '\u00C0', 14, '\u00C1', 15, '\u00C2', 16, '\u00C3', 17, '\u00C4', 18, '\u00C5', 19, '\u00C7', 20, '\u00C8', 21, '\u00C9', 22, '\u00CA', 23, '\u00CB', 24, '\u00CC', 25, '\u00CD', 26, '\u00CE', 27, '\u00CF', 28, '\u00D1', 29, '\u00D2', 30, '\u00D3', 31, '\u00D4', 32, '\u00D5', 33, '\u00D6', 34, '\u00D9', 35, '\u00DA', 36, '\u00DB', 37, '\u00DC', 38, '\u00DD', 39, '\u00E0', 40, '\u00E1', 41, '\u00E2', 42, '\u00E3', 43, '\u00E4', 44, '\u00E5', 45, '\u00E7', 46, '\u00E8', 47, '\u00E9', 48, '\u00EA', 49, '\u00EB', 50, '\u00EC', 51, '\u00ED', 52, '\u00EE', 53, '\u00EF', 54, '\u00F1', 55, '\u00F2', 56, '\u00F3', 57, '\u00F4', 58, '\u00F5', 59, '\u00F6', 60, '\u00F9', 61, '\u00FA', 62, '\u00FB', 63, '\u00FC', 64, '\u00FD', 65, '\u00FF', 66, '\u0100', 67, '\u0101', 68, '\u0102', 69, '\u0103', 70, '\u0104', 71, '\u0105', 72, '\u0106', 73, '\u0107', 74, '\u0108', 75, '\u0109', 76, '\u010A', 77, '\u010B', 78, '\u010C', 79, '\u010D', 80, '\u010E', 81, '\u010F', 82, '\u0112', 83, '\u0113', 84, '\u0114', 85, '\u0115', 86, '\u0116', 87, '\u0117', 88, '\u0118', 89, '\u0119', 90, '\u011A', 91, '\u011B', 92, '\u011C', 93, '\u011D', 94, '\u011E', 95, '\u011F', 96, '\u0120', 97, '\u0121', 98, '\u0122', 99, '\u0123', 100, '\u0124', 101, '\u0125', 102, '\u0128', 103, '\u0129', 104, '\u012A', 105, '\u012B', 106, '\u012C', 107, '\u012D', 108, '\u012E', 109, '\u012F', 110, '\u0130', 111, '\u0132', 112, '\u0133', 113, '\u0134', 114, '\u0135', 115, '\u0136', 116, '\u0137', 117, '\u0139', 118, '\u013A', 119, '\u013B', 120, '\u013C', 121, '\u013D', 122, '\u013E', 123, '\u013F', 124, '\u0140', 125, '\u0143', 126, '\u0144', 127, '\u0145', 128, '\u0146', 129, '\u0147', 130, '\u0148', 131, '\u0149', 132, '\u014C', 133, '\u014D', 134, '\u014E', 135, '\u014F', 136, '\u0150', 137, '\u0151', 138, '\u0154', 139, '\u0155', 140, '\u0156', 141, '\u0157', 142, '\u0158', 143, '\u0159', 144, '\u015A', 145, '\u015B', 146, '\u015C', 147, '\u015D', 148, '\u015E', 149, '\u015F', 150, '\u0160', 151, '\u0161', 152, '\u0162', 153, '\u0163', 154, '\u0164', 155, '\u0165', 156, '\u0168', 157, '\u0169', 158, '\u016A', 159, '\u016B', 160, '\u016C', 161, '\u016D', 162, '\u016E', 163, '\u016F', 164, '\u0170', 165, '\u0171', 166, '\u0172', 167, '\u0173', 168, '\u0174', 169, '\u0175', 170, '\u0176', 171, '\u0177', 172, '\u0178', 173, '\u0179', 174, '\u017A', 175, '\u017B', 176, '\u017C', 177, '\u017D', 178, '\u017E', 179, '\u017F', 180, '\u01A0', 181, '\u01A1', 182, '\u01AF', 183, '\u01B0', 184, '\u01C4', 185, '\u01C5', 186, '\u01C6', 187, '\u01C7', 188, '\u01C8', 189, '\u01C9', 190, '\u01CA', 191, '\u01CB', 192, '\u01CC', 193, '\u01CD', 194, '\u01CE', 195, '\u01CF', 196, '\u01D0', 197, '\u01D1', 198, '\u01D2', 199, '\u01D3', 200, '\u01D4', 201, '\u01D5', 202, '\u01D6', 203, '\u01D7', 204, '\u01D8', 205, '\u01D9', 206, '\u01DA', 207, '\u01DB', 208, '\u01DC', 209, '\u01DE', 210, '\u01DF', 211, '\u01E0', 212, '\u01E1', 213, '\u01E2', 214, '\u01E3', 215, '\u01E6', 216, '\u01E7', 217, '\u01E8', 218, '\u01E9', 219, '\u01EA', 220, '\u01EB', 221, '\u01EC', 222, '\u01ED', 223, '\u01EE', 224, '\u01EF', 225, '\u01F0', 226, '\u01F1', 227, '\u01F2', 228, '\u01F3', 229, '\u01F4', 230, '\u01F5', 231, '\u01F8', 232, '\u01F9', 233, '\u01FA', 234, '\u01FB', 235, '\u01FC', 236, '\u01FD', 237, '\u01FE', 238, '\u01FF', 239, '\u0200', 240, '\u0201', 241, '\u0202', 242, '\u0203', 243, '\u0204', 244, '\u0205', 245, '\u0206', 246, '\u0207', 247, '\u0208', 248, '\u0209', 249, '\u020A', 250, '\u020B', 251, '\u020C', 252, '\u020D', 253, '\u020E', 254, '\u020F', 255, '\u0210', 256, '\u0211', 257, '\u0212', 258, '\u0213', 259, '\u0214', 260, '\u0215', 261, '\u0216', 262, '\u0217', 263, '\u0218', 264, '\u0219', 265, '\u021A', 266, '\u021B', 267, '\u021E', 268, '\u021F', 269, '\u0226', 270, '\u0227', 271, '\u0228', 272, '\u0229', 273, '\u022A', 274, '\u022B', 275, '\u022C', 276, '\u022D', 277, '\u022E', 278, '\u022F', 279, '\u0230', 280, '\u0231', 281, '\u0232', 282, '\u0233', 283, '\u02B0', 284, '\u02B1', 285, '\u02B2', 286, '\u02B3', 287, '\u02B4', 288, '\u02B5', 289, '\u02B6', 290, '\u02B7', 291, '\u02B8', 292, '\u02D8', 293, '\u02D9', 294, '\u02DA', 295, '\u02DB', 296, '\u02DC', 297, '\u02DD', 298, '\u02E0', 299, '\u02E1', 300, '\u02E2', 180, '\u02E3', 301, '\u02E4', 302, '\u0340', 303, '\u0341', 304, '\u0343', 305, '\u0344', 306, '\u0374', 307, '\u037A', 308, '\u037E', 309, '\u0384', 6, '\u0385', 310, '\u0386', 311, '\u0387', 312, '\u0388', 313, '\u0389', 314, '\u038A', 315, '\u038C', 316, '\u038E', 317, '\u038F', 318, '\u0390', 319, '\u03AA', 320, '\u03AB', 321, '\u03AC', 322, '\u03AD', 323, '\u03AE', 324, '\u03AF', 325, '\u03B0', 326, '\u03CA', 327, '\u03CB', 328, '\u03CC', 329, '\u03CD', 330, '\u03CE', 331, '\u03D0', 332, '\u03D1', 333, '\u03D2', 334, '\u03D3', 317, '\u03D4', 321, '\u03D5', 335, '\u03D6', 336, '\u03F0', 337, '\u03F1', 338, '\u03F2', 339, '\u03F4', 340, '\u03F5', 341, '\u0400', 342, '\u0401', 343, '\u0403', 344, '\u0407', 345, '\u040C', 346, '\u040D', 347, '\u040E', 348, '\u0419', 349, '\u0439', 350, '\u0450', 351, '\u0451', 352, '\u0453', 353, '\u0457', 354, '\u045C', 355, '\u045D', 356, '\u045E', 357, '\u0476', 358, '\u0477', 359, '\u04C1', 360, '\u04C2', 361, '\u04D0', 362, '\u04D1', 363, '\u04D2', 364, '\u04D3', 365, '\u04D6', 366, '\u04D7', 367, '\u04DA', 368, '\u04DB', 369, '\u04DC', 370, '\u04DD', 371, '\u04DE', 372, '\u04DF', 373, '\u04E2', 374, '\u04E3', 375, '\u04E4', 376, '\u04E5', 377, '\u04E6', 378, '\u04E7', 379, '\u04EA', 380, '\u04EB', 381, '\u04EC', 382, '\u04ED', 383, '\u04EE', 384, '\u04EF', 385, '\u04F0', 386, '\u04F1', 387, '\u04F2', 388, '\u04F3', 389, '\u04F4', 390, '\u04F5', 391, '\u04F8', 392, '\u04F9', 393, '\u0587', 394, '\u0622', 395, '\u0623', 396, '\u0624', 397, '\u0625', 398, '\u0626', 399, '\u0675', 400, '\u0676', 401, '\u0677', 402, '\u0678', 403, '\u06C0', 404, '\u06C2', 405, '\u06D3', 406, '\u0929', 407, '\u0931', 408, '\u0934', 409, '\u0958', 410, '\u0959', 411, '\u095A', 412, '\u095B', 413, '\u095C', 414, '\u095D', 415, '\u095E', 416, '\u095F', 417, '\u09CB', 418, '\u09CC', 419, '\u09DC', 420, '\u09DD', 421, '\u09DF', 422, '\u0A33', 423, '\u0A36', 424, '\u0A59', 425, '\u0A5A', 426, '\u0A5B', 427, '\u0A5E', 428, '\u0B48', 429, '\u0B4B', 430, '\u0B4C', 431, '\u0B5C', 432, '\u0B5D', 433, '\u0B94', 434, '\u0BCA', 435, '\u0BCB', 436, '\u0BCC', 437, '\u0C48', 438, '\u0CC0', 439, '\u0CC7', 440, '\u0CC8', 441, '\u0CCA', 442, '\u0CCB', 443, '\u0D4A', 444, '\u0D4B', 445, '\u0D4C', 446, '\u0DDA', 447, '\u0DDC', 448, '\u0DDD', 449, '\u0DDE', 450, '\u0E33', 451, '\u0EB3', 452, '\u0EDC', 453, '\u0EDD', 454, '\u0F0C', 455, '\u0F43', 456, '\u0F4D', 457, '\u0F52', 458, '\u0F57', 459, '\u0F5C', 460, '\u0F69', 461, '\u0F73', 462, '\u0F75', 463, '\u0F76', 464, '\u0F77', 465, '\u0F78', 466, '\u0F79', 467, '\u0F81', 468, '\u0F93', 469, '\u0F9D', 470, '\u0FA2', 471, '\u0FA7', 472, '\u0FAC', 473, '\u0FB9', 474, '\u1026', 475, '\u1E00', 476, '\u1E01', 477, '\u1E02', 478, '\u1E03', 479, '\u1E04', 480, '\u1E05', 481, '\u1E06', 482, '\u1E07', 483, '\u1E08', 484, '\u1E09', 485, '\u1E0A', 486, '\u1E0B', 487, '\u1E0C', 488, '\u1E0D', 489, '\u1E0E', 490, '\u1E0F', 491, '\u1E10', 492, '\u1E11', 493, '\u1E12', 494, '\u1E13', 495, '\u1E14', 496, '\u1E15', 497, '\u1E16', 498, '\u1E17', 499, '\u1E18', 500, '\u1E19', 501, '\u1E1A', 502, '\u1E1B', 503, '\u1E1C', 504, '\u1E1D', 505, '\u1E1E', 506, '\u1E1F', 507, '\u1E20', 508, '\u1E21', 509, '\u1E22', 510, '\u1E23', 511, '\u1E24', 512, '\u1E25', 513, '\u1E26', 514, '\u1E27', 515, '\u1E28', 516, '\u1E29', 517, '\u1E2A', 518, '\u1E2B', 519, '\u1E2C', 520, '\u1E2D', 521, '\u1E2E', 522, '\u1E2F', 523, '\u1E30', 524, '\u1E31', 525, '\u1E32', 526, '\u1E33', 527, '\u1E34', 528, '\u1E35', 529, '\u1E36', 530, '\u1E37', 531, '\u1E38', 532, '\u1E39', 533, '\u1E3A', 534, '\u1E3B', 535, '\u1E3C', 536, '\u1E3D', 537, '\u1E3E', 538, '\u1E3F', 539, '\u1E40', 540, '\u1E41', 541, '\u1E42', 542, '\u1E43', 543, '\u1E44', 544, '\u1E45', 545, '\u1E46', 546, '\u1E47', 547, '\u1E48', 548, '\u1E49', 549, '\u1E4A', 550, '\u1E4B', 551, '\u1E4C', 552, '\u1E4D', 553, '\u1E4E', 554, '\u1E4F', 555, '\u1E50', 556, '\u1E51', 557, '\u1E52', 558, '\u1E53', 559, '\u1E54', 560, '\u1E55', 561, '\u1E56', 562, '\u1E57', 563, '\u1E58', 564, '\u1E59', 565, '\u1E5A', 566, '\u1E5B', 567, '\u1E5C', 568, '\u1E5D', 569, '\u1E5E', 570, '\u1E5F', 571, '\u1E60', 572, '\u1E61', 573, '\u1E62', 574, '\u1E63', 575, '\u1E64', 576, '\u1E65', 577, '\u1E66', 578, '\u1E67', 579, '\u1E68', 580, '\u1E69', 581, '\u1E6A', 582, '\u1E6B', 583, '\u1E6C', 584, '\u1E6D', 585, '\u1E6E', 586, '\u1E6F', 587, '\u1E70', 588, '\u1E71', 589, '\u1E72', 590, '\u1E73', 591, '\u1E74', 592, '\u1E75', 593, '\u1E76', 594, '\u1E77', 595, '\u1E78', 596, '\u1E79', 597, '\u1E7A', 598, '\u1E7B', 599, '\u1E7C', 600, '\u1E7D', 601, '\u1E7E', 602, '\u1E7F', 603, '\u1E80', 604, '\u1E81', 605, '\u1E82', 606, '\u1E83', 607, '\u1E84', 608, '\u1E85', 609, '\u1E86', 610, '\u1E87', 611, '\u1E88', 612, '\u1E89', 613, '\u1E8A', 614, '\u1E8B', 615, '\u1E8C', 616, '\u1E8D', 617, '\u1E8E', 618, '\u1E8F', 619, '\u1E90', 620, '\u1E91', 621, '\u1E92', 622, '\u1E93', 623, '\u1E94', 624, '\u1E95', 625, '\u1E96', 626, '\u1E97', 627, '\u1E98', 628, '\u1E99', 629, '\u1E9A', 630, '\u1E9B', 573, '\u1EA0', 631, '\u1EA1', 632, '\u1EA2', 633, '\u1EA3', 634, '\u1EA4', 635, '\u1EA5', 636, '\u1EA6', 637, '\u1EA7', 638, '\u1EA8', 639, '\u1EA9', 640, '\u1EAA', 641, '\u1EAB', 642, '\u1EAC', 643, '\u1EAD', 644, '\u1EAE', 645, '\u1EAF', 646, '\u1EB0', 647, '\u1EB1', 648, '\u1EB2', 649, '\u1EB3', 650, '\u1EB4', 651, '\u1EB5', 652, '\u1EB6', 653, '\u1EB7', 654, '\u1EB8', 655, '\u1EB9', 656, '\u1EBA', 657, '\u1EBB', 658, '\u1EBC', 659, '\u1EBD', 660, '\u1EBE', 661, '\u1EBF', 662, '\u1EC0', 663, '\u1EC1', 664, '\u1EC2', 665, '\u1EC3', 666, '\u1EC4', 667, '\u1EC5', 668, '\u1EC6', 669, '\u1EC7', 670, '\u1EC8', 671, '\u1EC9', 672, '\u1ECA', 673, '\u1ECB', 674, '\u1ECC', 675, '\u1ECD', 676, '\u1ECE', 677, '\u1ECF', 678, '\u1ED0', 679, '\u1ED1', 680, '\u1ED2', 681, '\u1ED3', 682, '\u1ED4', 683, '\u1ED5', 684, '\u1ED6', 685, '\u1ED7', 686, '\u1ED8', 687, '\u1ED9', 688, '\u1EDA', 689, '\u1EDB', 690, '\u1EDC', 691, '\u1EDD', 692, '\u1EDE', 693, '\u1EDF', 694, '\u1EE0', 695, '\u1EE1', 696, '\u1EE2', 697, '\u1EE3', 698, '\u1EE4', 699, '\u1EE5', 700, '\u1EE6', 701, '\u1EE7', 702, '\u1EE8', 703, '\u1EE9', 704, '\u1EEA', 705, '\u1EEB', 706, '\u1EEC', 707, '\u1EED', 708, '\u1EEE', 709, '\u1EEF', 710, '\u1EF0', 711, '\u1EF1', 712, '\u1EF2', 713, '\u1EF3', 714, '\u1EF4', 715, '\u1EF5', 716, '\u1EF6', 717, '\u1EF7', 718, '\u1EF8', 719, '\u1EF9', 720, '\u1F00', 721, '\u1F01', 722, '\u1F02', 723, '\u1F03', 724, '\u1F04', 725, '\u1F05', 726, '\u1F06', 727, '\u1F07', 728, '\u1F08', 729, '\u1F09', 730, '\u1F0A', 731, '\u1F0B', 732, '\u1F0C', 733, '\u1F0D', 734, '\u1F0E', 735, '\u1F0F', 736, '\u1F10', 737, '\u1F11', 738, '\u1F12', 739, '\u1F13', 740, '\u1F14', 741, '\u1F15', 742, '\u1F18', 743, '\u1F19', 744, '\u1F1A', 745, '\u1F1B', 746, '\u1F1C', 747, '\u1F1D', 748, '\u1F20', 749, '\u1F21', 750, '\u1F22', 751, '\u1F23', 752, '\u1F24', 753, '\u1F25', 754, '\u1F26', 755, '\u1F27', 756, '\u1F28', 757, '\u1F29', 758, '\u1F2A', 759, '\u1F2B', 760, '\u1F2C', 761, '\u1F2D', 762, '\u1F2E', 763, '\u1F2F', 764, '\u1F30', 765, '\u1F31', 766, '\u1F32', 767, '\u1F33', 768, '\u1F34', 769, '\u1F35', 770, '\u1F36', 771, '\u1F37', 772, '\u1F38', 773, '\u1F39', 774, '\u1F3A', 775, '\u1F3B', 776, '\u1F3C', 777, '\u1F3D', 778, '\u1F3E', 779, '\u1F3F', 780, '\u1F40', 781, '\u1F41', 782, '\u1F42', 783, '\u1F43', 784, '\u1F44', 785, '\u1F45', 786, '\u1F48', 787, '\u1F49', 788, '\u1F4A', 789, '\u1F4B', 790, '\u1F4C', 791, '\u1F4D', 792, '\u1F50', 793, '\u1F51', 794, '\u1F52', 795, '\u1F53', 796, '\u1F54', 797, '\u1F55', 798, '\u1F56', 799, '\u1F57', 800, '\u1F59', 801, '\u1F5B', 802, '\u1F5D', 803, '\u1F5F', 804, '\u1F60', 805, '\u1F61', 806, '\u1F62', 807, '\u1F63', 808, '\u1F64', 809, '\u1F65', 810, '\u1F66', 811, '\u1F67', 812, '\u1F68', 813, '\u1F69', 814, '\u1F6A', 815, '\u1F6B', 816, '\u1F6C', 817, '\u1F6D', 818, '\u1F6E', 819, '\u1F6F', 820, '\u1F70', 821, '\u1F71', 322, '\u1F72', 822, '\u1F73', 323, '\u1F74', 823, '\u1F75', 324, '\u1F76', 824, '\u1F77', 325, '\u1F78', 825, '\u1F79', 329, '\u1F7A', 826, '\u1F7B', 330, '\u1F7C', 827, '\u1F7D', 331, '\u1F80', 828, '\u1F81', 829, '\u1F82', 830, '\u1F83', 831, '\u1F84', 832, '\u1F85', 833, '\u1F86', 834, '\u1F87', 835, '\u1F88', 836, '\u1F89', 837, '\u1F8A', 838, '\u1F8B', 839, '\u1F8C', 840, '\u1F8D', 841, '\u1F8E', 842, '\u1F8F', 843, '\u1F90', 844, '\u1F91', 845, '\u1F92', 846, '\u1F93', 847, '\u1F94', 848, '\u1F95', 849, '\u1F96', 850, '\u1F97', 851, '\u1F98', 852, '\u1F99', 853, '\u1F9A', 854, '\u1F9B', 855, '\u1F9C', 856, '\u1F9D', 857, '\u1F9E', 858, '\u1F9F', 859, '\u1FA0', 860, '\u1FA1', 861, '\u1FA2', 862, '\u1FA3', 863, '\u1FA4', 864, '\u1FA5', 865, '\u1FA6', 866, '\u1FA7', 867, '\u1FA8', 868, '\u1FA9', 869, '\u1FAA', 870, '\u1FAB', 871, '\u1FAC', 872, '\u1FAD', 873, '\u1FAE', 874, '\u1FAF', 875, '\u1FB0', 876, '\u1FB1', 877, '\u1FB2', 878, '\u1FB3', 879, '\u1FB4', 880, '\u1FB6', 881, '\u1FB7', 882, '\u1FB8', 883, '\u1FB9', 884, '\u1FBA', 885, '\u1FBB', 311, '\u1FBC', 886, '\u1FBD', 887, '\u1FBE', 888, '\u1FBF', 887, '\u1FC0', 889, '\u1FC1', 890, '\u1FC2', 891, '\u1FC3', 892, '\u1FC4', 893, '\u1FC6', 894, '\u1FC7', 895, '\u1FC8', 896, '\u1FC9', 313, '\u1FCA', 897, '\u1FCB', 314, '\u1FCC', 898, '\u1FCD', 899, '\u1FCE', 900, '\u1FCF', 901, '\u1FD0', 902, '\u1FD1', 903, '\u1FD2', 904, '\u1FD3', 319, '\u1FD6', 905, '\u1FD7', 906, '\u1FD8', 907, '\u1FD9', 908, '\u1FDA', 909, '\u1FDB', 315, '\u1FDD', 910, '\u1FDE', 911, '\u1FDF', 912, '\u1FE0', 913, '\u1FE1', 914, '\u1FE2', 915, '\u1FE3', 326, '\u1FE4', 916, '\u1FE5', 917, '\u1FE6', 918, '\u1FE7', 919, '\u1FE8', 920, '\u1FE9', 921, '\u1FEA', 922, '\u1FEB', 317, '\u1FEC', 923, '\u1FED', 924, '\u1FEE', 310, '\u1FEF', 925, '\u1FF2', 926, '\u1FF3', 927, '\u1FF4', 928, '\u1FF6', 929, '\u1FF7', 930, '\u1FF8', 931, '\u1FF9', 316, '\u1FFA', 932, '\u1FFB', 318, '\u1FFC', 933, '\u1FFD', 6, '\u1FFE', 934, '\u2000', 0, '\u2001', 0, '\u2002', 0, '\u2003', 0, '\u2004', 0, '\u2005', 0, '\u2006', 0, '\u2007', 0, '\u2008', 0, '\u2009', 0, '\u200A', 0, '\u2011', 935, '\u2017', 936, '\u2024', 937, '\u2025', 938, '\u2026', 939, '\u202F', 0, '\u2033', 940, '\u2034', 941, '\u2036', 942, '\u2037', 943, '\u203C', 944, '\u203E', 945, '\u2047', 946, '\u2048', 947, '\u2049', 948, '\u2057', 949, '\u205F', 0, '\u2070', 950, '\u2071', 951, '\u2074', 952, '\u2075', 953, '\u2076', 954, '\u2077', 955, '\u2078', 956, '\u2079', 957, '\u207A', 958, '\u207B', 959, '\u207C', 960, '\u207D', 961, '\u207E', 962, '\u207F', 963, '\u2080', 950, '\u2081', 9, '\u2082', 4, '\u2083', 5, '\u2084', 952, '\u2085', 953, '\u2086', 954, '\u2087', 955, '\u2088', 956, '\u2089', 957, '\u208A', 958, '\u208B', 959, '\u208C', 960, '\u208D', 961, '\u208E', 962, '\u20A8', 964, '\u2100', 965, '\u2101', 966, '\u2102', 967, '\u2103', 968, '\u2105', 969, '\u2106', 970, '\u2107', 971, '\u2109', 972, '\u210A', 973, '\u210B', 974, '\u210C', 974, '\u210D', 974, '\u210E', 284, '\u210F', 975, '\u2110', 976, '\u2111', 976, '\u2112', 977, '\u2113', 300, '\u2115', 978, '\u2116', 979, '\u2119', 980, '\u211A', 981, '\u211B', 982, '\u211C', 982, '\u211D', 982, '\u2120', 983, '\u2121', 984, '\u2122', 985, '\u2124', 986, '\u2126', 987, '\u2128', 986, '\u212A', 988, '\u212B', 19, '\u212C', 989, '\u212D', 967, '\u212F', 990, '\u2130', 991, '\u2131', 992, '\u2133', 993, '\u2134', 10, '\u2135', 994, '\u2136', 995, '\u2137', 996, '\u2138', 997, '\u2139', 951, '\u213D', 998, '\u213E', 999, '\u213F', 1000, '\u2140', 1001, '\u2145', 1002, '\u2146', 1003, '\u2147', 990, '\u2148', 951, '\u2149', 286, '\u2153', 1004, '\u2154', 1005, '\u2155', 1006, '\u2156', 1007, '\u2157', 1008, '\u2158', 1009, '\u2159', 1010, '\u215A', 1011, '\u215B', 1012, '\u215C', 1013, '\u215D', 1014, '\u215E', 1015, '\u215F', 1016, '\u2160', 976, '\u2161', 1017, '\u2162', 1018, '\u2163', 1019, '\u2164', 1020, '\u2165', 1021, '\u2166', 1022, '\u2167', 1023, '\u2168', 1024, '\u2169', 1025, '\u216A', 1026, '\u216B', 1027, '\u216C', 977, '\u216D', 967, '\u216E', 1002, '\u216F', 993, '\u2170', 951, '\u2171', 1028, '\u2172', 1029, '\u2173', 1030, '\u2174', 1031, '\u2175', 1032, '\u2176', 1033, '\u2177', 1034, '\u2178', 1035, '\u2179', 301, '\u217A', 1036, '\u217B', 1037, '\u217C', 300, '\u217D', 1038, '\u217E', 1003, '\u217F', 1039, '\u219A', 1040, '\u219B', 1041, '\u21AE', 1042, '\u21CD', 1043, '\u21CE', 1044, '\u21CF', 1045, '\u2204', 1046, '\u2209', 1047, '\u220C', 1048, '\u2224', 1049, '\u2226', 1050, '\u222C', 1051, '\u222D', 1052, '\u222F', 1053, '\u2230', 1054, '\u2241', 1055, '\u2244', 1056, '\u2247', 1057, '\u2249', 1058, '\u2260', 1059, '\u2262', 1060, '\u226D', 1061, '\u226E', 1062, '\u226F', 1063, '\u2270', 1064, '\u2271', 1065, '\u2274', 1066, '\u2275', 1067, '\u2278', 1068, '\u2279', 1069, '\u2280', 1070, '\u2281', 1071, '\u2284', 1072, '\u2285', 1073, '\u2288', 1074, '\u2289', 1075, '\u22AC', 1076, '\u22AD', 1077, '\u22AE', 1078, '\u22AF', 1079, '\u22E0', 1080, '\u22E1', 1081, '\u22E2', 1082, '\u22E3', 1083, '\u22EA', 1084, '\u22EB', 1085, '\u22EC', 1086, '\u22ED', 1087, '\u2329', 1088, '\u232A', 1089, '\u2460', 9, '\u2461', 4, '\u2462', 5, '\u2463', 952, '\u2464', 953, '\u2465', 954, '\u2466', 955, '\u2467', 956, '\u2468', 957, '\u2469', 1090, '\u246A', 1091, '\u246B', 1092, '\u246C', 1093, '\u246D', 1094, '\u246E', 1095, '\u246F', 1096, '\u2470', 1097, '\u2471', 1098, '\u2472', 1099, '\u2473', 1100, '\u2474', 1101, '\u2475', 1102, '\u2476', 1103, '\u2477', 1104, '\u2478', 1105, '\u2479', 1106, '\u247A', 1107, '\u247B', 1108, '\u247C', 1109, '\u247D', 1110, '\u247E', 1111, '\u247F', 1112, '\u2480', 1113, '\u2481', 1114, '\u2482', 1115, '\u2483', 1116, '\u2484', 1117, '\u2485', 1118, '\u2486', 1119, '\u2487', 1120, '\u2488', 1121, '\u2489', 1122, '\u248A', 1123, '\u248B', 1124, '\u248C', 1125, '\u248D', 1126, '\u248E', 1127, '\u248F', 1128, '\u2490', 1129, '\u2491', 1130, '\u2492', 1131, '\u2493', 1132, '\u2494', 1133, '\u2495', 1134, '\u2496', 1135, '\u2497', 1136, '\u2498', 1137, '\u2499', 1138, '\u249A', 1139, '\u249B', 1140, '\u249C', 1141, '\u249D', 1142, '\u249E', 1143, '\u249F', 1144, '\u24A0', 1145, '\u24A1', 1146, '\u24A2', 1147, '\u24A3', 1148, '\u24A4', 1149, '\u24A5', 1150, '\u24A6', 1151, '\u24A7', 1152, '\u24A8', 1153, '\u24A9', 1154, '\u24AA', 1155, '\u24AB', 1156, '\u24AC', 1157, '\u24AD', 1158, '\u24AE', 1159, '\u24AF', 1160, '\u24B0', 1161, '\u24B1', 1162, '\u24B2', 1163, '\u24B3', 1164, '\u24B4', 1165, '\u24B5', 1166, '\u24B6', 1167, '\u24B7', 989, '\u24B8', 967, '\u24B9', 1002, '\u24BA', 991, '\u24BB', 992, '\u24BC', 1168, '\u24BD', 974, '\u24BE', 976, '\u24BF', 1169, '\u24C0', 988, '\u24C1', 977, '\u24C2', 993, '\u24C3', 978, '\u24C4', 1170, '\u24C5', 980, '\u24C6', 981, '\u24C7', 982, '\u24C8', 1171, '\u24C9', 1172, '\u24CA', 1173, '\u24CB', 1020, '\u24CC', 1174, '\u24CD', 1025, '\u24CE', 1175, '\u24CF', 986, '\u24D0', 2, '\u24D1', 1176, '\u24D2', 1038, '\u24D3', 1003, '\u24D4', 990, '\u24D5', 1177, '\u24D6', 973, '\u24D7', 284, '\u24D8', 951, '\u24D9', 286, '\u24DA', 1178, '\u24DB', 300, '\u24DC', 1039, '\u24DD', 963, '\u24DE', 10, '\u24DF', 1179, '\u24E0', 1180, '\u24E1', 287, '\u24E2', 180, '\u24E3', 1181, '\u24E4', 1182, '\u24E5', 1031, '\u24E6', 291, '\u24E7', 301, '\u24E8', 292, '\u24E9', 1183, '\u24EA', 950, '\u2A0C', 1184, '\u2A74', 1185, '\u2A75', 1186, '\u2A76', 1187, '\u2ADC', 1188, '\u2E9F', 1189, '\u2EF3', 1190, '\u2F00', 1191, '\u2F01', 1192, '\u2F02', 1193, '\u2F03', 1194, '\u2F04', 1195, '\u2F05', 1196, '\u2F06', 1197, '\u2F07', 1198, '\u2F08', 1199, '\u2F09', 1200, '\u2F0A', 1201, '\u2F0B', 1202, '\u2F0C', 1203, '\u2F0D', 1204, '\u2F0E', 1205, '\u2F0F', 1206, '\u2F10', 1207, '\u2F11', 1208, '\u2F12', 1209, '\u2F13', 1210, '\u2F14', 1211, '\u2F15', 1212, '\u2F16', 1213, '\u2F17', 1214, '\u2F18', 1215, '\u2F19', 1216, '\u2F1A', 1217, '\u2F1B', 1218, '\u2F1C', 1219, '\u2F1D', 1220, '\u2F1E', 1221, '\u2F1F', 1222, '\u2F20', 1223, '\u2F21', 1224, '\u2F22', 1225, '\u2F23', 1226, '\u2F24', 1227, '\u2F25', 1228, '\u2F26', 1229, '\u2F27', 1230, '\u2F28', 1231, '\u2F29', 1232, '\u2F2A', 1233, '\u2F2B', 1234, '\u2F2C', 1235, '\u2F2D', 1236, '\u2F2E', 1237, '\u2F2F', 1238, '\u2F30', 1239, '\u2F31', 1240, '\u2F32', 1241, '\u2F33', 1242, '\u2F34', 1243, '\u2F35', 1244, '\u2F36', 1245, '\u2F37', 1246, '\u2F38', 1247, '\u2F39', 1248, '\u2F3A', 1249, '\u2F3B', 1250, '\u2F3C', 1251, '\u2F3D', 1252, '\u2F3E', 1253, '\u2F3F', 1254, '\u2F40', 1255, '\u2F41', 1256, '\u2F42', 1257, '\u2F43', 1258, '\u2F44', 1259, '\u2F45', 1260, '\u2F46', 1261, '\u2F47', 1262, '\u2F48', 1263, '\u2F49', 1264, '\u2F4A', 1265, '\u2F4B', 1266, '\u2F4C', 1267, '\u2F4D', 1268, '\u2F4E', 1269, '\u2F4F', 1270, '\u2F50', 1271, '\u2F51', 1272, '\u2F52', 1273, '\u2F53', 1274, '\u2F54', 1275, '\u2F55', 1276, '\u2F56', 1277, '\u2F57', 1278, '\u2F58', 1279, '\u2F59', 1280, '\u2F5A', 1281, '\u2F5B', 1282, '\u2F5C', 1283, '\u2F5D', 1284, '\u2F5E', 1285, '\u2F5F', 1286, '\u2F60', 1287, '\u2F61', 1288, '\u2F62', 1289, '\u2F63', 1290, '\u2F64', 1291, '\u2F65', 1292, '\u2F66', 1293, '\u2F67', 1294, '\u2F68', 1295, '\u2F69', 1296, '\u2F6A', 1297, '\u2F6B', 1298, '\u2F6C', 1299, '\u2F6D', 1300, '\u2F6E', 1301, '\u2F6F', 1302, '\u2F70', 1303, '\u2F71', 1304, '\u2F72', 1305, '\u2F73', 1306, '\u2F74', 1307, '\u2F75', 1308, '\u2F76', 1309, '\u2F77', 1310, '\u2F78', 1311, '\u2F79', 1312, '\u2F7A', 1313, '\u2F7B', 1314, '\u2F7C', 1315, '\u2F7D', 1316, '\u2F7E', 1317, '\u2F7F', 1318, '\u2F80', 1319, '\u2F81', 1320, '\u2F82', 1321, '\u2F83', 1322, '\u2F84', 1323, '\u2F85', 1324, '\u2F86', 1325, '\u2F87', 1326, '\u2F88', 1327, '\u2F89', 1328, '\u2F8A', 1329, '\u2F8B', 1330, '\u2F8C', 1331, '\u2F8D', 1332, '\u2F8E', 1333, '\u2F8F', 1334, '\u2F90', 1335, '\u2F91', 1336, '\u2F92', 1337, '\u2F93', 1338, '\u2F94', 1339, '\u2F95', 1340, '\u2F96', 1341, '\u2F97', 1342, '\u2F98', 1343, '\u2F99', 1344, '\u2F9A', 1345, '\u2F9B', 1346, '\u2F9C', 1347, '\u2F9D', 1348, '\u2F9E', 1349, '\u2F9F', 1350, '\u2FA0', 1351, '\u2FA1', 1352, '\u2FA2', 1353, '\u2FA3', 1354, '\u2FA4', 1355, '\u2FA5', 1356, '\u2FA6', 1357, '\u2FA7', 1358, '\u2FA8', 1359, '\u2FA9', 1360, '\u2FAA', 1361, '\u2FAB', 1362, '\u2FAC', 1363, '\u2FAD', 1364, '\u2FAE', 1365, '\u2FAF', 1366, '\u2FB0', 1367, '\u2FB1', 1368, '\u2FB2', 1369, '\u2FB3', 1370, '\u2FB4', 1371, '\u2FB5', 1372, '\u2FB6', 1373, '\u2FB7', 1374, '\u2FB8', 1375, '\u2FB9', 1376, '\u2FBA', 1377, '\u2FBB', 1378, '\u2FBC', 1379, '\u2FBD', 1380, '\u2FBE', 1381, '\u2FBF', 1382, '\u2FC0', 1383, '\u2FC1', 1384, '\u2FC2', 1385, '\u2FC3', 1386, '\u2FC4', 1387, '\u2FC5', 1388, '\u2FC6', 1389, '\u2FC7', 1390, '\u2FC8', 1391, '\u2FC9', 1392, '\u2FCA', 1393, '\u2FCB', 1394, '\u2FCC', 1395, '\u2FCD', 1396, '\u2FCE', 1397, '\u2FCF', 1398, '\u2FD0', 1399, '\u2FD1', 1400, '\u2FD2', 1401, '\u2FD3', 1402, '\u2FD4', 1403, '\u2FD5', 1404, '\u3000', 0, '\u3036', 1405, '\u3038', 1214, '\u3039', 1406, '\u303A', 1407, '\u304C', 1408, '\u304E', 1409, '\u3050', 1410, '\u3052', 1411, '\u3054', 1412, '\u3056', 1413, '\u3058', 1414, '\u305A', 1415, '\u305C', 1416, '\u305E', 1417, '\u3060', 1418, '\u3062', 1419, '\u3065', 1420, '\u3067', 1421, '\u3069', 1422, '\u3070', 1423, '\u3071', 1424, '\u3073', 1425, '\u3074', 1426, '\u3076', 1427, '\u3077', 1428, '\u3079', 1429, '\u307A', 1430, '\u307C', 1431, '\u307D', 1432, '\u3094', 1433, '\u309B', 1434, '\u309C', 1435, '\u309E', 1436, '\u309F', 1437, '\u30AC', 1438, '\u30AE', 1439, '\u30B0', 1440, '\u30B2', 1441, '\u30B4', 1442, '\u30B6', 1443, '\u30B8', 1444, '\u30BA', 1445, '\u30BC', 1446, '\u30BE', 1447, '\u30C0', 1448, '\u30C2', 1449, '\u30C5', 1450, '\u30C7', 1451, '\u30C9', 1452, '\u30D0', 1453, '\u30D1', 1454, '\u30D3', 1455, '\u30D4', 1456, '\u30D6', 1457, '\u30D7', 1458, '\u30D9', 1459, '\u30DA', 1460, '\u30DC', 1461, '\u30DD', 1462, '\u30F4', 1463, '\u30F7', 1464, '\u30F8', 1465, '\u30F9', 1466, '\u30FA', 1467, '\u30FE', 1468, '\u30FF', 1469, '\u3131', 1470, '\u3132', 1471, '\u3133', 1472, '\u3134', 1473, '\u3135', 1474, '\u3136', 1475, '\u3137', 1476, '\u3138', 1477, '\u3139', 1478, '\u313A', 1479, '\u313B', 1480, '\u313C', 1481, '\u313D', 1482, '\u313E', 1483, '\u313F', 1484, '\u3140', 1485, '\u3141', 1486, '\u3142', 1487, '\u3143', 1488, '\u3144', 1489, '\u3145', 1490, '\u3146', 1491, '\u3147', 1492, '\u3148', 1493, '\u3149', 1494, '\u314A', 1495, '\u314B', 1496, '\u314C', 1497, '\u314D', 1498, '\u314E', 1499, '\u314F', 1500, '\u3150', 1501, '\u3151', 1502, '\u3152', 1503, '\u3153', 1504, '\u3154', 1505, '\u3155', 1506, '\u3156', 1507, '\u3157', 1508, '\u3158', 1509, '\u3159', 1510, '\u315A', 1511, '\u315B', 1512, '\u315C', 1513, '\u315D', 1514, '\u315E', 1515, '\u315F', 1516, '\u3160', 1517, '\u3161', 1518, '\u3162', 1519, '\u3163', 1520, '\u3164', 1521, '\u3165', 1522, '\u3166', 1523, '\u3167', 1524, '\u3168', 1525, '\u3169', 1526, '\u316A', 1527, '\u316B', 1528, '\u316C', 1529, '\u316D', 1530, '\u316E', 1531, '\u316F', 1532, '\u3170', 1533, '\u3171', 1534, '\u3172', 1535, '\u3173', 1536, '\u3174', 1537, '\u3175', 1538, '\u3176', 1539, '\u3177', 1540, '\u3178', 1541, '\u3179', 1542, '\u317A', 1543, '\u317B', 1544, '\u317C', 1545, '\u317D', 1546, '\u317E', 1547, '\u317F', 1548, '\u3180', 1549, '\u3181', 1550, '\u3182', 1551, '\u3183', 1552, '\u3184', 1553, '\u3185', 1554, '\u3186', 1555, '\u3187', 1556, '\u3188', 1557, '\u3189', 1558, '\u318A', 1559, '\u318B', 1560, '\u318C', 1561, '\u318D', 1562, '\u318E', 1563, '\u3192', 1191, '\u3193', 1197, '\u3194', 1564, '\u3195', 1565, '\u3196', 1566, '\u3197', 1567, '\u3198', 1568, '\u3199', 1569, '\u319A', 1195, '\u319B', 1570, '\u319C', 1571, '\u319D', 1572, '\u319E', 1573, '\u319F', 1199, '\u3200', 1574, '\u3201', 1575, '\u3202', 1576, '\u3203', 1577, '\u3204', 1578, '\u3205', 1579, '\u3206', 1580, '\u3207', 1581, '\u3208', 1582, '\u3209', 1583, '\u320A', 1584, '\u320B', 1585, '\u320C', 1586, '\u320D', 1587, '\u320E', 1588, '\u320F', 1589, '\u3210', 1590, '\u3211', 1591, '\u3212', 1592, '\u3213', 1593, '\u3214', 1594, '\u3215', 1595, '\u3216', 1596, '\u3217', 1597, '\u3218', 1598, '\u3219', 1599, '\u321A', 1600, '\u321B', 1601, '\u321C', 1602, '\u3220', 1603, '\u3221', 1604, '\u3222', 1605, '\u3223', 1606, '\u3224', 1607, '\u3225', 1608, '\u3226', 1609, '\u3227', 1610, '\u3228', 1611, '\u3229', 1612, '\u322A', 1613, '\u322B', 1614, '\u322C', 1615, '\u322D', 1616, '\u322E', 1617, '\u322F', 1618, '\u3230', 1619, '\u3231', 1620, '\u3232', 1621, '\u3233', 1622, '\u3234', 1623, '\u3235', 1624, '\u3236', 1625, '\u3237', 1626, '\u3238', 1627, '\u3239', 1628, '\u323A', 1629, '\u323B', 1630, '\u323C', 1631, '\u323D', 1632, '\u323E', 1633, '\u323F', 1634, '\u3240', 1635, '\u3241', 1636, '\u3242', 1637, '\u3243', 1638, '\u3251', 1639, '\u3252', 1640, '\u3253', 1641, '\u3254', 1642, '\u3255', 1643, '\u3256', 1644, '\u3257', 1645, '\u3258', 1646, '\u3259', 1647, '\u325A', 1648, '\u325B', 1649, '\u325C', 1650, '\u325D', 1651, '\u325E', 1652, '\u325F', 1653, '\u3260', 1470, '\u3261', 1473, '\u3262', 1476, '\u3263', 1478, '\u3264', 1486, '\u3265', 1487, '\u3266', 1490, '\u3267', 1492, '\u3268', 1493, '\u3269', 1495, '\u326A', 1496, '\u326B', 1497, '\u326C', 1498, '\u326D', 1499, '\u326E', 1654, '\u326F', 1655, '\u3270', 1656, '\u3271', 1657, '\u3272', 1658, '\u3273', 1659, '\u3274', 1660, '\u3275', 1661, '\u3276', 1662, '\u3277', 1663, '\u3278', 1664, '\u3279', 1665, '\u327A', 1666, '\u327B', 1667, '\u3280', 1191, '\u3281', 1197, '\u3282', 1564, '\u3283', 1565, '\u3284', 1668, '\u3285', 1669, '\u3286', 1670, '\u3287', 1202, '\u3288', 1671, '\u3289', 1214, '\u328A', 1264, '\u328B', 1276, '\u328C', 1275, '\u328D', 1265, '\u328E', 1357, '\u328F', 1222, '\u3290', 1262, '\u3291', 1672, '\u3292', 1673, '\u3293', 1674, '\u3294', 1675, '\u3295', 1676, '\u3296', 1677, '\u3297', 1678, '\u3298', 1679, '\u3299', 1680, '\u329A', 1681, '\u329B', 1228, '\u329C', 1682, '\u329D', 1683, '\u329E', 1684, '\u329F', 1685, '\u32A0', 1686, '\u32A1', 1687, '\u32A2', 1688, '\u32A3', 1689, '\u32A4', 1566, '\u32A5', 1567, '\u32A6', 1568, '\u32A7', 1690, '\u32A8', 1691, '\u32A9', 1692, '\u32AA', 1693, '\u32AB', 1694, '\u32AC', 1695, '\u32AD', 1696, '\u32AE', 1697, '\u32AF', 1698, '\u32B0', 1699, '\u32B1', 1700, '\u32B2', 1701, '\u32B3', 1702, '\u32B4', 1703, '\u32B5', 1704, '\u32B6', 1705, '\u32B7', 1706, '\u32B8', 1707, '\u32B9', 1708, '\u32BA', 1709, '\u32BB', 1710, '\u32BC', 1711, '\u32BD', 1712, '\u32BE', 1713, '\u32BF', 1714, '\u32C0', 1715, '\u32C1', 1716, '\u32C2', 1717, '\u32C3', 1718, '\u32C4', 1719, '\u32C5', 1720, '\u32C6', 1721, '\u32C7', 1722, '\u32C8', 1723, '\u32C9', 1724, '\u32CA', 1725, '\u32CB', 1726, '\u32D0', 1727, '\u32D1', 1728, '\u32D2', 1729, '\u32D3', 1730, '\u32D4', 1731, '\u32D5', 1732, '\u32D6', 1733, '\u32D7', 1734, '\u32D8', 1735, '\u32D9', 1736, '\u32DA', 1737, '\u32DB', 1738, '\u32DC', 1739, '\u32DD', 1740, '\u32DE', 1741, '\u32DF', 1742, '\u32E0', 1743, '\u32E1', 1744, '\u32E2', 1745, '\u32E3', 1746, '\u32E4', 1747, '\u32E5', 1748, '\u32E6', 1749, '\u32E7', 1750, '\u32E8', 1751, '\u32E9', 1752, '\u32EA', 1753, '\u32EB', 1754, '\u32EC', 1755, '\u32ED', 1756, '\u32EE', 1757, '\u32EF', 1758, '\u32F0', 1759, '\u32F1', 1760, '\u32F2', 1761, '\u32F3', 1762, '\u32F4', 1763, '\u32F5', 1764, '\u32F6', 1765, '\u32F7', 1766, '\u32F8', 1767, '\u32F9', 1768, '\u32FA', 1769, '\u32FB', 1770, '\u32FC', 1771, '\u32FD', 1772, '\u32FE', 1773, '\u3300', 1774, '\u3301', 1775, '\u3302', 1776, '\u3303', 1777, '\u3304', 1778, '\u3305', 1779, '\u3306', 1780, '\u3307', 1781, '\u3308', 1782, '\u3309', 1783, '\u330A', 1784, '\u330B', 1785, '\u330C', 1786, '\u330D', 1787, '\u330E', 1788, '\u330F', 1789, '\u3310', 1790, '\u3311', 1791, '\u3312', 1792, '\u3313', 1793, '\u3314', 1794, '\u3315', 1795, '\u3316', 1796, '\u3317', 1797, '\u3318', 1798, '\u3319', 1799, '\u331A', 1800, '\u331B', 1801, '\u331C', 1802, '\u331D', 1803, '\u331E', 1804, '\u331F', 1805, '\u3320', 1806, '\u3321', 1807, '\u3322', 1808, '\u3323', 1809, '\u3324', 1810, '\u3325', 1811, '\u3326', 1812, '\u3327', 1813, '\u3328', 1814, '\u3329', 1815, '\u332A', 1816, '\u332B', 1817, '\u332C', 1818, '\u332D', 1819, '\u332E', 1820, '\u332F', 1821, '\u3330', 1822, '\u3331', 1823, '\u3332', 1824, '\u3333', 1825, '\u3334', 1826, '\u3335', 1827, '\u3336', 1828, '\u3337', 1829, '\u3338', 1830, '\u3339', 1831, '\u333A', 1832, '\u333B', 1833, '\u333C', 1834, '\u333D', 1835, '\u333E', 1836, '\u333F', 1837, '\u3340', 1838, '\u3341', 1839, '\u3342', 1840, '\u3343', 1841, '\u3344', 1842, '\u3345', 1843, '\u3346', 1844, '\u3347', 1845, '\u3348', 1846, '\u3349', 1847, '\u334A', 1848, '\u334B', 1849, '\u334C', 1850, '\u334D', 1851, '\u334E', 1852, '\u334F', 1853, '\u3350', 1854, '\u3351', 1855, '\u3352', 1856, '\u3353', 1857, '\u3354', 1858, '\u3355', 1859, '\u3356', 1860, '\u3357', 1861, '\u3358', 1862, '\u3359', 1863, '\u335A', 1864, '\u335B', 1865, '\u335C', 1866, '\u335D', 1867, '\u335E', 1868, '\u335F', 1869, '\u3360', 1870, '\u3361', 1871, '\u3362', 1872, '\u3363', 1873, '\u3364', 1874, '\u3365', 1875, '\u3366', 1876, '\u3367', 1877, '\u3368', 1878, '\u3369', 1879, '\u336A', 1880, '\u336B', 1881, '\u336C', 1882, '\u336D', 1883, '\u336E', 1884, '\u336F', 1885, '\u3370', 1886, '\u3371', 1887, '\u3372', 1888, '\u3373', 1889, '\u3374', 1890, '\u3375', 1891, '\u3376', 1892, '\u337B', 1893, '\u337C', 1894, '\u337D', 1895, '\u337E', 1896, '\u337F', 1897, '\u3380', 1898, '\u3381', 1899, '\u3382', 1900, '\u3383', 1901, '\u3384', 1902, '\u3385', 1903, '\u3386', 1904, '\u3387', 1905, '\u3388', 1906, '\u3389', 1907, '\u338A', 1908, '\u338B', 1909, '\u338C', 1910, '\u338D', 1911, '\u338E', 1912, '\u338F', 1913, '\u3390', 1914, '\u3391', 1915, '\u3392', 1916, '\u3393', 1917, '\u3394', 1918, '\u3395', 1919, '\u3396', 1920, '\u3397', 1921, '\u3398', 1922, '\u3399', 1923, '\u339A', 1924, '\u339B', 1925, '\u339C', 1926, '\u339D', 1927, '\u339E', 1928, '\u339F', 1929, '\u33A0', 1930, '\u33A1', 1931, '\u33A2', 1932, '\u33A3', 1933, '\u33A4', 1934, '\u33A5', 1935, '\u33A6', 1936, '\u33A7', 1937, '\u33A8', 1938, '\u33A9', 1939, '\u33AA', 1940, '\u33AB', 1941, '\u33AC', 1942, '\u33AD', 1943, '\u33AE', 1944, '\u33AF', 1945, '\u33B0', 1946, '\u33B1', 1947, '\u33B2', 1948, '\u33B3', 1949, '\u33B4', 1950, '\u33B5', 1951, '\u33B6', 1952, '\u33B7', 1953, '\u33B8', 1954, '\u33B9', 1955, '\u33BA', 1956, '\u33BB', 1957, '\u33BC', 1958, '\u33BD', 1959, '\u33BE', 1960, '\u33BF', 1961, '\u33C0', 1962, '\u33C1', 1963, '\u33C2', 1964, '\u33C3', 1965, '\u33C4', 1966, '\u33C5', 1967, '\u33C6', 1968, '\u33C7', 1969, '\u33C8', 1970, '\u33C9', 1971, '\u33CA', 1972, '\u33CB', 1973, '\u33CC', 1974, '\u33CD', 1975, '\u33CE', 1976, '\u33CF', 1977, '\u33D0', 1978, '\u33D1', 1979, '\u33D2', 1980, '\u33D3', 1981, '\u33D4', 1982, '\u33D5', 1983, '\u33D6', 1984, '\u33D7', 1985, '\u33D8', 1986, '\u33D9', 1987, '\u33DA', 1988, '\u33DB', 1989, '\u33DC', 1990, '\u33DD', 1991, '\u33E0', 1992, '\u33E1', 1993, '\u33E2', 1994, '\u33E3', 1995, '\u33E4', 1996, '\u33E5', 1997, '\u33E6', 1998, '\u33E7', 1999, '\u33E8', 2000, '\u33E9', 2001, '\u33EA', 2002, '\u33EB', 2003, '\u33EC', 2004, '\u33ED', 2005, '\u33EE', 2006, '\u33EF', 2007, '\u33F0', 2008, '\u33F1', 2009, '\u33F2', 2010, '\u33F3', 2011, '\u33F4', 2012, '\u33F5', 2013, '\u33F6', 2014, '\u33F7', 2015, '\u33F8', 2016, '\u33F9', 2017, '\u33FA', 2018, '\u33FB', 2019, '\u33FC', 2020, '\u33FD', 2021, '\u33FE', 2022, '\uF900', 2023, '\uF901', 2024, '\uF902', 1349, '\uF903', 2025, '\uF904', 2026, '\uF905', 2027, '\uF906', 2028, '\uF907', 1403, '\uF908', 1403, '\uF909', 2029, '\uF90A', 1357, '\uF90B', 2030, '\uF90C', 2031, '\uF90D', 2032, '\uF90E', 2033, '\uF90F', 2034, '\uF910', 2035, '\uF911', 2036, '\uF912', 2037, '\uF913', 2038, '\uF914', 2039, '\uF915', 2040, '\uF916', 2041, '\uF917', 2042, '\uF918', 2043, '\uF919', 2044, '\uF91A', 2045, '\uF91B', 2046, '\uF91C', 2047, '\uF91D', 2048, '\uF91E', 2049, '\uF91F', 2050, '\uF920', 2051, '\uF921', 2052, '\uF922', 2053, '\uF923', 2054, '\uF924', 2055, '\uF925', 2056, '\uF926', 2057, '\uF927', 2058, '\uF928', 2059, '\uF929', 2060, '\uF92A', 2061, '\uF92B', 2062, '\uF92C', 2063, '\uF92D', 2064, '\uF92E', 2065, '\uF92F', 2066, '\uF930', 2067, '\uF931', 2068, '\uF932', 2069, '\uF933', 2070, '\uF934', 1315, '\uF935', 2071, '\uF936', 2072, '\uF937', 2073, '\uF938', 2074, '\uF939', 2075, '\uF93A', 2076, '\uF93B', 2077, '\uF93C', 2078, '\uF93D', 2079, '\uF93E', 2080, '\uF93F', 2081, '\uF940', 1388, '\uF941', 2082, '\uF942', 2083, '\uF943', 2084, '\uF944', 2085, '\uF945', 2086, '\uF946', 2087, '\uF947', 2088, '\uF948', 2089, '\uF949', 2090, '\uF94A', 2091, '\uF94B', 2092, '\uF94C', 2093, '\uF94D', 2094, '\uF94E', 2095, '\uF94F', 2096, '\uF950', 2097, '\uF951', 2098, '\uF952', 2099, '\uF953', 2100, '\uF954', 2101, '\uF955', 2102, '\uF956', 2103, '\uF957', 2104, '\uF958', 2105, '\uF959', 2106, '\uF95A', 2107, '\uF95B', 2108, '\uF95C', 2039, '\uF95D', 2109, '\uF95E', 2110, '\uF95F', 2111, '\uF960', 2112, '\uF961', 2113, '\uF962', 2114, '\uF963', 2115, '\uF964', 2116, '\uF965', 2117, '\uF966', 2118, '\uF967', 2119, '\uF968', 2120, '\uF969', 2121, '\uF96A', 2122, '\uF96B', 2123, '\uF96C', 2124, '\uF96D', 2125, '\uF96E', 2126, '\uF96F', 2127, '\uF970', 2128, '\uF971', 1351, '\uF972', 2129, '\uF973', 2130, '\uF974', 2131, '\uF975', 2132, '\uF976', 2133, '\uF977', 2134, '\uF978', 2135, '\uF979', 2136, '\uF97A', 2137, '\uF97B', 2138, '\uF97C', 2139, '\uF97D', 2140, '\uF97E', 2141, '\uF97F', 2142, '\uF980', 2143, '\uF981', 1228, '\uF982', 2144, '\uF983', 2145, '\uF984', 2146, '\uF985', 2147, '\uF986', 2148, '\uF987', 2149, '\uF988', 2150, '\uF989', 2151, '\uF98A', 1209, '\uF98B', 2152, '\uF98C', 2153, '\uF98D', 2154, '\uF98E', 2155, '\uF98F', 2156, '\uF990', 2157, '\uF991', 2158, '\uF992', 2159, '\uF993', 2160, '\uF994', 2161, '\uF995', 2162, '\uF996', 2163, '\uF997', 2164, '\uF998', 2165, '\uF999', 2166, '\uF99A', 2167, '\uF99B', 2168, '\uF99C', 2169, '\uF99D', 2170, '\uF99E', 2171, '\uF99F', 2172, '\uF9A0', 2173, '\uF9A1', 2127, '\uF9A2', 2174, '\uF9A3', 2175, '\uF9A4', 2176, '\uF9A5', 2177, '\uF9A6', 2178, '\uF9A7', 2179, '\uF9A8', 2180, '\uF9A9', 2181, '\uF9AA', 2111, '\uF9AB', 2182, '\uF9AC', 2183, '\uF9AD', 2184, '\uF9AE', 2185, '\uF9AF', 2186, '\uF9B0', 2187, '\uF9B1', 2188, '\uF9B2', 2189, '\uF9B3', 2190, '\uF9B4', 2191, '\uF9B5', 2192, '\uF9B6', 2193, '\uF9B7', 2194, '\uF9B8', 2195, '\uF9B9', 2196, '\uF9BA', 2197, '\uF9BB', 2198, '\uF9BC', 2199, '\uF9BD', 2200, '\uF9BE', 2201, '\uF9BF', 2039, '\uF9C0', 2202, '\uF9C1', 2203, '\uF9C2', 2204, '\uF9C3', 2205, '\uF9C4', 1402, '\uF9C5', 2206, '\uF9C6', 2207, '\uF9C7', 2208, '\uF9C8', 2209, '\uF9C9', 2210, '\uF9CA', 2211, '\uF9CB', 2212, '\uF9CC', 2213, '\uF9CD', 2214, '\uF9CE', 2215, '\uF9CF', 2216, '\uF9D0', 2217, '\uF9D1', 1669, '\uF9D2', 2218, '\uF9D3', 2219, '\uF9D4', 2220, '\uF9D5', 2221, '\uF9D6', 2222, '\uF9D7', 2223, '\uF9D8', 2224, '\uF9D9', 2225, '\uF9DA', 2226, '\uF9DB', 2113, '\uF9DC', 2227, '\uF9DD', 2228, '\uF9DE', 2229, '\uF9DF', 2230, '\uF9E0', 2231, '\uF9E1', 2232, '\uF9E2', 2233, '\uF9E3', 2234, '\uF9E4', 2235, '\uF9E5', 2236, '\uF9E6', 2237, '\uF9E7', 2238, '\uF9E8', 2239, '\uF9E9', 1356, '\uF9EA', 2240, '\uF9EB', 2241, '\uF9EC', 2242, '\uF9ED', 2243, '\uF9EE', 2244, '\uF9EF', 2245, '\uF9F0', 2246, '\uF9F1', 2247, '\uF9F2', 2248, '\uF9F3', 2249, '\uF9F4', 2250, '\uF9F5', 2251, '\uF9F6', 2252, '\uF9F7', 1307, '\uF9F8', 2253, '\uF9F9', 2254, '\uF9FA', 2255, '\uF9FB', 2256, '\uF9FC', 2257, '\uF9FD', 2258, '\uF9FE', 2259, '\uF9FF', 2260, '\uFA00', 2261, '\uFA01', 2262, '\uFA02', 2263, '\uFA03', 2264, '\uFA04', 2265, '\uFA05', 2266, '\uFA06', 2267, '\uFA07', 2268, '\uFA08', 1334, '\uFA09', 2269, '\uFA0A', 1337, '\uFA0B', 2270, '\uFA0C', 2271, '\uFA0D', 2272, '\uFA10', 2273, '\uFA12', 2274, '\uFA15', 2275, '\uFA16', 2276, '\uFA17', 2277, '\uFA18', 2278, '\uFA19', 2279, '\uFA1A', 2280, '\uFA1B', 2281, '\uFA1C', 2282, '\uFA1D', 2283, '\uFA1E', 1314, '\uFA20', 2284, '\uFA22', 2285, '\uFA25', 2286, '\uFA26', 2287, '\uFA2A', 2288, '\uFA2B', 2289, '\uFA2C', 2290, '\uFA2D', 2291, '\uFA30', 2292, '\uFA31', 2293, '\uFA32', 2294, '\uFA33', 2295, '\uFA34', 2296, '\uFA35', 2297, '\uFA36', 2298, '\uFA37', 2299, '\uFA38', 2300, '\uFA39', 2301, '\uFA3A', 2302, '\uFA3B', 2303, '\uFA3C', 1235, '\uFA3D', 2304, '\uFA3E', 2305, '\uFA3F', 2306, '\uFA40', 2307, '\uFA41', 2308, '\uFA42', 2309, '\uFA43', 2310, '\uFA44', 2311, '\uFA45', 2312, '\uFA46', 2313, '\uFA47', 2314, '\uFA48', 2315, '\uFA49', 2316, '\uFA4A', 2317, '\uFA4B', 2318, '\uFA4C', 1674, '\uFA4D', 2319, '\uFA4E', 2320, '\uFA4F', 2321, '\uFA50', 2322, '\uFA51', 1678, '\uFA52', 2323, '\uFA53', 2324, '\uFA54', 2325, '\uFA55', 2326, '\uFA56', 2327, '\uFA57', 2163, '\uFA58', 2328, '\uFA59', 2329, '\uFA5A', 2330, '\uFA5B', 2331, '\uFA5C', 2332, '\uFA5D', 2333, '\uFA5E', 2333, '\uFA5F', 2334, '\uFA60', 2335, '\uFA61', 2336, '\uFA62', 2337, '\uFA63', 2338, '\uFA64', 2339, '\uFA65', 2340, '\uFA66', 2341, '\uFA67', 2286, '\uFA68', 2342, '\uFA69', 2343, '\uFA6A', 2344, '\uFB00', 2345, '\uFB01', 2346, '\uFB02', 2347, '\uFB03', 2348, '\uFB04', 2349, '\uFB05', 2350, '\uFB06', 2350, '\uFB13', 2351, '\uFB14', 2352, '\uFB15', 2353, '\uFB16', 2354, '\uFB17', 2355, '\uFB1D', 2356, '\uFB1F', 2357, '\uFB20', 2358, '\uFB21', 994, '\uFB22', 997, '\uFB23', 2359, '\uFB24', 2360, '\uFB25', 2361, '\uFB26', 2362, '\uFB27', 2363, '\uFB28', 2364, '\uFB29', 958, '\uFB2A', 2365, '\uFB2B', 2366, '\uFB2C', 2367, '\uFB2D', 2368, '\uFB2E', 2369, '\uFB2F', 2370, '\uFB30', 2371, '\uFB31', 2372, '\uFB32', 2373, '\uFB33', 2374, '\uFB34', 2375, '\uFB35', 2376, '\uFB36', 2377, '\uFB38', 2378, '\uFB39', 2379, '\uFB3A', 2380, '\uFB3B', 2381, '\uFB3C', 2382, '\uFB3E', 2383, '\uFB40', 2384, '\uFB41', 2385, '\uFB43', 2386, '\uFB44', 2387, '\uFB46', 2388, '\uFB47', 2389, '\uFB48', 2390, '\uFB49', 2391, '\uFB4A', 2392, '\uFB4B', 2393, '\uFB4C', 2394, '\uFB4D', 2395, '\uFB4E', 2396, '\uFB4F', 2397, '\uFB50', 2398, '\uFB51', 2398, '\uFB52', 2399, '\uFB53', 2399, '\uFB54', 2399, '\uFB55', 2399, '\uFB56', 2400, '\uFB57', 2400, '\uFB58', 2400, '\uFB59', 2400, '\uFB5A', 2401, '\uFB5B', 2401, '\uFB5C', 2401, '\uFB5D', 2401, '\uFB5E', 2402, '\uFB5F', 2402, '\uFB60', 2402, '\uFB61', 2402, '\uFB62', 2403, '\uFB63', 2403, '\uFB64', 2403, '\uFB65', 2403, '\uFB66', 2404, '\uFB67', 2404, '\uFB68', 2404, '\uFB69', 2404, '\uFB6A', 2405, '\uFB6B', 2405, '\uFB6C', 2405, '\uFB6D', 2405, '\uFB6E', 2406, '\uFB6F', 2406, '\uFB70', 2406, '\uFB71', 2406, '\uFB72', 2407, '\uFB73', 2407, '\uFB74', 2407, '\uFB75', 2407, '\uFB76', 2408, '\uFB77', 2408, '\uFB78', 2408, '\uFB79', 2408, '\uFB7A', 2409, '\uFB7B', 2409, '\uFB7C', 2409, '\uFB7D', 2409, '\uFB7E', 2410, '\uFB7F', 2410, '\uFB80', 2410, '\uFB81', 2410, '\uFB82', 2411, '\uFB83', 2411, '\uFB84', 2412, '\uFB85', 2412, '\uFB86', 2413, '\uFB87', 2413, '\uFB88', 2414, '\uFB89', 2414, '\uFB8A', 2415, '\uFB8B', 2415, '\uFB8C', 2416, '\uFB8D', 2416, '\uFB8E', 2417, '\uFB8F', 2417, '\uFB90', 2417, '\uFB91', 2417, '\uFB92', 2418, '\uFB93', 2418, '\uFB94', 2418, '\uFB95', 2418, '\uFB96', 2419, '\uFB97', 2419, '\uFB98', 2419, '\uFB99', 2419, '\uFB9A', 2420, '\uFB9B', 2420, '\uFB9C', 2420, '\uFB9D', 2420, '\uFB9E', 2421, '\uFB9F', 2421, '\uFBA0', 2422, '\uFBA1', 2422, '\uFBA2', 2422, '\uFBA3', 2422, '\uFBA4', 404, '\uFBA5', 404, '\uFBA6', 2423, '\uFBA7', 2423, '\uFBA8', 2423, '\uFBA9', 2423, '\uFBAA', 2424, '\uFBAB', 2424, '\uFBAC', 2424, '\uFBAD', 2424, '\uFBAE', 2425, '\uFBAF', 2425, '\uFBB0', 406, '\uFBB1', 406, '\uFBD3', 2426, '\uFBD4', 2426, '\uFBD5', 2426, '\uFBD6', 2426, '\uFBD7', 2427, '\uFBD8', 2427, '\uFBD9', 2428, '\uFBDA', 2428, '\uFBDB', 2429, '\uFBDC', 2429, '\uFBDD', 402, '\uFBDE', 2430, '\uFBDF', 2430, '\uFBE0', 2431, '\uFBE1', 2431, '\uFBE2', 2432, '\uFBE3', 2432, '\uFBE4', 2433, '\uFBE5', 2433, '\uFBE6', 2433, '\uFBE7', 2433, '\uFBE8', 2434, '\uFBE9', 2434, '\uFBEA', 2435, '\uFBEB', 2435, '\uFBEC', 2436, '\uFBED', 2436, '\uFBEE', 2437, '\uFBEF', 2437, '\uFBF0', 2438, '\uFBF1', 2438, '\uFBF2', 2439, '\uFBF3', 2439, '\uFBF4', 2440, '\uFBF5', 2440, '\uFBF6', 2441, '\uFBF7', 2441, '\uFBF8', 2441, '\uFBF9', 2442, '\uFBFA', 2442, '\uFBFB', 2442, '\uFBFC', 2443, '\uFBFD', 2443, '\uFBFE', 2443, '\uFBFF', 2443, '\uFC00', 2444, '\uFC01', 2445, '\uFC02', 2446, '\uFC03', 2442, '\uFC04', 2447, '\uFC05', 2448, '\uFC06', 2449, '\uFC07', 2450, '\uFC08', 2451, '\uFC09', 2452, '\uFC0A', 2453, '\uFC0B', 2454, '\uFC0C', 2455, '\uFC0D', 2456, '\uFC0E', 2457, '\uFC0F', 2458, '\uFC10', 2459, '\uFC11', 2460, '\uFC12', 2461, '\uFC13', 2462, '\uFC14', 2463, '\uFC15', 2464, '\uFC16', 2465, '\uFC17', 2466, '\uFC18', 2467, '\uFC19', 2468, '\uFC1A', 2469, '\uFC1B', 2470, '\uFC1C', 2471, '\uFC1D', 2472, '\uFC1E', 2473, '\uFC1F', 2474, '\uFC20', 2475, '\uFC21', 2476, '\uFC22', 2477, '\uFC23', 2478, '\uFC24', 2479, '\uFC25', 2480, '\uFC26', 2481, '\uFC27', 2482, '\uFC28', 2483, '\uFC29', 2484, '\uFC2A', 2485, '\uFC2B', 2486, '\uFC2C', 2487, '\uFC2D', 2488, '\uFC2E', 2489, '\uFC2F', 2490, '\uFC30', 2491, '\uFC31', 2492, '\uFC32', 2493, '\uFC33', 2494, '\uFC34', 2495, '\uFC35', 2496, '\uFC36', 2497, '\uFC37', 2498, '\uFC38', 2499, '\uFC39', 2500, '\uFC3A', 2501, '\uFC3B', 2502, '\uFC3C', 2503, '\uFC3D', 2504, '\uFC3E', 2505, '\uFC3F', 2506, '\uFC40', 2507, '\uFC41', 2508, '\uFC42', 2509, '\uFC43', 2510, '\uFC44', 2511, '\uFC45', 2512, '\uFC46', 2513, '\uFC47', 2514, '\uFC48', 2515, '\uFC49', 2516, '\uFC4A', 2517, '\uFC4B', 2518, '\uFC4C', 2519, '\uFC4D', 2520, '\uFC4E', 2521, '\uFC4F', 2522, '\uFC50', 2523, '\uFC51', 2524, '\uFC52', 2525, '\uFC53', 2526, '\uFC54', 2527, '\uFC55', 2528, '\uFC56', 2529, '\uFC57', 2530, '\uFC58', 2531, '\uFC59', 2532, '\uFC5A', 2533, '\uFC5B', 2534, '\uFC5C', 2535, '\uFC5D', 2536, '\uFC5E', 2537, '\uFC5F', 2538, '\uFC60', 2539, '\uFC61', 2540, '\uFC62', 2541, '\uFC63', 2542, '\uFC64', 2543, '\uFC65', 2544, '\uFC66', 2446, '\uFC67', 2545, '\uFC68', 2442, '\uFC69', 2447, '\uFC6A', 2546, '\uFC6B', 2547, '\uFC6C', 2451, '\uFC6D', 2548, '\uFC6E', 2452, '\uFC6F', 2453, '\uFC70', 2549, '\uFC71', 2550, '\uFC72', 2457, '\uFC73', 2551, '\uFC74', 2458, '\uFC75', 2459, '\uFC76', 2552, '\uFC77', 2553, '\uFC78', 2461, '\uFC79', 2554, '\uFC7A', 2462, '\uFC7B', 2463, '\uFC7C', 2492, '\uFC7D', 2493, '\uFC7E', 2496, '\uFC7F', 2497, '\uFC80', 2498, '\uFC81', 2502, '\uFC82', 2503, '\uFC83', 2504, '\uFC84', 2505, '\uFC85', 2509, '\uFC86', 2510, '\uFC87', 2511, '\uFC88', 2555, '\uFC89', 2515, '\uFC8A', 2556, '\uFC8B', 2557, '\uFC8C', 2521, '\uFC8D', 2558, '\uFC8E', 2522, '\uFC8F', 2523, '\uFC90', 2536, '\uFC91', 2559, '\uFC92', 2560, '\uFC93', 2531, '\uFC94', 2561, '\uFC95', 2532, '\uFC96', 2533, '\uFC97', 2444, '\uFC98', 2445, '\uFC99', 2562, '\uFC9A', 2446, '\uFC9B', 2563, '\uFC9C', 2448, '\uFC9D', 2449, '\uFC9E', 2450, '\uFC9F', 2451, '\uFCA0', 2564, '\uFCA1', 2454, '\uFCA2', 2455, '\uFCA3', 2456, '\uFCA4', 2457, '\uFCA5', 2565, '\uFCA6', 2461, '\uFCA7', 2464, '\uFCA8', 2465, '\uFCA9', 2466, '\uFCAA', 2467, '\uFCAB', 2468, '\uFCAC', 2470, '\uFCAD', 2471, '\uFCAE', 2472, '\uFCAF', 2473, '\uFCB0', 2474, '\uFCB1', 2475, '\uFCB2', 2566, '\uFCB3', 2476, '\uFCB4', 2477, '\uFCB5', 2478, '\uFCB6', 2479, '\uFCB7', 2480, '\uFCB8', 2481, '\uFCB9', 2483, '\uFCBA', 2484, '\uFCBB', 2485, '\uFCBC', 2486, '\uFCBD', 2487, '\uFCBE', 2488, '\uFCBF', 2489, '\uFCC0', 2490, '\uFCC1', 2491, '\uFCC2', 2494, '\uFCC3', 2495, '\uFCC4', 2499, '\uFCC5', 2500, '\uFCC6', 2501, '\uFCC7', 2502, '\uFCC8', 2503, '\uFCC9', 2506, '\uFCCA', 2507, '\uFCCB', 2508, '\uFCCC', 2509, '\uFCCD', 2567, '\uFCCE', 2512, '\uFCCF', 2513, '\uFCD0', 2514, '\uFCD1', 2515, '\uFCD2', 2518, '\uFCD3', 2519, '\uFCD4', 2520, '\uFCD5', 2521, '\uFCD6', 2568, '\uFCD7', 2524, '\uFCD8', 2525, '\uFCD9', 2569, '\uFCDA', 2528, '\uFCDB', 2529, '\uFCDC', 2530, '\uFCDD', 2531, '\uFCDE', 2570, '\uFCDF', 2446, '\uFCE0', 2563, '\uFCE1', 2451, '\uFCE2', 2564, '\uFCE3', 2457, '\uFCE4', 2565, '\uFCE5', 2461, '\uFCE6', 2571, '\uFCE7', 2474, '\uFCE8', 2572, '\uFCE9', 2573, '\uFCEA', 2574, '\uFCEB', 2502, '\uFCEC', 2503, '\uFCED', 2509, '\uFCEE', 2521, '\uFCEF', 2568, '\uFCF0', 2531, '\uFCF1', 2570, '\uFCF2', 2575, '\uFCF3', 2576, '\uFCF4', 2577, '\uFCF5', 2578, '\uFCF6', 2579, '\uFCF7', 2580, '\uFCF8', 2581, '\uFCF9', 2582, '\uFCFA', 2583, '\uFCFB', 2584, '\uFCFC', 2585, '\uFCFD', 2586, '\uFCFE', 2587, '\uFCFF', 2588, '\uFD00', 2589, '\uFD01', 2590, '\uFD02', 2591, '\uFD03', 2592, '\uFD04', 2593, '\uFD05', 2594, '\uFD06', 2595, '\uFD07', 2596, '\uFD08', 2597, '\uFD09', 2598, '\uFD0A', 2599, '\uFD0B', 2600, '\uFD0C', 2573, '\uFD0D', 2601, '\uFD0E', 2602, '\uFD0F', 2603, '\uFD10', 2604, '\uFD11', 2578, '\uFD12', 2579, '\uFD13', 2580, '\uFD14', 2581, '\uFD15', 2582, '\uFD16', 2583, '\uFD17', 2584, '\uFD18', 2585, '\uFD19', 2586, '\uFD1A', 2587, '\uFD1B', 2588, '\uFD1C', 2589, '\uFD1D', 2590, '\uFD1E', 2591, '\uFD1F', 2592, '\uFD20', 2593, '\uFD21', 2594, '\uFD22', 2595, '\uFD23', 2596, '\uFD24', 2597, '\uFD25', 2598, '\uFD26', 2599, '\uFD27', 2600, '\uFD28', 2573, '\uFD29', 2601, '\uFD2A', 2602, '\uFD2B', 2603, '\uFD2C', 2604, '\uFD2D', 2598, '\uFD2E', 2599, '\uFD2F', 2600, '\uFD30', 2573, '\uFD31', 2572, '\uFD32', 2574, '\uFD33', 2482, '\uFD34', 2471, '\uFD35', 2472, '\uFD36', 2473, '\uFD37', 2598, '\uFD38', 2599, '\uFD39', 2600, '\uFD3A', 2482, '\uFD3B', 2483, '\uFD3C', 2605, '\uFD3D', 2605, '\uFD50', 2606, '\uFD51', 2607, '\uFD52', 2607, '\uFD53', 2608, '\uFD54', 2609, '\uFD55', 2610, '\uFD56', 2611, '\uFD57', 2612, '\uFD58', 2613, '\uFD59', 2613, '\uFD5A', 2614, '\uFD5B', 2615, '\uFD5C', 2616, '\uFD5D', 2617, '\uFD5E', 2618, '\uFD5F', 2619, '\uFD60', 2619, '\uFD61', 2620, '\uFD62', 2621, '\uFD63', 2621, '\uFD64', 2622, '\uFD65', 2622, '\uFD66', 2623, '\uFD67', 2624, '\uFD68', 2624, '\uFD69', 2625, '\uFD6A', 2626, '\uFD6B', 2626, '\uFD6C', 2627, '\uFD6D', 2627, '\uFD6E', 2628, '\uFD6F', 2629, '\uFD70', 2629, '\uFD71', 2630, '\uFD72', 2630, '\uFD73', 2631, '\uFD74', 2632, '\uFD75', 2633, '\uFD76', 2634, '\uFD77', 2634, '\uFD78', 2635, '\uFD79', 2636, '\uFD7A', 2637, '\uFD7B', 2638, '\uFD7C', 2639, '\uFD7D', 2639, '\uFD7E', 2640, '\uFD7F', 2641, '\uFD80', 2642, '\uFD81', 2643, '\uFD82', 2644, '\uFD83', 2645, '\uFD84', 2645, '\uFD85', 2646, '\uFD86', 2646, '\uFD87', 2647, '\uFD88', 2647, '\uFD89', 2648, '\uFD8A', 2649, '\uFD8B', 2650, '\uFD8C', 2651, '\uFD8D', 2652, '\uFD8E', 2653, '\uFD8F', 2654, '\uFD92', 2655, '\uFD93', 2656, '\uFD94', 2657, '\uFD95', 2658, '\uFD96', 2659, '\uFD97', 2660, '\uFD98', 2660, '\uFD99', 2661, '\uFD9A', 2662, '\uFD9B', 2663, '\uFD9C', 2664, '\uFD9D', 2664, '\uFD9E', 2665, '\uFD9F', 2666, '\uFDA0', 2667, '\uFDA1', 2668, '\uFDA2', 2669, '\uFDA3', 2670, '\uFDA4', 2671, '\uFDA5', 2672, '\uFDA6', 2673, '\uFDA7', 2674, '\uFDA8', 2675, '\uFDA9', 2676, '\uFDAA', 2677, '\uFDAB', 2678, '\uFDAC', 2679, '\uFDAD', 2680, '\uFDAE', 2681, '\uFDAF', 2682, '\uFDB0', 2683, '\uFDB1', 2684, '\uFDB2', 2685, '\uFDB3', 2686, '\uFDB4', 2640, '\uFDB5', 2642, '\uFDB6', 2687, '\uFDB7', 2688, '\uFDB8', 2689, '\uFDB9', 2690, '\uFDBA', 2691, '\uFDBB', 2692, '\uFDBC', 2691, '\uFDBD', 2689, '\uFDBE', 2693, '\uFDBF', 2694, '\uFDC0', 2695, '\uFDC1', 2696, '\uFDC2', 2697, '\uFDC3', 2692, '\uFDC4', 2633, '\uFDC5', 2623, '\uFDC6', 2698, '\uFDC7', 2699, '\uFDF0', 2700, '\uFDF1', 2701, '\uFDF2', 2702, '\uFDF3', 2703, '\uFDF4', 2704, '\uFDF5', 2705, '\uFDF6', 2706, '\uFDF7', 2707, '\uFDF8', 2708, '\uFDF9', 2709, '\uFDFA', 2710, '\uFDFB', 2711, '\uFDFC', 2712, '\uFE30', 938, '\uFE31', 2713, '\uFE32', 2714, '\uFE33', 2715, '\uFE34', 2715, '\uFE35', 961, '\uFE36', 962, '\uFE37', 2716, '\uFE38', 2717, '\uFE39', 2718, '\uFE3A', 2719, '\uFE3B', 2720, '\uFE3C', 2721, '\uFE3D', 2722, '\uFE3E', 2723, '\uFE3F', 1088, '\uFE40', 1089, '\uFE41', 2724, '\uFE42', 2725, '\uFE43', 2726, '\uFE44', 2727, '\uFE49', 945, '\uFE4A', 945, '\uFE4B', 945, '\uFE4C', 945, '\uFE4D', 2715, '\uFE4E', 2715, '\uFE4F', 2715, '\uFE50', 2728, '\uFE51', 2729, '\uFE52', 937, '\uFE54', 309, '\uFE55', 2730, '\uFE56', 2731, '\uFE57', 2732, '\uFE58', 2713, '\uFE59', 961, '\uFE5A', 962, '\uFE5B', 2716, '\uFE5C', 2717, '\uFE5D', 2718, '\uFE5E', 2719, '\uFE5F', 2733, '\uFE60', 2734, '\uFE61', 2735, '\uFE62', 958, '\uFE63', 2736, '\uFE64', 2737, '\uFE65', 2738, '\uFE66', 960, '\uFE68', 2739, '\uFE69', 2740, '\uFE6A', 2741, '\uFE6B', 2742, '\uFE70', 2743, '\uFE71', 2744, '\uFE72', 2745, '\uFE74', 2746, '\uFE76', 2747, '\uFE77', 2748, '\uFE78', 2749, '\uFE79', 2750, '\uFE7A', 2751, '\uFE7B', 2752, '\uFE7C', 2753, '\uFE7D', 2754, '\uFE7E', 2755, '\uFE7F', 2756, '\uFE80', 2757, '\uFE81', 395, '\uFE82', 395, '\uFE83', 396, '\uFE84', 396, '\uFE85', 397, '\uFE86', 397, '\uFE87', 398, '\uFE88', 398, '\uFE89', 399, '\uFE8A', 399, '\uFE8B', 399, '\uFE8C', 399, '\uFE8D', 2758, '\uFE8E', 2758, '\uFE8F', 2759, '\uFE90', 2759, '\uFE91', 2759, '\uFE92', 2759, '\uFE93', 2760, '\uFE94', 2760, '\uFE95', 2761, '\uFE96', 2761, '\uFE97', 2761, '\uFE98', 2761, '\uFE99', 2762, '\uFE9A', 2762, '\uFE9B', 2762, '\uFE9C', 2762, '\uFE9D', 2763, '\uFE9E', 2763, '\uFE9F', 2763, '\uFEA0', 2763, '\uFEA1', 2764, '\uFEA2', 2764, '\uFEA3', 2764, '\uFEA4', 2764, '\uFEA5', 2765, '\uFEA6', 2765, '\uFEA7', 2765, '\uFEA8', 2765, '\uFEA9', 2766, '\uFEAA', 2766, '\uFEAB', 2767, '\uFEAC', 2767, '\uFEAD', 2768, '\uFEAE', 2768, '\uFEAF', 2769, '\uFEB0', 2769, '\uFEB1', 2770, '\uFEB2', 2770, '\uFEB3', 2770, '\uFEB4', 2770, '\uFEB5', 2771, '\uFEB6', 2771, '\uFEB7', 2771, '\uFEB8', 2771, '\uFEB9', 2772, '\uFEBA', 2772, '\uFEBB', 2772, '\uFEBC', 2772, '\uFEBD', 2773, '\uFEBE', 2773, '\uFEBF', 2773, '\uFEC0', 2773, '\uFEC1', 2774, '\uFEC2', 2774, '\uFEC3', 2774, '\uFEC4', 2774, '\uFEC5', 2775, '\uFEC6', 2775, '\uFEC7', 2775, '\uFEC8', 2775, '\uFEC9', 2776, '\uFECA', 2776, '\uFECB', 2776, '\uFECC', 2776, '\uFECD', 2777, '\uFECE', 2777, '\uFECF', 2777, '\uFED0', 2777, '\uFED1', 2778, '\uFED2', 2778, '\uFED3', 2778, '\uFED4', 2778, '\uFED5', 2779, '\uFED6', 2779, '\uFED7', 2779, '\uFED8', 2779, '\uFED9', 2780, '\uFEDA', 2780, '\uFEDB', 2780, '\uFEDC', 2780, '\uFEDD', 2781, '\uFEDE', 2781, '\uFEDF', 2781, '\uFEE0', 2781, '\uFEE1', 2782, '\uFEE2', 2782, '\uFEE3', 2782, '\uFEE4', 2782, '\uFEE5', 2783, '\uFEE6', 2783, '\uFEE7', 2783, '\uFEE8', 2783, '\uFEE9', 2784, '\uFEEA', 2784, '\uFEEB', 2784, '\uFEEC', 2784, '\uFEED', 2785, '\uFEEE', 2785, '\uFEEF', 2434, '\uFEF0', 2434, '\uFEF1', 2786, '\uFEF2', 2786, '\uFEF3', 2786, '\uFEF4', 2786, '\uFEF5', 2787, '\uFEF6', 2787, '\uFEF7', 2788, '\uFEF8', 2788, '\uFEF9', 2789, '\uFEFA', 2789, '\uFEFB', 2790, '\uFEFC', 2790, '\uFF01', 2732, '\uFF02', 2791, '\uFF03', 2733, '\uFF04', 2740, '\uFF05', 2741, '\uFF06', 2734, '\uFF07', 2792, '\uFF08', 961, '\uFF09', 962, '\uFF0A', 2735, '\uFF0B', 958, '\uFF0C', 2728, '\uFF0D', 2736, '\uFF0E', 937, '\uFF0F', 2793, '\uFF10', 950, '\uFF11', 9, '\uFF12', 4, '\uFF13', 5, '\uFF14', 952, '\uFF15', 953, '\uFF16', 954, '\uFF17', 955, '\uFF18', 956, '\uFF19', 957, '\uFF1A', 2730, '\uFF1B', 309, '\uFF1C', 2737, '\uFF1D', 960, '\uFF1E', 2738, '\uFF1F', 2731, '\uFF20', 2742, '\uFF21', 1167, '\uFF22', 989, '\uFF23', 967, '\uFF24', 1002, '\uFF25', 991, '\uFF26', 992, '\uFF27', 1168, '\uFF28', 974, '\uFF29', 976, '\uFF2A', 1169, '\uFF2B', 988, '\uFF2C', 977, '\uFF2D', 993, '\uFF2E', 978, '\uFF2F', 1170, '\uFF30', 980, '\uFF31', 981, '\uFF32', 982, '\uFF33', 1171, '\uFF34', 1172, '\uFF35', 1173, '\uFF36', 1020, '\uFF37', 1174, '\uFF38', 1025, '\uFF39', 1175, '\uFF3A', 986, '\uFF3B', 2794, '\uFF3C', 2739, '\uFF3D', 2795, '\uFF3E', 2796, '\uFF3F', 2715, '\uFF40', 925, '\uFF41', 2, '\uFF42', 1176, '\uFF43', 1038, '\uFF44', 1003, '\uFF45', 990, '\uFF46', 1177, '\uFF47', 973, '\uFF48', 284, '\uFF49', 951, '\uFF4A', 286, '\uFF4B', 1178, '\uFF4C', 300, '\uFF4D', 1039, '\uFF4E', 963, '\uFF4F', 10, '\uFF50', 1179, '\uFF51', 1180, '\uFF52', 287, '\uFF53', 180, '\uFF54', 1181, '\uFF55', 1182, '\uFF56', 1031, '\uFF57', 291, '\uFF58', 301, '\uFF59', 292, '\uFF5A', 1183, '\uFF5B', 2716, '\uFF5C', 2797, '\uFF5D', 2717, '\uFF5E', 2798, '\uFF5F', 2799, '\uFF60', 2800, '\uFF61', 2801, '\uFF62', 2724, '\uFF63', 2725, '\uFF64', 2729, '\uFF65', 2802, '\uFF66', 1773, '\uFF67', 2803, '\uFF68', 2804, '\uFF69', 2805, '\uFF6A', 2806, '\uFF6B', 2807, '\uFF6C', 2808, '\uFF6D', 2809, '\uFF6E', 2810, '\uFF6F', 2811, '\uFF70', 2812, '\uFF71', 1727, '\uFF72', 1728, '\uFF73', 1729, '\uFF74', 1730, '\uFF75', 1731, '\uFF76', 1732, '\uFF77', 1733, '\uFF78', 1734, '\uFF79', 1735, '\uFF7A', 1736, '\uFF7B', 1737, '\uFF7C', 1738, '\uFF7D', 1739, '\uFF7E', 1740, '\uFF7F', 1741, '\uFF80', 1742, '\uFF81', 1743, '\uFF82', 1744, '\uFF83', 1745, '\uFF84', 1746, '\uFF85', 1747, '\uFF86', 1748, '\uFF87', 1749, '\uFF88', 1750, '\uFF89', 1751, '\uFF8A', 1752, '\uFF8B', 1753, '\uFF8C', 1754, '\uFF8D', 1755, '\uFF8E', 1756, '\uFF8F', 1757, '\uFF90', 1758, '\uFF91', 1759, '\uFF92', 1760, '\uFF93', 1761, '\uFF94', 1762, '\uFF95', 1763, '\uFF96', 1764, '\uFF97', 1765, '\uFF98', 1766, '\uFF99', 1767, '\uFF9A', 1768, '\uFF9B', 1769, '\uFF9C', 1770, '\uFF9D', 2813, '\uFF9E', 2814, '\uFF9F', 2815, '\uFFA0', 1521, '\uFFA1', 1470, '\uFFA2', 1471, '\uFFA3', 1472, '\uFFA4', 1473, '\uFFA5', 1474, '\uFFA6', 1475, '\uFFA7', 1476, '\uFFA8', 1477, '\uFFA9', 1478, '\uFFAA', 1479, '\uFFAB', 1480, '\uFFAC', 1481, '\uFFAD', 1482, '\uFFAE', 1483, '\uFFAF', 1484, '\uFFB0', 1485, '\uFFB1', 1486, '\uFFB2', 1487, '\uFFB3', 1488, '\uFFB4', 1489, '\uFFB5', 1490, '\uFFB6', 1491, '\uFFB7', 1492, '\uFFB8', 1493, '\uFFB9', 1494, '\uFFBA', 1495, '\uFFBB', 1496, '\uFFBC', 1497, '\uFFBD', 1498, '\uFFBE', 1499, '\uFFC2', 1500, '\uFFC3', 1501, '\uFFC4', 1502, '\uFFC5', 1503, '\uFFC6', 1504, '\uFFC7', 1505, '\uFFCA', 1506, '\uFFCB', 1507, '\uFFCC', 1508, '\uFFCD', 1509, '\uFFCE', 1510, '\uFFCF', 1511, '\uFFD2', 1512, '\uFFD3', 1513, '\uFFD4', 1514, '\uFFD5', 1515, '\uFFD6', 1516, '\uFFD7', 1517, '\uFFDA', 1518, '\uFFDB', 1519, '\uFFDC', 1520, '\uFFE0', 2816, '\uFFE1', 2817, '\uFFE2', 2818, '\uFFE3', 3, '\uFFE4', 2819, '\uFFE5', 2820, '\uFFE6', 2821, '\uFFE8', 2822, '\uFFE9', 2823, '\uFFEA', 2824, '\uFFEB', 2825, '\uFFEC', 2826, '\uFFED', 2827, '\uFFEE', 2828, }; } libidn-1.38/csharp/libidn.csproj.user0000644000000000000000000000067114053001337014515 00000000000000 libidn-1.38/csharp/libidn_PPC.csdproj0000644000000000000000000001536314053001337014412 00000000000000 libidn-1.38/csharp/RFC3454.cs0000644000000000000000000055467214076273652012375 00000000000000// Do not edit !!! // this file is generated automatically using System; namespace Gnu.Inet.Encoding{ public class RFC3454 { public static char[][] A1 = new char[][] { new char[] { '\u0221' }, /* 0221 */ new char[] { '\u0234', '\u024F' }, /* 0234-024F */ new char[] { '\u02AE', '\u02AF' }, /* 02AE-02AF */ new char[] { '\u02EF', '\u02FF' }, /* 02EF-02FF */ new char[] { '\u0350', '\u035F' }, /* 0350-035F */ new char[] { '\u0370', '\u0373' }, /* 0370-0373 */ new char[] { '\u0376', '\u0379' }, /* 0376-0379 */ new char[] { '\u037B', '\u037D' }, /* 037B-037D */ new char[] { '\u037F', '\u0383' }, /* 037F-0383 */ new char[] { '\u038B' }, /* 038B */ new char[] { '\u038D' }, /* 038D */ new char[] { '\u03A2' }, /* 03A2 */ new char[] { '\u03CF' }, /* 03CF */ new char[] { '\u03F7', '\u03FF' }, /* 03F7-03FF */ new char[] { '\u0487' }, /* 0487 */ new char[] { '\u04CF' }, /* 04CF */ new char[] { '\u04F6', '\u04F7' }, /* 04F6-04F7 */ new char[] { '\u04FA', '\u04FF' }, /* 04FA-04FF */ new char[] { '\u0510', '\u0530' }, /* 0510-0530 */ new char[] { '\u0557', '\u0558' }, /* 0557-0558 */ new char[] { '\u0560' }, /* 0560 */ new char[] { '\u0588' }, /* 0588 */ new char[] { '\u058B', '\u0590' }, /* 058B-0590 */ new char[] { '\u05A2' }, /* 05A2 */ new char[] { '\u05BA' }, /* 05BA */ new char[] { '\u05C5', '\u05CF' }, /* 05C5-05CF */ new char[] { '\u05EB', '\u05EF' }, /* 05EB-05EF */ new char[] { '\u05F5', '\u060B' }, /* 05F5-060B */ new char[] { '\u060D', '\u061A' }, /* 060D-061A */ new char[] { '\u061C', '\u061E' }, /* 061C-061E */ new char[] { '\u0620' }, /* 0620 */ new char[] { '\u063B', '\u063F' }, /* 063B-063F */ new char[] { '\u0656', '\u065F' }, /* 0656-065F */ new char[] { '\u06EE', '\u06EF' }, /* 06EE-06EF */ new char[] { '\u06FF' }, /* 06FF */ new char[] { '\u070E' }, /* 070E */ new char[] { '\u072D', '\u072F' }, /* 072D-072F */ new char[] { '\u074B', '\u077F' }, /* 074B-077F */ new char[] { '\u07B2', '\u0900' }, /* 07B2-0900 */ new char[] { '\u0904' }, /* 0904 */ new char[] { '\u093A', '\u093B' }, /* 093A-093B */ new char[] { '\u094E', '\u094F' }, /* 094E-094F */ new char[] { '\u0955', '\u0957' }, /* 0955-0957 */ new char[] { '\u0971', '\u0980' }, /* 0971-0980 */ new char[] { '\u0984' }, /* 0984 */ new char[] { '\u098D', '\u098E' }, /* 098D-098E */ new char[] { '\u0991', '\u0992' }, /* 0991-0992 */ new char[] { '\u09A9' }, /* 09A9 */ new char[] { '\u09B1' }, /* 09B1 */ new char[] { '\u09B3', '\u09B5' }, /* 09B3-09B5 */ new char[] { '\u09BA', '\u09BB' }, /* 09BA-09BB */ new char[] { '\u09BD' }, /* 09BD */ new char[] { '\u09C5', '\u09C6' }, /* 09C5-09C6 */ new char[] { '\u09C9', '\u09CA' }, /* 09C9-09CA */ new char[] { '\u09CE', '\u09D6' }, /* 09CE-09D6 */ new char[] { '\u09D8', '\u09DB' }, /* 09D8-09DB */ new char[] { '\u09DE' }, /* 09DE */ new char[] { '\u09E4', '\u09E5' }, /* 09E4-09E5 */ new char[] { '\u09FB', '\u0A01' }, /* 09FB-0A01 */ new char[] { '\u0A03', '\u0A04' }, /* 0A03-0A04 */ new char[] { '\u0A0B', '\u0A0E' }, /* 0A0B-0A0E */ new char[] { '\u0A11', '\u0A12' }, /* 0A11-0A12 */ new char[] { '\u0A29' }, /* 0A29 */ new char[] { '\u0A31' }, /* 0A31 */ new char[] { '\u0A34' }, /* 0A34 */ new char[] { '\u0A37' }, /* 0A37 */ new char[] { '\u0A3A', '\u0A3B' }, /* 0A3A-0A3B */ new char[] { '\u0A3D' }, /* 0A3D */ new char[] { '\u0A43', '\u0A46' }, /* 0A43-0A46 */ new char[] { '\u0A49', '\u0A4A' }, /* 0A49-0A4A */ new char[] { '\u0A4E', '\u0A58' }, /* 0A4E-0A58 */ new char[] { '\u0A5D' }, /* 0A5D */ new char[] { '\u0A5F', '\u0A65' }, /* 0A5F-0A65 */ new char[] { '\u0A75', '\u0A80' }, /* 0A75-0A80 */ new char[] { '\u0A84' }, /* 0A84 */ new char[] { '\u0A8C' }, /* 0A8C */ new char[] { '\u0A8E' }, /* 0A8E */ new char[] { '\u0A92' }, /* 0A92 */ new char[] { '\u0AA9' }, /* 0AA9 */ new char[] { '\u0AB1' }, /* 0AB1 */ new char[] { '\u0AB4' }, /* 0AB4 */ new char[] { '\u0ABA', '\u0ABB' }, /* 0ABA-0ABB */ new char[] { '\u0AC6' }, /* 0AC6 */ new char[] { '\u0ACA' }, /* 0ACA */ new char[] { '\u0ACE', '\u0ACF' }, /* 0ACE-0ACF */ new char[] { '\u0AD1', '\u0ADF' }, /* 0AD1-0ADF */ new char[] { '\u0AE1', '\u0AE5' }, /* 0AE1-0AE5 */ new char[] { '\u0AF0', '\u0B00' }, /* 0AF0-0B00 */ new char[] { '\u0B04' }, /* 0B04 */ new char[] { '\u0B0D', '\u0B0E' }, /* 0B0D-0B0E */ new char[] { '\u0B11', '\u0B12' }, /* 0B11-0B12 */ new char[] { '\u0B29' }, /* 0B29 */ new char[] { '\u0B31' }, /* 0B31 */ new char[] { '\u0B34', '\u0B35' }, /* 0B34-0B35 */ new char[] { '\u0B3A', '\u0B3B' }, /* 0B3A-0B3B */ new char[] { '\u0B44', '\u0B46' }, /* 0B44-0B46 */ new char[] { '\u0B49', '\u0B4A' }, /* 0B49-0B4A */ new char[] { '\u0B4E', '\u0B55' }, /* 0B4E-0B55 */ new char[] { '\u0B58', '\u0B5B' }, /* 0B58-0B5B */ new char[] { '\u0B5E' }, /* 0B5E */ new char[] { '\u0B62', '\u0B65' }, /* 0B62-0B65 */ new char[] { '\u0B71', '\u0B81' }, /* 0B71-0B81 */ new char[] { '\u0B84' }, /* 0B84 */ new char[] { '\u0B8B', '\u0B8D' }, /* 0B8B-0B8D */ new char[] { '\u0B91' }, /* 0B91 */ new char[] { '\u0B96', '\u0B98' }, /* 0B96-0B98 */ new char[] { '\u0B9B' }, /* 0B9B */ new char[] { '\u0B9D' }, /* 0B9D */ new char[] { '\u0BA0', '\u0BA2' }, /* 0BA0-0BA2 */ new char[] { '\u0BA5', '\u0BA7' }, /* 0BA5-0BA7 */ new char[] { '\u0BAB', '\u0BAD' }, /* 0BAB-0BAD */ new char[] { '\u0BB6' }, /* 0BB6 */ new char[] { '\u0BBA', '\u0BBD' }, /* 0BBA-0BBD */ new char[] { '\u0BC3', '\u0BC5' }, /* 0BC3-0BC5 */ new char[] { '\u0BC9' }, /* 0BC9 */ new char[] { '\u0BCE', '\u0BD6' }, /* 0BCE-0BD6 */ new char[] { '\u0BD8', '\u0BE6' }, /* 0BD8-0BE6 */ new char[] { '\u0BF3', '\u0C00' }, /* 0BF3-0C00 */ new char[] { '\u0C04' }, /* 0C04 */ new char[] { '\u0C0D' }, /* 0C0D */ new char[] { '\u0C11' }, /* 0C11 */ new char[] { '\u0C29' }, /* 0C29 */ new char[] { '\u0C34' }, /* 0C34 */ new char[] { '\u0C3A', '\u0C3D' }, /* 0C3A-0C3D */ new char[] { '\u0C45' }, /* 0C45 */ new char[] { '\u0C49' }, /* 0C49 */ new char[] { '\u0C4E', '\u0C54' }, /* 0C4E-0C54 */ new char[] { '\u0C57', '\u0C5F' }, /* 0C57-0C5F */ new char[] { '\u0C62', '\u0C65' }, /* 0C62-0C65 */ new char[] { '\u0C70', '\u0C81' }, /* 0C70-0C81 */ new char[] { '\u0C84' }, /* 0C84 */ new char[] { '\u0C8D' }, /* 0C8D */ new char[] { '\u0C91' }, /* 0C91 */ new char[] { '\u0CA9' }, /* 0CA9 */ new char[] { '\u0CB4' }, /* 0CB4 */ new char[] { '\u0CBA', '\u0CBD' }, /* 0CBA-0CBD */ new char[] { '\u0CC5' }, /* 0CC5 */ new char[] { '\u0CC9' }, /* 0CC9 */ new char[] { '\u0CCE', '\u0CD4' }, /* 0CCE-0CD4 */ new char[] { '\u0CD7', '\u0CDD' }, /* 0CD7-0CDD */ new char[] { '\u0CDF' }, /* 0CDF */ new char[] { '\u0CE2', '\u0CE5' }, /* 0CE2-0CE5 */ new char[] { '\u0CF0', '\u0D01' }, /* 0CF0-0D01 */ new char[] { '\u0D04' }, /* 0D04 */ new char[] { '\u0D0D' }, /* 0D0D */ new char[] { '\u0D11' }, /* 0D11 */ new char[] { '\u0D29' }, /* 0D29 */ new char[] { '\u0D3A', '\u0D3D' }, /* 0D3A-0D3D */ new char[] { '\u0D44', '\u0D45' }, /* 0D44-0D45 */ new char[] { '\u0D49' }, /* 0D49 */ new char[] { '\u0D4E', '\u0D56' }, /* 0D4E-0D56 */ new char[] { '\u0D58', '\u0D5F' }, /* 0D58-0D5F */ new char[] { '\u0D62', '\u0D65' }, /* 0D62-0D65 */ new char[] { '\u0D70', '\u0D81' }, /* 0D70-0D81 */ new char[] { '\u0D84' }, /* 0D84 */ new char[] { '\u0D97', '\u0D99' }, /* 0D97-0D99 */ new char[] { '\u0DB2' }, /* 0DB2 */ new char[] { '\u0DBC' }, /* 0DBC */ new char[] { '\u0DBE', '\u0DBF' }, /* 0DBE-0DBF */ new char[] { '\u0DC7', '\u0DC9' }, /* 0DC7-0DC9 */ new char[] { '\u0DCB', '\u0DCE' }, /* 0DCB-0DCE */ new char[] { '\u0DD5' }, /* 0DD5 */ new char[] { '\u0DD7' }, /* 0DD7 */ new char[] { '\u0DE0', '\u0DF1' }, /* 0DE0-0DF1 */ new char[] { '\u0DF5', '\u0E00' }, /* 0DF5-0E00 */ new char[] { '\u0E3B', '\u0E3E' }, /* 0E3B-0E3E */ new char[] { '\u0E5C', '\u0E80' }, /* 0E5C-0E80 */ new char[] { '\u0E83' }, /* 0E83 */ new char[] { '\u0E85', '\u0E86' }, /* 0E85-0E86 */ new char[] { '\u0E89' }, /* 0E89 */ new char[] { '\u0E8B', '\u0E8C' }, /* 0E8B-0E8C */ new char[] { '\u0E8E', '\u0E93' }, /* 0E8E-0E93 */ new char[] { '\u0E98' }, /* 0E98 */ new char[] { '\u0EA0' }, /* 0EA0 */ new char[] { '\u0EA4' }, /* 0EA4 */ new char[] { '\u0EA6' }, /* 0EA6 */ new char[] { '\u0EA8', '\u0EA9' }, /* 0EA8-0EA9 */ new char[] { '\u0EAC' }, /* 0EAC */ new char[] { '\u0EBA' }, /* 0EBA */ new char[] { '\u0EBE', '\u0EBF' }, /* 0EBE-0EBF */ new char[] { '\u0EC5' }, /* 0EC5 */ new char[] { '\u0EC7' }, /* 0EC7 */ new char[] { '\u0ECE', '\u0ECF' }, /* 0ECE-0ECF */ new char[] { '\u0EDA', '\u0EDB' }, /* 0EDA-0EDB */ new char[] { '\u0EDE', '\u0EFF' }, /* 0EDE-0EFF */ new char[] { '\u0F48' }, /* 0F48 */ new char[] { '\u0F6B', '\u0F70' }, /* 0F6B-0F70 */ new char[] { '\u0F8C', '\u0F8F' }, /* 0F8C-0F8F */ new char[] { '\u0F98' }, /* 0F98 */ new char[] { '\u0FBD' }, /* 0FBD */ new char[] { '\u0FCD', '\u0FCE' }, /* 0FCD-0FCE */ new char[] { '\u0FD0', '\u0FFF' }, /* 0FD0-0FFF */ new char[] { '\u1022' }, /* 1022 */ new char[] { '\u1028' }, /* 1028 */ new char[] { '\u102B' }, /* 102B */ new char[] { '\u1033', '\u1035' }, /* 1033-1035 */ new char[] { '\u103A', '\u103F' }, /* 103A-103F */ new char[] { '\u105A', '\u109F' }, /* 105A-109F */ new char[] { '\u10C6', '\u10CF' }, /* 10C6-10CF */ new char[] { '\u10F9', '\u10FA' }, /* 10F9-10FA */ new char[] { '\u10FC', '\u10FF' }, /* 10FC-10FF */ new char[] { '\u115A', '\u115E' }, /* 115A-115E */ new char[] { '\u11A3', '\u11A7' }, /* 11A3-11A7 */ new char[] { '\u11FA', '\u11FF' }, /* 11FA-11FF */ new char[] { '\u1207' }, /* 1207 */ new char[] { '\u1247' }, /* 1247 */ new char[] { '\u1249' }, /* 1249 */ new char[] { '\u124E', '\u124F' }, /* 124E-124F */ new char[] { '\u1257' }, /* 1257 */ new char[] { '\u1259' }, /* 1259 */ new char[] { '\u125E', '\u125F' }, /* 125E-125F */ new char[] { '\u1287' }, /* 1287 */ new char[] { '\u1289' }, /* 1289 */ new char[] { '\u128E', '\u128F' }, /* 128E-128F */ new char[] { '\u12AF' }, /* 12AF */ new char[] { '\u12B1' }, /* 12B1 */ new char[] { '\u12B6', '\u12B7' }, /* 12B6-12B7 */ new char[] { '\u12BF' }, /* 12BF */ new char[] { '\u12C1' }, /* 12C1 */ new char[] { '\u12C6', '\u12C7' }, /* 12C6-12C7 */ new char[] { '\u12CF' }, /* 12CF */ new char[] { '\u12D7' }, /* 12D7 */ new char[] { '\u12EF' }, /* 12EF */ new char[] { '\u130F' }, /* 130F */ new char[] { '\u1311' }, /* 1311 */ new char[] { '\u1316', '\u1317' }, /* 1316-1317 */ new char[] { '\u131F' }, /* 131F */ new char[] { '\u1347' }, /* 1347 */ new char[] { '\u135B', '\u1360' }, /* 135B-1360 */ new char[] { '\u137D', '\u139F' }, /* 137D-139F */ new char[] { '\u13F5', '\u1400' }, /* 13F5-1400 */ new char[] { '\u1677', '\u167F' }, /* 1677-167F */ new char[] { '\u169D', '\u169F' }, /* 169D-169F */ new char[] { '\u16F1', '\u16FF' }, /* 16F1-16FF */ new char[] { '\u170D' }, /* 170D */ new char[] { '\u1715', '\u171F' }, /* 1715-171F */ new char[] { '\u1737', '\u173F' }, /* 1737-173F */ new char[] { '\u1754', '\u175F' }, /* 1754-175F */ new char[] { '\u176D' }, /* 176D */ new char[] { '\u1771' }, /* 1771 */ new char[] { '\u1774', '\u177F' }, /* 1774-177F */ new char[] { '\u17DD', '\u17DF' }, /* 17DD-17DF */ new char[] { '\u17EA', '\u17FF' }, /* 17EA-17FF */ new char[] { '\u180F' }, /* 180F */ new char[] { '\u181A', '\u181F' }, /* 181A-181F */ new char[] { '\u1878', '\u187F' }, /* 1878-187F */ new char[] { '\u18AA', '\u1DFF' }, /* 18AA-1DFF */ new char[] { '\u1E9C', '\u1E9F' }, /* 1E9C-1E9F */ new char[] { '\u1EFA', '\u1EFF' }, /* 1EFA-1EFF */ new char[] { '\u1F16', '\u1F17' }, /* 1F16-1F17 */ new char[] { '\u1F1E', '\u1F1F' }, /* 1F1E-1F1F */ new char[] { '\u1F46', '\u1F47' }, /* 1F46-1F47 */ new char[] { '\u1F4E', '\u1F4F' }, /* 1F4E-1F4F */ new char[] { '\u1F58' }, /* 1F58 */ new char[] { '\u1F5A' }, /* 1F5A */ new char[] { '\u1F5C' }, /* 1F5C */ new char[] { '\u1F5E' }, /* 1F5E */ new char[] { '\u1F7E', '\u1F7F' }, /* 1F7E-1F7F */ new char[] { '\u1FB5' }, /* 1FB5 */ new char[] { '\u1FC5' }, /* 1FC5 */ new char[] { '\u1FD4', '\u1FD5' }, /* 1FD4-1FD5 */ new char[] { '\u1FDC' }, /* 1FDC */ new char[] { '\u1FF0', '\u1FF1' }, /* 1FF0-1FF1 */ new char[] { '\u1FF5' }, /* 1FF5 */ new char[] { '\u1FFF' }, /* 1FFF */ new char[] { '\u2053', '\u2056' }, /* 2053-2056 */ new char[] { '\u2058', '\u205E' }, /* 2058-205E */ new char[] { '\u2064', '\u2069' }, /* 2064-2069 */ new char[] { '\u2072', '\u2073' }, /* 2072-2073 */ new char[] { '\u208F', '\u209F' }, /* 208F-209F */ new char[] { '\u20B2', '\u20CF' }, /* 20B2-20CF */ new char[] { '\u20EB', '\u20FF' }, /* 20EB-20FF */ new char[] { '\u213B', '\u213C' }, /* 213B-213C */ new char[] { '\u214C', '\u2152' }, /* 214C-2152 */ new char[] { '\u2184', '\u218F' }, /* 2184-218F */ new char[] { '\u23CF', '\u23FF' }, /* 23CF-23FF */ new char[] { '\u2427', '\u243F' }, /* 2427-243F */ new char[] { '\u244B', '\u245F' }, /* 244B-245F */ new char[] { '\u24FF' }, /* 24FF */ new char[] { '\u2614', '\u2615' }, /* 2614-2615 */ new char[] { '\u2618' }, /* 2618 */ new char[] { '\u267E', '\u267F' }, /* 267E-267F */ new char[] { '\u268A', '\u2700' }, /* 268A-2700 */ new char[] { '\u2705' }, /* 2705 */ new char[] { '\u270A', '\u270B' }, /* 270A-270B */ new char[] { '\u2728' }, /* 2728 */ new char[] { '\u274C' }, /* 274C */ new char[] { '\u274E' }, /* 274E */ new char[] { '\u2753', '\u2755' }, /* 2753-2755 */ new char[] { '\u2757' }, /* 2757 */ new char[] { '\u275F', '\u2760' }, /* 275F-2760 */ new char[] { '\u2795', '\u2797' }, /* 2795-2797 */ new char[] { '\u27B0' }, /* 27B0 */ new char[] { '\u27BF', '\u27CF' }, /* 27BF-27CF */ new char[] { '\u27EC', '\u27EF' }, /* 27EC-27EF */ new char[] { '\u2B00', '\u2E7F' }, /* 2B00-2E7F */ new char[] { '\u2E9A' }, /* 2E9A */ new char[] { '\u2EF4', '\u2EFF' }, /* 2EF4-2EFF */ new char[] { '\u2FD6', '\u2FEF' }, /* 2FD6-2FEF */ new char[] { '\u2FFC', '\u2FFF' }, /* 2FFC-2FFF */ new char[] { '\u3040' }, /* 3040 */ new char[] { '\u3097', '\u3098' }, /* 3097-3098 */ new char[] { '\u3100', '\u3104' }, /* 3100-3104 */ new char[] { '\u312D', '\u3130' }, /* 312D-3130 */ new char[] { '\u318F' }, /* 318F */ new char[] { '\u31B8', '\u31EF' }, /* 31B8-31EF */ new char[] { '\u321D', '\u321F' }, /* 321D-321F */ new char[] { '\u3244', '\u3250' }, /* 3244-3250 */ new char[] { '\u327C', '\u327E' }, /* 327C-327E */ new char[] { '\u32CC', '\u32CF' }, /* 32CC-32CF */ new char[] { '\u32FF' }, /* 32FF */ new char[] { '\u3377', '\u337A' }, /* 3377-337A */ new char[] { '\u33DE', '\u33DF' }, /* 33DE-33DF */ new char[] { '\u33FF' }, /* 33FF */ new char[] { '\u4DB6', '\u4DFF' }, /* 4DB6-4DFF */ new char[] { '\u9FA6', '\u9FFF' }, /* 9FA6-9FFF */ new char[] { '\uA48D', '\uA48F' }, /* A48D-A48F */ new char[] { '\uA4C7', '\uABFF' }, /* A4C7-ABFF */ new char[] { '\uD7A4', '\uD7FF' }, /* D7A4-D7FF */ new char[] { '\uFA2E', '\uFA2F' }, /* FA2E-FA2F */ new char[] { '\uFA6B', '\uFAFF' }, /* FA6B-FAFF */ new char[] { '\uFB07', '\uFB12' }, /* FB07-FB12 */ new char[] { '\uFB18', '\uFB1C' }, /* FB18-FB1C */ new char[] { '\uFB37' }, /* FB37 */ new char[] { '\uFB3D' }, /* FB3D */ new char[] { '\uFB3F' }, /* FB3F */ new char[] { '\uFB42' }, /* FB42 */ new char[] { '\uFB45' }, /* FB45 */ new char[] { '\uFBB2', '\uFBD2' }, /* FBB2-FBD2 */ new char[] { '\uFD40', '\uFD4F' }, /* FD40-FD4F */ new char[] { '\uFD90', '\uFD91' }, /* FD90-FD91 */ new char[] { '\uFDC8', '\uFDCF' }, /* FDC8-FDCF */ new char[] { '\uFDFD', '\uFDFF' }, /* FDFD-FDFF */ new char[] { '\uFE10', '\uFE1F' }, /* FE10-FE1F */ new char[] { '\uFE24', '\uFE2F' }, /* FE24-FE2F */ new char[] { '\uFE47', '\uFE48' }, /* FE47-FE48 */ new char[] { '\uFE53' }, /* FE53 */ new char[] { '\uFE67' }, /* FE67 */ new char[] { '\uFE6C', '\uFE6F' }, /* FE6C-FE6F */ new char[] { '\uFE75' }, /* FE75 */ new char[] { '\uFEFD', '\uFEFE' }, /* FEFD-FEFE */ new char[] { '\uFF00' }, /* FF00 */ new char[] { '\uFFBF', '\uFFC1' }, /* FFBF-FFC1 */ new char[] { '\uFFC8', '\uFFC9' }, /* FFC8-FFC9 */ new char[] { '\uFFD0', '\uFFD1' }, /* FFD0-FFD1 */ new char[] { '\uFFD8', '\uFFD9' }, /* FFD8-FFD9 */ new char[] { '\uFFDD', '\uFFDF' }, /* FFDD-FFDF */ new char[] { '\uFFE7' }, /* FFE7 */ new char[] { '\uFFEF', '\uFFF8' }, /* FFEF-FFF8 */ /* Skip characters outside the range of .NET unicode 10000-102FF */ /* Skip characters outside the range of .NET unicode 1031F */ /* Skip characters outside the range of .NET unicode 10324-1032F */ /* Skip characters outside the range of .NET unicode 1034B-103FF */ /* Skip characters outside the range of .NET unicode 10426-10427 */ /* Skip characters outside the range of .NET unicode 1044E-1CFFF */ /* Skip characters outside the range of .NET unicode 1D0F6-1D0FF */ /* Skip characters outside the range of .NET unicode 1D127-1D129 */ /* Skip characters outside the range of .NET unicode 1D1DE-1D3FF */ /* Skip characters outside the range of .NET unicode 1D455 */ /* Skip characters outside the range of .NET unicode 1D49D */ /* Skip characters outside the range of .NET unicode 1D4A0-1D4A1 */ /* Skip characters outside the range of .NET unicode 1D4A3-1D4A4 */ /* Skip characters outside the range of .NET unicode 1D4A7-1D4A8 */ /* Skip characters outside the range of .NET unicode 1D4AD */ /* Skip characters outside the range of .NET unicode 1D4BA */ /* Skip characters outside the range of .NET unicode 1D4BC */ /* Skip characters outside the range of .NET unicode 1D4C1 */ /* Skip characters outside the range of .NET unicode 1D4C4 */ /* Skip characters outside the range of .NET unicode 1D506 */ /* Skip characters outside the range of .NET unicode 1D50B-1D50C */ /* Skip characters outside the range of .NET unicode 1D515 */ /* Skip characters outside the range of .NET unicode 1D51D */ /* Skip characters outside the range of .NET unicode 1D53A */ /* Skip characters outside the range of .NET unicode 1D53F */ /* Skip characters outside the range of .NET unicode 1D545 */ /* Skip characters outside the range of .NET unicode 1D547-1D549 */ /* Skip characters outside the range of .NET unicode 1D551 */ /* Skip characters outside the range of .NET unicode 1D6A4-1D6A7 */ /* Skip characters outside the range of .NET unicode 1D7CA-1D7CD */ /* Skip characters outside the range of .NET unicode 1D800-1FFFD */ /* Skip characters outside the range of .NET unicode 2A6D7-2F7FF */ /* Skip characters outside the range of .NET unicode 2FA1E-2FFFD */ /* Skip characters outside the range of .NET unicode 30000-3FFFD */ /* Skip characters outside the range of .NET unicode 40000-4FFFD */ /* Skip characters outside the range of .NET unicode 50000-5FFFD */ /* Skip characters outside the range of .NET unicode 60000-6FFFD */ /* Skip characters outside the range of .NET unicode 70000-7FFFD */ /* Skip characters outside the range of .NET unicode 80000-8FFFD */ /* Skip characters outside the range of .NET unicode 90000-9FFFD */ /* Skip characters outside the range of .NET unicode A0000-AFFFD */ /* Skip characters outside the range of .NET unicode B0000-BFFFD */ /* Skip characters outside the range of .NET unicode C0000-CFFFD */ /* Skip characters outside the range of .NET unicode D0000-DFFFD */ /* Skip characters outside the range of .NET unicode E0000 */ /* Skip characters outside the range of .NET unicode E0002-E001F */ /* Skip characters outside the range of .NET unicode E0080-EFFFD */ }; public static char[] B1 = new char[] { '\u00AD', /* 00AD; ; Map to nothing */ '\u034F', /* 034F; ; Map to nothing */ '\u1806', /* 1806; ; Map to nothing */ '\u180B', /* 180B; ; Map to nothing */ '\u180C', /* 180C; ; Map to nothing */ '\u180D', /* 180D; ; Map to nothing */ '\u200B', /* 200B; ; Map to nothing */ '\u200C', /* 200C; ; Map to nothing */ '\u200D', /* 200D; ; Map to nothing */ '\u2060', /* 2060; ; Map to nothing */ '\uFE00', /* FE00; ; Map to nothing */ '\uFE01', /* FE01; ; Map to nothing */ '\uFE02', /* FE02; ; Map to nothing */ '\uFE03', /* FE03; ; Map to nothing */ '\uFE04', /* FE04; ; Map to nothing */ '\uFE05', /* FE05; ; Map to nothing */ '\uFE06', /* FE06; ; Map to nothing */ '\uFE07', /* FE07; ; Map to nothing */ '\uFE08', /* FE08; ; Map to nothing */ '\uFE09', /* FE09; ; Map to nothing */ '\uFE0A', /* FE0A; ; Map to nothing */ '\uFE0B', /* FE0B; ; Map to nothing */ '\uFE0C', /* FE0C; ; Map to nothing */ '\uFE0D', /* FE0D; ; Map to nothing */ '\uFE0E', /* FE0E; ; Map to nothing */ '\uFE0F', /* FE0F; ; Map to nothing */ '\uFEFF', /* FEFF; ; Map to nothing */ }; public static char[] B2search = new char[] { '\u0041', /*0041; 0061; Case map*/ '\u0042', /*0042; 0062; Case map*/ '\u0043', /*0043; 0063; Case map*/ '\u0044', /*0044; 0064; Case map*/ '\u0045', /*0045; 0065; Case map*/ '\u0046', /*0046; 0066; Case map*/ '\u0047', /*0047; 0067; Case map*/ '\u0048', /*0048; 0068; Case map*/ '\u0049', /*0049; 0069; Case map*/ '\u004A', /*004A; 006A; Case map*/ '\u004B', /*004B; 006B; Case map*/ '\u004C', /*004C; 006C; Case map*/ '\u004D', /*004D; 006D; Case map*/ '\u004E', /*004E; 006E; Case map*/ '\u004F', /*004F; 006F; Case map*/ '\u0050', /*0050; 0070; Case map*/ '\u0051', /*0051; 0071; Case map*/ '\u0052', /*0052; 0072; Case map*/ '\u0053', /*0053; 0073; Case map*/ '\u0054', /*0054; 0074; Case map*/ '\u0055', /*0055; 0075; Case map*/ '\u0056', /*0056; 0076; Case map*/ '\u0057', /*0057; 0077; Case map*/ '\u0058', /*0058; 0078; Case map*/ '\u0059', /*0059; 0079; Case map*/ '\u005A', /*005A; 007A; Case map*/ '\u00B5', /*00B5; 03BC; Case map*/ '\u00C0', /*00C0; 00E0; Case map*/ '\u00C1', /*00C1; 00E1; Case map*/ '\u00C2', /*00C2; 00E2; Case map*/ '\u00C3', /*00C3; 00E3; Case map*/ '\u00C4', /*00C4; 00E4; Case map*/ '\u00C5', /*00C5; 00E5; Case map*/ '\u00C6', /*00C6; 00E6; Case map*/ '\u00C7', /*00C7; 00E7; Case map*/ '\u00C8', /*00C8; 00E8; Case map*/ '\u00C9', /*00C9; 00E9; Case map*/ '\u00CA', /*00CA; 00EA; Case map*/ '\u00CB', /*00CB; 00EB; Case map*/ '\u00CC', /*00CC; 00EC; Case map*/ '\u00CD', /*00CD; 00ED; Case map*/ '\u00CE', /*00CE; 00EE; Case map*/ '\u00CF', /*00CF; 00EF; Case map*/ '\u00D0', /*00D0; 00F0; Case map*/ '\u00D1', /*00D1; 00F1; Case map*/ '\u00D2', /*00D2; 00F2; Case map*/ '\u00D3', /*00D3; 00F3; Case map*/ '\u00D4', /*00D4; 00F4; Case map*/ '\u00D5', /*00D5; 00F5; Case map*/ '\u00D6', /*00D6; 00F6; Case map*/ '\u00D8', /*00D8; 00F8; Case map*/ '\u00D9', /*00D9; 00F9; Case map*/ '\u00DA', /*00DA; 00FA; Case map*/ '\u00DB', /*00DB; 00FB; Case map*/ '\u00DC', /*00DC; 00FC; Case map*/ '\u00DD', /*00DD; 00FD; Case map*/ '\u00DE', /*00DE; 00FE; Case map*/ '\u00DF', /*00DF; 0073 0073; Case map*/ '\u0100', /*0100; 0101; Case map*/ '\u0102', /*0102; 0103; Case map*/ '\u0104', /*0104; 0105; Case map*/ '\u0106', /*0106; 0107; Case map*/ '\u0108', /*0108; 0109; Case map*/ '\u010A', /*010A; 010B; Case map*/ '\u010C', /*010C; 010D; Case map*/ '\u010E', /*010E; 010F; Case map*/ '\u0110', /*0110; 0111; Case map*/ '\u0112', /*0112; 0113; Case map*/ '\u0114', /*0114; 0115; Case map*/ '\u0116', /*0116; 0117; Case map*/ '\u0118', /*0118; 0119; Case map*/ '\u011A', /*011A; 011B; Case map*/ '\u011C', /*011C; 011D; Case map*/ '\u011E', /*011E; 011F; Case map*/ '\u0120', /*0120; 0121; Case map*/ '\u0122', /*0122; 0123; Case map*/ '\u0124', /*0124; 0125; Case map*/ '\u0126', /*0126; 0127; Case map*/ '\u0128', /*0128; 0129; Case map*/ '\u012A', /*012A; 012B; Case map*/ '\u012C', /*012C; 012D; Case map*/ '\u012E', /*012E; 012F; Case map*/ '\u0130', /*0130; 0069 0307; Case map*/ '\u0132', /*0132; 0133; Case map*/ '\u0134', /*0134; 0135; Case map*/ '\u0136', /*0136; 0137; Case map*/ '\u0139', /*0139; 013A; Case map*/ '\u013B', /*013B; 013C; Case map*/ '\u013D', /*013D; 013E; Case map*/ '\u013F', /*013F; 0140; Case map*/ '\u0141', /*0141; 0142; Case map*/ '\u0143', /*0143; 0144; Case map*/ '\u0145', /*0145; 0146; Case map*/ '\u0147', /*0147; 0148; Case map*/ '\u0149', /*0149; 02BC 006E; Case map*/ '\u014A', /*014A; 014B; Case map*/ '\u014C', /*014C; 014D; Case map*/ '\u014E', /*014E; 014F; Case map*/ '\u0150', /*0150; 0151; Case map*/ '\u0152', /*0152; 0153; Case map*/ '\u0154', /*0154; 0155; Case map*/ '\u0156', /*0156; 0157; Case map*/ '\u0158', /*0158; 0159; Case map*/ '\u015A', /*015A; 015B; Case map*/ '\u015C', /*015C; 015D; Case map*/ '\u015E', /*015E; 015F; Case map*/ '\u0160', /*0160; 0161; Case map*/ '\u0162', /*0162; 0163; Case map*/ '\u0164', /*0164; 0165; Case map*/ '\u0166', /*0166; 0167; Case map*/ '\u0168', /*0168; 0169; Case map*/ '\u016A', /*016A; 016B; Case map*/ '\u016C', /*016C; 016D; Case map*/ '\u016E', /*016E; 016F; Case map*/ '\u0170', /*0170; 0171; Case map*/ '\u0172', /*0172; 0173; Case map*/ '\u0174', /*0174; 0175; Case map*/ '\u0176', /*0176; 0177; Case map*/ '\u0178', /*0178; 00FF; Case map*/ '\u0179', /*0179; 017A; Case map*/ '\u017B', /*017B; 017C; Case map*/ '\u017D', /*017D; 017E; Case map*/ '\u017F', /*017F; 0073; Case map*/ '\u0181', /*0181; 0253; Case map*/ '\u0182', /*0182; 0183; Case map*/ '\u0184', /*0184; 0185; Case map*/ '\u0186', /*0186; 0254; Case map*/ '\u0187', /*0187; 0188; Case map*/ '\u0189', /*0189; 0256; Case map*/ '\u018A', /*018A; 0257; Case map*/ '\u018B', /*018B; 018C; Case map*/ '\u018E', /*018E; 01DD; Case map*/ '\u018F', /*018F; 0259; Case map*/ '\u0190', /*0190; 025B; Case map*/ '\u0191', /*0191; 0192; Case map*/ '\u0193', /*0193; 0260; Case map*/ '\u0194', /*0194; 0263; Case map*/ '\u0196', /*0196; 0269; Case map*/ '\u0197', /*0197; 0268; Case map*/ '\u0198', /*0198; 0199; Case map*/ '\u019C', /*019C; 026F; Case map*/ '\u019D', /*019D; 0272; Case map*/ '\u019F', /*019F; 0275; Case map*/ '\u01A0', /*01A0; 01A1; Case map*/ '\u01A2', /*01A2; 01A3; Case map*/ '\u01A4', /*01A4; 01A5; Case map*/ '\u01A6', /*01A6; 0280; Case map*/ '\u01A7', /*01A7; 01A8; Case map*/ '\u01A9', /*01A9; 0283; Case map*/ '\u01AC', /*01AC; 01AD; Case map*/ '\u01AE', /*01AE; 0288; Case map*/ '\u01AF', /*01AF; 01B0; Case map*/ '\u01B1', /*01B1; 028A; Case map*/ '\u01B2', /*01B2; 028B; Case map*/ '\u01B3', /*01B3; 01B4; Case map*/ '\u01B5', /*01B5; 01B6; Case map*/ '\u01B7', /*01B7; 0292; Case map*/ '\u01B8', /*01B8; 01B9; Case map*/ '\u01BC', /*01BC; 01BD; Case map*/ '\u01C4', /*01C4; 01C6; Case map*/ '\u01C5', /*01C5; 01C6; Case map*/ '\u01C7', /*01C7; 01C9; Case map*/ '\u01C8', /*01C8; 01C9; Case map*/ '\u01CA', /*01CA; 01CC; Case map*/ '\u01CB', /*01CB; 01CC; Case map*/ '\u01CD', /*01CD; 01CE; Case map*/ '\u01CF', /*01CF; 01D0; Case map*/ '\u01D1', /*01D1; 01D2; Case map*/ '\u01D3', /*01D3; 01D4; Case map*/ '\u01D5', /*01D5; 01D6; Case map*/ '\u01D7', /*01D7; 01D8; Case map*/ '\u01D9', /*01D9; 01DA; Case map*/ '\u01DB', /*01DB; 01DC; Case map*/ '\u01DE', /*01DE; 01DF; Case map*/ '\u01E0', /*01E0; 01E1; Case map*/ '\u01E2', /*01E2; 01E3; Case map*/ '\u01E4', /*01E4; 01E5; Case map*/ '\u01E6', /*01E6; 01E7; Case map*/ '\u01E8', /*01E8; 01E9; Case map*/ '\u01EA', /*01EA; 01EB; Case map*/ '\u01EC', /*01EC; 01ED; Case map*/ '\u01EE', /*01EE; 01EF; Case map*/ '\u01F0', /*01F0; 006A 030C; Case map*/ '\u01F1', /*01F1; 01F3; Case map*/ '\u01F2', /*01F2; 01F3; Case map*/ '\u01F4', /*01F4; 01F5; Case map*/ '\u01F6', /*01F6; 0195; Case map*/ '\u01F7', /*01F7; 01BF; Case map*/ '\u01F8', /*01F8; 01F9; Case map*/ '\u01FA', /*01FA; 01FB; Case map*/ '\u01FC', /*01FC; 01FD; Case map*/ '\u01FE', /*01FE; 01FF; Case map*/ '\u0200', /*0200; 0201; Case map*/ '\u0202', /*0202; 0203; Case map*/ '\u0204', /*0204; 0205; Case map*/ '\u0206', /*0206; 0207; Case map*/ '\u0208', /*0208; 0209; Case map*/ '\u020A', /*020A; 020B; Case map*/ '\u020C', /*020C; 020D; Case map*/ '\u020E', /*020E; 020F; Case map*/ '\u0210', /*0210; 0211; Case map*/ '\u0212', /*0212; 0213; Case map*/ '\u0214', /*0214; 0215; Case map*/ '\u0216', /*0216; 0217; Case map*/ '\u0218', /*0218; 0219; Case map*/ '\u021A', /*021A; 021B; Case map*/ '\u021C', /*021C; 021D; Case map*/ '\u021E', /*021E; 021F; Case map*/ '\u0220', /*0220; 019E; Case map*/ '\u0222', /*0222; 0223; Case map*/ '\u0224', /*0224; 0225; Case map*/ '\u0226', /*0226; 0227; Case map*/ '\u0228', /*0228; 0229; Case map*/ '\u022A', /*022A; 022B; Case map*/ '\u022C', /*022C; 022D; Case map*/ '\u022E', /*022E; 022F; Case map*/ '\u0230', /*0230; 0231; Case map*/ '\u0232', /*0232; 0233; Case map*/ '\u0345', /*0345; 03B9; Case map*/ '\u037A', /*037A; 0020 03B9; Additional folding*/ '\u0386', /*0386; 03AC; Case map*/ '\u0388', /*0388; 03AD; Case map*/ '\u0389', /*0389; 03AE; Case map*/ '\u038A', /*038A; 03AF; Case map*/ '\u038C', /*038C; 03CC; Case map*/ '\u038E', /*038E; 03CD; Case map*/ '\u038F', /*038F; 03CE; Case map*/ '\u0390', /*0390; 03B9 0308 0301; Case map*/ '\u0391', /*0391; 03B1; Case map*/ '\u0392', /*0392; 03B2; Case map*/ '\u0393', /*0393; 03B3; Case map*/ '\u0394', /*0394; 03B4; Case map*/ '\u0395', /*0395; 03B5; Case map*/ '\u0396', /*0396; 03B6; Case map*/ '\u0397', /*0397; 03B7; Case map*/ '\u0398', /*0398; 03B8; Case map*/ '\u0399', /*0399; 03B9; Case map*/ '\u039A', /*039A; 03BA; Case map*/ '\u039B', /*039B; 03BB; Case map*/ '\u039C', /*039C; 03BC; Case map*/ '\u039D', /*039D; 03BD; Case map*/ '\u039E', /*039E; 03BE; Case map*/ '\u039F', /*039F; 03BF; Case map*/ '\u03A0', /*03A0; 03C0; Case map*/ '\u03A1', /*03A1; 03C1; Case map*/ '\u03A3', /*03A3; 03C3; Case map*/ '\u03A4', /*03A4; 03C4; Case map*/ '\u03A5', /*03A5; 03C5; Case map*/ '\u03A6', /*03A6; 03C6; Case map*/ '\u03A7', /*03A7; 03C7; Case map*/ '\u03A8', /*03A8; 03C8; Case map*/ '\u03A9', /*03A9; 03C9; Case map*/ '\u03AA', /*03AA; 03CA; Case map*/ '\u03AB', /*03AB; 03CB; Case map*/ '\u03B0', /*03B0; 03C5 0308 0301; Case map*/ '\u03C2', /*03C2; 03C3; Case map*/ '\u03D0', /*03D0; 03B2; Case map*/ '\u03D1', /*03D1; 03B8; Case map*/ '\u03D2', /*03D2; 03C5; Additional folding*/ '\u03D3', /*03D3; 03CD; Additional folding*/ '\u03D4', /*03D4; 03CB; Additional folding*/ '\u03D5', /*03D5; 03C6; Case map*/ '\u03D6', /*03D6; 03C0; Case map*/ '\u03D8', /*03D8; 03D9; Case map*/ '\u03DA', /*03DA; 03DB; Case map*/ '\u03DC', /*03DC; 03DD; Case map*/ '\u03DE', /*03DE; 03DF; Case map*/ '\u03E0', /*03E0; 03E1; Case map*/ '\u03E2', /*03E2; 03E3; Case map*/ '\u03E4', /*03E4; 03E5; Case map*/ '\u03E6', /*03E6; 03E7; Case map*/ '\u03E8', /*03E8; 03E9; Case map*/ '\u03EA', /*03EA; 03EB; Case map*/ '\u03EC', /*03EC; 03ED; Case map*/ '\u03EE', /*03EE; 03EF; Case map*/ '\u03F0', /*03F0; 03BA; Case map*/ '\u03F1', /*03F1; 03C1; Case map*/ '\u03F2', /*03F2; 03C3; Case map*/ '\u03F4', /*03F4; 03B8; Case map*/ '\u03F5', /*03F5; 03B5; Case map*/ '\u0400', /*0400; 0450; Case map*/ '\u0401', /*0401; 0451; Case map*/ '\u0402', /*0402; 0452; Case map*/ '\u0403', /*0403; 0453; Case map*/ '\u0404', /*0404; 0454; Case map*/ '\u0405', /*0405; 0455; Case map*/ '\u0406', /*0406; 0456; Case map*/ '\u0407', /*0407; 0457; Case map*/ '\u0408', /*0408; 0458; Case map*/ '\u0409', /*0409; 0459; Case map*/ '\u040A', /*040A; 045A; Case map*/ '\u040B', /*040B; 045B; Case map*/ '\u040C', /*040C; 045C; Case map*/ '\u040D', /*040D; 045D; Case map*/ '\u040E', /*040E; 045E; Case map*/ '\u040F', /*040F; 045F; Case map*/ '\u0410', /*0410; 0430; Case map*/ '\u0411', /*0411; 0431; Case map*/ '\u0412', /*0412; 0432; Case map*/ '\u0413', /*0413; 0433; Case map*/ '\u0414', /*0414; 0434; Case map*/ '\u0415', /*0415; 0435; Case map*/ '\u0416', /*0416; 0436; Case map*/ '\u0417', /*0417; 0437; Case map*/ '\u0418', /*0418; 0438; Case map*/ '\u0419', /*0419; 0439; Case map*/ '\u041A', /*041A; 043A; Case map*/ '\u041B', /*041B; 043B; Case map*/ '\u041C', /*041C; 043C; Case map*/ '\u041D', /*041D; 043D; Case map*/ '\u041E', /*041E; 043E; Case map*/ '\u041F', /*041F; 043F; Case map*/ '\u0420', /*0420; 0440; Case map*/ '\u0421', /*0421; 0441; Case map*/ '\u0422', /*0422; 0442; Case map*/ '\u0423', /*0423; 0443; Case map*/ '\u0424', /*0424; 0444; Case map*/ '\u0425', /*0425; 0445; Case map*/ '\u0426', /*0426; 0446; Case map*/ '\u0427', /*0427; 0447; Case map*/ '\u0428', /*0428; 0448; Case map*/ '\u0429', /*0429; 0449; Case map*/ '\u042A', /*042A; 044A; Case map*/ '\u042B', /*042B; 044B; Case map*/ '\u042C', /*042C; 044C; Case map*/ '\u042D', /*042D; 044D; Case map*/ '\u042E', /*042E; 044E; Case map*/ '\u042F', /*042F; 044F; Case map*/ '\u0460', /*0460; 0461; Case map*/ '\u0462', /*0462; 0463; Case map*/ '\u0464', /*0464; 0465; Case map*/ '\u0466', /*0466; 0467; Case map*/ '\u0468', /*0468; 0469; Case map*/ '\u046A', /*046A; 046B; Case map*/ '\u046C', /*046C; 046D; Case map*/ '\u046E', /*046E; 046F; Case map*/ '\u0470', /*0470; 0471; Case map*/ '\u0472', /*0472; 0473; Case map*/ '\u0474', /*0474; 0475; Case map*/ '\u0476', /*0476; 0477; Case map*/ '\u0478', /*0478; 0479; Case map*/ '\u047A', /*047A; 047B; Case map*/ '\u047C', /*047C; 047D; Case map*/ '\u047E', /*047E; 047F; Case map*/ '\u0480', /*0480; 0481; Case map*/ '\u048A', /*048A; 048B; Case map*/ '\u048C', /*048C; 048D; Case map*/ '\u048E', /*048E; 048F; Case map*/ '\u0490', /*0490; 0491; Case map*/ '\u0492', /*0492; 0493; Case map*/ '\u0494', /*0494; 0495; Case map*/ '\u0496', /*0496; 0497; Case map*/ '\u0498', /*0498; 0499; Case map*/ '\u049A', /*049A; 049B; Case map*/ '\u049C', /*049C; 049D; Case map*/ '\u049E', /*049E; 049F; Case map*/ '\u04A0', /*04A0; 04A1; Case map*/ '\u04A2', /*04A2; 04A3; Case map*/ '\u04A4', /*04A4; 04A5; Case map*/ '\u04A6', /*04A6; 04A7; Case map*/ '\u04A8', /*04A8; 04A9; Case map*/ '\u04AA', /*04AA; 04AB; Case map*/ '\u04AC', /*04AC; 04AD; Case map*/ '\u04AE', /*04AE; 04AF; Case map*/ '\u04B0', /*04B0; 04B1; Case map*/ '\u04B2', /*04B2; 04B3; Case map*/ '\u04B4', /*04B4; 04B5; Case map*/ '\u04B6', /*04B6; 04B7; Case map*/ '\u04B8', /*04B8; 04B9; Case map*/ '\u04BA', /*04BA; 04BB; Case map*/ '\u04BC', /*04BC; 04BD; Case map*/ '\u04BE', /*04BE; 04BF; Case map*/ '\u04C1', /*04C1; 04C2; Case map*/ '\u04C3', /*04C3; 04C4; Case map*/ '\u04C5', /*04C5; 04C6; Case map*/ '\u04C7', /*04C7; 04C8; Case map*/ '\u04C9', /*04C9; 04CA; Case map*/ '\u04CB', /*04CB; 04CC; Case map*/ '\u04CD', /*04CD; 04CE; Case map*/ '\u04D0', /*04D0; 04D1; Case map*/ '\u04D2', /*04D2; 04D3; Case map*/ '\u04D4', /*04D4; 04D5; Case map*/ '\u04D6', /*04D6; 04D7; Case map*/ '\u04D8', /*04D8; 04D9; Case map*/ '\u04DA', /*04DA; 04DB; Case map*/ '\u04DC', /*04DC; 04DD; Case map*/ '\u04DE', /*04DE; 04DF; Case map*/ '\u04E0', /*04E0; 04E1; Case map*/ '\u04E2', /*04E2; 04E3; Case map*/ '\u04E4', /*04E4; 04E5; Case map*/ '\u04E6', /*04E6; 04E7; Case map*/ '\u04E8', /*04E8; 04E9; Case map*/ '\u04EA', /*04EA; 04EB; Case map*/ '\u04EC', /*04EC; 04ED; Case map*/ '\u04EE', /*04EE; 04EF; Case map*/ '\u04F0', /*04F0; 04F1; Case map*/ '\u04F2', /*04F2; 04F3; Case map*/ '\u04F4', /*04F4; 04F5; Case map*/ '\u04F8', /*04F8; 04F9; Case map*/ '\u0500', /*0500; 0501; Case map*/ '\u0502', /*0502; 0503; Case map*/ '\u0504', /*0504; 0505; Case map*/ '\u0506', /*0506; 0507; Case map*/ '\u0508', /*0508; 0509; Case map*/ '\u050A', /*050A; 050B; Case map*/ '\u050C', /*050C; 050D; Case map*/ '\u050E', /*050E; 050F; Case map*/ '\u0531', /*0531; 0561; Case map*/ '\u0532', /*0532; 0562; Case map*/ '\u0533', /*0533; 0563; Case map*/ '\u0534', /*0534; 0564; Case map*/ '\u0535', /*0535; 0565; Case map*/ '\u0536', /*0536; 0566; Case map*/ '\u0537', /*0537; 0567; Case map*/ '\u0538', /*0538; 0568; Case map*/ '\u0539', /*0539; 0569; Case map*/ '\u053A', /*053A; 056A; Case map*/ '\u053B', /*053B; 056B; Case map*/ '\u053C', /*053C; 056C; Case map*/ '\u053D', /*053D; 056D; Case map*/ '\u053E', /*053E; 056E; Case map*/ '\u053F', /*053F; 056F; Case map*/ '\u0540', /*0540; 0570; Case map*/ '\u0541', /*0541; 0571; Case map*/ '\u0542', /*0542; 0572; Case map*/ '\u0543', /*0543; 0573; Case map*/ '\u0544', /*0544; 0574; Case map*/ '\u0545', /*0545; 0575; Case map*/ '\u0546', /*0546; 0576; Case map*/ '\u0547', /*0547; 0577; Case map*/ '\u0548', /*0548; 0578; Case map*/ '\u0549', /*0549; 0579; Case map*/ '\u054A', /*054A; 057A; Case map*/ '\u054B', /*054B; 057B; Case map*/ '\u054C', /*054C; 057C; Case map*/ '\u054D', /*054D; 057D; Case map*/ '\u054E', /*054E; 057E; Case map*/ '\u054F', /*054F; 057F; Case map*/ '\u0550', /*0550; 0580; Case map*/ '\u0551', /*0551; 0581; Case map*/ '\u0552', /*0552; 0582; Case map*/ '\u0553', /*0553; 0583; Case map*/ '\u0554', /*0554; 0584; Case map*/ '\u0555', /*0555; 0585; Case map*/ '\u0556', /*0556; 0586; Case map*/ '\u0587', /*0587; 0565 0582; Case map*/ '\u1E00', /*1E00; 1E01; Case map*/ '\u1E02', /*1E02; 1E03; Case map*/ '\u1E04', /*1E04; 1E05; Case map*/ '\u1E06', /*1E06; 1E07; Case map*/ '\u1E08', /*1E08; 1E09; Case map*/ '\u1E0A', /*1E0A; 1E0B; Case map*/ '\u1E0C', /*1E0C; 1E0D; Case map*/ '\u1E0E', /*1E0E; 1E0F; Case map*/ '\u1E10', /*1E10; 1E11; Case map*/ '\u1E12', /*1E12; 1E13; Case map*/ '\u1E14', /*1E14; 1E15; Case map*/ '\u1E16', /*1E16; 1E17; Case map*/ '\u1E18', /*1E18; 1E19; Case map*/ '\u1E1A', /*1E1A; 1E1B; Case map*/ '\u1E1C', /*1E1C; 1E1D; Case map*/ '\u1E1E', /*1E1E; 1E1F; Case map*/ '\u1E20', /*1E20; 1E21; Case map*/ '\u1E22', /*1E22; 1E23; Case map*/ '\u1E24', /*1E24; 1E25; Case map*/ '\u1E26', /*1E26; 1E27; Case map*/ '\u1E28', /*1E28; 1E29; Case map*/ '\u1E2A', /*1E2A; 1E2B; Case map*/ '\u1E2C', /*1E2C; 1E2D; Case map*/ '\u1E2E', /*1E2E; 1E2F; Case map*/ '\u1E30', /*1E30; 1E31; Case map*/ '\u1E32', /*1E32; 1E33; Case map*/ '\u1E34', /*1E34; 1E35; Case map*/ '\u1E36', /*1E36; 1E37; Case map*/ '\u1E38', /*1E38; 1E39; Case map*/ '\u1E3A', /*1E3A; 1E3B; Case map*/ '\u1E3C', /*1E3C; 1E3D; Case map*/ '\u1E3E', /*1E3E; 1E3F; Case map*/ '\u1E40', /*1E40; 1E41; Case map*/ '\u1E42', /*1E42; 1E43; Case map*/ '\u1E44', /*1E44; 1E45; Case map*/ '\u1E46', /*1E46; 1E47; Case map*/ '\u1E48', /*1E48; 1E49; Case map*/ '\u1E4A', /*1E4A; 1E4B; Case map*/ '\u1E4C', /*1E4C; 1E4D; Case map*/ '\u1E4E', /*1E4E; 1E4F; Case map*/ '\u1E50', /*1E50; 1E51; Case map*/ '\u1E52', /*1E52; 1E53; Case map*/ '\u1E54', /*1E54; 1E55; Case map*/ '\u1E56', /*1E56; 1E57; Case map*/ '\u1E58', /*1E58; 1E59; Case map*/ '\u1E5A', /*1E5A; 1E5B; Case map*/ '\u1E5C', /*1E5C; 1E5D; Case map*/ '\u1E5E', /*1E5E; 1E5F; Case map*/ '\u1E60', /*1E60; 1E61; Case map*/ '\u1E62', /*1E62; 1E63; Case map*/ '\u1E64', /*1E64; 1E65; Case map*/ '\u1E66', /*1E66; 1E67; Case map*/ '\u1E68', /*1E68; 1E69; Case map*/ '\u1E6A', /*1E6A; 1E6B; Case map*/ '\u1E6C', /*1E6C; 1E6D; Case map*/ '\u1E6E', /*1E6E; 1E6F; Case map*/ '\u1E70', /*1E70; 1E71; Case map*/ '\u1E72', /*1E72; 1E73; Case map*/ '\u1E74', /*1E74; 1E75; Case map*/ '\u1E76', /*1E76; 1E77; Case map*/ '\u1E78', /*1E78; 1E79; Case map*/ '\u1E7A', /*1E7A; 1E7B; Case map*/ '\u1E7C', /*1E7C; 1E7D; Case map*/ '\u1E7E', /*1E7E; 1E7F; Case map*/ '\u1E80', /*1E80; 1E81; Case map*/ '\u1E82', /*1E82; 1E83; Case map*/ '\u1E84', /*1E84; 1E85; Case map*/ '\u1E86', /*1E86; 1E87; Case map*/ '\u1E88', /*1E88; 1E89; Case map*/ '\u1E8A', /*1E8A; 1E8B; Case map*/ '\u1E8C', /*1E8C; 1E8D; Case map*/ '\u1E8E', /*1E8E; 1E8F; Case map*/ '\u1E90', /*1E90; 1E91; Case map*/ '\u1E92', /*1E92; 1E93; Case map*/ '\u1E94', /*1E94; 1E95; Case map*/ '\u1E96', /*1E96; 0068 0331; Case map*/ '\u1E97', /*1E97; 0074 0308; Case map*/ '\u1E98', /*1E98; 0077 030A; Case map*/ '\u1E99', /*1E99; 0079 030A; Case map*/ '\u1E9A', /*1E9A; 0061 02BE; Case map*/ '\u1E9B', /*1E9B; 1E61; Case map*/ '\u1EA0', /*1EA0; 1EA1; Case map*/ '\u1EA2', /*1EA2; 1EA3; Case map*/ '\u1EA4', /*1EA4; 1EA5; Case map*/ '\u1EA6', /*1EA6; 1EA7; Case map*/ '\u1EA8', /*1EA8; 1EA9; Case map*/ '\u1EAA', /*1EAA; 1EAB; Case map*/ '\u1EAC', /*1EAC; 1EAD; Case map*/ '\u1EAE', /*1EAE; 1EAF; Case map*/ '\u1EB0', /*1EB0; 1EB1; Case map*/ '\u1EB2', /*1EB2; 1EB3; Case map*/ '\u1EB4', /*1EB4; 1EB5; Case map*/ '\u1EB6', /*1EB6; 1EB7; Case map*/ '\u1EB8', /*1EB8; 1EB9; Case map*/ '\u1EBA', /*1EBA; 1EBB; Case map*/ '\u1EBC', /*1EBC; 1EBD; Case map*/ '\u1EBE', /*1EBE; 1EBF; Case map*/ '\u1EC0', /*1EC0; 1EC1; Case map*/ '\u1EC2', /*1EC2; 1EC3; Case map*/ '\u1EC4', /*1EC4; 1EC5; Case map*/ '\u1EC6', /*1EC6; 1EC7; Case map*/ '\u1EC8', /*1EC8; 1EC9; Case map*/ '\u1ECA', /*1ECA; 1ECB; Case map*/ '\u1ECC', /*1ECC; 1ECD; Case map*/ '\u1ECE', /*1ECE; 1ECF; Case map*/ '\u1ED0', /*1ED0; 1ED1; Case map*/ '\u1ED2', /*1ED2; 1ED3; Case map*/ '\u1ED4', /*1ED4; 1ED5; Case map*/ '\u1ED6', /*1ED6; 1ED7; Case map*/ '\u1ED8', /*1ED8; 1ED9; Case map*/ '\u1EDA', /*1EDA; 1EDB; Case map*/ '\u1EDC', /*1EDC; 1EDD; Case map*/ '\u1EDE', /*1EDE; 1EDF; Case map*/ '\u1EE0', /*1EE0; 1EE1; Case map*/ '\u1EE2', /*1EE2; 1EE3; Case map*/ '\u1EE4', /*1EE4; 1EE5; Case map*/ '\u1EE6', /*1EE6; 1EE7; Case map*/ '\u1EE8', /*1EE8; 1EE9; Case map*/ '\u1EEA', /*1EEA; 1EEB; Case map*/ '\u1EEC', /*1EEC; 1EED; Case map*/ '\u1EEE', /*1EEE; 1EEF; Case map*/ '\u1EF0', /*1EF0; 1EF1; Case map*/ '\u1EF2', /*1EF2; 1EF3; Case map*/ '\u1EF4', /*1EF4; 1EF5; Case map*/ '\u1EF6', /*1EF6; 1EF7; Case map*/ '\u1EF8', /*1EF8; 1EF9; Case map*/ '\u1F08', /*1F08; 1F00; Case map*/ '\u1F09', /*1F09; 1F01; Case map*/ '\u1F0A', /*1F0A; 1F02; Case map*/ '\u1F0B', /*1F0B; 1F03; Case map*/ '\u1F0C', /*1F0C; 1F04; Case map*/ '\u1F0D', /*1F0D; 1F05; Case map*/ '\u1F0E', /*1F0E; 1F06; Case map*/ '\u1F0F', /*1F0F; 1F07; Case map*/ '\u1F18', /*1F18; 1F10; Case map*/ '\u1F19', /*1F19; 1F11; Case map*/ '\u1F1A', /*1F1A; 1F12; Case map*/ '\u1F1B', /*1F1B; 1F13; Case map*/ '\u1F1C', /*1F1C; 1F14; Case map*/ '\u1F1D', /*1F1D; 1F15; Case map*/ '\u1F28', /*1F28; 1F20; Case map*/ '\u1F29', /*1F29; 1F21; Case map*/ '\u1F2A', /*1F2A; 1F22; Case map*/ '\u1F2B', /*1F2B; 1F23; Case map*/ '\u1F2C', /*1F2C; 1F24; Case map*/ '\u1F2D', /*1F2D; 1F25; Case map*/ '\u1F2E', /*1F2E; 1F26; Case map*/ '\u1F2F', /*1F2F; 1F27; Case map*/ '\u1F38', /*1F38; 1F30; Case map*/ '\u1F39', /*1F39; 1F31; Case map*/ '\u1F3A', /*1F3A; 1F32; Case map*/ '\u1F3B', /*1F3B; 1F33; Case map*/ '\u1F3C', /*1F3C; 1F34; Case map*/ '\u1F3D', /*1F3D; 1F35; Case map*/ '\u1F3E', /*1F3E; 1F36; Case map*/ '\u1F3F', /*1F3F; 1F37; Case map*/ '\u1F48', /*1F48; 1F40; Case map*/ '\u1F49', /*1F49; 1F41; Case map*/ '\u1F4A', /*1F4A; 1F42; Case map*/ '\u1F4B', /*1F4B; 1F43; Case map*/ '\u1F4C', /*1F4C; 1F44; Case map*/ '\u1F4D', /*1F4D; 1F45; Case map*/ '\u1F50', /*1F50; 03C5 0313; Case map*/ '\u1F52', /*1F52; 03C5 0313 0300; Case map*/ '\u1F54', /*1F54; 03C5 0313 0301; Case map*/ '\u1F56', /*1F56; 03C5 0313 0342; Case map*/ '\u1F59', /*1F59; 1F51; Case map*/ '\u1F5B', /*1F5B; 1F53; Case map*/ '\u1F5D', /*1F5D; 1F55; Case map*/ '\u1F5F', /*1F5F; 1F57; Case map*/ '\u1F68', /*1F68; 1F60; Case map*/ '\u1F69', /*1F69; 1F61; Case map*/ '\u1F6A', /*1F6A; 1F62; Case map*/ '\u1F6B', /*1F6B; 1F63; Case map*/ '\u1F6C', /*1F6C; 1F64; Case map*/ '\u1F6D', /*1F6D; 1F65; Case map*/ '\u1F6E', /*1F6E; 1F66; Case map*/ '\u1F6F', /*1F6F; 1F67; Case map*/ '\u1F80', /*1F80; 1F00 03B9; Case map*/ '\u1F81', /*1F81; 1F01 03B9; Case map*/ '\u1F82', /*1F82; 1F02 03B9; Case map*/ '\u1F83', /*1F83; 1F03 03B9; Case map*/ '\u1F84', /*1F84; 1F04 03B9; Case map*/ '\u1F85', /*1F85; 1F05 03B9; Case map*/ '\u1F86', /*1F86; 1F06 03B9; Case map*/ '\u1F87', /*1F87; 1F07 03B9; Case map*/ '\u1F88', /*1F88; 1F00 03B9; Case map*/ '\u1F89', /*1F89; 1F01 03B9; Case map*/ '\u1F8A', /*1F8A; 1F02 03B9; Case map*/ '\u1F8B', /*1F8B; 1F03 03B9; Case map*/ '\u1F8C', /*1F8C; 1F04 03B9; Case map*/ '\u1F8D', /*1F8D; 1F05 03B9; Case map*/ '\u1F8E', /*1F8E; 1F06 03B9; Case map*/ '\u1F8F', /*1F8F; 1F07 03B9; Case map*/ '\u1F90', /*1F90; 1F20 03B9; Case map*/ '\u1F91', /*1F91; 1F21 03B9; Case map*/ '\u1F92', /*1F92; 1F22 03B9; Case map*/ '\u1F93', /*1F93; 1F23 03B9; Case map*/ '\u1F94', /*1F94; 1F24 03B9; Case map*/ '\u1F95', /*1F95; 1F25 03B9; Case map*/ '\u1F96', /*1F96; 1F26 03B9; Case map*/ '\u1F97', /*1F97; 1F27 03B9; Case map*/ '\u1F98', /*1F98; 1F20 03B9; Case map*/ '\u1F99', /*1F99; 1F21 03B9; Case map*/ '\u1F9A', /*1F9A; 1F22 03B9; Case map*/ '\u1F9B', /*1F9B; 1F23 03B9; Case map*/ '\u1F9C', /*1F9C; 1F24 03B9; Case map*/ '\u1F9D', /*1F9D; 1F25 03B9; Case map*/ '\u1F9E', /*1F9E; 1F26 03B9; Case map*/ '\u1F9F', /*1F9F; 1F27 03B9; Case map*/ '\u1FA0', /*1FA0; 1F60 03B9; Case map*/ '\u1FA1', /*1FA1; 1F61 03B9; Case map*/ '\u1FA2', /*1FA2; 1F62 03B9; Case map*/ '\u1FA3', /*1FA3; 1F63 03B9; Case map*/ '\u1FA4', /*1FA4; 1F64 03B9; Case map*/ '\u1FA5', /*1FA5; 1F65 03B9; Case map*/ '\u1FA6', /*1FA6; 1F66 03B9; Case map*/ '\u1FA7', /*1FA7; 1F67 03B9; Case map*/ '\u1FA8', /*1FA8; 1F60 03B9; Case map*/ '\u1FA9', /*1FA9; 1F61 03B9; Case map*/ '\u1FAA', /*1FAA; 1F62 03B9; Case map*/ '\u1FAB', /*1FAB; 1F63 03B9; Case map*/ '\u1FAC', /*1FAC; 1F64 03B9; Case map*/ '\u1FAD', /*1FAD; 1F65 03B9; Case map*/ '\u1FAE', /*1FAE; 1F66 03B9; Case map*/ '\u1FAF', /*1FAF; 1F67 03B9; Case map*/ '\u1FB2', /*1FB2; 1F70 03B9; Case map*/ '\u1FB3', /*1FB3; 03B1 03B9; Case map*/ '\u1FB4', /*1FB4; 03AC 03B9; Case map*/ '\u1FB6', /*1FB6; 03B1 0342; Case map*/ '\u1FB7', /*1FB7; 03B1 0342 03B9; Case map*/ '\u1FB8', /*1FB8; 1FB0; Case map*/ '\u1FB9', /*1FB9; 1FB1; Case map*/ '\u1FBA', /*1FBA; 1F70; Case map*/ '\u1FBB', /*1FBB; 1F71; Case map*/ '\u1FBC', /*1FBC; 03B1 03B9; Case map*/ '\u1FBE', /*1FBE; 03B9; Case map*/ '\u1FC2', /*1FC2; 1F74 03B9; Case map*/ '\u1FC3', /*1FC3; 03B7 03B9; Case map*/ '\u1FC4', /*1FC4; 03AE 03B9; Case map*/ '\u1FC6', /*1FC6; 03B7 0342; Case map*/ '\u1FC7', /*1FC7; 03B7 0342 03B9; Case map*/ '\u1FC8', /*1FC8; 1F72; Case map*/ '\u1FC9', /*1FC9; 1F73; Case map*/ '\u1FCA', /*1FCA; 1F74; Case map*/ '\u1FCB', /*1FCB; 1F75; Case map*/ '\u1FCC', /*1FCC; 03B7 03B9; Case map*/ '\u1FD2', /*1FD2; 03B9 0308 0300; Case map*/ '\u1FD3', /*1FD3; 03B9 0308 0301; Case map*/ '\u1FD6', /*1FD6; 03B9 0342; Case map*/ '\u1FD7', /*1FD7; 03B9 0308 0342; Case map*/ '\u1FD8', /*1FD8; 1FD0; Case map*/ '\u1FD9', /*1FD9; 1FD1; Case map*/ '\u1FDA', /*1FDA; 1F76; Case map*/ '\u1FDB', /*1FDB; 1F77; Case map*/ '\u1FE2', /*1FE2; 03C5 0308 0300; Case map*/ '\u1FE3', /*1FE3; 03C5 0308 0301; Case map*/ '\u1FE4', /*1FE4; 03C1 0313; Case map*/ '\u1FE6', /*1FE6; 03C5 0342; Case map*/ '\u1FE7', /*1FE7; 03C5 0308 0342; Case map*/ '\u1FE8', /*1FE8; 1FE0; Case map*/ '\u1FE9', /*1FE9; 1FE1; Case map*/ '\u1FEA', /*1FEA; 1F7A; Case map*/ '\u1FEB', /*1FEB; 1F7B; Case map*/ '\u1FEC', /*1FEC; 1FE5; Case map*/ '\u1FF2', /*1FF2; 1F7C 03B9; Case map*/ '\u1FF3', /*1FF3; 03C9 03B9; Case map*/ '\u1FF4', /*1FF4; 03CE 03B9; Case map*/ '\u1FF6', /*1FF6; 03C9 0342; Case map*/ '\u1FF7', /*1FF7; 03C9 0342 03B9; Case map*/ '\u1FF8', /*1FF8; 1F78; Case map*/ '\u1FF9', /*1FF9; 1F79; Case map*/ '\u1FFA', /*1FFA; 1F7C; Case map*/ '\u1FFB', /*1FFB; 1F7D; Case map*/ '\u1FFC', /*1FFC; 03C9 03B9; Case map*/ '\u20A8', /*20A8; 0072 0073; Additional folding*/ '\u2102', /*2102; 0063; Additional folding*/ '\u2103', /*2103; 00B0 0063; Additional folding*/ '\u2107', /*2107; 025B; Additional folding*/ '\u2109', /*2109; 00B0 0066; Additional folding*/ '\u210B', /*210B; 0068; Additional folding*/ '\u210C', /*210C; 0068; Additional folding*/ '\u210D', /*210D; 0068; Additional folding*/ '\u2110', /*2110; 0069; Additional folding*/ '\u2111', /*2111; 0069; Additional folding*/ '\u2112', /*2112; 006C; Additional folding*/ '\u2115', /*2115; 006E; Additional folding*/ '\u2116', /*2116; 006E 006F; Additional folding*/ '\u2119', /*2119; 0070; Additional folding*/ '\u211A', /*211A; 0071; Additional folding*/ '\u211B', /*211B; 0072; Additional folding*/ '\u211C', /*211C; 0072; Additional folding*/ '\u211D', /*211D; 0072; Additional folding*/ '\u2120', /*2120; 0073 006D; Additional folding*/ '\u2121', /*2121; 0074 0065 006C; Additional folding*/ '\u2122', /*2122; 0074 006D; Additional folding*/ '\u2124', /*2124; 007A; Additional folding*/ '\u2126', /*2126; 03C9; Case map*/ '\u2128', /*2128; 007A; Additional folding*/ '\u212A', /*212A; 006B; Case map*/ '\u212B', /*212B; 00E5; Case map*/ '\u212C', /*212C; 0062; Additional folding*/ '\u212D', /*212D; 0063; Additional folding*/ '\u2130', /*2130; 0065; Additional folding*/ '\u2131', /*2131; 0066; Additional folding*/ '\u2133', /*2133; 006D; Additional folding*/ '\u213E', /*213E; 03B3; Additional folding*/ '\u213F', /*213F; 03C0; Additional folding*/ '\u2145', /*2145; 0064; Additional folding*/ '\u2160', /*2160; 2170; Case map*/ '\u2161', /*2161; 2171; Case map*/ '\u2162', /*2162; 2172; Case map*/ '\u2163', /*2163; 2173; Case map*/ '\u2164', /*2164; 2174; Case map*/ '\u2165', /*2165; 2175; Case map*/ '\u2166', /*2166; 2176; Case map*/ '\u2167', /*2167; 2177; Case map*/ '\u2168', /*2168; 2178; Case map*/ '\u2169', /*2169; 2179; Case map*/ '\u216A', /*216A; 217A; Case map*/ '\u216B', /*216B; 217B; Case map*/ '\u216C', /*216C; 217C; Case map*/ '\u216D', /*216D; 217D; Case map*/ '\u216E', /*216E; 217E; Case map*/ '\u216F', /*216F; 217F; Case map*/ '\u24B6', /*24B6; 24D0; Case map*/ '\u24B7', /*24B7; 24D1; Case map*/ '\u24B8', /*24B8; 24D2; Case map*/ '\u24B9', /*24B9; 24D3; Case map*/ '\u24BA', /*24BA; 24D4; Case map*/ '\u24BB', /*24BB; 24D5; Case map*/ '\u24BC', /*24BC; 24D6; Case map*/ '\u24BD', /*24BD; 24D7; Case map*/ '\u24BE', /*24BE; 24D8; Case map*/ '\u24BF', /*24BF; 24D9; Case map*/ '\u24C0', /*24C0; 24DA; Case map*/ '\u24C1', /*24C1; 24DB; Case map*/ '\u24C2', /*24C2; 24DC; Case map*/ '\u24C3', /*24C3; 24DD; Case map*/ '\u24C4', /*24C4; 24DE; Case map*/ '\u24C5', /*24C5; 24DF; Case map*/ '\u24C6', /*24C6; 24E0; Case map*/ '\u24C7', /*24C7; 24E1; Case map*/ '\u24C8', /*24C8; 24E2; Case map*/ '\u24C9', /*24C9; 24E3; Case map*/ '\u24CA', /*24CA; 24E4; Case map*/ '\u24CB', /*24CB; 24E5; Case map*/ '\u24CC', /*24CC; 24E6; Case map*/ '\u24CD', /*24CD; 24E7; Case map*/ '\u24CE', /*24CE; 24E8; Case map*/ '\u24CF', /*24CF; 24E9; Case map*/ '\u3371', /*3371; 0068 0070 0061; Additional folding*/ '\u3373', /*3373; 0061 0075; Additional folding*/ '\u3375', /*3375; 006F 0076; Additional folding*/ '\u3380', /*3380; 0070 0061; Additional folding*/ '\u3381', /*3381; 006E 0061; Additional folding*/ '\u3382', /*3382; 03BC 0061; Additional folding*/ '\u3383', /*3383; 006D 0061; Additional folding*/ '\u3384', /*3384; 006B 0061; Additional folding*/ '\u3385', /*3385; 006B 0062; Additional folding*/ '\u3386', /*3386; 006D 0062; Additional folding*/ '\u3387', /*3387; 0067 0062; Additional folding*/ '\u338A', /*338A; 0070 0066; Additional folding*/ '\u338B', /*338B; 006E 0066; Additional folding*/ '\u338C', /*338C; 03BC 0066; Additional folding*/ '\u3390', /*3390; 0068 007A; Additional folding*/ '\u3391', /*3391; 006B 0068 007A; Additional folding*/ '\u3392', /*3392; 006D 0068 007A; Additional folding*/ '\u3393', /*3393; 0067 0068 007A; Additional folding*/ '\u3394', /*3394; 0074 0068 007A; Additional folding*/ '\u33A9', /*33A9; 0070 0061; Additional folding*/ '\u33AA', /*33AA; 006B 0070 0061; Additional folding*/ '\u33AB', /*33AB; 006D 0070 0061; Additional folding*/ '\u33AC', /*33AC; 0067 0070 0061; Additional folding*/ '\u33B4', /*33B4; 0070 0076; Additional folding*/ '\u33B5', /*33B5; 006E 0076; Additional folding*/ '\u33B6', /*33B6; 03BC 0076; Additional folding*/ '\u33B7', /*33B7; 006D 0076; Additional folding*/ '\u33B8', /*33B8; 006B 0076; Additional folding*/ '\u33B9', /*33B9; 006D 0076; Additional folding*/ '\u33BA', /*33BA; 0070 0077; Additional folding*/ '\u33BB', /*33BB; 006E 0077; Additional folding*/ '\u33BC', /*33BC; 03BC 0077; Additional folding*/ '\u33BD', /*33BD; 006D 0077; Additional folding*/ '\u33BE', /*33BE; 006B 0077; Additional folding*/ '\u33BF', /*33BF; 006D 0077; Additional folding*/ '\u33C0', /*33C0; 006B 03C9; Additional folding*/ '\u33C1', /*33C1; 006D 03C9; Additional folding*/ '\u33C3', /*33C3; 0062 0071; Additional folding*/ '\u33C6', /*33C6; 0063 2215 006B 0067; Additional folding*/ '\u33C7', /*33C7; 0063 006F 002E; Additional folding*/ '\u33C8', /*33C8; 0064 0062; Additional folding*/ '\u33C9', /*33C9; 0067 0079; Additional folding*/ '\u33CB', /*33CB; 0068 0070; Additional folding*/ '\u33CD', /*33CD; 006B 006B; Additional folding*/ '\u33CE', /*33CE; 006B 006D; Additional folding*/ '\u33D7', /*33D7; 0070 0068; Additional folding*/ '\u33D9', /*33D9; 0070 0070 006D; Additional folding*/ '\u33DA', /*33DA; 0070 0072; Additional folding*/ '\u33DC', /*33DC; 0073 0076; Additional folding*/ '\u33DD', /*33DD; 0077 0062; Additional folding*/ '\uFB00', /*FB00; 0066 0066; Case map*/ '\uFB01', /*FB01; 0066 0069; Case map*/ '\uFB02', /*FB02; 0066 006C; Case map*/ '\uFB03', /*FB03; 0066 0066 0069; Case map*/ '\uFB04', /*FB04; 0066 0066 006C; Case map*/ '\uFB05', /*FB05; 0073 0074; Case map*/ '\uFB06', /*FB06; 0073 0074; Case map*/ '\uFB13', /*FB13; 0574 0576; Case map*/ '\uFB14', /*FB14; 0574 0565; Case map*/ '\uFB15', /*FB15; 0574 056B; Case map*/ '\uFB16', /*FB16; 057E 0576; Case map*/ '\uFB17', /*FB17; 0574 056D; Case map*/ '\uFF21', /*FF21; FF41; Case map*/ '\uFF22', /*FF22; FF42; Case map*/ '\uFF23', /*FF23; FF43; Case map*/ '\uFF24', /*FF24; FF44; Case map*/ '\uFF25', /*FF25; FF45; Case map*/ '\uFF26', /*FF26; FF46; Case map*/ '\uFF27', /*FF27; FF47; Case map*/ '\uFF28', /*FF28; FF48; Case map*/ '\uFF29', /*FF29; FF49; Case map*/ '\uFF2A', /*FF2A; FF4A; Case map*/ '\uFF2B', /*FF2B; FF4B; Case map*/ '\uFF2C', /*FF2C; FF4C; Case map*/ '\uFF2D', /*FF2D; FF4D; Case map*/ '\uFF2E', /*FF2E; FF4E; Case map*/ '\uFF2F', /*FF2F; FF4F; Case map*/ '\uFF30', /*FF30; FF50; Case map*/ '\uFF31', /*FF31; FF51; Case map*/ '\uFF32', /*FF32; FF52; Case map*/ '\uFF33', /*FF33; FF53; Case map*/ '\uFF34', /*FF34; FF54; Case map*/ '\uFF35', /*FF35; FF55; Case map*/ '\uFF36', /*FF36; FF56; Case map*/ '\uFF37', /*FF37; FF57; Case map*/ '\uFF38', /*FF38; FF58; Case map*/ '\uFF39', /*FF39; FF59; Case map*/ '\uFF3A', /*FF3A; FF5A; Case map*/ }; public static string[] B2replace = new string[] { "\u0061", /*0041; 0061; Case map*/ "\u0062", /*0042; 0062; Case map*/ "\u0063", /*0043; 0063; Case map*/ "\u0064", /*0044; 0064; Case map*/ "\u0065", /*0045; 0065; Case map*/ "\u0066", /*0046; 0066; Case map*/ "\u0067", /*0047; 0067; Case map*/ "\u0068", /*0048; 0068; Case map*/ "\u0069", /*0049; 0069; Case map*/ "\u006A", /*004A; 006A; Case map*/ "\u006B", /*004B; 006B; Case map*/ "\u006C", /*004C; 006C; Case map*/ "\u006D", /*004D; 006D; Case map*/ "\u006E", /*004E; 006E; Case map*/ "\u006F", /*004F; 006F; Case map*/ "\u0070", /*0050; 0070; Case map*/ "\u0071", /*0051; 0071; Case map*/ "\u0072", /*0052; 0072; Case map*/ "\u0073", /*0053; 0073; Case map*/ "\u0074", /*0054; 0074; Case map*/ "\u0075", /*0055; 0075; Case map*/ "\u0076", /*0056; 0076; Case map*/ "\u0077", /*0057; 0077; Case map*/ "\u0078", /*0058; 0078; Case map*/ "\u0079", /*0059; 0079; Case map*/ "\u007A", /*005A; 007A; Case map*/ "\u03BC", /*00B5; 03BC; Case map*/ "\u00E0", /*00C0; 00E0; Case map*/ "\u00E1", /*00C1; 00E1; Case map*/ "\u00E2", /*00C2; 00E2; Case map*/ "\u00E3", /*00C3; 00E3; Case map*/ "\u00E4", /*00C4; 00E4; Case map*/ "\u00E5", /*00C5; 00E5; Case map*/ "\u00E6", /*00C6; 00E6; Case map*/ "\u00E7", /*00C7; 00E7; Case map*/ "\u00E8", /*00C8; 00E8; Case map*/ "\u00E9", /*00C9; 00E9; Case map*/ "\u00EA", /*00CA; 00EA; Case map*/ "\u00EB", /*00CB; 00EB; Case map*/ "\u00EC", /*00CC; 00EC; Case map*/ "\u00ED", /*00CD; 00ED; Case map*/ "\u00EE", /*00CE; 00EE; Case map*/ "\u00EF", /*00CF; 00EF; Case map*/ "\u00F0", /*00D0; 00F0; Case map*/ "\u00F1", /*00D1; 00F1; Case map*/ "\u00F2", /*00D2; 00F2; Case map*/ "\u00F3", /*00D3; 00F3; Case map*/ "\u00F4", /*00D4; 00F4; Case map*/ "\u00F5", /*00D5; 00F5; Case map*/ "\u00F6", /*00D6; 00F6; Case map*/ "\u00F8", /*00D8; 00F8; Case map*/ "\u00F9", /*00D9; 00F9; Case map*/ "\u00FA", /*00DA; 00FA; Case map*/ "\u00FB", /*00DB; 00FB; Case map*/ "\u00FC", /*00DC; 00FC; Case map*/ "\u00FD", /*00DD; 00FD; Case map*/ "\u00FE", /*00DE; 00FE; Case map*/ "\u0073\u0073", /*00DF; 0073 0073; Case map*/ "\u0101", /*0100; 0101; Case map*/ "\u0103", /*0102; 0103; Case map*/ "\u0105", /*0104; 0105; Case map*/ "\u0107", /*0106; 0107; Case map*/ "\u0109", /*0108; 0109; Case map*/ "\u010B", /*010A; 010B; Case map*/ "\u010D", /*010C; 010D; Case map*/ "\u010F", /*010E; 010F; Case map*/ "\u0111", /*0110; 0111; Case map*/ "\u0113", /*0112; 0113; Case map*/ "\u0115", /*0114; 0115; Case map*/ "\u0117", /*0116; 0117; Case map*/ "\u0119", /*0118; 0119; Case map*/ "\u011B", /*011A; 011B; Case map*/ "\u011D", /*011C; 011D; Case map*/ "\u011F", /*011E; 011F; Case map*/ "\u0121", /*0120; 0121; Case map*/ "\u0123", /*0122; 0123; Case map*/ "\u0125", /*0124; 0125; Case map*/ "\u0127", /*0126; 0127; Case map*/ "\u0129", /*0128; 0129; Case map*/ "\u012B", /*012A; 012B; Case map*/ "\u012D", /*012C; 012D; Case map*/ "\u012F", /*012E; 012F; Case map*/ "\u0069\u0307", /*0130; 0069 0307; Case map*/ "\u0133", /*0132; 0133; Case map*/ "\u0135", /*0134; 0135; Case map*/ "\u0137", /*0136; 0137; Case map*/ "\u013A", /*0139; 013A; Case map*/ "\u013C", /*013B; 013C; Case map*/ "\u013E", /*013D; 013E; Case map*/ "\u0140", /*013F; 0140; Case map*/ "\u0142", /*0141; 0142; Case map*/ "\u0144", /*0143; 0144; Case map*/ "\u0146", /*0145; 0146; Case map*/ "\u0148", /*0147; 0148; Case map*/ "\u02BC\u006E", /*0149; 02BC 006E; Case map*/ "\u014B", /*014A; 014B; Case map*/ "\u014D", /*014C; 014D; Case map*/ "\u014F", /*014E; 014F; Case map*/ "\u0151", /*0150; 0151; Case map*/ "\u0153", /*0152; 0153; Case map*/ "\u0155", /*0154; 0155; Case map*/ "\u0157", /*0156; 0157; Case map*/ "\u0159", /*0158; 0159; Case map*/ "\u015B", /*015A; 015B; Case map*/ "\u015D", /*015C; 015D; Case map*/ "\u015F", /*015E; 015F; Case map*/ "\u0161", /*0160; 0161; Case map*/ "\u0163", /*0162; 0163; Case map*/ "\u0165", /*0164; 0165; Case map*/ "\u0167", /*0166; 0167; Case map*/ "\u0169", /*0168; 0169; Case map*/ "\u016B", /*016A; 016B; Case map*/ "\u016D", /*016C; 016D; Case map*/ "\u016F", /*016E; 016F; Case map*/ "\u0171", /*0170; 0171; Case map*/ "\u0173", /*0172; 0173; Case map*/ "\u0175", /*0174; 0175; Case map*/ "\u0177", /*0176; 0177; Case map*/ "\u00FF", /*0178; 00FF; Case map*/ "\u017A", /*0179; 017A; Case map*/ "\u017C", /*017B; 017C; Case map*/ "\u017E", /*017D; 017E; Case map*/ "\u0073", /*017F; 0073; Case map*/ "\u0253", /*0181; 0253; Case map*/ "\u0183", /*0182; 0183; Case map*/ "\u0185", /*0184; 0185; Case map*/ "\u0254", /*0186; 0254; Case map*/ "\u0188", /*0187; 0188; Case map*/ "\u0256", /*0189; 0256; Case map*/ "\u0257", /*018A; 0257; Case map*/ "\u018C", /*018B; 018C; Case map*/ "\u01DD", /*018E; 01DD; Case map*/ "\u0259", /*018F; 0259; Case map*/ "\u025B", /*0190; 025B; Case map*/ "\u0192", /*0191; 0192; Case map*/ "\u0260", /*0193; 0260; Case map*/ "\u0263", /*0194; 0263; Case map*/ "\u0269", /*0196; 0269; Case map*/ "\u0268", /*0197; 0268; Case map*/ "\u0199", /*0198; 0199; Case map*/ "\u026F", /*019C; 026F; Case map*/ "\u0272", /*019D; 0272; Case map*/ "\u0275", /*019F; 0275; Case map*/ "\u01A1", /*01A0; 01A1; Case map*/ "\u01A3", /*01A2; 01A3; Case map*/ "\u01A5", /*01A4; 01A5; Case map*/ "\u0280", /*01A6; 0280; Case map*/ "\u01A8", /*01A7; 01A8; Case map*/ "\u0283", /*01A9; 0283; Case map*/ "\u01AD", /*01AC; 01AD; Case map*/ "\u0288", /*01AE; 0288; Case map*/ "\u01B0", /*01AF; 01B0; Case map*/ "\u028A", /*01B1; 028A; Case map*/ "\u028B", /*01B2; 028B; Case map*/ "\u01B4", /*01B3; 01B4; Case map*/ "\u01B6", /*01B5; 01B6; Case map*/ "\u0292", /*01B7; 0292; Case map*/ "\u01B9", /*01B8; 01B9; Case map*/ "\u01BD", /*01BC; 01BD; Case map*/ "\u01C6", /*01C4; 01C6; Case map*/ "\u01C6", /*01C5; 01C6; Case map*/ "\u01C9", /*01C7; 01C9; Case map*/ "\u01C9", /*01C8; 01C9; Case map*/ "\u01CC", /*01CA; 01CC; Case map*/ "\u01CC", /*01CB; 01CC; Case map*/ "\u01CE", /*01CD; 01CE; Case map*/ "\u01D0", /*01CF; 01D0; Case map*/ "\u01D2", /*01D1; 01D2; Case map*/ "\u01D4", /*01D3; 01D4; Case map*/ "\u01D6", /*01D5; 01D6; Case map*/ "\u01D8", /*01D7; 01D8; Case map*/ "\u01DA", /*01D9; 01DA; Case map*/ "\u01DC", /*01DB; 01DC; Case map*/ "\u01DF", /*01DE; 01DF; Case map*/ "\u01E1", /*01E0; 01E1; Case map*/ "\u01E3", /*01E2; 01E3; Case map*/ "\u01E5", /*01E4; 01E5; Case map*/ "\u01E7", /*01E6; 01E7; Case map*/ "\u01E9", /*01E8; 01E9; Case map*/ "\u01EB", /*01EA; 01EB; Case map*/ "\u01ED", /*01EC; 01ED; Case map*/ "\u01EF", /*01EE; 01EF; Case map*/ "\u006A\u030C", /*01F0; 006A 030C; Case map*/ "\u01F3", /*01F1; 01F3; Case map*/ "\u01F3", /*01F2; 01F3; Case map*/ "\u01F5", /*01F4; 01F5; Case map*/ "\u0195", /*01F6; 0195; Case map*/ "\u01BF", /*01F7; 01BF; Case map*/ "\u01F9", /*01F8; 01F9; Case map*/ "\u01FB", /*01FA; 01FB; Case map*/ "\u01FD", /*01FC; 01FD; Case map*/ "\u01FF", /*01FE; 01FF; Case map*/ "\u0201", /*0200; 0201; Case map*/ "\u0203", /*0202; 0203; Case map*/ "\u0205", /*0204; 0205; Case map*/ "\u0207", /*0206; 0207; Case map*/ "\u0209", /*0208; 0209; Case map*/ "\u020B", /*020A; 020B; Case map*/ "\u020D", /*020C; 020D; Case map*/ "\u020F", /*020E; 020F; Case map*/ "\u0211", /*0210; 0211; Case map*/ "\u0213", /*0212; 0213; Case map*/ "\u0215", /*0214; 0215; Case map*/ "\u0217", /*0216; 0217; Case map*/ "\u0219", /*0218; 0219; Case map*/ "\u021B", /*021A; 021B; Case map*/ "\u021D", /*021C; 021D; Case map*/ "\u021F", /*021E; 021F; Case map*/ "\u019E", /*0220; 019E; Case map*/ "\u0223", /*0222; 0223; Case map*/ "\u0225", /*0224; 0225; Case map*/ "\u0227", /*0226; 0227; Case map*/ "\u0229", /*0228; 0229; Case map*/ "\u022B", /*022A; 022B; Case map*/ "\u022D", /*022C; 022D; Case map*/ "\u022F", /*022E; 022F; Case map*/ "\u0231", /*0230; 0231; Case map*/ "\u0233", /*0232; 0233; Case map*/ "\u03B9", /*0345; 03B9; Case map*/ "\u0020\u03B9", /*037A; 0020 03B9; Additional folding*/ "\u03AC", /*0386; 03AC; Case map*/ "\u03AD", /*0388; 03AD; Case map*/ "\u03AE", /*0389; 03AE; Case map*/ "\u03AF", /*038A; 03AF; Case map*/ "\u03CC", /*038C; 03CC; Case map*/ "\u03CD", /*038E; 03CD; Case map*/ "\u03CE", /*038F; 03CE; Case map*/ "\u03B9\u0308\u0301", /*0390; 03B9 0308 0301; Case map*/ "\u03B1", /*0391; 03B1; Case map*/ "\u03B2", /*0392; 03B2; Case map*/ "\u03B3", /*0393; 03B3; Case map*/ "\u03B4", /*0394; 03B4; Case map*/ "\u03B5", /*0395; 03B5; Case map*/ "\u03B6", /*0396; 03B6; Case map*/ "\u03B7", /*0397; 03B7; Case map*/ "\u03B8", /*0398; 03B8; Case map*/ "\u03B9", /*0399; 03B9; Case map*/ "\u03BA", /*039A; 03BA; Case map*/ "\u03BB", /*039B; 03BB; Case map*/ "\u03BC", /*039C; 03BC; Case map*/ "\u03BD", /*039D; 03BD; Case map*/ "\u03BE", /*039E; 03BE; Case map*/ "\u03BF", /*039F; 03BF; Case map*/ "\u03C0", /*03A0; 03C0; Case map*/ "\u03C1", /*03A1; 03C1; Case map*/ "\u03C3", /*03A3; 03C3; Case map*/ "\u03C4", /*03A4; 03C4; Case map*/ "\u03C5", /*03A5; 03C5; Case map*/ "\u03C6", /*03A6; 03C6; Case map*/ "\u03C7", /*03A7; 03C7; Case map*/ "\u03C8", /*03A8; 03C8; Case map*/ "\u03C9", /*03A9; 03C9; Case map*/ "\u03CA", /*03AA; 03CA; Case map*/ "\u03CB", /*03AB; 03CB; Case map*/ "\u03C5\u0308\u0301", /*03B0; 03C5 0308 0301; Case map*/ "\u03C3", /*03C2; 03C3; Case map*/ "\u03B2", /*03D0; 03B2; Case map*/ "\u03B8", /*03D1; 03B8; Case map*/ "\u03C5", /*03D2; 03C5; Additional folding*/ "\u03CD", /*03D3; 03CD; Additional folding*/ "\u03CB", /*03D4; 03CB; Additional folding*/ "\u03C6", /*03D5; 03C6; Case map*/ "\u03C0", /*03D6; 03C0; Case map*/ "\u03D9", /*03D8; 03D9; Case map*/ "\u03DB", /*03DA; 03DB; Case map*/ "\u03DD", /*03DC; 03DD; Case map*/ "\u03DF", /*03DE; 03DF; Case map*/ "\u03E1", /*03E0; 03E1; Case map*/ "\u03E3", /*03E2; 03E3; Case map*/ "\u03E5", /*03E4; 03E5; Case map*/ "\u03E7", /*03E6; 03E7; Case map*/ "\u03E9", /*03E8; 03E9; Case map*/ "\u03EB", /*03EA; 03EB; Case map*/ "\u03ED", /*03EC; 03ED; Case map*/ "\u03EF", /*03EE; 03EF; Case map*/ "\u03BA", /*03F0; 03BA; Case map*/ "\u03C1", /*03F1; 03C1; Case map*/ "\u03C3", /*03F2; 03C3; Case map*/ "\u03B8", /*03F4; 03B8; Case map*/ "\u03B5", /*03F5; 03B5; Case map*/ "\u0450", /*0400; 0450; Case map*/ "\u0451", /*0401; 0451; Case map*/ "\u0452", /*0402; 0452; Case map*/ "\u0453", /*0403; 0453; Case map*/ "\u0454", /*0404; 0454; Case map*/ "\u0455", /*0405; 0455; Case map*/ "\u0456", /*0406; 0456; Case map*/ "\u0457", /*0407; 0457; Case map*/ "\u0458", /*0408; 0458; Case map*/ "\u0459", /*0409; 0459; Case map*/ "\u045A", /*040A; 045A; Case map*/ "\u045B", /*040B; 045B; Case map*/ "\u045C", /*040C; 045C; Case map*/ "\u045D", /*040D; 045D; Case map*/ "\u045E", /*040E; 045E; Case map*/ "\u045F", /*040F; 045F; Case map*/ "\u0430", /*0410; 0430; Case map*/ "\u0431", /*0411; 0431; Case map*/ "\u0432", /*0412; 0432; Case map*/ "\u0433", /*0413; 0433; Case map*/ "\u0434", /*0414; 0434; Case map*/ "\u0435", /*0415; 0435; Case map*/ "\u0436", /*0416; 0436; Case map*/ "\u0437", /*0417; 0437; Case map*/ "\u0438", /*0418; 0438; Case map*/ "\u0439", /*0419; 0439; Case map*/ "\u043A", /*041A; 043A; Case map*/ "\u043B", /*041B; 043B; Case map*/ "\u043C", /*041C; 043C; Case map*/ "\u043D", /*041D; 043D; Case map*/ "\u043E", /*041E; 043E; Case map*/ "\u043F", /*041F; 043F; Case map*/ "\u0440", /*0420; 0440; Case map*/ "\u0441", /*0421; 0441; Case map*/ "\u0442", /*0422; 0442; Case map*/ "\u0443", /*0423; 0443; Case map*/ "\u0444", /*0424; 0444; Case map*/ "\u0445", /*0425; 0445; Case map*/ "\u0446", /*0426; 0446; Case map*/ "\u0447", /*0427; 0447; Case map*/ "\u0448", /*0428; 0448; Case map*/ "\u0449", /*0429; 0449; Case map*/ "\u044A", /*042A; 044A; Case map*/ "\u044B", /*042B; 044B; Case map*/ "\u044C", /*042C; 044C; Case map*/ "\u044D", /*042D; 044D; Case map*/ "\u044E", /*042E; 044E; Case map*/ "\u044F", /*042F; 044F; Case map*/ "\u0461", /*0460; 0461; Case map*/ "\u0463", /*0462; 0463; Case map*/ "\u0465", /*0464; 0465; Case map*/ "\u0467", /*0466; 0467; Case map*/ "\u0469", /*0468; 0469; Case map*/ "\u046B", /*046A; 046B; Case map*/ "\u046D", /*046C; 046D; Case map*/ "\u046F", /*046E; 046F; Case map*/ "\u0471", /*0470; 0471; Case map*/ "\u0473", /*0472; 0473; Case map*/ "\u0475", /*0474; 0475; Case map*/ "\u0477", /*0476; 0477; Case map*/ "\u0479", /*0478; 0479; Case map*/ "\u047B", /*047A; 047B; Case map*/ "\u047D", /*047C; 047D; Case map*/ "\u047F", /*047E; 047F; Case map*/ "\u0481", /*0480; 0481; Case map*/ "\u048B", /*048A; 048B; Case map*/ "\u048D", /*048C; 048D; Case map*/ "\u048F", /*048E; 048F; Case map*/ "\u0491", /*0490; 0491; Case map*/ "\u0493", /*0492; 0493; Case map*/ "\u0495", /*0494; 0495; Case map*/ "\u0497", /*0496; 0497; Case map*/ "\u0499", /*0498; 0499; Case map*/ "\u049B", /*049A; 049B; Case map*/ "\u049D", /*049C; 049D; Case map*/ "\u049F", /*049E; 049F; Case map*/ "\u04A1", /*04A0; 04A1; Case map*/ "\u04A3", /*04A2; 04A3; Case map*/ "\u04A5", /*04A4; 04A5; Case map*/ "\u04A7", /*04A6; 04A7; Case map*/ "\u04A9", /*04A8; 04A9; Case map*/ "\u04AB", /*04AA; 04AB; Case map*/ "\u04AD", /*04AC; 04AD; Case map*/ "\u04AF", /*04AE; 04AF; Case map*/ "\u04B1", /*04B0; 04B1; Case map*/ "\u04B3", /*04B2; 04B3; Case map*/ "\u04B5", /*04B4; 04B5; Case map*/ "\u04B7", /*04B6; 04B7; Case map*/ "\u04B9", /*04B8; 04B9; Case map*/ "\u04BB", /*04BA; 04BB; Case map*/ "\u04BD", /*04BC; 04BD; Case map*/ "\u04BF", /*04BE; 04BF; Case map*/ "\u04C2", /*04C1; 04C2; Case map*/ "\u04C4", /*04C3; 04C4; Case map*/ "\u04C6", /*04C5; 04C6; Case map*/ "\u04C8", /*04C7; 04C8; Case map*/ "\u04CA", /*04C9; 04CA; Case map*/ "\u04CC", /*04CB; 04CC; Case map*/ "\u04CE", /*04CD; 04CE; Case map*/ "\u04D1", /*04D0; 04D1; Case map*/ "\u04D3", /*04D2; 04D3; Case map*/ "\u04D5", /*04D4; 04D5; Case map*/ "\u04D7", /*04D6; 04D7; Case map*/ "\u04D9", /*04D8; 04D9; Case map*/ "\u04DB", /*04DA; 04DB; Case map*/ "\u04DD", /*04DC; 04DD; Case map*/ "\u04DF", /*04DE; 04DF; Case map*/ "\u04E1", /*04E0; 04E1; Case map*/ "\u04E3", /*04E2; 04E3; Case map*/ "\u04E5", /*04E4; 04E5; Case map*/ "\u04E7", /*04E6; 04E7; Case map*/ "\u04E9", /*04E8; 04E9; Case map*/ "\u04EB", /*04EA; 04EB; Case map*/ "\u04ED", /*04EC; 04ED; Case map*/ "\u04EF", /*04EE; 04EF; Case map*/ "\u04F1", /*04F0; 04F1; Case map*/ "\u04F3", /*04F2; 04F3; Case map*/ "\u04F5", /*04F4; 04F5; Case map*/ "\u04F9", /*04F8; 04F9; Case map*/ "\u0501", /*0500; 0501; Case map*/ "\u0503", /*0502; 0503; Case map*/ "\u0505", /*0504; 0505; Case map*/ "\u0507", /*0506; 0507; Case map*/ "\u0509", /*0508; 0509; Case map*/ "\u050B", /*050A; 050B; Case map*/ "\u050D", /*050C; 050D; Case map*/ "\u050F", /*050E; 050F; Case map*/ "\u0561", /*0531; 0561; Case map*/ "\u0562", /*0532; 0562; Case map*/ "\u0563", /*0533; 0563; Case map*/ "\u0564", /*0534; 0564; Case map*/ "\u0565", /*0535; 0565; Case map*/ "\u0566", /*0536; 0566; Case map*/ "\u0567", /*0537; 0567; Case map*/ "\u0568", /*0538; 0568; Case map*/ "\u0569", /*0539; 0569; Case map*/ "\u056A", /*053A; 056A; Case map*/ "\u056B", /*053B; 056B; Case map*/ "\u056C", /*053C; 056C; Case map*/ "\u056D", /*053D; 056D; Case map*/ "\u056E", /*053E; 056E; Case map*/ "\u056F", /*053F; 056F; Case map*/ "\u0570", /*0540; 0570; Case map*/ "\u0571", /*0541; 0571; Case map*/ "\u0572", /*0542; 0572; Case map*/ "\u0573", /*0543; 0573; Case map*/ "\u0574", /*0544; 0574; Case map*/ "\u0575", /*0545; 0575; Case map*/ "\u0576", /*0546; 0576; Case map*/ "\u0577", /*0547; 0577; Case map*/ "\u0578", /*0548; 0578; Case map*/ "\u0579", /*0549; 0579; Case map*/ "\u057A", /*054A; 057A; Case map*/ "\u057B", /*054B; 057B; Case map*/ "\u057C", /*054C; 057C; Case map*/ "\u057D", /*054D; 057D; Case map*/ "\u057E", /*054E; 057E; Case map*/ "\u057F", /*054F; 057F; Case map*/ "\u0580", /*0550; 0580; Case map*/ "\u0581", /*0551; 0581; Case map*/ "\u0582", /*0552; 0582; Case map*/ "\u0583", /*0553; 0583; Case map*/ "\u0584", /*0554; 0584; Case map*/ "\u0585", /*0555; 0585; Case map*/ "\u0586", /*0556; 0586; Case map*/ "\u0565\u0582", /*0587; 0565 0582; Case map*/ "\u1E01", /*1E00; 1E01; Case map*/ "\u1E03", /*1E02; 1E03; Case map*/ "\u1E05", /*1E04; 1E05; Case map*/ "\u1E07", /*1E06; 1E07; Case map*/ "\u1E09", /*1E08; 1E09; Case map*/ "\u1E0B", /*1E0A; 1E0B; Case map*/ "\u1E0D", /*1E0C; 1E0D; Case map*/ "\u1E0F", /*1E0E; 1E0F; Case map*/ "\u1E11", /*1E10; 1E11; Case map*/ "\u1E13", /*1E12; 1E13; Case map*/ "\u1E15", /*1E14; 1E15; Case map*/ "\u1E17", /*1E16; 1E17; Case map*/ "\u1E19", /*1E18; 1E19; Case map*/ "\u1E1B", /*1E1A; 1E1B; Case map*/ "\u1E1D", /*1E1C; 1E1D; Case map*/ "\u1E1F", /*1E1E; 1E1F; Case map*/ "\u1E21", /*1E20; 1E21; Case map*/ "\u1E23", /*1E22; 1E23; Case map*/ "\u1E25", /*1E24; 1E25; Case map*/ "\u1E27", /*1E26; 1E27; Case map*/ "\u1E29", /*1E28; 1E29; Case map*/ "\u1E2B", /*1E2A; 1E2B; Case map*/ "\u1E2D", /*1E2C; 1E2D; Case map*/ "\u1E2F", /*1E2E; 1E2F; Case map*/ "\u1E31", /*1E30; 1E31; Case map*/ "\u1E33", /*1E32; 1E33; Case map*/ "\u1E35", /*1E34; 1E35; Case map*/ "\u1E37", /*1E36; 1E37; Case map*/ "\u1E39", /*1E38; 1E39; Case map*/ "\u1E3B", /*1E3A; 1E3B; Case map*/ "\u1E3D", /*1E3C; 1E3D; Case map*/ "\u1E3F", /*1E3E; 1E3F; Case map*/ "\u1E41", /*1E40; 1E41; Case map*/ "\u1E43", /*1E42; 1E43; Case map*/ "\u1E45", /*1E44; 1E45; Case map*/ "\u1E47", /*1E46; 1E47; Case map*/ "\u1E49", /*1E48; 1E49; Case map*/ "\u1E4B", /*1E4A; 1E4B; Case map*/ "\u1E4D", /*1E4C; 1E4D; Case map*/ "\u1E4F", /*1E4E; 1E4F; Case map*/ "\u1E51", /*1E50; 1E51; Case map*/ "\u1E53", /*1E52; 1E53; Case map*/ "\u1E55", /*1E54; 1E55; Case map*/ "\u1E57", /*1E56; 1E57; Case map*/ "\u1E59", /*1E58; 1E59; Case map*/ "\u1E5B", /*1E5A; 1E5B; Case map*/ "\u1E5D", /*1E5C; 1E5D; Case map*/ "\u1E5F", /*1E5E; 1E5F; Case map*/ "\u1E61", /*1E60; 1E61; Case map*/ "\u1E63", /*1E62; 1E63; Case map*/ "\u1E65", /*1E64; 1E65; Case map*/ "\u1E67", /*1E66; 1E67; Case map*/ "\u1E69", /*1E68; 1E69; Case map*/ "\u1E6B", /*1E6A; 1E6B; Case map*/ "\u1E6D", /*1E6C; 1E6D; Case map*/ "\u1E6F", /*1E6E; 1E6F; Case map*/ "\u1E71", /*1E70; 1E71; Case map*/ "\u1E73", /*1E72; 1E73; Case map*/ "\u1E75", /*1E74; 1E75; Case map*/ "\u1E77", /*1E76; 1E77; Case map*/ "\u1E79", /*1E78; 1E79; Case map*/ "\u1E7B", /*1E7A; 1E7B; Case map*/ "\u1E7D", /*1E7C; 1E7D; Case map*/ "\u1E7F", /*1E7E; 1E7F; Case map*/ "\u1E81", /*1E80; 1E81; Case map*/ "\u1E83", /*1E82; 1E83; Case map*/ "\u1E85", /*1E84; 1E85; Case map*/ "\u1E87", /*1E86; 1E87; Case map*/ "\u1E89", /*1E88; 1E89; Case map*/ "\u1E8B", /*1E8A; 1E8B; Case map*/ "\u1E8D", /*1E8C; 1E8D; Case map*/ "\u1E8F", /*1E8E; 1E8F; Case map*/ "\u1E91", /*1E90; 1E91; Case map*/ "\u1E93", /*1E92; 1E93; Case map*/ "\u1E95", /*1E94; 1E95; Case map*/ "\u0068\u0331", /*1E96; 0068 0331; Case map*/ "\u0074\u0308", /*1E97; 0074 0308; Case map*/ "\u0077\u030A", /*1E98; 0077 030A; Case map*/ "\u0079\u030A", /*1E99; 0079 030A; Case map*/ "\u0061\u02BE", /*1E9A; 0061 02BE; Case map*/ "\u1E61", /*1E9B; 1E61; Case map*/ "\u1EA1", /*1EA0; 1EA1; Case map*/ "\u1EA3", /*1EA2; 1EA3; Case map*/ "\u1EA5", /*1EA4; 1EA5; Case map*/ "\u1EA7", /*1EA6; 1EA7; Case map*/ "\u1EA9", /*1EA8; 1EA9; Case map*/ "\u1EAB", /*1EAA; 1EAB; Case map*/ "\u1EAD", /*1EAC; 1EAD; Case map*/ "\u1EAF", /*1EAE; 1EAF; Case map*/ "\u1EB1", /*1EB0; 1EB1; Case map*/ "\u1EB3", /*1EB2; 1EB3; Case map*/ "\u1EB5", /*1EB4; 1EB5; Case map*/ "\u1EB7", /*1EB6; 1EB7; Case map*/ "\u1EB9", /*1EB8; 1EB9; Case map*/ "\u1EBB", /*1EBA; 1EBB; Case map*/ "\u1EBD", /*1EBC; 1EBD; Case map*/ "\u1EBF", /*1EBE; 1EBF; Case map*/ "\u1EC1", /*1EC0; 1EC1; Case map*/ "\u1EC3", /*1EC2; 1EC3; Case map*/ "\u1EC5", /*1EC4; 1EC5; Case map*/ "\u1EC7", /*1EC6; 1EC7; Case map*/ "\u1EC9", /*1EC8; 1EC9; Case map*/ "\u1ECB", /*1ECA; 1ECB; Case map*/ "\u1ECD", /*1ECC; 1ECD; Case map*/ "\u1ECF", /*1ECE; 1ECF; Case map*/ "\u1ED1", /*1ED0; 1ED1; Case map*/ "\u1ED3", /*1ED2; 1ED3; Case map*/ "\u1ED5", /*1ED4; 1ED5; Case map*/ "\u1ED7", /*1ED6; 1ED7; Case map*/ "\u1ED9", /*1ED8; 1ED9; Case map*/ "\u1EDB", /*1EDA; 1EDB; Case map*/ "\u1EDD", /*1EDC; 1EDD; Case map*/ "\u1EDF", /*1EDE; 1EDF; Case map*/ "\u1EE1", /*1EE0; 1EE1; Case map*/ "\u1EE3", /*1EE2; 1EE3; Case map*/ "\u1EE5", /*1EE4; 1EE5; Case map*/ "\u1EE7", /*1EE6; 1EE7; Case map*/ "\u1EE9", /*1EE8; 1EE9; Case map*/ "\u1EEB", /*1EEA; 1EEB; Case map*/ "\u1EED", /*1EEC; 1EED; Case map*/ "\u1EEF", /*1EEE; 1EEF; Case map*/ "\u1EF1", /*1EF0; 1EF1; Case map*/ "\u1EF3", /*1EF2; 1EF3; Case map*/ "\u1EF5", /*1EF4; 1EF5; Case map*/ "\u1EF7", /*1EF6; 1EF7; Case map*/ "\u1EF9", /*1EF8; 1EF9; Case map*/ "\u1F00", /*1F08; 1F00; Case map*/ "\u1F01", /*1F09; 1F01; Case map*/ "\u1F02", /*1F0A; 1F02; Case map*/ "\u1F03", /*1F0B; 1F03; Case map*/ "\u1F04", /*1F0C; 1F04; Case map*/ "\u1F05", /*1F0D; 1F05; Case map*/ "\u1F06", /*1F0E; 1F06; Case map*/ "\u1F07", /*1F0F; 1F07; Case map*/ "\u1F10", /*1F18; 1F10; Case map*/ "\u1F11", /*1F19; 1F11; Case map*/ "\u1F12", /*1F1A; 1F12; Case map*/ "\u1F13", /*1F1B; 1F13; Case map*/ "\u1F14", /*1F1C; 1F14; Case map*/ "\u1F15", /*1F1D; 1F15; Case map*/ "\u1F20", /*1F28; 1F20; Case map*/ "\u1F21", /*1F29; 1F21; Case map*/ "\u1F22", /*1F2A; 1F22; Case map*/ "\u1F23", /*1F2B; 1F23; Case map*/ "\u1F24", /*1F2C; 1F24; Case map*/ "\u1F25", /*1F2D; 1F25; Case map*/ "\u1F26", /*1F2E; 1F26; Case map*/ "\u1F27", /*1F2F; 1F27; Case map*/ "\u1F30", /*1F38; 1F30; Case map*/ "\u1F31", /*1F39; 1F31; Case map*/ "\u1F32", /*1F3A; 1F32; Case map*/ "\u1F33", /*1F3B; 1F33; Case map*/ "\u1F34", /*1F3C; 1F34; Case map*/ "\u1F35", /*1F3D; 1F35; Case map*/ "\u1F36", /*1F3E; 1F36; Case map*/ "\u1F37", /*1F3F; 1F37; Case map*/ "\u1F40", /*1F48; 1F40; Case map*/ "\u1F41", /*1F49; 1F41; Case map*/ "\u1F42", /*1F4A; 1F42; Case map*/ "\u1F43", /*1F4B; 1F43; Case map*/ "\u1F44", /*1F4C; 1F44; Case map*/ "\u1F45", /*1F4D; 1F45; Case map*/ "\u03C5\u0313", /*1F50; 03C5 0313; Case map*/ "\u03C5\u0313\u0300", /*1F52; 03C5 0313 0300; Case map*/ "\u03C5\u0313\u0301", /*1F54; 03C5 0313 0301; Case map*/ "\u03C5\u0313\u0342", /*1F56; 03C5 0313 0342; Case map*/ "\u1F51", /*1F59; 1F51; Case map*/ "\u1F53", /*1F5B; 1F53; Case map*/ "\u1F55", /*1F5D; 1F55; Case map*/ "\u1F57", /*1F5F; 1F57; Case map*/ "\u1F60", /*1F68; 1F60; Case map*/ "\u1F61", /*1F69; 1F61; Case map*/ "\u1F62", /*1F6A; 1F62; Case map*/ "\u1F63", /*1F6B; 1F63; Case map*/ "\u1F64", /*1F6C; 1F64; Case map*/ "\u1F65", /*1F6D; 1F65; Case map*/ "\u1F66", /*1F6E; 1F66; Case map*/ "\u1F67", /*1F6F; 1F67; Case map*/ "\u1F00\u03B9", /*1F80; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F81; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F82; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F83; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F84; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F85; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F86; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F87; 1F07 03B9; Case map*/ "\u1F00\u03B9", /*1F88; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F89; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F8A; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F8B; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F8C; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F8D; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F8E; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F8F; 1F07 03B9; Case map*/ "\u1F20\u03B9", /*1F90; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F91; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F92; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F93; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F94; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F95; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F96; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F97; 1F27 03B9; Case map*/ "\u1F20\u03B9", /*1F98; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F99; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F9A; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F9B; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F9C; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F9D; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F9E; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F9F; 1F27 03B9; Case map*/ "\u1F60\u03B9", /*1FA0; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA1; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FA2; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FA3; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FA4; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FA5; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FA6; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FA7; 1F67 03B9; Case map*/ "\u1F60\u03B9", /*1FA8; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA9; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FAA; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FAB; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FAC; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FAD; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FAE; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FAF; 1F67 03B9; Case map*/ "\u1F70\u03B9", /*1FB2; 1F70 03B9; Case map*/ "\u03B1\u03B9", /*1FB3; 03B1 03B9; Case map*/ "\u03AC\u03B9", /*1FB4; 03AC 03B9; Case map*/ "\u03B1\u0342", /*1FB6; 03B1 0342; Case map*/ "\u03B1\u0342\u03B9", /*1FB7; 03B1 0342 03B9; Case map*/ "\u1FB0", /*1FB8; 1FB0; Case map*/ "\u1FB1", /*1FB9; 1FB1; Case map*/ "\u1F70", /*1FBA; 1F70; Case map*/ "\u1F71", /*1FBB; 1F71; Case map*/ "\u03B1\u03B9", /*1FBC; 03B1 03B9; Case map*/ "\u03B9", /*1FBE; 03B9; Case map*/ "\u1F74\u03B9", /*1FC2; 1F74 03B9; Case map*/ "\u03B7\u03B9", /*1FC3; 03B7 03B9; Case map*/ "\u03AE\u03B9", /*1FC4; 03AE 03B9; Case map*/ "\u03B7\u0342", /*1FC6; 03B7 0342; Case map*/ "\u03B7\u0342\u03B9", /*1FC7; 03B7 0342 03B9; Case map*/ "\u1F72", /*1FC8; 1F72; Case map*/ "\u1F73", /*1FC9; 1F73; Case map*/ "\u1F74", /*1FCA; 1F74; Case map*/ "\u1F75", /*1FCB; 1F75; Case map*/ "\u03B7\u03B9", /*1FCC; 03B7 03B9; Case map*/ "\u03B9\u0308\u0300", /*1FD2; 03B9 0308 0300; Case map*/ "\u03B9\u0308\u0301", /*1FD3; 03B9 0308 0301; Case map*/ "\u03B9\u0342", /*1FD6; 03B9 0342; Case map*/ "\u03B9\u0308\u0342", /*1FD7; 03B9 0308 0342; Case map*/ "\u1FD0", /*1FD8; 1FD0; Case map*/ "\u1FD1", /*1FD9; 1FD1; Case map*/ "\u1F76", /*1FDA; 1F76; Case map*/ "\u1F77", /*1FDB; 1F77; Case map*/ "\u03C5\u0308\u0300", /*1FE2; 03C5 0308 0300; Case map*/ "\u03C5\u0308\u0301", /*1FE3; 03C5 0308 0301; Case map*/ "\u03C1\u0313", /*1FE4; 03C1 0313; Case map*/ "\u03C5\u0342", /*1FE6; 03C5 0342; Case map*/ "\u03C5\u0308\u0342", /*1FE7; 03C5 0308 0342; Case map*/ "\u1FE0", /*1FE8; 1FE0; Case map*/ "\u1FE1", /*1FE9; 1FE1; Case map*/ "\u1F7A", /*1FEA; 1F7A; Case map*/ "\u1F7B", /*1FEB; 1F7B; Case map*/ "\u1FE5", /*1FEC; 1FE5; Case map*/ "\u1F7C\u03B9", /*1FF2; 1F7C 03B9; Case map*/ "\u03C9\u03B9", /*1FF3; 03C9 03B9; Case map*/ "\u03CE\u03B9", /*1FF4; 03CE 03B9; Case map*/ "\u03C9\u0342", /*1FF6; 03C9 0342; Case map*/ "\u03C9\u0342\u03B9", /*1FF7; 03C9 0342 03B9; Case map*/ "\u1F78", /*1FF8; 1F78; Case map*/ "\u1F79", /*1FF9; 1F79; Case map*/ "\u1F7C", /*1FFA; 1F7C; Case map*/ "\u1F7D", /*1FFB; 1F7D; Case map*/ "\u03C9\u03B9", /*1FFC; 03C9 03B9; Case map*/ "\u0072\u0073", /*20A8; 0072 0073; Additional folding*/ "\u0063", /*2102; 0063; Additional folding*/ "\u00B0\u0063", /*2103; 00B0 0063; Additional folding*/ "\u025B", /*2107; 025B; Additional folding*/ "\u00B0\u0066", /*2109; 00B0 0066; Additional folding*/ "\u0068", /*210B; 0068; Additional folding*/ "\u0068", /*210C; 0068; Additional folding*/ "\u0068", /*210D; 0068; Additional folding*/ "\u0069", /*2110; 0069; Additional folding*/ "\u0069", /*2111; 0069; Additional folding*/ "\u006C", /*2112; 006C; Additional folding*/ "\u006E", /*2115; 006E; Additional folding*/ "\u006E\u006F", /*2116; 006E 006F; Additional folding*/ "\u0070", /*2119; 0070; Additional folding*/ "\u0071", /*211A; 0071; Additional folding*/ "\u0072", /*211B; 0072; Additional folding*/ "\u0072", /*211C; 0072; Additional folding*/ "\u0072", /*211D; 0072; Additional folding*/ "\u0073\u006D", /*2120; 0073 006D; Additional folding*/ "\u0074\u0065\u006C", /*2121; 0074 0065 006C; Additional folding*/ "\u0074\u006D", /*2122; 0074 006D; Additional folding*/ "\u007A", /*2124; 007A; Additional folding*/ "\u03C9", /*2126; 03C9; Case map*/ "\u007A", /*2128; 007A; Additional folding*/ "\u006B", /*212A; 006B; Case map*/ "\u00E5", /*212B; 00E5; Case map*/ "\u0062", /*212C; 0062; Additional folding*/ "\u0063", /*212D; 0063; Additional folding*/ "\u0065", /*2130; 0065; Additional folding*/ "\u0066", /*2131; 0066; Additional folding*/ "\u006D", /*2133; 006D; Additional folding*/ "\u03B3", /*213E; 03B3; Additional folding*/ "\u03C0", /*213F; 03C0; Additional folding*/ "\u0064", /*2145; 0064; Additional folding*/ "\u2170", /*2160; 2170; Case map*/ "\u2171", /*2161; 2171; Case map*/ "\u2172", /*2162; 2172; Case map*/ "\u2173", /*2163; 2173; Case map*/ "\u2174", /*2164; 2174; Case map*/ "\u2175", /*2165; 2175; Case map*/ "\u2176", /*2166; 2176; Case map*/ "\u2177", /*2167; 2177; Case map*/ "\u2178", /*2168; 2178; Case map*/ "\u2179", /*2169; 2179; Case map*/ "\u217A", /*216A; 217A; Case map*/ "\u217B", /*216B; 217B; Case map*/ "\u217C", /*216C; 217C; Case map*/ "\u217D", /*216D; 217D; Case map*/ "\u217E", /*216E; 217E; Case map*/ "\u217F", /*216F; 217F; Case map*/ "\u24D0", /*24B6; 24D0; Case map*/ "\u24D1", /*24B7; 24D1; Case map*/ "\u24D2", /*24B8; 24D2; Case map*/ "\u24D3", /*24B9; 24D3; Case map*/ "\u24D4", /*24BA; 24D4; Case map*/ "\u24D5", /*24BB; 24D5; Case map*/ "\u24D6", /*24BC; 24D6; Case map*/ "\u24D7", /*24BD; 24D7; Case map*/ "\u24D8", /*24BE; 24D8; Case map*/ "\u24D9", /*24BF; 24D9; Case map*/ "\u24DA", /*24C0; 24DA; Case map*/ "\u24DB", /*24C1; 24DB; Case map*/ "\u24DC", /*24C2; 24DC; Case map*/ "\u24DD", /*24C3; 24DD; Case map*/ "\u24DE", /*24C4; 24DE; Case map*/ "\u24DF", /*24C5; 24DF; Case map*/ "\u24E0", /*24C6; 24E0; Case map*/ "\u24E1", /*24C7; 24E1; Case map*/ "\u24E2", /*24C8; 24E2; Case map*/ "\u24E3", /*24C9; 24E3; Case map*/ "\u24E4", /*24CA; 24E4; Case map*/ "\u24E5", /*24CB; 24E5; Case map*/ "\u24E6", /*24CC; 24E6; Case map*/ "\u24E7", /*24CD; 24E7; Case map*/ "\u24E8", /*24CE; 24E8; Case map*/ "\u24E9", /*24CF; 24E9; Case map*/ "\u0068\u0070\u0061", /*3371; 0068 0070 0061; Additional folding*/ "\u0061\u0075", /*3373; 0061 0075; Additional folding*/ "\u006F\u0076", /*3375; 006F 0076; Additional folding*/ "\u0070\u0061", /*3380; 0070 0061; Additional folding*/ "\u006E\u0061", /*3381; 006E 0061; Additional folding*/ "\u03BC\u0061", /*3382; 03BC 0061; Additional folding*/ "\u006D\u0061", /*3383; 006D 0061; Additional folding*/ "\u006B\u0061", /*3384; 006B 0061; Additional folding*/ "\u006B\u0062", /*3385; 006B 0062; Additional folding*/ "\u006D\u0062", /*3386; 006D 0062; Additional folding*/ "\u0067\u0062", /*3387; 0067 0062; Additional folding*/ "\u0070\u0066", /*338A; 0070 0066; Additional folding*/ "\u006E\u0066", /*338B; 006E 0066; Additional folding*/ "\u03BC\u0066", /*338C; 03BC 0066; Additional folding*/ "\u0068\u007A", /*3390; 0068 007A; Additional folding*/ "\u006B\u0068\u007A", /*3391; 006B 0068 007A; Additional folding*/ "\u006D\u0068\u007A", /*3392; 006D 0068 007A; Additional folding*/ "\u0067\u0068\u007A", /*3393; 0067 0068 007A; Additional folding*/ "\u0074\u0068\u007A", /*3394; 0074 0068 007A; Additional folding*/ "\u0070\u0061", /*33A9; 0070 0061; Additional folding*/ "\u006B\u0070\u0061", /*33AA; 006B 0070 0061; Additional folding*/ "\u006D\u0070\u0061", /*33AB; 006D 0070 0061; Additional folding*/ "\u0067\u0070\u0061", /*33AC; 0067 0070 0061; Additional folding*/ "\u0070\u0076", /*33B4; 0070 0076; Additional folding*/ "\u006E\u0076", /*33B5; 006E 0076; Additional folding*/ "\u03BC\u0076", /*33B6; 03BC 0076; Additional folding*/ "\u006D\u0076", /*33B7; 006D 0076; Additional folding*/ "\u006B\u0076", /*33B8; 006B 0076; Additional folding*/ "\u006D\u0076", /*33B9; 006D 0076; Additional folding*/ "\u0070\u0077", /*33BA; 0070 0077; Additional folding*/ "\u006E\u0077", /*33BB; 006E 0077; Additional folding*/ "\u03BC\u0077", /*33BC; 03BC 0077; Additional folding*/ "\u006D\u0077", /*33BD; 006D 0077; Additional folding*/ "\u006B\u0077", /*33BE; 006B 0077; Additional folding*/ "\u006D\u0077", /*33BF; 006D 0077; Additional folding*/ "\u006B\u03C9", /*33C0; 006B 03C9; Additional folding*/ "\u006D\u03C9", /*33C1; 006D 03C9; Additional folding*/ "\u0062\u0071", /*33C3; 0062 0071; Additional folding*/ "\u0063\u2215\u006B\u0067", /*33C6; 0063 2215 006B 0067; Additional folding*/ "\u0063\u006F\u002E", /*33C7; 0063 006F 002E; Additional folding*/ "\u0064\u0062", /*33C8; 0064 0062; Additional folding*/ "\u0067\u0079", /*33C9; 0067 0079; Additional folding*/ "\u0068\u0070", /*33CB; 0068 0070; Additional folding*/ "\u006B\u006B", /*33CD; 006B 006B; Additional folding*/ "\u006B\u006D", /*33CE; 006B 006D; Additional folding*/ "\u0070\u0068", /*33D7; 0070 0068; Additional folding*/ "\u0070\u0070\u006D", /*33D9; 0070 0070 006D; Additional folding*/ "\u0070\u0072", /*33DA; 0070 0072; Additional folding*/ "\u0073\u0076", /*33DC; 0073 0076; Additional folding*/ "\u0077\u0062", /*33DD; 0077 0062; Additional folding*/ "\u0066\u0066", /*FB00; 0066 0066; Case map*/ "\u0066\u0069", /*FB01; 0066 0069; Case map*/ "\u0066\u006C", /*FB02; 0066 006C; Case map*/ "\u0066\u0066\u0069", /*FB03; 0066 0066 0069; Case map*/ "\u0066\u0066\u006C", /*FB04; 0066 0066 006C; Case map*/ "\u0073\u0074", /*FB05; 0073 0074; Case map*/ "\u0073\u0074", /*FB06; 0073 0074; Case map*/ "\u0574\u0576", /*FB13; 0574 0576; Case map*/ "\u0574\u0565", /*FB14; 0574 0565; Case map*/ "\u0574\u056B", /*FB15; 0574 056B; Case map*/ "\u057E\u0576", /*FB16; 057E 0576; Case map*/ "\u0574\u056D", /*FB17; 0574 056D; Case map*/ "\uFF41", /*FF21; FF41; Case map*/ "\uFF42", /*FF22; FF42; Case map*/ "\uFF43", /*FF23; FF43; Case map*/ "\uFF44", /*FF24; FF44; Case map*/ "\uFF45", /*FF25; FF45; Case map*/ "\uFF46", /*FF26; FF46; Case map*/ "\uFF47", /*FF27; FF47; Case map*/ "\uFF48", /*FF28; FF48; Case map*/ "\uFF49", /*FF29; FF49; Case map*/ "\uFF4A", /*FF2A; FF4A; Case map*/ "\uFF4B", /*FF2B; FF4B; Case map*/ "\uFF4C", /*FF2C; FF4C; Case map*/ "\uFF4D", /*FF2D; FF4D; Case map*/ "\uFF4E", /*FF2E; FF4E; Case map*/ "\uFF4F", /*FF2F; FF4F; Case map*/ "\uFF50", /*FF30; FF50; Case map*/ "\uFF51", /*FF31; FF51; Case map*/ "\uFF52", /*FF32; FF52; Case map*/ "\uFF53", /*FF33; FF53; Case map*/ "\uFF54", /*FF34; FF54; Case map*/ "\uFF55", /*FF35; FF55; Case map*/ "\uFF56", /*FF36; FF56; Case map*/ "\uFF57", /*FF37; FF57; Case map*/ "\uFF58", /*FF38; FF58; Case map*/ "\uFF59", /*FF39; FF59; Case map*/ "\uFF5A", /*FF3A; FF5A; Case map*/ }; public static char[] B3search = new char[] { '\u0041', /*0041; 0061; Case map*/ '\u0042', /*0042; 0062; Case map*/ '\u0043', /*0043; 0063; Case map*/ '\u0044', /*0044; 0064; Case map*/ '\u0045', /*0045; 0065; Case map*/ '\u0046', /*0046; 0066; Case map*/ '\u0047', /*0047; 0067; Case map*/ '\u0048', /*0048; 0068; Case map*/ '\u0049', /*0049; 0069; Case map*/ '\u004A', /*004A; 006A; Case map*/ '\u004B', /*004B; 006B; Case map*/ '\u004C', /*004C; 006C; Case map*/ '\u004D', /*004D; 006D; Case map*/ '\u004E', /*004E; 006E; Case map*/ '\u004F', /*004F; 006F; Case map*/ '\u0050', /*0050; 0070; Case map*/ '\u0051', /*0051; 0071; Case map*/ '\u0052', /*0052; 0072; Case map*/ '\u0053', /*0053; 0073; Case map*/ '\u0054', /*0054; 0074; Case map*/ '\u0055', /*0055; 0075; Case map*/ '\u0056', /*0056; 0076; Case map*/ '\u0057', /*0057; 0077; Case map*/ '\u0058', /*0058; 0078; Case map*/ '\u0059', /*0059; 0079; Case map*/ '\u005A', /*005A; 007A; Case map*/ '\u00B5', /*00B5; 03BC; Case map*/ '\u00C0', /*00C0; 00E0; Case map*/ '\u00C1', /*00C1; 00E1; Case map*/ '\u00C2', /*00C2; 00E2; Case map*/ '\u00C3', /*00C3; 00E3; Case map*/ '\u00C4', /*00C4; 00E4; Case map*/ '\u00C5', /*00C5; 00E5; Case map*/ '\u00C6', /*00C6; 00E6; Case map*/ '\u00C7', /*00C7; 00E7; Case map*/ '\u00C8', /*00C8; 00E8; Case map*/ '\u00C9', /*00C9; 00E9; Case map*/ '\u00CA', /*00CA; 00EA; Case map*/ '\u00CB', /*00CB; 00EB; Case map*/ '\u00CC', /*00CC; 00EC; Case map*/ '\u00CD', /*00CD; 00ED; Case map*/ '\u00CE', /*00CE; 00EE; Case map*/ '\u00CF', /*00CF; 00EF; Case map*/ '\u00D0', /*00D0; 00F0; Case map*/ '\u00D1', /*00D1; 00F1; Case map*/ '\u00D2', /*00D2; 00F2; Case map*/ '\u00D3', /*00D3; 00F3; Case map*/ '\u00D4', /*00D4; 00F4; Case map*/ '\u00D5', /*00D5; 00F5; Case map*/ '\u00D6', /*00D6; 00F6; Case map*/ '\u00D8', /*00D8; 00F8; Case map*/ '\u00D9', /*00D9; 00F9; Case map*/ '\u00DA', /*00DA; 00FA; Case map*/ '\u00DB', /*00DB; 00FB; Case map*/ '\u00DC', /*00DC; 00FC; Case map*/ '\u00DD', /*00DD; 00FD; Case map*/ '\u00DE', /*00DE; 00FE; Case map*/ '\u00DF', /*00DF; 0073 0073; Case map*/ '\u0100', /*0100; 0101; Case map*/ '\u0102', /*0102; 0103; Case map*/ '\u0104', /*0104; 0105; Case map*/ '\u0106', /*0106; 0107; Case map*/ '\u0108', /*0108; 0109; Case map*/ '\u010A', /*010A; 010B; Case map*/ '\u010C', /*010C; 010D; Case map*/ '\u010E', /*010E; 010F; Case map*/ '\u0110', /*0110; 0111; Case map*/ '\u0112', /*0112; 0113; Case map*/ '\u0114', /*0114; 0115; Case map*/ '\u0116', /*0116; 0117; Case map*/ '\u0118', /*0118; 0119; Case map*/ '\u011A', /*011A; 011B; Case map*/ '\u011C', /*011C; 011D; Case map*/ '\u011E', /*011E; 011F; Case map*/ '\u0120', /*0120; 0121; Case map*/ '\u0122', /*0122; 0123; Case map*/ '\u0124', /*0124; 0125; Case map*/ '\u0126', /*0126; 0127; Case map*/ '\u0128', /*0128; 0129; Case map*/ '\u012A', /*012A; 012B; Case map*/ '\u012C', /*012C; 012D; Case map*/ '\u012E', /*012E; 012F; Case map*/ '\u0130', /*0130; 0069 0307; Case map*/ '\u0132', /*0132; 0133; Case map*/ '\u0134', /*0134; 0135; Case map*/ '\u0136', /*0136; 0137; Case map*/ '\u0139', /*0139; 013A; Case map*/ '\u013B', /*013B; 013C; Case map*/ '\u013D', /*013D; 013E; Case map*/ '\u013F', /*013F; 0140; Case map*/ '\u0141', /*0141; 0142; Case map*/ '\u0143', /*0143; 0144; Case map*/ '\u0145', /*0145; 0146; Case map*/ '\u0147', /*0147; 0148; Case map*/ '\u0149', /*0149; 02BC 006E; Case map*/ '\u014A', /*014A; 014B; Case map*/ '\u014C', /*014C; 014D; Case map*/ '\u014E', /*014E; 014F; Case map*/ '\u0150', /*0150; 0151; Case map*/ '\u0152', /*0152; 0153; Case map*/ '\u0154', /*0154; 0155; Case map*/ '\u0156', /*0156; 0157; Case map*/ '\u0158', /*0158; 0159; Case map*/ '\u015A', /*015A; 015B; Case map*/ '\u015C', /*015C; 015D; Case map*/ '\u015E', /*015E; 015F; Case map*/ '\u0160', /*0160; 0161; Case map*/ '\u0162', /*0162; 0163; Case map*/ '\u0164', /*0164; 0165; Case map*/ '\u0166', /*0166; 0167; Case map*/ '\u0168', /*0168; 0169; Case map*/ '\u016A', /*016A; 016B; Case map*/ '\u016C', /*016C; 016D; Case map*/ '\u016E', /*016E; 016F; Case map*/ '\u0170', /*0170; 0171; Case map*/ '\u0172', /*0172; 0173; Case map*/ '\u0174', /*0174; 0175; Case map*/ '\u0176', /*0176; 0177; Case map*/ '\u0178', /*0178; 00FF; Case map*/ '\u0179', /*0179; 017A; Case map*/ '\u017B', /*017B; 017C; Case map*/ '\u017D', /*017D; 017E; Case map*/ '\u017F', /*017F; 0073; Case map*/ '\u0181', /*0181; 0253; Case map*/ '\u0182', /*0182; 0183; Case map*/ '\u0184', /*0184; 0185; Case map*/ '\u0186', /*0186; 0254; Case map*/ '\u0187', /*0187; 0188; Case map*/ '\u0189', /*0189; 0256; Case map*/ '\u018A', /*018A; 0257; Case map*/ '\u018B', /*018B; 018C; Case map*/ '\u018E', /*018E; 01DD; Case map*/ '\u018F', /*018F; 0259; Case map*/ '\u0190', /*0190; 025B; Case map*/ '\u0191', /*0191; 0192; Case map*/ '\u0193', /*0193; 0260; Case map*/ '\u0194', /*0194; 0263; Case map*/ '\u0196', /*0196; 0269; Case map*/ '\u0197', /*0197; 0268; Case map*/ '\u0198', /*0198; 0199; Case map*/ '\u019C', /*019C; 026F; Case map*/ '\u019D', /*019D; 0272; Case map*/ '\u019F', /*019F; 0275; Case map*/ '\u01A0', /*01A0; 01A1; Case map*/ '\u01A2', /*01A2; 01A3; Case map*/ '\u01A4', /*01A4; 01A5; Case map*/ '\u01A6', /*01A6; 0280; Case map*/ '\u01A7', /*01A7; 01A8; Case map*/ '\u01A9', /*01A9; 0283; Case map*/ '\u01AC', /*01AC; 01AD; Case map*/ '\u01AE', /*01AE; 0288; Case map*/ '\u01AF', /*01AF; 01B0; Case map*/ '\u01B1', /*01B1; 028A; Case map*/ '\u01B2', /*01B2; 028B; Case map*/ '\u01B3', /*01B3; 01B4; Case map*/ '\u01B5', /*01B5; 01B6; Case map*/ '\u01B7', /*01B7; 0292; Case map*/ '\u01B8', /*01B8; 01B9; Case map*/ '\u01BC', /*01BC; 01BD; Case map*/ '\u01C4', /*01C4; 01C6; Case map*/ '\u01C5', /*01C5; 01C6; Case map*/ '\u01C7', /*01C7; 01C9; Case map*/ '\u01C8', /*01C8; 01C9; Case map*/ '\u01CA', /*01CA; 01CC; Case map*/ '\u01CB', /*01CB; 01CC; Case map*/ '\u01CD', /*01CD; 01CE; Case map*/ '\u01CF', /*01CF; 01D0; Case map*/ '\u01D1', /*01D1; 01D2; Case map*/ '\u01D3', /*01D3; 01D4; Case map*/ '\u01D5', /*01D5; 01D6; Case map*/ '\u01D7', /*01D7; 01D8; Case map*/ '\u01D9', /*01D9; 01DA; Case map*/ '\u01DB', /*01DB; 01DC; Case map*/ '\u01DE', /*01DE; 01DF; Case map*/ '\u01E0', /*01E0; 01E1; Case map*/ '\u01E2', /*01E2; 01E3; Case map*/ '\u01E4', /*01E4; 01E5; Case map*/ '\u01E6', /*01E6; 01E7; Case map*/ '\u01E8', /*01E8; 01E9; Case map*/ '\u01EA', /*01EA; 01EB; Case map*/ '\u01EC', /*01EC; 01ED; Case map*/ '\u01EE', /*01EE; 01EF; Case map*/ '\u01F0', /*01F0; 006A 030C; Case map*/ '\u01F1', /*01F1; 01F3; Case map*/ '\u01F2', /*01F2; 01F3; Case map*/ '\u01F4', /*01F4; 01F5; Case map*/ '\u01F6', /*01F6; 0195; Case map*/ '\u01F7', /*01F7; 01BF; Case map*/ '\u01F8', /*01F8; 01F9; Case map*/ '\u01FA', /*01FA; 01FB; Case map*/ '\u01FC', /*01FC; 01FD; Case map*/ '\u01FE', /*01FE; 01FF; Case map*/ '\u0200', /*0200; 0201; Case map*/ '\u0202', /*0202; 0203; Case map*/ '\u0204', /*0204; 0205; Case map*/ '\u0206', /*0206; 0207; Case map*/ '\u0208', /*0208; 0209; Case map*/ '\u020A', /*020A; 020B; Case map*/ '\u020C', /*020C; 020D; Case map*/ '\u020E', /*020E; 020F; Case map*/ '\u0210', /*0210; 0211; Case map*/ '\u0212', /*0212; 0213; Case map*/ '\u0214', /*0214; 0215; Case map*/ '\u0216', /*0216; 0217; Case map*/ '\u0218', /*0218; 0219; Case map*/ '\u021A', /*021A; 021B; Case map*/ '\u021C', /*021C; 021D; Case map*/ '\u021E', /*021E; 021F; Case map*/ '\u0220', /*0220; 019E; Case map*/ '\u0222', /*0222; 0223; Case map*/ '\u0224', /*0224; 0225; Case map*/ '\u0226', /*0226; 0227; Case map*/ '\u0228', /*0228; 0229; Case map*/ '\u022A', /*022A; 022B; Case map*/ '\u022C', /*022C; 022D; Case map*/ '\u022E', /*022E; 022F; Case map*/ '\u0230', /*0230; 0231; Case map*/ '\u0232', /*0232; 0233; Case map*/ '\u0345', /*0345; 03B9; Case map*/ '\u0386', /*0386; 03AC; Case map*/ '\u0388', /*0388; 03AD; Case map*/ '\u0389', /*0389; 03AE; Case map*/ '\u038A', /*038A; 03AF; Case map*/ '\u038C', /*038C; 03CC; Case map*/ '\u038E', /*038E; 03CD; Case map*/ '\u038F', /*038F; 03CE; Case map*/ '\u0390', /*0390; 03B9 0308 0301; Case map*/ '\u0391', /*0391; 03B1; Case map*/ '\u0392', /*0392; 03B2; Case map*/ '\u0393', /*0393; 03B3; Case map*/ '\u0394', /*0394; 03B4; Case map*/ '\u0395', /*0395; 03B5; Case map*/ '\u0396', /*0396; 03B6; Case map*/ '\u0397', /*0397; 03B7; Case map*/ '\u0398', /*0398; 03B8; Case map*/ '\u0399', /*0399; 03B9; Case map*/ '\u039A', /*039A; 03BA; Case map*/ '\u039B', /*039B; 03BB; Case map*/ '\u039C', /*039C; 03BC; Case map*/ '\u039D', /*039D; 03BD; Case map*/ '\u039E', /*039E; 03BE; Case map*/ '\u039F', /*039F; 03BF; Case map*/ '\u03A0', /*03A0; 03C0; Case map*/ '\u03A1', /*03A1; 03C1; Case map*/ '\u03A3', /*03A3; 03C3; Case map*/ '\u03A4', /*03A4; 03C4; Case map*/ '\u03A5', /*03A5; 03C5; Case map*/ '\u03A6', /*03A6; 03C6; Case map*/ '\u03A7', /*03A7; 03C7; Case map*/ '\u03A8', /*03A8; 03C8; Case map*/ '\u03A9', /*03A9; 03C9; Case map*/ '\u03AA', /*03AA; 03CA; Case map*/ '\u03AB', /*03AB; 03CB; Case map*/ '\u03B0', /*03B0; 03C5 0308 0301; Case map*/ '\u03C2', /*03C2; 03C3; Case map*/ '\u03D0', /*03D0; 03B2; Case map*/ '\u03D1', /*03D1; 03B8; Case map*/ '\u03D5', /*03D5; 03C6; Case map*/ '\u03D6', /*03D6; 03C0; Case map*/ '\u03D8', /*03D8; 03D9; Case map*/ '\u03DA', /*03DA; 03DB; Case map*/ '\u03DC', /*03DC; 03DD; Case map*/ '\u03DE', /*03DE; 03DF; Case map*/ '\u03E0', /*03E0; 03E1; Case map*/ '\u03E2', /*03E2; 03E3; Case map*/ '\u03E4', /*03E4; 03E5; Case map*/ '\u03E6', /*03E6; 03E7; Case map*/ '\u03E8', /*03E8; 03E9; Case map*/ '\u03EA', /*03EA; 03EB; Case map*/ '\u03EC', /*03EC; 03ED; Case map*/ '\u03EE', /*03EE; 03EF; Case map*/ '\u03F0', /*03F0; 03BA; Case map*/ '\u03F1', /*03F1; 03C1; Case map*/ '\u03F2', /*03F2; 03C3; Case map*/ '\u03F4', /*03F4; 03B8; Case map*/ '\u03F5', /*03F5; 03B5; Case map*/ '\u0400', /*0400; 0450; Case map*/ '\u0401', /*0401; 0451; Case map*/ '\u0402', /*0402; 0452; Case map*/ '\u0403', /*0403; 0453; Case map*/ '\u0404', /*0404; 0454; Case map*/ '\u0405', /*0405; 0455; Case map*/ '\u0406', /*0406; 0456; Case map*/ '\u0407', /*0407; 0457; Case map*/ '\u0408', /*0408; 0458; Case map*/ '\u0409', /*0409; 0459; Case map*/ '\u040A', /*040A; 045A; Case map*/ '\u040B', /*040B; 045B; Case map*/ '\u040C', /*040C; 045C; Case map*/ '\u040D', /*040D; 045D; Case map*/ '\u040E', /*040E; 045E; Case map*/ '\u040F', /*040F; 045F; Case map*/ '\u0410', /*0410; 0430; Case map*/ '\u0411', /*0411; 0431; Case map*/ '\u0412', /*0412; 0432; Case map*/ '\u0413', /*0413; 0433; Case map*/ '\u0414', /*0414; 0434; Case map*/ '\u0415', /*0415; 0435; Case map*/ '\u0416', /*0416; 0436; Case map*/ '\u0417', /*0417; 0437; Case map*/ '\u0418', /*0418; 0438; Case map*/ '\u0419', /*0419; 0439; Case map*/ '\u041A', /*041A; 043A; Case map*/ '\u041B', /*041B; 043B; Case map*/ '\u041C', /*041C; 043C; Case map*/ '\u041D', /*041D; 043D; Case map*/ '\u041E', /*041E; 043E; Case map*/ '\u041F', /*041F; 043F; Case map*/ '\u0420', /*0420; 0440; Case map*/ '\u0421', /*0421; 0441; Case map*/ '\u0422', /*0422; 0442; Case map*/ '\u0423', /*0423; 0443; Case map*/ '\u0424', /*0424; 0444; Case map*/ '\u0425', /*0425; 0445; Case map*/ '\u0426', /*0426; 0446; Case map*/ '\u0427', /*0427; 0447; Case map*/ '\u0428', /*0428; 0448; Case map*/ '\u0429', /*0429; 0449; Case map*/ '\u042A', /*042A; 044A; Case map*/ '\u042B', /*042B; 044B; Case map*/ '\u042C', /*042C; 044C; Case map*/ '\u042D', /*042D; 044D; Case map*/ '\u042E', /*042E; 044E; Case map*/ '\u042F', /*042F; 044F; Case map*/ '\u0460', /*0460; 0461; Case map*/ '\u0462', /*0462; 0463; Case map*/ '\u0464', /*0464; 0465; Case map*/ '\u0466', /*0466; 0467; Case map*/ '\u0468', /*0468; 0469; Case map*/ '\u046A', /*046A; 046B; Case map*/ '\u046C', /*046C; 046D; Case map*/ '\u046E', /*046E; 046F; Case map*/ '\u0470', /*0470; 0471; Case map*/ '\u0472', /*0472; 0473; Case map*/ '\u0474', /*0474; 0475; Case map*/ '\u0476', /*0476; 0477; Case map*/ '\u0478', /*0478; 0479; Case map*/ '\u047A', /*047A; 047B; Case map*/ '\u047C', /*047C; 047D; Case map*/ '\u047E', /*047E; 047F; Case map*/ '\u0480', /*0480; 0481; Case map*/ '\u048A', /*048A; 048B; Case map*/ '\u048C', /*048C; 048D; Case map*/ '\u048E', /*048E; 048F; Case map*/ '\u0490', /*0490; 0491; Case map*/ '\u0492', /*0492; 0493; Case map*/ '\u0494', /*0494; 0495; Case map*/ '\u0496', /*0496; 0497; Case map*/ '\u0498', /*0498; 0499; Case map*/ '\u049A', /*049A; 049B; Case map*/ '\u049C', /*049C; 049D; Case map*/ '\u049E', /*049E; 049F; Case map*/ '\u04A0', /*04A0; 04A1; Case map*/ '\u04A2', /*04A2; 04A3; Case map*/ '\u04A4', /*04A4; 04A5; Case map*/ '\u04A6', /*04A6; 04A7; Case map*/ '\u04A8', /*04A8; 04A9; Case map*/ '\u04AA', /*04AA; 04AB; Case map*/ '\u04AC', /*04AC; 04AD; Case map*/ '\u04AE', /*04AE; 04AF; Case map*/ '\u04B0', /*04B0; 04B1; Case map*/ '\u04B2', /*04B2; 04B3; Case map*/ '\u04B4', /*04B4; 04B5; Case map*/ '\u04B6', /*04B6; 04B7; Case map*/ '\u04B8', /*04B8; 04B9; Case map*/ '\u04BA', /*04BA; 04BB; Case map*/ '\u04BC', /*04BC; 04BD; Case map*/ '\u04BE', /*04BE; 04BF; Case map*/ '\u04C1', /*04C1; 04C2; Case map*/ '\u04C3', /*04C3; 04C4; Case map*/ '\u04C5', /*04C5; 04C6; Case map*/ '\u04C7', /*04C7; 04C8; Case map*/ '\u04C9', /*04C9; 04CA; Case map*/ '\u04CB', /*04CB; 04CC; Case map*/ '\u04CD', /*04CD; 04CE; Case map*/ '\u04D0', /*04D0; 04D1; Case map*/ '\u04D2', /*04D2; 04D3; Case map*/ '\u04D4', /*04D4; 04D5; Case map*/ '\u04D6', /*04D6; 04D7; Case map*/ '\u04D8', /*04D8; 04D9; Case map*/ '\u04DA', /*04DA; 04DB; Case map*/ '\u04DC', /*04DC; 04DD; Case map*/ '\u04DE', /*04DE; 04DF; Case map*/ '\u04E0', /*04E0; 04E1; Case map*/ '\u04E2', /*04E2; 04E3; Case map*/ '\u04E4', /*04E4; 04E5; Case map*/ '\u04E6', /*04E6; 04E7; Case map*/ '\u04E8', /*04E8; 04E9; Case map*/ '\u04EA', /*04EA; 04EB; Case map*/ '\u04EC', /*04EC; 04ED; Case map*/ '\u04EE', /*04EE; 04EF; Case map*/ '\u04F0', /*04F0; 04F1; Case map*/ '\u04F2', /*04F2; 04F3; Case map*/ '\u04F4', /*04F4; 04F5; Case map*/ '\u04F8', /*04F8; 04F9; Case map*/ '\u0500', /*0500; 0501; Case map*/ '\u0502', /*0502; 0503; Case map*/ '\u0504', /*0504; 0505; Case map*/ '\u0506', /*0506; 0507; Case map*/ '\u0508', /*0508; 0509; Case map*/ '\u050A', /*050A; 050B; Case map*/ '\u050C', /*050C; 050D; Case map*/ '\u050E', /*050E; 050F; Case map*/ '\u0531', /*0531; 0561; Case map*/ '\u0532', /*0532; 0562; Case map*/ '\u0533', /*0533; 0563; Case map*/ '\u0534', /*0534; 0564; Case map*/ '\u0535', /*0535; 0565; Case map*/ '\u0536', /*0536; 0566; Case map*/ '\u0537', /*0537; 0567; Case map*/ '\u0538', /*0538; 0568; Case map*/ '\u0539', /*0539; 0569; Case map*/ '\u053A', /*053A; 056A; Case map*/ '\u053B', /*053B; 056B; Case map*/ '\u053C', /*053C; 056C; Case map*/ '\u053D', /*053D; 056D; Case map*/ '\u053E', /*053E; 056E; Case map*/ '\u053F', /*053F; 056F; Case map*/ '\u0540', /*0540; 0570; Case map*/ '\u0541', /*0541; 0571; Case map*/ '\u0542', /*0542; 0572; Case map*/ '\u0543', /*0543; 0573; Case map*/ '\u0544', /*0544; 0574; Case map*/ '\u0545', /*0545; 0575; Case map*/ '\u0546', /*0546; 0576; Case map*/ '\u0547', /*0547; 0577; Case map*/ '\u0548', /*0548; 0578; Case map*/ '\u0549', /*0549; 0579; Case map*/ '\u054A', /*054A; 057A; Case map*/ '\u054B', /*054B; 057B; Case map*/ '\u054C', /*054C; 057C; Case map*/ '\u054D', /*054D; 057D; Case map*/ '\u054E', /*054E; 057E; Case map*/ '\u054F', /*054F; 057F; Case map*/ '\u0550', /*0550; 0580; Case map*/ '\u0551', /*0551; 0581; Case map*/ '\u0552', /*0552; 0582; Case map*/ '\u0553', /*0553; 0583; Case map*/ '\u0554', /*0554; 0584; Case map*/ '\u0555', /*0555; 0585; Case map*/ '\u0556', /*0556; 0586; Case map*/ '\u0587', /*0587; 0565 0582; Case map*/ '\u1E00', /*1E00; 1E01; Case map*/ '\u1E02', /*1E02; 1E03; Case map*/ '\u1E04', /*1E04; 1E05; Case map*/ '\u1E06', /*1E06; 1E07; Case map*/ '\u1E08', /*1E08; 1E09; Case map*/ '\u1E0A', /*1E0A; 1E0B; Case map*/ '\u1E0C', /*1E0C; 1E0D; Case map*/ '\u1E0E', /*1E0E; 1E0F; Case map*/ '\u1E10', /*1E10; 1E11; Case map*/ '\u1E12', /*1E12; 1E13; Case map*/ '\u1E14', /*1E14; 1E15; Case map*/ '\u1E16', /*1E16; 1E17; Case map*/ '\u1E18', /*1E18; 1E19; Case map*/ '\u1E1A', /*1E1A; 1E1B; Case map*/ '\u1E1C', /*1E1C; 1E1D; Case map*/ '\u1E1E', /*1E1E; 1E1F; Case map*/ '\u1E20', /*1E20; 1E21; Case map*/ '\u1E22', /*1E22; 1E23; Case map*/ '\u1E24', /*1E24; 1E25; Case map*/ '\u1E26', /*1E26; 1E27; Case map*/ '\u1E28', /*1E28; 1E29; Case map*/ '\u1E2A', /*1E2A; 1E2B; Case map*/ '\u1E2C', /*1E2C; 1E2D; Case map*/ '\u1E2E', /*1E2E; 1E2F; Case map*/ '\u1E30', /*1E30; 1E31; Case map*/ '\u1E32', /*1E32; 1E33; Case map*/ '\u1E34', /*1E34; 1E35; Case map*/ '\u1E36', /*1E36; 1E37; Case map*/ '\u1E38', /*1E38; 1E39; Case map*/ '\u1E3A', /*1E3A; 1E3B; Case map*/ '\u1E3C', /*1E3C; 1E3D; Case map*/ '\u1E3E', /*1E3E; 1E3F; Case map*/ '\u1E40', /*1E40; 1E41; Case map*/ '\u1E42', /*1E42; 1E43; Case map*/ '\u1E44', /*1E44; 1E45; Case map*/ '\u1E46', /*1E46; 1E47; Case map*/ '\u1E48', /*1E48; 1E49; Case map*/ '\u1E4A', /*1E4A; 1E4B; Case map*/ '\u1E4C', /*1E4C; 1E4D; Case map*/ '\u1E4E', /*1E4E; 1E4F; Case map*/ '\u1E50', /*1E50; 1E51; Case map*/ '\u1E52', /*1E52; 1E53; Case map*/ '\u1E54', /*1E54; 1E55; Case map*/ '\u1E56', /*1E56; 1E57; Case map*/ '\u1E58', /*1E58; 1E59; Case map*/ '\u1E5A', /*1E5A; 1E5B; Case map*/ '\u1E5C', /*1E5C; 1E5D; Case map*/ '\u1E5E', /*1E5E; 1E5F; Case map*/ '\u1E60', /*1E60; 1E61; Case map*/ '\u1E62', /*1E62; 1E63; Case map*/ '\u1E64', /*1E64; 1E65; Case map*/ '\u1E66', /*1E66; 1E67; Case map*/ '\u1E68', /*1E68; 1E69; Case map*/ '\u1E6A', /*1E6A; 1E6B; Case map*/ '\u1E6C', /*1E6C; 1E6D; Case map*/ '\u1E6E', /*1E6E; 1E6F; Case map*/ '\u1E70', /*1E70; 1E71; Case map*/ '\u1E72', /*1E72; 1E73; Case map*/ '\u1E74', /*1E74; 1E75; Case map*/ '\u1E76', /*1E76; 1E77; Case map*/ '\u1E78', /*1E78; 1E79; Case map*/ '\u1E7A', /*1E7A; 1E7B; Case map*/ '\u1E7C', /*1E7C; 1E7D; Case map*/ '\u1E7E', /*1E7E; 1E7F; Case map*/ '\u1E80', /*1E80; 1E81; Case map*/ '\u1E82', /*1E82; 1E83; Case map*/ '\u1E84', /*1E84; 1E85; Case map*/ '\u1E86', /*1E86; 1E87; Case map*/ '\u1E88', /*1E88; 1E89; Case map*/ '\u1E8A', /*1E8A; 1E8B; Case map*/ '\u1E8C', /*1E8C; 1E8D; Case map*/ '\u1E8E', /*1E8E; 1E8F; Case map*/ '\u1E90', /*1E90; 1E91; Case map*/ '\u1E92', /*1E92; 1E93; Case map*/ '\u1E94', /*1E94; 1E95; Case map*/ '\u1E96', /*1E96; 0068 0331; Case map*/ '\u1E97', /*1E97; 0074 0308; Case map*/ '\u1E98', /*1E98; 0077 030A; Case map*/ '\u1E99', /*1E99; 0079 030A; Case map*/ '\u1E9A', /*1E9A; 0061 02BE; Case map*/ '\u1E9B', /*1E9B; 1E61; Case map*/ '\u1EA0', /*1EA0; 1EA1; Case map*/ '\u1EA2', /*1EA2; 1EA3; Case map*/ '\u1EA4', /*1EA4; 1EA5; Case map*/ '\u1EA6', /*1EA6; 1EA7; Case map*/ '\u1EA8', /*1EA8; 1EA9; Case map*/ '\u1EAA', /*1EAA; 1EAB; Case map*/ '\u1EAC', /*1EAC; 1EAD; Case map*/ '\u1EAE', /*1EAE; 1EAF; Case map*/ '\u1EB0', /*1EB0; 1EB1; Case map*/ '\u1EB2', /*1EB2; 1EB3; Case map*/ '\u1EB4', /*1EB4; 1EB5; Case map*/ '\u1EB6', /*1EB6; 1EB7; Case map*/ '\u1EB8', /*1EB8; 1EB9; Case map*/ '\u1EBA', /*1EBA; 1EBB; Case map*/ '\u1EBC', /*1EBC; 1EBD; Case map*/ '\u1EBE', /*1EBE; 1EBF; Case map*/ '\u1EC0', /*1EC0; 1EC1; Case map*/ '\u1EC2', /*1EC2; 1EC3; Case map*/ '\u1EC4', /*1EC4; 1EC5; Case map*/ '\u1EC6', /*1EC6; 1EC7; Case map*/ '\u1EC8', /*1EC8; 1EC9; Case map*/ '\u1ECA', /*1ECA; 1ECB; Case map*/ '\u1ECC', /*1ECC; 1ECD; Case map*/ '\u1ECE', /*1ECE; 1ECF; Case map*/ '\u1ED0', /*1ED0; 1ED1; Case map*/ '\u1ED2', /*1ED2; 1ED3; Case map*/ '\u1ED4', /*1ED4; 1ED5; Case map*/ '\u1ED6', /*1ED6; 1ED7; Case map*/ '\u1ED8', /*1ED8; 1ED9; Case map*/ '\u1EDA', /*1EDA; 1EDB; Case map*/ '\u1EDC', /*1EDC; 1EDD; Case map*/ '\u1EDE', /*1EDE; 1EDF; Case map*/ '\u1EE0', /*1EE0; 1EE1; Case map*/ '\u1EE2', /*1EE2; 1EE3; Case map*/ '\u1EE4', /*1EE4; 1EE5; Case map*/ '\u1EE6', /*1EE6; 1EE7; Case map*/ '\u1EE8', /*1EE8; 1EE9; Case map*/ '\u1EEA', /*1EEA; 1EEB; Case map*/ '\u1EEC', /*1EEC; 1EED; Case map*/ '\u1EEE', /*1EEE; 1EEF; Case map*/ '\u1EF0', /*1EF0; 1EF1; Case map*/ '\u1EF2', /*1EF2; 1EF3; Case map*/ '\u1EF4', /*1EF4; 1EF5; Case map*/ '\u1EF6', /*1EF6; 1EF7; Case map*/ '\u1EF8', /*1EF8; 1EF9; Case map*/ '\u1F08', /*1F08; 1F00; Case map*/ '\u1F09', /*1F09; 1F01; Case map*/ '\u1F0A', /*1F0A; 1F02; Case map*/ '\u1F0B', /*1F0B; 1F03; Case map*/ '\u1F0C', /*1F0C; 1F04; Case map*/ '\u1F0D', /*1F0D; 1F05; Case map*/ '\u1F0E', /*1F0E; 1F06; Case map*/ '\u1F0F', /*1F0F; 1F07; Case map*/ '\u1F18', /*1F18; 1F10; Case map*/ '\u1F19', /*1F19; 1F11; Case map*/ '\u1F1A', /*1F1A; 1F12; Case map*/ '\u1F1B', /*1F1B; 1F13; Case map*/ '\u1F1C', /*1F1C; 1F14; Case map*/ '\u1F1D', /*1F1D; 1F15; Case map*/ '\u1F28', /*1F28; 1F20; Case map*/ '\u1F29', /*1F29; 1F21; Case map*/ '\u1F2A', /*1F2A; 1F22; Case map*/ '\u1F2B', /*1F2B; 1F23; Case map*/ '\u1F2C', /*1F2C; 1F24; Case map*/ '\u1F2D', /*1F2D; 1F25; Case map*/ '\u1F2E', /*1F2E; 1F26; Case map*/ '\u1F2F', /*1F2F; 1F27; Case map*/ '\u1F38', /*1F38; 1F30; Case map*/ '\u1F39', /*1F39; 1F31; Case map*/ '\u1F3A', /*1F3A; 1F32; Case map*/ '\u1F3B', /*1F3B; 1F33; Case map*/ '\u1F3C', /*1F3C; 1F34; Case map*/ '\u1F3D', /*1F3D; 1F35; Case map*/ '\u1F3E', /*1F3E; 1F36; Case map*/ '\u1F3F', /*1F3F; 1F37; Case map*/ '\u1F48', /*1F48; 1F40; Case map*/ '\u1F49', /*1F49; 1F41; Case map*/ '\u1F4A', /*1F4A; 1F42; Case map*/ '\u1F4B', /*1F4B; 1F43; Case map*/ '\u1F4C', /*1F4C; 1F44; Case map*/ '\u1F4D', /*1F4D; 1F45; Case map*/ '\u1F50', /*1F50; 03C5 0313; Case map*/ '\u1F52', /*1F52; 03C5 0313 0300; Case map*/ '\u1F54', /*1F54; 03C5 0313 0301; Case map*/ '\u1F56', /*1F56; 03C5 0313 0342; Case map*/ '\u1F59', /*1F59; 1F51; Case map*/ '\u1F5B', /*1F5B; 1F53; Case map*/ '\u1F5D', /*1F5D; 1F55; Case map*/ '\u1F5F', /*1F5F; 1F57; Case map*/ '\u1F68', /*1F68; 1F60; Case map*/ '\u1F69', /*1F69; 1F61; Case map*/ '\u1F6A', /*1F6A; 1F62; Case map*/ '\u1F6B', /*1F6B; 1F63; Case map*/ '\u1F6C', /*1F6C; 1F64; Case map*/ '\u1F6D', /*1F6D; 1F65; Case map*/ '\u1F6E', /*1F6E; 1F66; Case map*/ '\u1F6F', /*1F6F; 1F67; Case map*/ '\u1F80', /*1F80; 1F00 03B9; Case map*/ '\u1F81', /*1F81; 1F01 03B9; Case map*/ '\u1F82', /*1F82; 1F02 03B9; Case map*/ '\u1F83', /*1F83; 1F03 03B9; Case map*/ '\u1F84', /*1F84; 1F04 03B9; Case map*/ '\u1F85', /*1F85; 1F05 03B9; Case map*/ '\u1F86', /*1F86; 1F06 03B9; Case map*/ '\u1F87', /*1F87; 1F07 03B9; Case map*/ '\u1F88', /*1F88; 1F00 03B9; Case map*/ '\u1F89', /*1F89; 1F01 03B9; Case map*/ '\u1F8A', /*1F8A; 1F02 03B9; Case map*/ '\u1F8B', /*1F8B; 1F03 03B9; Case map*/ '\u1F8C', /*1F8C; 1F04 03B9; Case map*/ '\u1F8D', /*1F8D; 1F05 03B9; Case map*/ '\u1F8E', /*1F8E; 1F06 03B9; Case map*/ '\u1F8F', /*1F8F; 1F07 03B9; Case map*/ '\u1F90', /*1F90; 1F20 03B9; Case map*/ '\u1F91', /*1F91; 1F21 03B9; Case map*/ '\u1F92', /*1F92; 1F22 03B9; Case map*/ '\u1F93', /*1F93; 1F23 03B9; Case map*/ '\u1F94', /*1F94; 1F24 03B9; Case map*/ '\u1F95', /*1F95; 1F25 03B9; Case map*/ '\u1F96', /*1F96; 1F26 03B9; Case map*/ '\u1F97', /*1F97; 1F27 03B9; Case map*/ '\u1F98', /*1F98; 1F20 03B9; Case map*/ '\u1F99', /*1F99; 1F21 03B9; Case map*/ '\u1F9A', /*1F9A; 1F22 03B9; Case map*/ '\u1F9B', /*1F9B; 1F23 03B9; Case map*/ '\u1F9C', /*1F9C; 1F24 03B9; Case map*/ '\u1F9D', /*1F9D; 1F25 03B9; Case map*/ '\u1F9E', /*1F9E; 1F26 03B9; Case map*/ '\u1F9F', /*1F9F; 1F27 03B9; Case map*/ '\u1FA0', /*1FA0; 1F60 03B9; Case map*/ '\u1FA1', /*1FA1; 1F61 03B9; Case map*/ '\u1FA2', /*1FA2; 1F62 03B9; Case map*/ '\u1FA3', /*1FA3; 1F63 03B9; Case map*/ '\u1FA4', /*1FA4; 1F64 03B9; Case map*/ '\u1FA5', /*1FA5; 1F65 03B9; Case map*/ '\u1FA6', /*1FA6; 1F66 03B9; Case map*/ '\u1FA7', /*1FA7; 1F67 03B9; Case map*/ '\u1FA8', /*1FA8; 1F60 03B9; Case map*/ '\u1FA9', /*1FA9; 1F61 03B9; Case map*/ '\u1FAA', /*1FAA; 1F62 03B9; Case map*/ '\u1FAB', /*1FAB; 1F63 03B9; Case map*/ '\u1FAC', /*1FAC; 1F64 03B9; Case map*/ '\u1FAD', /*1FAD; 1F65 03B9; Case map*/ '\u1FAE', /*1FAE; 1F66 03B9; Case map*/ '\u1FAF', /*1FAF; 1F67 03B9; Case map*/ '\u1FB2', /*1FB2; 1F70 03B9; Case map*/ '\u1FB3', /*1FB3; 03B1 03B9; Case map*/ '\u1FB4', /*1FB4; 03AC 03B9; Case map*/ '\u1FB6', /*1FB6; 03B1 0342; Case map*/ '\u1FB7', /*1FB7; 03B1 0342 03B9; Case map*/ '\u1FB8', /*1FB8; 1FB0; Case map*/ '\u1FB9', /*1FB9; 1FB1; Case map*/ '\u1FBA', /*1FBA; 1F70; Case map*/ '\u1FBB', /*1FBB; 1F71; Case map*/ '\u1FBC', /*1FBC; 03B1 03B9; Case map*/ '\u1FBE', /*1FBE; 03B9; Case map*/ '\u1FC2', /*1FC2; 1F74 03B9; Case map*/ '\u1FC3', /*1FC3; 03B7 03B9; Case map*/ '\u1FC4', /*1FC4; 03AE 03B9; Case map*/ '\u1FC6', /*1FC6; 03B7 0342; Case map*/ '\u1FC7', /*1FC7; 03B7 0342 03B9; Case map*/ '\u1FC8', /*1FC8; 1F72; Case map*/ '\u1FC9', /*1FC9; 1F73; Case map*/ '\u1FCA', /*1FCA; 1F74; Case map*/ '\u1FCB', /*1FCB; 1F75; Case map*/ '\u1FCC', /*1FCC; 03B7 03B9; Case map*/ '\u1FD2', /*1FD2; 03B9 0308 0300; Case map*/ '\u1FD3', /*1FD3; 03B9 0308 0301; Case map*/ '\u1FD6', /*1FD6; 03B9 0342; Case map*/ '\u1FD7', /*1FD7; 03B9 0308 0342; Case map*/ '\u1FD8', /*1FD8; 1FD0; Case map*/ '\u1FD9', /*1FD9; 1FD1; Case map*/ '\u1FDA', /*1FDA; 1F76; Case map*/ '\u1FDB', /*1FDB; 1F77; Case map*/ '\u1FE2', /*1FE2; 03C5 0308 0300; Case map*/ '\u1FE3', /*1FE3; 03C5 0308 0301; Case map*/ '\u1FE4', /*1FE4; 03C1 0313; Case map*/ '\u1FE6', /*1FE6; 03C5 0342; Case map*/ '\u1FE7', /*1FE7; 03C5 0308 0342; Case map*/ '\u1FE8', /*1FE8; 1FE0; Case map*/ '\u1FE9', /*1FE9; 1FE1; Case map*/ '\u1FEA', /*1FEA; 1F7A; Case map*/ '\u1FEB', /*1FEB; 1F7B; Case map*/ '\u1FEC', /*1FEC; 1FE5; Case map*/ '\u1FF2', /*1FF2; 1F7C 03B9; Case map*/ '\u1FF3', /*1FF3; 03C9 03B9; Case map*/ '\u1FF4', /*1FF4; 03CE 03B9; Case map*/ '\u1FF6', /*1FF6; 03C9 0342; Case map*/ '\u1FF7', /*1FF7; 03C9 0342 03B9; Case map*/ '\u1FF8', /*1FF8; 1F78; Case map*/ '\u1FF9', /*1FF9; 1F79; Case map*/ '\u1FFA', /*1FFA; 1F7C; Case map*/ '\u1FFB', /*1FFB; 1F7D; Case map*/ '\u1FFC', /*1FFC; 03C9 03B9; Case map*/ '\u2126', /*2126; 03C9; Case map*/ '\u212A', /*212A; 006B; Case map*/ '\u212B', /*212B; 00E5; Case map*/ '\u2160', /*2160; 2170; Case map*/ '\u2161', /*2161; 2171; Case map*/ '\u2162', /*2162; 2172; Case map*/ '\u2163', /*2163; 2173; Case map*/ '\u2164', /*2164; 2174; Case map*/ '\u2165', /*2165; 2175; Case map*/ '\u2166', /*2166; 2176; Case map*/ '\u2167', /*2167; 2177; Case map*/ '\u2168', /*2168; 2178; Case map*/ '\u2169', /*2169; 2179; Case map*/ '\u216A', /*216A; 217A; Case map*/ '\u216B', /*216B; 217B; Case map*/ '\u216C', /*216C; 217C; Case map*/ '\u216D', /*216D; 217D; Case map*/ '\u216E', /*216E; 217E; Case map*/ '\u216F', /*216F; 217F; Case map*/ '\u24B6', /*24B6; 24D0; Case map*/ '\u24B7', /*24B7; 24D1; Case map*/ '\u24B8', /*24B8; 24D2; Case map*/ '\u24B9', /*24B9; 24D3; Case map*/ '\u24BA', /*24BA; 24D4; Case map*/ '\u24BB', /*24BB; 24D5; Case map*/ '\u24BC', /*24BC; 24D6; Case map*/ '\u24BD', /*24BD; 24D7; Case map*/ '\u24BE', /*24BE; 24D8; Case map*/ '\u24BF', /*24BF; 24D9; Case map*/ '\u24C0', /*24C0; 24DA; Case map*/ '\u24C1', /*24C1; 24DB; Case map*/ '\u24C2', /*24C2; 24DC; Case map*/ '\u24C3', /*24C3; 24DD; Case map*/ '\u24C4', /*24C4; 24DE; Case map*/ '\u24C5', /*24C5; 24DF; Case map*/ '\u24C6', /*24C6; 24E0; Case map*/ '\u24C7', /*24C7; 24E1; Case map*/ '\u24C8', /*24C8; 24E2; Case map*/ '\u24C9', /*24C9; 24E3; Case map*/ '\u24CA', /*24CA; 24E4; Case map*/ '\u24CB', /*24CB; 24E5; Case map*/ '\u24CC', /*24CC; 24E6; Case map*/ '\u24CD', /*24CD; 24E7; Case map*/ '\u24CE', /*24CE; 24E8; Case map*/ '\u24CF', /*24CF; 24E9; Case map*/ '\uFB00', /*FB00; 0066 0066; Case map*/ '\uFB01', /*FB01; 0066 0069; Case map*/ '\uFB02', /*FB02; 0066 006C; Case map*/ '\uFB03', /*FB03; 0066 0066 0069; Case map*/ '\uFB04', /*FB04; 0066 0066 006C; Case map*/ '\uFB05', /*FB05; 0073 0074; Case map*/ '\uFB06', /*FB06; 0073 0074; Case map*/ '\uFB13', /*FB13; 0574 0576; Case map*/ '\uFB14', /*FB14; 0574 0565; Case map*/ '\uFB15', /*FB15; 0574 056B; Case map*/ '\uFB16', /*FB16; 057E 0576; Case map*/ '\uFB17', /*FB17; 0574 056D; Case map*/ '\uFF21', /*FF21; FF41; Case map*/ '\uFF22', /*FF22; FF42; Case map*/ '\uFF23', /*FF23; FF43; Case map*/ '\uFF24', /*FF24; FF44; Case map*/ '\uFF25', /*FF25; FF45; Case map*/ '\uFF26', /*FF26; FF46; Case map*/ '\uFF27', /*FF27; FF47; Case map*/ '\uFF28', /*FF28; FF48; Case map*/ '\uFF29', /*FF29; FF49; Case map*/ '\uFF2A', /*FF2A; FF4A; Case map*/ '\uFF2B', /*FF2B; FF4B; Case map*/ '\uFF2C', /*FF2C; FF4C; Case map*/ '\uFF2D', /*FF2D; FF4D; Case map*/ '\uFF2E', /*FF2E; FF4E; Case map*/ '\uFF2F', /*FF2F; FF4F; Case map*/ '\uFF30', /*FF30; FF50; Case map*/ '\uFF31', /*FF31; FF51; Case map*/ '\uFF32', /*FF32; FF52; Case map*/ '\uFF33', /*FF33; FF53; Case map*/ '\uFF34', /*FF34; FF54; Case map*/ '\uFF35', /*FF35; FF55; Case map*/ '\uFF36', /*FF36; FF56; Case map*/ '\uFF37', /*FF37; FF57; Case map*/ '\uFF38', /*FF38; FF58; Case map*/ '\uFF39', /*FF39; FF59; Case map*/ '\uFF3A', /*FF3A; FF5A; Case map*/ }; public static string[] B3replace = new string[] { "\u0061", /*0041; 0061; Case map*/ "\u0062", /*0042; 0062; Case map*/ "\u0063", /*0043; 0063; Case map*/ "\u0064", /*0044; 0064; Case map*/ "\u0065", /*0045; 0065; Case map*/ "\u0066", /*0046; 0066; Case map*/ "\u0067", /*0047; 0067; Case map*/ "\u0068", /*0048; 0068; Case map*/ "\u0069", /*0049; 0069; Case map*/ "\u006A", /*004A; 006A; Case map*/ "\u006B", /*004B; 006B; Case map*/ "\u006C", /*004C; 006C; Case map*/ "\u006D", /*004D; 006D; Case map*/ "\u006E", /*004E; 006E; Case map*/ "\u006F", /*004F; 006F; Case map*/ "\u0070", /*0050; 0070; Case map*/ "\u0071", /*0051; 0071; Case map*/ "\u0072", /*0052; 0072; Case map*/ "\u0073", /*0053; 0073; Case map*/ "\u0074", /*0054; 0074; Case map*/ "\u0075", /*0055; 0075; Case map*/ "\u0076", /*0056; 0076; Case map*/ "\u0077", /*0057; 0077; Case map*/ "\u0078", /*0058; 0078; Case map*/ "\u0079", /*0059; 0079; Case map*/ "\u007A", /*005A; 007A; Case map*/ "\u03BC", /*00B5; 03BC; Case map*/ "\u00E0", /*00C0; 00E0; Case map*/ "\u00E1", /*00C1; 00E1; Case map*/ "\u00E2", /*00C2; 00E2; Case map*/ "\u00E3", /*00C3; 00E3; Case map*/ "\u00E4", /*00C4; 00E4; Case map*/ "\u00E5", /*00C5; 00E5; Case map*/ "\u00E6", /*00C6; 00E6; Case map*/ "\u00E7", /*00C7; 00E7; Case map*/ "\u00E8", /*00C8; 00E8; Case map*/ "\u00E9", /*00C9; 00E9; Case map*/ "\u00EA", /*00CA; 00EA; Case map*/ "\u00EB", /*00CB; 00EB; Case map*/ "\u00EC", /*00CC; 00EC; Case map*/ "\u00ED", /*00CD; 00ED; Case map*/ "\u00EE", /*00CE; 00EE; Case map*/ "\u00EF", /*00CF; 00EF; Case map*/ "\u00F0", /*00D0; 00F0; Case map*/ "\u00F1", /*00D1; 00F1; Case map*/ "\u00F2", /*00D2; 00F2; Case map*/ "\u00F3", /*00D3; 00F3; Case map*/ "\u00F4", /*00D4; 00F4; Case map*/ "\u00F5", /*00D5; 00F5; Case map*/ "\u00F6", /*00D6; 00F6; Case map*/ "\u00F8", /*00D8; 00F8; Case map*/ "\u00F9", /*00D9; 00F9; Case map*/ "\u00FA", /*00DA; 00FA; Case map*/ "\u00FB", /*00DB; 00FB; Case map*/ "\u00FC", /*00DC; 00FC; Case map*/ "\u00FD", /*00DD; 00FD; Case map*/ "\u00FE", /*00DE; 00FE; Case map*/ "\u0073\u0073", /*00DF; 0073 0073; Case map*/ "\u0101", /*0100; 0101; Case map*/ "\u0103", /*0102; 0103; Case map*/ "\u0105", /*0104; 0105; Case map*/ "\u0107", /*0106; 0107; Case map*/ "\u0109", /*0108; 0109; Case map*/ "\u010B", /*010A; 010B; Case map*/ "\u010D", /*010C; 010D; Case map*/ "\u010F", /*010E; 010F; Case map*/ "\u0111", /*0110; 0111; Case map*/ "\u0113", /*0112; 0113; Case map*/ "\u0115", /*0114; 0115; Case map*/ "\u0117", /*0116; 0117; Case map*/ "\u0119", /*0118; 0119; Case map*/ "\u011B", /*011A; 011B; Case map*/ "\u011D", /*011C; 011D; Case map*/ "\u011F", /*011E; 011F; Case map*/ "\u0121", /*0120; 0121; Case map*/ "\u0123", /*0122; 0123; Case map*/ "\u0125", /*0124; 0125; Case map*/ "\u0127", /*0126; 0127; Case map*/ "\u0129", /*0128; 0129; Case map*/ "\u012B", /*012A; 012B; Case map*/ "\u012D", /*012C; 012D; Case map*/ "\u012F", /*012E; 012F; Case map*/ "\u0069\u0307", /*0130; 0069 0307; Case map*/ "\u0133", /*0132; 0133; Case map*/ "\u0135", /*0134; 0135; Case map*/ "\u0137", /*0136; 0137; Case map*/ "\u013A", /*0139; 013A; Case map*/ "\u013C", /*013B; 013C; Case map*/ "\u013E", /*013D; 013E; Case map*/ "\u0140", /*013F; 0140; Case map*/ "\u0142", /*0141; 0142; Case map*/ "\u0144", /*0143; 0144; Case map*/ "\u0146", /*0145; 0146; Case map*/ "\u0148", /*0147; 0148; Case map*/ "\u02BC\u006E", /*0149; 02BC 006E; Case map*/ "\u014B", /*014A; 014B; Case map*/ "\u014D", /*014C; 014D; Case map*/ "\u014F", /*014E; 014F; Case map*/ "\u0151", /*0150; 0151; Case map*/ "\u0153", /*0152; 0153; Case map*/ "\u0155", /*0154; 0155; Case map*/ "\u0157", /*0156; 0157; Case map*/ "\u0159", /*0158; 0159; Case map*/ "\u015B", /*015A; 015B; Case map*/ "\u015D", /*015C; 015D; Case map*/ "\u015F", /*015E; 015F; Case map*/ "\u0161", /*0160; 0161; Case map*/ "\u0163", /*0162; 0163; Case map*/ "\u0165", /*0164; 0165; Case map*/ "\u0167", /*0166; 0167; Case map*/ "\u0169", /*0168; 0169; Case map*/ "\u016B", /*016A; 016B; Case map*/ "\u016D", /*016C; 016D; Case map*/ "\u016F", /*016E; 016F; Case map*/ "\u0171", /*0170; 0171; Case map*/ "\u0173", /*0172; 0173; Case map*/ "\u0175", /*0174; 0175; Case map*/ "\u0177", /*0176; 0177; Case map*/ "\u00FF", /*0178; 00FF; Case map*/ "\u017A", /*0179; 017A; Case map*/ "\u017C", /*017B; 017C; Case map*/ "\u017E", /*017D; 017E; Case map*/ "\u0073", /*017F; 0073; Case map*/ "\u0253", /*0181; 0253; Case map*/ "\u0183", /*0182; 0183; Case map*/ "\u0185", /*0184; 0185; Case map*/ "\u0254", /*0186; 0254; Case map*/ "\u0188", /*0187; 0188; Case map*/ "\u0256", /*0189; 0256; Case map*/ "\u0257", /*018A; 0257; Case map*/ "\u018C", /*018B; 018C; Case map*/ "\u01DD", /*018E; 01DD; Case map*/ "\u0259", /*018F; 0259; Case map*/ "\u025B", /*0190; 025B; Case map*/ "\u0192", /*0191; 0192; Case map*/ "\u0260", /*0193; 0260; Case map*/ "\u0263", /*0194; 0263; Case map*/ "\u0269", /*0196; 0269; Case map*/ "\u0268", /*0197; 0268; Case map*/ "\u0199", /*0198; 0199; Case map*/ "\u026F", /*019C; 026F; Case map*/ "\u0272", /*019D; 0272; Case map*/ "\u0275", /*019F; 0275; Case map*/ "\u01A1", /*01A0; 01A1; Case map*/ "\u01A3", /*01A2; 01A3; Case map*/ "\u01A5", /*01A4; 01A5; Case map*/ "\u0280", /*01A6; 0280; Case map*/ "\u01A8", /*01A7; 01A8; Case map*/ "\u0283", /*01A9; 0283; Case map*/ "\u01AD", /*01AC; 01AD; Case map*/ "\u0288", /*01AE; 0288; Case map*/ "\u01B0", /*01AF; 01B0; Case map*/ "\u028A", /*01B1; 028A; Case map*/ "\u028B", /*01B2; 028B; Case map*/ "\u01B4", /*01B3; 01B4; Case map*/ "\u01B6", /*01B5; 01B6; Case map*/ "\u0292", /*01B7; 0292; Case map*/ "\u01B9", /*01B8; 01B9; Case map*/ "\u01BD", /*01BC; 01BD; Case map*/ "\u01C6", /*01C4; 01C6; Case map*/ "\u01C6", /*01C5; 01C6; Case map*/ "\u01C9", /*01C7; 01C9; Case map*/ "\u01C9", /*01C8; 01C9; Case map*/ "\u01CC", /*01CA; 01CC; Case map*/ "\u01CC", /*01CB; 01CC; Case map*/ "\u01CE", /*01CD; 01CE; Case map*/ "\u01D0", /*01CF; 01D0; Case map*/ "\u01D2", /*01D1; 01D2; Case map*/ "\u01D4", /*01D3; 01D4; Case map*/ "\u01D6", /*01D5; 01D6; Case map*/ "\u01D8", /*01D7; 01D8; Case map*/ "\u01DA", /*01D9; 01DA; Case map*/ "\u01DC", /*01DB; 01DC; Case map*/ "\u01DF", /*01DE; 01DF; Case map*/ "\u01E1", /*01E0; 01E1; Case map*/ "\u01E3", /*01E2; 01E3; Case map*/ "\u01E5", /*01E4; 01E5; Case map*/ "\u01E7", /*01E6; 01E7; Case map*/ "\u01E9", /*01E8; 01E9; Case map*/ "\u01EB", /*01EA; 01EB; Case map*/ "\u01ED", /*01EC; 01ED; Case map*/ "\u01EF", /*01EE; 01EF; Case map*/ "\u006A\u030C", /*01F0; 006A 030C; Case map*/ "\u01F3", /*01F1; 01F3; Case map*/ "\u01F3", /*01F2; 01F3; Case map*/ "\u01F5", /*01F4; 01F5; Case map*/ "\u0195", /*01F6; 0195; Case map*/ "\u01BF", /*01F7; 01BF; Case map*/ "\u01F9", /*01F8; 01F9; Case map*/ "\u01FB", /*01FA; 01FB; Case map*/ "\u01FD", /*01FC; 01FD; Case map*/ "\u01FF", /*01FE; 01FF; Case map*/ "\u0201", /*0200; 0201; Case map*/ "\u0203", /*0202; 0203; Case map*/ "\u0205", /*0204; 0205; Case map*/ "\u0207", /*0206; 0207; Case map*/ "\u0209", /*0208; 0209; Case map*/ "\u020B", /*020A; 020B; Case map*/ "\u020D", /*020C; 020D; Case map*/ "\u020F", /*020E; 020F; Case map*/ "\u0211", /*0210; 0211; Case map*/ "\u0213", /*0212; 0213; Case map*/ "\u0215", /*0214; 0215; Case map*/ "\u0217", /*0216; 0217; Case map*/ "\u0219", /*0218; 0219; Case map*/ "\u021B", /*021A; 021B; Case map*/ "\u021D", /*021C; 021D; Case map*/ "\u021F", /*021E; 021F; Case map*/ "\u019E", /*0220; 019E; Case map*/ "\u0223", /*0222; 0223; Case map*/ "\u0225", /*0224; 0225; Case map*/ "\u0227", /*0226; 0227; Case map*/ "\u0229", /*0228; 0229; Case map*/ "\u022B", /*022A; 022B; Case map*/ "\u022D", /*022C; 022D; Case map*/ "\u022F", /*022E; 022F; Case map*/ "\u0231", /*0230; 0231; Case map*/ "\u0233", /*0232; 0233; Case map*/ "\u03B9", /*0345; 03B9; Case map*/ "\u03AC", /*0386; 03AC; Case map*/ "\u03AD", /*0388; 03AD; Case map*/ "\u03AE", /*0389; 03AE; Case map*/ "\u03AF", /*038A; 03AF; Case map*/ "\u03CC", /*038C; 03CC; Case map*/ "\u03CD", /*038E; 03CD; Case map*/ "\u03CE", /*038F; 03CE; Case map*/ "\u03B9\u0308\u0301", /*0390; 03B9 0308 0301; Case map*/ "\u03B1", /*0391; 03B1; Case map*/ "\u03B2", /*0392; 03B2; Case map*/ "\u03B3", /*0393; 03B3; Case map*/ "\u03B4", /*0394; 03B4; Case map*/ "\u03B5", /*0395; 03B5; Case map*/ "\u03B6", /*0396; 03B6; Case map*/ "\u03B7", /*0397; 03B7; Case map*/ "\u03B8", /*0398; 03B8; Case map*/ "\u03B9", /*0399; 03B9; Case map*/ "\u03BA", /*039A; 03BA; Case map*/ "\u03BB", /*039B; 03BB; Case map*/ "\u03BC", /*039C; 03BC; Case map*/ "\u03BD", /*039D; 03BD; Case map*/ "\u03BE", /*039E; 03BE; Case map*/ "\u03BF", /*039F; 03BF; Case map*/ "\u03C0", /*03A0; 03C0; Case map*/ "\u03C1", /*03A1; 03C1; Case map*/ "\u03C3", /*03A3; 03C3; Case map*/ "\u03C4", /*03A4; 03C4; Case map*/ "\u03C5", /*03A5; 03C5; Case map*/ "\u03C6", /*03A6; 03C6; Case map*/ "\u03C7", /*03A7; 03C7; Case map*/ "\u03C8", /*03A8; 03C8; Case map*/ "\u03C9", /*03A9; 03C9; Case map*/ "\u03CA", /*03AA; 03CA; Case map*/ "\u03CB", /*03AB; 03CB; Case map*/ "\u03C5\u0308\u0301", /*03B0; 03C5 0308 0301; Case map*/ "\u03C3", /*03C2; 03C3; Case map*/ "\u03B2", /*03D0; 03B2; Case map*/ "\u03B8", /*03D1; 03B8; Case map*/ "\u03C6", /*03D5; 03C6; Case map*/ "\u03C0", /*03D6; 03C0; Case map*/ "\u03D9", /*03D8; 03D9; Case map*/ "\u03DB", /*03DA; 03DB; Case map*/ "\u03DD", /*03DC; 03DD; Case map*/ "\u03DF", /*03DE; 03DF; Case map*/ "\u03E1", /*03E0; 03E1; Case map*/ "\u03E3", /*03E2; 03E3; Case map*/ "\u03E5", /*03E4; 03E5; Case map*/ "\u03E7", /*03E6; 03E7; Case map*/ "\u03E9", /*03E8; 03E9; Case map*/ "\u03EB", /*03EA; 03EB; Case map*/ "\u03ED", /*03EC; 03ED; Case map*/ "\u03EF", /*03EE; 03EF; Case map*/ "\u03BA", /*03F0; 03BA; Case map*/ "\u03C1", /*03F1; 03C1; Case map*/ "\u03C3", /*03F2; 03C3; Case map*/ "\u03B8", /*03F4; 03B8; Case map*/ "\u03B5", /*03F5; 03B5; Case map*/ "\u0450", /*0400; 0450; Case map*/ "\u0451", /*0401; 0451; Case map*/ "\u0452", /*0402; 0452; Case map*/ "\u0453", /*0403; 0453; Case map*/ "\u0454", /*0404; 0454; Case map*/ "\u0455", /*0405; 0455; Case map*/ "\u0456", /*0406; 0456; Case map*/ "\u0457", /*0407; 0457; Case map*/ "\u0458", /*0408; 0458; Case map*/ "\u0459", /*0409; 0459; Case map*/ "\u045A", /*040A; 045A; Case map*/ "\u045B", /*040B; 045B; Case map*/ "\u045C", /*040C; 045C; Case map*/ "\u045D", /*040D; 045D; Case map*/ "\u045E", /*040E; 045E; Case map*/ "\u045F", /*040F; 045F; Case map*/ "\u0430", /*0410; 0430; Case map*/ "\u0431", /*0411; 0431; Case map*/ "\u0432", /*0412; 0432; Case map*/ "\u0433", /*0413; 0433; Case map*/ "\u0434", /*0414; 0434; Case map*/ "\u0435", /*0415; 0435; Case map*/ "\u0436", /*0416; 0436; Case map*/ "\u0437", /*0417; 0437; Case map*/ "\u0438", /*0418; 0438; Case map*/ "\u0439", /*0419; 0439; Case map*/ "\u043A", /*041A; 043A; Case map*/ "\u043B", /*041B; 043B; Case map*/ "\u043C", /*041C; 043C; Case map*/ "\u043D", /*041D; 043D; Case map*/ "\u043E", /*041E; 043E; Case map*/ "\u043F", /*041F; 043F; Case map*/ "\u0440", /*0420; 0440; Case map*/ "\u0441", /*0421; 0441; Case map*/ "\u0442", /*0422; 0442; Case map*/ "\u0443", /*0423; 0443; Case map*/ "\u0444", /*0424; 0444; Case map*/ "\u0445", /*0425; 0445; Case map*/ "\u0446", /*0426; 0446; Case map*/ "\u0447", /*0427; 0447; Case map*/ "\u0448", /*0428; 0448; Case map*/ "\u0449", /*0429; 0449; Case map*/ "\u044A", /*042A; 044A; Case map*/ "\u044B", /*042B; 044B; Case map*/ "\u044C", /*042C; 044C; Case map*/ "\u044D", /*042D; 044D; Case map*/ "\u044E", /*042E; 044E; Case map*/ "\u044F", /*042F; 044F; Case map*/ "\u0461", /*0460; 0461; Case map*/ "\u0463", /*0462; 0463; Case map*/ "\u0465", /*0464; 0465; Case map*/ "\u0467", /*0466; 0467; Case map*/ "\u0469", /*0468; 0469; Case map*/ "\u046B", /*046A; 046B; Case map*/ "\u046D", /*046C; 046D; Case map*/ "\u046F", /*046E; 046F; Case map*/ "\u0471", /*0470; 0471; Case map*/ "\u0473", /*0472; 0473; Case map*/ "\u0475", /*0474; 0475; Case map*/ "\u0477", /*0476; 0477; Case map*/ "\u0479", /*0478; 0479; Case map*/ "\u047B", /*047A; 047B; Case map*/ "\u047D", /*047C; 047D; Case map*/ "\u047F", /*047E; 047F; Case map*/ "\u0481", /*0480; 0481; Case map*/ "\u048B", /*048A; 048B; Case map*/ "\u048D", /*048C; 048D; Case map*/ "\u048F", /*048E; 048F; Case map*/ "\u0491", /*0490; 0491; Case map*/ "\u0493", /*0492; 0493; Case map*/ "\u0495", /*0494; 0495; Case map*/ "\u0497", /*0496; 0497; Case map*/ "\u0499", /*0498; 0499; Case map*/ "\u049B", /*049A; 049B; Case map*/ "\u049D", /*049C; 049D; Case map*/ "\u049F", /*049E; 049F; Case map*/ "\u04A1", /*04A0; 04A1; Case map*/ "\u04A3", /*04A2; 04A3; Case map*/ "\u04A5", /*04A4; 04A5; Case map*/ "\u04A7", /*04A6; 04A7; Case map*/ "\u04A9", /*04A8; 04A9; Case map*/ "\u04AB", /*04AA; 04AB; Case map*/ "\u04AD", /*04AC; 04AD; Case map*/ "\u04AF", /*04AE; 04AF; Case map*/ "\u04B1", /*04B0; 04B1; Case map*/ "\u04B3", /*04B2; 04B3; Case map*/ "\u04B5", /*04B4; 04B5; Case map*/ "\u04B7", /*04B6; 04B7; Case map*/ "\u04B9", /*04B8; 04B9; Case map*/ "\u04BB", /*04BA; 04BB; Case map*/ "\u04BD", /*04BC; 04BD; Case map*/ "\u04BF", /*04BE; 04BF; Case map*/ "\u04C2", /*04C1; 04C2; Case map*/ "\u04C4", /*04C3; 04C4; Case map*/ "\u04C6", /*04C5; 04C6; Case map*/ "\u04C8", /*04C7; 04C8; Case map*/ "\u04CA", /*04C9; 04CA; Case map*/ "\u04CC", /*04CB; 04CC; Case map*/ "\u04CE", /*04CD; 04CE; Case map*/ "\u04D1", /*04D0; 04D1; Case map*/ "\u04D3", /*04D2; 04D3; Case map*/ "\u04D5", /*04D4; 04D5; Case map*/ "\u04D7", /*04D6; 04D7; Case map*/ "\u04D9", /*04D8; 04D9; Case map*/ "\u04DB", /*04DA; 04DB; Case map*/ "\u04DD", /*04DC; 04DD; Case map*/ "\u04DF", /*04DE; 04DF; Case map*/ "\u04E1", /*04E0; 04E1; Case map*/ "\u04E3", /*04E2; 04E3; Case map*/ "\u04E5", /*04E4; 04E5; Case map*/ "\u04E7", /*04E6; 04E7; Case map*/ "\u04E9", /*04E8; 04E9; Case map*/ "\u04EB", /*04EA; 04EB; Case map*/ "\u04ED", /*04EC; 04ED; Case map*/ "\u04EF", /*04EE; 04EF; Case map*/ "\u04F1", /*04F0; 04F1; Case map*/ "\u04F3", /*04F2; 04F3; Case map*/ "\u04F5", /*04F4; 04F5; Case map*/ "\u04F9", /*04F8; 04F9; Case map*/ "\u0501", /*0500; 0501; Case map*/ "\u0503", /*0502; 0503; Case map*/ "\u0505", /*0504; 0505; Case map*/ "\u0507", /*0506; 0507; Case map*/ "\u0509", /*0508; 0509; Case map*/ "\u050B", /*050A; 050B; Case map*/ "\u050D", /*050C; 050D; Case map*/ "\u050F", /*050E; 050F; Case map*/ "\u0561", /*0531; 0561; Case map*/ "\u0562", /*0532; 0562; Case map*/ "\u0563", /*0533; 0563; Case map*/ "\u0564", /*0534; 0564; Case map*/ "\u0565", /*0535; 0565; Case map*/ "\u0566", /*0536; 0566; Case map*/ "\u0567", /*0537; 0567; Case map*/ "\u0568", /*0538; 0568; Case map*/ "\u0569", /*0539; 0569; Case map*/ "\u056A", /*053A; 056A; Case map*/ "\u056B", /*053B; 056B; Case map*/ "\u056C", /*053C; 056C; Case map*/ "\u056D", /*053D; 056D; Case map*/ "\u056E", /*053E; 056E; Case map*/ "\u056F", /*053F; 056F; Case map*/ "\u0570", /*0540; 0570; Case map*/ "\u0571", /*0541; 0571; Case map*/ "\u0572", /*0542; 0572; Case map*/ "\u0573", /*0543; 0573; Case map*/ "\u0574", /*0544; 0574; Case map*/ "\u0575", /*0545; 0575; Case map*/ "\u0576", /*0546; 0576; Case map*/ "\u0577", /*0547; 0577; Case map*/ "\u0578", /*0548; 0578; Case map*/ "\u0579", /*0549; 0579; Case map*/ "\u057A", /*054A; 057A; Case map*/ "\u057B", /*054B; 057B; Case map*/ "\u057C", /*054C; 057C; Case map*/ "\u057D", /*054D; 057D; Case map*/ "\u057E", /*054E; 057E; Case map*/ "\u057F", /*054F; 057F; Case map*/ "\u0580", /*0550; 0580; Case map*/ "\u0581", /*0551; 0581; Case map*/ "\u0582", /*0552; 0582; Case map*/ "\u0583", /*0553; 0583; Case map*/ "\u0584", /*0554; 0584; Case map*/ "\u0585", /*0555; 0585; Case map*/ "\u0586", /*0556; 0586; Case map*/ "\u0565\u0582", /*0587; 0565 0582; Case map*/ "\u1E01", /*1E00; 1E01; Case map*/ "\u1E03", /*1E02; 1E03; Case map*/ "\u1E05", /*1E04; 1E05; Case map*/ "\u1E07", /*1E06; 1E07; Case map*/ "\u1E09", /*1E08; 1E09; Case map*/ "\u1E0B", /*1E0A; 1E0B; Case map*/ "\u1E0D", /*1E0C; 1E0D; Case map*/ "\u1E0F", /*1E0E; 1E0F; Case map*/ "\u1E11", /*1E10; 1E11; Case map*/ "\u1E13", /*1E12; 1E13; Case map*/ "\u1E15", /*1E14; 1E15; Case map*/ "\u1E17", /*1E16; 1E17; Case map*/ "\u1E19", /*1E18; 1E19; Case map*/ "\u1E1B", /*1E1A; 1E1B; Case map*/ "\u1E1D", /*1E1C; 1E1D; Case map*/ "\u1E1F", /*1E1E; 1E1F; Case map*/ "\u1E21", /*1E20; 1E21; Case map*/ "\u1E23", /*1E22; 1E23; Case map*/ "\u1E25", /*1E24; 1E25; Case map*/ "\u1E27", /*1E26; 1E27; Case map*/ "\u1E29", /*1E28; 1E29; Case map*/ "\u1E2B", /*1E2A; 1E2B; Case map*/ "\u1E2D", /*1E2C; 1E2D; Case map*/ "\u1E2F", /*1E2E; 1E2F; Case map*/ "\u1E31", /*1E30; 1E31; Case map*/ "\u1E33", /*1E32; 1E33; Case map*/ "\u1E35", /*1E34; 1E35; Case map*/ "\u1E37", /*1E36; 1E37; Case map*/ "\u1E39", /*1E38; 1E39; Case map*/ "\u1E3B", /*1E3A; 1E3B; Case map*/ "\u1E3D", /*1E3C; 1E3D; Case map*/ "\u1E3F", /*1E3E; 1E3F; Case map*/ "\u1E41", /*1E40; 1E41; Case map*/ "\u1E43", /*1E42; 1E43; Case map*/ "\u1E45", /*1E44; 1E45; Case map*/ "\u1E47", /*1E46; 1E47; Case map*/ "\u1E49", /*1E48; 1E49; Case map*/ "\u1E4B", /*1E4A; 1E4B; Case map*/ "\u1E4D", /*1E4C; 1E4D; Case map*/ "\u1E4F", /*1E4E; 1E4F; Case map*/ "\u1E51", /*1E50; 1E51; Case map*/ "\u1E53", /*1E52; 1E53; Case map*/ "\u1E55", /*1E54; 1E55; Case map*/ "\u1E57", /*1E56; 1E57; Case map*/ "\u1E59", /*1E58; 1E59; Case map*/ "\u1E5B", /*1E5A; 1E5B; Case map*/ "\u1E5D", /*1E5C; 1E5D; Case map*/ "\u1E5F", /*1E5E; 1E5F; Case map*/ "\u1E61", /*1E60; 1E61; Case map*/ "\u1E63", /*1E62; 1E63; Case map*/ "\u1E65", /*1E64; 1E65; Case map*/ "\u1E67", /*1E66; 1E67; Case map*/ "\u1E69", /*1E68; 1E69; Case map*/ "\u1E6B", /*1E6A; 1E6B; Case map*/ "\u1E6D", /*1E6C; 1E6D; Case map*/ "\u1E6F", /*1E6E; 1E6F; Case map*/ "\u1E71", /*1E70; 1E71; Case map*/ "\u1E73", /*1E72; 1E73; Case map*/ "\u1E75", /*1E74; 1E75; Case map*/ "\u1E77", /*1E76; 1E77; Case map*/ "\u1E79", /*1E78; 1E79; Case map*/ "\u1E7B", /*1E7A; 1E7B; Case map*/ "\u1E7D", /*1E7C; 1E7D; Case map*/ "\u1E7F", /*1E7E; 1E7F; Case map*/ "\u1E81", /*1E80; 1E81; Case map*/ "\u1E83", /*1E82; 1E83; Case map*/ "\u1E85", /*1E84; 1E85; Case map*/ "\u1E87", /*1E86; 1E87; Case map*/ "\u1E89", /*1E88; 1E89; Case map*/ "\u1E8B", /*1E8A; 1E8B; Case map*/ "\u1E8D", /*1E8C; 1E8D; Case map*/ "\u1E8F", /*1E8E; 1E8F; Case map*/ "\u1E91", /*1E90; 1E91; Case map*/ "\u1E93", /*1E92; 1E93; Case map*/ "\u1E95", /*1E94; 1E95; Case map*/ "\u0068\u0331", /*1E96; 0068 0331; Case map*/ "\u0074\u0308", /*1E97; 0074 0308; Case map*/ "\u0077\u030A", /*1E98; 0077 030A; Case map*/ "\u0079\u030A", /*1E99; 0079 030A; Case map*/ "\u0061\u02BE", /*1E9A; 0061 02BE; Case map*/ "\u1E61", /*1E9B; 1E61; Case map*/ "\u1EA1", /*1EA0; 1EA1; Case map*/ "\u1EA3", /*1EA2; 1EA3; Case map*/ "\u1EA5", /*1EA4; 1EA5; Case map*/ "\u1EA7", /*1EA6; 1EA7; Case map*/ "\u1EA9", /*1EA8; 1EA9; Case map*/ "\u1EAB", /*1EAA; 1EAB; Case map*/ "\u1EAD", /*1EAC; 1EAD; Case map*/ "\u1EAF", /*1EAE; 1EAF; Case map*/ "\u1EB1", /*1EB0; 1EB1; Case map*/ "\u1EB3", /*1EB2; 1EB3; Case map*/ "\u1EB5", /*1EB4; 1EB5; Case map*/ "\u1EB7", /*1EB6; 1EB7; Case map*/ "\u1EB9", /*1EB8; 1EB9; Case map*/ "\u1EBB", /*1EBA; 1EBB; Case map*/ "\u1EBD", /*1EBC; 1EBD; Case map*/ "\u1EBF", /*1EBE; 1EBF; Case map*/ "\u1EC1", /*1EC0; 1EC1; Case map*/ "\u1EC3", /*1EC2; 1EC3; Case map*/ "\u1EC5", /*1EC4; 1EC5; Case map*/ "\u1EC7", /*1EC6; 1EC7; Case map*/ "\u1EC9", /*1EC8; 1EC9; Case map*/ "\u1ECB", /*1ECA; 1ECB; Case map*/ "\u1ECD", /*1ECC; 1ECD; Case map*/ "\u1ECF", /*1ECE; 1ECF; Case map*/ "\u1ED1", /*1ED0; 1ED1; Case map*/ "\u1ED3", /*1ED2; 1ED3; Case map*/ "\u1ED5", /*1ED4; 1ED5; Case map*/ "\u1ED7", /*1ED6; 1ED7; Case map*/ "\u1ED9", /*1ED8; 1ED9; Case map*/ "\u1EDB", /*1EDA; 1EDB; Case map*/ "\u1EDD", /*1EDC; 1EDD; Case map*/ "\u1EDF", /*1EDE; 1EDF; Case map*/ "\u1EE1", /*1EE0; 1EE1; Case map*/ "\u1EE3", /*1EE2; 1EE3; Case map*/ "\u1EE5", /*1EE4; 1EE5; Case map*/ "\u1EE7", /*1EE6; 1EE7; Case map*/ "\u1EE9", /*1EE8; 1EE9; Case map*/ "\u1EEB", /*1EEA; 1EEB; Case map*/ "\u1EED", /*1EEC; 1EED; Case map*/ "\u1EEF", /*1EEE; 1EEF; Case map*/ "\u1EF1", /*1EF0; 1EF1; Case map*/ "\u1EF3", /*1EF2; 1EF3; Case map*/ "\u1EF5", /*1EF4; 1EF5; Case map*/ "\u1EF7", /*1EF6; 1EF7; Case map*/ "\u1EF9", /*1EF8; 1EF9; Case map*/ "\u1F00", /*1F08; 1F00; Case map*/ "\u1F01", /*1F09; 1F01; Case map*/ "\u1F02", /*1F0A; 1F02; Case map*/ "\u1F03", /*1F0B; 1F03; Case map*/ "\u1F04", /*1F0C; 1F04; Case map*/ "\u1F05", /*1F0D; 1F05; Case map*/ "\u1F06", /*1F0E; 1F06; Case map*/ "\u1F07", /*1F0F; 1F07; Case map*/ "\u1F10", /*1F18; 1F10; Case map*/ "\u1F11", /*1F19; 1F11; Case map*/ "\u1F12", /*1F1A; 1F12; Case map*/ "\u1F13", /*1F1B; 1F13; Case map*/ "\u1F14", /*1F1C; 1F14; Case map*/ "\u1F15", /*1F1D; 1F15; Case map*/ "\u1F20", /*1F28; 1F20; Case map*/ "\u1F21", /*1F29; 1F21; Case map*/ "\u1F22", /*1F2A; 1F22; Case map*/ "\u1F23", /*1F2B; 1F23; Case map*/ "\u1F24", /*1F2C; 1F24; Case map*/ "\u1F25", /*1F2D; 1F25; Case map*/ "\u1F26", /*1F2E; 1F26; Case map*/ "\u1F27", /*1F2F; 1F27; Case map*/ "\u1F30", /*1F38; 1F30; Case map*/ "\u1F31", /*1F39; 1F31; Case map*/ "\u1F32", /*1F3A; 1F32; Case map*/ "\u1F33", /*1F3B; 1F33; Case map*/ "\u1F34", /*1F3C; 1F34; Case map*/ "\u1F35", /*1F3D; 1F35; Case map*/ "\u1F36", /*1F3E; 1F36; Case map*/ "\u1F37", /*1F3F; 1F37; Case map*/ "\u1F40", /*1F48; 1F40; Case map*/ "\u1F41", /*1F49; 1F41; Case map*/ "\u1F42", /*1F4A; 1F42; Case map*/ "\u1F43", /*1F4B; 1F43; Case map*/ "\u1F44", /*1F4C; 1F44; Case map*/ "\u1F45", /*1F4D; 1F45; Case map*/ "\u03C5\u0313", /*1F50; 03C5 0313; Case map*/ "\u03C5\u0313\u0300", /*1F52; 03C5 0313 0300; Case map*/ "\u03C5\u0313\u0301", /*1F54; 03C5 0313 0301; Case map*/ "\u03C5\u0313\u0342", /*1F56; 03C5 0313 0342; Case map*/ "\u1F51", /*1F59; 1F51; Case map*/ "\u1F53", /*1F5B; 1F53; Case map*/ "\u1F55", /*1F5D; 1F55; Case map*/ "\u1F57", /*1F5F; 1F57; Case map*/ "\u1F60", /*1F68; 1F60; Case map*/ "\u1F61", /*1F69; 1F61; Case map*/ "\u1F62", /*1F6A; 1F62; Case map*/ "\u1F63", /*1F6B; 1F63; Case map*/ "\u1F64", /*1F6C; 1F64; Case map*/ "\u1F65", /*1F6D; 1F65; Case map*/ "\u1F66", /*1F6E; 1F66; Case map*/ "\u1F67", /*1F6F; 1F67; Case map*/ "\u1F00\u03B9", /*1F80; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F81; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F82; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F83; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F84; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F85; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F86; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F87; 1F07 03B9; Case map*/ "\u1F00\u03B9", /*1F88; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F89; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F8A; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F8B; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F8C; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F8D; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F8E; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F8F; 1F07 03B9; Case map*/ "\u1F20\u03B9", /*1F90; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F91; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F92; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F93; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F94; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F95; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F96; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F97; 1F27 03B9; Case map*/ "\u1F20\u03B9", /*1F98; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F99; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F9A; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F9B; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F9C; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F9D; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F9E; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F9F; 1F27 03B9; Case map*/ "\u1F60\u03B9", /*1FA0; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA1; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FA2; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FA3; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FA4; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FA5; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FA6; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FA7; 1F67 03B9; Case map*/ "\u1F60\u03B9", /*1FA8; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA9; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FAA; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FAB; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FAC; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FAD; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FAE; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FAF; 1F67 03B9; Case map*/ "\u1F70\u03B9", /*1FB2; 1F70 03B9; Case map*/ "\u03B1\u03B9", /*1FB3; 03B1 03B9; Case map*/ "\u03AC\u03B9", /*1FB4; 03AC 03B9; Case map*/ "\u03B1\u0342", /*1FB6; 03B1 0342; Case map*/ "\u03B1\u0342\u03B9", /*1FB7; 03B1 0342 03B9; Case map*/ "\u1FB0", /*1FB8; 1FB0; Case map*/ "\u1FB1", /*1FB9; 1FB1; Case map*/ "\u1F70", /*1FBA; 1F70; Case map*/ "\u1F71", /*1FBB; 1F71; Case map*/ "\u03B1\u03B9", /*1FBC; 03B1 03B9; Case map*/ "\u03B9", /*1FBE; 03B9; Case map*/ "\u1F74\u03B9", /*1FC2; 1F74 03B9; Case map*/ "\u03B7\u03B9", /*1FC3; 03B7 03B9; Case map*/ "\u03AE\u03B9", /*1FC4; 03AE 03B9; Case map*/ "\u03B7\u0342", /*1FC6; 03B7 0342; Case map*/ "\u03B7\u0342\u03B9", /*1FC7; 03B7 0342 03B9; Case map*/ "\u1F72", /*1FC8; 1F72; Case map*/ "\u1F73", /*1FC9; 1F73; Case map*/ "\u1F74", /*1FCA; 1F74; Case map*/ "\u1F75", /*1FCB; 1F75; Case map*/ "\u03B7\u03B9", /*1FCC; 03B7 03B9; Case map*/ "\u03B9\u0308\u0300", /*1FD2; 03B9 0308 0300; Case map*/ "\u03B9\u0308\u0301", /*1FD3; 03B9 0308 0301; Case map*/ "\u03B9\u0342", /*1FD6; 03B9 0342; Case map*/ "\u03B9\u0308\u0342", /*1FD7; 03B9 0308 0342; Case map*/ "\u1FD0", /*1FD8; 1FD0; Case map*/ "\u1FD1", /*1FD9; 1FD1; Case map*/ "\u1F76", /*1FDA; 1F76; Case map*/ "\u1F77", /*1FDB; 1F77; Case map*/ "\u03C5\u0308\u0300", /*1FE2; 03C5 0308 0300; Case map*/ "\u03C5\u0308\u0301", /*1FE3; 03C5 0308 0301; Case map*/ "\u03C1\u0313", /*1FE4; 03C1 0313; Case map*/ "\u03C5\u0342", /*1FE6; 03C5 0342; Case map*/ "\u03C5\u0308\u0342", /*1FE7; 03C5 0308 0342; Case map*/ "\u1FE0", /*1FE8; 1FE0; Case map*/ "\u1FE1", /*1FE9; 1FE1; Case map*/ "\u1F7A", /*1FEA; 1F7A; Case map*/ "\u1F7B", /*1FEB; 1F7B; Case map*/ "\u1FE5", /*1FEC; 1FE5; Case map*/ "\u1F7C\u03B9", /*1FF2; 1F7C 03B9; Case map*/ "\u03C9\u03B9", /*1FF3; 03C9 03B9; Case map*/ "\u03CE\u03B9", /*1FF4; 03CE 03B9; Case map*/ "\u03C9\u0342", /*1FF6; 03C9 0342; Case map*/ "\u03C9\u0342\u03B9", /*1FF7; 03C9 0342 03B9; Case map*/ "\u1F78", /*1FF8; 1F78; Case map*/ "\u1F79", /*1FF9; 1F79; Case map*/ "\u1F7C", /*1FFA; 1F7C; Case map*/ "\u1F7D", /*1FFB; 1F7D; Case map*/ "\u03C9\u03B9", /*1FFC; 03C9 03B9; Case map*/ "\u03C9", /*2126; 03C9; Case map*/ "\u006B", /*212A; 006B; Case map*/ "\u00E5", /*212B; 00E5; Case map*/ "\u2170", /*2160; 2170; Case map*/ "\u2171", /*2161; 2171; Case map*/ "\u2172", /*2162; 2172; Case map*/ "\u2173", /*2163; 2173; Case map*/ "\u2174", /*2164; 2174; Case map*/ "\u2175", /*2165; 2175; Case map*/ "\u2176", /*2166; 2176; Case map*/ "\u2177", /*2167; 2177; Case map*/ "\u2178", /*2168; 2178; Case map*/ "\u2179", /*2169; 2179; Case map*/ "\u217A", /*216A; 217A; Case map*/ "\u217B", /*216B; 217B; Case map*/ "\u217C", /*216C; 217C; Case map*/ "\u217D", /*216D; 217D; Case map*/ "\u217E", /*216E; 217E; Case map*/ "\u217F", /*216F; 217F; Case map*/ "\u24D0", /*24B6; 24D0; Case map*/ "\u24D1", /*24B7; 24D1; Case map*/ "\u24D2", /*24B8; 24D2; Case map*/ "\u24D3", /*24B9; 24D3; Case map*/ "\u24D4", /*24BA; 24D4; Case map*/ "\u24D5", /*24BB; 24D5; Case map*/ "\u24D6", /*24BC; 24D6; Case map*/ "\u24D7", /*24BD; 24D7; Case map*/ "\u24D8", /*24BE; 24D8; Case map*/ "\u24D9", /*24BF; 24D9; Case map*/ "\u24DA", /*24C0; 24DA; Case map*/ "\u24DB", /*24C1; 24DB; Case map*/ "\u24DC", /*24C2; 24DC; Case map*/ "\u24DD", /*24C3; 24DD; Case map*/ "\u24DE", /*24C4; 24DE; Case map*/ "\u24DF", /*24C5; 24DF; Case map*/ "\u24E0", /*24C6; 24E0; Case map*/ "\u24E1", /*24C7; 24E1; Case map*/ "\u24E2", /*24C8; 24E2; Case map*/ "\u24E3", /*24C9; 24E3; Case map*/ "\u24E4", /*24CA; 24E4; Case map*/ "\u24E5", /*24CB; 24E5; Case map*/ "\u24E6", /*24CC; 24E6; Case map*/ "\u24E7", /*24CD; 24E7; Case map*/ "\u24E8", /*24CE; 24E8; Case map*/ "\u24E9", /*24CF; 24E9; Case map*/ "\u0066\u0066", /*FB00; 0066 0066; Case map*/ "\u0066\u0069", /*FB01; 0066 0069; Case map*/ "\u0066\u006C", /*FB02; 0066 006C; Case map*/ "\u0066\u0066\u0069", /*FB03; 0066 0066 0069; Case map*/ "\u0066\u0066\u006C", /*FB04; 0066 0066 006C; Case map*/ "\u0073\u0074", /*FB05; 0073 0074; Case map*/ "\u0073\u0074", /*FB06; 0073 0074; Case map*/ "\u0574\u0576", /*FB13; 0574 0576; Case map*/ "\u0574\u0565", /*FB14; 0574 0565; Case map*/ "\u0574\u056B", /*FB15; 0574 056B; Case map*/ "\u057E\u0576", /*FB16; 057E 0576; Case map*/ "\u0574\u056D", /*FB17; 0574 056D; Case map*/ "\uFF41", /*FF21; FF41; Case map*/ "\uFF42", /*FF22; FF42; Case map*/ "\uFF43", /*FF23; FF43; Case map*/ "\uFF44", /*FF24; FF44; Case map*/ "\uFF45", /*FF25; FF45; Case map*/ "\uFF46", /*FF26; FF46; Case map*/ "\uFF47", /*FF27; FF47; Case map*/ "\uFF48", /*FF28; FF48; Case map*/ "\uFF49", /*FF29; FF49; Case map*/ "\uFF4A", /*FF2A; FF4A; Case map*/ "\uFF4B", /*FF2B; FF4B; Case map*/ "\uFF4C", /*FF2C; FF4C; Case map*/ "\uFF4D", /*FF2D; FF4D; Case map*/ "\uFF4E", /*FF2E; FF4E; Case map*/ "\uFF4F", /*FF2F; FF4F; Case map*/ "\uFF50", /*FF30; FF50; Case map*/ "\uFF51", /*FF31; FF51; Case map*/ "\uFF52", /*FF32; FF52; Case map*/ "\uFF53", /*FF33; FF53; Case map*/ "\uFF54", /*FF34; FF54; Case map*/ "\uFF55", /*FF35; FF55; Case map*/ "\uFF56", /*FF36; FF56; Case map*/ "\uFF57", /*FF37; FF57; Case map*/ "\uFF58", /*FF38; FF58; Case map*/ "\uFF59", /*FF39; FF59; Case map*/ "\uFF5A", /*FF3A; FF5A; Case map*/ }; public static char[] C11 = new char[] { '\u0020', /* 0020; SPACE */ }; public static char[] C12 = new char[] { '\u00A0', /* 00A0; NO-BREAK SPACE */ '\u1680', /* 1680; OGHAM SPACE MARK */ '\u2000', /* 2000; EN QUAD */ '\u2001', /* 2001; EM QUAD */ '\u2002', /* 2002; EN SPACE */ '\u2003', /* 2003; EM SPACE */ '\u2004', /* 2004; THREE-PER-EM SPACE */ '\u2005', /* 2005; FOUR-PER-EM SPACE */ '\u2006', /* 2006; SIX-PER-EM SPACE */ '\u2007', /* 2007; FIGURE SPACE */ '\u2008', /* 2008; PUNCTUATION SPACE */ '\u2009', /* 2009; THIN SPACE */ '\u200A', /* 200A; HAIR SPACE */ '\u200B', /* 200B; ZERO WIDTH SPACE */ '\u202F', /* 202F; NARROW NO-BREAK SPACE */ '\u205F', /* 205F; MEDIUM MATHEMATICAL SPACE */ '\u3000', /* 3000; IDEOGRAPHIC SPACE */ }; public static char[][] C21 = new char[][] { new char[] { '\u0000', '\u001F' }, /* 0000-001F; [CONTROL CHARACTERS] */ new char[] { '\u007F' }, /* 007F; DELETE */ }; public static char[][] C22 = new char[][] { new char[] { '\u0080', '\u009F' }, /* 0080-009F; [CONTROL CHARACTERS] */ new char[] { '\u06DD' }, /* 06DD; ARABIC END OF AYAH */ new char[] { '\u070F' }, /* 070F; SYRIAC ABBREVIATION MARK */ new char[] { '\u180E' }, /* 180E; MONGOLIAN VOWEL SEPARATOR */ new char[] { '\u200C' }, /* 200C; ZERO WIDTH NON-JOINER */ new char[] { '\u200D' }, /* 200D; ZERO WIDTH JOINER */ new char[] { '\u2028' }, /* 2028; LINE SEPARATOR */ new char[] { '\u2029' }, /* 2029; PARAGRAPH SEPARATOR */ new char[] { '\u2060' }, /* 2060; WORD JOINER */ new char[] { '\u2061' }, /* 2061; FUNCTION APPLICATION */ new char[] { '\u2062' }, /* 2062; INVISIBLE TIMES */ new char[] { '\u2063' }, /* 2063; INVISIBLE SEPARATOR */ new char[] { '\u206A', '\u206F' }, /* 206A-206F; [CONTROL CHARACTERS] */ new char[] { '\uFEFF' }, /* FEFF; ZERO WIDTH NO-BREAK SPACE */ new char[] { '\uFFF9', '\uFFFC' }, /* FFF9-FFFC; [CONTROL CHARACTERS] */ }; public static char[][] C3 = new char[][] { new char[] { '\uE000', '\uF8FF' }, /* E000-F8FF; [PRIVATE USE, PLANE 0] */ }; public static char[][] C4 = new char[][] { new char[] { '\uFDD0', '\uFDEF' }, /* FDD0-FDEF; [NONCHARACTER CODE POINTS] */ new char[] { '\uFFFE', '\uFFFF' }, /* FFFE-FFFF; [NONCHARACTER CODE POINTS] */ }; public static char[][] C5 = new char[][] { new char[] { '\uD800', '\uDFFF' }, /* D800-DFFF; [SURROGATE CODES] */ }; public static char[][] C6 = new char[][] { new char[] { '\uFFF9' }, /* FFF9; INTERLINEAR ANNOTATION ANCHOR */ new char[] { '\uFFFA' }, /* FFFA; INTERLINEAR ANNOTATION SEPARATOR */ new char[] { '\uFFFB' }, /* FFFB; INTERLINEAR ANNOTATION TERMINATOR */ new char[] { '\uFFFC' }, /* FFFC; OBJECT REPLACEMENT CHARACTER */ new char[] { '\uFFFD' }, /* FFFD; REPLACEMENT CHARACTER */ }; public static char[][] C7 = new char[][] { new char[] { '\u2FF0', '\u2FFB' }, /* 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ }; public static char[][] C8 = new char[][] { new char[] { '\u0340' }, /* 0340; COMBINING GRAVE TONE MARK */ new char[] { '\u0341' }, /* 0341; COMBINING ACUTE TONE MARK */ new char[] { '\u200E' }, /* 200E; LEFT-TO-RIGHT MARK */ new char[] { '\u200F' }, /* 200F; RIGHT-TO-LEFT MARK */ new char[] { '\u202A' }, /* 202A; LEFT-TO-RIGHT EMBEDDING */ new char[] { '\u202B' }, /* 202B; RIGHT-TO-LEFT EMBEDDING */ new char[] { '\u202C' }, /* 202C; POP DIRECTIONAL FORMATTING */ new char[] { '\u202D' }, /* 202D; LEFT-TO-RIGHT OVERRIDE */ new char[] { '\u202E' }, /* 202E; RIGHT-TO-LEFT OVERRIDE */ new char[] { '\u206A' }, /* 206A; INHIBIT SYMMETRIC SWAPPING */ new char[] { '\u206B' }, /* 206B; ACTIVATE SYMMETRIC SWAPPING */ new char[] { '\u206C' }, /* 206C; INHIBIT ARABIC FORM SHAPING */ new char[] { '\u206D' }, /* 206D; ACTIVATE ARABIC FORM SHAPING */ new char[] { '\u206E' }, /* 206E; NATIONAL DIGIT SHAPES */ new char[] { '\u206F' }, /* 206F; NOMINAL DIGIT SHAPES */ }; public static char[][] D1 = new char[][] { new char[] { '\u05BE' }, /* 05BE */ new char[] { '\u05C0' }, /* 05C0 */ new char[] { '\u05C3' }, /* 05C3 */ new char[] { '\u05D0', '\u05EA' }, /* 05D0-05EA */ new char[] { '\u05F0', '\u05F4' }, /* 05F0-05F4 */ new char[] { '\u061B' }, /* 061B */ new char[] { '\u061F' }, /* 061F */ new char[] { '\u0621', '\u063A' }, /* 0621-063A */ new char[] { '\u0640', '\u064A' }, /* 0640-064A */ new char[] { '\u066D', '\u066F' }, /* 066D-066F */ new char[] { '\u0671', '\u06D5' }, /* 0671-06D5 */ new char[] { '\u06DD' }, /* 06DD */ new char[] { '\u06E5', '\u06E6' }, /* 06E5-06E6 */ new char[] { '\u06FA', '\u06FE' }, /* 06FA-06FE */ new char[] { '\u0700', '\u070D' }, /* 0700-070D */ new char[] { '\u0710' }, /* 0710 */ new char[] { '\u0712', '\u072C' }, /* 0712-072C */ new char[] { '\u0780', '\u07A5' }, /* 0780-07A5 */ new char[] { '\u07B1' }, /* 07B1 */ new char[] { '\u200F' }, /* 200F */ new char[] { '\uFB1D' }, /* FB1D */ new char[] { '\uFB1F', '\uFB28' }, /* FB1F-FB28 */ new char[] { '\uFB2A', '\uFB36' }, /* FB2A-FB36 */ new char[] { '\uFB38', '\uFB3C' }, /* FB38-FB3C */ new char[] { '\uFB3E' }, /* FB3E */ new char[] { '\uFB40', '\uFB41' }, /* FB40-FB41 */ new char[] { '\uFB43', '\uFB44' }, /* FB43-FB44 */ new char[] { '\uFB46', '\uFBB1' }, /* FB46-FBB1 */ new char[] { '\uFBD3', '\uFD3D' }, /* FBD3-FD3D */ new char[] { '\uFD50', '\uFD8F' }, /* FD50-FD8F */ new char[] { '\uFD92', '\uFDC7' }, /* FD92-FDC7 */ new char[] { '\uFDF0', '\uFDFC' }, /* FDF0-FDFC */ new char[] { '\uFE70', '\uFE74' }, /* FE70-FE74 */ new char[] { '\uFE76', '\uFEFC' }, /* FE76-FEFC */ }; public static char[][] D2 = new char[][] { new char[] { '\u0041', '\u005A' }, /* 0041-005A */ new char[] { '\u0061', '\u007A' }, /* 0061-007A */ new char[] { '\u00AA' }, /* 00AA */ new char[] { '\u00B5' }, /* 00B5 */ new char[] { '\u00BA' }, /* 00BA */ new char[] { '\u00C0', '\u00D6' }, /* 00C0-00D6 */ new char[] { '\u00D8', '\u00F6' }, /* 00D8-00F6 */ new char[] { '\u00F8', '\u0220' }, /* 00F8-0220 */ new char[] { '\u0222', '\u0233' }, /* 0222-0233 */ new char[] { '\u0250', '\u02AD' }, /* 0250-02AD */ new char[] { '\u02B0', '\u02B8' }, /* 02B0-02B8 */ new char[] { '\u02BB', '\u02C1' }, /* 02BB-02C1 */ new char[] { '\u02D0', '\u02D1' }, /* 02D0-02D1 */ new char[] { '\u02E0', '\u02E4' }, /* 02E0-02E4 */ new char[] { '\u02EE' }, /* 02EE */ new char[] { '\u037A' }, /* 037A */ new char[] { '\u0386' }, /* 0386 */ new char[] { '\u0388', '\u038A' }, /* 0388-038A */ new char[] { '\u038C' }, /* 038C */ new char[] { '\u038E', '\u03A1' }, /* 038E-03A1 */ new char[] { '\u03A3', '\u03CE' }, /* 03A3-03CE */ new char[] { '\u03D0', '\u03F5' }, /* 03D0-03F5 */ new char[] { '\u0400', '\u0482' }, /* 0400-0482 */ new char[] { '\u048A', '\u04CE' }, /* 048A-04CE */ new char[] { '\u04D0', '\u04F5' }, /* 04D0-04F5 */ new char[] { '\u04F8', '\u04F9' }, /* 04F8-04F9 */ new char[] { '\u0500', '\u050F' }, /* 0500-050F */ new char[] { '\u0531', '\u0556' }, /* 0531-0556 */ new char[] { '\u0559', '\u055F' }, /* 0559-055F */ new char[] { '\u0561', '\u0587' }, /* 0561-0587 */ new char[] { '\u0589' }, /* 0589 */ new char[] { '\u0903' }, /* 0903 */ new char[] { '\u0905', '\u0939' }, /* 0905-0939 */ new char[] { '\u093D', '\u0940' }, /* 093D-0940 */ new char[] { '\u0949', '\u094C' }, /* 0949-094C */ new char[] { '\u0950' }, /* 0950 */ new char[] { '\u0958', '\u0961' }, /* 0958-0961 */ new char[] { '\u0964', '\u0970' }, /* 0964-0970 */ new char[] { '\u0982', '\u0983' }, /* 0982-0983 */ new char[] { '\u0985', '\u098C' }, /* 0985-098C */ new char[] { '\u098F', '\u0990' }, /* 098F-0990 */ new char[] { '\u0993', '\u09A8' }, /* 0993-09A8 */ new char[] { '\u09AA', '\u09B0' }, /* 09AA-09B0 */ new char[] { '\u09B2' }, /* 09B2 */ new char[] { '\u09B6', '\u09B9' }, /* 09B6-09B9 */ new char[] { '\u09BE', '\u09C0' }, /* 09BE-09C0 */ new char[] { '\u09C7', '\u09C8' }, /* 09C7-09C8 */ new char[] { '\u09CB', '\u09CC' }, /* 09CB-09CC */ new char[] { '\u09D7' }, /* 09D7 */ new char[] { '\u09DC', '\u09DD' }, /* 09DC-09DD */ new char[] { '\u09DF', '\u09E1' }, /* 09DF-09E1 */ new char[] { '\u09E6', '\u09F1' }, /* 09E6-09F1 */ new char[] { '\u09F4', '\u09FA' }, /* 09F4-09FA */ new char[] { '\u0A05', '\u0A0A' }, /* 0A05-0A0A */ new char[] { '\u0A0F', '\u0A10' }, /* 0A0F-0A10 */ new char[] { '\u0A13', '\u0A28' }, /* 0A13-0A28 */ new char[] { '\u0A2A', '\u0A30' }, /* 0A2A-0A30 */ new char[] { '\u0A32', '\u0A33' }, /* 0A32-0A33 */ new char[] { '\u0A35', '\u0A36' }, /* 0A35-0A36 */ new char[] { '\u0A38', '\u0A39' }, /* 0A38-0A39 */ new char[] { '\u0A3E', '\u0A40' }, /* 0A3E-0A40 */ new char[] { '\u0A59', '\u0A5C' }, /* 0A59-0A5C */ new char[] { '\u0A5E' }, /* 0A5E */ new char[] { '\u0A66', '\u0A6F' }, /* 0A66-0A6F */ new char[] { '\u0A72', '\u0A74' }, /* 0A72-0A74 */ new char[] { '\u0A83' }, /* 0A83 */ new char[] { '\u0A85', '\u0A8B' }, /* 0A85-0A8B */ new char[] { '\u0A8D' }, /* 0A8D */ new char[] { '\u0A8F', '\u0A91' }, /* 0A8F-0A91 */ new char[] { '\u0A93', '\u0AA8' }, /* 0A93-0AA8 */ new char[] { '\u0AAA', '\u0AB0' }, /* 0AAA-0AB0 */ new char[] { '\u0AB2', '\u0AB3' }, /* 0AB2-0AB3 */ new char[] { '\u0AB5', '\u0AB9' }, /* 0AB5-0AB9 */ new char[] { '\u0ABD', '\u0AC0' }, /* 0ABD-0AC0 */ new char[] { '\u0AC9' }, /* 0AC9 */ new char[] { '\u0ACB', '\u0ACC' }, /* 0ACB-0ACC */ new char[] { '\u0AD0' }, /* 0AD0 */ new char[] { '\u0AE0' }, /* 0AE0 */ new char[] { '\u0AE6', '\u0AEF' }, /* 0AE6-0AEF */ new char[] { '\u0B02', '\u0B03' }, /* 0B02-0B03 */ new char[] { '\u0B05', '\u0B0C' }, /* 0B05-0B0C */ new char[] { '\u0B0F', '\u0B10' }, /* 0B0F-0B10 */ new char[] { '\u0B13', '\u0B28' }, /* 0B13-0B28 */ new char[] { '\u0B2A', '\u0B30' }, /* 0B2A-0B30 */ new char[] { '\u0B32', '\u0B33' }, /* 0B32-0B33 */ new char[] { '\u0B36', '\u0B39' }, /* 0B36-0B39 */ new char[] { '\u0B3D', '\u0B3E' }, /* 0B3D-0B3E */ new char[] { '\u0B40' }, /* 0B40 */ new char[] { '\u0B47', '\u0B48' }, /* 0B47-0B48 */ new char[] { '\u0B4B', '\u0B4C' }, /* 0B4B-0B4C */ new char[] { '\u0B57' }, /* 0B57 */ new char[] { '\u0B5C', '\u0B5D' }, /* 0B5C-0B5D */ new char[] { '\u0B5F', '\u0B61' }, /* 0B5F-0B61 */ new char[] { '\u0B66', '\u0B70' }, /* 0B66-0B70 */ new char[] { '\u0B83' }, /* 0B83 */ new char[] { '\u0B85', '\u0B8A' }, /* 0B85-0B8A */ new char[] { '\u0B8E', '\u0B90' }, /* 0B8E-0B90 */ new char[] { '\u0B92', '\u0B95' }, /* 0B92-0B95 */ new char[] { '\u0B99', '\u0B9A' }, /* 0B99-0B9A */ new char[] { '\u0B9C' }, /* 0B9C */ new char[] { '\u0B9E', '\u0B9F' }, /* 0B9E-0B9F */ new char[] { '\u0BA3', '\u0BA4' }, /* 0BA3-0BA4 */ new char[] { '\u0BA8', '\u0BAA' }, /* 0BA8-0BAA */ new char[] { '\u0BAE', '\u0BB5' }, /* 0BAE-0BB5 */ new char[] { '\u0BB7', '\u0BB9' }, /* 0BB7-0BB9 */ new char[] { '\u0BBE', '\u0BBF' }, /* 0BBE-0BBF */ new char[] { '\u0BC1', '\u0BC2' }, /* 0BC1-0BC2 */ new char[] { '\u0BC6', '\u0BC8' }, /* 0BC6-0BC8 */ new char[] { '\u0BCA', '\u0BCC' }, /* 0BCA-0BCC */ new char[] { '\u0BD7' }, /* 0BD7 */ new char[] { '\u0BE7', '\u0BF2' }, /* 0BE7-0BF2 */ new char[] { '\u0C01', '\u0C03' }, /* 0C01-0C03 */ new char[] { '\u0C05', '\u0C0C' }, /* 0C05-0C0C */ new char[] { '\u0C0E', '\u0C10' }, /* 0C0E-0C10 */ new char[] { '\u0C12', '\u0C28' }, /* 0C12-0C28 */ new char[] { '\u0C2A', '\u0C33' }, /* 0C2A-0C33 */ new char[] { '\u0C35', '\u0C39' }, /* 0C35-0C39 */ new char[] { '\u0C41', '\u0C44' }, /* 0C41-0C44 */ new char[] { '\u0C60', '\u0C61' }, /* 0C60-0C61 */ new char[] { '\u0C66', '\u0C6F' }, /* 0C66-0C6F */ new char[] { '\u0C82', '\u0C83' }, /* 0C82-0C83 */ new char[] { '\u0C85', '\u0C8C' }, /* 0C85-0C8C */ new char[] { '\u0C8E', '\u0C90' }, /* 0C8E-0C90 */ new char[] { '\u0C92', '\u0CA8' }, /* 0C92-0CA8 */ new char[] { '\u0CAA', '\u0CB3' }, /* 0CAA-0CB3 */ new char[] { '\u0CB5', '\u0CB9' }, /* 0CB5-0CB9 */ new char[] { '\u0CBE' }, /* 0CBE */ new char[] { '\u0CC0', '\u0CC4' }, /* 0CC0-0CC4 */ new char[] { '\u0CC7', '\u0CC8' }, /* 0CC7-0CC8 */ new char[] { '\u0CCA', '\u0CCB' }, /* 0CCA-0CCB */ new char[] { '\u0CD5', '\u0CD6' }, /* 0CD5-0CD6 */ new char[] { '\u0CDE' }, /* 0CDE */ new char[] { '\u0CE0', '\u0CE1' }, /* 0CE0-0CE1 */ new char[] { '\u0CE6', '\u0CEF' }, /* 0CE6-0CEF */ new char[] { '\u0D02', '\u0D03' }, /* 0D02-0D03 */ new char[] { '\u0D05', '\u0D0C' }, /* 0D05-0D0C */ new char[] { '\u0D0E', '\u0D10' }, /* 0D0E-0D10 */ new char[] { '\u0D12', '\u0D28' }, /* 0D12-0D28 */ new char[] { '\u0D2A', '\u0D39' }, /* 0D2A-0D39 */ new char[] { '\u0D3E', '\u0D40' }, /* 0D3E-0D40 */ new char[] { '\u0D46', '\u0D48' }, /* 0D46-0D48 */ new char[] { '\u0D4A', '\u0D4C' }, /* 0D4A-0D4C */ new char[] { '\u0D57' }, /* 0D57 */ new char[] { '\u0D60', '\u0D61' }, /* 0D60-0D61 */ new char[] { '\u0D66', '\u0D6F' }, /* 0D66-0D6F */ new char[] { '\u0D82', '\u0D83' }, /* 0D82-0D83 */ new char[] { '\u0D85', '\u0D96' }, /* 0D85-0D96 */ new char[] { '\u0D9A', '\u0DB1' }, /* 0D9A-0DB1 */ new char[] { '\u0DB3', '\u0DBB' }, /* 0DB3-0DBB */ new char[] { '\u0DBD' }, /* 0DBD */ new char[] { '\u0DC0', '\u0DC6' }, /* 0DC0-0DC6 */ new char[] { '\u0DCF', '\u0DD1' }, /* 0DCF-0DD1 */ new char[] { '\u0DD8', '\u0DDF' }, /* 0DD8-0DDF */ new char[] { '\u0DF2', '\u0DF4' }, /* 0DF2-0DF4 */ new char[] { '\u0E01', '\u0E30' }, /* 0E01-0E30 */ new char[] { '\u0E32', '\u0E33' }, /* 0E32-0E33 */ new char[] { '\u0E40', '\u0E46' }, /* 0E40-0E46 */ new char[] { '\u0E4F', '\u0E5B' }, /* 0E4F-0E5B */ new char[] { '\u0E81', '\u0E82' }, /* 0E81-0E82 */ new char[] { '\u0E84' }, /* 0E84 */ new char[] { '\u0E87', '\u0E88' }, /* 0E87-0E88 */ new char[] { '\u0E8A' }, /* 0E8A */ new char[] { '\u0E8D' }, /* 0E8D */ new char[] { '\u0E94', '\u0E97' }, /* 0E94-0E97 */ new char[] { '\u0E99', '\u0E9F' }, /* 0E99-0E9F */ new char[] { '\u0EA1', '\u0EA3' }, /* 0EA1-0EA3 */ new char[] { '\u0EA5' }, /* 0EA5 */ new char[] { '\u0EA7' }, /* 0EA7 */ new char[] { '\u0EAA', '\u0EAB' }, /* 0EAA-0EAB */ new char[] { '\u0EAD', '\u0EB0' }, /* 0EAD-0EB0 */ new char[] { '\u0EB2', '\u0EB3' }, /* 0EB2-0EB3 */ new char[] { '\u0EBD' }, /* 0EBD */ new char[] { '\u0EC0', '\u0EC4' }, /* 0EC0-0EC4 */ new char[] { '\u0EC6' }, /* 0EC6 */ new char[] { '\u0ED0', '\u0ED9' }, /* 0ED0-0ED9 */ new char[] { '\u0EDC', '\u0EDD' }, /* 0EDC-0EDD */ new char[] { '\u0F00', '\u0F17' }, /* 0F00-0F17 */ new char[] { '\u0F1A', '\u0F34' }, /* 0F1A-0F34 */ new char[] { '\u0F36' }, /* 0F36 */ new char[] { '\u0F38' }, /* 0F38 */ new char[] { '\u0F3E', '\u0F47' }, /* 0F3E-0F47 */ new char[] { '\u0F49', '\u0F6A' }, /* 0F49-0F6A */ new char[] { '\u0F7F' }, /* 0F7F */ new char[] { '\u0F85' }, /* 0F85 */ new char[] { '\u0F88', '\u0F8B' }, /* 0F88-0F8B */ new char[] { '\u0FBE', '\u0FC5' }, /* 0FBE-0FC5 */ new char[] { '\u0FC7', '\u0FCC' }, /* 0FC7-0FCC */ new char[] { '\u0FCF' }, /* 0FCF */ new char[] { '\u1000', '\u1021' }, /* 1000-1021 */ new char[] { '\u1023', '\u1027' }, /* 1023-1027 */ new char[] { '\u1029', '\u102A' }, /* 1029-102A */ new char[] { '\u102C' }, /* 102C */ new char[] { '\u1031' }, /* 1031 */ new char[] { '\u1038' }, /* 1038 */ new char[] { '\u1040', '\u1057' }, /* 1040-1057 */ new char[] { '\u10A0', '\u10C5' }, /* 10A0-10C5 */ new char[] { '\u10D0', '\u10F8' }, /* 10D0-10F8 */ new char[] { '\u10FB' }, /* 10FB */ new char[] { '\u1100', '\u1159' }, /* 1100-1159 */ new char[] { '\u115F', '\u11A2' }, /* 115F-11A2 */ new char[] { '\u11A8', '\u11F9' }, /* 11A8-11F9 */ new char[] { '\u1200', '\u1206' }, /* 1200-1206 */ new char[] { '\u1208', '\u1246' }, /* 1208-1246 */ new char[] { '\u1248' }, /* 1248 */ new char[] { '\u124A', '\u124D' }, /* 124A-124D */ new char[] { '\u1250', '\u1256' }, /* 1250-1256 */ new char[] { '\u1258' }, /* 1258 */ new char[] { '\u125A', '\u125D' }, /* 125A-125D */ new char[] { '\u1260', '\u1286' }, /* 1260-1286 */ new char[] { '\u1288' }, /* 1288 */ new char[] { '\u128A', '\u128D' }, /* 128A-128D */ new char[] { '\u1290', '\u12AE' }, /* 1290-12AE */ new char[] { '\u12B0' }, /* 12B0 */ new char[] { '\u12B2', '\u12B5' }, /* 12B2-12B5 */ new char[] { '\u12B8', '\u12BE' }, /* 12B8-12BE */ new char[] { '\u12C0' }, /* 12C0 */ new char[] { '\u12C2', '\u12C5' }, /* 12C2-12C5 */ new char[] { '\u12C8', '\u12CE' }, /* 12C8-12CE */ new char[] { '\u12D0', '\u12D6' }, /* 12D0-12D6 */ new char[] { '\u12D8', '\u12EE' }, /* 12D8-12EE */ new char[] { '\u12F0', '\u130E' }, /* 12F0-130E */ new char[] { '\u1310' }, /* 1310 */ new char[] { '\u1312', '\u1315' }, /* 1312-1315 */ new char[] { '\u1318', '\u131E' }, /* 1318-131E */ new char[] { '\u1320', '\u1346' }, /* 1320-1346 */ new char[] { '\u1348', '\u135A' }, /* 1348-135A */ new char[] { '\u1361', '\u137C' }, /* 1361-137C */ new char[] { '\u13A0', '\u13F4' }, /* 13A0-13F4 */ new char[] { '\u1401', '\u1676' }, /* 1401-1676 */ new char[] { '\u1681', '\u169A' }, /* 1681-169A */ new char[] { '\u16A0', '\u16F0' }, /* 16A0-16F0 */ new char[] { '\u1700', '\u170C' }, /* 1700-170C */ new char[] { '\u170E', '\u1711' }, /* 170E-1711 */ new char[] { '\u1720', '\u1731' }, /* 1720-1731 */ new char[] { '\u1735', '\u1736' }, /* 1735-1736 */ new char[] { '\u1740', '\u1751' }, /* 1740-1751 */ new char[] { '\u1760', '\u176C' }, /* 1760-176C */ new char[] { '\u176E', '\u1770' }, /* 176E-1770 */ new char[] { '\u1780', '\u17B6' }, /* 1780-17B6 */ new char[] { '\u17BE', '\u17C5' }, /* 17BE-17C5 */ new char[] { '\u17C7', '\u17C8' }, /* 17C7-17C8 */ new char[] { '\u17D4', '\u17DA' }, /* 17D4-17DA */ new char[] { '\u17DC' }, /* 17DC */ new char[] { '\u17E0', '\u17E9' }, /* 17E0-17E9 */ new char[] { '\u1810', '\u1819' }, /* 1810-1819 */ new char[] { '\u1820', '\u1877' }, /* 1820-1877 */ new char[] { '\u1880', '\u18A8' }, /* 1880-18A8 */ new char[] { '\u1E00', '\u1E9B' }, /* 1E00-1E9B */ new char[] { '\u1EA0', '\u1EF9' }, /* 1EA0-1EF9 */ new char[] { '\u1F00', '\u1F15' }, /* 1F00-1F15 */ new char[] { '\u1F18', '\u1F1D' }, /* 1F18-1F1D */ new char[] { '\u1F20', '\u1F45' }, /* 1F20-1F45 */ new char[] { '\u1F48', '\u1F4D' }, /* 1F48-1F4D */ new char[] { '\u1F50', '\u1F57' }, /* 1F50-1F57 */ new char[] { '\u1F59' }, /* 1F59 */ new char[] { '\u1F5B' }, /* 1F5B */ new char[] { '\u1F5D' }, /* 1F5D */ new char[] { '\u1F5F', '\u1F7D' }, /* 1F5F-1F7D */ new char[] { '\u1F80', '\u1FB4' }, /* 1F80-1FB4 */ new char[] { '\u1FB6', '\u1FBC' }, /* 1FB6-1FBC */ new char[] { '\u1FBE' }, /* 1FBE */ new char[] { '\u1FC2', '\u1FC4' }, /* 1FC2-1FC4 */ new char[] { '\u1FC6', '\u1FCC' }, /* 1FC6-1FCC */ new char[] { '\u1FD0', '\u1FD3' }, /* 1FD0-1FD3 */ new char[] { '\u1FD6', '\u1FDB' }, /* 1FD6-1FDB */ new char[] { '\u1FE0', '\u1FEC' }, /* 1FE0-1FEC */ new char[] { '\u1FF2', '\u1FF4' }, /* 1FF2-1FF4 */ new char[] { '\u1FF6', '\u1FFC' }, /* 1FF6-1FFC */ new char[] { '\u200E' }, /* 200E */ new char[] { '\u2071' }, /* 2071 */ new char[] { '\u207F' }, /* 207F */ new char[] { '\u2102' }, /* 2102 */ new char[] { '\u2107' }, /* 2107 */ new char[] { '\u210A', '\u2113' }, /* 210A-2113 */ new char[] { '\u2115' }, /* 2115 */ new char[] { '\u2119', '\u211D' }, /* 2119-211D */ new char[] { '\u2124' }, /* 2124 */ new char[] { '\u2126' }, /* 2126 */ new char[] { '\u2128' }, /* 2128 */ new char[] { '\u212A', '\u212D' }, /* 212A-212D */ new char[] { '\u212F', '\u2131' }, /* 212F-2131 */ new char[] { '\u2133', '\u2139' }, /* 2133-2139 */ new char[] { '\u213D', '\u213F' }, /* 213D-213F */ new char[] { '\u2145', '\u2149' }, /* 2145-2149 */ new char[] { '\u2160', '\u2183' }, /* 2160-2183 */ new char[] { '\u2336', '\u237A' }, /* 2336-237A */ new char[] { '\u2395' }, /* 2395 */ new char[] { '\u249C', '\u24E9' }, /* 249C-24E9 */ new char[] { '\u3005', '\u3007' }, /* 3005-3007 */ new char[] { '\u3021', '\u3029' }, /* 3021-3029 */ new char[] { '\u3031', '\u3035' }, /* 3031-3035 */ new char[] { '\u3038', '\u303C' }, /* 3038-303C */ new char[] { '\u3041', '\u3096' }, /* 3041-3096 */ new char[] { '\u309D', '\u309F' }, /* 309D-309F */ new char[] { '\u30A1', '\u30FA' }, /* 30A1-30FA */ new char[] { '\u30FC', '\u30FF' }, /* 30FC-30FF */ new char[] { '\u3105', '\u312C' }, /* 3105-312C */ new char[] { '\u3131', '\u318E' }, /* 3131-318E */ new char[] { '\u3190', '\u31B7' }, /* 3190-31B7 */ new char[] { '\u31F0', '\u321C' }, /* 31F0-321C */ new char[] { '\u3220', '\u3243' }, /* 3220-3243 */ new char[] { '\u3260', '\u327B' }, /* 3260-327B */ new char[] { '\u327F', '\u32B0' }, /* 327F-32B0 */ new char[] { '\u32C0', '\u32CB' }, /* 32C0-32CB */ new char[] { '\u32D0', '\u32FE' }, /* 32D0-32FE */ new char[] { '\u3300', '\u3376' }, /* 3300-3376 */ new char[] { '\u337B', '\u33DD' }, /* 337B-33DD */ new char[] { '\u33E0', '\u33FE' }, /* 33E0-33FE */ new char[] { '\u3400', '\u4DB5' }, /* 3400-4DB5 */ new char[] { '\u4E00', '\u9FA5' }, /* 4E00-9FA5 */ new char[] { '\uA000', '\uA48C' }, /* A000-A48C */ new char[] { '\uAC00', '\uD7A3' }, /* AC00-D7A3 */ new char[] { '\uD800', '\uFA2D' }, /* D800-FA2D */ new char[] { '\uFA30', '\uFA6A' }, /* FA30-FA6A */ new char[] { '\uFB00', '\uFB06' }, /* FB00-FB06 */ new char[] { '\uFB13', '\uFB17' }, /* FB13-FB17 */ new char[] { '\uFF21', '\uFF3A' }, /* FF21-FF3A */ new char[] { '\uFF41', '\uFF5A' }, /* FF41-FF5A */ new char[] { '\uFF66', '\uFFBE' }, /* FF66-FFBE */ new char[] { '\uFFC2', '\uFFC7' }, /* FFC2-FFC7 */ new char[] { '\uFFCA', '\uFFCF' }, /* FFCA-FFCF */ new char[] { '\uFFD2', '\uFFD7' }, /* FFD2-FFD7 */ new char[] { '\uFFDA', '\uFFDC' }, /* FFDA-FFDC */ }; } } libidn-1.38/csharp/StringprepException.cs0000644000000000000000000000324714076271517015440 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace Gnu.Inet.Encoding { public class StringprepException : Exception { public static string CONTAINS_UNASSIGNED = "Contains unassigned code points."; public static string CONTAINS_PROHIBITED = "Contains prohibited code points."; public static string BIDI_BOTHRAL = "Contains both R and AL code points."; public static string BIDI_LTRAL = "Leading and trailing code points not both R or AL."; public StringprepException(string message) : base(message) { } } } libidn-1.38/csharp/CombiningClass.cs0000644000000000000000000004556714076273653014335 00000000000000// Do not edit !!! // this file is generated automatically public class CombiningClass { public static readonly int[,] c = new int[,] { { /* Page 3 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 14 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 23 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 48 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 254 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, }; public static readonly int[] i = new int[] { -1, -1, -1, 0, 1, 2, 3, 4, -1, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, 18, -1, }; } libidn-1.38/csharp/NFKC.cs0000644000000000000000000002224014076271517012137 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { public class NFKC { /// /// Applies NFKC normalization to a string. /// /// The string to normalize. /// An NFKC normalized string. public static string NormalizeNFKC(string sbIn) { StringBuilder sbOut = new StringBuilder(); for (int i = 0; i < sbIn.Length; i++) { char code = sbIn[i]; // In Unicode 3.0, Hangul was defined as the block from U+AC00 // to U+D7A3, however, since Unicode 3.2 the block extends until // U+D7AF. The decomposeHangul function only decomposes until // U+D7A3. Should this be changed? if (code >= 0xAC00 && code <= 0xD7AF) { sbOut.Append(decomposeHangul(code)); } else { int index = decomposeIndex(code); if (index == - 1) { sbOut.Append(code); } else { sbOut.Append(DecompositionMappings.m[index]); } } } // Bring the stringbuffer into canonical order. canonicalOrdering(sbOut); // Do the canonical composition. int last_cc = 0; int last_start = 0; for (int i = 0; i < sbOut.Length; i++) { int cc = combiningClass(sbOut[i]); if (i > 0 && (last_cc == 0 || last_cc != cc)) { // Try to combine characters char a = sbOut[last_start]; char b = sbOut[i]; int c = compose(a, b); if (c != - 1) { sbOut[last_start] = (char) c; //sbOut.deleteCharAt(i); sbOut.Remove(i, 1); i--; if (i == last_start) { last_cc = 0; } else { last_cc = combiningClass(sbOut[i - 1]); } continue; } } if (cc == 0) { last_start = i; } last_cc = cc; } return sbOut.ToString(); } /// /// Returns the index inside the decomposition table, implemented /// using a binary search. /// /// Character to look up. /// Index if found, -1 otherwise. internal static int decomposeIndex(char c) { int start = 0; int end = DecompositionKeys.k.Length / 2; while (true) { int half = (start + end) / 2; int code = DecompositionKeys.k[half * 2]; if (c == code) { return DecompositionKeys.k[half * 2 + 1]; } if (half == start) { // Character not found return - 1; } else if (c > code) { start = half; } else { end = half; } } } /// /// Returns the combining class of a given character. /// /// The character. /// The combining class. internal static int combiningClass(char c) { int h = c >> 8; int l = c & 0xff; int i = CombiningClass.i[h]; if (i > - 1) { return CombiningClass.c[i, l]; } else { return 0; } } /// /// Rearranges characters in a stringbuffer in order to respect the /// canonical ordering properties. /// /// StringBuffer to rearrange. internal static void canonicalOrdering(StringBuilder sbIn) { bool isOrdered = false; while (!isOrdered) { isOrdered = true; // 24.10.2005 int lastCC = 0; if (sbIn.Length > 0) lastCC = combiningClass(sbIn[0]); for (int i = 0; i < sbIn.Length - 1; i++) { int nextCC = combiningClass(sbIn[i + 1]); if (nextCC != 0 && lastCC > nextCC) { for (int j = i + 1; j > 0; j--) { if (combiningClass(sbIn[j - 1]) <= nextCC) { break; } char t = sbIn[j]; sbIn[j] = sbIn[j - 1]; sbIn[j - 1] = t; isOrdered = false; } nextCC = lastCC; } lastCC = nextCC; } } } /// /// Returns the index inside the composition table. /// /// Character to look up. /// Index if found, -1 otherwise. internal static int composeIndex(char a) { if (a >> 8 >= Composition.composePage.Length) { return - 1; } int ap = Composition.composePage[a >> 8]; if (ap == - 1) { return - 1; } return Composition.composeData[ap, a & 0xff]; } /// /// Tries to compose two characters canonically. /// /// First character. /// Second character. /// The composed character or -1 if no composition could be found. internal static int compose(char a, char b) { int h = composeHangul(a, b); if (h != - 1) { return h; } int ai = composeIndex(a); if (ai >= Composition.singleFirstStart && ai < Composition.singleSecondStart) { if (b == Composition.singleFirst[ai - Composition.singleFirstStart, 0]) { return Composition.singleFirst[ai - Composition.singleFirstStart, 1]; } else { return - 1; } } int bi = composeIndex(b); if (bi >= Composition.singleSecondStart) { if (a == Composition.singleSecond[bi - Composition.singleSecondStart,0]) { return Composition.singleSecond[bi - Composition.singleSecondStart,1]; } else { return - 1; } } if (ai >= 0 && ai < Composition.multiSecondStart && bi >= Composition.multiSecondStart && bi < Composition.singleFirstStart) { char[] f = Composition.multiFirst[ai]; if (bi - Composition.multiSecondStart < f.Length) { char r = f[bi - Composition.multiSecondStart]; if (r == 0) { return - 1; } else { return r; } } } return - 1; } /// /// Entire hangul code copied from: /// http://www.unicode.org/unicode/reports/tr15/ /// Several hangul specific constants /// internal const int SBase = 0xAC00; internal const int LBase = 0x1100; internal const int VBase = 0x1161; internal const int TBase = 0x11A7; internal const int LCount = 19; internal const int VCount = 21; internal const int TCount = 28; internal static readonly int NCount = VCount * TCount; internal static readonly int SCount = LCount * NCount; /// /// Decomposes a hangul character. /// /// A character to decompose. /// A string containing the hangul decomposition of the input /// character. If no hangul decomposition can be found, a string /// containing the character itself is returned. internal static string decomposeHangul(char s) { int SIndex = s - SBase; if (SIndex < 0 || SIndex >= SCount) { return s.ToString(); } StringBuilder result = new StringBuilder(); int L = LBase + SIndex / NCount; int V = VBase + (SIndex % NCount) / TCount; int T = TBase + SIndex % TCount; result.Append((char) L); result.Append((char) V); if (T != TBase) result.Append((char) T); return result.ToString(); } /// /// Composes two hangul characters. /// /// First character. /// Second character. /// Returns the composed character or -1 if the two characters cannot be composed. internal static int composeHangul(char a, char b) { // 1. check to see if two current characters are L and V int LIndex = a - LBase; if (0 <= LIndex && LIndex < LCount) { int VIndex = b - VBase; if (0 <= VIndex && VIndex < VCount) { // make syllable of form LV return SBase + (LIndex * VCount + VIndex) * TCount; } } // 2. check to see if two current characters are LV and T int SIndex = a - SBase; if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0) { int TIndex = b - TBase; if (0 <= TIndex && TIndex <= TCount) { // make syllable of form LVT return a + TIndex; } } return - 1; } } } libidn-1.38/csharp/Makefile.am0000644000000000000000000000610214076271517013122 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2005-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . CSHARPEXEC = $(SHELL) $(top_builddir)/csharpexec.sh CSHARPCOMP = $(SHELL) $(top_builddir)/csharpcomp.sh CSHARPCOMPFLAGS = SOURCES = AssemblyInfo.cs IDNA.cs RFC3454.cs CombiningClass.cs \ IDNAException.cs Stringprep.cs Composition.cs NFKC.cs \ StringprepException.cs DecompositionKeys.cs Punycode.cs \ DecompositionMappings.cs PunycodeException.cs SOURCES_GENERATE = generate/AssemblyInfo.cs \ generate/GenerateNFKC.cs generate/GenerateRFC3454.cs \ generate/HashSet.cs generate/Program.cs generate/Tokenizer.cs MSVSC = libidn.csproj libidn.csproj.user libidn_PPC.csdproj \ libidn_PPC.csdproj.user libidn_PPC.sln libidn_PPC.suo \ libidn.sln libidn.suo EXTRA_DIST = $(SOURCES) $(SOURCES_GENERATE) $(MSVSC) CLEANFILES = Libidn.dll ALL_LOCAL_TARGETS = INSTALLDIRS_LOCAL_TARGETS = INSTALL_DATA_LOCAL_TARGETS = UNINSTALL_LOCAL_TARGETS = if CSHARP ALL_LOCAL_TARGETS += Libidn.dll INSTALLDIRS_LOCAL_TARGETS += install-dll-dir INSTALL_DATA_LOCAL_TARGETS += install-dll UNINSTALL_LOCAL_TARGETS += uninstall-dll Libidn.dll: $(SOURCES) $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ `for src in $(SOURCES); do echo $(srcdir)/$$src; done` SPEC = $(top_srcdir)/doc/specifications GenerateTables.exe: $(SOURCES_GENERATE) $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ `for src in $(SOURCES_GENERATE); do echo $(srcdir)/$$src; done` if ! test -f rfc3454.txt; then \ ln -s $(SPEC)/rfc3454.txt . \ || cp $(SPEC)/rfc3454.txt . || true; \ fi if ! test -f UnicodeData.txt; then \ ln -s $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt \ || cp $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt || true; \ fi if ! test -f CompositionExclusions.txt; then \ ln -s $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt \ || cp $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt || true; \ fi RFC3454.cs CombiningClass.cs DecompositionKeys.cs DecompositionMappings.cs Composition.cs: $(GEN_SOURCES) make GenerateTables.exe $(CSHARPEXEC) ./GenerateTables.exe install-dll-dir: $(mkinstalldirs) $(DESTDIR)$(libdir) install-dll: install-dll-dir $(INSTALL_DATA) Libidn.dll $(DESTDIR)$(libdir)/Libidn.dll uninstall-dll: rm -f $(DESTDIR)$(libdir)/Libidn.dll endif all-local: $(ALL_LOCAL_TARGETS) install-data-local: $(INSTALL_DATA_LOCAL_TARGETS) installdirs-local: $(INSTALLDIRS_LOCAL_TARGETS) uninstall-local: $(UNINSTALL_LOCAL_TARGETS) libidn-1.38/csharp/generate/0000755000000000000000000000000014076274122012734 500000000000000libidn-1.38/csharp/generate/GenerateNFKC.cs0000644000000000000000000006306714076271517015420 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.IO; using System.Collections; using System.Text; namespace gnu.inet.encoding.misc { public class GenerateNFKC { internal static string stripComment(string sIn) { int c = sIn.IndexOf('#'); if (c == -1) { return sIn; } else { return sIn.Substring(0, (c) - (0)); } } internal static string[] split(string sIn, char sep) { StringBuilder sb = new StringBuilder(sIn); int c = 0; for (int i = 0; i < sb.Length; i++) { if (sb[i] == sep) { c++; } } string[] sOut = new string[c + 1]; c = 0; int l = 0; for (int i = 0; i < sb.Length; i++) { if (sb[i] == sep) { if (l >= i) { sOut[c] = ""; } else { // TODO, check this sOut[c] = sb.ToString(l, i-l); } l = i + 1; c++; } } if (l < sb.Length) { sOut[c] = sb.ToString(l, sb.Length - l); } return sOut; } internal static bool isCompatibilityMapping(string sIn) { return sIn.Length > 0 && sIn[0] == '<'; } internal static string stripCompatibilityTag(string sIn) { return sIn.Substring(sIn.IndexOf('>') + 2); } internal static string toString(string sIn) { StringBuilder sOut = new StringBuilder(); string[] chars = split(sIn, ' '); for (int i = 0; i < chars.Length; i++) { if (chars[i].Equals("005C")) { sOut.Append("\\\\"); } else if (chars[i].Equals("0022")) { sOut.Append("\\\""); } else { sOut.Append("\\u"); sOut.Append(chars[i]); } } return sOut.ToString(); } internal static string decompose(string sIn, SortedList mappings) { StringBuilder sOut = new StringBuilder(); string[] c = split(sIn, ' '); for (int i = 0; i < c.Length; i++) { if (mappings.ContainsKey(c[i])) { if (sOut.Length > 0) { sOut.Append(" "); } sOut.Append(decompose((string)mappings[c[i]], mappings)); } else { if (sOut.Length > 0) { sOut.Append(" "); } sOut.Append(c[i]); } } return sOut.ToString(); } public static void Generate() { // Check if the unicode files exist { FileInfo f1 = new FileInfo("CompositionExclusions.txt"); FileInfo f2 = new FileInfo("UnicodeData.txt"); bool tmpBool; if (File.Exists(f1.FullName)) tmpBool = true; else tmpBool = Directory.Exists(f1.FullName); bool tmpBool2; if (File.Exists(f2.FullName)) tmpBool2 = true; else tmpBool2 = Directory.Exists(f2.FullName); if (!tmpBool || !tmpBool2) { Console.WriteLine("Unable to find UnicodeData.txt or CompositionExclusions.txt."); Console.WriteLine("Please download the latest version of these file from:"); Console.WriteLine("http://www.unicode.org/Public/UNIDATA/"); System.Environment.Exit(1); } } ArrayList exclusions = new ArrayList(); { StreamReader r = new StreamReader("CompositionExclusions.txt", System.Text.Encoding.Default); string line; while (null != (line = r.ReadLine())) { line = stripComment(line); line = line.Trim(); if (line.Length == 0) { // Empty line } else if (line.Length == 4) { exclusions.Add(line); } else { // Skip code points > 0xffff } } r.Close(); } // Read UnicodeData SortedList canonical = new SortedList(); SortedList compatibility = new SortedList(); SortedList combiningClasses = new SortedList(); { StreamReader r = new StreamReader("UnicodeData.txt", Encoding.Default); string line; while (null != (line = r.ReadLine())) { line = stripComment(line); line = line.Trim(); if (line.Length == 0) { // Empty line } else { string[] f = split(line, ';'); if (f[0].Length == 4) { if (!f[5].Equals("")) { if (isCompatibilityMapping(f[5])) { compatibility[f[0]] = stripCompatibilityTag(f[5]); } else { compatibility[f[0]] = f[5]; if (!exclusions.Contains(f[0])) { canonical[f[0]] = f[5]; } } } if (!f[3].Equals("0")) { //UPGRADE_TODO: Method 'java.lang.Integer.parseInt' was converted to 'System.Convert.ToInt32' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073'" combiningClasses[(int)System.Convert.ToInt32(f[0], 16)] = f[3]; } } else { // Skip code points > 0xffff } } } r.Close(); } // Recursively apply compatibility mappings while (true) { bool replaced = false; IEnumerator i = new HashSet(compatibility.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string v = (string)compatibility[k]; string d = decompose(v, compatibility); if (!d.Equals(v)) { replaced = true; compatibility[k] = d; } } if (!replaced) { break; } } // Eliminate duplicate mappings SortedList compatibilityKeys = new SortedList(); ArrayList compatibilityMappings = new ArrayList(); { IEnumerator i = new HashSet(compatibility.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string v = (string)compatibility[k]; int index = compatibilityMappings.IndexOf(v); if (index == -1) { index = compatibilityMappings.Count; compatibilityMappings.Add(v); } compatibilityKeys[k] = (int)index; } } // Create composition tables SortedList firstMap = new SortedList(); SortedList secondMap = new SortedList(); { IEnumerator i = new HashSet(canonical.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string v = (string)canonical[k]; string[] s = split(v, ' '); if (s.Length == 2) { // If both characters have the same combining class, they // won't be combined (in the sequence AB, B is blocked from // A if both have the same combining class) string cc1 = (string)combiningClasses[(int)System.Convert.ToInt32(s[0], 16)]; string cc2 = (string)combiningClasses[(int)System.Convert.ToInt32(s[1], 16)]; if (cc1 != null || (cc1 != null && cc1.Equals(cc2))) { // Ignore this composition // TODO check this //i.remove(); canonical.Remove(k); continue; } if (firstMap.ContainsKey(s[0])) { int c = (int)firstMap[s[0]]; firstMap[s[0]] = (int)(c + 1); } else { firstMap[s[0]] = 1; } if (secondMap.ContainsKey(s[1])) { int c = (int)secondMap[s[1]]; secondMap[s[1]] = (int)(c + 1); } else { secondMap[s[1]] = 1; } } else if (s.Length > 2) { Console.WriteLine("? wrong canonical mapping for " + k); System.Environment.Exit(1); } } } SortedList singleFirstComposition = new SortedList(); SortedList singleSecondComposition = new SortedList(); SortedList complexComposition = new SortedList(); int composeLookupMax = 0; { IEnumerator i = new HashSet(canonical.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string) i.Current; string v = (string) canonical[k]; string[] s = split(v, ' '); if (s.Length == 2) { // TODO, check this int first = 0; if(firstMap.Contains(s[0])) first = (int) firstMap[s[0]]; int second = 0; if (secondMap.Contains(s[1])) second = (int) secondMap[s[1]]; // TODO, check this if (first == 1) { singleFirstComposition[s[0]] = new string[] { s[1], k }; composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[0], 16)); } else if (second == 1) { singleSecondComposition[s[1]] = new string[] { s[0], k }; composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[1], 16)); } else { if (complexComposition.ContainsKey(s[0])) { SortedList m = (SortedList)complexComposition[s[0]]; if (m.ContainsKey(s[1])) { Console.WriteLine("? ambiguous canonical mapping for " + s[0]); System.Environment.Exit(1); } m[s[1]] = k; } else { SortedList m = new SortedList(); m[s[1]] = k; complexComposition[s[0]] = m; } composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[0], 16)); composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[1], 16)); } } } } Console.WriteLine("Generating CombiningClass.cs file..."); // Dump combining classes { StreamWriter w = new StreamWriter("CombiningClass.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class CombiningClass"); w.WriteLine("{"); w.WriteLine("\tpublic static readonly int[,] c = new int[,] {"); System.Text.StringBuilder index = new System.Text.StringBuilder(); int count = 0; for (int i = 0; i < 256; i++) { bool empty = true; StringBuilder page = new StringBuilder(); page.Append(" { /* Page " + i + " */"); for (int j = 0; j < 256; j++) { int c = (int)((i << 8) + j); string cc = (string)combiningClasses[c]; if (0 == (j & 31)) { page.Append("\r\n "); } if (cc == null) { page.Append("0, "); } else { page.Append(cc + ", "); empty = false; } } page.Append("\r\n },"); index.Append(" "); if (!empty) { w.WriteLine(page.ToString()); index.Append(count++); index.Append(",\r\n"); } else { index.Append("-1,\r\n"); } } w.WriteLine(" };\r\n"); w.WriteLine("\tpublic static readonly int[] i = new int[] {"); w.Write(index.ToString()); w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Generating DecompositionKeys.cs file..."); // Dump compatibility decomposition { StreamWriter w = new StreamWriter("DecompositionKeys.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class DecompositionKeys"); w.WriteLine("{"); w.WriteLine("\tpublic static readonly int[] k = new int[] {"); IEnumerator i = new HashSet(compatibilityKeys.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; int index = ((int)compatibilityKeys[k]); w.WriteLine(" '\\u" + k + "', " + index + ","); } w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Generating DecompositionMappings.cs file..."); { StreamWriter w = new StreamWriter("DecompositionMappings.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class DecompositionMappings"); w.WriteLine("{"); w.WriteLine("\tpublic static readonly string[] m = new string[] {"); IEnumerator i = compatibilityMappings.GetEnumerator(); while (i.MoveNext()) { string m = (string)i.Current; w.WriteLine(" \"" + toString(m) + "\","); } w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Generating Composition.cs file..."); // Dump canonical composition { StreamWriter w = new StreamWriter("Composition.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class Composition"); w.WriteLine("{"); IEnumerator i; int index = 0; SortedList indices = new SortedList(); i = new HashSet(complexComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string s0 = (string)i.Current; indices[(int)System.Convert.ToInt32(s0, 16)] = (int)index; index++; } int multiSecondStart = index; w.WriteLine("\t/* jagged Array */"); w.WriteLine("\tpublic static readonly char[][] multiFirst = new char[][] {"); //w.WriteLine(" public final static char[][] multiFirst = new char[][] {"); i = new HashSet(complexComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string s0 = (string)i.Current; SortedList m = (SortedList)complexComposition[s0]; SortedList line = new SortedList(); int maxIndex = 1; System.Collections.IEnumerator i2 = new HashSet(m.Keys).GetEnumerator(); while (i2.MoveNext()) { string s1 = (string)i2.Current; string k = (string)m[s1]; int s1i = (int)System.Convert.ToInt32(s1, 16); if (!indices.ContainsKey(s1i)) { indices[s1i] = (int)index; index++; } line[indices[s1i]] = k; maxIndex = System.Math.Max(maxIndex, ((int)indices[s1i])); } w.Write("\tnew char[] { "); for (int j = multiSecondStart; j <= maxIndex; j++) { if (line.ContainsKey((int)j)) { string s = (string)line[(int)j]; w.Write("'" + toString(s) + "', "); } else { //w.Write(" 0, "); w.Write("'" + toString("0000") + "', "); } } w.WriteLine("},"); } w.WriteLine(" };"); int singleFirstStart = index; w.WriteLine("\tpublic static readonly char[,] singleFirst = new char[,] {"); i = new HashSet(singleFirstComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string[] v = ((string[])singleFirstComposition[k]); w.WriteLine(" { '" + toString(v[0]) + "', '" + toString(v[1]) + "' },"); if (indices.ContainsKey((int)System.Convert.ToInt32(k, 16))) { Console.WriteLine(k + " already indexed!"); } indices[(int)System.Convert.ToInt32(k, 16)] = (int)index; index++; } w.WriteLine(" };"); int singleSecondStart = index; w.WriteLine("\tpublic static readonly char[,] singleSecond = new char[,] {"); i = new HashSet(singleSecondComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string[] v = ((string[])singleSecondComposition[k]); w.WriteLine(" { '" + toString(v[0]) + "', '" + toString(v[1]) + "' },"); indices[(int)System.Convert.ToInt32(k, 16)] = (int)index; index++; } w.WriteLine(" };"); w.WriteLine("\tpublic static readonly int multiSecondStart = " + multiSecondStart + ";"); w.WriteLine("\tpublic static readonly int singleFirstStart = " + singleFirstStart + ";"); w.WriteLine("\tpublic static readonly int singleSecondStart = " + singleSecondStart + ";"); System.Text.StringBuilder compositionPages = new System.Text.StringBuilder(); w.WriteLine("\tpublic static readonly int[] composePage = new int[] {"); int pageCount = 0; for (int j = 0; j * 256 < composeLookupMax + 255; j++) { bool empty = true; StringBuilder page = new StringBuilder(); for (int k = 0; k < 256; k++) { if (k % 16 == 0) { page.Append("\r\n "); } if (indices.ContainsKey((int)(j * 256 + k))) { page.Append(indices[(int)(j * 256 + k)]); page.Append(", "); empty = false; } else { page.Append("-1, "); } } if (empty) { w.WriteLine(" -1,"); } else { w.WriteLine(" " + pageCount + ","); compositionPages.Append("\t{"); compositionPages.Append(page); compositionPages.Append("\r\n },\r\n"); pageCount++; } } w.WriteLine(" };"); //w.WriteLine("\t/* jagged Array */"); w.WriteLine("\tpublic static readonly int[,] composeData = new int[,] {"); w.Write(compositionPages); w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Finished!"); } } } libidn-1.38/csharp/generate/AssemblyInfo.cs0000644000000000000000000000447014076271517015610 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("6D72484E-39BA-4312-9B64-74FD5CB81001")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] libidn-1.38/csharp/generate/GenerateRFC3454.cs0000644000000000000000000003101414076271517015614 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.IO; using System.Text; namespace gnu.inet.encoding.misc { public class GenerateRFC3454 { internal const string FILE_RFC3454 = "rfc3454.txt"; internal const string FILE_OUTPUT = "RFC3454.cs"; public static void Generate() { if (!File.Exists(FILE_RFC3454)) { Console.WriteLine("Unable to find rfc3454.txt."); Console.WriteLine("Please download this file from:"); Console.WriteLine("http://www.ietf.org/rfc/rfc3454.txt"); return; } Console.WriteLine("Generating " + FILE_OUTPUT + " file..."); StreamReader r = new StreamReader(FILE_RFC3454); StreamWriter w = new StreamWriter(FILE_OUTPUT); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("using System;"); w.WriteLine(); w.WriteLine("namespace Gnu.Inet.Encoding{"); w.WriteLine(); w.WriteLine("public class RFC3454"); w.WriteLine("{"); int n = 0; string t = null; System.Text.StringBuilder o1 = null; System.Text.StringBuilder o2 = null; while (true) { string line = r.ReadLine(); string l = line; if (null == l) { break; } l = l.Trim(); if (l.Equals("")) { // Ignore empty line } else if (-1 != l.IndexOf("\u000c")) { // Ignore FF } else if (0 == l.IndexOf("RFC")) { // Ignore page header } else if (0 == l.IndexOf("Hoffman & Blanchet")) { // Ignore page footer } else if (-1 != l.IndexOf("----- Start Table ")) { // Start of a table t = l.Substring(l.IndexOf("Table") + 6, (l.LastIndexOf("-----") - 1) - (l.IndexOf("Table") + 6)); o1 = new System.Text.StringBuilder(); o2 = new System.Text.StringBuilder(); } else if (-1 != l.IndexOf("----- End Table ")) { // End of a table if ("A.1".Equals(t)) { w.WriteLine(" public static char[][] A1 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("B.1".Equals(t)) { w.WriteLine(" public static char[] B1 = new char[] {\r\n" + o1.ToString() + " };\r\n"); } else if ("B.2".Equals(t)) { w.WriteLine(" public static char[] B2search = new char[] {\r\n" + o1.ToString() + " };\r\n"); w.WriteLine(" public static string[] B2replace = new string[] {\r\n" + o2.ToString() + " };\r\n"); } else if ("B.3".Equals(t)) { w.WriteLine(" public static char[] B3search = new char[] {\r\n" + o1.ToString() + " };\r\n"); w.WriteLine(" public static string[] B3replace = new string[] {\r\n" + o2.ToString() + " };\r\n"); } else if ("C.1.1".Equals(t)) { w.WriteLine(" public static char[] C11 = new char[] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.1.2".Equals(t)) { w.WriteLine(" public static char[] C12 = new char[] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.2.1".Equals(t)) { w.WriteLine(" public static char[][] C21 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.2.2".Equals(t)) { w.WriteLine(" public static char[][] C22 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.3".Equals(t)) { w.WriteLine(" public static char[][] C3 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.4".Equals(t)) { w.WriteLine(" public static char[][] C4 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.5".Equals(t)) { w.WriteLine(" public static char[][] C5 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.6".Equals(t)) { w.WriteLine(" public static char[][] C6 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.7".Equals(t)) { w.WriteLine(" public static char[][] C7 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.8".Equals(t)) { w.WriteLine(" public static char[][] C8 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("D.1".Equals(t)) { w.WriteLine(" public static char[][] D1 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("D.2".Equals(t)) { w.WriteLine(" public static char[][] D2 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } t = null; } else if (null != t) { // Filter comments if (-1 != l.LastIndexOf(";")) { string c = l.Substring(l.LastIndexOf(";")).Trim(); try { Convert.ToInt32(c, 16); } catch { l = l.Substring(0, (l.LastIndexOf(";")) - (0)); } } if ("A.1".Equals(t)) { if (4 == l.Length) { o1.Append(" new char[] { '\\u"); o1.Append(l); o1.Append("' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if (5 == l.Length) { //Char o1.Append("\t/* Skip characters outside the range of .NET unicode " + line.Trim() + " */\n"); //Console.WriteLine("Skip: " + l); // Skip characters outside the range of Java unicode } else if (9 == l.Length) { o1.Append(" new char[] { '\\u"); o1.Append(l.Substring(0, (4) - (0))); o1.Append("', '\\u"); o1.Append(l.Substring(5, (9) - (5))); o1.Append("' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if (11 == l.Length) { o1.Append("\t/* Skip characters outside the range of .NET unicode " + line.Trim() + " */\n"); //o1.AppendLine("// " + l); // Console.WriteLine("Skip: " + l); // Skip characters outside the range of Java unicode } else { Console.WriteLine("Unknown format of A.1 line: " + l); } } else if ("B.1".Equals(t)) { Tokenizer tok = new Tokenizer(l, " ;"); o1.Append(" '\\u" + tok.NextToken() + "',"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if ("B.2".Equals(t) || "B.3".Equals(t)) { Tokenizer tok = new Tokenizer(l, "; "); string c = tok.NextToken(); if (c.Length == 4) { o1.Append(" '\\u" + c + "',"); o1.Append("\t/*" + line.Trim() + "*/\r\n"); if (tok.HasMoreTokens()) { o2.Append(" \""); while (tok.HasMoreTokens()) { o2.Append("\\u" + tok.NextToken()); } o2.Append("\","); o2.Append("\t/*" + line.Trim() + "*/\r\n"); } else { o2.Append(" null,"); o2.Append("\t/*" + line.Trim() + "*/\r\n"); } } } else if ("C.1.1".Equals(t)) { o1.Append(" '\\u" + l + "',"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if ("C.1.2".Equals(t)) { o1.Append(" '\\u" + l + "',"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if ("C.2.1".Equals(t) || "C.2.2".Equals(t) || "C.3".Equals(t) || "C.4".Equals(t) || "C.5".Equals(t) || "C.6".Equals(t) || "C.7".Equals(t) || "C.8".Equals(t) || "D.1".Equals(t) || "D.2".Equals(t)) { if (4 == l.Length) { o1.Append(" new char[] { '\\u" + l + "' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if (9 == l.Length) { o1.Append(" new char[] { '\\u"); o1.Append(l.Substring(0, (4) - (0))); o1.Append("', '\\u"); o1.Append(l.Substring(5, (9) - (5))); o1.Append("' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } } } n++; } w.WriteLine("}"); w.WriteLine("}"); w.Close(); } } } libidn-1.38/csharp/generate/Program.cs0000644000000000000000000000276314076271517014627 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace gnu.inet.encoding.misc { class Program { /// /// Main entry point of this console app /// /// static void Main(string[] args) { GenerateRFC3454.Generate(); GenerateNFKC.Generate(); } } } libidn-1.38/csharp/generate/HashSet.cs0000644000000000000000000000607714076271517014561 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Collections; namespace gnu.inet.encoding.misc { /// /// HashSet class. /// public class HashSet : ArrayList { public HashSet() : base() { } public HashSet(System.Collections.ICollection c) { this.AddAll(c); } public HashSet(int capacity) : base(capacity) { } /// /// Adds a new element to the ArrayList if it is not already present. /// /// Element to insert to the ArrayList. /// Returns true if the new element was inserted, false otherwise. new public virtual bool Add(System.Object obj) { bool inserted; if ((inserted = this.Contains(obj)) == false) { base.Add(obj); } return !inserted; } /// /// Adds all the elements of the specified collection that are not present to the list. /// /// Collection where the new elements will be added /// Returns true if at least one element was added, false otherwise. public bool AddAll(System.Collections.ICollection c) { System.Collections.IEnumerator e = new System.Collections.ArrayList(c).GetEnumerator(); bool added = false; while (e.MoveNext() == true) { if (this.Add(e.Current) == true) added = true; } return added; } /// /// Returns a copy of the HashSet instance. /// /// Returns a shallow copy of the current HashSet. public override System.Object Clone() { return base.MemberwiseClone(); } } } libidn-1.38/csharp/generate/Tokenizer.cs0000644000000000000000000001715514076271517015173 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Collections; using System.Text; namespace gnu.inet.encoding.misc { /// /// The class performs token processing in strings /// public class Tokenizer : IEnumerator { /// Position over the string private long currentPos = 0; /// Include demiliters in the results. private bool includeDelims = false; /// Char representation of the String to tokenize. private char[] chars = null; //The tokenizer uses the default delimiter set: the space character, the tab character, the newline character, and the carriage-return character and the form-feed character private string delimiters = " \t\n\r\f"; /// /// Initializes a new class instance with a specified string to process /// /// String to tokenize public Tokenizer(string source) { this.chars = source.ToCharArray(); } /// /// Initializes a new class instance with a specified string to process /// and the specified token delimiters to use /// /// String to tokenize /// String containing the delimiters public Tokenizer(string source, string delimiters) : this(source) { this.delimiters = delimiters; } /// /// Initializes a new class instance with a specified string to process, the specified token /// delimiters to use, and whether the delimiters must be included in the results. /// /// String to tokenize /// String containing the delimiters /// Determines if delimiters are included in the results. public Tokenizer(string source, string delimiters, bool includeDelims) : this(source, delimiters) { this.includeDelims = includeDelims; } /// /// Returns the next token from the token list /// /// The string value of the token public string NextToken() { return NextToken(this.delimiters); } /// /// Returns the next token from the source string, using the provided /// token delimiters /// /// String containing the delimiters to use /// The string value of the token public string NextToken(string delimiters) { //According to documentation, the usage of the received delimiters should be temporary (only for this call). //However, it seems it is not true, so the following line is necessary. this.delimiters = delimiters; //at the end if (this.currentPos == this.chars.Length) throw new System.ArgumentOutOfRangeException(); //if over a delimiter and delimiters must be returned else if ((System.Array.IndexOf(delimiters.ToCharArray(), chars[this.currentPos]) != -1) && this.includeDelims) return "" + this.chars[this.currentPos++]; //need to get the token wo delimiters. else return nextToken(delimiters.ToCharArray()); } //Returns the nextToken wo delimiters private string nextToken(char[] delimiters) { string token = ""; long pos = this.currentPos; //skip possible delimiters while (System.Array.IndexOf(delimiters, this.chars[currentPos]) != -1) //The last one is a delimiter (i.e there is no more tokens) if (++this.currentPos == this.chars.Length) { this.currentPos = pos; throw new System.ArgumentOutOfRangeException(); } //getting the token while (System.Array.IndexOf(delimiters, this.chars[this.currentPos]) == -1) { // don't use += to work around bug in compiler // see https://bugzilla.novell.com/show_bug.cgi?id=372483 token = token + this.chars[this.currentPos]; //the last one is not a delimiter if (++this.currentPos == this.chars.Length) break; } return token; } /// /// Determines if there are more tokens to return from the source string /// /// True or false, depending if there are more tokens public bool HasMoreTokens() { //keeping the current pos long pos = this.currentPos; try { this.NextToken(); } catch (System.ArgumentOutOfRangeException) { return false; } finally { this.currentPos = pos; } return true; } /// /// Remaining tokens count /// public int Count { get { //keeping the current pos long pos = this.currentPos; int i = 0; try { while (true) { this.NextToken(); i++; } } catch (System.ArgumentOutOfRangeException) { this.currentPos = pos; return i; } } } /// /// Performs the same action as NextToken. /// public System.Object Current { get { return (Object)this.NextToken(); } } /// // Performs the same action as HasMoreTokens. /// /// True or false, depending if there are more tokens public bool MoveNext() { return this.HasMoreTokens(); } /// /// Does nothing. /// public void Reset() { ; } } } libidn-1.38/csharp/libidn.sln0000644000000000000000000000147614053001337013040 00000000000000 Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 # SharpDevelop 2.1.0.2376 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libidn", "libidn.csproj", "{BED43666-B1A2-486D-871C-A65A2A925764}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.Build.0 = Debug|Any CPU {BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BED43666-B1A2-486D-871C-A65A2A925764}.Release|Any CPU.Build.0 = Release|Any CPU {BED43666-B1A2-486D-871C-A65A2A925764}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection EndGlobal libidn-1.38/csharp/IDNAException.cs0000644000000000000000000000335614076271517014017 00000000000000/// /// Copyright (C) 2004-2021 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * 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. /// /// or both in parallel, as here. /// /// GNU Libidn 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 copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace Gnu.Inet.Encoding { public class IDNAException : System.Exception { public static string CONTAINS_NON_LDH = "Contains non-LDH characters."; public static string CONTAINS_HYPHEN = "Leading or trailing hyphen not allowed."; public static string CONTAINS_ACE_PREFIX = "ACE prefix (xn--) not allowed."; public static string TOO_LONG = "String too long."; public IDNAException(string m) : base(m) { } // TODO public IDNAException(StringprepException e) :base( "", e) { } public IDNAException(PunycodeException e) : base( "", e) { } } } libidn-1.38/configure0000755000000000000000000331667214076273727011545 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for GNU Libidn 1.38. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: help-libidn@gnu.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU Libidn' PACKAGE_TARNAME='libidn' PACKAGE_VERSION='1.38' PACKAGE_STRING='GNU Libidn 1.38' PACKAGE_BUGREPORT='help-libidn@gnu.org' PACKAGE_URL='http://www.gnu.org/software/libidn/' ac_header_list= # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gt_needs= ac_func_list= gl_getopt_required=POSIX ac_subst_vars='lgltests_LTLIBOBJS lgltests_LIBOBJS lgl_LTLIBOBJS lgl_LIBOBJS gltests_LTLIBOBJS gltests_LIBOBJS gl_LTLIBOBJS gl_LIBOBJS CONFIG_INCLUDE am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ENABLE_DOC_FALSE ENABLE_DOC_TRUE WARN_CFLAGS WSTACK_CFLAGS CSHARP_FALSE CSHARP_TRUE HAVE_CLIX HAVE_MONO CLIX_PATH CLIX_PATH_VAR MONO_PATH_SEPARATOR MONO_PATH HAVE_CLIX_IN_PATH HAVE_MONO_IN_PATH JAVA_FALSE JAVA_TRUE JAR JAVADOC JAVAC JAVA JAVAFLAGS JAVACFLAGS JAVAPREFIX GTK_DOC_USE_REBASE_FALSE GTK_DOC_USE_REBASE_TRUE GTK_DOC_USE_LIBTOOL_FALSE GTK_DOC_USE_LIBTOOL_TRUE GTK_DOC_BUILD_PDF_FALSE GTK_DOC_BUILD_PDF_TRUE GTK_DOC_BUILD_HTML_FALSE GTK_DOC_BUILD_HTML_TRUE ENABLE_GTK_DOC_FALSE ENABLE_GTK_DOC_TRUE HAVE_GTK_DOC_FALSE HAVE_GTK_DOC_TRUE GTKDOC_DEPS_LIBS GTKDOC_DEPS_CFLAGS HTML_DIR GTKDOC_MKPDF GTKDOC_REBASE GTKDOC_CHECK_PATH GTKDOC_CHECK PKG_CONFIG TLD_FALSE TLD_TRUE lgltests_WITNESS LIBUNISTRING_UNITYPES_H LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE LIBUNISTRING_UNISTR_H GL_LGL_GNULIB_MDA_WRITE GL_LGL_GNULIB_MDA_UNLINK GL_LGL_GNULIB_MDA_SWAB GL_LGL_GNULIB_MDA_RMDIR GL_LGL_GNULIB_MDA_READ GL_LGL_GNULIB_MDA_LSEEK GL_LGL_GNULIB_MDA_ISATTY GL_LGL_GNULIB_MDA_GETPID GL_LGL_GNULIB_MDA_GETCWD GL_LGL_GNULIB_MDA_EXECVPE GL_LGL_GNULIB_MDA_EXECVP GL_LGL_GNULIB_MDA_EXECVE GL_LGL_GNULIB_MDA_EXECV GL_LGL_GNULIB_MDA_EXECLP GL_LGL_GNULIB_MDA_EXECLE GL_LGL_GNULIB_MDA_EXECL GL_LGL_GNULIB_MDA_DUP2 GL_LGL_GNULIB_MDA_DUP GL_LGL_GNULIB_MDA_CLOSE GL_LGL_GNULIB_MDA_CHDIR GL_LGL_GNULIB_MDA_ACCESS GL_LGL_GNULIB_WRITE GL_LGL_GNULIB_USLEEP GL_LGL_GNULIB_UNLINKAT GL_LGL_GNULIB_UNLINK GL_LGL_GNULIB_UNISTD_H_SIGPIPE GL_LGL_GNULIB_UNISTD_H_NONBLOCKING GL_LGL_GNULIB_UNISTD_H_GETOPT GL_LGL_GNULIB_TTYNAME_R GL_LGL_GNULIB_TRUNCATE GL_LGL_GNULIB_SYMLINKAT GL_LGL_GNULIB_SYMLINK GL_LGL_GNULIB_SLEEP GL_LGL_GNULIB_SETHOSTNAME GL_LGL_GNULIB_RMDIR GL_LGL_GNULIB_READLINKAT GL_LGL_GNULIB_READLINK GL_LGL_GNULIB_READ GL_LGL_GNULIB_PWRITE GL_LGL_GNULIB_PREAD GL_LGL_GNULIB_PIPE2 GL_LGL_GNULIB_PIPE GL_LGL_GNULIB_LSEEK GL_LGL_GNULIB_LINKAT GL_LGL_GNULIB_LINK GL_LGL_GNULIB_LCHOWN GL_LGL_GNULIB_ISATTY GL_LGL_GNULIB_GROUP_MEMBER GL_LGL_GNULIB_GETUSERSHELL GL_LGL_GNULIB_GETPASS GL_LGL_GNULIB_GETPAGESIZE GL_LGL_GNULIB_GETOPT_POSIX GL_LGL_GNULIB_GETLOGIN_R GL_LGL_GNULIB_GETLOGIN GL_LGL_GNULIB_GETHOSTNAME GL_LGL_GNULIB_GETGROUPS GL_LGL_GNULIB_GETENTROPY GL_LGL_GNULIB_GETDTABLESIZE GL_LGL_GNULIB_GETDOMAINNAME GL_LGL_GNULIB_GETCWD GL_LGL_GNULIB_FTRUNCATE GL_LGL_GNULIB_FSYNC GL_LGL_GNULIB_FDATASYNC GL_LGL_GNULIB_FCHOWNAT GL_LGL_GNULIB_FCHDIR GL_LGL_GNULIB_FACCESSAT GL_LGL_GNULIB_EXECVPE GL_LGL_GNULIB_EXECVP GL_LGL_GNULIB_EXECVE GL_LGL_GNULIB_EXECV GL_LGL_GNULIB_EXECLP GL_LGL_GNULIB_EXECLE GL_LGL_GNULIB_EXECL GL_LGL_GNULIB_EUIDACCESS GL_LGL_GNULIB_ENVIRON GL_LGL_GNULIB_DUP3 GL_LGL_GNULIB_DUP2 GL_LGL_GNULIB_DUP GL_LGL_GNULIB_COPY_FILE_RANGE GL_LGL_GNULIB_CLOSE GL_LGL_GNULIB_CHOWN GL_LGL_GNULIB_CHDIR GL_LGL_GNULIB_ACCESS GL_LGL_GNULIB_MDA_STRDUP GL_LGL_GNULIB_MDA_MEMCCPY GL_LGL_GNULIB_STRVERSCMP GL_LGL_GNULIB_STRSIGNAL GL_LGL_GNULIB_SIGDESCR_NP GL_LGL_GNULIB_SIGABBREV_NP GL_LGL_GNULIB_STRERRORNAME_NP GL_LGL_GNULIB_STRERROR_R GL_LGL_GNULIB_STRERROR GL_LGL_GNULIB_MBSTOK_R GL_LGL_GNULIB_MBSSEP GL_LGL_GNULIB_MBSSPN GL_LGL_GNULIB_MBSPBRK GL_LGL_GNULIB_MBSCSPN GL_LGL_GNULIB_MBSCASESTR GL_LGL_GNULIB_MBSPCASECMP GL_LGL_GNULIB_MBSNCASECMP GL_LGL_GNULIB_MBSCASECMP GL_LGL_GNULIB_MBSSTR GL_LGL_GNULIB_MBSRCHR GL_LGL_GNULIB_MBSCHR GL_LGL_GNULIB_MBSNLEN GL_LGL_GNULIB_MBSLEN GL_LGL_GNULIB_STRTOK_R GL_LGL_GNULIB_STRCASESTR GL_LGL_GNULIB_STRSTR GL_LGL_GNULIB_STRSEP GL_LGL_GNULIB_STRPBRK GL_LGL_GNULIB_STRNLEN GL_LGL_GNULIB_STRNDUP GL_LGL_GNULIB_STRNCAT GL_LGL_GNULIB_STRDUP GL_LGL_GNULIB_STRCHRNUL GL_LGL_GNULIB_STPNCPY GL_LGL_GNULIB_STPCPY GL_LGL_GNULIB_RAWMEMCHR GL_LGL_GNULIB_MEMRCHR GL_LGL_GNULIB_MEMPCPY GL_LGL_GNULIB_MEMMEM GL_LGL_GNULIB_MEMCHR GL_LGL_GNULIB_FFSLL GL_LGL_GNULIB_FFSL GL_LGL_GNULIB_EXPLICIT_BZERO NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H GL_LGL_GNULIB_NL_LANGINFO HAVE_LANGINFO_YESEXPR HAVE_LANGINFO_ERA HAVE_LANGINFO_ALTMON HAVE_LANGINFO_T_FMT_AMPM HAVE_LANGINFO_CODESET HAVE_LANGINFO_H NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H NEXT_LANGINFO_H REPLACE_NL_LANGINFO HAVE_NL_LANGINFO NEXT_AS_FIRST_DIRECTIVE_ICONV_H NEXT_ICONV_H GL_LGL_GNULIB_ICONV GL_LGL_GNULIB_MDA_PUTENV GL_LGL_GNULIB_MDA_MKTEMP GL_LGL_GNULIB_MDA_GCVT GL_LGL_GNULIB_MDA_FCVT GL_LGL_GNULIB_MDA_ECVT GL_LGL_GNULIB_WCTOMB GL_LGL_GNULIB_UNSETENV GL_LGL_GNULIB_UNLOCKPT GL_LGL_GNULIB_SYSTEM_POSIX GL_LGL_GNULIB_STRTOULL GL_LGL_GNULIB_STRTOUL GL_LGL_GNULIB_STRTOLL GL_LGL_GNULIB_STRTOLD GL_LGL_GNULIB_STRTOL GL_LGL_GNULIB_STRTOD GL_LGL_GNULIB_SETENV GL_LGL_GNULIB_SECURE_GETENV GL_LGL_GNULIB_RPMATCH GL_LGL_GNULIB_REALPATH GL_LGL_GNULIB_REALLOC_POSIX GL_LGL_GNULIB_REALLOCARRAY GL_LGL_GNULIB_RANDOM_R GL_LGL_GNULIB_RANDOM GL_LGL_GNULIB_QSORT_R GL_LGL_GNULIB_PUTENV GL_LGL_GNULIB_PTSNAME_R GL_LGL_GNULIB_PTSNAME GL_LGL_GNULIB_POSIX_OPENPT GL_LGL_GNULIB_POSIX_MEMALIGN GL_LGL_GNULIB_MKSTEMPS GL_LGL_GNULIB_MKSTEMP GL_LGL_GNULIB_MKOSTEMPS GL_LGL_GNULIB_MKOSTEMP GL_LGL_GNULIB_MKDTEMP GL_LGL_GNULIB_MBTOWC GL_LGL_GNULIB_MALLOC_POSIX GL_LGL_GNULIB_GRANTPT GL_LGL_GNULIB_GETSUBOPT GL_LGL_GNULIB_GETLOADAVG GL_LGL_GNULIB_FREE_POSIX GL_LGL_GNULIB_CANONICALIZE_FILE_NAME GL_LGL_GNULIB_CALLOC_POSIX GL_LGL_GNULIB_ATOLL GL_LGL_GNULIB_ALIGNED_ALLOC GL_LGL_GNULIB__EXIT REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOULL REPLACE_STRTOUL REPLACE_STRTOLL REPLACE_STRTOLD REPLACE_STRTOL REPLACE_STRTOD REPLACE_SETSTATE REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOCARRAY REPLACE_REALLOC REPLACE_RANDOM_R REPLACE_RANDOM REPLACE_QSORT_R REPLACE_PUTENV REPLACE_PTSNAME_R REPLACE_PTSNAME REPLACE_POSIX_MEMALIGN REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC REPLACE_INITSTATE REPLACE_FREE REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC REPLACE_ALIGNED_ALLOC HAVE_DECL_UNSETENV HAVE_UNLOCKPT HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOUL HAVE_STRTOLL HAVE_STRTOLD HAVE_STRTOL HAVE_STRTOD HAVE_DECL_SETSTATE HAVE_SETSTATE HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_REALLOCARRAY HAVE_RANDOM_R HAVE_RANDOM_H HAVE_RANDOM HAVE_QSORT_R HAVE_PTSNAME_R HAVE_PTSNAME HAVE_POSIX_OPENPT HAVE_POSIX_MEMALIGN HAVE_MKSTEMPS HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP HAVE_MBTOWC HAVE_DECL_INITSTATE HAVE_INITSTATE HAVE_GRANTPT HAVE_GETSUBOPT HAVE_DECL_GETLOADAVG HAVE_DECL_GCVT HAVE_DECL_FCVT HAVE_DECL_ECVT HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE_ALIGNED_ALLOC HAVE__EXIT LIBTESTS_LIBDEPS gltests_WITNESS GL_CXXFLAG_ALLOW_WARNINGS GL_CFLAG_ALLOW_WARNINGS LOG_VALGRIND AM_VALGRINDFLAGS VALGRINDFLAGS DEFAULT_VALGRINDFLAGS VALGRIND_PROGRAM VALGRIND HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H GL_GNULIB_MDA_TZSET GL_GNULIB_TZSET GL_GNULIB_TIME_RZ GL_GNULIB_TIME_R GL_GNULIB_TIMESPEC_GET GL_GNULIB_TIMEGM GL_GNULIB_STRPTIME GL_GNULIB_STRFTIME GL_GNULIB_NANOSLEEP GL_GNULIB_LOCALTIME GL_GNULIB_MKTIME GL_GNULIB_CTIME TIME_H_DEFINES_TIME_UTC UNISTD_H_DEFINES_STRUCT_TIMESPEC PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H REPLACE_LOCALTIME REPLACE_GMTIME GNULIB_GETTIMEOFDAY REPLACE_TZSET REPLACE_TIMEGM REPLACE_STRFTIME REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R REPLACE_CTIME HAVE_TIMEZONE_T HAVE_TIMESPEC_GET HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R WINDOWS_STAT_INODES WINDOWS_64_BIT_OFF_T NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H NEXT_SYS_TYPES_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H GL_GNULIB_MDA_STRDUP GL_GNULIB_MDA_MEMCCPY GL_GNULIB_STRVERSCMP GL_GNULIB_STRSIGNAL GL_GNULIB_SIGDESCR_NP GL_GNULIB_SIGABBREV_NP GL_GNULIB_STRERRORNAME_NP GL_GNULIB_STRERROR_R GL_GNULIB_STRERROR GL_GNULIB_MBSTOK_R GL_GNULIB_MBSSEP GL_GNULIB_MBSSPN GL_GNULIB_MBSPBRK GL_GNULIB_MBSCSPN GL_GNULIB_MBSCASESTR GL_GNULIB_MBSPCASECMP GL_GNULIB_MBSNCASECMP GL_GNULIB_MBSCASECMP GL_GNULIB_MBSSTR GL_GNULIB_MBSRCHR GL_GNULIB_MBSCHR GL_GNULIB_MBSNLEN GL_GNULIB_MBSLEN GL_GNULIB_STRTOK_R GL_GNULIB_STRCASESTR GL_GNULIB_STRSTR GL_GNULIB_STRSEP GL_GNULIB_STRPBRK GL_GNULIB_STRNLEN GL_GNULIB_STRNDUP GL_GNULIB_STRNCAT GL_GNULIB_STRDUP GL_GNULIB_STRCHRNUL GL_GNULIB_STPNCPY GL_GNULIB_STPCPY GL_GNULIB_RAWMEMCHR GL_GNULIB_MEMRCHR GL_GNULIB_MEMPCPY GL_GNULIB_MEMMEM GL_GNULIB_MEMCHR GL_GNULIB_FFSLL GL_GNULIB_FFSL GL_GNULIB_EXPLICIT_BZERO UNDEFINE_STRTOK_R REPLACE_STRSIGNAL REPLACE_STRERRORNAME_NP REPLACE_STRERROR_R REPLACE_STRERROR REPLACE_STRTOK_R REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT REPLACE_STRDUP REPLACE_STRCHRNUL REPLACE_STPNCPY REPLACE_MEMMEM REPLACE_MEMCHR REPLACE_FFSLL HAVE_STRVERSCMP HAVE_DECL_STRSIGNAL HAVE_SIGDESCR_NP HAVE_SIGABBREV_NP HAVE_STRERRORNAME_NP HAVE_DECL_STRERROR_R HAVE_DECL_STRTOK_R HAVE_STRCASESTR HAVE_STRSEP HAVE_STRPBRK HAVE_DECL_STRNLEN HAVE_DECL_STRNDUP HAVE_DECL_STRDUP HAVE_STRCHRNUL HAVE_STPNCPY HAVE_STPCPY HAVE_RAWMEMCHR HAVE_DECL_MEMRCHR HAVE_MEMPCPY HAVE_DECL_MEMMEM HAVE_FFSLL HAVE_FFSL HAVE_EXPLICIT_BZERO HAVE_MBSLEN NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H HAVE_C99_STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX SIZE_T_SUFFIX PTRDIFF_T_SUFFIX HAVE_SIGNED_WINT_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_SIG_ATOMIC_T BITSIZEOF_WINT_T BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H GNULIBHEADERS_OVERRIDE_WINT_T NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H GL_GENERATE_STDDEF_H_FALSE GL_GENERATE_STDDEF_H_TRUE STDDEF_H HAVE_WCHAR_T HAVE_MAX_ALIGN_T REPLACE_NULL HAVE__BOOL GL_GENERATE_STDBOOL_H_FALSE GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H GL_GENERATE_STDARG_H_FALSE GL_GENERATE_STDARG_H_TRUE STDARG_H NEXT_AS_FIRST_DIRECTIVE_STDARG_H NEXT_STDARG_H PMCCABE APPLE_UNIVERSAL_BUILD GL_GENERATE_LIMITS_H_FALSE GL_GENERATE_LIMITS_H_TRUE LIMITS_H NEXT_AS_FIRST_DIRECTIVE_LIMITS_H NEXT_LIMITS_H HAVE_VISIBILITY CFLAG_VISIBILITY HAVE_LD_VERSION_SCRIPT_FALSE HAVE_LD_VERSION_SCRIPT_TRUE HAVE_LD_OUTPUT_DEF_FALSE HAVE_LD_OUTPUT_DEF_TRUE GETOPT_CDEFS_H GETOPT_H HAVE_SYS_CDEFS_H HAVE_GETOPT_H NEXT_AS_FIRST_DIRECTIVE_GETOPT_H NEXT_GETOPT_H GL_GNULIB_MDA_TEMPNAM GL_GNULIB_MDA_PUTW GL_GNULIB_MDA_GETW GL_GNULIB_MDA_FILENO GL_GNULIB_MDA_FDOPEN GL_GNULIB_MDA_FCLOSEALL GL_GNULIB_VSPRINTF_POSIX GL_GNULIB_VSNPRINTF GL_GNULIB_VPRINTF_POSIX GL_GNULIB_VPRINTF GL_GNULIB_VFPRINTF_POSIX GL_GNULIB_VFPRINTF GL_GNULIB_VDPRINTF GL_GNULIB_VSCANF GL_GNULIB_VFSCANF GL_GNULIB_VASPRINTF GL_GNULIB_TMPFILE GL_GNULIB_STDIO_H_SIGPIPE GL_GNULIB_STDIO_H_NONBLOCKING GL_GNULIB_SPRINTF_POSIX GL_GNULIB_SNPRINTF GL_GNULIB_SCANF GL_GNULIB_RENAMEAT GL_GNULIB_RENAME GL_GNULIB_REMOVE GL_GNULIB_PUTS GL_GNULIB_PUTCHAR GL_GNULIB_PUTC GL_GNULIB_PRINTF_POSIX GL_GNULIB_PRINTF GL_GNULIB_POPEN GL_GNULIB_PERROR GL_GNULIB_PCLOSE GL_GNULIB_OBSTACK_PRINTF_POSIX GL_GNULIB_OBSTACK_PRINTF GL_GNULIB_GETLINE GL_GNULIB_GETDELIM GL_GNULIB_GETCHAR GL_GNULIB_GETC GL_GNULIB_FWRITE GL_GNULIB_FTELLO GL_GNULIB_FTELL GL_GNULIB_FSEEKO GL_GNULIB_FSEEK GL_GNULIB_FSCANF GL_GNULIB_FREOPEN GL_GNULIB_FREAD GL_GNULIB_FPUTS GL_GNULIB_FPUTC GL_GNULIB_FPURGE GL_GNULIB_FPRINTF_POSIX GL_GNULIB_FPRINTF GL_GNULIB_FOPEN GL_GNULIB_FGETS GL_GNULIB_FGETC GL_GNULIB_FFLUSH GL_GNULIB_FDOPEN GL_GNULIB_FCLOSE GL_GNULIB_DPRINTF REPLACE_VSPRINTF REPLACE_VSNPRINTF REPLACE_VPRINTF REPLACE_VFPRINTF REPLACE_VDPRINTF REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT REPLACE_RENAME REPLACE_REMOVE REPLACE_PRINTF REPLACE_POPEN REPLACE_PERROR REPLACE_OBSTACK_PRINTF REPLACE_GETLINE REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL REPLACE_FSEEKO REPLACE_FSEEK REPLACE_FREOPEN REPLACE_FPURGE REPLACE_FPRINTF REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FDOPEN REPLACE_FCLOSE REPLACE_DPRINTF HAVE_VDPRINTF HAVE_VASPRINTF HAVE_RENAMEAT HAVE_POPEN HAVE_PCLOSE HAVE_FTELLO HAVE_FSEEKO HAVE_DPRINTF HAVE_DECL_VSNPRINTF HAVE_DECL_SNPRINTF HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETLINE HAVE_DECL_GETDELIM HAVE_DECL_FTELLO HAVE_DECL_FSEEKO HAVE_DECL_FPURGE HAVE_DECL_FCLOSEALL GL_GNULIB_MDA_UMASK GL_GNULIB_MDA_MKDIR GL_GNULIB_MDA_CHMOD GL_GNULIB_OVERRIDES_STRUCT_STAT GL_GNULIB_UTIMENSAT GL_GNULIB_STAT GL_GNULIB_MKNODAT GL_GNULIB_MKNOD GL_GNULIB_MKFIFOAT GL_GNULIB_MKFIFO GL_GNULIB_MKDIRAT GL_GNULIB_MKDIR GL_GNULIB_LSTAT GL_GNULIB_LCHMOD GL_GNULIB_GETUMASK GL_GNULIB_FUTIMENS GL_GNULIB_FSTATAT GL_GNULIB_FSTAT GL_GNULIB_FCHMODAT WINDOWS_64_BIT_ST_SIZE WINDOWS_STAT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H REPLACE_UTIMENSAT REPLACE_STAT REPLACE_MKNODAT REPLACE_MKNOD REPLACE_MKFIFOAT REPLACE_MKFIFO REPLACE_MKDIR REPLACE_LSTAT REPLACE_FUTIMENS REPLACE_FSTATAT REPLACE_FSTAT REPLACE_FCHMODAT HAVE_UTIMENSAT HAVE_MKNODAT HAVE_MKNOD HAVE_MKFIFOAT HAVE_MKFIFO HAVE_MKDIRAT HAVE_LSTAT HAVE_LCHMOD HAVE_GETUMASK HAVE_FUTIMENS HAVE_FSTATAT HAVE_FCHMODAT NEXT_AS_FIRST_DIRECTIVE_FCNTL_H NEXT_FCNTL_H GL_GNULIB_MDA_OPEN GL_GNULIB_MDA_CREAT GL_GNULIB_OPENAT GL_GNULIB_OPEN GL_GNULIB_NONBLOCKING GL_GNULIB_FCNTL GL_GNULIB_CREAT REPLACE_OPENAT REPLACE_OPEN REPLACE_FCNTL REPLACE_CREAT HAVE_OPENAT HAVE_FCNTL EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN GL_GENERATE_ERRNO_H_FALSE GL_GENERATE_ERRNO_H_TRUE ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H PRAGMA_COLUMNS PRAGMA_SYSTEM_HEADER INCLUDE_NEXT_AS_FIRST_DIRECTIVE INCLUDE_NEXT CSHARPCOMPFLAGS HAVE_CSC HAVE_MCS HAVE_CSC_IN_PATH HAVE_MCS_IN_PATH CSHARP_CHOICE GL_GNULIB_MDA_WRITE GL_GNULIB_MDA_UNLINK GL_GNULIB_MDA_SWAB GL_GNULIB_MDA_RMDIR GL_GNULIB_MDA_READ GL_GNULIB_MDA_LSEEK GL_GNULIB_MDA_ISATTY GL_GNULIB_MDA_GETPID GL_GNULIB_MDA_GETCWD GL_GNULIB_MDA_EXECVPE GL_GNULIB_MDA_EXECVP GL_GNULIB_MDA_EXECVE GL_GNULIB_MDA_EXECV GL_GNULIB_MDA_EXECLP GL_GNULIB_MDA_EXECLE GL_GNULIB_MDA_EXECL GL_GNULIB_MDA_DUP2 GL_GNULIB_MDA_DUP GL_GNULIB_MDA_CLOSE GL_GNULIB_MDA_CHDIR GL_GNULIB_MDA_ACCESS GL_GNULIB_WRITE GL_GNULIB_USLEEP GL_GNULIB_UNLINKAT GL_GNULIB_UNLINK GL_GNULIB_UNISTD_H_SIGPIPE GL_GNULIB_UNISTD_H_NONBLOCKING GL_GNULIB_UNISTD_H_GETOPT GL_GNULIB_TTYNAME_R GL_GNULIB_TRUNCATE GL_GNULIB_SYMLINKAT GL_GNULIB_SYMLINK GL_GNULIB_SLEEP GL_GNULIB_SETHOSTNAME GL_GNULIB_RMDIR GL_GNULIB_READLINKAT GL_GNULIB_READLINK GL_GNULIB_READ GL_GNULIB_PWRITE GL_GNULIB_PREAD GL_GNULIB_PIPE2 GL_GNULIB_PIPE GL_GNULIB_LSEEK GL_GNULIB_LINKAT GL_GNULIB_LINK GL_GNULIB_LCHOWN GL_GNULIB_ISATTY GL_GNULIB_GROUP_MEMBER GL_GNULIB_GETUSERSHELL GL_GNULIB_GETPASS GL_GNULIB_GETPAGESIZE GL_GNULIB_GETOPT_POSIX GL_GNULIB_GETLOGIN_R GL_GNULIB_GETLOGIN GL_GNULIB_GETHOSTNAME GL_GNULIB_GETGROUPS GL_GNULIB_GETENTROPY GL_GNULIB_GETDTABLESIZE GL_GNULIB_GETDOMAINNAME GL_GNULIB_GETCWD GL_GNULIB_FTRUNCATE GL_GNULIB_FSYNC GL_GNULIB_FDATASYNC GL_GNULIB_FCHOWNAT GL_GNULIB_FCHDIR GL_GNULIB_FACCESSAT GL_GNULIB_EXECVPE GL_GNULIB_EXECVP GL_GNULIB_EXECVE GL_GNULIB_EXECV GL_GNULIB_EXECLP GL_GNULIB_EXECLE GL_GNULIB_EXECL GL_GNULIB_EUIDACCESS GL_GNULIB_ENVIRON GL_GNULIB_DUP3 GL_GNULIB_DUP2 GL_GNULIB_DUP GL_GNULIB_COPY_FILE_RANGE GL_GNULIB_CLOSE GL_GNULIB_CHOWN GL_GNULIB_CHDIR GL_GNULIB_ACCESS HAVE_WINSOCK2_H HAVE_MSVC_INVALID_PARAMETER_HANDLER UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H UNISTD_H_HAVE_SYS_RANDOM_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R REPLACE_TRUNCATE REPLACE_SYMLINKAT REPLACE_SYMLINK REPLACE_SLEEP REPLACE_RMDIR REPLACE_READLINKAT REPLACE_READLINK REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_LSEEK REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY REPLACE_GETPASS REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R REPLACE_GETDTABLESIZE REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT REPLACE_FACCESSAT REPLACE_EXECVPE REPLACE_EXECVP REPLACE_EXECVE REPLACE_EXECV REPLACE_EXECLP REPLACE_EXECLE REPLACE_EXECL REPLACE_DUP2 REPLACE_DUP REPLACE_CLOSE REPLACE_CHOWN REPLACE_ACCESS HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R HAVE_DECL_TRUNCATE HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R HAVE_DECL_GETLOGIN HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR HAVE_DECL_EXECVPE HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP HAVE_SETHOSTNAME HAVE_READLINKAT HAVE_READLINK HAVE_PWRITE HAVE_PREAD HAVE_PIPE2 HAVE_PIPE HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER HAVE_GETPASS HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS HAVE_GETENTROPY HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT HAVE_EXECVPE HAVE_EUIDACCESS HAVE_DUP3 HAVE_COPY_FILE_RANGE HAVE_CHOWN HAVE_ALLOCA_H GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H ALLOCA GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE POSUB LTLIBINTL LIBINTL INTLLIBS INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS lispdir EMACSLOADPATH EMACS GL_GENERATE_ICONV_H_FALSE GL_GENERATE_ICONV_H_TRUE ICONV_H REPLACE_ICONV_UTF REPLACE_ICONV_OPEN REPLACE_ICONV ICONV_CONST LTLIBICONV LIBICONV HELP2MAN PERL LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL OBJDUMP DLLTOOL AS RANLIB ARFLAGS ac_ct_AR AR host_os host_vendor host_cpu host build_os build_vendor build_cpu build EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM DLL_VERSION LT_AGE LT_REVISION LT_CURRENT target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_largefile enable_year2038 enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_rpath with_libiconv_prefix with_lispdir enable_nls with_libintl_prefix enable_cross_guesses enable_csharp enable_ld_version_script enable_valgrind_tests with_packager with_packager_version with_packager_bug_reports enable_tld with_html_dir enable_gtk_doc enable_gtk_doc_html enable_gtk_doc_pdf enable_java with_java_prefix with_javac_flags with_java_flags enable_ubsan enable_asan enable_gcc_warnings enable_doc ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP LT_SYS_LIBRARY_PATH EMACS EMACSLOADPATH VALGRINDFLAGS PKG_CONFIG GTKDOC_DEPS_CFLAGS GTKDOC_DEPS_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures GNU Libidn 1.38 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/libidn] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of GNU Libidn 1.38:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --disable-year2038 omit support for timestamps past the year 2038 --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-rpath do not hardcode runtime library paths --disable-nls do not use Native Language Support --enable-cross-guesses={conservative|risky} specify policy for cross-compilation guesses --enable-csharp[=IMPL] choose preferred C# implementation (mono) --enable-ld-version-script enable linker version script (default is enabled when possible) --disable-valgrind-tests don't try to run self tests under valgrind --disable-tld disable TLD code --enable-gtk-doc use gtk-doc to build documentation [[default=no]] --enable-gtk-doc-html build documentation in html format [[default=yes]] --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] --enable-java enable Java API --enable-ubsan Turn on Undefined Behavior Sanitizer (UBSan) --enable-asan Turn on Address Sanitizer (ASan) --enable-gcc-warnings turn on lots of GCC warnings (for developers) --disable-doc don't generate any documentation Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-lispdir override the default lisp directory --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-packager String identifying the packager of this software --with-packager-version Packager-specific version information --with-packager-bug-reports Packager info for bug reports (URL/e-mail/...) --with-html-dir=PATH path to installed docs --with-java-prefix=PFX prefix where Java runtime is installed (optional) --with-javac-flags=FLAGS flags to pass to the Java compiler (optional) --with-java-flags=FLAGS flags to pass to the Java VM (optional) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor LT_SYS_LIBRARY_PATH User-defined run-time library search path. EMACS the Emacs editor command EMACSLOADPATH the Emacs library search path VALGRINDFLAGS Additional flags for Valgrind PKG_CONFIG path to pkg-config utility GTKDOC_DEPS_CFLAGS C compiler flags for GTKDOC_DEPS, overriding pkg-config GTKDOC_DEPS_LIBS linker flags for GTKDOC_DEPS, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . GNU Libidn home page: . General help using GNU software: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF GNU Libidn configure 1.38 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ---------------------------------- ## ## Report this to help-libidn@gnu.org ## ## ---------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ac_compile="$ac_save_ac_compile" } # ac_fn_c_check_decl # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by GNU Libidn $as_me 1.38, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " minix/config.h" gt_needs="$gt_needs " as_fn_append ac_func_list " _set_invalid_parameter_handler" as_fn_append ac_header_list " sys/socket.h" as_fn_append ac_func_list " fcntl" as_fn_append ac_header_list " unistd.h" as_fn_append ac_func_list " symlink" as_fn_append ac_header_list " sys/stat.h" as_fn_append ac_func_list " getdelim" as_fn_append ac_func_list " getdtablesize" gl_getopt_required=GNU as_fn_append ac_header_list " getopt.h" as_fn_append ac_header_list " sys/cdefs.h" as_fn_append ac_func_list " getprogname" as_fn_append ac_func_list " getexecname" as_fn_append ac_header_list " limits.h" as_fn_append ac_func_list " lstat" as_fn_append ac_header_list " sys/param.h" as_fn_append ac_header_list " sys/time.h" as_fn_append ac_header_list " inttypes.h" as_fn_append ac_header_list " sys/types.h" as_fn_append ac_header_list " stdint.h" as_fn_append ac_header_list " iconv.h" as_fn_append ac_header_list " langinfo.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Library code modified: REVISION++ # Interfaces changed/added/removed: CURRENT++ REVISION=0 # Interfaces added: AGE++ # Interfaces removed: AGE=0 LT_CURRENT=18 LT_REVISION=3 LT_AGE=6 DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}` { $as_echo "$as_me:${as_lineno-$LINENO}: $PACKAGE_NAME $PACKAGE_VERSION $PACKAGE_TARNAME $LT_CURRENT:$LT_REVISION:$LT_AGE $DLL_VERSION" >&5 $as_echo "$as_me: $PACKAGE_NAME $PACKAGE_VERSION $PACKAGE_TARNAME $LT_CURRENT:$LT_REVISION:$LT_AGE $DLL_VERSION" >&6;} ac_aux_dir= for ac_dir in build-aux "$srcdir"/build-aux; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='libidn' VERSION='1.38' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 $as_echo_n "checking for $CC option to enable C11 features... " >&6; } if ${ac_cv_prog_cc_c11+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); v1.i = 2; v1.w.k = 5; _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); ; return 0; } _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL ac_prog_cc_stdc_options= case "x$ac_cv_prog_cc_c11" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11" CC=$CC$ac_prog_cc_stdc_options { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 $as_echo "$ac_cv_prog_cc_c11" >&6; } ;; esac if test "x$ac_cv_prog_cc_c11" != xno; then : ac_prog_cc_stdc=c11 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 $as_echo_n "checking for $CC option to enable C99 features... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL ac_prog_cc_stdc_options= case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99" CC=$CC$ac_prog_cc_stdc_options { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_prog_cc_stdc=c99 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 $as_echo_n "checking for $CC option to enable C89 features... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL ac_prog_cc_stdc_options= case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89" CC=$CC$ac_prog_cc_stdc_options { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : ac_prog_cc_stdc=c89 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_prog_cc_stdc=no ac_cv_prog_cc_stdc=no fi fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5 $as_echo_n "checking whether the compiler is clang... " >&6; } if ${gl_cv_compiler_clang+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __clang__ barfbarf #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_compiler_clang=no else gl_cv_compiler_clang=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_clang" >&5 $as_echo "$gl_cv_compiler_clang" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option needed when checking for declarations" >&5 $as_echo_n "checking for compiler option needed when checking for declarations... " >&6; } if ${gl_cv_compiler_check_decl_option+:} false; then : $as_echo_n "(cached) " >&6 else if test $gl_cv_compiler_clang = yes; then save_ac_compile="$ac_compile" ac_compile="$ac_compile -Werror=implicit-function-declaration" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration' else gl_cv_compiler_check_decl_option=none fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_compile="$save_ac_compile" else gl_cv_compiler_check_decl_option=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compiler_check_decl_option" >&5 $as_echo "$gl_cv_compiler_check_decl_option" >&6; } if test "x$gl_cv_compiler_check_decl_option" != xnone; then ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" else ac_compile_for_check_decl="$ac_compile" fi DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 $as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 $as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 $as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } if ${ac_cv_should_define__xopen_source+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_should_define__xopen_source=no if test $ac_cv_header_wchar_h = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_should_define__xopen_source=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 $as_echo "$ac_cv_should_define__xopen_source" >&6; } $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h $as_echo "#define _OPENBSD_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h if test $ac_cv_header_minix_config_h = yes; then : MINIX=yes $as_echo "#define _MINIX 1" >>confdefs.h $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h else MINIX= fi if test $ac_cv_safe_to_define___extensions__ = yes; then : $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h fi if test $ac_cv_should_define__xopen_source = yes; then : $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case "$host_os" in openbsd*) $as_echo "#define _ISOC11_SOURCE 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 $as_echo_n "checking for Minix Amsterdam compiler... " >&6; } if ${gl_cv_c_amsterdam_compiler+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ACK__ Amsterdam #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Amsterdam" >/dev/null 2>&1; then : gl_cv_c_amsterdam_compiler=yes else gl_cv_c_amsterdam_compiler=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 $as_echo "$gl_cv_c_amsterdam_compiler" >&6; } if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -z "$ARFLAGS"; then ARFLAGS='cr' fi if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi fi fi # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef _FILE_OFFSET_BITS #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* case $ac_cv_sys_file_offset_bits in #( unknown) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef _LARGE_FILES #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* ;; #( 64) : # Check whether --enable-year2038 was given. if test "${enable_year2038+set}" = set; then : enableval=$enable_year2038; fi if test "$enable_year2038" != no; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t" >&5 $as_echo_n "checking for 64-bit time_t... " >&6; } if ${gl_cv_type_time_t_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that time_t can represent 2**63 - 1 correctly. We can't simply define LARGE_TIME_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31)) int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721 && LARGE_TIME_T % 2147483647 == 1) ? 1 : -1]; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_time_t_64=yes else gl_cv_type_time_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_time_t_64" >&5 $as_echo "$gl_cv_type_time_t_64" >&6; } if test "$gl_cv_type_time_t_64" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t with _TIME_BITS=64" >&5 $as_echo_n "checking for 64-bit time_t with _TIME_BITS=64... " >&6; } if ${gl_cv_type_time_t_bits_macro+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _TIME_BITS 64 #define _FILE_OFFSET_BITS 64 #include /* Check that time_t can represent 2**63 - 1 correctly. We can't simply define LARGE_TIME_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31)) int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721 && LARGE_TIME_T % 2147483647 == 1) ? 1 : -1]; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_time_t_bits_macro=yes else gl_cv_type_time_t_bits_macro=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_time_t_bits_macro" >&5 $as_echo "$gl_cv_type_time_t_bits_macro" >&6; } if test "$gl_cv_type_time_t_bits_macro" = yes; then $as_echo "#define _TIME_BITS 64" >>confdefs.h $as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h gl_cv_type_time_t_64=yes fi fi if test $gl_cv_type_time_t_64 = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _USE_32BIT_TIME_T int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "This package requires a 64-bit 'time_t' type. Remove _USE_32BIT_TIME_T from the compiler flags. See \`config.log' for more details" "$LINENO" 5; } else # If not cross-compiling and says we should check, # and 'touch' works with a large timestamp, then evidently 64-bit time_t # is desired and supported, so fail and ask the builder to fix the # problem. Otherwise, just warn the builder. if test "$gl_warned_about_64_bit_time_t" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS=\"-m64\" LDFLAGS=\"-m64\"'?" >&5 $as_echo "$as_me: WARNING: This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS=\"-m64\" LDFLAGS=\"-m64\"'?" >&2;} gl_warned_about_64_bit_time_t=yes fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi ;; #( *) : ;; esac fi case "$host_os" in mingw*) $as_echo "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h ;; esac # Pre-early section. # Code from module absolute-header: # Code from module alloca-opt: # Code from module announce-gen: # Code from module autobuild: if test -z "$AB_PACKAGE"; then AB_PACKAGE=${PACKAGE_NAME:-$PACKAGE} fi { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild project... $AB_PACKAGE" >&5 $as_echo "$as_me: autobuild project... $AB_PACKAGE" >&6;} if test -z "$AB_VERSION"; then AB_VERSION=${PACKAGE_VERSION:-$VERSION} fi { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild revision... $AB_VERSION" >&5 $as_echo "$as_me: autobuild revision... $AB_VERSION" >&6;} hostname=`hostname` if test "$hostname"; then { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild hostname... $hostname" >&5 $as_echo "$as_me: autobuild hostname... $hostname" >&6;} fi date=`TZ=UTC0 date +%Y%m%dT%H%M%SZ` if test "$?" != 0; then date=`date` fi if test "$date"; then { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild timestamp... $date" >&5 $as_echo "$as_me: autobuild timestamp... $date" >&6;} fi # Code from module basename-lgpl: # Code from module c99: # Code from module cloexec: # Code from module close: # Code from module csharpcomp-script: # Code from module csharpexec-script: # Code from module do-release-commit-and-tag: # Code from module double-slash-root: # Code from module dup2: # Code from module errno: # Code from module error: # Code from module extensions: # Code from module extern-inline: # Code from module fcntl: # Code from module fcntl-h: # Code from module fd-hook: # Code from module fdl-1.3: # Code from module filename: # Code from module fstat: # Code from module gendocs: # Code from module getdelim: # Code from module getdtablesize: # Code from module getline: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module getprogname: # Code from module gettext-h: # Code from module git-version-gen: # Code from module gitlog-to-changelog: # Code from module gnu-web-doc-update: # Code from module gnumakefile: # Code from module gnupload: # Code from module idx: # Code from module include_next: # Code from module intprops: # Code from module largefile: # Code from module lib-msvc-compat: # Code from module lib-symbol-versions: # Code from module lib-symbol-visibility: # Code from module limits-h: # Code from module maintainer-makefile: # Code from module malloca: # Code from module manywarnings: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nocrash: # Code from module open: # Code from module pathmax: # Code from module pmccabe2html: # Code from module progname: # Code from module readme-release: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stat: # Code from module stat-time: # Code from module std-gnu11: # Code from module stdarg: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module strerror: # Code from module strerror-override: # Code from module string: # Code from module sys_stat: # Code from module sys_types: # Code from module time: # Code from module unistd: # Code from module update-copyright: # Code from module useless-if-before-free: # Code from module valgrind-tests: # Code from module vc-list-files: # Code from module verify: # Code from module version-etc: # Code from module warnings: # Code from module xalloc-oversized: # Pre-early section. # Code from module absolute-header: # Code from module attribute: # Code from module c-ctype: # Code from module c-strcase: # Code from module c99: # Code from module extensions: # Code from module extern-inline: # Code from module free-posix: # Code from module gettext-h: # Code from module gperf: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module iconv_open: # Code from module include_next: # Code from module inline: # Code from module langinfo: # Code from module libc-config: # Code from module limits-h: # Code from module multiarch: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module std-gnu11: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdlib: # Code from module striconv: # Code from module string: # Code from module strverscmp: # Code from module sys_types: # Code from module unistd: # Code from module unistr/base: # Code from module unistr/u8-check: # Code from module unistr/u8-mbtoucr: # Code from module unistr/u8-uctomb: # Code from module unitypes: # Checks for programs. if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.6' macro_revision='2.4.6' ltmain=$ac_aux_dir/ltmain.sh # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cr} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cr libconftest.a conftest.o" >&5 $AR cr libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[912]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC ac_config_commands="$ac_config_commands libtool" # Only expand once: PERL=${PERL-"${am_missing_run}perl"} HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"} if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 $as_echo_n "checking for ld... " >&6; } elif test "$GCC" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test -n "$LD"; then # Let the user override the test with a path. : else if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # The compiler produces 64-bit code. Add option '-b64' so that the # linker groks 64-bit object files. case "$acl_cv_path_LD " in *" -b64 "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; sparc64-*-netbsd*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else # The compiler produces 32-bit code. Add option '-m elf32_sparc' # so that the linker groks 32-bit object files. case "$acl_cv_path_LD " in *" -m elf32_sparc "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; esac fi LD="$acl_cv_path_LD" fi if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 $as_echo_n "checking 32-bit host C ABI... " >&6; } if ${gl_cv_host_cpu_c_abi_32bit+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$gl_cv_host_cpu_c_abi"; then case "$gl_cv_host_cpu_c_abi" in i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) gl_cv_host_cpu_c_abi_32bit=yes ;; x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) gl_cv_host_cpu_c_abi_32bit=no ;; *) gl_cv_host_cpu_c_abi_32bit=unknown ;; esac else case "$host_cpu" in # CPUs that only support a 32-bit ABI. arc \ | bfin \ | cris* \ | csky \ | epiphany \ | ft32 \ | h8300 \ | m68k \ | microblaze | microblazeel \ | nds32 | nds32le | nds32be \ | nios2 | nios2eb | nios2el \ | or1k* \ | or32 \ | sh | sh1234 | sh1234elb \ | tic6x \ | xtensa* ) gl_cv_host_cpu_c_abi_32bit=yes ;; # CPUs that only support a 64-bit ABI. alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ | mmix ) gl_cv_host_cpu_c_abi_32bit=no ;; i[34567]86 ) gl_cv_host_cpu_c_abi_32bit=yes ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) \ && !(defined __ILP32__ || defined _ILP32) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _ILP32 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=yes else gl_cv_host_cpu_c_abi_32bit=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; rs6000 ) gl_cv_host_cpu_c_abi_32bit=yes ;; riscv32 | riscv64 ) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi_32bit=no else gl_cv_host_cpu_c_abi_32bit=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; *) gl_cv_host_cpu_c_abi_32bit=unknown ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 $as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; } HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 $as_echo_n "checking for ELF binary format... " >&6; } if ${gl_cv_elf+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : gl_cv_elf=yes else gl_cv_elf=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 $as_echo "$gl_cv_elf" >&6; } if test $gl_cv_elf = yes; then # Extract the ELF class of a file (5th byte) in decimal. # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header if od -A x < /dev/null >/dev/null 2>/dev/null; then # Use POSIX od. func_elfclass () { od -A n -t d1 -j 4 -N 1 } else # Use BSD hexdump. func_elfclass () { dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' echo } fi # Use 'expr', not 'test', to compare the values of func_elfclass, because on # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, # not 1 or 2. case $HOST_CPU_C_ABI_32BIT in yes) # 32-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null } ;; no) # 64-bit ABI. acl_is_expected_elfclass () { expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null } ;; *) # Unknown. acl_is_expected_elfclass () { : } ;; esac else acl_is_expected_elfclass () { : } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 $as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } if ${acl_cv_libdirstems+:} false; then : $as_echo_n "(cached) " >&6 else acl_libdirstem=lib acl_libdirstem2= acl_libdirstem3= case "$host_os" in solaris*) if test $HOST_CPU_C_ABI_32BIT = no; then acl_libdirstem2=lib/64 case "$host_cpu" in sparc*) acl_libdirstem3=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test $HOST_CPU_C_ABI_32BIT != no; then # 32-bit or unknown ABI. if test -d /usr/lib32; then acl_libdirstem2=lib32 fi fi if test $HOST_CPU_C_ABI_32BIT != yes; then # 64-bit or unknown ABI. if test -d /usr/lib64; then acl_libdirstem3=lib64 fi fi if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib32 ) acl_libdirstem2=lib32 ;; */lib64 ) acl_libdirstem3=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" if test $HOST_CPU_C_ABI_32BIT = yes; then # 32-bit ABI. acl_libdirstem3= fi if test $HOST_CPU_C_ABI_32BIT = no; then # 64-bit ABI. acl_libdirstem2= fi fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 $as_echo "$acl_cv_libdirstems" >&6; } acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi fi if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi ICONV_CONST=; REPLACE_ICONV=0; REPLACE_ICONV_OPEN=0; REPLACE_ICONV_UTF=0; ICONV_H=''; if false; then ICONV_H='iconv.h' fi if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif int main () { int result = 0; /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from successful returns. This is even documented in */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ { /* Try standardized names. */ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); /* Try IRIX, OSF/1 names. */ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); /* Try AIX names. */ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); /* Try HP-UX names. */ iconv_t cd4 = iconv_open ("utf8", "eucJP"); if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) result |= 16; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd2 != (iconv_t)(-1)) iconv_close (cd2); if (cd3 != (iconv_t)(-1)) iconv_close (cd3); if (cd4 != (iconv_t)(-1)) iconv_close (cd4); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iconv is compatible with its POSIX signature" >&5 $as_echo_n "checking whether iconv is compatible with its POSIX signature... " >&6; } if ${gl_cv_iconv_nonconst+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_iconv_nonconst=yes else gl_cv_iconv_nonconst=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_iconv_nonconst" >&5 $as_echo "$gl_cv_iconv_nonconst" >&6; } else gl_cv_iconv_nonconst=yes fi if test $gl_cv_iconv_nonconst = yes; then iconv_arg1="" else iconv_arg1="const" fi cat >>confdefs.h <<_ACEOF #define ICONV_CONST $iconv_arg1 _ACEOF if test $gl_cv_iconv_nonconst != yes; then ICONV_CONST="const" fi # If set to t, that means we are running in a shell under Emacs. # If you have an Emacs named "t", then use the full path. test x"$EMACS" = xt && EMACS= for ac_prog in emacs xemacs do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_EMACS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$EMACS"; then ac_cv_prog_EMACS="$EMACS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_EMACS="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi EMACS=$ac_cv_prog_EMACS if test -n "$EMACS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5 $as_echo "$EMACS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$EMACS" && break done test -n "$EMACS" || EMACS="no" # Check whether --with-lispdir was given. if test "${with_lispdir+set}" = set; then : withval=$with_lispdir; lispdir="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 $as_echo_n "checking where .elc files should go... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5 $as_echo "$lispdir" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 $as_echo_n "checking where .elc files should go... " >&6; } if ${am_cv_lispdir+:} false; then : $as_echo_n "(cached) " >&6 else if test $EMACS != "no"; then if test x${lispdir+set} != xset; then # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. { { $as_echo "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' conftest.out"; } >&5 ($EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5 $as_echo "$am_cv_lispdir" >&6; } lispdir="$am_cv_lispdir" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.19 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif int main () { int result = 0; /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from successful returns. This is even documented in */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ { /* Try standardized names. */ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); /* Try IRIX, OSF/1 names. */ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); /* Try AIX names. */ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); /* Try HP-UX names. */ iconv_t cd4 = iconv_open ("utf8", "eucJP"); if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) result |= 16; if (cd1 != (iconv_t)(-1)) iconv_close (cd1); if (cd2 != (iconv_t)(-1)) iconv_close (cd2); if (cd3 != (iconv_t)(-1)) iconv_close (cd3); if (cd4 != (iconv_t)(-1)) iconv_close (cd4); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" additional_libdir2="$withval/$acl_libdirstem2" additional_libdir3="$withval/$acl_libdirstem3" fi fi fi if test "X$additional_libdir2" = "X$additional_libdir"; then additional_libdir2= fi if test "X$additional_libdir3" = "X$additional_libdir"; then additional_libdir3= fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do if test "X$found_dir" = "X"; then eval dir=\$$additional_libdir_variable if test -n "$dir"; then if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi fi done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem3 | */$acl_libdirstem3/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$dependency_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dep=`echo "X$dep" | sed -e 's/^X-l//'` if test "X$dep" != Xc \ || case $host_os in linux* | gnu* | k*bsd*-gnu) false ;; *) true ;; esac; then names_next_round="$names_next_round $dep" fi ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" if test "$am_cv_func_iconv" != "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: *** Your system does not have iconv(). The iconv() function is not strictly required by the source code. However, that may change in the future, unless you report that this may be a problem for you. Please report this to $PACKAGE_BUGREPORT. ***" >&5 $as_echo "$as_me: *** Your system does not have iconv(). The iconv() function is not strictly required by the source code. However, that may change in the future, unless you report that this may be a problem for you. Please report this to $PACKAGE_BUGREPORT. ***" >&6;} fi # For gnulib stuff in gl/. # Check whether --enable-cross-guesses was given. if test "${enable_cross_guesses+set}" = set; then : enableval=$enable_cross_guesses; if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-cross-guesses" >&5 $as_echo "$as_me: WARNING: invalid argument supplied to --enable-cross-guesses" >&2;} enableval=conservative fi gl_cross_guesses="$enableval" else gl_cross_guesses=conservative fi if test $gl_cross_guesses = risky; then gl_cross_guess_normal="guessing yes" gl_cross_guess_inverted="guessing no" else gl_cross_guess_normal="guessing no" gl_cross_guess_inverted="guessing yes" fi LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi HAVE_CHOWN=1; HAVE_COPY_FILE_RANGE=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; HAVE_EXECVPE=1; HAVE_FACCESSAT=1; HAVE_FCHDIR=1; HAVE_FCHOWNAT=1; HAVE_FDATASYNC=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDTABLESIZE=1; HAVE_GETENTROPY=1; HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GETPASS=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; HAVE_PIPE=1; HAVE_PIPE2=1; HAVE_PREAD=1; HAVE_PWRITE=1; HAVE_READLINK=1; HAVE_READLINKAT=1; HAVE_SETHOSTNAME=1; HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_EXECVPE=1; HAVE_DECL_FCHDIR=1; HAVE_DECL_FDATASYNC=1; HAVE_DECL_GETDOMAINNAME=1; HAVE_DECL_GETLOGIN=1; HAVE_DECL_GETLOGIN_R=1; HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; HAVE_DECL_TRUNCATE=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; REPLACE_ACCESS=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_DUP=0; REPLACE_DUP2=0; REPLACE_EXECL=0; REPLACE_EXECLE=0; REPLACE_EXECLP=0; REPLACE_EXECV=0; REPLACE_EXECVE=0; REPLACE_EXECVP=0; REPLACE_EXECVPE=0; REPLACE_FACCESSAT=0; REPLACE_FCHOWNAT=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; REPLACE_GETDOMAINNAME=0; REPLACE_GETDTABLESIZE=0; REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_GETPASS=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; REPLACE_LINKAT=0; REPLACE_LSEEK=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_READLINKAT=0; REPLACE_RMDIR=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=0; REPLACE_SYMLINKAT=0; REPLACE_TRUNCATE=0; REPLACE_TTYNAME_R=0; REPLACE_UNLINK=0; REPLACE_UNLINKAT=0; REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_SYS_RANDOM_H=0; UNISTD_H_HAVE_WINSOCK2_H=0; UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 $as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi GL_GNULIB_ACCESS=0 GL_GNULIB_CHDIR=0 GL_GNULIB_CHOWN=0 GL_GNULIB_CLOSE=0 GL_GNULIB_COPY_FILE_RANGE=0 GL_GNULIB_DUP=0 GL_GNULIB_DUP2=0 GL_GNULIB_DUP3=0 GL_GNULIB_ENVIRON=0 GL_GNULIB_EUIDACCESS=0 GL_GNULIB_EXECL=0 GL_GNULIB_EXECLE=0 GL_GNULIB_EXECLP=0 GL_GNULIB_EXECV=0 GL_GNULIB_EXECVE=0 GL_GNULIB_EXECVP=0 GL_GNULIB_EXECVPE=0 GL_GNULIB_FACCESSAT=0 GL_GNULIB_FCHDIR=0 GL_GNULIB_FCHOWNAT=0 GL_GNULIB_FDATASYNC=0 GL_GNULIB_FSYNC=0 GL_GNULIB_FTRUNCATE=0 GL_GNULIB_GETCWD=0 GL_GNULIB_GETDOMAINNAME=0 GL_GNULIB_GETDTABLESIZE=0 GL_GNULIB_GETENTROPY=0 GL_GNULIB_GETGROUPS=0 GL_GNULIB_GETHOSTNAME=0 GL_GNULIB_GETLOGIN=0 GL_GNULIB_GETLOGIN_R=0 GL_GNULIB_GETOPT_POSIX=0 GL_GNULIB_GETPAGESIZE=0 GL_GNULIB_GETPASS=0 GL_GNULIB_GETUSERSHELL=0 GL_GNULIB_GROUP_MEMBER=0 GL_GNULIB_ISATTY=0 GL_GNULIB_LCHOWN=0 GL_GNULIB_LINK=0 GL_GNULIB_LINKAT=0 GL_GNULIB_LSEEK=0 GL_GNULIB_PIPE=0 GL_GNULIB_PIPE2=0 GL_GNULIB_PREAD=0 GL_GNULIB_PWRITE=0 GL_GNULIB_READ=0 GL_GNULIB_READLINK=0 GL_GNULIB_READLINKAT=0 GL_GNULIB_RMDIR=0 GL_GNULIB_SETHOSTNAME=0 GL_GNULIB_SLEEP=0 GL_GNULIB_SYMLINK=0 GL_GNULIB_SYMLINKAT=0 GL_GNULIB_TRUNCATE=0 GL_GNULIB_TTYNAME_R=0 GL_GNULIB_UNISTD_H_GETOPT=0 GL_GNULIB_UNISTD_H_NONBLOCKING=0 GL_GNULIB_UNISTD_H_SIGPIPE=0 GL_GNULIB_UNLINK=0 GL_GNULIB_UNLINKAT=0 GL_GNULIB_USLEEP=0 GL_GNULIB_WRITE=0 GL_GNULIB_MDA_ACCESS=1 GL_GNULIB_MDA_CHDIR=1 GL_GNULIB_MDA_CLOSE=1 GL_GNULIB_MDA_DUP=1 GL_GNULIB_MDA_DUP2=1 GL_GNULIB_MDA_EXECL=1 GL_GNULIB_MDA_EXECLE=1 GL_GNULIB_MDA_EXECLP=1 GL_GNULIB_MDA_EXECV=1 GL_GNULIB_MDA_EXECVE=1 GL_GNULIB_MDA_EXECVP=1 GL_GNULIB_MDA_EXECVPE=1 GL_GNULIB_MDA_GETCWD=1 GL_GNULIB_MDA_GETPID=1 GL_GNULIB_MDA_ISATTY=1 GL_GNULIB_MDA_LSEEK=1 GL_GNULIB_MDA_READ=1 GL_GNULIB_MDA_RMDIR=1 GL_GNULIB_MDA_SWAB=1 GL_GNULIB_MDA_UNLINK=1 GL_GNULIB_MDA_WRITE=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for preferred C# implementation" >&5 $as_echo_n "checking for preferred C# implementation... " >&6; } # Check whether --enable-csharp was given. if test "${enable_csharp+set}" = set; then : enableval=$enable_csharp; CSHARP_CHOICE="$enableval" else CSHARP_CHOICE=any fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CSHARP_CHOICE" >&5 $as_echo "$CSHARP_CHOICE" >&6; } case "$CSHARP_CHOICE" in mono) $as_echo "#define CSHARP_CHOICE_MONO 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C# compiler" >&5 $as_echo_n "checking for C# compiler... " >&6; } HAVE_CSHARPCOMP=1 # Extract the first word of "mcs", so it can be a program name with args. set dummy mcs; ac_word=$2 : if ${ac_cv_prog_HAVE_MCS_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_MCS_IN_PATH"; then ac_cv_prog_HAVE_MCS_IN_PATH="$HAVE_MCS_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_MCS_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_MCS_IN_PATH=$ac_cv_prog_HAVE_MCS_IN_PATH if test -n "$HAVE_MCS_IN_PATH"; then : else : fi # Extract the first word of "csc", so it can be a program name with args. set dummy csc; ac_word=$2 : if ${ac_cv_prog_HAVE_CSC_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CSC_IN_PATH"; then ac_cv_prog_HAVE_CSC_IN_PATH="$HAVE_CSC_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CSC_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_CSC_IN_PATH=$ac_cv_prog_HAVE_CSC_IN_PATH if test -n "$HAVE_CSC_IN_PATH"; then : else : fi for impl in "$CSHARP_CHOICE" mono sscli no; do case "$impl" in mono) if test -n "$HAVE_MCS_IN_PATH" \ && mcs --version >/dev/null 2>/dev/null \ && mcs --version 2>/dev/null | grep Mono >/dev/null; then HAVE_MCS=1 ac_result="mcs" break fi ;; sscli) if test -n "$HAVE_CSC_IN_PATH" \ && csc -help >/dev/null 2>/dev/null \ && { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then HAVE_CSC=1 ac_result="csc" break fi ;; no) HAVE_CSHARPCOMP= ac_result="no" break ;; esac done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_result" >&5 $as_echo "$ac_result" >&6; } if test -z "${CSHARPCOMPFLAGS+set}"; then CSHARPCOMPFLAGS="-O -g" fi gl_mda_defines=' #if defined _WIN32 && !defined __CYGWIN__ #define access _access #define chdir _chdir #define chmod _chmod #define close _close #define creat _creat #define dup _dup #define dup2 _dup2 #define ecvt _ecvt #define execl _execl #define execle _execle #define execlp _execlp #define execv _execv #define execve _execve #define execvp _execvp #define execvpe _execvpe #define fcloseall _fcloseall #define fcvt _fcvt #define fdopen _fdopen #define fileno _fileno #define gcvt _gcvt #define getcwd _getcwd #define getpid _getpid #define getw _getw #define isatty _isatty #define j0 _j0 #define j1 _j1 #define jn _jn #define lfind _lfind #define lsearch _lsearch #define lseek _lseek #define memccpy _memccpy #define mkdir _mkdir #define mktemp _mktemp #define open _open #define putenv _putenv #define putw _putw #define read _read #define rmdir _rmdir #define strdup _strdup #define swab _swab #define tempnam _tempnam #define tzset _tzset #define umask _umask #define unlink _unlink #define utime _utime #define wcsdup _wcsdup #define write _write #define y0 _y0 #define y1 _y1 #define yn _yn #endif ' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } if ${gl_cv_have_include_next+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=yes else CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=buggy else gl_cv_have_include_next=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 $as_echo "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether source code line length is unlimited" >&5 $as_echo_n "checking whether source code line length is unlimited... " >&6; } if ${gl_cv_source_line_length_unlimited+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM choke me #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1; then : gl_cv_source_line_length_unlimited=no else gl_cv_source_line_length_unlimited=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_source_line_length_unlimited" >&5 $as_echo "$gl_cv_source_line_length_unlimited" >&6; } if test $gl_cv_source_line_length_unlimited = no; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } if ${gl_cv_header_errno_h_complete+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "booboo" >/dev/null 2>&1; then : gl_cv_header_errno_h_complete=no else gl_cv_header_errno_h_complete=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 $as_echo "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_errno_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'errno.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_errno_h gl_cv_next_errno_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 $as_echo "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'errno.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_errno_h fi NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive ERRNO_H='errno.h' fi if test -n "$ERRNO_H"; then GL_GENERATE_ERRNO_H_TRUE= GL_GENERATE_ERRNO_H_FALSE='#' else GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE= fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=yes else gl_cv_header_errno_h_EMULTIHOP=no fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 $as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= ;; *) EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } if ${gl_cv_header_errno_h_ENOLINK+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=yes else gl_cv_header_errno_h_ENOLINK=no fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = hidden; then if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 $as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= ;; *) ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=yes else gl_cv_header_errno_h_EOVERFLOW=no fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= ;; *) EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" ;; esac fi ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi XGETTEXT_EXTRA_OPTIONS= HAVE_FCNTL=1; HAVE_OPENAT=1; REPLACE_CREAT=0; REPLACE_FCNTL=0; REPLACE_OPEN=0; REPLACE_OPENAT=0; GL_GNULIB_CREAT=0 GL_GNULIB_FCNTL=0 GL_GNULIB_NONBLOCKING=0 GL_GNULIB_OPEN=0 GL_GNULIB_OPENAT=0 GL_GNULIB_MDA_CREAT=1 GL_GNULIB_MDA_OPEN=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess 'no' on native Windows. mingw*) gl_cv_header_working_fcntl_h='no' ;; *) gl_cv_header_working_fcntl_h=cross-compiling ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include $gl_mda_defines #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main () { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_fcntl_h=yes else case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 $as_echo "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOATIME $ac_val _ACEOF case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOFOLLOW $ac_val _ACEOF ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default " if test "x$ac_cv_type_pid_t" = xyes; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _WIN64 && !defined __CYGWIN__ LLP64 #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_pid_type='int' else gl_pid_type='__int64' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat >>confdefs.h <<_ACEOF #define pid_t $gl_pid_type _ACEOF fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi if test $gl_cv_have_include_next = yes; then gl_cv_next_fcntl_h='<'fcntl.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'fcntl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_fcntl_h gl_cv_next_fcntl_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 $as_echo "$gl_cv_next_fcntl_h" >&6; } fi NEXT_FCNTL_H=$gl_cv_next_fcntl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'fcntl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_fcntl_h fi NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive HAVE_FCHMODAT=1; HAVE_FSTATAT=1; HAVE_FUTIMENS=1; HAVE_GETUMASK=1; HAVE_LCHMOD=1; HAVE_LSTAT=1; HAVE_MKDIRAT=1; HAVE_MKFIFO=1; HAVE_MKFIFOAT=1; HAVE_MKNOD=1; HAVE_MKNODAT=1; HAVE_UTIMENSAT=1; REPLACE_FCHMODAT=0; REPLACE_FSTAT=0; REPLACE_FSTATAT=0; REPLACE_FUTIMENS=0; REPLACE_LSTAT=0; REPLACE_MKDIR=0; REPLACE_MKFIFO=0; REPLACE_MKFIFOAT=0; REPLACE_MKNOD=0; REPLACE_MKNODAT=0; REPLACE_STAT=0; REPLACE_UTIMENSAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stat_broken=no else ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 $as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then $as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi case "$host_os" in mingw*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 $as_echo_n "checking for 64-bit off_t... " >&6; } if ${gl_cv_type_off_t_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_off_t_64=yes else gl_cv_type_off_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 $as_echo "$gl_cv_type_off_t_64" >&6; } if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit st_size" >&5 $as_echo_n "checking for 64-bit st_size... " >&6; } if ${gl_cv_member_st_size_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct stat buf; int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_member_st_size_64=yes else gl_cv_member_st_size_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_member_st_size_64" >&5 $as_echo "$gl_cv_member_st_size_64" >&6; } if test $gl_cv_member_st_size_64 = no; then WINDOWS_64_BIT_ST_SIZE=1 else WINDOWS_64_BIT_ST_SIZE=0 fi ;; *) WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html # Put 'restrict' last, because C++ lacks it. for ac_kw in __restrict__ __restrict _Restrict restrict; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } int main () { int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_restrict=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 $as_echo "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) $as_echo "#define restrict /**/" >>confdefs.h ;; *) cat >>confdefs.h <<_ACEOF #define restrict $ac_cv_c_restrict _ACEOF ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_stat_h gl_cv_next_sys_stat_h='"'$gl_header'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive WINDOWS_STAT_TIMESPEC=0 ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi case "$host_os" in mingw*) for ac_header in sdkddkver.h do : ac_fn_c_check_header_mongrel "$LINENO" "sdkddkver.h" "ac_cv_header_sdkddkver_h" "$ac_includes_default" if test "x$ac_cv_header_sdkddkver_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SDKDDKVER_H 1 _ACEOF fi done ;; esac GL_GNULIB_FCHMODAT=0 GL_GNULIB_FSTAT=0 GL_GNULIB_FSTATAT=0 GL_GNULIB_FUTIMENS=0 GL_GNULIB_GETUMASK=0 GL_GNULIB_LCHMOD=0 GL_GNULIB_LSTAT=0 GL_GNULIB_MKDIR=0 GL_GNULIB_MKDIRAT=0 GL_GNULIB_MKFIFO=0 GL_GNULIB_MKFIFOAT=0 GL_GNULIB_MKNOD=0 GL_GNULIB_MKNODAT=0 GL_GNULIB_STAT=0 GL_GNULIB_UTIMENSAT=0 GL_GNULIB_OVERRIDES_STRUCT_STAT=0 GL_GNULIB_MDA_CHMOD=1 GL_GNULIB_MDA_MKDIR=1 GL_GNULIB_MDA_UMASK=1 HAVE_DECL_FCLOSEALL=1; HAVE_DECL_FPURGE=1; HAVE_DECL_FSEEKO=1; HAVE_DECL_FTELLO=1; HAVE_DECL_GETDELIM=1; HAVE_DECL_GETLINE=1; HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_SNPRINTF=1; HAVE_DECL_VSNPRINTF=1; HAVE_DPRINTF=1; HAVE_FSEEKO=1; HAVE_FTELLO=1; HAVE_PCLOSE=1; HAVE_POPEN=1; HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; HAVE_VDPRINTF=1; REPLACE_DPRINTF=0; REPLACE_FCLOSE=0; REPLACE_FDOPEN=0; REPLACE_FFLUSH=0; REPLACE_FOPEN=0; REPLACE_FPRINTF=0; REPLACE_FPURGE=0; REPLACE_FREOPEN=0; REPLACE_FSEEK=0; REPLACE_FSEEKO=0; REPLACE_FTELL=0; REPLACE_FTELLO=0; REPLACE_GETDELIM=0; REPLACE_GETLINE=0; REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; REPLACE_POPEN=0; REPLACE_PRINTF=0; REPLACE_REMOVE=0; REPLACE_RENAME=0; REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; REPLACE_VDPRINTF=0; REPLACE_VFPRINTF=0; REPLACE_VPRINTF=0; REPLACE_VSNPRINTF=0; REPLACE_VSPRINTF=0; ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default" if test "x$ac_cv_have_decl_getdelim" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDELIM $ac_have_decl _ACEOF GL_GNULIB_DPRINTF=0 GL_GNULIB_FCLOSE=0 GL_GNULIB_FDOPEN=0 GL_GNULIB_FFLUSH=0 GL_GNULIB_FGETC=0 GL_GNULIB_FGETS=0 GL_GNULIB_FOPEN=0 GL_GNULIB_FPRINTF=0 GL_GNULIB_FPRINTF_POSIX=0 GL_GNULIB_FPURGE=0 GL_GNULIB_FPUTC=0 GL_GNULIB_FPUTS=0 GL_GNULIB_FREAD=0 GL_GNULIB_FREOPEN=0 GL_GNULIB_FSCANF=0 GL_GNULIB_FSEEK=0 GL_GNULIB_FSEEKO=0 GL_GNULIB_FTELL=0 GL_GNULIB_FTELLO=0 GL_GNULIB_FWRITE=0 GL_GNULIB_GETC=0 GL_GNULIB_GETCHAR=0 GL_GNULIB_GETDELIM=0 GL_GNULIB_GETLINE=0 GL_GNULIB_OBSTACK_PRINTF=0 GL_GNULIB_OBSTACK_PRINTF_POSIX=0 GL_GNULIB_PCLOSE=0 GL_GNULIB_PERROR=0 GL_GNULIB_POPEN=0 GL_GNULIB_PRINTF=0 GL_GNULIB_PRINTF_POSIX=0 GL_GNULIB_PUTC=0 GL_GNULIB_PUTCHAR=0 GL_GNULIB_PUTS=0 GL_GNULIB_REMOVE=0 GL_GNULIB_RENAME=0 GL_GNULIB_RENAMEAT=0 GL_GNULIB_SCANF=0 GL_GNULIB_SNPRINTF=0 GL_GNULIB_SPRINTF_POSIX=0 GL_GNULIB_STDIO_H_NONBLOCKING=0 GL_GNULIB_STDIO_H_SIGPIPE=0 GL_GNULIB_TMPFILE=0 GL_GNULIB_VASPRINTF=0 GL_GNULIB_VFSCANF=0 GL_GNULIB_VSCANF=0 GL_GNULIB_VDPRINTF=0 GL_GNULIB_VFPRINTF=0 GL_GNULIB_VFPRINTF_POSIX=0 GL_GNULIB_VPRINTF=0 GL_GNULIB_VPRINTF_POSIX=0 GL_GNULIB_VSNPRINTF=0 GL_GNULIB_VSPRINTF_POSIX=0 GL_GNULIB_MDA_FCLOSEALL=1 GL_GNULIB_MDA_FDOPEN=1 GL_GNULIB_MDA_FILENO=1 GL_GNULIB_MDA_GETW=1 GL_GNULIB_MDA_PUTW=1 GL_GNULIB_MDA_TEMPNAM=1 ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" if test "x$ac_cv_have_decl_getdtablesize" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDTABLESIZE $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default" if test "x$ac_cv_have_decl_getline" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETLINE $ac_have_decl _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_getopt_h='<'getopt.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_getopt_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_getopt_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'getopt.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_getopt_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_getopt_h gl_cv_next_getopt_h='"'$gl_header'"' else gl_cv_next_getopt_h='<'getopt.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5 $as_echo "$gl_cv_next_getopt_h" >&6; } fi NEXT_GETOPT_H=$gl_cv_next_getopt_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'getopt.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_getopt_h fi NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive if test $ac_cv_header_getopt_h = yes; then HAVE_GETOPT_H=1 else HAVE_GETOPT_H=0 fi gl_replace_getopt= if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" if test "x$ac_cv_header_getopt_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF else gl_replace_getopt=yes fi done fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_func in getopt_long_only do : ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" if test "x$ac_cv_func_getopt_long_only" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_LONG_ONLY 1 _ACEOF else gl_replace_getopt=yes fi done fi if test -z "$gl_replace_getopt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 $as_echo_n "checking whether getopt is POSIX compatible... " >&6; } if ${gl_cv_func_getopt_posix+:} false; then : $as_echo_n "(cached) " >&6 else if test $cross_compiling = no; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static char program[] = "program"; static char a[] = "-a"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, a, foo, bar, NULL }; int c; c = getopt (4, argv, "ab"); if (!(c == 'a')) return 1; c = getopt (4, argv, "ab"); if (!(c == -1)) return 2; if (!(optind == 2)) return 3; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=maybe else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $gl_cv_func_getopt_posix = maybe; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static char program[] = "program"; static char donald[] = "donald"; static char p[] = "-p"; static char billy[] = "billy"; static char duck[] = "duck"; static char a[] = "-a"; static char bar[] = "bar"; char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; int c; c = getopt (7, argv, "+abp:q:"); if (!(c == -1)) return 4; if (!(strcmp (argv[0], "program") == 0)) return 5; if (!(strcmp (argv[1], "donald") == 0)) return 6; if (!(strcmp (argv[2], "-p") == 0)) return 7; if (!(strcmp (argv[3], "billy") == 0)) return 8; if (!(strcmp (argv[4], "duck") == 0)) return 9; if (!(strcmp (argv[5], "-a") == 0)) return 10; if (!(strcmp (argv[6], "bar") == 0)) return 11; if (!(optind == 1)) return 12; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=maybe else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi if test $gl_cv_func_getopt_posix = maybe; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static char program[] = "program"; static char ab[] = "-ab"; char *argv[3] = { program, ab, NULL }; if (getopt (2, argv, "ab:") != 'a') return 13; if (getopt (2, argv, "ab:") != '?') return 14; if (optopt != 'b') return 15; if (optind != 2) return 16; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=yes else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi else case "$host_os" in darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; *) gl_cv_func_getopt_posix="guessing yes";; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5 $as_echo "$gl_cv_func_getopt_posix" >&6; } case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;; esac fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 $as_echo_n "checking for working GNU getopt function... " >&6; } if ${gl_cv_func_getopt_gnu+:} false; then : $as_echo_n "(cached) " >&6 else # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the # optstring is necessary for programs like m4 that have POSIX-mandated # semantics for supporting options interspersed with files. # Also, since getopt_long is a GNU extension, we require optind=0. # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; # so take care to revert to the correct (non-)export state. gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include #include #include #include #include #include /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include #include static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include #include /* A POSIX signal handler. */ static void exception_handler (int sig) { _exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif int main () { int result = 0; nocrash_init(); /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ { static char conftest[] = "conftest"; static char plus[] = "-+"; char *argv[3] = { conftest, plus, NULL }; opterr = 0; if (getopt (2, argv, "+a") != '?') result |= 1; } /* This code succeeds on glibc 2.8, mingw, and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ { static char program[] = "program"; static char p[] = "-p"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, p, foo, bar, NULL }; optind = 1; if (getopt (4, argv, "p::") != 'p') result |= 2; else if (optarg != NULL) result |= 4; else if (getopt (4, argv, "p::") != -1) result |= 6; else if (optind != 2) result |= 8; } /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ { static char program[] = "program"; static char foo[] = "foo"; static char p[] = "-p"; char *argv[] = { program, foo, p, NULL }; optind = 0; if (getopt (3, argv, "-p") != 1) result |= 16; else if (getopt (3, argv, "-p") != 'p') result |= 16; } /* This code fails on glibc 2.11. */ { static char program[] = "program"; static char b[] = "-b"; static char a[] = "-a"; char *argv[] = { program, b, a, NULL }; optind = opterr = 0; if (getopt (3, argv, "+:a:b") != 'b') result |= 32; else if (getopt (3, argv, "+:a:b") != ':') result |= 32; } /* This code dumps core on glibc 2.14. */ { static char program[] = "program"; static char w[] = "-W"; static char dummy[] = "dummy"; char *argv[] = { program, w, dummy, NULL }; optind = opterr = 1; if (getopt (3, argv, "W;") != 'W') result |= 64; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_gnu=yes else gl_cv_func_getopt_gnu=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi case $gl_had_POSIXLY_CORRECT in exported) ;; yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;; *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5 $as_echo "$gl_cv_func_getopt_gnu" >&6; } if test "$gl_cv_func_getopt_gnu" != yes; then gl_replace_getopt=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5 $as_echo_n "checking for working GNU getopt_long function... " >&6; } if ${gl_cv_func_getopt_long_gnu+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; *) gl_cv_func_getopt_long_gnu="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static const struct option long_options[] = { { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; /* This code fails on OpenBSD 5.0. */ { static char program[] = "program"; static char xtremel[] = "--xtremel"; char *argv[] = { program, xtremel, NULL }; int option_index; optind = 1; opterr = 0; if (getopt_long (2, argv, "", long_options, &option_index) != 1003) return 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_long_gnu=yes else gl_cv_func_getopt_long_gnu=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5 $as_echo "$gl_cv_func_getopt_long_gnu" >&6; } case "$gl_cv_func_getopt_long_gnu" in *yes) ;; *) gl_replace_getopt=yes ;; esac fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_limits_h='<'limits.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_limits_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_limits_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'limits.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_limits_h gl_cv_next_limits_h='"'$gl_header'"' else gl_cv_next_limits_h='<'limits.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 $as_echo "$gl_cv_next_limits_h" >&6; } fi NEXT_LIMITS_H=$gl_cv_next_limits_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'limits.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_limits_h fi NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc." >&5 $as_echo_n "checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... " >&6; } if ${gl_cv_header_limits_width+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include long long llm = LLONG_MAX; int wb = WORD_BIT; int ullw = ULLONG_WIDTH; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_limits_width=yes else gl_cv_header_limits_width=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 $as_echo "$gl_cv_header_limits_width" >&6; } if test "$gl_cv_header_limits_width" = yes; then LIMITS_H= else LIMITS_H=limits.h fi if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : gl_cv_func_malloc_0_nonnull=1 else gl_cv_func_malloc_0_nonnull=0 fi cat >>confdefs.h <<_ACEOF #define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler produces multi-arch binaries" >&5 $as_echo_n "checking whether the compiler produces multi-arch binaries... " >&6; } if ${gl_cv_c_multiarch+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64 | arm | arm64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_multiarch" >&5 $as_echo "$gl_cv_c_multiarch" >&6; } if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 $as_echo_n "checking for O_CLOEXEC... " >&6; } if ${gl_cv_macro_O_CLOEXEC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef O_CLOEXEC choke me; #endif int main () { return O_CLOEXEC; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_macro_O_CLOEXEC=yes else gl_cv_macro_O_CLOEXEC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5 $as_echo "$gl_cv_macro_O_CLOEXEC" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 $as_echo_n "checking for promoted mode_t type... " >&6; } if ${gl_cv_promoted_mode_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_promoted_mode_t='int' else gl_cv_promoted_mode_t='mode_t' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 $as_echo "$gl_cv_promoted_mode_t" >&6; } cat >>confdefs.h <<_ACEOF #define PROMOTED_MODE_T $gl_cv_promoted_mode_t _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __cplusplus typedef bool Bool; #else typedef _Bool Bool; #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; bool *qq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; *qq |= q; *qq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq + !qq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi REPLACE_NULL=0; HAVE_MAX_ALIGN_T=1; HAVE_WCHAR_T=1; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi STDDEF_H= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 $as_echo_n "checking for good max_align_t... " >&6; } if ${gl_cv_type_max_align_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include unsigned int s = sizeof (max_align_t); #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; #endif typedef struct { char a; max_align_t b; } max_helper; typedef struct { char a; long b; } long_helper; typedef struct { char a; double b; } double_helper; typedef struct { char a; long double b; } long_double_helper; int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_max_align_t=yes else gl_cv_type_max_align_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5 $as_echo "$gl_cv_type_max_align_t" >&6; } if test $gl_cv_type_max_align_t = no; then HAVE_MAX_ALIGN_T=0 STDDEF_H=stddef.h fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stddef_h gl_cv_next_stddef_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wint_t is large enough" >&5 $as_echo_n "checking whether wint_t is large enough... " >&6; } if ${gl_cv_type_wint_t_large_enough+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wint_t_large_enough=yes else gl_cv_type_wint_t_large_enough=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_large_enough" >&5 $as_echo "$gl_cv_type_wint_t_large_enough" >&6; } if test $gl_cv_type_wint_t_large_enough = no; then GNULIBHEADERS_OVERRIDE_WINT_T=1 else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_stdint_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdint.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdint_h gl_cv_next_stdint_h='"'$gl_header'"' else gl_cv_next_stdint_h='<'stdint.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 $as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdint_h fi NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi if test $ac_cv_header_stdint_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if ${gl_cv_header_working_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif #include #include #if HAVE_WCHAR_H # include #endif #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; # In general, assume it works. *) gl_cv_header_working_stdint_h="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include #include #include #if HAVE_WCHAR_H # include #endif #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; int main () { const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 $as_echo "$gl_cv_header_working_stdint_h" >&6; } fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 STDINT_H=stdint.h case "$gl_cv_header_working_stdint_h" in *yes) HAVE_C99_STDINT_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h works without ISO C predefines" >&5 $as_echo_n "checking whether stdint.h works without ISO C predefines... " >&6; } if ${gl_cv_header_stdint_without_STDC_macros+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_stdint_without_STDC_macros=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include #include #include #if HAVE_WCHAR_H # include #endif intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_without_STDC_macros=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_without_STDC_macros" >&5 $as_echo "$gl_cv_header_stdint_without_STDC_macros" >&6; } if test $gl_cv_header_stdint_without_STDC_macros = no; then $as_echo "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h $as_echo "#define __STDC_LIMIT_MACROS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 $as_echo_n "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } if ${gl_cv_header_stdint_width+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_stdint_width=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include #include #include #if HAVE_WCHAR_H # include #endif int iw = UINTMAX_WIDTH; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_width=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 $as_echo "$gl_cv_header_stdint_width" >&6; } if test "$gl_cv_header_stdint_width" = yes; then STDINT_H= fi ;; *) for ac_header in sys/inttypes.h sys/bitypes.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " #include #include #if HAVE_WCHAR_H # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " #include #include #if HAVE_WCHAR_H # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 $as_echo_n "checking whether $gltype is signed... " >&6; } if eval \${gl_cv_type_${gltype}_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_WCHAR_H # include #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : result=yes else result=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi eval ac_res=\$gl_cv_type_${gltype}_signed { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_SIGNED_${GLTYPE} 1 _ACEOF eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_WCHAR_H # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_WCHAR_H # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ;; esac LIMITS_H='limits.h' if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' else GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE= fi ac_fn_c_check_decl "$LINENO" "fcloseall" "ac_cv_have_decl_fcloseall" "$ac_includes_default" if test "x$ac_cv_have_decl_fcloseall" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FCLOSEALL $ac_have_decl _ACEOF $as_echo "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdio_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdio_h gl_cv_next_stdio_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 $as_echo "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdio_h fi NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 $as_echo_n "checking which flavor of printf attribute matches inttypes macros... " >&6; } if ${gl_cv_func_printf_attribute_flavor+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define __STDC_FORMAT_MACROS 1 #include #include /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_printf_attribute_flavor=system else gl_cv_func_printf_attribute_flavor=gnu fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 $as_echo "$gl_cv_func_printf_attribute_flavor" >&6; } if test "$gl_cv_func_printf_attribute_flavor" = gnu; then $as_echo "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h fi if test $ac_cv_have_decl_fcloseall = no; then HAVE_DECL_FCLOSEALL=0 fi HAVE_MBSLEN=0; HAVE_EXPLICIT_BZERO=1; HAVE_FFSL=1; HAVE_FFSLL=1; HAVE_DECL_MEMMEM=1; HAVE_MEMPCPY=1; HAVE_DECL_MEMRCHR=1; HAVE_RAWMEMCHR=1; HAVE_STPCPY=1; HAVE_STPNCPY=1; HAVE_STRCHRNUL=1; HAVE_DECL_STRDUP=1; HAVE_DECL_STRNDUP=1; HAVE_DECL_STRNLEN=1; HAVE_STRPBRK=1; HAVE_STRSEP=1; HAVE_STRCASESTR=1; HAVE_DECL_STRTOK_R=1; HAVE_DECL_STRERROR_R=1; HAVE_STRERRORNAME_NP=1; HAVE_SIGABBREV_NP=1; HAVE_SIGDESCR_NP=1; HAVE_DECL_STRSIGNAL=1; HAVE_STRVERSCMP=1; REPLACE_FFSLL=0; REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_STPNCPY=0; REPLACE_STRCHRNUL=0; REPLACE_STRDUP=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; REPLACE_STRTOK_R=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRERRORNAME_NP=0; REPLACE_STRSIGNAL=0; UNDEFINE_STRTOK_R=0; REPLACE_STRERROR_0=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 $as_echo_n "checking whether strerror(0) succeeds... " >&6; } if ${gl_cv_func_strerror_0_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on musl systems. *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_0_works=yes else gl_cv_func_strerror_0_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 $as_echo "$gl_cv_func_strerror_0_works" >&6; } case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 $as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h ;; esac GL_GNULIB_EXPLICIT_BZERO=0 GL_GNULIB_FFSL=0 GL_GNULIB_FFSLL=0 GL_GNULIB_MEMCHR=0 GL_GNULIB_MEMMEM=0 GL_GNULIB_MEMPCPY=0 GL_GNULIB_MEMRCHR=0 GL_GNULIB_RAWMEMCHR=0 GL_GNULIB_STPCPY=0 GL_GNULIB_STPNCPY=0 GL_GNULIB_STRCHRNUL=0 GL_GNULIB_STRDUP=0 GL_GNULIB_STRNCAT=0 GL_GNULIB_STRNDUP=0 GL_GNULIB_STRNLEN=0 GL_GNULIB_STRPBRK=0 GL_GNULIB_STRSEP=0 GL_GNULIB_STRSTR=0 GL_GNULIB_STRCASESTR=0 GL_GNULIB_STRTOK_R=0 GL_GNULIB_MBSLEN=0 GL_GNULIB_MBSNLEN=0 GL_GNULIB_MBSCHR=0 GL_GNULIB_MBSRCHR=0 GL_GNULIB_MBSSTR=0 GL_GNULIB_MBSCASECMP=0 GL_GNULIB_MBSNCASECMP=0 GL_GNULIB_MBSPCASECMP=0 GL_GNULIB_MBSCASESTR=0 GL_GNULIB_MBSCSPN=0 GL_GNULIB_MBSPBRK=0 GL_GNULIB_MBSSPN=0 GL_GNULIB_MBSSEP=0 GL_GNULIB_MBSTOK_R=0 GL_GNULIB_STRERROR=0 GL_GNULIB_STRERROR_R=0 GL_GNULIB_STRERRORNAME_NP=0 GL_GNULIB_SIGABBREV_NP=0 GL_GNULIB_SIGDESCR_NP=0 GL_GNULIB_STRSIGNAL=0 GL_GNULIB_STRVERSCMP=0 GL_GNULIB_MDA_MEMCCPY=1 GL_GNULIB_MDA_STRDUP=1 if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_string_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'string.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_string_h gl_cv_next_string_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 $as_echo "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_string_h fi NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive $as_echo "#define _USE_STD_STAT 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_types_h='<'sys/types.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_types_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/types.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_types_h gl_cv_next_sys_types_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 $as_echo "$gl_cv_next_sys_types_h" >&6; } fi NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_types_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive WINDOWS_STAT_INODES=0 HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; HAVE_TIMESPEC_GET=1; HAVE_TIMEZONE_T=0; REPLACE_CTIME=GNULIB_PORTCHECK; REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_STRFTIME=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; REPLACE_TZSET=GNULIB_PORTCHECK; : ${GNULIB_GETTIMEOFDAY=0}; REPLACE_GMTIME=0; REPLACE_LOCALTIME=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_time_h=yes else gl_cv_sys_struct_timespec_in_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_sys_time_h=yes else gl_cv_sys_struct_timespec_in_sys_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_pthread_h=yes else gl_cv_sys_struct_timespec_in_pthread_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_unistd_h=yes else gl_cv_sys_struct_timespec_in_unistd_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_time_h gl_cv_next_time_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 $as_echo "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_time_h fi NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIME_UTC in " >&5 $as_echo_n "checking for TIME_UTC in ... " >&6; } if ${gl_cv_time_h_has_TIME_UTC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static int x = TIME_UTC; x++; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_time_h_has_TIME_UTC=yes else gl_cv_time_h_has_TIME_UTC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_h_has_TIME_UTC" >&5 $as_echo "$gl_cv_time_h_has_TIME_UTC" >&6; } if test $gl_cv_time_h_has_TIME_UTC = yes; then TIME_H_DEFINES_TIME_UTC=1 else TIME_H_DEFINES_TIME_UTC=0 fi GL_GNULIB_CTIME=0 GL_GNULIB_MKTIME=0 GL_GNULIB_LOCALTIME=0 GL_GNULIB_NANOSLEEP=0 GL_GNULIB_STRFTIME=0 GL_GNULIB_STRPTIME=0 GL_GNULIB_TIMEGM=0 GL_GNULIB_TIMESPEC_GET=0 GL_GNULIB_TIME_R=0 GL_GNULIB_TIME_RZ=0 GL_GNULIB_TZSET=0 GL_GNULIB_MDA_TZSET=1 ac_fn_c_check_decl "$LINENO" "execvpe" "ac_cv_have_decl_execvpe" "$ac_includes_default" if test "x$ac_cv_have_decl_execvpe" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_EXECVPE $ac_have_decl _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_unistd_h gl_cv_next_unistd_h='"'$gl_header'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 $as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi if test $ac_cv_have_decl_execvpe = no; then HAVE_DECL_EXECVPE=0 fi # Check whether --enable-valgrind-tests was given. if test "${enable_valgrind_tests+set}" = set; then : enableval=$enable_valgrind_tests; opt_valgrind_tests=$enableval else opt_valgrind_tests=${gl_valgrind_tests_default:-yes} fi # Run self-tests under valgrind? if test "$opt_valgrind_tests" = "yes" && test "$cross_compiling" = no; then for ac_prog in valgrind do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_VALGRIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$VALGRIND"; then ac_cv_prog_VALGRIND="$VALGRIND" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_VALGRIND="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi VALGRIND=$ac_cv_prog_VALGRIND if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5 $as_echo "$VALGRIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$VALGRIND" && break done # VALGRIND_PROGRAM contains the tool found by AC_CHECK_PROGS. For # backwards compatibility, the VALGRIND variable is later modified # to also include all enabled options. However the new variable # LOG_VALGRIND needs to be able to refer to the valgrind tool # without options, hence it uses this variable. VALGRIND_PROGRAM=$VALGRIND if test -z "$DEFAULT_VALGRINDFLAGS"; then DEFAULT_VALGRINDFLAGS="-q --error-exitcode=1 --leak-check=full" fi if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for valgrind options for tests" >&5 $as_echo_n "checking for valgrind options for tests... " >&6; } if ${gl_cv_opt_valgrind_tests+:} false; then : $as_echo_n "(cached) " >&6 else if $VALGRIND $DEFAULT_VALGRINDFLAGS $VALGRINDFLAGS true; then : gl_cv_opt_valgrind_tests="$DEFAULT_VALGRINDFLAGS $VALGRINDFLAGS" else gl_cv_opt_valgrind_tests=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_opt_valgrind_tests" >&5 $as_echo "$gl_cv_opt_valgrind_tests" >&6; } if test "$gl_cv_opt_valgrind_tests" != no; then VALGRIND="$VALGRIND $gl_cv_opt_valgrind_tests" fi fi if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether valgrind works on executables produced by the compiler" >&5 $as_echo_n "checking whether valgrind works on executables produced by the compiler... " >&6; } if ${gl_cv_prog_valgrind_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : $VALGRIND $gl_cv_opt_valgrind_tests ./conftest$ac_exeext 2>/dev/null if test $? = 0; then gl_cv_prog_valgrind_works=yes else gl_cv_prog_valgrind_works=no fi else gl_cv_prog_valgrind_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_prog_valgrind_works" >&5 $as_echo "$gl_cv_prog_valgrind_works" >&6; } fi LOG_VALGRIND="\$(VALGRIND_PROGRAM) \$(DEFAULT_VALGRINDFLAGS) \$(VALGRINDFLAGS) \$(AM_VALGRINDFLAGS)" if test "$gl_cv_prog_valgrind_works" != yes; then DEFAULT_VALGRINDFLAGS= LOG_VALGRIND= VALGRIND= VALGRINDFLAGS= VALGRIND_PROGRAM= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler option to allow warnings" >&5 $as_echo_n "checking for C compiler option to allow warnings... " >&6; } if ${gl_cv_cc_wallow+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest* echo 'int dummy;' > conftest.c { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cc_wallow='-Wno-error' else gl_cv_cc_wallow=none fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_wallow" >&5 $as_echo "$gl_cv_cc_wallow" >&6; } case "$gl_cv_cc_wallow" in none) GL_CFLAG_ALLOW_WARNINGS='' ;; *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; esac if test -n "$CXX" && test "$CXX" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler option to allow warnings" >&5 $as_echo_n "checking for C++ compiler option to allow warnings... " >&6; } if ${gl_cv_cxx_wallow+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest* echo 'int dummy;' > conftest.cc { ac_try='${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null { ac_try='${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cxx_wallow='-Wno-error' else gl_cv_cxx_wallow=none fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cxx_wallow" >&5 $as_echo "$gl_cv_cxx_wallow" >&6; } case "$gl_cv_cxx_wallow" in none) GL_CXXFLAG_ALLOW_WARNINGS='' ;; *) GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;; esac else GL_CXXFLAG_ALLOW_WARNINGS='' fi if true; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=true gl_m4_base='gl/m4' gl_source_base='gl' if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1; then : gl_cv_rpl_alloca=yes else gl_cv_rpl_alloca=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 $as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ALLOCA_H=alloca.h else ALLOCA_H= fi else ALLOCA_H=alloca.h fi if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi if test $ac_cv_working_alloca_h = yes; then HAVE_ALLOCA_H=1 else HAVE_ALLOCA_H=0 fi $as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then REPLACE_CLOSE=1 fi if test $REPLACE_CLOSE = 1; then gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext" fi GL_GNULIB_CLOSE=1 $as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h ac_config_files="$ac_config_files csharpcomp.sh:build-aux/csharpcomp.sh.in" # You need to invoke gt_CSHARPEXEC yourself, possibly with arguments. ac_config_files="$ac_config_files csharpexec.sh:build-aux/csharpexec.sh.in" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } if ${gl_cv_double_slash_root+:} false; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # . case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 $as_echo "$gl_cv_double_slash_root" >&6; } if test "$gl_cv_double_slash_root" = yes; then $as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } if ${gl_cv_func_dup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include $gl_mda_defines #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main () { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_dup2_works=yes else gl_cv_func_dup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 $as_echo "$gl_cv_func_dup2_works" >&6; } case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 for ac_func in setdtablesize do : ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" if test "x$ac_cv_func_setdtablesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETDTABLESIZE 1 _ACEOF fi done ;; esac if test $REPLACE_DUP2 = 1; then gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" fi GL_GNULIB_DUP2=1 $as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if ${ac_cv_lib_error_at_line+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" : fi XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" if test $ac_cv_func_fcntl = no; then if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 $as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } if ${gl_cv_func_fcntl_f_dupfd_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include $gl_mda_defines #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main () { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fcntl_f_dupfd_works=yes else gl_cv_func_fcntl_f_dupfd_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 $as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; } case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi $as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 $as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on NetBSD. netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (int argc, char *argv[]) { if (argc == 1) /* parent process */ { if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) return 1; return execl ("./conftest", "./conftest", "child", NULL); } else /* child process */ return (fcntl (10, F_GETFL) < 0 ? 0 : 42); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_fcntl_f_dupfd_cloexec=yes else gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else gl_cv_func_fcntl_f_dupfd_cloexec=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 $as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } case "$gl_cv_func_fcntl_f_dupfd_cloexec" in *yes) ;; *) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi ;; esac fi if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" fi GL_GNULIB_FCNTL=1 $as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h case "$host_os" in mingw* | solaris*) REPLACE_FSTAT=1 ;; esac if test $REPLACE_FSTAT = 1; then gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext" case "$host_os" in mingw*) gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" ;; esac : fi GL_GNULIB_FSTAT=1 $as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h if test $ac_cv_func_getdelim = yes; then HAVE_GETDELIM=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5 $as_echo_n "checking for working getdelim function... " >&6; } if ${gl_cv_func_working_getdelim+:} false; then : $as_echo_n "(cached) " >&6 else echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : gl_cv_func_working_getdelim="guessing yes" else case "$host_os" in *-musl*) gl_cv_func_working_getdelim="guessing yes" ;; *) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;; esac fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # include # include int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } free (line); } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getdelim (&line, &siz, '\n', in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_getdelim=yes else gl_cv_func_working_getdelim=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 $as_echo "$gl_cv_func_working_getdelim" >&6; } case "$gl_cv_func_working_getdelim" in *yes) ;; *) REPLACE_GETDELIM=1 ;; esac else HAVE_GETDELIM=0 fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext" for ac_func in flockfile funlockfile do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF fi GL_GNULIB_GETDELIM=1 $as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 $as_echo_n "checking whether getdtablesize works... " >&6; } if ${gl_cv_func_getdtablesize_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; *) if test "$cross_compiling" = yes; then : case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gl_mda_defines int main () { int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getdtablesize_works=yes else gl_cv_func_getdtablesize_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 $as_echo "$gl_cv_func_getdtablesize_works" >&6; } case "$gl_cv_func_getdtablesize_works" in *yes | "no (limitation)") ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext" : fi GL_GNULIB_GETDTABLESIZE=1 $as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h gl_getline_needs_run_time_check=no ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" if test "x$ac_cv_func_getline" = xyes; then : gl_getline_needs_run_time_check=yes else am_cv_func_working_getline=no fi if test $gl_getline_needs_run_time_check = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5 $as_echo_n "checking for working getline function... " >&6; } if ${am_cv_func_working_getline+:} false; then : $as_echo_n "(cached) " >&6 else echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : am_cv_func_working_getline="guessing yes" else case "$host_os" in *-musl*) am_cv_func_working_getline="guessing yes" ;; *) am_cv_func_working_getline="$gl_cross_guess_normal" ;; esac fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # include # include int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getline (&line, &siz, in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } free (line); } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getline (&line, &siz, in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_working_getline=yes else am_cv_func_working_getline=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 $as_echo "$am_cv_func_working_getline" >&6; } fi if test $ac_cv_have_decl_getline = no; then HAVE_DECL_GETLINE=0 fi case "$am_cv_func_working_getline" in *yes) ;; *) REPLACE_GETLINE=1 ;; esac if test $REPLACE_GETLINE = 1; then gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext" : fi GL_GNULIB_GETLINE=1 $as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi if test $REPLACE_GETOPT = 1; then if test $ac_cv_header_sys_cdefs_h = yes; then HAVE_SYS_CDEFS_H=1 else HAVE_SYS_CDEFS_H=0 fi $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h GETOPT_H=getopt.h GETOPT_CDEFS_H=getopt-cdefs.h fi if test $REPLACE_GETOPT = 1; then gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" GL_GNULIB_UNISTD_H_GETOPT=1 fi GL_GNULIB_GETOPT_POSIX=1 $as_echo "#define GNULIB_TEST_GETOPT_POSIX 1" >>confdefs.h ac_found=0 ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include " if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : ac_found=1 fi ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include " if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : ac_found=1 fi ac_fn_c_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include " if test "x$ac_cv_have_decl___argv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL___ARGV $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : ac_found=1 fi # Incur the cost of this test only if none of the above worked. if test $ac_found = 0; then # On OpenBSD 5.1, using the global __progname variable appears to be # the only way to implement getprogname. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5 $as_echo_n "checking whether __progname is defined in default libraries... " >&6; } if ${gl_cv_var___progname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_var___progname= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern char *__progname; int main () { return *__progname; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_var___progname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5 $as_echo "$gl_cv_var___progname" >&6; } if test "$gl_cv_var___progname" = yes; then $as_echo "#define HAVE_VAR___PROGNAME 1" >>confdefs.h fi fi # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc/ld supports -Wl,--output-def" >&5 $as_echo_n "checking if gcc/ld supports -Wl,--output-def... " >&6; } if ${gl_cv_ld_output_def+:} false; then : $as_echo_n "(cached) " >&6 else if test "$enable_shared" = no; then gl_cv_ld_output_def="not needed, shared libraries are disabled" else gl_ldflags_save=$LDFLAGS LDFLAGS="-Wl,--output-def,conftest.def" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_ld_output_def=yes else gl_cv_ld_output_def=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext rm -f conftest.def LDFLAGS="$gl_ldflags_save" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_ld_output_def" >&5 $as_echo "$gl_cv_ld_output_def" >&6; } if test "x$gl_cv_ld_output_def" = "xyes"; then HAVE_LD_OUTPUT_DEF_TRUE= HAVE_LD_OUTPUT_DEF_FALSE='#' else HAVE_LD_OUTPUT_DEF_TRUE='#' HAVE_LD_OUTPUT_DEF_FALSE= fi # Check whether --enable-ld-version-script was given. if test "${enable_ld_version_script+set}" = set; then : enableval=$enable_ld_version_script; have_ld_version_script=$enableval else { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 $as_echo_n "checking if LD -Wl,--version-script works... " >&6; } if ${gl_cv_sys_ld_version_script+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_sys_ld_version_script=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" echo foo >conftest.map cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else cat > conftest.map <conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_sys_ld_version_script=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext rm -f conftest.map LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_ld_version_script" >&5 $as_echo "$gl_cv_sys_ld_version_script" >&6; } have_ld_version_script=$gl_cv_sys_ld_version_script fi if test "$have_ld_version_script" = yes; then HAVE_LD_VERSION_SCRIPT_TRUE= HAVE_LD_VERSION_SCRIPT_FALSE='#' else HAVE_LD_VERSION_SCRIPT_TRUE='#' HAVE_LD_VERSION_SCRIPT_FALSE= fi CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 $as_echo_n "checking whether the -Werror option is usable... " >&6; } if ${gl_cv_cc_vis_werror+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_vis_werror=yes else gl_cv_cc_vis_werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 $as_echo "$gl_cv_cc_vis_werror" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 $as_echo_n "checking for simple visibility declarations... " >&6; } if ${gl_cv_cc_visibility+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void); int hiddenvar; int exportedvar; int hiddenfunc (void) { return 51; } int exportedfunc (void) { return 1225736919; } void dummyfunc (void) {} int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_visibility=yes else gl_cv_cc_visibility=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 $as_echo "$gl_cv_cc_visibility" >&6; } if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi cat >>confdefs.h <<_ACEOF #define HAVE_VISIBILITY $HAVE_VISIBILITY _ACEOF if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext" fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_MSVC_NOTHROW 1 _ACEOF case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) if test "$gl_cv_macro_O_CLOEXEC" != yes; then REPLACE_OPEN=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 $as_echo_n "checking whether open recognizes a trailing slash... " >&6; } if ${gl_cv_func_open_slash+:} false; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #endif $gl_mda_defines int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_open_slash=yes else gl_cv_func_open_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 $as_echo "$gl_cv_func_open_slash" >&6; } case "$gl_cv_func_open_slash" in *no) $as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h ;; esac case "$gl_cv_func_open_slash" in *no) REPLACE_OPEN=1 ;; esac ;; esac if test $REPLACE_OPEN = 1; then gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext" : fi GL_GNULIB_OPEN=1 $as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h # Extract the first word of "pmccabe", so it can be a program name with args. set dummy pmccabe; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PMCCABE+:} false; then : $as_echo_n "(cached) " >&6 else case $PMCCABE in [\\/]* | ?:[\\/]*) ac_cv_path_PMCCABE="$PMCCABE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PMCCABE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PMCCABE" && ac_cv_path_PMCCABE="false" ;; esac fi PMCCABE=$ac_cv_path_PMCCABE if test -n "$PMCCABE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMCCABE" >&5 $as_echo "$PMCCABE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include " if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include " if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi case "$host_os" in mingw*) REPLACE_STAT=1 ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } if ${gl_cv_func_stat_file_slash+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_file_slash=yes else gl_cv_func_stat_file_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 $as_echo "$gl_cv_func_stat_file_slash" >&6; } case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac case $host_os in solaris*) REPLACE_FSTAT=1 ;; esac ;; esac if test $REPLACE_STAT = 1; then gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext" case "$host_os" in mingw*) gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" ;; esac : fi GL_GNULIB_STAT=1 $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 $as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; } if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_SYS_TIME_H # include #endif #include struct timespec ts; struct stat st; int main () { st.st_atim = ts; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes else ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 $as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then $as_echo "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h fi else ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 _ACEOF fi fi fi fi ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include #include " if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1 _ACEOF fi fi fi STDARG_H='' NEXT_STDARG_H='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 $as_echo_n "checking for va_copy... " >&6; } if ${gl_cv_func_va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_va_copy=yes else gl_cv_func_va_copy=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5 $as_echo "$gl_cv_func_va_copy" >&6; } if test $gl_cv_func_va_copy = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _AIX && !defined __GNUC__ AIX vaccine #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "vaccine" >/dev/null 2>&1; then : gl_aixcc=yes else gl_aixcc=no fi rm -f conftest* if test $gl_aixcc = yes; then STDARG_H=stdarg.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdarg_h='<'stdarg.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdarg_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdarg.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdarg_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdarg_h gl_cv_next_stdarg_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5 $as_echo "$gl_cv_next_stdarg_h" >&6; } fi NEXT_STDARG_H=$gl_cv_next_stdarg_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdarg.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdarg_h fi NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive if test "$gl_cv_next_stdarg_h" = '""'; then gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else exec 9>&6 6>/dev/null if ${gl_cv_func___va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef __va_copy error, bail out #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func___va_copy=yes else gl_cv_func___va_copy=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi exec 6>&9 9>&- if test $gl_cv_func___va_copy = yes; then $as_echo "#define va_copy __va_copy" >>confdefs.h else $as_echo "#define va_copy gl_va_copy" >>confdefs.h fi fi fi if test -n "$STDARG_H"; then GL_GENERATE_STDARG_H_TRUE= GL_GENERATE_STDARG_H_FALSE='#' else GL_GENERATE_STDARG_H_TRUE='#' GL_GENERATE_STDARG_H_FALSE= fi if test "$ac_cv_header_stdbool_h" = yes; then case "$host_os" in solaris*) if test -z "$GCC"; then STDBOOL_H='stdbool.h' else STDBOOL_H='' fi ;; *) STDBOOL_H='' ;; esac else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi GL_GNULIB_FSCANF=1 $as_echo "#define GNULIB_TEST_FSCANF 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNULIB_FSCANF 1 _ACEOF GL_GNULIB_SCANF=1 $as_echo "#define GNULIB_TEST_SCANF 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNULIB_SCANF 1 _ACEOF GL_GNULIB_FGETC=1 $as_echo "#define GNULIB_TEST_FGETC 1" >>confdefs.h GL_GNULIB_GETC=1 $as_echo "#define GNULIB_TEST_GETC 1" >>confdefs.h GL_GNULIB_GETCHAR=1 $as_echo "#define GNULIB_TEST_GETCHAR 1" >>confdefs.h GL_GNULIB_FGETS=1 $as_echo "#define GNULIB_TEST_FGETS 1" >>confdefs.h GL_GNULIB_FREAD=1 $as_echo "#define GNULIB_TEST_FREAD 1" >>confdefs.h GL_GNULIB_FPRINTF=1 $as_echo "#define GNULIB_TEST_FPRINTF 1" >>confdefs.h GL_GNULIB_PRINTF=1 $as_echo "#define GNULIB_TEST_PRINTF 1" >>confdefs.h GL_GNULIB_VFPRINTF=1 $as_echo "#define GNULIB_TEST_VFPRINTF 1" >>confdefs.h GL_GNULIB_VPRINTF=1 $as_echo "#define GNULIB_TEST_VPRINTF 1" >>confdefs.h GL_GNULIB_FPUTC=1 $as_echo "#define GNULIB_TEST_FPUTC 1" >>confdefs.h GL_GNULIB_PUTC=1 $as_echo "#define GNULIB_TEST_PUTC 1" >>confdefs.h GL_GNULIB_PUTCHAR=1 $as_echo "#define GNULIB_TEST_PUTCHAR 1" >>confdefs.h GL_GNULIB_FPUTS=1 $as_echo "#define GNULIB_TEST_FPUTS 1" >>confdefs.h GL_GNULIB_PUTS=1 $as_echo "#define GNULIB_TEST_PUTS 1" >>confdefs.h GL_GNULIB_FWRITE=1 $as_echo "#define GNULIB_TEST_FWRITE 1" >>confdefs.h if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 $as_echo_n "checking for working strerror function... " >&6; } if ${gl_cv_func_working_strerror+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; # Guess yes on musl systems. *-musl*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { if (!*strerror (-2)) return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_strerror=yes else gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 $as_echo "$gl_cv_func_working_strerror" >&6; } case "$gl_cv_func_working_strerror" in *yes) ;; *) REPLACE_STRERROR=1 ;; esac else REPLACE_STRERROR=1 fi if test $REPLACE_STRERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_STRERROR 1 _ACEOF GL_GNULIB_STRERROR=1 $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi fi # Check whether --with-packager was given. if test "${with_packager+set}" = set; then : withval=$with_packager; case $withval in yes|no) ;; *) cat >>confdefs.h <<_ACEOF #define PACKAGE_PACKAGER "$withval" _ACEOF ;; esac fi # Check whether --with-packager-version was given. if test "${with_packager_version+set}" = set; then : withval=$with_packager_version; case $withval in yes|no) ;; *) cat >>confdefs.h <<_ACEOF #define PACKAGE_PACKAGER_VERSION "$withval" _ACEOF ;; esac fi # Check whether --with-packager-bug-reports was given. if test "${with_packager_bug_reports+set}" = set; then : withval=$with_packager_bug_reports; case $withval in yes|no) ;; *) cat >>confdefs.h <<_ACEOF #define PACKAGE_PACKAGER_BUG_REPORTS "$withval" _ACEOF ;; esac fi if test "X$with_packager" = "X" && \ test "X$with_packager_version$with_packager_bug_reports" != "X" then as_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5 fi # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='gl/tests' gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS LIBTESTS_LIBDEPS="$gltests_libdeps" HAVE__EXIT=1; HAVE_ALIGNED_ALLOC=1; HAVE_ATOLL=1; HAVE_CANONICALIZE_FILE_NAME=1; HAVE_DECL_ECVT=1; HAVE_DECL_FCVT=1; HAVE_DECL_GCVT=1; HAVE_DECL_GETLOADAVG=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; HAVE_INITSTATE=1; HAVE_DECL_INITSTATE=1; HAVE_MBTOWC=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; HAVE_MKSTEMP=1; HAVE_MKSTEMPS=1; HAVE_POSIX_MEMALIGN=1; HAVE_POSIX_OPENPT=1; HAVE_PTSNAME=1; HAVE_PTSNAME_R=1; HAVE_QSORT_R=1; HAVE_RANDOM=1; HAVE_RANDOM_H=1; HAVE_RANDOM_R=1; HAVE_REALLOCARRAY=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_SETSTATE=1; HAVE_DECL_SETSTATE=1; HAVE_STRTOD=1; HAVE_STRTOL=1; HAVE_STRTOLD=1; HAVE_STRTOLL=1; HAVE_STRTOUL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; HAVE_SYS_LOADAVG_H=0; HAVE_UNLOCKPT=1; HAVE_DECL_UNSETENV=1; REPLACE_ALIGNED_ALLOC=0; REPLACE_CALLOC=0; REPLACE_CANONICALIZE_FILE_NAME=0; REPLACE_FREE=0; REPLACE_INITSTATE=0; REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; REPLACE_POSIX_MEMALIGN=0; REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_QSORT_R=0; REPLACE_RANDOM=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC=0; REPLACE_REALLOCARRAY=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; REPLACE_SETSTATE=0; REPLACE_STRTOD=0; REPLACE_STRTOL=0; REPLACE_STRTOLD=0; REPLACE_STRTOLL=0; REPLACE_STRTOUL=0; REPLACE_STRTOULL=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; GL_LGL_GNULIB__EXIT=0 GL_LGL_GNULIB_ALIGNED_ALLOC=0 GL_LGL_GNULIB_ATOLL=0 GL_LGL_GNULIB_CALLOC_POSIX=0 GL_LGL_GNULIB_CANONICALIZE_FILE_NAME=0 GL_LGL_GNULIB_FREE_POSIX=0 GL_LGL_GNULIB_GETLOADAVG=0 GL_LGL_GNULIB_GETSUBOPT=0 GL_LGL_GNULIB_GRANTPT=0 GL_LGL_GNULIB_MALLOC_POSIX=0 GL_LGL_GNULIB_MBTOWC=0 GL_LGL_GNULIB_MKDTEMP=0 GL_LGL_GNULIB_MKOSTEMP=0 GL_LGL_GNULIB_MKOSTEMPS=0 GL_LGL_GNULIB_MKSTEMP=0 GL_LGL_GNULIB_MKSTEMPS=0 GL_LGL_GNULIB_POSIX_MEMALIGN=0 GL_LGL_GNULIB_POSIX_OPENPT=0 GL_LGL_GNULIB_PTSNAME=0 GL_LGL_GNULIB_PTSNAME_R=0 GL_LGL_GNULIB_PUTENV=0 GL_LGL_GNULIB_QSORT_R=0 GL_LGL_GNULIB_RANDOM=0 GL_LGL_GNULIB_RANDOM_R=0 GL_LGL_GNULIB_REALLOCARRAY=0 GL_LGL_GNULIB_REALLOC_POSIX=0 GL_LGL_GNULIB_REALPATH=0 GL_LGL_GNULIB_RPMATCH=0 GL_LGL_GNULIB_SECURE_GETENV=0 GL_LGL_GNULIB_SETENV=0 GL_LGL_GNULIB_STRTOD=0 GL_LGL_GNULIB_STRTOL=0 GL_LGL_GNULIB_STRTOLD=0 GL_LGL_GNULIB_STRTOLL=0 GL_LGL_GNULIB_STRTOUL=0 GL_LGL_GNULIB_STRTOULL=0 GL_LGL_GNULIB_SYSTEM_POSIX=0 GL_LGL_GNULIB_UNLOCKPT=0 GL_LGL_GNULIB_UNSETENV=0 GL_LGL_GNULIB_WCTOMB=0 GL_LGL_GNULIB_MDA_ECVT=1 GL_LGL_GNULIB_MDA_FCVT=1 GL_LGL_GNULIB_MDA_GCVT=1 GL_LGL_GNULIB_MDA_MKTEMP=1 GL_LGL_GNULIB_MDA_PUTENV=1 GL_LGL_GNULIB_ICONV=0 if test $gl_cv_have_include_next = yes; then gl_cv_next_iconv_h='<'iconv.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_iconv_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_iconv_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'iconv.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_iconv_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_iconv_h gl_cv_next_iconv_h='"'$gl_header'"' else gl_cv_next_iconv_h='<'iconv.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_iconv_h" >&5 $as_echo "$gl_cv_next_iconv_h" >&6; } fi NEXT_ICONV_H=$gl_cv_next_iconv_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'iconv.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_iconv_h fi NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac HAVE_NL_LANGINFO=1; REPLACE_NL_LANGINFO=0; if test $gl_cv_have_include_next = yes; then gl_cv_next_langinfo_h='<'langinfo.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_langinfo_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_langinfo_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'langinfo.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_langinfo_h gl_cv_next_langinfo_h='"'$gl_header'"' else gl_cv_next_langinfo_h='<'langinfo.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 $as_echo "$gl_cv_next_langinfo_h" >&6; } fi NEXT_LANGINFO_H=$gl_cv_next_langinfo_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'langinfo.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_langinfo_h fi NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ALTMON=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 $as_echo_n "checking whether langinfo.h defines CODESET... " >&6; } if ${gl_cv_header_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = CODESET; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_codeset=yes else gl_cv_header_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 $as_echo "$gl_cv_header_langinfo_codeset" >&6; } if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 $as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = T_FMT_AMPM; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_t_fmt_ampm=yes else gl_cv_header_langinfo_t_fmt_ampm=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 $as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ALTMON_1" >&5 $as_echo_n "checking whether langinfo.h defines ALTMON_1... " >&6; } if ${gl_cv_header_langinfo_altmon+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = ALTMON_1; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_altmon=yes else gl_cv_header_langinfo_altmon=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_altmon" >&5 $as_echo "$gl_cv_header_langinfo_altmon" >&6; } if test $gl_cv_header_langinfo_altmon = yes; then HAVE_LANGINFO_ALTMON=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 $as_echo_n "checking whether langinfo.h defines ERA... " >&6; } if ${gl_cv_header_langinfo_era+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = ERA; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_era=yes else gl_cv_header_langinfo_era=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 $as_echo "$gl_cv_header_langinfo_era" >&6; } if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 $as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; } if ${gl_cv_header_langinfo_yesexpr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = YESEXPR; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_yesexpr=yes else gl_cv_header_langinfo_yesexpr=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 $as_echo "$gl_cv_header_langinfo_yesexpr" >&6; } if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi GL_LGL_GNULIB_NL_LANGINFO=0 ac_fn_c_check_decl "$LINENO" "ecvt" "ac_cv_have_decl_ecvt" "$ac_includes_default" if test "x$ac_cv_have_decl_ecvt" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ECVT $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "fcvt" "ac_cv_have_decl_fcvt" "$ac_includes_default" if test "x$ac_cv_have_decl_fcvt" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FCVT $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "gcvt" "ac_cv_have_decl_gcvt" "$ac_includes_default" if test "x$ac_cv_have_decl_gcvt" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GCVT $ac_have_decl _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdlib_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdlib_h gl_cv_next_stdlib_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 $as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive if test $ac_cv_have_decl_ecvt = no; then HAVE_DECL_ECVT=0 fi if test $ac_cv_have_decl_fcvt = no; then HAVE_DECL_FCVT=0 fi if test $ac_cv_have_decl_gcvt = no; then HAVE_DECL_GCVT=0 fi GL_LGL_GNULIB_EXPLICIT_BZERO=0 GL_LGL_GNULIB_FFSL=0 GL_LGL_GNULIB_FFSLL=0 GL_LGL_GNULIB_MEMCHR=0 GL_LGL_GNULIB_MEMMEM=0 GL_LGL_GNULIB_MEMPCPY=0 GL_LGL_GNULIB_MEMRCHR=0 GL_LGL_GNULIB_RAWMEMCHR=0 GL_LGL_GNULIB_STPCPY=0 GL_LGL_GNULIB_STPNCPY=0 GL_LGL_GNULIB_STRCHRNUL=0 GL_LGL_GNULIB_STRDUP=0 GL_LGL_GNULIB_STRNCAT=0 GL_LGL_GNULIB_STRNDUP=0 GL_LGL_GNULIB_STRNLEN=0 GL_LGL_GNULIB_STRPBRK=0 GL_LGL_GNULIB_STRSEP=0 GL_LGL_GNULIB_STRSTR=0 GL_LGL_GNULIB_STRCASESTR=0 GL_LGL_GNULIB_STRTOK_R=0 GL_LGL_GNULIB_MBSLEN=0 GL_LGL_GNULIB_MBSNLEN=0 GL_LGL_GNULIB_MBSCHR=0 GL_LGL_GNULIB_MBSRCHR=0 GL_LGL_GNULIB_MBSSTR=0 GL_LGL_GNULIB_MBSCASECMP=0 GL_LGL_GNULIB_MBSNCASECMP=0 GL_LGL_GNULIB_MBSPCASECMP=0 GL_LGL_GNULIB_MBSCASESTR=0 GL_LGL_GNULIB_MBSCSPN=0 GL_LGL_GNULIB_MBSPBRK=0 GL_LGL_GNULIB_MBSSPN=0 GL_LGL_GNULIB_MBSSEP=0 GL_LGL_GNULIB_MBSTOK_R=0 GL_LGL_GNULIB_STRERROR=0 GL_LGL_GNULIB_STRERROR_R=0 GL_LGL_GNULIB_STRERRORNAME_NP=0 GL_LGL_GNULIB_SIGABBREV_NP=0 GL_LGL_GNULIB_SIGDESCR_NP=0 GL_LGL_GNULIB_STRSIGNAL=0 GL_LGL_GNULIB_STRVERSCMP=0 GL_LGL_GNULIB_MDA_MEMCCPY=1 GL_LGL_GNULIB_MDA_STRDUP=1 GL_LGL_GNULIB_ACCESS=0 GL_LGL_GNULIB_CHDIR=0 GL_LGL_GNULIB_CHOWN=0 GL_LGL_GNULIB_CLOSE=0 GL_LGL_GNULIB_COPY_FILE_RANGE=0 GL_LGL_GNULIB_DUP=0 GL_LGL_GNULIB_DUP2=0 GL_LGL_GNULIB_DUP3=0 GL_LGL_GNULIB_ENVIRON=0 GL_LGL_GNULIB_EUIDACCESS=0 GL_LGL_GNULIB_EXECL=0 GL_LGL_GNULIB_EXECLE=0 GL_LGL_GNULIB_EXECLP=0 GL_LGL_GNULIB_EXECV=0 GL_LGL_GNULIB_EXECVE=0 GL_LGL_GNULIB_EXECVP=0 GL_LGL_GNULIB_EXECVPE=0 GL_LGL_GNULIB_FACCESSAT=0 GL_LGL_GNULIB_FCHDIR=0 GL_LGL_GNULIB_FCHOWNAT=0 GL_LGL_GNULIB_FDATASYNC=0 GL_LGL_GNULIB_FSYNC=0 GL_LGL_GNULIB_FTRUNCATE=0 GL_LGL_GNULIB_GETCWD=0 GL_LGL_GNULIB_GETDOMAINNAME=0 GL_LGL_GNULIB_GETDTABLESIZE=0 GL_LGL_GNULIB_GETENTROPY=0 GL_LGL_GNULIB_GETGROUPS=0 GL_LGL_GNULIB_GETHOSTNAME=0 GL_LGL_GNULIB_GETLOGIN=0 GL_LGL_GNULIB_GETLOGIN_R=0 GL_LGL_GNULIB_GETOPT_POSIX=0 GL_LGL_GNULIB_GETPAGESIZE=0 GL_LGL_GNULIB_GETPASS=0 GL_LGL_GNULIB_GETUSERSHELL=0 GL_LGL_GNULIB_GROUP_MEMBER=0 GL_LGL_GNULIB_ISATTY=0 GL_LGL_GNULIB_LCHOWN=0 GL_LGL_GNULIB_LINK=0 GL_LGL_GNULIB_LINKAT=0 GL_LGL_GNULIB_LSEEK=0 GL_LGL_GNULIB_PIPE=0 GL_LGL_GNULIB_PIPE2=0 GL_LGL_GNULIB_PREAD=0 GL_LGL_GNULIB_PWRITE=0 GL_LGL_GNULIB_READ=0 GL_LGL_GNULIB_READLINK=0 GL_LGL_GNULIB_READLINKAT=0 GL_LGL_GNULIB_RMDIR=0 GL_LGL_GNULIB_SETHOSTNAME=0 GL_LGL_GNULIB_SLEEP=0 GL_LGL_GNULIB_SYMLINK=0 GL_LGL_GNULIB_SYMLINKAT=0 GL_LGL_GNULIB_TRUNCATE=0 GL_LGL_GNULIB_TTYNAME_R=0 GL_LGL_GNULIB_UNISTD_H_GETOPT=0 GL_LGL_GNULIB_UNISTD_H_NONBLOCKING=0 GL_LGL_GNULIB_UNISTD_H_SIGPIPE=0 GL_LGL_GNULIB_UNLINK=0 GL_LGL_GNULIB_UNLINKAT=0 GL_LGL_GNULIB_USLEEP=0 GL_LGL_GNULIB_WRITE=0 GL_LGL_GNULIB_MDA_ACCESS=1 GL_LGL_GNULIB_MDA_CHDIR=1 GL_LGL_GNULIB_MDA_CLOSE=1 GL_LGL_GNULIB_MDA_DUP=1 GL_LGL_GNULIB_MDA_DUP2=1 GL_LGL_GNULIB_MDA_EXECL=1 GL_LGL_GNULIB_MDA_EXECLE=1 GL_LGL_GNULIB_MDA_EXECLP=1 GL_LGL_GNULIB_MDA_EXECV=1 GL_LGL_GNULIB_MDA_EXECVE=1 GL_LGL_GNULIB_MDA_EXECVP=1 GL_LGL_GNULIB_MDA_EXECVPE=1 GL_LGL_GNULIB_MDA_GETCWD=1 GL_LGL_GNULIB_MDA_GETPID=1 GL_LGL_GNULIB_MDA_ISATTY=1 GL_LGL_GNULIB_MDA_LSEEK=1 GL_LGL_GNULIB_MDA_READ=1 GL_LGL_GNULIB_MDA_RMDIR=1 GL_LGL_GNULIB_MDA_SWAB=1 GL_LGL_GNULIB_MDA_UNLINK=1 GL_LGL_GNULIB_MDA_WRITE=1 gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi if true; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=true gl_m4_base='lib/gl/m4' gl_source_base='lib/gl' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether free is known to preserve errno" >&5 $as_echo_n "checking whether free is known to preserve errno... " >&6; } if ${gl_cv_func_free_preserves_errno+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) #elif defined __OpenBSD__ #elif defined __sun #else #error "'free' is not known to preserve errno" #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_free_preserves_errno=yes else gl_cv_func_free_preserves_errno=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_free_preserves_errno" >&5 $as_echo "$gl_cv_func_free_preserves_errno" >&6; } case $gl_cv_func_free_preserves_errno in *yes) $as_echo "#define HAVE_FREE_POSIX 1" >>confdefs.h ;; *) REPLACE_FREE=1 ;; esac if test $REPLACE_FREE = 1; then lgl_LIBOBJS="$lgl_LIBOBJS free.$ac_objext" : fi GL_LGL_GNULIB_FREE_POSIX=1 $as_echo "#define GNULIB_TEST_FREE_POSIX 1" >>confdefs.h GL_LGL_GNULIB_ICONV=1 if test "$am_cv_func_iconv" = yes; then ICONV_H='iconv.h' if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__) gnu_iconv #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "gnu_iconv" >/dev/null 2>&1; then : gl_func_iconv_gnu=yes else gl_func_iconv_gnu=no fi rm -f conftest* if test $gl_func_iconv_gnu = no; then iconv_flavor= case "$host_os" in aix*) iconv_flavor=ICONV_FLAVOR_AIX ;; irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;; hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;; osf*) iconv_flavor=ICONV_FLAVOR_OSF ;; solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;; openedition*) iconv_flavor=ICONV_FLAVOR_ZOS ;; esac if test -n "$iconv_flavor"; then cat >>confdefs.h <<_ACEOF #define ICONV_FLAVOR $iconv_flavor _ACEOF ICONV_H='iconv.h' if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi REPLACE_ICONV_OPEN=1 fi fi fi if test $REPLACE_ICONV_OPEN = 1; then lgl_LIBOBJS="$lgl_LIBOBJS iconv_open.$ac_objext" fi if test $REPLACE_ICONV = 1; then lgl_LIBOBJS="$lgl_LIBOBJS iconv.$ac_objext" lgl_LIBOBJS="$lgl_LIBOBJS iconv_close.$ac_objext" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5 $as_echo_n "checking whether the compiler generally respects inline... " >&6; } if ${gl_cv_c_inline_effective+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifdef __NO_INLINE__ #error "inline is not effective" #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_c_inline_effective=yes else gl_cv_c_inline_effective=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_inline_effective" >&5 $as_echo "$gl_cv_c_inline_effective" >&6; } if test $gl_cv_c_inline_effective = yes; then $as_echo "#define HAVE_INLINE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5 $as_echo_n "checking whether the compiler supports the __inline keyword... " >&6; } if ${gl_cv_c___inline+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int foo_t; static __inline foo_t foo (void) { return 0; } int main () { return foo (); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_c___inline=yes else gl_cv_c___inline=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5 $as_echo "$gl_cv_c___inline" >&6; } if test $gl_cv_c___inline = yes; then $as_echo "#define HAVE___INLINE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi if test "$ac_cv_header_stdbool_h" = yes; then case "$host_os" in solaris*) if test -z "$GCC"; then STDBOOL_H='stdbool.h' else STDBOOL_H='' fi ;; *) STDBOOL_H='' ;; esac else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi if test $gl_cond_libtool = false; then gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV" gl_libdeps="$gl_libdeps $LIBICONV" fi for ac_func in strverscmp do : ac_fn_c_check_func "$LINENO" "strverscmp" "ac_cv_func_strverscmp" if test "x$ac_cv_func_strverscmp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRVERSCMP 1 _ACEOF fi done if test $ac_cv_func_strverscmp = no; then HAVE_STRVERSCMP=0 fi if test $HAVE_STRVERSCMP = 0; then lgl_LIBOBJS="$lgl_LIBOBJS strverscmp.$ac_objext" : fi GL_LGL_GNULIB_STRVERSCMP=1 $as_echo "#define GNULIB_TEST_STRVERSCMP 1" >>confdefs.h if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 11 } } } } }; then LIBUNISTRING_UNISTR_H='unistr.h' else LIBUNISTRING_UNISTR_H= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_MBTOUCR 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_UCTOMB 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 11 } } } } }; then LIBUNISTRING_UNITYPES_H='unitypes.h' else LIBUNISTRING_UNITYPES_H= fi # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='tests' lgltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$lgltests_WITNESS $as_echo "#define GNULIB_NO_VLA 1" >>confdefs.h # Make it possible to disable TLD code. # Check whether --enable-tld was given. if test "${enable_tld+set}" = set; then : enableval=$enable_tld; enable_tld=$enableval else enable_tld=yes fi if test "$enable_tld" != "no"; then TLD_TRUE= TLD_FALSE='#' else TLD_TRUE='#' TLD_FALSE= fi if test "$enable_tld" != "no"; then $as_echo "#define WITH_TLD 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if TLD API for specific TLD rules should be built" >&5 $as_echo_n "checking if TLD API for specific TLD rules should be built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_tld" >&5 $as_echo "$enable_tld" >&6; } # # check for gtk-doc # if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi gtk_doc_requires="gtk-doc >= 1.14" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5 $as_echo_n "checking for gtk-doc... " >&6; } if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5 ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then have_gtk_doc=yes else have_gtk_doc=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5 $as_echo "$have_gtk_doc" >&6; } if test "$have_gtk_doc" = "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found." >&5 $as_echo "$as_me: WARNING: You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found." >&2;} fi # Extract the first word of "gtkdoc-check", so it can be a program name with args. set dummy gtkdoc-check; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_GTKDOC_CHECK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GTKDOC_CHECK"; then ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK if test -n "$GTKDOC_CHECK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 $as_echo "$GTKDOC_CHECK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gtkdoc-check", so it can be a program name with args. set dummy gtkdoc-check; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_CHECK_PATH in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH if test -n "$GTKDOC_CHECK_PATH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5 $as_echo "$GTKDOC_CHECK_PATH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi for ac_prog in gtkdoc-rebase do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_REBASE+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_REBASE in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE if test -n "$GTKDOC_REBASE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 $as_echo "$GTKDOC_REBASE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$GTKDOC_REBASE" && break done test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. set dummy gtkdoc-mkpdf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_MKPDF in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF if test -n "$GTKDOC_MKPDF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 $as_echo "$GTKDOC_MKPDF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --with-html-dir was given. if test "${with_html_dir+set}" = set; then : withval=$with_html_dir; else with_html_dir='${datadir}/gtk-doc/html' fi HTML_DIR="$with_html_dir" # Check whether --enable-gtk-doc was given. if test "${enable_gtk_doc+set}" = set; then : enableval=$enable_gtk_doc; else enable_gtk_doc=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 $as_echo_n "checking whether to build gtk-doc documentation... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 $as_echo "$enable_gtk_doc" >&6; } if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then as_fn_error $? " You must have $gtk_doc_requires installed to build documentation for $PACKAGE_NAME. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5 fi if test "x$PACKAGE_NAME" != "xglib"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5 $as_echo_n "checking for GTKDOC_DEPS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GTKDOC_DEPS_CFLAGS"; then pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GTKDOC_DEPS_LIBS"; then pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0"` else GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0"` fi # Put the nasty error message in config.log where it belongs echo "$GTKDOC_DEPS_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : elif test $pkg_failed = untried; then : else GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : fi fi # Check whether --enable-gtk-doc-html was given. if test "${enable_gtk_doc_html+set}" = set; then : enableval=$enable_gtk_doc_html; else enable_gtk_doc_html=yes fi # Check whether --enable-gtk-doc-pdf was given. if test "${enable_gtk_doc_pdf+set}" = set; then : enableval=$enable_gtk_doc_pdf; else enable_gtk_doc_pdf=no fi if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi if test x$have_gtk_doc = xyes; then HAVE_GTK_DOC_TRUE= HAVE_GTK_DOC_FALSE='#' else HAVE_GTK_DOC_TRUE='#' HAVE_GTK_DOC_FALSE= fi if test x$enable_gtk_doc = xyes; then ENABLE_GTK_DOC_TRUE= ENABLE_GTK_DOC_FALSE='#' else ENABLE_GTK_DOC_TRUE='#' ENABLE_GTK_DOC_FALSE= fi if test x$enable_gtk_doc_html = xyes; then GTK_DOC_BUILD_HTML_TRUE= GTK_DOC_BUILD_HTML_FALSE='#' else GTK_DOC_BUILD_HTML_TRUE='#' GTK_DOC_BUILD_HTML_FALSE= fi if test x$enable_gtk_doc_pdf = xyes; then GTK_DOC_BUILD_PDF_TRUE= GTK_DOC_BUILD_PDF_FALSE='#' else GTK_DOC_BUILD_PDF_TRUE='#' GTK_DOC_BUILD_PDF_FALSE= fi if test -n "$LIBTOOL"; then GTK_DOC_USE_LIBTOOL_TRUE= GTK_DOC_USE_LIBTOOL_FALSE='#' else GTK_DOC_USE_LIBTOOL_TRUE='#' GTK_DOC_USE_LIBTOOL_FALSE= fi if test -n "$GTKDOC_REBASE"; then GTK_DOC_USE_REBASE_TRUE= GTK_DOC_USE_REBASE_FALSE='#' else GTK_DOC_USE_REBASE_TRUE='#' GTK_DOC_USE_REBASE_FALSE= fi # Check for java # Check whether --enable-java was given. if test "${enable_java+set}" = set; then : enableval=$enable_java; else enable_java=no fi if test "$enable_java" != "no"; then # Check whether --with-java-prefix was given. if test "${with_java_prefix+set}" = set; then : withval=$with_java_prefix; fi # Check whether --with-javac-flags was given. if test "${with_javac_flags+set}" = set; then : withval=$with_javac_flags; fi # Check whether --with-java-flags was given. if test "${with_java_flags+set}" = set; then : withval=$with_java_flags; fi JAVAPREFIX=$with_java_prefix JAVACFLAGS=$with_javac_flags JAVAFLAGS=$with_java_flags if test "x$JAVAPREFIX" = x; then : test "x$JAVAC" = x && for ac_prog in "gcj -C" guavac jikes javac do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAVAC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAVAC"; then ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVAC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAVAC=$ac_cv_prog_JAVAC if test -n "$JAVAC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC" >&5 $as_echo "$JAVAC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAVAC" && break done else test "x$JAVAC" = x && for ac_prog in "gcj -C" guavac jikes javac do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAVAC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAVAC"; then ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $JAVAPREFIX/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVAC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAVAC=$ac_cv_prog_JAVAC if test -n "$JAVAC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC" >&5 $as_echo "$JAVAC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAVAC" && break done fi test "x$JAVAC" = x && as_fn_error $? "no acceptable Java compiler found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $JAVAC works" >&5 $as_echo_n "checking if $JAVAC works... " >&6; } if ${ac_cv_prog_javac_works+:} false; then : $as_echo_n "(cached) " >&6 else JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST /* #line 29917 "configure" */ public class Test { } EOF if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null 2>&1; then ac_cv_prog_javac_works=yes else as_fn_error $? "The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" "$LINENO" 5 echo "configure: failed program was:" >&5 cat $JAVA_TEST >&5 fi rm -f $JAVA_TEST $CLASS_TEST fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_javac_works" >&5 $as_echo "$ac_cv_prog_javac_works" >&6; } if test "x$JAVAPREFIX" = x; then : test "x$JAVADOC" = x && for ac_prog in javadoc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAVADOC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAVADOC"; then ac_cv_prog_JAVADOC="$JAVADOC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVADOC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAVADOC=$ac_cv_prog_JAVADOC if test -n "$JAVADOC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVADOC" >&5 $as_echo "$JAVADOC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAVADOC" && break done else test "x$JAVADOC" = x && for ac_prog in javadoc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAVADOC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAVADOC"; then ac_cv_prog_JAVADOC="$JAVADOC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $JAVAPREFIX/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAVADOC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAVADOC=$ac_cv_prog_JAVADOC if test -n "$JAVADOC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVADOC" >&5 $as_echo "$JAVADOC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAVADOC" && break done fi test "x$JAVADOC" = x && as_fn_error $? "no acceptable javadoc generator found in \$PATH" "$LINENO" 5 if test "x$JAVAPREFIX" = x; then : test "x$JAR" = x && for ac_prog in jar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAR"; then ac_cv_prog_JAR="$JAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAR=$ac_cv_prog_JAR if test -n "$JAR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5 $as_echo "$JAR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAR" && break done else test "x$JAR" = x && for ac_prog in jar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAR"; then ac_cv_prog_JAR="$JAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $JAVAPREFIX/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAR=$ac_cv_prog_JAR if test -n "$JAR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5 $as_echo "$JAR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAR" && break done fi test "x$JAR" = x && as_fn_error $? "no acceptable jar program found in \$PATH" "$LINENO" 5 JAVADOC=${JAVADOC-"${am_missing_run}javadoc"} fi if test "$enable_java" != "no"; then JAVA_TRUE= JAVA_FALSE='#' else JAVA_TRUE='#' JAVA_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if implementation in Java should be built" >&5 $as_echo_n "checking if implementation in Java should be built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_java" >&5 $as_echo "$enable_java" >&6; } # Check for C# if test -n "$HAVE_CSHARPCOMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C# program execution engine" >&5 $as_echo_n "checking for C# program execution engine... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _WIN32 || defined __EMX__ || defined __DJGPP__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : MONO_PATH_SEPARATOR=';' else MONO_PATH_SEPARATOR=':' fi rm -f conftest* HAVE_CSHARPEXEC=1 # Extract the first word of "mono", so it can be a program name with args. set dummy mono; ac_word=$2 : if ${ac_cv_prog_HAVE_MONO_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_MONO_IN_PATH"; then ac_cv_prog_HAVE_MONO_IN_PATH="$HAVE_MONO_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_MONO_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_MONO_IN_PATH=$ac_cv_prog_HAVE_MONO_IN_PATH if test -n "$HAVE_MONO_IN_PATH"; then : else : fi # Extract the first word of "clix", so it can be a program name with args. set dummy clix; ac_word=$2 : if ${ac_cv_prog_HAVE_CLIX_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CLIX_IN_PATH"; then ac_cv_prog_HAVE_CLIX_IN_PATH="$HAVE_CLIX_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CLIX_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_CLIX_IN_PATH=$ac_cv_prog_HAVE_CLIX_IN_PATH if test -n "$HAVE_CLIX_IN_PATH"; then : else : fi for impl in "$CSHARP_CHOICE" mono no; do case "$impl" in mono) if test -n "$HAVE_MONO_IN_PATH" \ && mono --version >/dev/null 2>/dev/null \ ; then HAVE_MONO=1 ac_result="mono" break fi ;; sscli) if test -n "$HAVE_CLIX_IN_PATH" \ ; then HAVE_CLIX=1 case $host_os in cygwin* | mingw* | pw32*) CLIX_PATH_VAR=PATH ;; darwin* | rhapsody*) CLIX_PATH_VAR=DYLD_LIBRARY_PATH ;; *) CLIX_PATH_VAR=LD_LIBRARY_PATH ;; esac eval CLIX_PATH=\"\$CLIX_PATH_VAR\" ac_result="clix" break fi ;; no) HAVE_CSHARPEXEC= ac_result="no" break ;; esac done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_result" >&5 $as_echo "$ac_result" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if implementation in C# should be built" >&5 $as_echo_n "checking if implementation in C# should be built... " >&6; } if test -n "$HAVE_CSHARPCOMP" && test -n "$HAVE_CSHARPEXEC"; then enable_csharp=yes else enable_csharp=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_csharp" >&5 $as_echo "$enable_csharp" >&6; } if test "$enable_csharp" = yes; then CSHARP_TRUE= CSHARP_FALSE='#' else CSHARP_TRUE='#' CSHARP_FALSE= fi ubsan=no # Check whether --enable-ubsan was given. if test "${enable_ubsan+set}" = set; then : enableval=$enable_ubsan; if test "$enableval" = yes; then ubsan=yes CFLAGS=$CFLAGS" -fsanitize=undefined -fno-sanitize-recover=undefined" fi fi asan=no # Check whether --enable-asan was given. if test "${enable_asan+set}" = set; then : enableval=$enable_asan; if test "$enableval" = yes; then asan=yes CFLAGS=$CFLAGS" -fsanitize=address -fno-omit-frame-pointer" fi fi # Check whether --enable-gcc-warnings was given. if test "${enable_gcc_warnings+set}" = set; then : enableval=$enable_gcc_warnings; case $enableval in yes|no) ;; *) as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;; esac gl_gcc_warnings=$enableval else gl_gcc_warnings=yes fi if test "$gl_gcc_warnings" = yes; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5 $as_echo_n "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; } if ${gl_cv_warn_c__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_warn_c__Werror__Wunknown_warning_option=yes else gl_cv_warn_c__Werror__Wunknown_warning_option=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5 $as_echo "$gl_cv_warn_c__Werror__Wunknown_warning_option" >&6; } if test "x$gl_cv_warn_c__Werror__Wunknown_warning_option" = xyes; then : gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else gl_unknown_warnings_are_errors= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wframe-larger-than=160" >&5 $as_echo_n "checking whether C compiler handles -Wframe-larger-than=160... " >&6; } if ${gl_cv_warn_c__Wframe_larger_than_160+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wframe-larger-than=160" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_warn_c__Wframe_larger_than_160=yes else gl_cv_warn_c__Wframe_larger_than_160=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wframe_larger_than_160" >&5 $as_echo "$gl_cv_warn_c__Wframe_larger_than_160" >&6; } if test "x$gl_cv_warn_c__Wframe_larger_than_160" = xyes; then : as_fn_append WSTACK_CFLAGS " -Wframe-larger-than=160" fi nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings nw="$nw -Wpadded" # Struct in src/idn_cmd.h is not padded nw="$nw -Wformat" # Self tests and examples print size_t as %d nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers nw="$nw -Woverlength-strings" # Some of our strings are too large nw="$nw -Wsign-conversion" # Too many warnings for now nw="$nw -Wconversion" # Too many warnings for now nw="$nw -Wtraditional" # Warns on #elif which we use often nw="$nw -Wtraditional-conversion" # Too many warnings for now nw="$nw -Wmissing-noreturn" # Too many warnings for now nw="$nw -Wunreachable-code" # Too many false positives nw="$nw -Wlogical-op" # Too many false positives nw="$nw -Wsuggest-attribute=pure" # Is it worth using attributes? nw="$nw -Wsuggest-attribute=const" # Is it worth using attributes? ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5 $as_echo_n "checking whether -Wno-missing-field-initializers is supported... " >&6; } if ${gl_cv_cc_nomfi_supported+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_nomfi_supported=yes else gl_cv_cc_nomfi_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5 $as_echo "$gl_cv_cc_nomfi_supported" >&6; } if test "$gl_cv_cc_nomfi_supported" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5 $as_echo_n "checking whether -Wno-missing-field-initializers is needed... " >&6; } if ${gl_cv_cc_nomfi_needed+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int f (void) { typedef struct { int a; int b; } s_t; s_t s1 = { 0, }; return s1.b; } int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_nomfi_needed=no else gl_cv_cc_nomfi_needed=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5 $as_echo "$gl_cv_cc_nomfi_needed" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5 $as_echo_n "checking whether -Wuninitialized is supported... " >&6; } if ${gl_cv_cc_uninitialized_supported+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wuninitialized" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_uninitialized_supported=yes else gl_cv_cc_uninitialized_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } fi # List all gcc warning categories. # To compare this list to your installed GCC's, run this Bash command: # # comm -3 \ # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\).*/\1/p' manywarnings.m4; \ # awk '/^[^#]/ {print ws}' ../build-aux/gcc-warning.spec) | sort) \ # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) ws= for gl_manywarn_item in -fanalyzer -fno-common \ -Wall \ -Warith-conversion \ -Wbad-function-cast \ -Wcast-align=strict \ -Wdate-time \ -Wdisabled-optimization \ -Wdouble-promotion \ -Wduplicated-branches \ -Wduplicated-cond \ -Wextra \ -Wformat-signedness \ -Winit-self \ -Winline \ -Winvalid-pch \ -Wlogical-op \ -Wmissing-declarations \ -Wmissing-include-dirs \ -Wmissing-prototypes \ -Wnested-externs \ -Wnull-dereference \ -Wold-style-definition \ -Wopenmp-simd \ -Woverlength-strings \ -Wpacked \ -Wpointer-arith \ -Wshadow \ -Wstack-protector \ -Wstrict-overflow \ -Wstrict-prototypes \ -Wsuggest-attribute=cold \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wsuggest-final-methods \ -Wsuggest-final-types \ -Wsync-nand \ -Wsystem-headers \ -Wtrampolines \ -Wuninitialized \ -Wunknown-pragmas \ -Wunsafe-loop-optimizations \ -Wunused-macros \ -Wvariadic-macros \ -Wvector-operation-performance \ -Wvla \ -Wwrite-strings \ \ ; do as_fn_append ws " $gl_manywarn_item" done # gcc --help=warnings outputs an unusual form for these options; list # them here so that the above 'comm' command doesn't report a false match. as_fn_append ws ' -Warray-bounds=2' as_fn_append ws ' -Wattribute-alias=2' as_fn_append ws ' -Wformat-overflow=2' as_fn_append ws ' -Wformat=2' as_fn_append ws ' -Wformat-truncation=2' as_fn_append ws ' -Wimplicit-fallthrough=5' as_fn_append ws ' -Wshift-overflow=2' as_fn_append ws ' -Wunused-const-variable=2' as_fn_append ws ' -Wvla-larger-than=4031' # These are needed for older GCC versions. if test -n "$GCC"; then case `($CC --version) 2>/dev/null` in 'gcc (GCC) '[0-3].* | \ 'gcc (GCC) '4.[0-7].*) as_fn_append ws ' -fdiagnostics-show-option' as_fn_append ws ' -funit-at-a-time' ;; esac fi # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then as_fn_append ws ' -Wno-missing-field-initializers' fi if test "$gl_cv_cc_uninitialized_supported" = no; then as_fn_append ws ' -Wno-uninitialized' fi # Some warnings have too many false alarms in GCC 10.1. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93695 as_fn_append ws ' -Wno-analyzer-double-free' # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94458 as_fn_append ws ' -Wno-analyzer-malloc-leak' # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94851 as_fn_append ws ' -Wno-analyzer-null-dereference' # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95758 as_fn_append ws ' -Wno-analyzer-use-after-free' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu gl_warn_set= set x $ws; shift for gl_warn_item do case " $nw " in *" $gl_warn_item "*) ;; *) as_fn_append gl_warn_set " $gl_warn_item" ;; esac done ws=$gl_warn_set for w in $ws; do as_gl_Warn=`$as_echo "gl_cv_warn_c_$w" | $as_tr_sh` gl_positive="$w" case $gl_positive in -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5 $as_echo_n "checking whether C compiler handles $w... " >&6; } if eval \${$as_gl_Warn+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $gl_positive" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_gl_Warn=yes" else eval "$as_gl_Warn=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi eval ac_res=\$$as_gl_Warn { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Warn"\" = x"yes"; then : as_fn_append WARN_CFLAGS " $w" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5 $as_echo_n "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; } if ${gl_cv_warn_c__Wno_missing_field_initializers+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-field-initializers" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_warn_c__Wno_missing_field_initializers=yes else gl_cv_warn_c__Wno_missing_field_initializers=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_missing_field_initializers" >&5 $as_echo "$gl_cv_warn_c__Wno_missing_field_initializers" >&6; } if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes; then : as_fn_append WARN_CFLAGS " -Wno-missing-field-initializers" fi # Rely on missing field = 0. fi # Check whether --enable-doc was given. if test "${enable_doc+set}" = set; then : enableval=$enable_doc; enable_doc=$enableval else enable_doc=yes fi if test "$enable_doc" != "no"; then ENABLE_DOC_TRUE= ENABLE_DOC_FALSE='#' else ENABLE_DOC_TRUE='#' ENABLE_DOC_FALSE= fi ac_config_files="$ac_config_files Makefile contrib/doxygen/Doxyfile csharp/Makefile doc/Makefile doc/cyclo/Makefile doc/java/Makefile doc/reference/Makefile doc/reference/version.xml doc/specifications/Makefile doc/tld/Makefile examples/Makefile fuzz/Makefile gl/Makefile java/Makefile java/pom.xml java/src/Makefile java/src/main/Makefile java/src/main/java/Makefile java/src/main/java/gnu/Makefile java/src/main/java/gnu/inet/Makefile java/src/main/java/gnu/inet/encoding/Makefile java/src/test/Makefile java/src/test/java/Makefile java/src/util/Makefile java/src/util/java/Makefile lib/Makefile lib/gl/Makefile lib/libidn.pc po/Makefile.in src/Makefile tests/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LD_OUTPUT_DEF_TRUE}" && test -z "${HAVE_LD_OUTPUT_DEF_FALSE}"; then as_fn_error $? "conditional \"HAVE_LD_OUTPUT_DEF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi CONFIG_INCLUDE=config.h if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CHECK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi lgl_libobjs= lgl_ltlibobjs= if test -n "$lgl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgl_libobjs="$lgl_libobjs $i.$ac_objext" lgl_ltlibobjs="$lgl_ltlibobjs $i.lo" done fi lgl_LIBOBJS=$lgl_libobjs lgl_LTLIBOBJS=$lgl_ltlibobjs lgltests_libobjs= lgltests_ltlibobjs= if test -n "$lgltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgltests_libobjs="$lgltests_libobjs $i.$ac_objext" lgltests_ltlibobjs="$lgltests_ltlibobjs $i.lo" done fi lgltests_LIBOBJS=$lgltests_libobjs lgltests_LTLIBOBJS=$lgltests_ltlibobjs if test -z "${TLD_TRUE}" && test -z "${TLD_FALSE}"; then as_fn_error $? "conditional \"TLD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${JAVA_TRUE}" && test -z "${JAVA_FALSE}"; then as_fn_error $? "conditional \"JAVA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CSHARP_TRUE}" && test -z "${CSHARP_FALSE}"; then as_fn_error $? "conditional \"CSHARP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DOC_TRUE}" && test -z "${ENABLE_DOC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by GNU Libidn $as_me 1.38, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration links: $config_links Configuration commands: $config_commands Report bugs to . GNU Libidn home page: . General help using GNU software: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ GNU Libidn config.status 1.38 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" GNUmakefile=$GNUmakefile _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "csharpcomp.sh") CONFIG_FILES="$CONFIG_FILES csharpcomp.sh:build-aux/csharpcomp.sh.in" ;; "csharpexec.sh") CONFIG_FILES="$CONFIG_FILES csharpexec.sh:build-aux/csharpexec.sh.in" ;; "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "contrib/doxygen/Doxyfile") CONFIG_FILES="$CONFIG_FILES contrib/doxygen/Doxyfile" ;; "csharp/Makefile") CONFIG_FILES="$CONFIG_FILES csharp/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/cyclo/Makefile") CONFIG_FILES="$CONFIG_FILES doc/cyclo/Makefile" ;; "doc/java/Makefile") CONFIG_FILES="$CONFIG_FILES doc/java/Makefile" ;; "doc/reference/Makefile") CONFIG_FILES="$CONFIG_FILES doc/reference/Makefile" ;; "doc/reference/version.xml") CONFIG_FILES="$CONFIG_FILES doc/reference/version.xml" ;; "doc/specifications/Makefile") CONFIG_FILES="$CONFIG_FILES doc/specifications/Makefile" ;; "doc/tld/Makefile") CONFIG_FILES="$CONFIG_FILES doc/tld/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "fuzz/Makefile") CONFIG_FILES="$CONFIG_FILES fuzz/Makefile" ;; "gl/Makefile") CONFIG_FILES="$CONFIG_FILES gl/Makefile" ;; "java/Makefile") CONFIG_FILES="$CONFIG_FILES java/Makefile" ;; "java/pom.xml") CONFIG_FILES="$CONFIG_FILES java/pom.xml" ;; "java/src/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/Makefile" ;; "java/src/main/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/Makefile" ;; "java/src/main/java/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/Makefile" ;; "java/src/main/java/gnu/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/gnu/Makefile" ;; "java/src/main/java/gnu/inet/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/gnu/inet/Makefile" ;; "java/src/main/java/gnu/inet/encoding/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/gnu/inet/encoding/Makefile" ;; "java/src/test/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/test/Makefile" ;; "java/src/test/java/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/test/java/Makefile" ;; "java/src/util/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/util/Makefile" ;; "java/src/util/java/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/util/java/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "lib/gl/Makefile") CONFIG_FILES="$CONFIG_FILES lib/gl/Makefile" ;; "lib/libidn.pc") CONFIG_FILES="$CONFIG_FILES lib/libidn.pc" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :L) # # CONFIG_LINK # if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then : else # Prefer the file from the source tree if names are identical. if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then ac_source=$srcdir/$ac_source fi { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: Summary of build options: Version: ${VERSION} Libtool version $LT_CURRENT:$LT_REVISION:$LT_AGE DLL version: $DLL_VERSION Header version: major $MAJOR_VERSION minor $MINOR_VERSION patch $PATCH_VERSION number $NUMBER_VERSION Build/host system: ${build} / ${host} Install prefix: ${prefix} Compiler: ${CC} Warning flags: ${WARN_CFLAGS} CFLAGS: ${CFLAGS} ${CPPFLAGS} LDFlags: ${LDFLAGS} Documentation: ${enable_doc} Library types: Shared=${enable_shared}, Static=${enable_static} Libiconv: $am_cv_func_iconv $LTLIBICONV Valgrind: ${VALGRIND:-no} Version script: $have_ld_version_script nl_langinfo: $gl_cv_header_langinfo_codeset TLD code: $enable_tld Build Java port: $enable_java Build C# port: $enable_csharp Address Sanitizer: $asan UB Sanitizer: $ubsan " >&5 $as_echo "$as_me: Summary of build options: Version: ${VERSION} Libtool version $LT_CURRENT:$LT_REVISION:$LT_AGE DLL version: $DLL_VERSION Header version: major $MAJOR_VERSION minor $MINOR_VERSION patch $PATCH_VERSION number $NUMBER_VERSION Build/host system: ${build} / ${host} Install prefix: ${prefix} Compiler: ${CC} Warning flags: ${WARN_CFLAGS} CFLAGS: ${CFLAGS} ${CPPFLAGS} LDFlags: ${LDFLAGS} Documentation: ${enable_doc} Library types: Shared=${enable_shared}, Static=${enable_static} Libiconv: $am_cv_func_iconv $LTLIBICONV Valgrind: ${VALGRIND:-no} Version script: $have_ld_version_script nl_langinfo: $gl_cv_header_langinfo_codeset TLD code: $enable_tld Build Java port: $enable_java Build C# port: $enable_csharp Address Sanitizer: $asan UB Sanitizer: $ubsan " >&6;} libidn-1.38/tests/0000755000000000000000000000000014076274121011023 500000000000000libidn-1.38/tests/tst_toutf8.c0000644000000000000000000000323014076271517013236 00000000000000/* tst_toutf8.c --- Self tests for UTF-8 conversion functions. * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "utils.h" void doit (void) { char *p; const char *q; q = stringprep_locale_charset (); if (q == NULL) fail ("FAIL: stringprep_locale_charset == NULL\n"); if (debug) printf ("PASS: stringprep_locale_charset == %s\n", q); p = stringprep_locale_to_utf8 ("foo"); if (!p || memcmp (p, "foo", 4) != 0) fail ("FAIL: stringprep_locale_to_utf8(\"foo\") == %s\n", p); if (debug) printf ("PASS: stringprep_locale_to_utf8(\"foo\") == %s\n", p); free (p); p = stringprep_utf8_to_locale ("foo"); if (!p || memcmp (p, "foo", 4) != 0) fail ("FAIL: stringprep_utf8_to_locale(\"foo\") == %s\n", p); if (debug) printf ("PASS: stringprep_utf8_to_locale(\"foo\") == %s\n", p); free (p); } libidn-1.38/tests/tst_strerror.c0000644000000000000000000001020614076271517013670 00000000000000/* tst_strerror.c --- Self tests for *_strerror(). * Copyright (C) 2004-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include #include #ifdef WITH_TLD #include #endif #include "utils.h" #define SUCCESS "Success" #define UNKNOWN "Unknown error" void doit (void) { const char *p; /* Test success. */ p = idna_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("idna_strerror (0) failed: %s\n", p); if (debug) printf ("idna_strerror (0) OK\n"); p = pr29_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("pr29_strerror (0) failed: %s\n", p); if (debug) printf ("pr29_strerror (0) OK\n"); p = punycode_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("punycode_strerror (0) failed: %s\n", p); if (debug) printf ("punycode_strerror (0) OK\n"); p = stringprep_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("stringprep_strerror (0) failed: %s\n", p); if (debug) printf ("stringprep_strerror (0) OK\n"); #ifdef WITH_TLD p = tld_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("tld_strerror (0) failed: %s\n", p); if (debug) printf ("tld_strerror (0) OK\n"); #endif /* Test unknown error. */ p = idna_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("idna_strerror (42) failed: %s\n", p); if (debug) printf ("idna_strerror (42) OK\n"); p = pr29_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("pr29_strerror (42) failed: %s\n", p); if (debug) printf ("pr29_strerror (42) OK\n"); p = punycode_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("punycode_strerror (42) failed: %s\n", p); if (debug) printf ("punycode_strerror (42) OK\n"); p = stringprep_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("stringprep_strerror (42) failed: %s\n", p); if (debug) printf ("stringprep_strerror (42) OK\n"); #ifdef WITH_TLD p = tld_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("tld_strerror (42) failed: %s\n", p); if (debug) printf ("tld_strerror (42) OK\n"); #endif /* Iterate through all error codes. */ { unsigned i; const char *last_p = NULL; for (i = 0;; i++) { p = idna_strerror (i); if (p == last_p) { if (i == 11) { i = 200; continue; } break; } if (debug) printf ("idna %u: %s\n", i, p); last_p = p; } } { unsigned i; const char *last_p = NULL; for (i = 0;; i++) { p = pr29_strerror (i); if (p == last_p) break; if (debug) printf ("pr29 %u: %s\n", i, p); last_p = p; } } { unsigned i; const char *last_p = NULL; for (i = 0;; i++) { p = punycode_strerror (i); if (p == last_p) break; if (debug) printf ("punycode %u: %s\n", i, p); last_p = p; } } { unsigned i; const char *last_p = NULL; for (i = 0;; i++) { p = stringprep_strerror (i); if (p == last_p) { if (i == 7) { i = 99; continue; } else if (i == 105) { i = 199; continue; } break; } if (debug) printf ("stringprep %u: %s\n", i, p); last_p = p; } } #ifdef WITH_TLD { unsigned i; const char *last_p = NULL; for (i = 0;; i++) { p = tld_strerror (i); if (p == last_p) break; if (debug) printf ("tld %u: %s\n", i, p); last_p = p; } } #endif } libidn-1.38/tests/tst_tld.c0000644000000000000000000001607514076271517012603 00000000000000/* tst_tld.c --- Self tests for tld_*(). * Copyright (C) 2004-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include #include "utils.h" struct tld { const char *name; const char *tld; const char *example; size_t inlen; uint32_t in[100]; int rc; size_t errpos; }; static const struct tld tld[] = { { "Simple valid French domain", "fr", "example.fr", 3, {0x00E0, 0x00E2, 0x00E6}, TLD_SUCCESS}, { "Simple invalid French domain", "fr", "ªexample.fr", 5, {0x00E0, 0x00E2, 0x00E6, 0x4711, 0x0042}, TLD_INVALID, 3} }; static const Tld_table _tld_fr_override = { "fr", "2.0", 0, NULL }; /* Main array */ const Tld_table *my_tld_tables[] = { &_tld_fr_override, NULL }; void doit (void) { unsigned i; const Tld_table *tldtable; char *out; size_t errpos; int rc; tldtable = tld_get_table (NULL, NULL); if (tldtable != NULL) fail ("FAIL: tld_get_table (NULL, NULL) != NULL\n"); tldtable = tld_get_table ("nonexisting", NULL); if (tldtable != NULL) fail ("FAIL: tld_get_table (\"nonexisting\", NULL) != NULL\n"); tldtable = tld_default_table (NULL, NULL); if (tldtable != NULL) fail ("FAIL: tld_default_table (NULL, NULL) != NULL\n"); tldtable = tld_default_table (NULL, NULL); if (tldtable != NULL) fail ("FAIL: tld_default_table (NULL, NULL) != NULL\n"); tldtable = tld_default_table ("fr", NULL); if (tldtable == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL) == NULL\n"); else if (tldtable->version == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL)->version == NULL\n"); else if (tldtable->name && strcmp (tldtable->version, "1.0") != 0) fail ("FAIL: tld_default_table (\"fr\", NULL)->version = \"%s\"" " != \"1.0\"\n", tldtable->version); tldtable = tld_default_table ("fr", my_tld_tables); if (tldtable == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL) == NULL\n"); else if (tldtable->version == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL)->version == NULL\n"); else if (tldtable->name && strcmp (tldtable->version, "2.0") != 0) fail ("FAIL: tld_default_table (\"fr\", NULL)->version = \"%s\"" " != \"2.0\"\n", tldtable->version); rc = tld_get_4 (NULL, 42, &out); if (rc != TLD_NODATA) fail ("FAIL: tld_get_4 (NULL, 42, &out) != TLD_NODATA: %d\n", rc); rc = tld_get_4 (tld[0].in, 0, &out); if (rc != TLD_NODATA) fail ("FAIL: tld_get_4 (NULL, 42, &out) != TLD_NODATA: %d\n", rc); rc = tld_check_4t (tld[0].in, tld[0].inlen, NULL, NULL); if (rc != TLD_SUCCESS) fail ("FAIL: tld_check_4t (tld=NULL) != TLD_SUCCESS: %d\n", rc); rc = tld_check_4z (NULL, NULL, NULL); if (rc != TLD_NODATA) fail ("FAIL: tld_check_4z (NULL) != TLD_NODATA: %d\n", rc); rc = tld_check_4z (tld[0].in, NULL, NULL); if (rc != TLD_SUCCESS) fail ("FAIL: tld_check_4z (in) != TLD_SUCCESS: %d\n", rc); rc = tld_check_8z (NULL, NULL, NULL); if (rc != TLD_NODATA) fail ("FAIL: tld_check_8z (NULL) != TLD_NODATA: %d\n", rc); rc = tld_check_lz (NULL, NULL, NULL); if (rc != TLD_NODATA) fail ("FAIL: tld_check_lz (NULL) != TLD_NODATA: %d\n", rc); rc = tld_check_lz ("foo", NULL, NULL); if (rc != TLD_SUCCESS) fail ("FAIL: tld_check_lz (\"foo\") != TLD_SUCCESS: %d\n", rc); { uint32_t in[] = { 0x73, 0x6a, 0x64, 0x2e, 0x73, 0x65, 0x00 }; const char *p; rc = tld_get_4 (in, 6, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_4 (in, 6, &out) != TLD_OK: %d\n", rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_4 (in, 6, &out): %s\n", out); idn_free (out); rc = tld_get_4z (in, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_4z (in, &out) != TLD_OK: %d\n", rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_4z (in, &out): %s\n", out); idn_free (out); p = "sjd.se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); p = "foo.bar.baz.sjd.se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); p = ".sjd.se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); p = ".se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); } for (i = 0; i < sizeof (tld) / sizeof (tld[0]); i++) { if (debug) printf ("TLD entry %u: %s\n", i, tld[i].name); if (debug) { printf ("in:\n"); ucs4print (tld[i].in, tld[i].inlen); } tldtable = tld_default_table (tld[i].tld, NULL); if (tldtable == NULL) { fail ("TLD entry %u tld_get_table (%s)\n", i, tld[i].tld); if (debug) printf ("FATAL\n"); continue; } rc = tld_check_4t (tld[i].in, tld[i].inlen, &errpos, tldtable); if (rc != tld[i].rc) { fail ("TLD entry %u failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (debug) printf ("returned %d expected %d\n", rc, tld[i].rc); if (rc != tld[i].rc) { fail ("TLD entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (rc == TLD_INVALID) { if (debug) printf ("returned errpos %ld expected errpos %ld\n", (long) errpos, (long) tld[i].errpos); if (tld[i].errpos != errpos) { fail ("TLD entry %u failed because errpos %ld != %ld\n", i, (long) tld[i].errpos, (long) errpos); if (debug) printf ("ERROR\n"); } } else if (debug) printf ("OK\n"); { rc = tld_check_8z (tld[i].example, &errpos, NULL); if (rc != tld[i].rc) { fail ("TLD entry %u failed\n", i); if (debug) printf ("ERROR\n"); } if (debug) printf ("TLD entry %u tld_check_8z (%s)\n", i, tld[i].example); } } } libidn-1.38/tests/tst_idna3.c0000644000000000000000000000453014076271517013007 00000000000000/* tst_idna3.c --- Self tests for upper-case XN-- regression. * Copyright (C) 2011-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include "utils.h" struct idna { const char *in; const char *out; }; static const struct idna idna[] = { /* Test vectors from http://bugs.debian.org/610617 */ {"XN----7SBAABF4DLDYSIEHP4NTB.XN--P1AI", "\xd1\x81\xd0\xb0\xd0\xbc\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1" "\x8f\x2d\xd0\xbe\xd0\xb1\xd0\xbb\xd0\xb0\xd1\x81\xd1\x82\xd1\x8c\x2e" "\xd1\x80\xd1\x84"}, {"xn----7SBAABF4DLDYSIEHP4NTB.XN--P1AI", "\xd1\x81\xd0\xb0\xd0\xbc\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1" "\x8f\x2d\xd0\xbe\xd0\xb1\xd0\xbb\xd0\xb0\xd1\x81\xd1\x82\xd1\x8c\x2e" "\xd1\x80\xd1\x84"}, {"xn----7SBAABF4DLDYSIEHP4NTB.xn--P1AI", "\xd1\x81\xd0\xb0\xd0\xbc\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1" "\x8f\x2d\xd0\xbe\xd0\xb1\xd0\xbb\xd0\xb0\xd1\x81\xd1\x82\xd1\x8c\x2e" "\xd1\x80\xd1\x84"} }; void doit (void) { int rc; char *out = NULL; unsigned i; for (i = 0; i < sizeof (idna) / sizeof (idna[0]); i++) { rc = idna_to_unicode_8z8z (idna[i].in, &out, 0); if (rc != IDNA_SUCCESS) fail ("IDNA3[%u] failed %d\n", i, rc); if (debug && rc == IDNA_SUCCESS) { printf ("input: %s\n", idna[i].in); printf ("computed out: %s\n", out); printf ("expected out: %s\n", idna[i].out); } if (strcmp (out, idna[i].out) != 0) fail ("IDNA3[%u] failed\n", i); else if (debug) printf ("IDNA3[%u] success\n", i); if (out) idn_free (out); } } libidn-1.38/tests/tst_toascii64oob.c0000644000000000000000000000353514076271517014322 00000000000000/* tst_toascii64oob.c --- Regression tests for stack OOB in idna_to_ascii(). * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include "utils.h" /* Reported by Hanno Böck in https://lists.gnu.org/archive/html/help-libidn/2015-07/msg00016.html */ /* This test requires you to build with CFLAGS="-fsanitize=address" and disable valgrind since asan and valgrind conflict. Thus normally a bit uneffective, but may be useful to have around. make make make clean make CFLAGS="-fsanitize=address" make CFLAGS="-fsanitize=address" check VALGRIND= Revert patch in URL above to trigger this self test. */ void doit (void) { const char *in = "00000000000000000000000000000000000000000000000000" "00000000000000"; char *output; uint32_t *tmp; int rc; tmp = stringprep_utf8_to_ucs4 (in, -1, NULL); if (!tmp) fail ("stringprep_utf8_to_ucs4 failed"); rc = idna_to_ascii_4z (tmp, &output, 0); free (tmp); if (rc != IDNA_INVALID_LENGTH) fail ("idna_to_ascii_4z: %d", rc); } libidn-1.38/tests/tst_idna2.c0000644000000000000000000004653014076271517013014 00000000000000/* tst_idna2.c --- Self tests for idna_to_ascii_8z(). * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "utils.h" struct idna { const char *in; const char *out; }; static const struct idna idna[] = { {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc3\xad\x64\x6e", "example.xn--dn-mja" /* 1-1-1 Has an IDN in just the TLD */ }, {"\xc3\xab\x78\x2e\xc3\xad\x64\x6e", "xn--x-ega.xn--dn-mja" /* 1-1-2 Has an IDN in the TLD and SLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc3\xa5\xc3\xbe\xc3\xa7", "example.xn--5cae2e" /* 1-2-1 Latin-1 TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc4\x83\x62\xc4\x89", "example.xn--b-rhat" /* 1-2-2 Latin Extended A TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc8\xa7\xc6\x80\xc6\x88", "example.xn--lhaq98b" /* 1-2-3 Latin Extended B TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\xb8\x81\xe1\xb8\x83\xe1\xb8\x89", "example.xn--2fges" /* 1-2-4 Latin Extended Additional TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe4\xb8\xbf\xe4\xba\xba\xe5\xb0\xb8", "example.xn--xiqplj17a" /* 1-3-1 Han TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe3\x81\x8b\xe3\x81\x8c\xe3\x81\x8d", "example.xn--u8jcd" /* 1-3-2 Hiragana TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe3\x82\xab\xe3\x82\xac\xe3\x82\xad", "example.xn--lckcd" /* 1-3-3 Katakana TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x84\x80\xe1\x85\xa1\xe1\x86\xa8", "example.xn--p39a" /* 1-3-4 Hangul Jamo TLD */ /* Don't resolve as example.xn--ypd8qrh */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xea\xb1\xa9\xeb\x93\x86\xec\x80\xba", "example.xn--o69aq2nl0j" /* 1-3-5 Hangul TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xea\x80\x8a\xea\x80\xa0\xea\x8a\xb8", "example.xn--6l7arby7j" /* 1-3-6 Yi TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xce\xb1\xce\xb2\xce\xb3", "example.xn--mxacd" /* 1-3-7 Greek TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\xbc\x82\xe1\xbc\xa6\xe1\xbd\x95", "example.xn--fng7dpg" /* 1-3-8 Greek Extended TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd0\xb0\xd0\xb1\xd0\xb2", "example.xn--80acd" /* 1-3-9 Cyrillic TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd5\xa1\xd5\xa2\xd5\xa3", "example.xn--y9acd" /* 1-3-10 Armeian TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x83\x90\xe1\x83\x91\xe1\x83\x92", "example.xn--lodcd" /* 1-3-11 Georgian TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe2\x88\xa1\xe2\x86\xba\xe2\x8a\x82", "example.xn--b7gxomk" /* 1-4-1 Symbols TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xa4\x95\xe0\xa4\x96\xe0\xa4\x97", "example.xn--11bcd" /* 1-5-1 Devanagari TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xa6\x95\xe0\xa6\x96\xe0\xa6\x97", "example.xn--p5bcd" /* 1-5-2 Bengali TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xa8\x95\xe0\xa8\x96\xe0\xa8\x97", "example.xn--d9bcd" /* 1-5-3 Gurmukhi TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xaa\x95\xe0\xaa\x96\xe0\xaa\x97", "example.xn--0dccd" /* 1-5-4 Gujarati TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xac\x95\xe0\xac\x96\xe0\xac\x97", "example.xn--ohccd" /* 1-5-5 Oriya TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xae\x95\xe0\xae\x99\xe0\xae\x9a", "example.xn--clcid" /* 1-5-6 Tamil TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb0\x95\xe0\xb0\x96\xe0\xb0\x97", "example.xn--zoccd" /* 1-5-7 Telugu TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb2\x95\xe0\xb2\x96\xe0\xb2\x97", "example.xn--nsccd" /* 1-5-8 Kannada TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb4\x95\xe0\xb4\x96\xe0\xb4\x97", "example.xn--bwccd" /* 1-5-9 Malayalam TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb6\x9a\xe0\xb6\x9b\xe0\xb6\x9c", "example.xn--3zccd" /* 1-5-10 Sinhala TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb8\x81\xe0\xb8\x82\xe0\xb8\x83", "example.xn--12ccd" /* 1-5-11 Thai TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xba\x81\xe0\xba\x82\xe0\xba\x84", "example.xn--p6ccg" /* 1-5-12 Lao TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xbd\x80\xe0\xbd\x81\xe0\xbd\x82", "example.xn--5cdcd" /* 1-5-13 Tibetan TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x80\x80\xe1\x80\x81\xe1\x80\x82", "example.xn--nidcd" /* 1-5-14 Myanmar TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x9e\x80\xe1\x9e\x81\xe1\x9e\x82", "example.xn--i2ecd" /* 1-5-15 Khmer TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\xa0\xa0\xe1\xa0\xa1\xe1\xa0\xa2", "example.xn--26ecd" /* 1-5-16 Mongolian TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd8\xa7\xd8\xa8\xd8\xa9", "example.xn--mgbcd" /* 1-6-1 Arabic TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd7\x90\xd7\x91\xd7\x92", "example.xn--4dbcd" /* 1-6-2 Hebrew TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xdc\x90\xdc\x91\xdc\x92", "example.xn--9mbcd" /* 1-6-3 Syriac TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\x61\x62\x63\xe3\x82\xab\xe3\x82\xac\xe3\x82\xad", "example.xn--abc-mj4bfg" /* 1-7-1 ASCII and non-Latin TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc3\xa5\xc3\xbe\xc3\xa7\xe3\x82\xab\xe3\x82\xac\xe3\x82\xad", "example.xn--5cae2e328wfag" /* 1-7-2 Latin (non-ASCII) and non-Latin TLD */ }, {"\xc3\xad\x21\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-1-1 Includes ! before Nameprep */ /* Don't resolve as xn--!dn-qma.example */ }, {"\xc3\xad\x24\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-1-2 Includes $ before Nameprep */ /* Don't resolve as xn--$dn-qma.example */ }, {"\xc3\xad\x2b\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-1-3 Includes + before Nameprep */ /* Don't resolve as xn--+dn-qma.example */ }, {"\x2d\xc3\xad\x31\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-2-1 Leading hyphen before Nameprep */ /* Don't resolve as xn---1dn-vpa.example */ }, {"\xc3\xad\x31\x64\x6e\x2d\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-2-2 Trailing hyphen before Nameprep */ /* Don't resolve as xn--1dn--upa.example */ }, {"\xc3\xad\xef\xbc\x8b\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-3-1 Gets a + after Nameprep */ /* Don't resolve as xn--dn-mja0331x.example */ }, {"\xc3\xad\xe2\x81\xbc\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-3-2 Gets a = after Nameprep */ /* Don't resolve as xn--dn-mja0343a.example */ }, {"\xef\xb9\xa3\xc3\xad\x32\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-4-1 Leading hyphen after Nameprep */ /* Don't resolve as xn--2dn-qma32863a.example */ /* Don't resolve as xn---2dn-vpa.example */ }, {"\xc3\xad\x32\x64\x6e\xef\xbc\x8d\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-4-2 Trailing hyphen after Nameprep */ /* Don't resolve as xn--2dn-qma79363a.example */ /* Don't resolve as xn--2dn--upa.example */ }, {"\xc2\xb9\x31\x2e\x65\x78\x61\x6d\x70\x6c\x65", "11.example" /* 2-4-1 All-ASCII check, Latin */ }, {"\xe2\x85\xa5\x76\x69\x2e\x65\x78\x61\x6d\x70\x6c\x65", "vivi.example" /* 2-4-2 All-ASCII check, symbol */ }, {"\xc3\x9f\x73\x73\x2e\x65\x78\x61\x6d\x70\x6c\x65", "ssss.example" /* 2-4-3 All-ASCII check, sharp S */ }, {"\x78\x6e\x2d\x2d\xc3\xaf\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-5-1 ACE prefix before Nameprep, body */ /* Don't resolve as xn--xn--dn-sja.example */ /* Don't resolve as xn--dn-sja.example */ }, {"\xe2\x85\xb9\x6e\x2d\x2d\xc3\xa4\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-5-2 ACE prefix before Nameprep, prefix */ /* Don't resolve as xn--xn--dn-uia.example */ /* Don't resolve as xn--dn-uia.example */ }, {"", "" /* 2-8-1 Zero-length label after Nameprep */ /* Don't resolve as xn--kba.example */ /* Don't resolve as xn--.example */ }, {"\x33\x30\x30\x32\x2d\x74\x65\x73\x74\xe3\x80\x82\xc3\xad\x64\x6e", "3002-test.xn--dn-mja" /* 2-9-1 U+3002 acts as a label separator */ /* Don't resolve as xn--3002-testdn-wcb2087m.example */ }, {"\x66\x66\x30\x65\x2d\x74\x65\x73\x74\xef\xbc\x8e\xc3\xad\x64\x6e", "ff0e-test.xn--dn-mja" /* 2-9-2 U+FF0E acts as a label separator */ /* Don't resolve as xn--ff0e-testdn-wcb45865f.example */ }, {"\x66\x66\x36\x31\x2d\x74\x65\x73\x74\xef\xbd\xa1\xc3\xad\x64\x6e", "ff61-test.xn--dn-mja" /* 2-9-3 U+FF61 acts as a label separator */ /* Don't resolve as xn--ff61-testdn-wcb33975f.example */ }, {"\x30\x30\x61\x64\x6f\x75\x74\xc2\xad\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--00adoutdn-m5a.example" /* 4-1-1-1 00adout<00AD><00ED>dn.example -> 00adout<00ED>dn.example */ /* Don't resolve as xn--00adoutdn-cna81e.example */ }, {"\x32\x30\x30\x64\x6f\x75\x74\xe2\x80\x8d\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--200doutdn-m5a.example" /* 4-1-1-2 200dout<200D><00ED>dn.example -> 200dout<00ED>dn.example */ /* Don't resolve as xn--200doutdn-m5a1678f.example */ }, {"\x73\x69\x6d\x70\x6c\x65\x63\x61\x70\x44\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--simplecapddn-1fb.example" /* 4-1-2-1 simplecap<0044><00ED>dn.example -> simplecap<0064><00ED>dn.example */ }, {"\x6c\x61\x74\x69\x6e\x74\x6f\x67\x72\x65\x65\x6b\xc2\xb5\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--latintogreekdn-cmb716i.example" /* 4-1-2-2 latintogreek<00B5><00ED>dn.example -> latintogreek<03BC><00ED>dn.example */ /* Don't resolve as xn--latintogreekdn-cxa01g.example */ }, {"\x6c\x61\x74\x69\x6e\x65\x78\x74\xc3\x87\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--latinextdn-v6a6e.example" /* 4-1-2-3 latinext<00C7><00ED>dn.example -> latinext<00E7><00ED>dn.example */ /* Don't resolve as xn--latinextdn-twa07b.example */ }, {"\x73\x68\x61\x72\x70\x73\xc3\x9f\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--sharpsssdn-r8a.example" /* 4-1-2-4 sharps<00DF><00ED>dn.example -> sharpsss<00ED>dn.example */ /* Don't resolve as xn--sharpsdn-vya4l.example */ }, {"\x74\x75\x72\x6b\x69\x73\x68\x69\xc4\xb0\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--turkishiidn-wcb701e.example" /* 4-1-2-5 turkishi<0130><00ED>dn.example -> turkishi<0069><0307><00ED>dn.example */ /* Don't resolve as xn--turkishidn-r8a71f.example */ }, {"\x65\x78\x70\x74\x77\x6f\xc5\x89\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--exptwondn-m5a502c.example" /* 4-1-2-6 exptwo<0149><00ED>dn.example -> exptwo<02BC><006E><00ED>dn.example */ /* Don't resolve as xn--exptwodn-h2a33g.example */ }, {"\x61\x64\x64\x66\x6f\x6c\x64\xcf\x92\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--addfolddn-m5a121f.example" /* 4-1-2-7 addfold<03D2><00ED>dn.example -> addfold<03C5><00ED>dn.example */ /* Don't resolve as xn--addfolddn-m5a462f.example */ }, {"\x65\x78\x70\x74\x68\x72\x65\x65\xe1\xbd\x92\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--expthreedn-r8a5844g.example" /* 4-1-2-8 expthree<1F52><00ED>dn.example -> expthree<03C5><0313><0300><00ED>dn.example */ }, {"\x6e\x6f\x6e\x62\x6d\x70\xf0\x90\x90\x80\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--nonbmpdn-h2a34747d.example" /* 4-1-2-9 nonbmp<10400><00ED>dn.example -> nonbmp<10428><00ED>dn.example */ /* Don't resolve as xn--nonbmpdn-h2a37046d.example */ }, {"\x6e\x6f\x6e\x62\x6d\x70\x74\x6f\x61\x73\x63\x69\x69\xf0\x9d\x90\x80\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--nonbmptoasciiadn-msb.example" /* 4-1-2-10 nonbmptoascii<1D400><00ED>dn.example -> nonbmptoasciia<00ED>dn.example */ /* Don't resolve as xn--nonbmptoasciidn-hpb54112i.example */ }, {"\x72\x65\x67\x63\x6f\x6d\x62\x65\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--regcombdn-h4a8b.example" /* 4-2-1-1 regcomb<0065><0301><00ED>dn.example -> regcomb<00E9><00ED>dn.example */ /* Don't resolve as xn--regcombedn-r8a794d.example */ }, {"\x63\x6f\x6d\x62\x61\x6e\x64\x63\x61\x73\x65\x45\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--combandcasedn-lhb4d.example" /* 4-2-1-2 combandcase<0045><0301><00ED>dn.example -> combandcase<00E9><00ED>dn.example */ /* Don't resolve as xn--combandcaseedn-cmb526f.example */ }, {"\x61\x64\x6a\x63\x6f\x6d\x62\xc2\xba\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--adjcombdn-m5a9d.example" /* 4-2-1-3 adjcomb<00BA><0301><00ED>dn.example -> adjcomb<00F3><00ED>dn.example */ /* Don't resolve as xn--adjcombdn-1qa57cp3r.example */ }, {"\x65\x78\x74\x63\x6f\x6d\x62\x6f\x63\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--extcombodn-r8a52a.example" /* 4-2-1-4 extcombo<0063><0301><00ED>dn.example -> extcombo<0107><00ED>dn.example */ /* Don't resolve as xn--extcombocdn-wcb920e.example */ }, {"\x64\x6f\x75\x62\x6c\x65\x64\x69\x61\x63\x31\x75\xcc\x88\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--doublediac1dn-6ib836a.example" /* 4-2-1-5 doublediac1<0075><0308><0301><00ED>dn.example -> doublediac2<01D8><00ED>dn.example */ /* Don't resolve as xn--doublediac1udn-cmb526fnd.example */ }, {"\x64\x6f\x75\x62\x6c\x65\x64\x69\x61\x63\x32\x75\xcc\x81\xcc\x88\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--doublediac2dn-6ib8qs73a.example" /* 4-2-1-6 doublediac2<0075><0301><0308><00ED>dn.example -> doublediac2<01D8><00ED>dn.example */ /* Don't resolve as xn--doublediac2udn-cmb526fod.example */ }, {"\x6e\x65\x77\x6e\x6f\x72\x6d\xf0\xaf\xa1\xb4\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--newnormdn-m5a7856x.example" /* 4-2-2-1 newnorm<2F874><00ED>dn.example -> newnorm<5F33><00ED>dn.example should not become <5F53> */ /* Don't resolve as xn--newnormdn-m5a9396x.example */ /* Don't resolve as xn--newnormdn-m5a9968x.example */ }, {"\xe2\x80\x80\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-1 Spacing */ /* Don't resolve as xn--dn-mja3392a.example */ }, {"\xdb\x9d\xc3\xad\x64\x6e\x2d\x32\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-2 Control */ /* Don't resolve as xn--dn-2-upa332g.example */ }, {"\xee\x80\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-3 Private use */ /* Don't resolve as xn--dn-mja1659t.example */ }, {"\xf3\xb0\x80\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-4 Private use, non-BMP */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xef\xb7\x9d\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-5 Non-character */ /* Don't resolve as xn--dn-mja1210x.example */ }, {"\xf0\x9f\xbf\xbe\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-6 Non-character, non-BMP */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xef\xbf\xbd\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-7 Surrogate points */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xef\xbf\xba\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-8 Inappropriate for plain */ /* Don't resolve as xn--dn-mja5822x.example */ }, {"\xe2\xbf\xb5\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-9 Inappropriate for canonical */ /* Don't resolve as xn--dn-mja3729b.example */ }, {"\xe2\x81\xaa\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-10 Change display simple */ /* Don't resolve as xn--dn-mja7533a.example */ }, {"\xe2\x80\x8f\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-11 Change display RTL */ /* Don't resolve as xn--dn-mja3992a.example */ }, {"\xf3\xa0\x80\x81\xf3\xa0\x81\x85\xf3\xa0\x81\x8e\x68\x69\x69\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-12 Language tags */ /* Don't resolve as xn--hiidn-km43aaa.example */ }, {"\xd8\xa8\x6f\xd8\xb8\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-1 Arabic RandALCat-LCat-RandALCat */ /* Don't resolve as xn--o-0mc3c.example */ }, {"\xd8\xa8\xd8\xb8\x6f\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-2 Arabic RandALCat-RandALCat-other */ /* Don't resolve as xn--o-0mc2c.example */ }, {"\x6f\xd8\xa8\xd8\xb8\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-3 Arabic other-RandALCat-RandALCat */ /* Don't resolve as xn--o-1mc2c.example */ }, {"\xd7\x91\x6f\xd7\xa1\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-4 Hebrew RandALCat-LCat-RandALCat */ /* Don't resolve as xn--o-1hc3c.example */ }, {"\xd7\x91\xd7\xa1\x6f\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-5 Hebrew RandALCat-RandALCat-other */ /* Don't resolve as xn--o-1hc2c.example */ }, {"\x6f\xd7\x91\xd7\xa1\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-6 Hebrew other-RandALCat-RandALCat */ /* Don't resolve as xn--o-2hc2c.example */ }, {"\xc8\xb7\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja33k.example" /* 5-1-1 Unassigned in BMP; zone editors should reject */ }, {"\xf0\x90\x88\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja7734x.example" /* 5-1-2 Unassinged outside BMP; zone editors should reject */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xc8\xb4\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja12k.example" /* 5-2-1 Newly assigned in BMP; zone editors should reject */ }, {"\xf0\x90\x80\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja9232x.example" /* 5-2-2 Newly assigned outside of BMP; zone editors should reject */ /* Don't resolve as xn--dn-mja7922x.example */ } }; void doit (void) { unsigned i; char *out; int rc; for (i = 0; i < sizeof (idna) / sizeof (idna[0]); i++) { if (debug) printf ("IDNA2 entry %u\n", i); if (debug) { uint32_t *p; size_t len; printf ("in: %s\n", idna[i].in); hexprint (idna[i].in, strlen (idna[i].in)); escapeprint (idna[i].in, strlen (idna[i].in)); p = stringprep_utf8_to_ucs4 (idna[i].in, -1, &len); ucs4print (p, len); free (p); } rc = idna_to_ascii_8z (idna[i].in, &out, IDNA_ALLOW_UNASSIGNED | IDNA_USE_STD3_ASCII_RULES); if (rc != IDNA_SUCCESS && strlen (idna[i].out) > 0) { fail ("IDNA2 entry %u failed: %d\n", i, rc); continue; } if (debug && rc == IDNA_SUCCESS) { printf ("computed out: %s\n", out); printf ("expected out: %s\n", idna[i].out); } else if (debug) printf ("returned %d\n", rc); if (rc == IDNA_SUCCESS) { if (strlen (idna[i].out) != strlen (out) || strcasecmp (idna[i].out, out) != 0) { fail ("IDNA2 entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n"); free (out); out = NULL; } else if (rc != IDNA_SUCCESS && strlen (idna[i].out) == 0 && debug) printf ("OK (fail)\n"); else if (debug) printf ("OK\n"); } } libidn-1.38/tests/Makefile.in0000644000000000000000000025256614076273733013040 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @TLD_TRUE@am__append_1 = tst_tld TESTS = $(am__EXEEXT_2) check_PROGRAMS = $(am__EXEEXT_2) subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @TLD_TRUE@am__EXEEXT_1 = tst_tld$(EXEEXT) am__EXEEXT_2 = tst_stringprep$(EXEEXT) tst_punycode$(EXEEXT) \ tst_idna$(EXEEXT) tst_idna2$(EXEEXT) tst_idna3$(EXEEXT) \ tst_idna4$(EXEEXT) tst_nfkc$(EXEEXT) tst_pr29$(EXEEXT) \ tst_strerror$(EXEEXT) tst_toutf8$(EXEEXT) tst_symbols$(EXEEXT) \ tst_badutf8$(EXEEXT) tst_utf8crash$(EXEEXT) \ tst_toascii64oob$(EXEEXT) tst_badutf8nfkc$(EXEEXT) \ $(am__EXEEXT_1) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libutils_a_AR = $(AR) $(ARFLAGS) libutils_a_LIBADD = am_libutils_a_OBJECTS = utils.$(OBJEXT) libutils_a_OBJECTS = $(am_libutils_a_OBJECTS) tst_badutf8_SOURCES = tst_badutf8.c tst_badutf8_OBJECTS = tst_badutf8.$(OBJEXT) tst_badutf8_LDADD = $(LDADD) tst_badutf8_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = tst_badutf8nfkc_SOURCES = tst_badutf8nfkc.c tst_badutf8nfkc_OBJECTS = tst_badutf8nfkc.$(OBJEXT) tst_badutf8nfkc_LDADD = $(LDADD) tst_badutf8nfkc_DEPENDENCIES = libutils.a ../lib/libidn.la \ ../gl/libgnu.la tst_idna_SOURCES = tst_idna.c tst_idna_OBJECTS = tst_idna.$(OBJEXT) tst_idna_LDADD = $(LDADD) tst_idna_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_idna2_SOURCES = tst_idna2.c tst_idna2_OBJECTS = tst_idna2.$(OBJEXT) tst_idna2_LDADD = $(LDADD) tst_idna2_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_idna3_SOURCES = tst_idna3.c tst_idna3_OBJECTS = tst_idna3.$(OBJEXT) tst_idna3_LDADD = $(LDADD) tst_idna3_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_idna4_SOURCES = tst_idna4.c tst_idna4_OBJECTS = tst_idna4.$(OBJEXT) tst_idna4_LDADD = $(LDADD) tst_idna4_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_nfkc_SOURCES = tst_nfkc.c tst_nfkc_OBJECTS = tst_nfkc.$(OBJEXT) tst_nfkc_LDADD = $(LDADD) tst_nfkc_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_pr29_SOURCES = tst_pr29.c tst_pr29_OBJECTS = tst_pr29.$(OBJEXT) tst_pr29_LDADD = $(LDADD) tst_pr29_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_punycode_SOURCES = tst_punycode.c tst_punycode_OBJECTS = tst_punycode.$(OBJEXT) tst_punycode_LDADD = $(LDADD) tst_punycode_DEPENDENCIES = libutils.a ../lib/libidn.la \ ../gl/libgnu.la tst_strerror_SOURCES = tst_strerror.c tst_strerror_OBJECTS = tst_strerror.$(OBJEXT) tst_strerror_LDADD = $(LDADD) tst_strerror_DEPENDENCIES = libutils.a ../lib/libidn.la \ ../gl/libgnu.la tst_stringprep_SOURCES = tst_stringprep.c tst_stringprep_OBJECTS = tst_stringprep.$(OBJEXT) tst_stringprep_LDADD = $(LDADD) tst_stringprep_DEPENDENCIES = libutils.a ../lib/libidn.la \ ../gl/libgnu.la tst_symbols_SOURCES = tst_symbols.c tst_symbols_OBJECTS = tst_symbols.$(OBJEXT) tst_symbols_LDADD = $(LDADD) tst_symbols_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_tld_SOURCES = tst_tld.c tst_tld_OBJECTS = tst_tld.$(OBJEXT) tst_tld_LDADD = $(LDADD) tst_tld_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_toascii64oob_SOURCES = tst_toascii64oob.c tst_toascii64oob_OBJECTS = tst_toascii64oob.$(OBJEXT) tst_toascii64oob_LDADD = $(LDADD) tst_toascii64oob_DEPENDENCIES = libutils.a ../lib/libidn.la \ ../gl/libgnu.la tst_toutf8_SOURCES = tst_toutf8.c tst_toutf8_OBJECTS = tst_toutf8.$(OBJEXT) tst_toutf8_LDADD = $(LDADD) tst_toutf8_DEPENDENCIES = libutils.a ../lib/libidn.la ../gl/libgnu.la tst_utf8crash_SOURCES = tst_utf8crash.c tst_utf8crash_OBJECTS = tst_utf8crash.$(OBJEXT) tst_utf8crash_LDADD = $(LDADD) tst_utf8crash_DEPENDENCIES = libutils.a ../lib/libidn.la \ ../gl/libgnu.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/tst_badutf8.Po \ ./$(DEPDIR)/tst_badutf8nfkc.Po ./$(DEPDIR)/tst_idna.Po \ ./$(DEPDIR)/tst_idna2.Po ./$(DEPDIR)/tst_idna3.Po \ ./$(DEPDIR)/tst_idna4.Po ./$(DEPDIR)/tst_nfkc.Po \ ./$(DEPDIR)/tst_pr29.Po ./$(DEPDIR)/tst_punycode.Po \ ./$(DEPDIR)/tst_strerror.Po ./$(DEPDIR)/tst_stringprep.Po \ ./$(DEPDIR)/tst_symbols.Po ./$(DEPDIR)/tst_tld.Po \ ./$(DEPDIR)/tst_toascii64oob.Po ./$(DEPDIR)/tst_toutf8.Po \ ./$(DEPDIR)/tst_utf8crash.Po ./$(DEPDIR)/utils.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libutils_a_SOURCES) tst_badutf8.c tst_badutf8nfkc.c \ tst_idna.c tst_idna2.c tst_idna3.c tst_idna4.c tst_nfkc.c \ tst_pr29.c tst_punycode.c tst_strerror.c tst_stringprep.c \ tst_symbols.c tst_tld.c tst_toascii64oob.c tst_toutf8.c \ tst_utf8crash.c DIST_SOURCES = $(libutils_a_SOURCES) tst_badutf8.c tst_badutf8nfkc.c \ tst_idna.c tst_idna2.c tst_idna3.c tst_idna4.c tst_nfkc.c \ tst_pr29.c tst_punycode.c tst_strerror.c tst_stringprep.c \ tst_symbols.c tst_tld.c tst_toascii64oob.c tst_toutf8.c \ tst_utf8crash.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl AM_LDFLAGS = -no-install LDADD = libutils.a ../lib/libidn.la ../gl/libgnu.la check_LIBRARIES = libutils.a libutils_a_SOURCES = utils.h utils.c ctests = tst_stringprep tst_punycode tst_idna tst_idna2 tst_idna3 \ tst_idna4 tst_nfkc tst_pr29 tst_strerror tst_toutf8 \ tst_symbols tst_badutf8 tst_utf8crash tst_toascii64oob \ tst_badutf8nfkc $(am__append_1) LOG_COMPILER = $(VALGRIND) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-checkLIBRARIES: -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES) libutils.a: $(libutils_a_OBJECTS) $(libutils_a_DEPENDENCIES) $(EXTRA_libutils_a_DEPENDENCIES) $(AM_V_at)-rm -f libutils.a $(AM_V_AR)$(libutils_a_AR) libutils.a $(libutils_a_OBJECTS) $(libutils_a_LIBADD) $(AM_V_at)$(RANLIB) libutils.a tst_badutf8$(EXEEXT): $(tst_badutf8_OBJECTS) $(tst_badutf8_DEPENDENCIES) $(EXTRA_tst_badutf8_DEPENDENCIES) @rm -f tst_badutf8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_badutf8_OBJECTS) $(tst_badutf8_LDADD) $(LIBS) tst_badutf8nfkc$(EXEEXT): $(tst_badutf8nfkc_OBJECTS) $(tst_badutf8nfkc_DEPENDENCIES) $(EXTRA_tst_badutf8nfkc_DEPENDENCIES) @rm -f tst_badutf8nfkc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_badutf8nfkc_OBJECTS) $(tst_badutf8nfkc_LDADD) $(LIBS) tst_idna$(EXEEXT): $(tst_idna_OBJECTS) $(tst_idna_DEPENDENCIES) $(EXTRA_tst_idna_DEPENDENCIES) @rm -f tst_idna$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna_OBJECTS) $(tst_idna_LDADD) $(LIBS) tst_idna2$(EXEEXT): $(tst_idna2_OBJECTS) $(tst_idna2_DEPENDENCIES) $(EXTRA_tst_idna2_DEPENDENCIES) @rm -f tst_idna2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna2_OBJECTS) $(tst_idna2_LDADD) $(LIBS) tst_idna3$(EXEEXT): $(tst_idna3_OBJECTS) $(tst_idna3_DEPENDENCIES) $(EXTRA_tst_idna3_DEPENDENCIES) @rm -f tst_idna3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna3_OBJECTS) $(tst_idna3_LDADD) $(LIBS) tst_idna4$(EXEEXT): $(tst_idna4_OBJECTS) $(tst_idna4_DEPENDENCIES) $(EXTRA_tst_idna4_DEPENDENCIES) @rm -f tst_idna4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna4_OBJECTS) $(tst_idna4_LDADD) $(LIBS) tst_nfkc$(EXEEXT): $(tst_nfkc_OBJECTS) $(tst_nfkc_DEPENDENCIES) $(EXTRA_tst_nfkc_DEPENDENCIES) @rm -f tst_nfkc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_nfkc_OBJECTS) $(tst_nfkc_LDADD) $(LIBS) tst_pr29$(EXEEXT): $(tst_pr29_OBJECTS) $(tst_pr29_DEPENDENCIES) $(EXTRA_tst_pr29_DEPENDENCIES) @rm -f tst_pr29$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_pr29_OBJECTS) $(tst_pr29_LDADD) $(LIBS) tst_punycode$(EXEEXT): $(tst_punycode_OBJECTS) $(tst_punycode_DEPENDENCIES) $(EXTRA_tst_punycode_DEPENDENCIES) @rm -f tst_punycode$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_punycode_OBJECTS) $(tst_punycode_LDADD) $(LIBS) tst_strerror$(EXEEXT): $(tst_strerror_OBJECTS) $(tst_strerror_DEPENDENCIES) $(EXTRA_tst_strerror_DEPENDENCIES) @rm -f tst_strerror$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_strerror_OBJECTS) $(tst_strerror_LDADD) $(LIBS) tst_stringprep$(EXEEXT): $(tst_stringprep_OBJECTS) $(tst_stringprep_DEPENDENCIES) $(EXTRA_tst_stringprep_DEPENDENCIES) @rm -f tst_stringprep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_stringprep_OBJECTS) $(tst_stringprep_LDADD) $(LIBS) tst_symbols$(EXEEXT): $(tst_symbols_OBJECTS) $(tst_symbols_DEPENDENCIES) $(EXTRA_tst_symbols_DEPENDENCIES) @rm -f tst_symbols$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_symbols_OBJECTS) $(tst_symbols_LDADD) $(LIBS) tst_tld$(EXEEXT): $(tst_tld_OBJECTS) $(tst_tld_DEPENDENCIES) $(EXTRA_tst_tld_DEPENDENCIES) @rm -f tst_tld$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_tld_OBJECTS) $(tst_tld_LDADD) $(LIBS) tst_toascii64oob$(EXEEXT): $(tst_toascii64oob_OBJECTS) $(tst_toascii64oob_DEPENDENCIES) $(EXTRA_tst_toascii64oob_DEPENDENCIES) @rm -f tst_toascii64oob$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_toascii64oob_OBJECTS) $(tst_toascii64oob_LDADD) $(LIBS) tst_toutf8$(EXEEXT): $(tst_toutf8_OBJECTS) $(tst_toutf8_DEPENDENCIES) $(EXTRA_tst_toutf8_DEPENDENCIES) @rm -f tst_toutf8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_toutf8_OBJECTS) $(tst_toutf8_LDADD) $(LIBS) tst_utf8crash$(EXEEXT): $(tst_utf8crash_OBJECTS) $(tst_utf8crash_DEPENDENCIES) $(EXTRA_tst_utf8crash_DEPENDENCIES) @rm -f tst_utf8crash$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_utf8crash_OBJECTS) $(tst_utf8crash_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_badutf8.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_badutf8nfkc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_nfkc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_pr29.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_punycode.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_strerror.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_stringprep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_symbols.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_tld.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_toascii64oob.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_toutf8.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_utf8crash.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: $(check_PROGRAMS) $(check_LIBRARIES) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) $(check_LIBRARIES) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? tst_stringprep.log: tst_stringprep$(EXEEXT) @p='tst_stringprep$(EXEEXT)'; \ b='tst_stringprep'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_punycode.log: tst_punycode$(EXEEXT) @p='tst_punycode$(EXEEXT)'; \ b='tst_punycode'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna.log: tst_idna$(EXEEXT) @p='tst_idna$(EXEEXT)'; \ b='tst_idna'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna2.log: tst_idna2$(EXEEXT) @p='tst_idna2$(EXEEXT)'; \ b='tst_idna2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna3.log: tst_idna3$(EXEEXT) @p='tst_idna3$(EXEEXT)'; \ b='tst_idna3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna4.log: tst_idna4$(EXEEXT) @p='tst_idna4$(EXEEXT)'; \ b='tst_idna4'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_nfkc.log: tst_nfkc$(EXEEXT) @p='tst_nfkc$(EXEEXT)'; \ b='tst_nfkc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_pr29.log: tst_pr29$(EXEEXT) @p='tst_pr29$(EXEEXT)'; \ b='tst_pr29'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_strerror.log: tst_strerror$(EXEEXT) @p='tst_strerror$(EXEEXT)'; \ b='tst_strerror'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_toutf8.log: tst_toutf8$(EXEEXT) @p='tst_toutf8$(EXEEXT)'; \ b='tst_toutf8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_symbols.log: tst_symbols$(EXEEXT) @p='tst_symbols$(EXEEXT)'; \ b='tst_symbols'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_badutf8.log: tst_badutf8$(EXEEXT) @p='tst_badutf8$(EXEEXT)'; \ b='tst_badutf8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_utf8crash.log: tst_utf8crash$(EXEEXT) @p='tst_utf8crash$(EXEEXT)'; \ b='tst_utf8crash'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_toascii64oob.log: tst_toascii64oob$(EXEEXT) @p='tst_toascii64oob$(EXEEXT)'; \ b='tst_toascii64oob'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_badutf8nfkc.log: tst_badutf8nfkc$(EXEEXT) @p='tst_badutf8nfkc$(EXEEXT)'; \ b='tst_badutf8nfkc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_tld.log: tst_tld$(EXEEXT) @p='tst_tld$(EXEEXT)'; \ b='tst_tld'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_LIBRARIES) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \ clean-libtool mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/tst_badutf8.Po -rm -f ./$(DEPDIR)/tst_badutf8nfkc.Po -rm -f ./$(DEPDIR)/tst_idna.Po -rm -f ./$(DEPDIR)/tst_idna2.Po -rm -f ./$(DEPDIR)/tst_idna3.Po -rm -f ./$(DEPDIR)/tst_idna4.Po -rm -f ./$(DEPDIR)/tst_nfkc.Po -rm -f ./$(DEPDIR)/tst_pr29.Po -rm -f ./$(DEPDIR)/tst_punycode.Po -rm -f ./$(DEPDIR)/tst_strerror.Po -rm -f ./$(DEPDIR)/tst_stringprep.Po -rm -f ./$(DEPDIR)/tst_symbols.Po -rm -f ./$(DEPDIR)/tst_tld.Po -rm -f ./$(DEPDIR)/tst_toascii64oob.Po -rm -f ./$(DEPDIR)/tst_toutf8.Po -rm -f ./$(DEPDIR)/tst_utf8crash.Po -rm -f ./$(DEPDIR)/utils.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/tst_badutf8.Po -rm -f ./$(DEPDIR)/tst_badutf8nfkc.Po -rm -f ./$(DEPDIR)/tst_idna.Po -rm -f ./$(DEPDIR)/tst_idna2.Po -rm -f ./$(DEPDIR)/tst_idna3.Po -rm -f ./$(DEPDIR)/tst_idna4.Po -rm -f ./$(DEPDIR)/tst_nfkc.Po -rm -f ./$(DEPDIR)/tst_pr29.Po -rm -f ./$(DEPDIR)/tst_punycode.Po -rm -f ./$(DEPDIR)/tst_strerror.Po -rm -f ./$(DEPDIR)/tst_stringprep.Po -rm -f ./$(DEPDIR)/tst_symbols.Po -rm -f ./$(DEPDIR)/tst_tld.Po -rm -f ./$(DEPDIR)/tst_toascii64oob.Po -rm -f ./$(DEPDIR)/tst_toutf8.Po -rm -f ./$(DEPDIR)/tst_utf8crash.Po -rm -f ./$(DEPDIR)/utils.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ check-am clean clean-checkLIBRARIES clean-checkPROGRAMS \ clean-generic clean-libtool cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/tests/tst_nfkc.c0000644000000000000000000000605514076271517012736 00000000000000/* tst_nfkc.c --- Self tests for stringprep_utf8_nfkc_normalize(). * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "utils.h" struct nfkc { const char *in; const char *out; }; static struct nfkc nfkc[] = { {"\xC2\xB5", "\xCE\xBC"}, {"\xC2\xAA", "\x61"}, /* From . Note that we * compute the output according to Unicode 3.2 without the proposed * update. * * 1. * * U+1100 (á„€) HANGUL CHOSEONG KIYEOK + * U+0300 (◌̀) COMBINING GRAVE ACCENT + * U+1161 (á…¡) HANGUL JUNGSEONG A * * According to the old language, the NFC form of this would be B: * * 2. * * U+AC00 (ê°€) HANGUL SYLLABLE GA + * U+0300 (◌̀) COMBINING GRAVE ACCENT */ {"\xE1\x84\x80\xCC\x80\xE1\x85\xA1", "\xEA\xB0\x80\xCC\x80"}, /* Second test case from page. Again, we do not implement the * updated proposal. -> U+0B4B U+0300 */ {"\xE0\xAD\x87\xCC\x80\xE0\xAC\xBE", "\xE0\xAD\x8b\xCC\x80"} }; void doit (void) { char *out; unsigned i; for (i = 0; i < sizeof (nfkc) / sizeof (nfkc[0]); i++) { if (debug) printf ("NFKC entry %u\n", i); out = stringprep_utf8_nfkc_normalize (nfkc[i].in, (ssize_t) strlen (nfkc[i].in)); if (out == NULL) { fail ("NFKC entry %u failed fatally\n", i); continue; } if (debug) { uint32_t *t; size_t len; printf ("in:\n"); escapeprint (nfkc[i].in, strlen (nfkc[i].in)); hexprint (nfkc[i].in, strlen (nfkc[i].in)); binprint (nfkc[i].in, strlen (nfkc[i].in)); printf ("out:\n"); escapeprint (out, strlen (out)); hexprint (out, strlen (out)); binprint (out, strlen (out)); t = stringprep_utf8_to_ucs4 (out, -1, &len); if (t) { ucs4print (t, len); free (t); } printf ("expected out:\n"); escapeprint (nfkc[i].out, strlen (nfkc[i].out)); hexprint (nfkc[i].out, strlen (nfkc[i].out)); binprint (nfkc[i].out, strlen (nfkc[i].out)); } if (strlen (nfkc[i].out) != strlen (out) || memcmp (nfkc[i].out, out, strlen (out)) != 0) { fail ("NFKC entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n"); free (out); } } libidn-1.38/tests/utils.c0000644000000000000000000000701614076271517012261 00000000000000/* utils.c --- Self test utilities. * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "utils.h" int debug = 0; int error_count = 0; int break_on_error = 0; void fail (const char *format, ...) { va_list arg_ptr; va_start (arg_ptr, format); vfprintf (stderr, format, arg_ptr); va_end (arg_ptr); error_count++; if (break_on_error) exit (EXIT_FAILURE); } void escapeprint (const char *str, size_t len) { size_t i; printf (" (length %ld bytes):\n\t", (long) len); for (i = 0; i < len; i++) { if (((str[i] & 0xFF) >= 'A' && (str[i] & 0xFF) <= 'Z') || ((str[i] & 0xFF) >= 'a' && (str[i] & 0xFF) <= 'z') || ((str[i] & 0xFF) >= '0' && (str[i] & 0xFF) <= '9') || (str[i] & 0xFF) == ' ' || (str[i] & 0xFF) == '.') printf ("%c", (str[i] & 0xFF)); else printf ("\\x%02X", (unsigned) (str[i] & 0xFF)); if ((i + 1) % 16 == 0 && (i + 1) < len) printf ("'\n\t'"); } printf ("\n"); } void hexprint (const char *str, size_t len) { size_t i; printf ("\t;; "); for (i = 0; i < len; i++) { printf ("%02x ", (unsigned) (str[i] & 0xFF)); if ((i + 1) % 8 == 0) printf (" "); if ((i + 1) % 16 == 0 && i + 1 < len) printf ("\n\t;; "); } printf ("\n"); } void binprint (const char *str, size_t len) { size_t i; printf ("\t;; "); for (i = 0; i < len; i++) { printf ("%d%d%d%d%d%d%d%d ", (str[i] & 0xFF) & 0x80 ? 1 : 0, (str[i] & 0xFF) & 0x40 ? 1 : 0, (str[i] & 0xFF) & 0x20 ? 1 : 0, (str[i] & 0xFF) & 0x10 ? 1 : 0, (str[i] & 0xFF) & 0x08 ? 1 : 0, (str[i] & 0xFF) & 0x04 ? 1 : 0, (str[i] & 0xFF) & 0x02 ? 1 : 0, (str[i] & 0xFF) & 0x01 ? 1 : 0); if ((i + 1) % 3 == 0) printf (" "); if ((i + 1) % 6 == 0 && i + 1 < len) printf ("\n\t;; "); } printf ("\n"); } void ucs4print (const uint32_t * str, size_t len) { size_t i; printf ("\t;; "); for (i = 0; (len == (size_t) -1) ? str[i] : i < len; i++) { printf ("U+%04x ", str[i]); if ((i + 1) % 4 == 0) printf (" "); if ((i + 1) % 8 == 0 && i + 1 < len) printf ("\n\t;; "); } puts (""); } int main (int argc, char *argv[]) { do if (strcmp (argv[argc - 1], "-v") == 0 || strcmp (argv[argc - 1], "--verbose") == 0) debug = 1; else if (strcmp (argv[argc - 1], "-b") == 0 || strcmp (argv[argc - 1], "--break-on-error") == 0) break_on_error = 1; else if (strcmp (argv[argc - 1], "-h") == 0 || strcmp (argv[argc - 1], "-?") == 0 || strcmp (argv[argc - 1], "--help") == 0) { printf ("Usage: %s [-vbh?] [--verbose] [--break-on-error] [--help]\n", argv[0]); return 1; } while (argc-- > 1); doit (); if (debug) printf ("Self tests done with %d errors\n", error_count); return error_count ? 1 : 0; } libidn-1.38/tests/utils.h0000644000000000000000000000273214076271517012266 00000000000000/* utils.h --- Prototypes for self test utilities. * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifndef UTILS_H # define UTILS_H # include # include # include # ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) # define __attribute__(Spec) /* empty */ # endif # endif extern int debug; extern int error_count; extern int break_on_error; extern void fail (const char *format, ...) __attribute__((format (printf, 1, 2))); extern void escapeprint (const char *str, size_t len); extern void hexprint (const char *str, size_t len); extern void binprint (const char *str, size_t len); extern void ucs4print (const uint32_t * str, size_t len); /* This must be implemented elsewhere. */ extern void doit (void); #endif /* UTILS_H */ libidn-1.38/tests/tst_utf8crash.c0000644000000000000000000000242614076271517013722 00000000000000/* tst_utf8crash.c --- Self tests for malformed UTF-8 regressions. * Copyright (C) 2015-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include "utils.h" /* Based on report from Adam Sampson: https://lists.gnu.org/archive/html/help-libidn/2015-07/msg00026.html */ void doit (void) { const char input[] = "\200bad.com"; char *output; int rc; rc = idna_to_unicode_8z8z (input, &output, 0); if (rc != IDNA_ICONV_ERROR) fail ("rc %d\n", rc); } libidn-1.38/tests/tst_symbols.c0000644000000000000000000001317714076271517013510 00000000000000/* tst_symbols.c --- Test if all exported symbols are available. * Copyright (C) 2010-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #ifdef WITH_TLD # include #endif static void assert_symbol_exists (const void *p) { assert (p); } int main (void) { assert_symbol_exists ((const void *) idn_free); assert_symbol_exists ((const void *) idna_strerror); assert_symbol_exists ((const void *) idna_to_ascii_4i); assert_symbol_exists ((const void *) idna_to_ascii_4z); assert_symbol_exists ((const void *) idna_to_ascii_8z); assert_symbol_exists ((const void *) idna_to_ascii_lz); assert_symbol_exists ((const void *) idna_to_unicode_44i); assert_symbol_exists ((const void *) idna_to_unicode_4z4z); assert_symbol_exists ((const void *) idna_to_unicode_8z4z); assert_symbol_exists ((const void *) idna_to_unicode_8z8z); assert_symbol_exists ((const void *) idna_to_unicode_8zlz); assert_symbol_exists ((const void *) idna_to_unicode_lzlz); assert_symbol_exists ((const void *) pr29_4); assert_symbol_exists ((const void *) pr29_4z); assert_symbol_exists ((const void *) pr29_8z); assert_symbol_exists ((const void *) pr29_strerror); assert_symbol_exists ((const void *) punycode_decode); assert_symbol_exists ((const void *) punycode_encode); assert_symbol_exists ((const void *) punycode_strerror); assert_symbol_exists ((const void *) stringprep); assert_symbol_exists ((const void *) stringprep_4i); assert_symbol_exists ((const void *) stringprep_4zi); assert_symbol_exists ((const void *) stringprep_check_version); assert_symbol_exists ((const void *) stringprep_convert); assert_symbol_exists ((const void *) stringprep_iscsi); assert_symbol_exists ((const void *) stringprep_iscsi_prohibit); assert_symbol_exists ((const void *) stringprep_kerberos5); assert_symbol_exists ((const void *) stringprep_locale_charset); assert_symbol_exists ((const void *) stringprep_locale_to_utf8); assert_symbol_exists ((const void *) stringprep_nameprep); assert_symbol_exists ((const void *) stringprep_plain); assert_symbol_exists ((const void *) stringprep_profile); assert_symbol_exists ((const void *) stringprep_profiles); assert_symbol_exists ((const void *) stringprep_rfc3454_A_1); assert_symbol_exists ((const void *) stringprep_rfc3454_B_1); assert_symbol_exists ((const void *) stringprep_rfc3454_B_2); assert_symbol_exists ((const void *) stringprep_rfc3454_B_3); assert_symbol_exists ((const void *) stringprep_rfc3454_C_1_1); assert_symbol_exists ((const void *) stringprep_rfc3454_C_1_2); assert_symbol_exists ((const void *) stringprep_rfc3454_C_2_1); assert_symbol_exists ((const void *) stringprep_rfc3454_C_2_2); assert_symbol_exists ((const void *) stringprep_rfc3454_C_3); assert_symbol_exists ((const void *) stringprep_rfc3454_C_4); assert_symbol_exists ((const void *) stringprep_rfc3454_C_5); assert_symbol_exists ((const void *) stringprep_rfc3454_C_6); assert_symbol_exists ((const void *) stringprep_rfc3454_C_7); assert_symbol_exists ((const void *) stringprep_rfc3454_C_8); assert_symbol_exists ((const void *) stringprep_rfc3454_C_9); assert_symbol_exists ((const void *) stringprep_rfc3454_D_1); assert_symbol_exists ((const void *) stringprep_rfc3454_D_2); assert_symbol_exists ((const void *) stringprep_saslprep); assert_symbol_exists ((const void *) stringprep_saslprep_space_map); assert_symbol_exists ((const void *) stringprep_strerror); assert_symbol_exists ((const void *) stringprep_trace); assert_symbol_exists ((const void *) stringprep_ucs4_nfkc_normalize); assert_symbol_exists ((const void *) stringprep_ucs4_to_utf8); assert_symbol_exists ((const void *) stringprep_unichar_to_utf8); assert_symbol_exists ((const void *) stringprep_utf8_nfkc_normalize); assert_symbol_exists ((const void *) stringprep_utf8_to_locale); assert_symbol_exists ((const void *) stringprep_utf8_to_ucs4); assert_symbol_exists ((const void *) stringprep_utf8_to_unichar); assert_symbol_exists ((const void *) stringprep_xmpp_nodeprep); assert_symbol_exists ((const void *) stringprep_xmpp_nodeprep_prohibit); assert_symbol_exists ((const void *) stringprep_xmpp_resourceprep); #ifdef WITH_TLD assert_symbol_exists ((const void *) tld_check_4); assert_symbol_exists ((const void *) tld_check_4t); assert_symbol_exists ((const void *) tld_check_4tz); assert_symbol_exists ((const void *) tld_check_4z); assert_symbol_exists ((const void *) tld_check_8z); assert_symbol_exists ((const void *) tld_check_lz); assert_symbol_exists ((const void *) tld_default_table); assert_symbol_exists ((const void *) tld_get_4); assert_symbol_exists ((const void *) tld_get_4z); assert_symbol_exists ((const void *) tld_get_table); assert_symbol_exists ((const void *) tld_get_z); assert_symbol_exists ((const void *) tld_strerror); #endif return 0; } libidn-1.38/tests/tst_badutf8.c0000644000000000000000000000250114076271517013342 00000000000000/* tst_badutf8.c --- Self tests for malformed UTF-8 regressions. * Copyright (C) 2015-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include "utils.h" void doit (void) { char *badutf8 = strdup ("\x7e\x64\x61\x72\x10\x2f\x2f\xf9\x2b\x71" "\x60\x79\x7b\x2e\x63\x75\x2b\x61\x65\x72" "\x75\x65\x56\x66\x7f\x62\xc5\x76\xe5\x00"); char *s = NULL; int rc; rc = idna_to_ascii_8z (badutf8, &s, 0); free (badutf8); if (rc != IDNA_ICONV_ERROR) fail ("rc %d\n", rc); idn_free (s); } libidn-1.38/tests/tst_idna.c0000644000000000000000000002411114076271517012721 00000000000000/* tst_idna.c --- Self tests for idna_to_ascii(). * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include #include "utils.h" struct idna { const char *name; size_t inlen; uint32_t in[100]; const char *out; int flags; int toasciirc; int tounicoderc; }; static const struct idna idna[] = { { "Arabic (Egyptian)", 17, { 0x0644, 0x064A, 0x0647, 0x0645, 0x0627, 0x0628, 0x062A, 0x0643, 0x0644, 0x0645, 0x0648, 0x0634, 0x0639, 0x0631, 0x0628, 0x064A, 0x061F}, IDNA_ACE_PREFIX "egbpdaj6bu4bxfgehfvwxn", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Chinese (simplified)", 9, { 0x4ED6, 0x4EEC, 0x4E3A, 0x4EC0, 0x4E48, 0x4E0D, 0x8BF4, 0x4E2D, 0x6587}, IDNA_ACE_PREFIX "ihqwcrb4cv8a8dqg056pqjye", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Chinese (traditional)", 9, { 0x4ED6, 0x5011, 0x7232, 0x4EC0, 0x9EBD, 0x4E0D, 0x8AAA, 0x4E2D, 0x6587}, IDNA_ACE_PREFIX "ihqwctvzc91f659drss3x8bo0yb", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Czech: Pro[CCARON]prost[ECARON]nemluv[IACUTE][CCARON]esky", 22, { 0x0050, 0x0072, 0x006F, 0x010D, 0x0070, 0x0072, 0x006F, 0x0073, 0x0074, 0x011B, 0x006E, 0x0065, 0x006D, 0x006C, 0x0075, 0x0076, 0x00ED, 0x010D, 0x0065, 0x0073, 0x006B, 0x0079}, IDNA_ACE_PREFIX "Proprostnemluvesky-uyb24dma41a", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Hebrew", 22, { 0x05DC, 0x05DE, 0x05D4, 0x05D4, 0x05DD, 0x05E4, 0x05E9, 0x05D5, 0x05D8, 0x05DC, 0x05D0, 0x05DE, 0x05D3, 0x05D1, 0x05E8, 0x05D9, 0x05DD, 0x05E2, 0x05D1, 0x05E8, 0x05D9, 0x05EA}, IDNA_ACE_PREFIX "4dbcagdahymbxekheh6e0a7fei0b", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Hindi (Devanagari)", 30, { 0x092F, 0x0939, 0x0932, 0x094B, 0x0917, 0x0939, 0x093F, 0x0928, 0x094D, 0x0926, 0x0940, 0x0915, 0x094D, 0x092F, 0x094B, 0x0902, 0x0928, 0x0939, 0x0940, 0x0902, 0x092C, 0x094B, 0x0932, 0x0938, 0x0915, 0x0924, 0x0947, 0x0939, 0x0948, 0x0902}, IDNA_ACE_PREFIX "i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd", 0, IDNA_SUCCESS}, { "Japanese (kanji and hiragana)", 18, { 0x306A, 0x305C, 0x307F, 0x3093, 0x306A, 0x65E5, 0x672C, 0x8A9E, 0x3092, 0x8A71, 0x3057, 0x3066, 0x304F, 0x308C, 0x306A, 0x3044, 0x306E, 0x304B}, IDNA_ACE_PREFIX "n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa", 0, IDNA_SUCCESS}, { "Korean (Hangul syllables)", 24, { 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774, 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74, 0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C}, IDNA_ACE_PREFIX "989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt" "30a5jpsd879ccm6fea98c", 0, IDNA_PUNYCODE_ERROR, IDNA_PUNYCODE_ERROR}, /* too long output */ { "Russian (Cyrillic)", 28, { 0x043F, 0x043E, 0x0447, 0x0435, 0x043C, 0x0443, 0x0436, 0x0435, 0x043E, 0x043D, 0x0438, 0x043D, 0x0435, 0x0433, 0x043E, 0x0432, 0x043E, 0x0440, 0x044F, 0x0442, 0x043F, 0x043E, 0x0440, 0x0443, 0x0441, 0x0441, 0x043A, 0x0438}, IDNA_ACE_PREFIX "b1abfaaepdrnnbgefbadotcwatmq2g4l", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Spanish: Porqu[EACUTE]nopuedensimplementehablarenEspa[NTILDE]ol", 40, { 0x0050, 0x006F, 0x0072, 0x0071, 0x0075, 0x00E9, 0x006E, 0x006F, 0x0070, 0x0075, 0x0065, 0x0064, 0x0065, 0x006E, 0x0073, 0x0069, 0x006D, 0x0070, 0x006C, 0x0065, 0x006D, 0x0065, 0x006E, 0x0074, 0x0065, 0x0068, 0x0061, 0x0062, 0x006C, 0x0061, 0x0072, 0x0065, 0x006E, 0x0045, 0x0073, 0x0070, 0x0061, 0x00F1, 0x006F, 0x006C}, IDNA_ACE_PREFIX "PorqunopuedensimplementehablarenEspaol-fmd56a", 0, IDNA_SUCCESS}, { "Vietnamese", 31, { 0x0054, 0x1EA1, 0x0069, 0x0073, 0x0061, 0x006F, 0x0068, 0x1ECD, 0x006B, 0x0068, 0x00F4, 0x006E, 0x0067, 0x0074, 0x0068, 0x1EC3, 0x0063, 0x0068, 0x1EC9, 0x006E, 0x00F3, 0x0069, 0x0074, 0x0069, 0x1EBF, 0x006E, 0x0067, 0x0056, 0x0069, 0x1EC7, 0x0074}, IDNA_ACE_PREFIX "TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g", 0, IDNA_SUCCESS}, { "Japanese 3[NEN]B[GUMI][KINPACHI][SENSEI]", 8, { 0x0033, 0x5E74, 0x0042, 0x7D44, 0x91D1, 0x516B, 0x5148, 0x751F}, IDNA_ACE_PREFIX "3B-ww4c5e180e575a65lsy2b", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese [AMURO][NAMIE]-with-SUPER-MONKEYS", 24, { 0x5B89, 0x5BA4, 0x5948, 0x7F8E, 0x6075, 0x002D, 0x0077, 0x0069, 0x0074, 0x0068, 0x002D, 0x0053, 0x0055, 0x0050, 0x0045, 0x0052, 0x002D, 0x004D, 0x004F, 0x004E, 0x004B, 0x0045, 0x0059, 0x0053}, IDNA_ACE_PREFIX "-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n", 0, IDNA_SUCCESS}, { "Japanese Hello-Another-Way-[SOREZORE][NO][BASHO]", 25, { 0x0048, 0x0065, 0x006C, 0x006C, 0x006F, 0x002D, 0x0041, 0x006E, 0x006F, 0x0074, 0x0068, 0x0065, 0x0072, 0x002D, 0x0057, 0x0061, 0x0079, 0x002D, 0x305D, 0x308C, 0x305E, 0x308C, 0x306E, 0x5834, 0x6240}, IDNA_ACE_PREFIX "Hello-Another-Way--fc4qua05auwb3674vfr0b", 0, IDNA_SUCCESS}, { "Japanese [HITOTSU][YANE][NO][SHITA]2", 8, { 0x3072, 0x3068, 0x3064, 0x5C4B, 0x6839, 0x306E, 0x4E0B, 0x0032}, IDNA_ACE_PREFIX "2-u9tlzr9756bt3uc0v", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese Maji[DE]Koi[SURU]5[BYOU][MAE]", 13, { 0x004D, 0x0061, 0x006A, 0x0069, 0x3067, 0x004B, 0x006F, 0x0069, 0x3059, 0x308B, 0x0035, 0x79D2, 0x524D}, IDNA_ACE_PREFIX "MajiKoi5-783gue6qz075azm5e", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese [PAFII]de[RUNBA]", 9, { 0x30D1, 0x30D5, 0x30A3, 0x30FC, 0x0064, 0x0065, 0x30EB, 0x30F3, 0x30D0}, IDNA_ACE_PREFIX "de-jg4avhby1noc0d", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese [SONO][SUPIIDO][DE]", 7, { 0x305D, 0x306E, 0x30B9, 0x30D4, 0x30FC, 0x30C9, 0x3067}, IDNA_ACE_PREFIX "d9juau41awczczp", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Greek", 8, { 0x03b5, 0x03bb, 0x03bb, 0x03b7, 0x03bd, 0x03b9, 0x03ba, 0x03ac}, IDNA_ACE_PREFIX "hxargifdar", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Maltese (Malti)", 10, { 0x0062, 0x006f, 0x006e, 0x0121, 0x0075, 0x0073, 0x0061, 0x0127, 0x0127, 0x0061}, IDNA_ACE_PREFIX "bonusaa-5bb1da", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Russian (Cyrillic)", 28, { 0x043f, 0x043e, 0x0447, 0x0435, 0x043c, 0x0443, 0x0436, 0x0435, 0x043e, 0x043d, 0x0438, 0x043d, 0x0435, 0x0433, 0x043e, 0x0432, 0x043e, 0x0440, 0x044f, 0x0442, 0x043f, 0x043e, 0x0440, 0x0443, 0x0441, 0x0441, 0x043a, 0x0438}, IDNA_ACE_PREFIX "b1abfaaepdrnnbgefbadotcwatmq2g4l", 0, IDNA_SUCCESS, IDNA_SUCCESS}, #if 0 { "(S) -> $1.00 <-", 11, { 0x002D, 0x003E, 0x0020, 0x0024, 0x0031, 0x002E, 0x0030, 0x0030, 0x0020, 0x003C, 0x002D}, IDNA_ACE_PREFIX "-> $1.00 <--", 0, IDNA_SUCCESS, IDNA_SUCCESS}, #endif { /* XXX depends on IDNA_ACE_PREFIX */ "ToASCII() with ACE prefix", 4 + 3, { 'x', 'n', '-', '-', 'f', 'o', 0x3067}, IDNA_ACE_PREFIX "too long too long too long too long too long too " "long too long too long too long too long ", 0, IDNA_CONTAINS_ACE_PREFIX, IDNA_INVALID_LENGTH} }; void doit (void) { char label[100]; uint32_t *ucs4label = NULL; uint32_t tmp[100]; size_t len, len2; int rc; unsigned i; for (i = 0; i < sizeof (idna) / sizeof (idna[0]); i++) { if (debug) printf ("IDNA entry %u: %s\n", i, idna[i].name); if (debug) { printf ("in:\n"); ucs4print (idna[i].in, idna[i].inlen); } rc = idna_to_ascii_4i (idna[i].in, idna[i].inlen, label, idna[i].flags); if (rc != idna[i].toasciirc) { fail ("IDNA entry %u failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (debug && rc == IDNA_SUCCESS) { printf ("computed out: %s\n", label); printf ("expected out: %s\n", idna[i].out); } else if (debug) printf ("returned %d expected %d\n", rc, idna[i].toasciirc); if (rc == IDNA_SUCCESS) { if (strlen (idna[i].out) != strlen (label) || strcasecmp (idna[i].out, label) != 0) { fail ("IDNA entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n"); } else if (debug) printf ("OK\n"); if (ucs4label) idn_free (ucs4label); ucs4label = stringprep_utf8_to_ucs4 (idna[i].out, -1, &len); if (debug) { printf ("in: %s (%d==%d)\n", idna[i].out, (int) strlen (idna[i].out), (int) len); ucs4print (ucs4label, len); } len2 = sizeof (tmp) / sizeof (tmp[0]); rc = idna_to_unicode_44i (ucs4label, len, tmp, &len2, idna[i].flags); if (debug) { printf ("expected out (%lu):\n", rc == IDNA_SUCCESS ? idna[i].inlen : len); if (rc == IDNA_SUCCESS) ucs4print (idna[i].in, idna[i].inlen); else ucs4print (ucs4label, len); printf ("computed out (%d):\n", (int) len2); ucs4print (tmp, len2); } if (rc != idna[i].tounicoderc) { fail ("IDNA entry %u failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if ((rc == IDNA_SUCCESS && (len2 != idna[i].inlen || memcmp (idna[i].in, tmp, len2) != 0)) || (rc != IDNA_SUCCESS && (len2 != len || memcmp (ucs4label, tmp, len) != 0))) { if (debug) { if (rc == IDNA_SUCCESS) printf ("len=%d len2=%d\n", (int) len2, (int) idna[i].inlen); else printf ("len=%d len2=%d\n", (int) len, (int) len2); } fail ("IDNA entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); } if (ucs4label) idn_free (ucs4label); } libidn-1.38/tests/tst_badutf8nfkc.c0000644000000000000000000000211414076271517014204 00000000000000/* tst_badutf8nfkc.c --- Self tests for malformed UTF-8 NFKC input. * Copyright (C) 2016-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "utils.h" void doit (void) { char *badutf8 = strdup ("\xe4"); char *s = NULL; s = stringprep_utf8_nfkc_normalize (badutf8, -1); free (s); free (badutf8); } libidn-1.38/tests/tst_punycode.c0000644000000000000000000002052314076271517013637 00000000000000/* tst_punycode.c --- Self tests for punycode. * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "utils.h" struct punycode { const char *name; size_t inlen; uint32_t in[100]; const char *out; int rc; }; const struct punycode punycode[] = { { "(A) Arabic (Egyptian)", 17, { 0x0644, 0x064A, 0x0647, 0x0645, 0x0627, 0x0628, 0x062A, 0x0643, 0x0644, 0x0645, 0x0648, 0x0634, 0x0639, 0x0631, 0x0628, 0x064A, 0x061F}, "egbpdaj6bu4bxfgehfvwxn", PUNYCODE_SUCCESS}, { "(B) Chinese (simplified)", 9, { 0x4ED6, 0x4EEC, 0x4E3A, 0x4EC0, 0x4E48, 0x4E0D, 0x8BF4, 0x4E2D, 0x6587}, "ihqwcrb4cv8a8dqg056pqjye", PUNYCODE_SUCCESS}, { "(C) Chinese (traditional)", 9, { 0x4ED6, 0x5011, 0x7232, 0x4EC0, 0x9EBD, 0x4E0D, 0x8AAA, 0x4E2D, 0x6587}, "ihqwctvzc91f659drss3x8bo0yb", PUNYCODE_SUCCESS}, { "(D) Czech: Proprostnemluvesky", 22, { 0x0050, 0x0072, 0x006F, 0x010D, 0x0070, 0x0072, 0x006F, 0x0073, 0x0074, 0x011B, 0x006E, 0x0065, 0x006D, 0x006C, 0x0075, 0x0076, 0x00ED, 0x010D, 0x0065, 0x0073, 0x006B, 0x0079}, "Proprostnemluvesky-uyb24dma41a", PUNYCODE_SUCCESS}, { "(E) Hebrew:", 22, { 0x05DC, 0x05DE, 0x05D4, 0x05D4, 0x05DD, 0x05E4, 0x05E9, 0x05D5, 0x05D8, 0x05DC, 0x05D0, 0x05DE, 0x05D3, 0x05D1, 0x05E8, 0x05D9, 0x05DD, 0x05E2, 0x05D1, 0x05E8, 0x05D9, 0x05EA}, "4dbcagdahymbxekheh6e0a7fei0b", PUNYCODE_SUCCESS}, { "(F) Hindi (Devanagari):", 30, { 0x092F, 0x0939, 0x0932, 0x094B, 0x0917, 0x0939, 0x093F, 0x0928, 0x094D, 0x0926, 0x0940, 0x0915, 0x094D, 0x092F, 0x094B, 0x0902, 0x0928, 0x0939, 0x0940, 0x0902, 0x092C, 0x094B, 0x0932, 0x0938, 0x0915, 0x0924, 0x0947, 0x0939, 0x0948, 0x0902}, "i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd", PUNYCODE_SUCCESS}, { "(G) Japanese (kanji and hiragana):", 18, { 0x306A, 0x305C, 0x307F, 0x3093, 0x306A, 0x65E5, 0x672C, 0x8A9E, 0x3092, 0x8A71, 0x3057, 0x3066, 0x304F, 0x308C, 0x306A, 0x3044, 0x306E, 0x304B}, "n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa", PUNYCODE_SUCCESS}, { "(H) Korean (Hangul syllables):", 24, { 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774, 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74, 0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C}, "989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c", PUNYCODE_SUCCESS}, { "(I) Russian (Cyrillic):", 28, { 0x043F, 0x043E, 0x0447, 0x0435, 0x043C, 0x0443, 0x0436, 0x0435, 0x043E, 0x043D, 0x0438, 0x043D, 0x0435, 0x0433, 0x043E, 0x0432, 0x043E, 0x0440, 0x044F, 0x0442, 0x043F, 0x043E, 0x0440, 0x0443, 0x0441, 0x0441, 0x043A, 0x0438}, "b1abfaaepdrnnbgefbadotcwatmq2g4l", PUNYCODE_SUCCESS}, { "(J) Spanish: PorqunopuedensimplementehablarenEspaol", 40, { 0x0050, 0x006F, 0x0072, 0x0071, 0x0075, 0x00E9, 0x006E, 0x006F, 0x0070, 0x0075, 0x0065, 0x0064, 0x0065, 0x006E, 0x0073, 0x0069, 0x006D, 0x0070, 0x006C, 0x0065, 0x006D, 0x0065, 0x006E, 0x0074, 0x0065, 0x0068, 0x0061, 0x0062, 0x006C, 0x0061, 0x0072, 0x0065, 0x006E, 0x0045, 0x0073, 0x0070, 0x0061, 0x00F1, 0x006F, 0x006C}, "PorqunopuedensimplementehablarenEspaol-fmd56a", PUNYCODE_SUCCESS}, { "(K) Vietnamese:", 31, { 0x0054, 0x1EA1, 0x0069, 0x0073, 0x0061, 0x006F, 0x0068, 0x1ECD, 0x006B, 0x0068, 0x00F4, 0x006E, 0x0067, 0x0074, 0x0068, 0x1EC3, 0x0063, 0x0068, 0x1EC9, 0x006E, 0x00F3, 0x0069, 0x0074, 0x0069, 0x1EBF, 0x006E, 0x0067, 0x0056, 0x0069, 0x1EC7, 0x0074}, "TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g", PUNYCODE_SUCCESS}, { "(L) 3B", 8, { 0x0033, 0x5E74, 0x0042, 0x7D44, 0x91D1, 0x516B, 0x5148, 0x751F}, "3B-ww4c5e180e575a65lsy2b", PUNYCODE_SUCCESS}, { "(M) -with-SUPER-MONKEYS", 24, { 0x5B89, 0x5BA4, 0x5948, 0x7F8E, 0x6075, 0x002D, 0x0077, 0x0069, 0x0074, 0x0068, 0x002D, 0x0053, 0x0055, 0x0050, 0x0045, 0x0052, 0x002D, 0x004D, 0x004F, 0x004E, 0x004B, 0x0045, 0x0059, 0x0053}, "-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n", PUNYCODE_SUCCESS}, { "(N) Hello-Another-Way-", 25, { 0x0048, 0x0065, 0x006C, 0x006C, 0x006F, 0x002D, 0x0041, 0x006E, 0x006F, 0x0074, 0x0068, 0x0065, 0x0072, 0x002D, 0x0057, 0x0061, 0x0079, 0x002D, 0x305D, 0x308C, 0x305E, 0x308C, 0x306E, 0x5834, 0x6240}, "Hello-Another-Way--fc4qua05auwb3674vfr0b", PUNYCODE_SUCCESS}, { "(O) 2", 8, { 0x3072, 0x3068, 0x3064, 0x5C4B, 0x6839, 0x306E, 0x4E0B, 0x0032}, "2-u9tlzr9756bt3uc0v", PUNYCODE_SUCCESS}, { "(P) MajiKoi5", 13, { 0x004D, 0x0061, 0x006A, 0x0069, 0x3067, 0x004B, 0x006F, 0x0069, 0x3059, 0x308B, 0x0035, 0x79D2, 0x524D}, "MajiKoi5-783gue6qz075azm5e", PUNYCODE_SUCCESS}, { "(Q) de", 9, { 0x30D1, 0x30D5, 0x30A3, 0x30FC, 0x0064, 0x0065, 0x30EB, 0x30F3, 0x30D0}, "de-jg4avhby1noc0d", PUNYCODE_SUCCESS}, { "(R) ", 7, { 0x305D, 0x306E, 0x30B9, 0x30D4, 0x30FC, 0x30C9, 0x3067}, "d9juau41awczczp", PUNYCODE_SUCCESS}, { "(S) -> $1.00 <-", 11, { 0x002D, 0x003E, 0x0020, 0x0024, 0x0031, 0x002E, 0x0030, 0x0030, 0x0020, 0x003C, 0x002D}, "-> $1.00 <--", PUNYCODE_SUCCESS} }; void doit (void) { char *p; uint32_t *q; int rc; size_t outlen; unsigned i; p = malloc (sizeof (*p) * BUFSIZ); if (p == NULL) fail ("malloc() returned NULL\n"); q = malloc (sizeof (*q) * BUFSIZ); if (q == NULL) fail ("malloc() returned NULL\n"); for (i = 0; i < sizeof (punycode) / sizeof (punycode[0]); i++) { if (debug) printf ("PUNYCODE entry %u: %s\n", i, punycode[i].name); if (debug) { printf ("in:\n"); ucs4print (punycode[i].in, punycode[i].inlen); } outlen = BUFSIZ; rc = punycode_encode (punycode[i].inlen, punycode[i].in, NULL, &outlen, p); if (rc != punycode[i].rc) { fail ("punycode_encode() entry %u failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (rc == PUNYCODE_SUCCESS) p[outlen] = '\0'; if (debug && rc == PUNYCODE_SUCCESS) { printf ("computed out: %s\n", p); printf ("expected out: %s\n", punycode[i].out); } else if (debug) printf ("returned %d expected %d\n", rc, punycode[i].rc); if (rc == PUNYCODE_SUCCESS) { if (strlen (punycode[i].out) != strlen (p) || memcmp (punycode[i].out, p, strlen (p)) != 0) { fail ("punycode() entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); } else if (debug) printf ("OK\n\n"); if (debug) { printf ("in: %s\n", punycode[i].out); } outlen = BUFSIZ; rc = punycode_decode (strlen (punycode[i].out), punycode[i].out, &outlen, q, NULL); if (rc != punycode[i].rc) { fail ("punycode() entry %u failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (debug && rc == PUNYCODE_SUCCESS) { printf ("computed out:\n"); ucs4print (q, outlen); printf ("expected out:\n"); ucs4print (punycode[i].in, punycode[i].inlen); } else if (debug) printf ("returned %d expected %d\n", rc, punycode[i].rc); if (rc == PUNYCODE_SUCCESS) { if (punycode[i].inlen != outlen || memcmp (punycode[i].in, q, outlen) != 0) { fail ("punycode_decode() entry %u failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); } else if (debug) printf ("OK\n\n"); } free (q); free (p); } libidn-1.38/tests/Makefile.am0000644000000000000000000000245214076271517013010 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl AM_LDFLAGS = -no-install LDADD = libutils.a ../lib/libidn.la ../gl/libgnu.la check_LIBRARIES = libutils.a libutils_a_SOURCES = utils.h utils.c ctests = tst_stringprep tst_punycode tst_idna tst_idna2 tst_idna3 \ tst_idna4 tst_nfkc tst_pr29 tst_strerror tst_toutf8 \ tst_symbols tst_badutf8 tst_utf8crash tst_toascii64oob \ tst_badutf8nfkc if TLD ctests += tst_tld endif TESTS = $(ctests) check_PROGRAMS = $(ctests) LOG_COMPILER = $(VALGRIND) libidn-1.38/tests/tst_pr29.c0000644000000000000000000000653314076271517012612 00000000000000/* tst_pr29.c --- Self tests for pr29_*(). * Copyright (C) 2004-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "utils.h" struct tv { const char *name; size_t inlen; uint32_t in[100]; int rc; }; static const struct tv tv[] = { { "Problem Sequence A", 3, {0x1100, 0x0300, 0x1161, 0}, PR29_PROBLEM}, { "Test Case", 3, {0x0B47, 0x0300, 0x0B3E, 0}, PR29_PROBLEM}, { "Instability Example", 4, {0x1100, 0x0300, 0x1161, 0x0323, 0}, PR29_PROBLEM}, { "Not a problem sequence 1", 3, {0x1100, 0x1161, 0x0300, 0}, PR29_SUCCESS}, { "Not a problem sequence 2", 3, {0x0300, 0x1100, 0x1161, 0}, PR29_SUCCESS}, { "Not a problem sequence 3", 3, {0x1161, 0x1100, 0x0300, 0}, PR29_SUCCESS}, { "Not a problem sequence 4", 3, {0x1161, 0x0300, 0x1100, 0}, PR29_SUCCESS}, { "Not a problem sequence 5", 3, {0x1100, 0x00AA, 0x1161, 0}, PR29_SUCCESS}, { /* http://lists.gnu.org/archive/html/help-libidn/2012-01/msg00008.html */ "Infloop", 3, {0x1100, 0x0300, 0x4711, 0}, PR29_SUCCESS} }; void doit (void) { unsigned i; int rc; for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) { if (debug) { uint32_t *p, *q; printf ("PR29 entry %u: %s\n", i, tv[i].name); printf ("in:\n"); ucs4print (tv[i].in, tv[i].inlen); printf ("nfkc:\n"); p = stringprep_ucs4_nfkc_normalize (tv[i].in, tv[i].inlen); ucs4print (p, -1); printf ("second nfkc:\n"); q = stringprep_ucs4_nfkc_normalize (p, -1); ucs4print (q, -1); free (p); free (q); } rc = pr29_4 (tv[i].in, tv[i].inlen); if (rc != tv[i].rc) { fail ("PR29 entry %u failed (expected %d): %d\n", i, tv[i].rc, rc); if (debug) printf ("FATAL\n"); continue; } rc = pr29_4z (tv[i].in); if (rc != tv[i].rc) { fail ("PR29 entry %u failed (expected %d): %d\n", i, tv[i].rc, rc); if (debug) printf ("FATAL\n"); continue; } { char *p; size_t items_read, items_written; p = stringprep_ucs4_to_utf8 (tv[i].in, (ssize_t) tv[i].inlen, &items_read, &items_written); if (p == NULL) fail ("FAIL: stringprep_ucs4_to_utf8(tv[%u]) == NULL\n", i); if (debug) hexprint (p, strlen (p)); rc = pr29_8z (p); free (p); if (rc != tv[i].rc) { fail ("PR29 entry %u failed (expected %d): %d\n", i, tv[i].rc, rc); if (debug) printf ("FATAL\n"); continue; } } if (debug) { if (tv[i].rc != PR29_SUCCESS) printf ("EXPECTED FAIL\n"); else printf ("OK\n"); } } } libidn-1.38/tests/tst_idna4.c0000644000000000000000000000301214076271517013002 00000000000000/* tst_idna4.c --- Self tests for memory leak regression. * Copyright (C) 2011-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #include "utils.h" void doit (void) { int rc; char *out = NULL; rc = idna_to_ascii_8z ("search...", &out, 0); if (rc != IDNA_INVALID_LENGTH) fail ("unexpected rc %d\n", rc); rc = idna_to_ascii_8z ("google.com................point", &out, 0); if (rc != IDNA_INVALID_LENGTH) fail ("unexpected rc %d\n", rc); rc = idna_to_ascii_8z ("Loading...\xC2\xB0\xC2\xB0\xC2\xB0\xC2\xB0\xC2\xB0" "\xC2\xB0\xC2\xB0\xC2\xB0\xC2\xB0\xC2\xB0\xC2\xB0" "\xC2\xB0\xC2\xB0\xC2\xB0]", &out, 0); if (rc != IDNA_INVALID_LENGTH) fail ("unexpected rc %d\n", rc); } libidn-1.38/tests/tst_stringprep.c0000644000000000000000000002706414076271517014215 00000000000000/* tst_stringprep.c --- Self tests for stringprep(). * Copyright (C) 2002-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see . * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include "utils.h" struct stringprep { const char *comment; const char *in; const char *out; const char *profile; int flags; int rc; }; const struct stringprep strprep[] = { {"Map to nothing", "foo\xC2\xAD\xCD\x8F\xE1\xA0\x86\xE1\xA0\x8B" "bar" "\xE2\x80\x8B\xE2\x81\xA0" "baz\xEF\xB8\x80\xEF\xB8\x88" "\xEF\xB8\x8F\xEF\xBB\xBF", "foobarbaz"}, {"Case folding ASCII U+0043 U+0041 U+0046 U+0045", "CAFE", "cafe"}, {"Case folding 8bit U+00DF (german sharp s)", "\xC3\x9F", "ss"}, {"Case folding U+0130 (turkish capital I with dot)", "\xC4\xB0", "i\xcc\x87"}, {"Case folding multibyte U+0143 U+037A", "\xC5\x83\xCD\xBA", "\xC5\x84 \xCE\xB9"}, {"Case folding U+2121 U+33C6 U+1D7BB", "\xE2\x84\xA1\xE3\x8F\x86\xF0\x9D\x9E\xBB", "telc\xE2\x88\x95" "kg\xCF\x83"}, {"Normalization of U+006a U+030c U+00A0 U+00AA", "\x6A\xCC\x8C\xC2\xA0\xC2\xAA", "\xC7\xB0 a"}, {"Case folding U+1FB7 and normalization", "\xE1\xBE\xB7", "\xE1\xBE\xB6\xCE\xB9"}, {"Self-reverting case folding U+01F0 and normalization", "\xC7\xB0", "\xC7\xB0"}, {"Self-reverting case folding U+0390 and normalization", "\xCE\x90", "\xCE\x90"}, {"Self-reverting case folding U+03B0 and normalization", "\xCE\xB0", "\xCE\xB0"}, {"Self-reverting case folding U+1E96 and normalization", "\xE1\xBA\x96", "\xE1\xBA\x96"}, {"Self-reverting case folding U+1F56 and normalization", "\xE1\xBD\x96", "\xE1\xBD\x96"}, {"ASCII space character U+0020", "\x20", "\x20"}, {"Non-ASCII 8bit space character U+00A0", "\xC2\xA0", "\x20"}, {"Non-ASCII multibyte space character U+1680", "\xE1\x9A\x80", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-ASCII multibyte space character U+2000", "\xE2\x80\x80", "\x20"}, {"Zero Width Space U+200b", "\xE2\x80\x8b", ""}, {"Non-ASCII multibyte space character U+3000", "\xE3\x80\x80", "\x20"}, {"ASCII control characters U+0010 U+007F", "\x10\x7F", "\x10\x7F"}, {"Non-ASCII 8bit control character U+0085", "\xC2\x85", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-ASCII multibyte control character U+180E", "\xE1\xA0\x8E", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Zero Width No-Break Space U+FEFF", "\xEF\xBB\xBF", ""}, {"Non-ASCII control character U+1D175", "\xF0\x9D\x85\xB5", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Plane 0 private use character U+F123", "\xEF\x84\xA3", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Plane 15 private use character U+F1234", "\xF3\xB1\x88\xB4", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Plane 16 private use character U+10F234", "\xF4\x8F\x88\xB4", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-character code point U+8FFFE", "\xF2\x8F\xBF\xBE", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-character code point U+10FFFF", "\xF4\x8F\xBF\xBF", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Surrogate code U+DF42", "\xED\xBD\x82", NULL, "Nameprep", 0, STRINGPREP_ICONV_ERROR /* was STRINGPREP_CONTAINS_PROHIBITED */ }, {"Non-plain text character U+FFFD", "\xEF\xBF\xBD", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Ideographic description character U+2FF5", "\xE2\xBF\xB5", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Display property character U+0341", "\xCD\x81", "\xCC\x81"}, {"Left-to-right mark U+200E", "\xE2\x80\x8E", "\xCC\x81", "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Deprecated U+202A", "\xE2\x80\xAA", "\xCC\x81", "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Language tagging character U+E0001", "\xF3\xA0\x80\x81", "\xCC\x81", "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Language tagging character U+E0042", "\xF3\xA0\x81\x82", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Bidi: RandALCat character U+05BE and LCat characters", "foo\xD6\xBE" "bar", NULL, "Nameprep", 0, STRINGPREP_BIDI_BOTH_L_AND_RAL}, {"Bidi: RandALCat character U+FD50 and LCat characters", "foo\xEF\xB5\x90" "bar", NULL, "Nameprep", 0, STRINGPREP_BIDI_BOTH_L_AND_RAL}, {"Bidi: RandALCat character U+FB38 and LCat characters", "foo\xEF\xB9\xB6" "bar", "foo \xd9\x8e" "bar"}, {"Bidi: RandALCat without trailing RandALCat U+0627 U+0031", "\xD8\xA7\x31", NULL, "Nameprep", 0, STRINGPREP_BIDI_LEADTRAIL_NOT_RAL}, {"Bidi: RandALCat character U+0627 U+0031 U+0628", "\xD8\xA7\x31\xD8\xA8", "\xD8\xA7\x31\xD8\xA8"}, {"Unassigned code point U+E0002", "\xF3\xA0\x80\x82", NULL, "Nameprep", STRINGPREP_NO_UNASSIGNED, STRINGPREP_CONTAINS_UNASSIGNED}, {"Larger test (shrinking)", "X\xC2\xAD\xC3\x9F\xC4\xB0\xE2\x84\xA1\x6a\xcc\x8c\xc2\xa0\xc2" "\xaa\xce\xb0\xe2\x80\x80", "xssi\xcc\x87" "tel\xc7\xb0 a\xce\xb0 ", "Nameprep"}, {"Larger test (expanding)", "X\xC3\x9F\xe3\x8c\x96\xC4\xB0\xE2\x84\xA1\xE2\x92\x9F\xE3\x8c\x80", "xss\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88" "\xe3\x83\xab" "i\xcc\x87" "tel\x28" "d\x29\xe3\x82\xa2\xe3\x83\x91" "\xe3\x83\xbc\xe3\x83\x88"}, {"Test of prohibited ASCII character U+0020", "\x20", NULL, "Nodeprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Test of NFKC U+00A0 and prohibited character U+0020", "\xC2\xA0", NULL, "Nodeprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Case map + normalization", "\xC2\xB5", "\xCE\xBC", "Nameprep"}, /* The rest are rather non-interesting, but no point in removing working test cases... */ {"case_nonfkc", "\xC2\xB5", "\xCE\xBC", "Nameprep", STRINGPREP_NO_NFKC, STRINGPREP_FLAG_ERROR}, {"NFKC test", "\xC2\xAA", "\x61", "Nameprep"}, {"nameprep, exposed a bug in libstringprep 0.0.5", "\xC2\xAA\x0A", "\x61\x0A"}, {"unassigned code point U+0221", "\xC8\xA1", "\xC8\xA1", "Nameprep"}, {"Unassigned code point U+0221", "\xC8\xA1", NULL, "Nameprep", STRINGPREP_NO_UNASSIGNED, STRINGPREP_CONTAINS_UNASSIGNED}, {"Unassigned code point U+0236", "\xC8\xB6", "\xC8\xB6", "Nameprep"}, {"unassigned code point U+0236", "\xC8\xB6", NULL, "Nameprep", STRINGPREP_NO_UNASSIGNED, STRINGPREP_CONTAINS_UNASSIGNED}, {"bidi both RandALCat and LCat U+0627 U+00AA U+0628", "\xD8\xA7\xC2\xAA\xD8\xA8", NULL, "Nameprep", 0, STRINGPREP_BIDI_BOTH_L_AND_RAL}, /* XMPP */ {"XMPP node profile prohibited output", "foo@bar", NULL, "Nodeprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"XMPP resource profile on same string should work though", "foo@bar", "foo@bar", "Resourceprep"}, /* iSCSI */ {"iSCSI 1", "Example-Name", "example-name", "iSCSI"}, {"iSCSI 2", "O+o", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"iSCSI 3", "\x01", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"iSCSI 4", "\xE3\x80\x82", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"iSCSI 5", "\xE2\xBF\xB5", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"SASL profile", "Example\xC2\xA0" "Name", "Example Name", "SASLprep"}, /* SASL trace */ {"SASL ANONYMOUS plain mechanism", "simon@josefsson.org", "simon@josefsson.org", "plain"}, {"SASLprep 1 old", "x\xC2\xADy", "xy", "SASLprep"}, {"SASLprep 4 old", "\xE2\x85\xA3", "IV", "SASLprep"}, /* SASLprep test vectors. */ {"SASLprep 1 SOFT HYPHEN mapped to nothing", "I\xC2\xADX", "IX", "SASLprep"}, {"SASLprep 2 no transformation", "user", "user", "SASLprep"}, {"SASLprep 3 case preserved, will not match #2", "USER", "USER", "SASLprep"}, {"SASLprep 4 output is NFKC, input in ISO 8859-1", "\xC2\xAA", "a", "SASLprep"}, {"SASLprep 5 output is NFKC, will match #1", "\xE2\x85\xA8", "IX", "SASLprep"}, {"SASLprep 6 Error - prohibited character", "\x07", NULL, "SASLprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"SASLprep 7 Error - bidirectional check", "\xD8\xA7" "1", NULL, "SASLprep", 0, STRINGPREP_BIDI_LEADTRAIL_NOT_RAL} }; void doit (void) { char *p; int rc; unsigned i; if (!stringprep_check_version (STRINGPREP_VERSION)) fail ("stringprep_check_version failed (header %s runtime %s)\n", STRINGPREP_VERSION, stringprep_check_version (NULL)); if (!stringprep_check_version (NULL)) fail ("stringprep_check_version(NULL) failed\n"); if (strcmp (stringprep_check_version (NULL), STRINGPREP_VERSION) != 0) fail ("stringprep_check_version failure (header %s runtime %s)\n", STRINGPREP_VERSION, stringprep_check_version (NULL)); if (stringprep_check_version ("100.100")) fail ("stringprep_check_version(\"100.100\") failed\n"); for (i = 0; i < sizeof (strprep) / sizeof (strprep[0]); i++) { if (debug) printf ("STRINGPREP entry %u\n", i); if (debug) { printf ("flags: %d\n", strprep[i].flags); printf ("in: "); escapeprint (strprep[i].in, strlen (strprep[i].in)); hexprint (strprep[i].in, strlen (strprep[i].in)); binprint (strprep[i].in, strlen (strprep[i].in)); } { uint32_t *l; char *x = NULL; l = stringprep_utf8_to_ucs4 (strprep[i].in, -1, NULL); if (l) x = stringprep_ucs4_to_utf8 (l, -1, NULL, NULL); free (l); if (i == 29) /* Ignoring known bad UTF-8 in entry 29 */ continue; else if (l == NULL) { fail ("bad UTF-8 in entry %u\n", i); continue; } else if (strcmp (strprep[i].in, x) != 0) { fail ("bad UTF-8 in entry %u\n", i); if (debug) { puts ("expected:"); escapeprint (strprep[i].in, strlen (strprep[i].in)); hexprint (strprep[i].in, strlen (strprep[i].in)); puts ("computed:"); escapeprint (x, strlen (x)); hexprint (x, strlen (x)); } continue; } free (x); } rc = stringprep_profile (strprep[i].in, &p, strprep[i].profile ? strprep[i].profile : "Nameprep", strprep[i].flags); if (rc != strprep[i].rc) { fail ("stringprep() entry %u failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); if (rc == STRINGPREP_OK) free (p); continue; } if (debug && rc == STRINGPREP_OK) { printf ("out: "); escapeprint (p, strlen (p)); hexprint (p, strlen (p)); binprint (p, strlen (p)); printf ("expected out: "); escapeprint (strprep[i].out, strlen (strprep[i].out)); hexprint (strprep[i].out, strlen (strprep[i].out)); binprint (strprep[i].out, strlen (strprep[i].out)); } else if (debug) printf ("returned %d expected %d\n", rc, strprep[i].rc); if (rc == STRINGPREP_OK) { if (strlen (strprep[i].out) != strlen (p) || memcmp (strprep[i].out, p, strlen (p)) != 0) { fail ("stringprep() entry %ld failed\n", (long) i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); free (p); } else if (debug) printf ("OK\n\n"); } #if 0 { char p[20]; memset (p, 0, 10); stringprep_unichar_to_utf8 (0x00DF, p); hexprint (p, strlen (p)); puts (""); } #endif } libidn-1.38/m4/0000755000000000000000000000000014076274117010206 500000000000000libidn-1.38/m4/ax_prog_javac.m40000644000000000000000000000657614076271517013212 00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_prog_javac.html # =========================================================================== # # SYNOPSIS # # AX_PROG_JAVAC # # DESCRIPTION # # AX_PROG_JAVAC tests an existing Java compiler. It uses the environment # variable JAVAC then tests in sequence various common Java compilers. For # political reasons, it starts with the free ones. # # If you want to force a specific compiler: # # - at the configure.in level, set JAVAC=yourcompiler before calling # AX_PROG_JAVAC # # - at the configure level, setenv JAVAC # # You can use the JAVAC variable in your Makefile.in, with @JAVAC@. # # *Warning*: its success or failure can depend on a proper setting of the # CLASSPATH env. variable. # # TODO: allow to exclude compilers (rationale: most Java programs cannot # compile with some compilers like guavac). # # Note: This is part of the set of autoconf M4 macros for Java programs. # It is VERY IMPORTANT that you download the whole set, some macros depend # on other. Unfortunately, the autoconf archive does not support the # concept of set of macros, so I had to break it for submission. The # general documentation, as well as the sample configure.in, is included # in the AX_PROG_JAVA macro. # # LICENSE # # Copyright (c) 2008 Stephane Bortzmeyer # # 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 8 AU_ALIAS([AC_PROG_JAVAC], [AX_PROG_JAVAC]) AC_DEFUN([AX_PROG_JAVAC],[ m4_define([m4_ax_prog_javac_list],["gcj -C" guavac jikes javac])dnl AS_IF([test "x$JAVAPREFIX" = x], [test "x$JAVAC" = x && AC_CHECK_PROGS([JAVAC], [m4_ax_prog_javac_list])], [test "x$JAVAC" = x && AC_CHECK_PROGS([JAVAC], [m4_ax_prog_javac_list], [], [$JAVAPREFIX/bin])]) m4_undefine([m4_ax_prog_javac_list])dnl test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH]) AX_PROG_JAVAC_WORKS AC_PROVIDE([$0])dnl ]) libidn-1.38/m4/ax_prog_jar.m40000644000000000000000000000334114076271517012665 00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_prog_jar.html # =========================================================================== # # SYNOPSIS # # AX_PROG_JAR # # DESCRIPTION # # AX_PROG_JAR tests for an existing jar program. It uses the environment # variable JAR then tests in sequence various common jar programs. # # If you want to force a specific compiler: # # - at the configure.in level, set JAR=yourcompiler before calling # AX_PROG_JAR # # - at the configure level, setenv JAR # # You can use the JAR variable in your Makefile.in, with @JAR@. # # Note: This macro depends on the autoconf M4 macros for Java programs. It # is VERY IMPORTANT that you download that whole set, some macros depend # on other. Unfortunately, the autoconf archive does not support the # concept of set of macros, so I had to break it for submission. # # The general documentation of those macros, as well as the sample # configure.in, is included in the AX_PROG_JAVA macro. # # LICENSE # # Copyright (c) 2008 Egon Willighagen # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 8 AU_ALIAS([AC_PROG_JAR], [AX_PROG_JAR]) AC_DEFUN([AX_PROG_JAR],[ AS_IF([test "x$JAVAPREFIX" = x], [test "x$JAR" = x && AC_CHECK_PROGS([JAR], [jar])], [test "x$JAR" = x && AC_CHECK_PROGS([JAR], [jar], [], [$JAVAPREFIX/bin])]) test "x$JAR" = x && AC_MSG_ERROR([no acceptable jar program found in \$PATH]) AC_PROVIDE([$0])dnl ]) libidn-1.38/m4/ax_prog_javac_works.m40000644000000000000000000000552614076271517014431 00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_prog_javac_works.html # =========================================================================== # # SYNOPSIS # # AX_PROG_JAVAC_WORKS # # DESCRIPTION # # Internal use ONLY. # # Note: This is part of the set of autoconf M4 macros for Java programs. # It is VERY IMPORTANT that you download the whole set, some macros depend # on other. Unfortunately, the autoconf archive does not support the # concept of set of macros, so I had to break it for submission. The # general documentation, as well as the sample configure.in, is included # in the AX_PROG_JAVA macro. # # LICENSE # # Copyright (c) 2008 Stephane Bortzmeyer # # 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 7 AU_ALIAS([AC_PROG_JAVAC_WORKS], [AX_PROG_JAVAC_WORKS]) AC_DEFUN([AX_PROG_JAVAC_WORKS],[ AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [ JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST /* [#]line __oline__ "configure" */ public class Test { } EOF if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) >/dev/null 2>&1; then ac_cv_prog_javac_works=yes else AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)]) echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD cat $JAVA_TEST >&AS_MESSAGE_LOG_FD fi rm -f $JAVA_TEST $CLASS_TEST ]) AC_PROVIDE([$0])dnl ]) libidn-1.38/m4/ax_prog_javadoc.m40000644000000000000000000000350114076271517013516 00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_prog_javadoc.html # =========================================================================== # # SYNOPSIS # # AX_PROG_JAVADOC # # DESCRIPTION # # AX_PROG_JAVADOC tests for an existing javadoc generator. It uses the # environment variable JAVADOC then tests in sequence various common # javadoc generator. # # If you want to force a specific compiler: # # - at the configure.in level, set JAVADOC=yourgenerator before calling # AX_PROG_JAVADOC # # - at the configure level, setenv JAVADOC # # You can use the JAVADOC variable in your Makefile.in, with @JAVADOC@. # # Note: This macro depends on the autoconf M4 macros for Java programs. It # is VERY IMPORTANT that you download that whole set, some macros depend # on other. Unfortunately, the autoconf archive does not support the # concept of set of macros, so I had to break it for submission. # # The general documentation of those macros, as well as the sample # configure.in, is included in the AX_PROG_JAVA macro. # # LICENSE # # Copyright (c) 2008 Egon Willighagen # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 9 AU_ALIAS([AC_PROG_JAVADOC], [AX_PROG_JAVADOC]) AC_DEFUN([AX_PROG_JAVADOC],[ AS_IF([test "x$JAVAPREFIX" = x], [test "x$JAVADOC" = x && AC_CHECK_PROGS([JAVADOC], [javadoc])], [test "x$JAVADOC" = x && AC_CHECK_PROGS([JAVADOC], [javadoc], [], [$JAVAPREFIX/bin])]) test "x$JAVADOC" = x && AC_MSG_ERROR([no acceptable javadoc generator found in \$PATH]) AC_PROVIDE([$0])dnl ]) libidn-1.38/m4/ax_java_options.m40000644000000000000000000000334114076271517013556 00000000000000# =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_java_options.html # =========================================================================== # # SYNOPSIS # # AX_JAVA_OPTIONS # # DESCRIPTION # # AX_JAVA_OPTIONS adds configure command line options used for Java m4 # macros. This Macro is optional. # # Note: This is part of the set of autoconf M4 macros for Java programs. # It is VERY IMPORTANT that you download the whole set, some macros depend # on other. Unfortunately, the autoconf archive does not support the # concept of set of macros, so I had to break it for submission. The # general documentation, as well as the sample configure.in, is included # in the AX_PROG_JAVA macro. # # LICENSE # # Copyright (c) 2008 Devin Weaver # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 7 AU_ALIAS([AC_JAVA_OPTIONS], [AX_JAVA_OPTIONS]) AC_DEFUN([AX_JAVA_OPTIONS],[ AC_ARG_WITH(java-prefix, [ --with-java-prefix=PFX prefix where Java runtime is installed (optional)]) AC_ARG_WITH(javac-flags, [ --with-javac-flags=FLAGS flags to pass to the Java compiler (optional)]) AC_ARG_WITH(java-flags, [ --with-java-flags=FLAGS flags to pass to the Java VM (optional)]) JAVAPREFIX=$with_java_prefix JAVACFLAGS=$with_javac_flags JAVAFLAGS=$with_java_flags AC_SUBST(JAVAPREFIX)dnl AC_SUBST(JAVACFLAGS)dnl AC_SUBST(JAVAFLAGS)dnl AC_SUBST(JAVA)dnl AC_SUBST(JAVAC)dnl ]) libidn-1.38/m4/pkg.m40000644000000000000000000001214514053001337011137 00000000000000# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # 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. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES libidn-1.38/build-aux/0000755000000000000000000000000014076274121011553 500000000000000libidn-1.38/build-aux/ar-lib0000755000000000000000000001336314076273555012607 00000000000000#! /bin/sh # Wrapper for Microsoft lib.exe me=ar-lib scriptversion=2019-07-04.01; # UTC # Copyright (C) 2010-2020 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin | msys) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat <. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/mdate-sh0000755000000000000000000001373214075261466013140 00000000000000#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1995-2021 Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi case $1 in '') echo "$0: No file. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: mdate-sh [--help] [--version] FILE Pretty-print the modification day of FILE, in the format: 1 January 1970 Report bugs to . EOF exit $? ;; -v | --v*) echo "mdate-sh $scriptversion" exit $? ;; esac error () { echo "$0: $1" >&2 exit 1 } # Prevent date giving response in another language. LANG=C export LANG LC_ALL=C export LC_ALL LC_TIME=C export LC_TIME # Use UTC to get reproducible result. TZ=UTC0 export TZ # GNU ls changes its time format in response to the TIME_STYLE # variable. Since we cannot assume 'unset' works, revert this # variable to its documented default. if test "${TIME_STYLE+set}" = set; then TIME_STYLE=posix-long-iso export TIME_STYLE fi save_arg1=$1 # Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then ls_command='ls -L -l -d' else ls_command='ls -l -d' fi # Avoid user/group names that might have spaces, when possible. if ls -n /dev/null 1>/dev/null 2>&1; then ls_command="$ls_command -n" fi # A 'ls -l' line looks as follows on OS/2. # drwxrwx--- 0 Aug 11 2001 foo # This differs from Unix, which adds ownership information. # drwxrwx--- 2 root root 4096 Aug 11 2001 foo # # To find the date, we split the line on spaces and iterate on words # until we find a month. This cannot work with files whose owner is a # user named "Jan", or "Feb", etc. However, it's unlikely that '/' # will be owned by a user whose name is a month. So we first look at # the extended ls output of the root directory to decide how many # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. set x`$ls_command /` # Find which argument is the month. month= command= until test $month do test $# -gt 0 || error "failed parsing '$ls_command /' output" shift # Add another shift to the command. command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac done test -n "$month" || error "failed parsing '$ls_command /' output" # Get the extended ls output of the file or directory. set dummy x`eval "$ls_command \"\\\$save_arg1\""` # Remove all preceding arguments eval $command # Because of the dummy argument above, month is in $2. # # On a POSIX system, we should have # # $# = 5 # $1 = file size # $2 = month # $3 = day # $4 = year or time # $5 = filename # # On Darwin 7.7.0 and 7.6.0, we have # # $# = 4 # $1 = day # $2 = month # $3 = year or time # $4 = filename # Get the month. case $2 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac case $3 in ???*) day=$1;; *) day=$3; shift;; esac # Here we have to deal with the problem that the ls output gives either # the time of day or the year. case $3 in *:*) set `date`; eval year=\$$# case $2 in Jan) nummonthtod=1;; Feb) nummonthtod=2;; Mar) nummonthtod=3;; Apr) nummonthtod=4;; May) nummonthtod=5;; Jun) nummonthtod=6;; Jul) nummonthtod=7;; Aug) nummonthtod=8;; Sep) nummonthtod=9;; Oct) nummonthtod=10;; Nov) nummonthtod=11;; Dec) nummonthtod=12;; esac # For the first six month of the year the time notation can also # be used for files modified in the last year. if (expr $nummonth \> $nummonthtod) > /dev/null; then year=`expr $year - 1` fi;; *) year=$3;; esac # The result. echo $day $month $year # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/gnupload0000755000000000000000000003266614076273520013251 00000000000000#!/bin/sh # Sign files and upload them. scriptversion=2021-04-11.09; # UTC # Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Originally written by Alexandre Duret-Lutz . # The master copy of this file is maintained in the gnulib Git repository. # Please send bug reports and feature requests to bug-gnulib@gnu.org. set -e GPG=gpg # Choose the proper version of gpg, so as to avoid a # "gpg-agent is not available in this session" error # when gpg-agent is version 2 but gpg is still version 1. # FIXME-2020: remove, once all major distros ship gpg version 2 as /usr/bin/gpg gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` case "$gpg_agent_version" in 2.*) gpg_version=`(gpg --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'` case "$gpg_version" in 1.*) if (type gpg2) >/dev/null 2>/dev/null; then # gpg2 is present. GPG=gpg2 else # gpg2 is missing. Ubuntu users should install the package 'gnupg2'. echo "WARNING: Using 'gpg', which is too old. You should install 'gpg2'." 1>&2 fi ;; esac ;; esac GPG="${GPG} --batch --no-tty" conffile=.gnuploadrc to= dry_run=false replace= symlink_files= delete_files= delete_symlinks= collect_var= dbg= nl=' ' usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...] Sign all FILES, and process them at the destinations specified with --to. If CMD is not given, it defaults to uploading. See examples below. Commands: --delete delete FILES from destination --symlink create symbolic links --rmsymlink remove symbolic links -- treat the remaining arguments as files to upload Options: --to DEST specify a destination DEST for FILES (multiple --to options are allowed) --user NAME sign with key NAME --replace allow replacements of existing files --symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names -n, --dry-run do nothing, show what would have been done (including the constructed directive file) --version output version information and exit -h, --help print this help text and exit If --symlink-regex is given without EXPR, then the link target name is created by replacing the version information with '-latest', e.g.: foo-1.3.4.tar.gz -> foo-latest.tar.gz Recognized destinations are: alpha.gnu.org:DIRECTORY savannah.gnu.org:DIRECTORY savannah.nongnu.org:DIRECTORY ftp.gnu.org:DIRECTORY build directive files and upload files by FTP download.gnu.org.ua:{alpha|ftp}/DIRECTORY build directive files and upload files by SFTP [user@]host:DIRECTORY upload files with scp Options and commands are applied in order. If the file $conffile exists in the current working directory, its contents are prepended to the actual command line options. Use this to keep your defaults. Comments (#) and empty lines in $conffile are allowed. gives some further background. Examples: 1. Upload foobar-1.0.tar.gz to ftp.gnu.org: gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz 2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org: gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz 3. Same as above, and also create symbolic links to foobar-latest.tar.*: gnupload --to ftp.gnu.org:foobar \\ --symlink-regex \\ foobar-1.0.tar.gz foobar-1.0.tar.xz 4. Create a symbolic link foobar-latest.tar.gz -> foobar-1.0.tar.gz and likewise for the corresponding .sig file: gnupload --to ftp.gnu.org:foobar \\ --symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\ foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig or (equivalent): gnupload --to ftp.gnu.org:foobar \\ --symlink foobar-1.0.tar.gz foobar-latest.tar.gz \\ --symlink foobar-1.0.tar.gz.sig foobar-latest.tar.gz.sig 5. Upload foobar-0.9.90.tar.gz to two sites: gnupload --to alpha.gnu.org:foobar \\ --to sources.redhat.com:~ftp/pub/foobar \\ foobar-0.9.90.tar.gz 6. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz (the -- terminates the list of files to delete): gnupload --to alpha.gnu.org:foobar \\ --to sources.redhat.com:~ftp/pub/foobar \\ --delete oopsbar-0.9.91.tar.gz \\ -- foobar-0.9.91.tar.gz gnupload executes a program ncftpput to do the transfers; if you don't happen to have an ncftp package installed, the ncftpput-ftp script in the build-aux/ directory of the gnulib package (https://savannah.gnu.org/projects/gnulib) may serve as a replacement. Send patches and bug reports to ." copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'` copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law." # Read local configuration file if test -r "$conffile"; then echo "$0: Reading configuration file $conffile" conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '` eval set x "$conf \"\$@\"" shift fi while test -n "$1"; do case $1 in -*) collect_var= case $1 in -h | --help) echo "$usage" exit $? ;; --to) if test -z "$2"; then echo "$0: Missing argument for --to" 1>&2 exit 1 elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2 echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2 echo "$0: is used for direct ftp uploads, not with gnupload)." >&2 echo "$0: See --help and its examples if need be." >&2 exit 1 else to="$to $2" shift fi ;; --user) if test -z "$2"; then echo "$0: Missing argument for --user" 1>&2 exit 1 else GPG="$GPG --local-user $2" shift fi ;; --delete) collect_var=delete_files ;; --replace) replace="replace: true" ;; --rmsymlink) collect_var=delete_symlinks ;; --symlink-regex=*) symlink_expr=`expr "$1" : '[^=]*=\(.*\)'` ;; --symlink-regex) symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|' ;; --symlink) collect_var=symlink_files ;; -n | --dry-run) dry_run=: ;; --version) echo "gnupload $scriptversion" echo "$copyright" exit 0 ;; --) shift break ;; -*) echo "$0: Unknown option '$1', try '$0 --help'" 1>&2 exit 1 ;; esac ;; *) if test -z "$collect_var"; then break else eval "$collect_var=\"\$$collect_var $1\"" fi ;; esac shift done dprint() { echo "Running $* ..." } if $dry_run; then dbg=dprint fi if test -z "$to"; then echo "$0: Missing destination sites" >&2 exit 1 fi if test -n "$symlink_files"; then x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'` if test -n "$x"; then echo "$0: Odd number of symlink arguments" >&2 exit 1 fi fi if test $# = 0; then if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then echo "$0: No file to upload" 1>&2 exit 1 fi else # Make sure all files exist. We don't want to ask # for the passphrase if the script will fail. for file do if test ! -f $file; then echo "$0: Cannot find '$file'" 1>&2 exit 1 elif test -n "$symlink_expr"; then linkname=`echo $file | sed "$symlink_expr"` if test -z "$linkname"; then echo "$0: symlink expression produces empty results" >&2 exit 1 elif test "$linkname" = $file; then echo "$0: symlink expression does not alter file name" >&2 exit 1 fi fi done fi # Make sure passphrase is not exported in the environment. unset passphrase unset passphrase_fd_0 GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg} # Reset PATH to be sure that echo is a built-in. We will later use # 'echo $passphrase' to output the passphrase, so it is important that # it is a built-in (third-party programs tend to appear in 'ps' # listings with their arguments...). # Remember this script runs with 'set -e', so if echo is not built-in # it will exit now. if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else PATH=/empty echo -n "Enter GPG passphrase: " stty -echo read -r passphrase stty echo echo passphrase_fd_0="--passphrase-fd 0" fi if test $# -ne 0; then for file do echo "Signing $file ..." rm -f $file.sig echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file done fi # mkdirective DESTDIR BASE FILE STMT # Arguments: See upload, below mkdirective () { stmt="$4" if test -n "$3"; then stmt=" filename: $3$stmt" fi cat >${2}.directive<&2 fi $dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files ;; savannah.nongnu.org:*) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files ;; download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*) destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'` destdir_topdir=`echo "$destdir" | sed 's,/.*,,'` mkdirective "$destdir_p1" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive for f in $files $base.directive.asc do echo put $f done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir ;; /*) dest_host=`echo "$dest" | sed 's,:.*,,'` mkdirective "$destdir" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg cp $files $base.directive.asc $dest_host ;; *) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg scp $files $dest ;; esac rm -f $base.directive $base.directive.asc } ##### # Process any standalone directives stmt= if test -n "$symlink_files"; then stmt="$stmt `mksymlink $symlink_files`" fi for file in $delete_files do stmt="$stmt archive: $file" done for file in $delete_symlinks do stmt="$stmt rmsymlink: $file" done if test -n "$stmt"; then for dest in $to do destdir=`echo $dest | sed 's/[^:]*://'` upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt" done fi # Process actual uploads for dest in $to do for file do echo "Uploading $file to $dest ..." stmt= # # allowing file replacement is all or nothing. if test -n "$replace"; then stmt="$stmt $replace" fi # files="$file $file.sig" destdir=`echo $dest | sed 's/[^:]*://'` if test -n "$symlink_expr"; then linkname=`echo $file | sed "$symlink_expr"` stmt="$stmt symlink: $file $linkname symlink: $file.sig $linkname.sig" fi upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files" done done exit 0 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/pmccabe.css0000644000000000000000000000607514076273520013611 00000000000000/* Styling for cyclomatic code complexity charts. Copyright (C) 2008-2021 Free Software Foundation, Inc. This file 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 3 of the License, or (at your option) any later version. This file 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, see . */ body { font-family: Helvetica, sans-serif; } .page_title { font: 18pt Georgia, serif; color: darkred; } .section_title { font: 14pt Georgia, serif; color: darkred; } .report_timestamp { color: darkred; font-weight: bold; } .function_src { text-align: left; background: white; } .resume_table { } .resume_header_entry { color: black; } .resume_number_entry { color: darkred; font-weight: bold; text-align: right; } .ranges_table { border-spacing: 0px; border-bottom: solid 2px black; border-top: solid 2px black; border-left: solid 2px black; border-right: solid 2px black; } .ranges_header_entry { padding: 5px; border-bottom: solid 1px black; font-size: 1em; font-weight: bold; color: darkred; text-align: left; } .ranges_entry { } .ranges_entry_simple { background: #87ff75; } .ranges_entry_moderate { background: #fffc60; } .ranges_entry_high { background: #ff5a5d; } .ranges_entry_untestable { background: #993300 } .function_table { border-spacing: 0px; border-bottom: solid 2px black; border-top: solid 2px black; border-left: solid 2px black; border-right: solid 2px black; } .function_table_caption { font-size: 1.1em; font-weight: bold; color: black; padding: 5px; } .function_table_header { } .function_table_header_entry { padding: 5px; border-bottom: solid 1px black; font-size: 1em; font-weight: bold; color: darkred; text-align: left; } .function_entry { } .function_entry_simple { background: #87ff75; } .function_entry_moderate { background: #fffc60; } .function_entry_high { background: #ff5a5d; } .function_entry_untestable { background: #993300 } .function_entry_name { font-size: 1em; text-align: left; font-weight: bold; text-valign: top; border-top: solid 1px black; padding: 3px; } .function_entry_cyclo { font-size: 1em; text-align: right; text-valign: top; border-top: solid 1px black; padding: 3px; } .function_entry_number { font-size: 1em; text-align: right; text-valign: top; border-top: solid 1px black; padding: 3px; } .function_entry_filename { font-size: 1em; text-align: left; text-valign: top; border-top: solid 1px black; padding: 3px; } libidn-1.38/build-aux/config.rpath0000755000000000000000000004425414076273531014020 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2021 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly* | midnightbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly* | midnightbsd*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then tweaked_estatus=1 else tweaked_estatus=$estatus fi case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report the test outcome and exit status in the logs, so that one can # know whether the test passed or failed simply by looking at the '.log' # file, without the need of also peaking into the corresponding '.trs' # file (automake bug#11814). echo "$res $test_name (exit status: $estatus)" >>$log_file # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/csharpexec.sh.in0000644000000000000000000000475414076273517014603 00000000000000#!/bin/sh # Execute a C# program. # Copyright (C) 2003-2021 Free Software Foundation, Inc. # Written by Bruno Haible , 2003. # # 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 3 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, see . # This uses the same choices as csharpexec.c, but instead of relying on the # environment settings at run time, it uses the environment variables # present at configuration time. # # This is a separate shell script, because the various C# interpreters have # different command line options. # # Usage: /bin/sh csharpexec.sh [OPTION] program.exe [ARGUMENTS] # Options: # -L DIRECTORY search for C# libraries also in DIRECTORY sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g' libdirs_mono= prog= while test $# != 0; do case "$1" in -L) libdirs_mono="${libdirs_mono:+$libdirs_mono@MONO_PATH_SEPARATOR@}$2" shift ;; -*) echo "csharpexec: unknown option '$1'" 1>&2 exit 1 ;; *) prog="$1" break ;; esac shift done if test -z "$prog"; then echo "csharpexec: no program specified" 1>&2 exit 1 fi case "$prog" in *.exe) ;; *) echo "csharpexec: program is not a .exe" 1>&2 exit 1 ;; esac if test -n "@HAVE_MONO@"; then CONF_MONO_PATH='@MONO_PATH@' if test -n "$libdirs_mono"; then MONO_PATH="$libdirs_mono${CONF_MONO_PATH:+@MONO_PATH_SEPARATOR@$CONF_MONO_PATH}" else MONO_PATH="$CONF_MONO_PATH" fi export MONO_PATH test -z "$CSHARP_VERBOSE" || echo mono "$@" exec mono "$@" else if test -n "@HAVE_CLIX@"; then CONF_CLIX_PATH='@CLIX_PATH@' if test -n "$libdirs_mono"; then @CLIX_PATH_VAR@="$libdirs_mono${CONF_CLIX_PATH:+@MONO_PATH_SEPARATOR@$CONF_CLIX_PATH}" else @CLIX_PATH_VAR@="$CONF_CLIX_PATH" fi export @CLIX_PATH_VAR@ test -z "$CSHARP_VERBOSE" || echo clix "$@" exec clix "$@" else echo 'C# virtual machine not found, try installing mono, then reconfigure' 1>&2 exit 1 fi fi libidn-1.38/build-aux/announce-gen0000755000000000000000000004174614076273517014022 00000000000000#!/bin/sh #! -*-perl-*- # Generate a release announcement message. # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # # Written by Jim Meyering # This is a prologue that allows to run a perl script as an executable # on systems that are compliant to a POSIX version before POSIX:2017. # On such systems, the usual invocation of an executable through execlp() # or execvp() fails with ENOEXEC if it is a script that does not start # with a #! line. The script interpreter mentioned in the #! line has # to be /bin/sh, because on GuixSD systems that is the only program that # has a fixed file name. The second line is essential for perl and is # also useful for editing this file in Emacs. The next two lines below # are valid code in both sh and perl. When executed by sh, they re-execute # the script through the perl program found in $PATH. The '-x' option # is essential as well; without it, perl would re-execute the script # through /bin/sh. When executed by perl, the next two lines are a no-op. eval 'exec perl -wSx "$0" "$@"' if 0; my $VERSION = '2021-04-11 8:42'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. my $copyright_year = '2021'; use strict; use Getopt::Long; use POSIX qw(strftime); (my $ME = $0) =~ s|.*/||; my %valid_release_types = map {$_ => 1} qw (alpha beta stable); my @archive_suffixes = qw (tar.gz tar.bz2 tar.lz tar.lzma tar.xz); my %digest_classes = ( 'md5' => (eval { require Digest::MD5; } and 'Digest::MD5'), 'sha1' => ((eval { require Digest::SHA; } and 'Digest::SHA') or (eval { require Digest::SHA1; } and 'Digest::SHA1')) ); my $srcdir = '.'; sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { my @types = sort keys %valid_release_types; print $STREAM < = C Compute the sizes of the C<@file> and return them as a hash. Return C if one of the computation failed. =cut sub sizes (@) { my (@file) = @_; my $fail = 0; my %res; foreach my $f (@file) { my $cmd = "du -h $f"; my $t = `$cmd`; # FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS $@ and (warn "command failed: '$cmd'\n"), $fail = 1; chomp $t; $t =~ s/^\s*([\d.]+[MkK]).*/${1}B/; $res{$f} = $t; } return $fail ? undef : %res; } =item C dedicated to the list of <@file>, which sizes are stored in C<%size>, and which are available from the C<@url>. =cut sub print_locations ($\@\%@) { my ($title, $url, $size, @file) = @_; print "Here are the $title:\n"; foreach my $url (@{$url}) { for my $file (@file) { print " $url/$file"; print " (", $$size{$file}, ")" if exists $$size{$file}; print "\n"; } } print "\n"; } =item C. =cut sub print_checksums (@) { my (@file) = @_; print "Here are the MD5 and SHA1 checksums:\n"; print "\n"; foreach my $meth (qw (md5 sha1)) { my $class = $digest_classes{$meth} or next; foreach my $f (@file) { open IN, '<', $f or die "$ME: $f: cannot open for reading: $!\n"; binmode IN; my $dig = $class->new->addfile(*IN)->hexdigest; close IN; print "$dig $f\n"; } } print "\n"; } =item C addressing changes between versions C<$prev_version> and C<$curr_version>. =cut sub print_news_deltas ($$$) { my ($news_file, $prev_version, $curr_version) = @_; my $news_name = $news_file; $news_name =~ s|^\Q$srcdir\E/||; print "\n$news_name\n\n"; # Print all lines from $news_file, starting with the first one # that mentions $curr_version up to but not including # the first occurrence of $prev_version. my $in_items; my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/; my $found_news; open NEWS, '<', $news_file or die "$ME: $news_file: cannot open for reading: $!\n"; while (defined (my $line = )) { if ( ! $in_items) { # Match lines like these: # * Major changes in release 5.0.1: # * Noteworthy changes in release 6.6 (2006-11-22) [stable] $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o or next; $in_items = 1; print $line; } else { # This regexp must not match version numbers in NEWS items. # For example, they might well say "introduced in 4.5.5", # and we don't want that to match. $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o and last; print $line; $line =~ /\S/ and $found_news = 1; } } close NEWS; $in_items or die "$ME: $news_file: no matching lines for '$curr_version'\n"; $found_news or die "$ME: $news_file: no news item found for '$curr_version'\n"; } sub print_changelog_deltas ($$) { my ($package_name, $prev_version) = @_; # Print new ChangeLog entries. # First find all CVS-controlled ChangeLog files. use File::Find; my @changelog; find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS' and push @changelog, $File::Find::name}}, '.'); # If there are no ChangeLog files, we're done. @changelog or return; my %changelog = map {$_ => 1} @changelog; # Reorder the list of files so that if there are ChangeLog # files in the specified directories, they're listed first, # in this order: my @dir = qw ( . src lib m4 config doc ); # A typical @changelog array might look like this: # ./ChangeLog # ./po/ChangeLog # ./m4/ChangeLog # ./lib/ChangeLog # ./doc/ChangeLog # ./config/ChangeLog my @reordered; foreach my $d (@dir) { my $dot_slash = $d eq '.' ? $d : "./$d"; my $target = "$dot_slash/ChangeLog"; delete $changelog{$target} and push @reordered, $target; } # Append any remaining ChangeLog files. push @reordered, sort keys %changelog; # Remove leading './'. @reordered = map { s!^\./!!; $_ } @reordered; print "\nChangeLog entries:\n\n"; # print join ("\n", @reordered), "\n"; $prev_version =~ s/\./_/g; my $prev_cvs_tag = "\U$package_name\E-$prev_version"; my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered"; open DIFF, '-|', $cmd or die "$ME: cannot run '$cmd': $!\n"; # Print two types of lines, making minor changes: # Lines starting with '+++ ', e.g., # +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247 # and those starting with '+'. # Don't print the others. my $prev_printed_line_empty = 1; while (defined (my $line = )) { if ($line =~ /^\+\+\+ /) { my $separator = "*"x70 ."\n"; $line =~ s///; $line =~ s/\s.*//; $prev_printed_line_empty or print "\n"; print $separator, $line, $separator; } elsif ($line =~ /^\+/) { $line =~ s///; print $line; $prev_printed_line_empty = ($line =~ /^$/); } } close DIFF; # The exit code should be 1. # Allow in case there are no modified ChangeLog entries. $? == 256 || $? == 128 or warn "warning: '$cmd' had unexpected exit code or signal ($?)\n"; } sub get_tool_versions ($$) { my ($tool_list, $gnulib_version) = @_; @$tool_list or return (); my $fail; my @tool_version_pair; foreach my $t (@$tool_list) { if ($t eq 'gnulib') { push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version; next; } # Assume that the last "word" on the first line of # 'tool --version' output is the version string. my ($first_line, undef) = split ("\n", `$t --version`); if ($first_line =~ /.* (\d[\w.-]+)$/) { $t = ucfirst $t; push @tool_version_pair, "$t $1"; } else { defined $first_line and $first_line = ''; warn "$t: unexpected --version output\n:$first_line"; $fail = 1; } } $fail and exit 1; return @tool_version_pair; } { # Use the C locale so that, for instance, "du" does not # print "1,2" instead of "1.2", which would confuse our regexps. $ENV{LC_ALL} = "C"; my $mail_headers; my $release_type; my $package_name; my $prev_version; my $curr_version; my $gpg_key_id; my @url_dir_list; my @news_file; my $bootstrap_tools; my $gnulib_version; my $print_checksums_p = 1; # Reformat the warnings before displaying them. local $SIG{__WARN__} = sub { my ($msg) = @_; # Warnings from GetOptions. $msg =~ s/Option (\w)/option --$1/; warn "$ME: $msg"; }; GetOptions ( 'mail-headers=s' => \$mail_headers, 'release-type=s' => \$release_type, 'package-name=s' => \$package_name, 'previous-version=s' => \$prev_version, 'current-version=s' => \$curr_version, 'gpg-key-id=s' => \$gpg_key_id, 'url-directory=s' => \@url_dir_list, 'news=s' => \@news_file, 'srcdir=s' => \$srcdir, 'bootstrap-tools=s' => \$bootstrap_tools, 'gnulib-version=s' => \$gnulib_version, 'print-checksums!' => \$print_checksums_p, 'archive-suffix=s' => \@archive_suffixes, help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n"; print "License GPLv3+: GNU GPL version 3 or later .\n" . "This is free software: you are free to change and redistribute it.\n" . "There is NO WARRANTY, to the extent permitted by law.\n"; print "\n"; my $author = "Jim Meyering"; print "Written by $author.\n"; exit }, ) or usage 1; my $fail = 0; # Ensure that each required option is specified. $release_type or (warn "release type not specified\n"), $fail = 1; $package_name or (warn "package name not specified\n"), $fail = 1; $prev_version or (warn "previous version string not specified\n"), $fail = 1; $curr_version or (warn "current version string not specified\n"), $fail = 1; $gpg_key_id or (warn "GnuPG key ID not specified\n"), $fail = 1; @url_dir_list or (warn "URL directory name(s) not specified\n"), $fail = 1; my @tool_list = split ',', $bootstrap_tools if $bootstrap_tools; grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version and (warn "when specifying gnulib as a tool, you must also specify\n" . "--gnulib-version=V, where V is the result of running git describe\n" . "in the gnulib source directory.\n"), $fail = 1; !$release_type || exists $valid_release_types{$release_type} or (warn "'$release_type': invalid release type\n"), $fail = 1; @ARGV and (warn "too many arguments:\n", join ("\n", @ARGV), "\n"), $fail = 1; $fail and usage 1; my $my_distdir = "$package_name-$curr_version"; my $xd = "$package_name-$prev_version-$curr_version.xdelta"; my @candidates = map { "$my_distdir.$_" } @archive_suffixes; my @tarballs = grep {-f $_} @candidates; @tarballs or die "$ME: none of " . join(', ', @candidates) . " were found\n"; my @sizable = @tarballs; -f $xd and push @sizable, $xd; my %size = sizes (@sizable); %size or exit 1; my $headers = ''; if (defined $mail_headers) { ($headers = $mail_headers) =~ s/\s+(\S+:)/\n$1/g; $headers .= "\n"; } # The markup is escaped as <\# so that when this script is sent by # mail (or part of a diff), Gnus is not triggered. print < FIXME: put comments here EOF if (@url_dir_list == 1 && @tarballs == 1) { # When there's only one tarball and one URL, use a more concise form. my $m = "$url_dir_list[0]/$tarballs[0]"; print "Here are the compressed sources and a GPG detached signature[*]:\n" . " $m\n" . " $m.sig\n\n"; } else { print_locations ("compressed sources", @url_dir_list, %size, @tarballs); -f $xd and print_locations ("xdelta diffs (useful? if so, " . "please tell bug-gnulib\@gnu.org)", @url_dir_list, %size, $xd); my @sig_files = map { "$_.sig" } @tarballs; print_locations ("GPG detached signatures[*]", @url_dir_list, %size, @sig_files); } if ($url_dir_list[0] =~ "gnu\.org") { print "Use a mirror for higher download bandwidth:\n"; if (@tarballs == 1 && $url_dir_list[0] =~ m!https://ftp\.gnu\.org/gnu/!) { (my $m = "$url_dir_list[0]/$tarballs[0]") =~ s!https://ftp\.gnu\.org/gnu/!https://ftpmirror\.gnu\.org/!; print " $m\n" . " $m.sig\n\n"; } else { print " https://www.gnu.org/order/ftp.html\n\n"; } } $print_checksums_p and print_checksums (@sizable); print <&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -p) cpprog="$cpprog -p";; -s) stripcmd=$stripprog;; -S) backupsuffix="$2" shift;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? # Don't chown directories that already exist. if test $dstdir_status = 0; then chowncmd="" fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dstbase=`basename "$src"` case $dst in */) dst=$dst$dstbase;; *) dst=$dst/$dstbase;; esac dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi case $dstdir in */) dstdirslash=$dstdir;; *) dstdirslash=$dstdir/;; esac obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false # The $RANDOM variable is not portable (e.g., dash). Use it # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap ' ret=$? rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null exit $ret ' 0 # Because "mkdir -p" follows existing symlinks and we likely work # directly in world-writeable /tmp, make sure that the '$tmpdir' # directory is successfully created first before we actually test # 'mkdir -p'. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=${dstdirslash}_inst.$$_ rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && { test -z "$stripcmd" || { # Create $dsttmp read-write so that cp doesn't create it read-only, # which would cause strip to fail. if test -z "$doit"; then : >"$dsttmp" # No need to fork-exec 'touch'. else $doit touch "$dsttmp" fi } } && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # If $backupsuffix is set, and the file being installed # already exists, attempt a backup. Don't worry if it fails, # e.g., if mv doesn't support -f. if test -n "$backupsuffix" && test -f "$dst"; then $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null fi # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/gnu-web-doc-update0000755000000000000000000001410314076273520015011 00000000000000#!/bin/sh # Run this after each non-alpha release, to update the web documentation at # https://www.gnu.org/software/$pkg/manual/ VERSION=2021-01-09.09; # UTC # Copyright (C) 2009-2021 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . ME=$(basename "$0") warn() { printf '%s: %s\n' "$ME" "$*" >&2; } die() { warn "$*"; exit 1; } help() { cat <. EOF exit } version() { year=$(echo "$VERSION" | sed 's/[^0-9].*//') cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit } # find_tool ENVVAR NAMES... # ------------------------- # Search for a required program. Use the value of ENVVAR, if set, # otherwise find the first of the NAMES that can be run (i.e., # supports --version). If found, set ENVVAR to the program name, # die otherwise. # # FIXME: code duplication, see also bootstrap. find_tool () { find_tool_envvar=$1 shift find_tool_names=$@ eval "find_tool_res=\$$find_tool_envvar" if test x"$find_tool_res" = x; then for i do if ($i --version /dev/null 2>&1; then find_tool_res=$i break fi done else find_tool_error_prefix="\$$find_tool_envvar: " fi test x"$find_tool_res" != x \ || die "one of these is required: $find_tool_names" ($find_tool_res --version /dev/null 2>&1 \ || die "${find_tool_error_prefix}cannot run $find_tool_res --version" eval "$find_tool_envvar=\$find_tool_res" eval "export $find_tool_envvar" } ## ------ ## ## Main. ## ## ------ ## # Requirements: everything required to bootstrap your package, plus # these. find_tool CVS cvs find_tool GIT git find_tool RSYNC rsync find_tool XARGS gxargs xargs builddir=. dryrun= rm_stale='echo' cvs_user="$USER" while test $# != 0 do # Handle --option=value by splitting apart and putting back on argv. case $1 in --*=*) opt=$(echo "$1" | sed -e 's/=.*//') val=$(echo "$1" | sed -e 's/[^=]*=//') shift set dummy "$opt" "$val" "$@"; shift ;; esac case $1 in --help|--version) ${1#--};; -C|--builddir) shift; builddir=$1; shift ;; -n|--dry-run) dryrun=echo; shift;; -m|--mirror) rm_stale=''; shift;; -u|--user) shift; cvs_user=$1; shift ;; --*) die "unrecognized option: $1";; *) break;; esac done test $# = 0 \ || die "too many arguments" prev=.prev-version version=$(cat $prev) || die "no $prev file?" pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' $builddir/Makefile) \ || die "no Makefile?" tmp_branch=web-doc-$version-$$ current_branch=$($GIT branch | sed -ne '/^\* /{s///;p;q;}') cleanup() { __st=$? $dryrun rm -rf "$tmp" $GIT checkout "$current_branch" $GIT submodule update --recursive $GIT branch -d $tmp_branch exit $__st } trap cleanup 0 trap 'exit $?' 1 2 13 15 # We must build using sources for which --version reports the # just-released version number, not some string like 7.6.18-20761. # That version string propagates into all documentation. set -e $GIT checkout -b $tmp_branch v$version $GIT submodule update --recursive ./bootstrap srcdir=$(pwd) cd "$builddir" builddir=$(pwd) ./config.status --recheck ./config.status make make web-manual cd "$srcdir" set +e tmp=$(mktemp -d web-doc-update.XXXXXX) || exit 1 ( cd $tmp \ && $CVS -d $cvs_user@cvs.sv.gnu.org:/webcvs/$pkg co $pkg ) $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual ( cd $tmp/$pkg/manual # Add all the files. This is simpler than trying to add only the # new ones because of new directories # First add non empty dirs individually find . -name CVS -prune -o -type d \! -empty -print \ | $XARGS -n1 --no-run-if-empty -- $dryrun $CVS add -ko # Now add all files find . -name CVS -prune -o -type f -print \ | $XARGS --no-run-if-empty -- $dryrun $CVS add -ko # Report/Remove stale files # excluding doc server specific files like CVS/* and .symlinks if test -n "$rm_stale"; then echo 'Consider the --mirror option if all of the manual is generated,' >&2 echo 'which will run `cvs remove` to remove stale files.' >&2 fi { find . \( -name CVS -o -type f -name '.*' \) -prune -o -type f -print (cd "$builddir"/doc/manual/ && find . -type f -print | sed p) } | sort | uniq -u \ | $XARGS --no-run-if-empty -- ${rm_stale:-$dryrun} $CVS remove -f $dryrun $CVS ci -m $version ) # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "VERSION=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/git-version-gen0000755000000000000000000001763514076273517014462 00000000000000#!/bin/sh # Print a version string. scriptversion=2019-10-13.15; # UTC # Copyright (C) 2007-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 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, see . # This script is derived from GIT-VERSION-GEN from GIT: https://git-scm.com/. # It may be run two ways: # - from a git repository in which the "git describe" command below # produces useful output (thus requiring at least one signed tag) # - from a non-git-repo directory containing a .tarball-version file, which # presumes this script is invoked like "./git-version-gen .tarball-version". # In order to use intra-version strings in your project, you will need two # separate generated version string files: # # .tarball-version - present only in a distribution tarball, and not in # a checked-out repository. Created with contents that were learned at # the last time autoconf was run, and used by git-version-gen. Must not # be present in either $(srcdir) or $(builddir) for git-version-gen to # give accurate answers during normal development with a checked out tree, # but must be present in a tarball when there is no version control system. # Therefore, it cannot be used in any dependencies. GNUmakefile has # hooks to force a reconfigure at distribution time to get the value # correct, without penalizing normal development with extra reconfigures. # # .version - present in a checked-out repository and in a distribution # tarball. Usable in dependencies, particularly for files that don't # want to depend on config.h but do want to track version changes. # Delete this file prior to any autoconf run where you want to rebuild # files to pick up a version string change; and leave it stale to # minimize rebuild time after unrelated changes to configure sources. # # As with any generated file in a VC'd directory, you should add # /.version to .gitignore, so that you don't accidentally commit it. # .tarball-version is never generated in a VC'd directory, so needn't # be listed there. # # Use the following line in your configure.ac, so that $(VERSION) will # automatically be up-to-date each time configure is run (and note that # since configure.ac no longer includes a version string, Makefile rules # should not depend on configure.ac for version updates). # # AC_INIT([GNU project], # m4_esyscmd([build-aux/git-version-gen .tarball-version]), # [bug-project@example]) # # Then use the following lines in your Makefile.am, so that .version # will be present for dependencies, and so that .version and # .tarball-version will exist in distribution tarballs. # # EXTRA_DIST = $(top_srcdir)/.version # BUILT_SOURCES = $(top_srcdir)/.version # $(top_srcdir)/.version: # echo $(VERSION) > $@-t && mv $@-t $@ # dist-hook: # echo $(VERSION) > $(distdir)/.tarball-version me=$0 year=`expr "$scriptversion" : '\([^-]*\)'` version="git-version-gen $scriptversion Copyright (C) ${year} Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law." usage="\ Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT] Print a version string. Options: --prefix PREFIX prefix of git tags (default 'v') --fallback VERSION fallback version to use if \"git --version\" fails --help display this help and exit --version output version information and exit Running without arguments will suffice in most cases." prefix=v fallback= while test $# -gt 0; do case $1 in --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; --prefix) shift; prefix=${1?};; --fallback) shift; fallback=${1?};; -*) echo "$0: Unknown option '$1'." >&2 echo "$0: Try '--help' for more information." >&2 exit 1;; *) if test "x$tarball_version_file" = x; then tarball_version_file="$1" elif test "x$tag_sed_script" = x; then tag_sed_script="$1" else echo "$0: extra non-option argument '$1'." >&2 exit 1 fi;; esac shift done if test "x$tarball_version_file" = x; then echo "$usage" exit 1 fi tag_sed_script="${tag_sed_script:-s/x/x/}" nl=' ' # Avoid meddling by environment variable of the same name. v= v_from_git= # First see if there is a tarball-only version file. # then try "git describe", then default. if test -f $tarball_version_file then v=`cat $tarball_version_file` || v= case $v in *$nl*) v= ;; # reject multi-line output esac test "x$v" = x \ && echo "$0: WARNING: $tarball_version_file is damaged" 1>&2 fi if test "x$v" != x then : # use $v # Otherwise, if there is at least one git commit involving the working # directory, and "git describe" output looks sensible, use that to # derive a version string. elif test "`git log -1 --pretty=format:x . 2>&1`" = x \ && v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \ || git describe --abbrev=4 HEAD 2>/dev/null` \ && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \ && case $v in $prefix[0-9]*) ;; *) (exit 1) ;; esac then # Is this a new git that lists number of commits since the last # tag or the previous older version that did not? # Newer: v6.10-77-g0f8faeb # Older: v6.10-g0f8faeb vprefix=`expr "X$v" : 'X\(.*\)-g[^-]*$'` || vprefix=$v case $vprefix in *-*) : git describe is probably okay three part flavor ;; *) : git describe is older two part flavor # Recreate the number of commits and rewrite such that the # result is the same as if we were using the newer version # of git describe. vtag=`echo "$v" | sed 's/-.*//'` commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \ || { commit_list=failed; echo "$0: WARNING: git rev-list failed" 1>&2; } numcommits=`echo "$commit_list" | wc -l` v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; test "$commit_list" = failed && v=UNKNOWN ;; esac # Change the penultimate "-" to ".", for version-comparing tools. # Remove the "g" to save a byte. v=`echo "$v" | sed 's/-\([^-]*\)-g\([^-]*\)$/.\1-\2/'`; v_from_git=1 elif test "x$fallback" = x || git --version >/dev/null 2>&1; then v=UNKNOWN else v=$fallback fi v=`echo "$v" |sed "s/^$prefix//"` # Test whether to append the "-dirty" suffix only if the version # string we're using came from git. I.e., skip the test if it's "UNKNOWN" # or if it came from .tarball-version. if test "x$v_from_git" != x; then # Don't declare a version "dirty" merely because a timestamp has changed. git update-index --refresh > /dev/null 2>&1 dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty= case "$dirty" in '') ;; *) # Append the suffix only if there isn't one already. case $v in *-dirty) ;; *) v="$v-dirty" ;; esac ;; esac fi # Omit the trailing newline, so that m4_esyscmd can use the result directly. printf %s "$v" # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/ltmain.sh0000755000000000000000000117716714076273511013344 00000000000000#! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.6 Debian-2.4.6-15" package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # 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 3 of the License, or # (at your option) any later version. # As a special exception to the GNU General Public License, if you distribute # this file as part of a program or library that is built using GNU Libtool, # you may include this file under the same distribution terms that you use # for the rest of that program. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # func_quote_for_expand ARG # ------------------------- # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2015-10-07.11; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # 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 3 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd _G_rc_run_hooks=false case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do if eval $_G_hook '"$@"'; then # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift _G_rc_run_hooks=: fi done $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, you may remove/edit # any options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. In this case you also must return $EXIT_SUCCESS to let the # hook's caller know that it should pay attention to # '_result'. Returning $EXIT_FAILURE signalizes that # arguments are left untouched by the hook and therefore caller will ignore the # result variable. # # Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # No change in '$@' (ignored completely by this hook). There is # # no need to do the equivalent (but slower) action: # # func_quote_for_eval ${1+"$@"} # # my_options_prep_result=$func_quote_for_eval_result # false # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # args_changed=false # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: # args_changed=: # ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" # # is added back to "$@", we could need that later # # if $args_changed is true. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # # if $args_changed; then # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # fi # # $args_changed # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # false # } # func_add_hook func_validate_options my_option_validation # # You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options_finish [ARG]... # ---------------------------- # Finishing the option parse loop (call 'func_options' hooks ATM). func_options_finish () { $debug_cmd _G_func_options_finish_exit=false if func_run_hooks func_options ${1+"$@"}; then func_options_finish_result=$func_run_hooks_result _G_func_options_finish_exit=: fi $_G_func_options_finish_exit } # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd _G_rc_options=false for my_func in options_prep parse_options validate_options options_finish do if eval func_$my_func '${1+"$@"}'; then eval _G_res_var='$'"func_${my_func}_result" eval set dummy "$_G_res_var" ; shift _G_rc_options=: fi done # Save modified positional parameters for caller. As a top-level # options-parser function we always need to set the 'func_options_result' # variable (regardless the $_G_rc_options value). if $_G_rc_options; then func_options_result=$_G_res_var else func_quote_for_eval ${1+"$@"} func_options_result=$func_quote_for_eval_result fi $_G_rc_options } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= _G_rc_options_prep=false if func_run_hooks func_options_prep ${1+"$@"}; then _G_rc_options_prep=: # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result fi $_G_rc_options_prep } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= _G_rc_parse_options=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. if func_run_hooks func_parse_options ${1+"$@"}; then eval set dummy "$func_run_hooks_result"; shift _G_rc_parse_options=: fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then _G_rc_parse_options=: break fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) _G_rc_parse_options=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false break ;; esac $_G_match_parse_options && _G_rc_parse_options=: done if $_G_rc_parse_options; then # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result fi $_G_rc_parse_options } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd _G_rc_validate_options=false # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" if func_run_hooks func_validate_options ${1+"$@"}; then # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result _G_rc_validate_options=: fi # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE $_G_rc_validate_options } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.4.6-15 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= _G_rc_lt_options_prep=: # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; *) _G_rc_lt_options_prep=false ;; esac if $_G_rc_lt_options_prep; then # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result fi $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd _G_rc_lt_parse_options=false # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"} ; shift _G_match_lt_parse_options=false break ;; esac $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done if $_G_rc_lt_parse_options; then # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result fi $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type '$version_type'" ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: libidn-1.38/build-aux/do-release-commit-and-tag0000755000000000000000000001232714076273517016255 00000000000000#!/bin/sh # In a git/autoconf/automake-enabled project with a NEWS file and a version- # controlled .prev-version file, automate the procedure by which we record # the date, release-type and version string in the NEWS file. That commit # will serve to identify the release, so apply a signed tag to it as well. VERSION=2018-03-07.03 # UTC # Note: this is a bash script (could be zsh or dash) # Copyright (C) 2009-2021 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # Written by Jim Meyering ME=$(basename "$0") warn() { printf '%s: %s\n' "$ME" "$*" >&2; } die() { warn "$*"; exit 1; } help() { cat <. EOF exit } version() { year=$(echo "$VERSION" | sed 's/[^0-9].*//') cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit } ## ------ ## ## Main. ## ## ------ ## # Constants. noteworthy='* Noteworthy changes in release' noteworthy_stub="$noteworthy ?.? (????-??-??) [?]" # Variables. branch=$(git branch | sed -ne '/^\* /{s///;p;q;}') builddir=. while test $# != 0 do # Handle --option=value by splitting apart and putting back on argv. case $1 in --*=*) opt=$(echo "$1" | sed -e 's/=.*//') val=$(echo "$1" | sed -e 's/[^=]*=//') shift set dummy "$opt" "$val" "$@"; shift ;; esac case $1 in --help|--version) ${1#--};; --branch) shift; branch=$1; shift ;; -C|--builddir) shift; builddir=$1; shift ;; --*) die "unrecognized option: $1";; *) break;; esac done test $# = 2 \ || die "Usage: $ME [OPTION...] VERSION TYPE" ver=$1 type=$2 ## ---------------------- ## ## First, sanity checks. ## ## ---------------------- ## # Verify that $ver looks like a version number, and... echo "$ver"|grep -E '^[0-9][0-9.]*[0-9]$' > /dev/null \ || die "invalid version: $ver" prev_ver=$(cat .prev-version) \ || die 'failed to determine previous version number from .prev-version' # Verify that $ver is sensible (> .prev-version). case $(printf "$prev_ver\n$ver\n"|sort -V -u|tr '\n' ':') in "$prev_ver:$ver:") ;; *) die "invalid version: $ver (<= $prev_ver)";; esac case $type in alpha|beta|stable) ;; *) die "invalid release type: $type";; esac # No local modifications allowed. case $(git diff-index --name-only HEAD) in '') ;; *) die 'this tree is dirty; commit your changes first';; esac # Ensure the current branch name is correct: curr_br=$(git rev-parse --symbolic-full-name HEAD) test "$curr_br" = "refs/heads/$branch" || die not on branch $branch # Extract package name from Makefile. Makefile=$builddir/Makefile pkg=$(sed -n 's/^PACKAGE = \(.*\)/\1/p' "$Makefile") \ || die "failed to determine package name from $Makefile" # Check that line 3 of NEWS is the stub line about to be replaced. test "$(sed -n 3p NEWS)" = "$noteworthy_stub" \ || die "line 3 of NEWS must be exactly '$noteworthy_stub'" ## --------------- ## ## Then, changes. ## ## --------------- ## # Update NEWS to have today's date, plus desired version number and $type. perl -MPOSIX -ni -e 'my $today = strftime "%F", localtime time;' \ -e 'my ($type, $ver) = qw('"$type $ver"');' \ -e 'my $pfx = "'"$noteworthy"'";' \ -e 'print $.==3 ? "$pfx $ver ($today) [$type]\n" : $_' \ NEWS || die 'failed to update NEWS' printf "version $ver\n\n* NEWS: Record release date.\n" \ | git commit -F - -a || die 'git commit failed' git tag -s -m "$pkg $ver" v$ver HEAD || die 'git tag failed' # Local variables: # indent-tabs-mode: nil # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "VERSION=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: " # UTC" # End: libidn-1.38/build-aux/update-copyright0000755000000000000000000002513514076273520014721 00000000000000#!/bin/sh #! -*-perl-*- # Update an FSF copyright year list to include the current year. # Copyright (C) 2009-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, 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, see . # # Written by Jim Meyering and Joel E. Denny # This script updates an FSF copyright year list to include the current year. # Usage: update-copyright [FILE...] # # The arguments to this script should be names of files that contain # copyright statements to be updated. The copyright holder's name # defaults to "Free Software Foundation, Inc." but may be changed to # any other name by using the "UPDATE_COPYRIGHT_HOLDER" environment # variable. # # For example, you might wish to use the update-copyright target rule # in maint.mk from gnulib's maintainer-makefile module. # # Iff a copyright statement is recognized in a file and the final # year is not the current year, then the statement is updated for the # new year and it is reformatted to: # # 1. Fit within 72 columns. # 2. Convert 2-digit years to 4-digit years by prepending "19". # 3. Expand copyright year intervals. (See "Environment variables" # below.) # # A warning is printed for every file for which no copyright # statement is recognized. # # Each file's copyright statement must be formatted correctly in # order to be recognized. For example, each of these is fine: # # Copyright @copyright{} 1990-2005, 2007-2009 Free Software # Foundation, Inc. # # # Copyright (C) 1990-2005, 2007-2009 Free Software # # Foundation, Inc. # # /* # * Copyright © 90,2005,2007-2009 # * Free Software Foundation, Inc. # */ # # However, the following format is not recognized because the line # prefix changes after the first line: # # ## Copyright (C) 1990-2005, 2007-2009 Free Software # # Foundation, Inc. # # However, any correctly formatted copyright statement following # a non-matching copyright statements would be recognized. # # The exact conditions that a file's copyright statement must meet # to be recognized are: # # 1. It is the first copyright statement that meets all of the # following conditions. Subsequent copyright statements are # ignored. # 2. Its format is "Copyright (C)", then a list of copyright years, # and then the name of the copyright holder. # 3. The "(C)" takes one of the following forms or is omitted # entirely: # # A. (C) # B. (c) # C. @copyright{} # D. © # E. © # # 4. The "Copyright" appears at the beginning of a line, except that it # may be prefixed by any sequence (e.g., a comment) of no more than # 5 characters -- including white space. # 5. Iff such a prefix is present, the same prefix appears at the # beginning of each remaining line within the FSF copyright # statement. There is one exception in order to support C-style # comments: if the first line's prefix contains nothing but # whitespace surrounding a "/*", then the prefix for all subsequent # lines is the same as the first line's prefix except with each of # "/" and possibly "*" replaced by a " ". The replacement of "*" # by " " is consistent throughout all subsequent lines. # 6. Blank lines, even if preceded by the prefix, do not appear # within the FSF copyright statement. # 7. Each copyright year is 2 or 4 digits, and years are separated by # commas, "-", or "--". Whitespace may appear after commas. # # Environment variables: # # 1. If UPDATE_COPYRIGHT_FORCE=1, a recognized FSF copyright statement # is reformatted even if it does not need updating for the new # year. If unset or set to 0, only updated FSF copyright # statements are reformatted. # 2. If UPDATE_COPYRIGHT_USE_INTERVALS=1, every series of consecutive # copyright years (such as 90, 1991, 1992-2007, 2008) in a # reformatted FSF copyright statement is collapsed to a single # interval (such as 1990-2008). If unset or set to 0, all existing # copyright year intervals in a reformatted FSF copyright statement # are expanded instead. # If UPDATE_COPYRIGHT_USE_INTERVALS=2, convert a sequence with gaps # to the minimal containing range. For example, convert # 2000, 2004-2007, 2009 to 2000-2009. # 3. For testing purposes, you can set the assumed current year in # UPDATE_COPYRIGHT_YEAR. # 4. The default maximum line length for a copyright line is 72. # Set UPDATE_COPYRIGHT_MAX_LINE_LENGTH to use a different length. # 5. Set UPDATE_COPYRIGHT_HOLDER if the copyright holder is other # than "Free Software Foundation, Inc.". # This is a prologue that allows to run a perl script as an executable # on systems that are compliant to a POSIX version before POSIX:2017. # On such systems, the usual invocation of an executable through execlp() # or execvp() fails with ENOEXEC if it is a script that does not start # with a #! line. The script interpreter mentioned in the #! line has # to be /bin/sh, because on GuixSD systems that is the only program that # has a fixed file name. The second line is essential for perl and is # also useful for editing this file in Emacs. The next two lines below # are valid code in both sh and perl. When executed by sh, they re-execute # the script through the perl program found in $PATH. The '-x' option # is essential as well; without it, perl would re-execute the script # through /bin/sh. When executed by perl, the next two lines are a no-op. eval 'exec perl -wSx -0777 -pi "$0" "$@"' if 0; my $VERSION = '2020-04-04.15:07'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. use strict; use warnings; my $copyright_re = 'Copyright'; my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|©|©)'; my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER}; $holder ||= 'Free Software Foundation, Inc.'; my $prefix_max = 5; my $margin = $ENV{UPDATE_COPYRIGHT_MAX_LINE_LENGTH}; !$margin || $margin !~ m/^\d+$/ and $margin = 72; my $tab_width = 8; my $this_year = $ENV{UPDATE_COPYRIGHT_YEAR}; if (!$this_year || $this_year !~ m/^\d{4}$/) { my ($sec, $min, $hour, $mday, $month, $year) = localtime (time ()); $this_year = $year + 1900; } # Unless the file consistently uses "\r\n" as the EOL, use "\n" instead. my $eol = /(?:^|[^\r])\n/ ? "\n" : "\r\n"; my $leading; my $prefix; my $ws_re; my $stmt_re; while (/(^|\n)(.{0,$prefix_max})$copyright_re/g) { $leading = "$1$2"; $prefix = $2; if ($prefix =~ /^(\s*\/)\*(\s*)$/) { $prefix =~ s,/, ,; my $prefix_ws = $prefix; $prefix_ws =~ s/\*/ /; # Only whitespace. if (/\G(?:[^*\n]|\*[^\/\n])*\*?\n$prefix_ws/) { $prefix = $prefix_ws; } } $ws_re = '[ \t\r\f]'; # \s without \n $ws_re = "(?:$ws_re*(?:$ws_re|\\n" . quotemeta($prefix) . ")$ws_re*)"; my $holder_re = $holder; $holder_re =~ s/\s/$ws_re/g; my $stmt_remainder_re = "(?:$ws_re$circle_c_re)?" . "$ws_re(?:(?:\\d\\d)?\\d\\d(?:,$ws_re?|--?))*" . "((?:\\d\\d)?\\d\\d)$ws_re$holder_re"; if (/\G$stmt_remainder_re/) { $stmt_re = quotemeta($leading) . "($copyright_re$stmt_remainder_re)"; last; } } if (defined $stmt_re) { /$stmt_re/ or die; # Should never die. my $stmt = $1; my $final_year_orig = $2; # Handle two-digit year numbers like "98" and "99". my $final_year = $final_year_orig; $final_year <= 99 and $final_year += 1900; if ($final_year != $this_year) { # Update the year. $stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/; } if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'}) { # Normalize all whitespace including newline-prefix sequences. $stmt =~ s/$ws_re/ /g; # Put spaces after commas. $stmt =~ s/, ?/, /g; # Convert 2-digit to 4-digit years. $stmt =~ s/(\b\d\d\b)/19$1/g; # Make the use of intervals consistent. if (!$ENV{UPDATE_COPYRIGHT_USE_INTERVALS}) { $stmt =~ s/(\d{4})--?(\d{4})/join(', ', $1..$2)/eg; } else { my $ndash = $ARGV =~ /\.tex(i(nfo)?)?$/ ? "--" : "-"; $stmt =~ s/ (\d{4}) (?: (,\ |--?) ((??{ if ($2 ne ', ') { '\d{4}'; } elsif (!$3) { $1 + 1; } else { $3 + 1; } })) )+ /$1$ndash$3/gx; # When it's 2, emit a single range encompassing all year numbers. $ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2 and $stmt =~ s/\b(\d{4})\b.*\b(\d{4})\b/$1$ndash$2/; } # Format within margin. my $stmt_wrapped; my $text_margin = $margin - length($prefix); if ($prefix =~ /^(\t+)/) { $text_margin -= length($1) * ($tab_width - 1); } while (length $stmt) { if (($stmt =~ s/^(.{1,$text_margin})(?: |$)//) || ($stmt =~ s/^([\S]+)(?: |$)//)) { my $line = $1; $stmt_wrapped .= $stmt_wrapped ? "$eol$prefix" : $leading; $stmt_wrapped .= $line; } else { # Should be unreachable, but we don't want an infinite # loop if it can be reached. die; } } # Replace the old copyright statement. s/$stmt_re/$stmt_wrapped/; } } else { print STDERR "$ARGV: warning: copyright statement not found\n"; } # Hey Emacs! # Local variables: # coding: utf-8 # mode: perl # indent-tabs-mode: nil # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-line-limit: 200 # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d.%02H:%02M" # time-stamp-time-zone: "UTC0" # time-stamp-end: "'; # UTC" # End: libidn-1.38/build-aux/texinfo.tex0000644000000000000000000133272614075261466013716 00000000000000% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2021-04-25.21} % % Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc. % % This texinfo.tex file 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 3 of the % License, or (at your option) any later version. % % This texinfo.tex file 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, see . % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without % restriction. This Exception is an additional permission under section 7 % of the GNU General Public License, version 3 ("GPLv3"). % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % https://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or % https://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or % https://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. % % The GNU Texinfo home page is https://www.gnu.org/software/texinfo. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} % LaTeX's \typeout. This ensures that the messages it is used for % are identical in format to the corresponding ones from latex/pdflatex. \def\typeout{\immediate\write17}% \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexsp=\sp \let\ptexstar=\* \let\ptexsup=\sup \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{l.\the\inputlineno:\space} \fi % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi % Give the space character the catcode for a space. \def\spaceisspace{\catcode`\ =10\relax} % Likewise for ^^M, the end of line character. \def\endlineisspace{\catcode13=10\relax} \chardef\dashChar = `\- \chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make % some effort to order the tracing commands to reduce output in the log % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \def\loggingall{% \tracingstats2 \tracingpages1 \tracinglostchars2 % 2 gives us more in etex \tracingparagraphs1 \tracingoutput1 \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % @errormsg{MSG}. Do the index-like expansions on MSG, but if things % aren't perfect, it's not the end of the world, being an error message, % after all. % \def\errormsg{\begingroup \indexnofonts \doerrormsg} \def\doerrormsg#1{\errmessage{#1}} % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi\fi} \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} % Output routine % % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt } \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. % \domark is called twice inside \chapmacro, to add one % mark before the section break, and one after. % In the second call \prevchapterdefs is the same as \currentchapterdefs, % and \prevsectiondefs is the same as \currentsectiondefs. % Then if the page is not broken at the mark, some of the previous % section appears on the page, and we can get the name of this section % from \firstmark for @everyheadingmarks top. % @everyheadingmarks bottom uses \botmark. % % See page 260 of The TeXbook. \def\domark{% \toks0=\expandafter{\currentchapterdefs}% \toks2=\expandafter{\currentsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\currentcolordefs}% \mark{% \the\toks0 \the\toks2 % 0: marks for @everyheadingmarks top \noexpand\or \the\toks4 \the\toks6 % 1: for @everyheadingmarks bottom \noexpand\else \the\toks8 % 2: color marks }% } % \gettopheadingmarks, \getbottomheadingmarks, % \getcolormarks - extract needed part of mark. % % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\the\savedtopmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\the\savedtopmark\fi} % Avoid "undefined control sequence" errors. \def\currentchapterdefs{} \def\currentsectiondefs{} \def\currentsection{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\currentcolordefs{} % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\txipagewidth \newdimen\txipageheight % Main output routine. % \chardef\PAGE = 255 \newtoks\defaultoutput \defaultoutput = {\savetopmark\onepageout{\pagecontents\PAGE}} \output=\expandafter{\the\defaultoutput} \newbox\headlinebox \newbox\footlinebox % When outputting the double column layout for indices, an output routine % is run several times, which hides the original value of \topmark. This % can lead to a page heading being output and duplicating the chapter heading % of the index. Hence, save the contents of \topmark at the beginning of % the output routine. The saved contents are valid until we actually % \shipout a page. % % (We used to run a short output routine to actually set \topmark and % \firstmark to the right values, but if this was called with an empty page % containing whatsits for writing index entries, the whatsits would be thrown % away and the index auxiliary file would remain empty.) % \newtoks\savedtopmark \newif\iftopmarksaved \topmarksavedtrue \def\savetopmark{% \iftopmarksaved\else \global\savedtopmark=\expandafter{\topmark}% \global\topmarksavedtrue \fi } % \onepageout takes a vbox as an argument. % \shipout a vbox for a single page, adding an optional header, footer % and footnote. This also causes index entries for this page to be written % to the auxiliary files. % \def\onepageout#1{% \hoffset=\normaloffset % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % \checkchapterpage % % Retrieve the information for the headings from the marks in the page, % and call Plain TeX's \makeheadline and \makefootline, which use the % values in \headline and \footline. % % Common context changes for both heading and footing. % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \def\commonheadfootline{\let\hsize=\txipagewidth \texinfochars} % \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \global\setbox\headlinebox = \vbox{\commonheadfootline \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \global\setbox\footlinebox = \vbox{\commonheadfootline \makefootline}% % {% % Set context for writing to auxiliary files like index files. % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \atdummies % don't expand commands in the output. \turnoffactive \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \unvbox\footlinebox \fi % }% }% \global\topmarksavedfalse \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen % Main part of page, including any footnotes \def\pagebody#1{\vbox to\txipageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Check if we are on the first page of a chapter. Used for printing headings. \newif\ifchapterpage \def\checkchapterpage{% % Get the chapter that was current at the end of the last page \ifcase1\the\savedtopmark\fi \let\prevchaptername\thischaptername % \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \let\curchaptername\thischaptername % \ifx\curchaptername\prevchaptername \chapterpagefalse \else \chapterpagetrue \fi } % Argument parsing % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % For example, \def\foo{\parsearg\fooxxx}. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. Pass the result on to % \argcheckspaces. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef - define a command taking an argument on the line % % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } \def\doparseargdef#1#2{% \def#2{\parsearg#1}% \def#1##1% } % Several utility definitions with active space: { \obeyspaces \gdef\obeyedspace{ } % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % \gdef\sepspaces{\obeyspaces\let =\tie} % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\leavevmode \penalty \@M \ ). \gdef\unsepspaces{\let =\space} } \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} % Define the framework for environments in texinfo.tex. It's used like this: % % \envdef\foo{...} % \def\Efoo{...} % % It's the responsibility of \envdef to insert \begingroup before the % actual body; @end closes the group after calling \Efoo. \envdef also % defines \thisenv, so the current environment is known; @end checks % whether the environment name matches. The \checkenv macro can also be % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they % are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty outside of any environment% \else in environment \expandafter\string#1% \fi } % @end foo calls \checkenv and executes the definition of \Efoo. \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\unskip\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. \def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. % \def\onword{on} \def\offword{off} % \parseargdef\frenchspacing{% \def\temp{#1}% \ifx\temp\onword \plainfrenchspacing \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % % Another complication is that the group might be very large. This can % cause the glue on the previous page to be unduly stretched, because it % does not have much material. In this case, it's better to add an % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). % \newbox\groupbox \def\vfilllimit{0.7} % \envdef\group{% \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi \startsavinginserts % \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % The \vtop produces a box with normal height and large depth; thus, TeX puts % \baselineskip glue before it, and (when the next line of text is done) % \lineskip glue after it. Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% % To get correct interline space between the last line of the group % and the first line afterwards, we have to propagate \prevdepth. \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. \addgroupbox \prevdepth = \dimen1 \checkinserts } \def\addgroupbox{ % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). \dimen2 = \txipageheight \advance\dimen2 by -\pagetotal % if the group doesn't fit on the current page, and it's a big big % group, force a page break. \ifdim \dimen0 > \dimen2 \ifdim \pagetotal < \vfilllimit\txipageheight \page \fi \fi \box\groupbox } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break (and is undocumented). \let\br = \par % @page forces the start of a new page. % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion % class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} % \def\doinmargin#1#2{\strut\vadjust{% \nobreak \kern-\strutdepth \vtop to \strutdepth{% \baselineskip=\strutdepth \vss % if you have multiple lines of stuff to put here, you'll need to % make the vbox yourself of the appropriate size. \ifx#1l% \llap{\ignorespaces #2\hskip\inmarginspacing}% \else \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% \fi \null }% }} \def\inleftmargin{\doinmargin l} \def\inrightmargin{\doinmargin r} % % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). % \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% \else \def\lefttext{#1}% have only one text \def\righttext{#1}% \fi % \ifodd\pageno \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin \else \def\temp{\inleftmargin\lefttext}% \fi \temp } % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} % \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\centersub\centerH \else \let\centersub\centerV \fi \centersub{\hfil \ignorespaces#1\unskip \hfil}% \let\centersub\relax % don't let the definition persist, just in case } \def\centerH#1{{% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }} % \newcount\centerpenalty \def\centerV#1{% % The idea here is the same as in \startdefun, \cartouche, etc.: if % @center is the first thing after a section heading, we need to wipe % out the negative parskip inserted by \sectionheading, but still % prevent a page break here. \centerpenalty = \lastpenalty \ifnum\centerpenalty>10000 \vskip\parskip \fi \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi \line{\kern\leftskip #1\kern\rightskip}% } % @sp n outputs n lines of vertical space % \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment \def\c{\begingroup \catcode`\^^M=\active% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \cxxx} {\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}} % \let\comment\c % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % NCHARS can also be the word `asis' or `none'. % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @firstparagraphindent WORD % If WORD is `none', then suppress indentation of the first paragraph % after a section heading. If WORD is `insert', then do indent at such % paragraphs. % % The paragraph indentation is suppressed or not by calling % \suppressfirstparagraphindent, which the sectioning commands do. % We switch the definition of this back and forth according to WORD. % By default, we suppress indentation. % \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} \def\insertword{insert} % \parseargdef\firstparagraphindent{% \def\temp{#1}% \ifx\temp\noneword \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent \else\ifx\temp\insertword \let\suppressfirstparagraphindent = \relax \else \errhelp = \EMsimple \errmessage{Unknown @firstparagraphindent option `\temp'}% \fi\fi } % Here is how we actually suppress indentation. Redefine \everypar to % \kern backwards by \parindent, and then reset itself to empty. % % We also make \indent itself not actually do anything until the next % paragraph. % \gdef\dosuppressfirstparagraphindent{% \gdef\indent {\restorefirstparagraphindent \indent}% \gdef\noindent{\restorefirstparagraphindent \noindent}% \global\everypar = {\kern -\parindent \restorefirstparagraphindent}% } % \gdef\restorefirstparagraphindent{% \global\let\indent = \ptexindent \global\let\noindent = \ptexnoindent \global\everypar = {}% } % leave vertical mode without cancelling any first paragraph indent \gdef\imageindent{% \toks0=\everypar \everypar={}% \ptexnoindent \global\everypar=\toks0 } % @refill is a no-op. \let\refill=\relax % @setfilename INFO-FILENAME - ignored \let\setfilename=\comment % @bye. \outer\def\bye{\chappager\pagelabels\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newbox\boxB \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % % For LuaTeX % \newif\iftxiuseunicodedestname \txiuseunicodedestnamefalse % For pdfTeX etc. \ifx\luatexversion\thisisundefined \else % Use Unicode destination names \txiuseunicodedestnametrue % Escape PDF strings with converting UTF-16 from UTF-8 \begingroup \catcode`\%=12 \directlua{ function UTF16oct(str) tex.sprint(string.char(0x5c) .. '376' .. string.char(0x5c) .. '377') for c in string.utfvalues(str) do if c < 0x10000 then tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o', math.floor(c / 256), math.floor(c % 256))) else c = c - 0x10000 local c_hi = c / 1024 + 0xd800 local c_lo = c % 1024 + 0xdc00 tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o', math.floor(c_hi / 256), math.floor(c_hi % 256), math.floor(c_lo / 256), math.floor(c_lo % 256))) end end end } \endgroup \def\pdfescapestrutfsixteen#1{\directlua{UTF16oct('\luaescapestring{#1}')}} % Escape PDF strings without converting \begingroup \directlua{ function PDFescstr(str) for c in string.bytes(str) do if c <= 0x20 or c >= 0x80 or c == 0x28 or c == 0x29 or c == 0x5c then tex.sprint(-2, string.format(string.char(0x5c) .. string.char(0x25) .. '03o', c)) else tex.sprint(-2, string.char(c)) end end end } % The -2 in the arguments here gives all the input to TeX catcode 12 % (other) or 10 (space), preventing undefined control sequence errors. See % https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html % \endgroup \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}} \ifnum\luatexversion>84 % For LuaTeX >= 0.85 \def\pdfdest{\pdfextension dest} \let\pdfoutput\outputmode \def\pdfliteral{\pdfextension literal} \def\pdfcatalog{\pdfextension catalog} \def\pdftexversion{\numexpr\pdffeedback version\relax} \let\pdfximage\saveimageresource \let\pdfrefximage\useimageresource \let\pdflastximage\lastsavedimageresourceindex \def\pdfendlink{\pdfextension endlink\relax} \def\pdfoutline{\pdfextension outline} \def\pdfstartlink{\pdfextension startlink} \def\pdffontattr{\pdfextension fontattr} \def\pdfobj{\pdfextension obj} \def\pdflastobj{\numexpr\pdffeedback lastobj\relax} \let\pdfpagewidth\pagewidth \let\pdfpageheight\pageheight \edef\pdfhorigin{\pdfvariable horigin} \edef\pdfvorigin{\pdfvariable vorigin} \fi \fi % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 % can be set). So we test for \relax and 0 as well as being undefined. \ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi \newif\ifpdforxetex \pdforxetexfalse \ifpdf \pdforxetextrue \fi \ifx\XeTeXrevision\thisisundefined\else \pdforxetextrue \fi % Output page labels information. % See PDF reference v.1.7 p.594, section 8.3.1. \ifpdf \def\pagelabels{% \def\title{0 << /P (T-) /S /D >>}% \edef\roman{\the\romancount << /S /r >>}% \edef\arabic{\the\arabiccount << /S /D >>}% % % Page label ranges must be increasing. Remove any duplicates. % (There is a slight chance of this being wrong if e.g. there is % a @contents but no @titlepage, etc.) % \ifnum\romancount=0 \def\roman{}\fi \ifnum\arabiccount=0 \def\title{}% \else \ifnum\romancount=\arabiccount \def\roman{}\fi \fi % \ifnum\romancount<\arabiccount \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax \else \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax \fi } \else \let\pagelabels\relax \fi \newcount\pagecount \pagecount=0 \newcount\romancount \romancount=0 \newcount\arabiccount \arabiccount=0 \ifpdf \let\ptxadvancepageno\advancepageno \def\advancepageno{% \ptxadvancepageno\global\advance\pagecount by 1 } \fi % PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and % related messages. The final outcome is that it is up to the TeX user % to double the backslashes and otherwise make the string valid, so % that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to % do this reliably, so we use it. % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% \ifx\pdfescapestring\thisisundefined % No primitive available; should we give a warning or log? % Many times it won't matter. \xdef#1{#1}% \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#1}}% \fi } \def\txiescapepdfutfsixteen#1{% \ifx\pdfescapestrutfsixteen\thisisundefined % No UTF-16 converting macro available. \txiescapepdf{#1}% \else \xdef#1{\pdfescapestrutfsixteen{#1}}% \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros using ideas from pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. The dark red here is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. We use % black by default, though. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % rg sets the color for filling (usual text, etc.); % RG sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\currentcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\pdfimgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \pdfimagewidth \fi \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} % \def\setpdfdestname#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \makevalueexpandable \turnoffactive \iftxiuseunicodedestname \ifx \declaredencoding \latone % Pass through Latin-1 characters. % LuaTeX with byte wise I/O converts Latin-1 characters to Unicode. \else \ifx \declaredencoding \utfeight % Pass through Unicode characters. \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \fi \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \def\pdfdestname{#1}% \txiescapepdf\pdfdestname }} % \def\setpdfoutlinetext#1{{% \indexnofonts \makevalueexpandable \turnoffactive \ifx \declaredencoding \latone % The PDF format can use an extended form of Latin-1 in bookmark % strings. See Appendix D of the PDF Reference, Sixth Edition, for % the "PDFDocEncoding". \passthroughcharstrue % Pass through Latin-1 characters. % LuaTeX: Convert to Unicode % pdfTeX: Use Latin-1 as PDFDocEncoding \def\pdfoutlinetext{#1}% \else \ifx \declaredencoding \utfeight \ifx\luatexversion\thisisundefined % For pdfTeX with UTF-8. % TODO: the PDF format can use UTF-16 in bookmark strings, % but the code for this isn't done yet. % Use ASCII approximations. \passthroughcharsfalse \def\pdfoutlinetext{#1}% \else % For LuaTeX with UTF-8. % Pass through Unicode characters for title texts. \passthroughcharstrue \def\pdfoutlinetext{#1}% \fi \else % For non-Latin-1 or non-UTF-8 encodings. % Use ASCII approximations. \passthroughcharsfalse \def\pdfoutlinetext{#1}% \fi \fi % LuaTeX: Convert to UTF-16 % pdfTeX: Use Latin-1 as PDFDocEncoding \txiescapepdfutfsixteen\pdfoutlinetext }} % \def\pdfmkdest#1{% \setpdfdestname{#1}% \safewhatsit{\pdfdest name{\pdfdestname} xyz}% } % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use black for everything. \def\urlcolor{\rgbBlack} \def\linkcolor{\rgbBlack} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \setpdfoutlinetext{#1} \setpdfdestname{#3} \ifx\pdfdestname\empty \def\pdfdestname{#4}% \fi % \pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Read toc silently, to get counts of subentries for \pdfoutline. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% \def\thissubsecnum{##2}% }% \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% \def\thischapnum{0}% \def\thissecnum{0}% \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. \def\appentry{\numchapentry}% \def\appsecentry{\numsecentry}% \def\appsubsecentry{\numsubsecentry}% \def\appsubsubsecentry{\numsubsubsecentry}% \def\unnchapentry{\numchapentry}% \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of % subentries, which we calculated on our first read of the .toc above. % % We use the node names as the destinations. % % Currently we prefix the section name with the section number % for chapter and appendix headings only in order to avoid too much % horizontal space being required in the PDF viewer. \def\numchapentry##1##2##3##4{% \dopdfoutline{##2 ##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\unnchapentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% count is always zero \dopdfoutline{##1}{}{##3}{##4}}% % % PDF outlines are displayed using system fonts, instead of % document fonts. Therefore we cannot use special characters, % since the encoding is unknown. For example, the eogonek from % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % % TODO this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Too % much work for too little return. Just use the ASCII equivalents % we use for the index sort strings. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may % be a simple number, or a list of numbers in the case of an index % entry. \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput % % For XeTeX % \ifx\XeTeXrevision\thisisundefined \else % % XeTeX version check % \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1 % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307. % It can use the `dvipdfmx:config' special (from TeX Live SVN r40941). % For avoiding PDF destination name replacement, we use this special % instead of xdvipdfmx's command line option `-C 0x0010'. \special{dvipdfmx:config C 0x0010} % XeTeX 0.99995+ comes with xdvipdfmx 20160307+. % It can handle Unicode destination names for PDF. \txiuseunicodedestnametrue \else % XeTeX < 0.99996 (TeX Live < 2016) cannot use the % `dvipdfmx:config' special. % So for avoiding PDF destination name replacement, % xdvipdfmx's command line option `-C 0x0010' is necessary. % % XeTeX < 0.99995 can not handle Unicode destination names for PDF % because xdvipdfmx 20150315 has a UTF-16 conversion issue. % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). \txiuseunicodedestnamefalse \fi % % Color support % \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % \def\pdfsetcolor#1{\special{pdf:scolor [#1]}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\currentcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % PDF outline support % % Emulate pdfTeX primitive \def\pdfdest name#1 xyz{% \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}% } % \def\setpdfdestname#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \makevalueexpandable \turnoffactive \iftxiuseunicodedestname % Pass through Unicode characters. \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \def\pdfdestname{#1}% \txiescapepdf\pdfdestname }} % \def\setpdfoutlinetext#1{{% \turnoffactive % Always use Unicode characters in title texts. \def\pdfoutlinetext{#1}% % For XeTeX, xdvipdfmx converts to UTF-16. % So we do not convert. \txiescapepdf\pdfoutlinetext }} % \def\pdfmkdest#1{% \setpdfdestname{#1}% \safewhatsit{\pdfdest name{\pdfdestname} xyz}% } % % by default, use black for everything. \def\urlcolor{\rgbBlack} \def\linkcolor{\rgbBlack} \def\endlink{\setcolor{\maincolor}\pdfendlink} % \def\dopdfoutline#1#2#3#4{% \setpdfoutlinetext{#1} \setpdfdestname{#3} \ifx\pdfdestname\empty \def\pdfdestname{#4}% \fi % \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A << /S /GoTo /D (\pdfdestname) >> >> }% } % \def\pdfmakeoutlines{% \begingroup % % For XeTeX, counts of subentries are not necessary. % Therefore, we read toc only once. % % We use node names as destinations. % % Currently we prefix the section name with the section number % for chapter and appendix headings only in order to avoid too much % horizontal space being required in the PDF viewer. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \dopdfoutline{##2 ##1}{1}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{2}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{3}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% \dopdfoutline{##1}{4}{##3}{##4}}% % \let\appentry\numchapentry% \let\appsecentry\numsecentry% \let\appsubsecentry\numsubsecentry% \let\appsubsubsecentry\numsubsubsecentry% \def\unnchapentry##1##2##3##4{% \dopdfoutline{##1}{1}{##3}{##4}}% \let\unnsecentry\numsecentry% \let\unnsubsecentry\numsubsecentry% \let\unnsubsubsecentry\numsubsubsecentry% % % For XeTeX, xdvipdfmx converts strings to UTF-16. % Therefore, the encoding and the language may not be considered. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] \special{pdf:docview << /PageMode /UseOutlines >> } % ``\special{pdf:tounicode ...}'' is not necessary % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it. % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315, % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings. % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \special{pdf:bann << /Border [0 0 0] /Subtype /Link /A << /S /URI /URI (#1) >> >>}% \endgroup} \def\endlink{\setcolor{\maincolor}\special{pdf:eann}} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} % % % @image support % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\doxeteximage#1#2#3{% \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % XeTeX (and the PDF format) supports .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\xeteximgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errmessage{Could not find image file #1 for XeTeX}% \else \gdef\xeteximgext{JPG}% \fi \else \gdef\xeteximgext{jpeg}% \fi \else \gdef\xeteximgext{jpg}% \fi \else \gdef\xeteximgext{png}% \fi \else \gdef\xeteximgext{PDF}% \fi \else \gdef\xeteximgext{pdf}% \fi \closein 1 \endgroup % % Putting an \hbox around the image can prevent an over-long line % after the image. \hbox\bgroup \def\xetexpdfext{pdf}% \ifx\xeteximgext\xetexpdfext \XeTeXpdffile "#1".\xeteximgext "" \else \def\xetexpdfext{PDF}% \ifx\xeteximgext\xetexpdfext \XeTeXpdffile "#1".\xeteximgext "" \else \XeTeXpicfile "#1".\xeteximgext "" \fi \fi \ifdim \wd0 >0pt width \xeteximagewidth \fi \ifdim \wd2 >0pt height \xeteximageheight \fi \relax \egroup } \fi % \message{fonts,} % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named \fontprefix#2. % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). % Example: % #1 = \textrm % #2 = \rmshape % #3 = 10 % #4 = \mainmagstep % #5 = OT1 % \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % % (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} % Definitions for a main text size of 11pt. (The default in Texinfo.) % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defsl\slshape{10}{\magstep1}{OT1} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\ttfont=\deftt \let\bffont = \defbf \let\ttslfont=\defttsl \let\slfont=\defsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for math mode superscripts (7pt). \def\sevennominalsize{7pt} \setfont\sevenrm\rmshape{7}{1000}{OT1} \setfont\seventt\ttshape{10}{700}{OT1TT} \setfont\sevenbf\bfshape{10}{700}{OT1} \setfont\sevenit\itshape{7}{1000}{OT1IT} \setfont\sevensl\slshape{10}{700}{OT1} \setfont\sevensf\sfshape{10}{700}{OT1} \setfont\sevensc\scshape{10}{700}{OT1} \setfont\seventtsl\ttslshape{10}{700}{OT1TT} \font\seveni=cmmi7 \font\sevensy=cmsy7 \def\sevenecsize{0700} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secrmnotbold\rmshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acronym in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm } % end of 11pt text font size definitions, \definetextfontsizexi % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defsl\slshape{10}{\magstephalf}{OT1} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\ttfont=\deftt \let\bffont = \defbf \let\slfont=\defsl \let\ttslfont=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for math mode superscripts (7pt). \def\sevennominalsize{7pt} \setfont\sevenrm\rmshape{7}{1000}{OT1} \setfont\seventt\ttshape{10}{700}{OT1TT} \setfont\sevenbf\bfshape{10}{700}{OT1} \setfont\sevenit\itshape{7}{1000}{OT1IT} \setfont\sevensl\slshape{10}{700}{OT1} \setfont\sevensf\sfshape{10}{700}{OT1} \setfont\sevensc\scshape{10}{700}{OT1} \setfont\seventtsl\ttslshape{10}{700}{OT1TT} \font\seveni=cmmi7 \font\sevensy=cmsy7 \def\sevenecsize{0700} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acronym in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} \divide\parskip by 2 % reduce space between paragraphs \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm } % end of 10pt text font size definitions, \definetextfontsizex % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xiword{11} \def\xword{10} \def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % % Change the current font style to #1, remembering it in \curfontstyle. % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in % italics, not bold italics. % \def\setfontstyle#1{% \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. \csname #1font\endcsname % change the current font } \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}}\def\ttstylename{tt} % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam \def\sf{\fam=\sffam \setfontstyle{sf}} % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. % We don't bother to reset \scriptscriptfont; awaiting user need. % \def\resetmathfonts{% \textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont \textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont \textfont\ttfam=\ttfont \textfont\sffam=\sffont % % Fonts for superscript. Note that the 7pt fonts are used regardless % of the current font size. \scriptfont0=\sevenrm \scriptfont1=\seveni \scriptfont2=\sevensy \scriptfont\itfam=\sevenit \scriptfont\slfam=\sevensl \scriptfont\bffam=\sevenbf \scriptfont\ttfam=\seventt \scriptfont\sffam=\sevensf } % % The font-changing commands (all called \...fonts) redefine the meanings % of \STYLEfont, instead of just \STYLE. We do this because \STYLE needs % to also set the current \fam for math mode. Our \STYLE (e.g., \rm) % commands hardwire \STYLEfont to set the current font. % % The fonts used for \ifont are for "math italics" (\itfont is for italics % in regular text). \syfont is also used in math mode only. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used % in, e.g., the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\assignfonts#1{% \expandafter\let\expandafter\rmfont\csname #1rm\endcsname \expandafter\let\expandafter\itfont\csname #1it\endcsname \expandafter\let\expandafter\slfont\csname #1sl\endcsname \expandafter\let\expandafter\bffont\csname #1bf\endcsname \expandafter\let\expandafter\ttfont\csname #1tt\endcsname \expandafter\let\expandafter\smallcaps\csname #1sc\endcsname \expandafter\let\expandafter\sffont \csname #1sf\endcsname \expandafter\let\expandafter\ifont \csname #1i\endcsname \expandafter\let\expandafter\syfont \csname #1sy\endcsname \expandafter\let\expandafter\ttslfont\csname #1ttsl\endcsname } \newif\ifrmisbold % Select smaller font size with the current style. Used to change font size % in, e.g., the LaTeX logo and acronyms. If we are using bold fonts for % normal roman text, also use bold fonts for roman text in the smaller size. \def\switchtolllsize{% \expandafter\assignfonts\expandafter{\lllsize}% \ifrmisbold \let\rmfont\bffont \fi \csname\curfontstyle\endcsname }% \def\switchtolsize{% \expandafter\assignfonts\expandafter{\lsize}% \ifrmisbold \let\rmfont\bffont \fi \csname\curfontstyle\endcsname }% \def\definefontsetatsize#1#2#3#4#5{% \expandafter\def\csname #1fonts\endcsname{% \def\curfontsize{#1}% \def\lsize{#2}\def\lllsize{#3}% \csname rmisbold#5\endcsname \assignfonts{#1}% \resetmathfonts \setleading{#4}% }} \definefontsetatsize{text} {reduced}{smaller}{\textleading}{false} \definefontsetatsize{title} {chap} {subsec} {27pt} {true} \definefontsetatsize{chap} {sec} {text} {19pt} {true} \definefontsetatsize{sec} {subsec} {reduced}{17pt} {true} \definefontsetatsize{ssec} {text} {small} {15pt} {true} \definefontsetatsize{reduced}{small} {smaller}{10.5pt}{false} \definefontsetatsize{small} {smaller}{smaller}{10.5pt}{false} \definefontsetatsize{smaller}{smaller}{smaller}{9.5pt} {false} \def\titlefont#1{{\titlefonts\rm #1}} \let\subsecfonts = \ssecfonts \let\subsubsecfonts = \ssecfonts % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } { \catcode`\'=\active \catcode`\`=\active \gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright} \gdef\setregularquotes{\let`\lq \let'\rq} } % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it % works for pasting with more pdf viewers (at least evince), the % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \ifmonospace \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi \else '% \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \ifmonospace \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi \else \relax`% \fi } % Commands to set the quote options. % \parseargdef\codequoteundirected{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequoteundirected\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequoteundirected\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% \fi\fi } % \parseargdef\codequotebacktick{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequotebacktick\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequotebacktick\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% \fi\fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Font commands. % #1 is the font command (\sl or \it), #2 is the text to slant. % If we are in a monospaced environment, however, 1) always use \ttsl, % and 2) do not add an italic correction. \def\dosmartslant#1#2{% \ifusingtt {{\ttsl #2}\let\next=\relax}% {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% \next } \def\smartslanted{\dosmartslant\sl} \def\smartitalic{\dosmartslant\it} % Output an italic correction unless \next (presumed to be the following % character) is such as not to need one. \def\smartitaliccorrection{% \ifx\next,% \else\ifx\next-% \else\ifx\next.% \else\ifx\next\.% \else\ifx\next\comma% \else\ptexslash \fi\fi\fi\fi\fi \aftersmartic } % Unconditional use \ttsl, and no ic. @var is set to this for defuns. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \def\aftersmartic{} \def\var#1{% \let\saveaftersmartic = \aftersmartic \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% \smartslanted{#1}% } \let\i=\smartitalic \let\slanted=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other \def\endofsentencespacefactor{3000}% default % @t, explicit typewriter. \def\t#1{% {\tt \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setcodequotes\lq\tclose{#1}\rq\null}} % @indicateurl is \samp, that is, with quotes. \let\indicateurl=\samp % @code (and similar) prints in typewriter, but with spaces the same % size as normal in the surrounding text, without hyphenation, etc. % This is a subroutine for that. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % (But see \codedashfinish below.) % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. -- rms. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setcodequotes \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\normaldash \let_\realunder \fi % Given -foo (with a single dash), we do not want to allow a break % after the hyphen. \global\let\codedashprev=\codedash % \codex } % \gdef\codedash{\futurelet\next\codedashfinish} \gdef\codedashfinish{% \normaldash % always output the dash character itself. % % Now, output a discretionary to allow a line break, unless % (a) the next character is a -, or % (b) the preceding character is a -. % E.g., given --posix, we do not want to allow a break after either -. % Given --foo-bar, we do want to allow a break between the - and the b. \ifx\next\codedash \else \ifx\codedashprev\codedash \else \discretionary{}{}{}\fi \fi % we need the space after the = for the case when \next itself is a % space token; it would get swallowed otherwise. As in @code{- a}. \global\let\codedashprev= \next } } \def\normaldash{-} % \def\codex #1{\tclose{#1}\endgroup} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}% } % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is bad. % @allowcodebreaks provides a document-level way to turn breaking at - % and _ on and off. % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} \def\keywordfalse{false} \parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } % For @command, @env, @file, @option quotes seem unnecessary, % so use \code rather than \samp. \let\command=\code \let\env=\code \let\file=\code \let\option=\code % @uref (abbreviation for `urlref') aka @url takes an optional % (comma-separated) second argument specifying the text to display and % an optional third arg as text to display instead of (rather than in % addition to) the url itself. First (mandatory) arg is the url. % TeX-only option to allow changing PDF output to show only the second % arg (if given), and not the url (which is then just the link target). \newif\ifurefurlonlylink % The default \pretolerance setting stops the penalty inserted in % \urefallowbreak being a discouragement to line breaking. Set it to % a negative value for this paragraph only. Hopefully this does not % conflict with redefinitions of \par done elsewhere. \def\nopretolerance{% \pretolerance=-1 \def\par{\endgraf\pretolerance=100 \let\par\endgraf}% } % The main macro is \urefbreak, which allows breaking at expected % places within the url. \def\urefbreak{\nopretolerance \begingroup \urefcatcodes \dourefbreak} \let\uref=\urefbreak % \def\dourefbreak#1{\urefbreakfinish #1,,,\finish} \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% look for second arg \ifdim\wd0 > 0pt \ifpdf % For pdfTeX and LuaTeX \ifurefurlonlylink % PDF plus option to not display url, show just arg \unhbox0 \else % PDF, normally display both arg and url for consistency, % visibility, if the pdf is eventually used to print, etc. \unhbox0\ (\urefcode{#1})% \fi \else \ifx\XeTeXrevision\thisisundefined \unhbox0\ (\urefcode{#1})% DVI, always show arg and url \else % For XeTeX \ifurefurlonlylink % PDF plus option to not display url, show just arg \unhbox0 \else % PDF, normally display both arg and url for consistency, % visibility, if the pdf is eventually used to print, etc. \unhbox0\ (\urefcode{#1})% \fi \fi \fi \else \urefcode{#1}% only url given, so show it \fi \fi \endlink \endgroup} % Allow line breaks around only a few characters (only). \def\urefcatcodes{% \catcode`\&=\active \catcode`\.=\active \catcode`\#=\active \catcode`\?=\active \catcode`\/=\active } { \urefcatcodes % \global\def\urefcode{\begingroup \setcodequotes \urefcatcodes \let&\urefcodeamp \let.\urefcodedot \let#\urefcodehash \let?\urefcodequest \let/\urefcodeslash \codex } % % By default, they are just regular characters. \global\def&{\normalamp} \global\def.{\normaldot} \global\def#{\normalhash} \global\def?{\normalquest} \global\def/{\normalslash} } \def\urefcodeamp{\urefprebreak \&\urefpostbreak} \def\urefcodedot{\urefprebreak .\urefpostbreak} \def\urefcodehash{\urefprebreak \#\urefpostbreak} \def\urefcodequest{\urefprebreak ?\urefpostbreak} \def\urefcodeslash{\futurelet\next\urefcodeslashfinish} { \catcode`\/=\active \global\def\urefcodeslashfinish{% \urefprebreak \slashChar % Allow line break only after the final / in a sequence of % slashes, to avoid line break between the slashes in http://. \ifx\next/\else \urefpostbreak \fi } } % By default we'll break after the special characters, but some people like to % break before the special chars, so allow that. Also allow no breaking at % all, for manual control. % \parseargdef\urefbreakstyle{% \def\txiarg{#1}% \ifx\txiarg\wordnone \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordbefore \def\urefprebreak{\urefallowbreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordafter \def\urefprebreak{\nobreak}\def\urefpostbreak{\urefallowbreak} \else \errhelp = \EMsimple \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% \fi\fi\fi } \def\wordafter{after} \def\wordbefore{before} \def\wordnone{none} % Allow a ragged right output to aid breaking long URL's. There can % be a break at the \allowbreak with no extra glue (if the existing stretch in % the line is sufficient), a break at the \penalty with extra glue added % at the end of the line, or no break at all here. % Changing the value of the penalty and/or the amount of stretch affects how % preferable one choice is over the other. \def\urefallowbreak{% \penalty0\relax \hskip 0pt plus 2 em\relax \penalty1000\relax \hskip 0pt plus -2 em\relax } \urefbreakstyle after % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdforxetex \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \let\email=\uref \fi % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct'. \kbdinputstyle distinct % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} \def\xkey{\key} \def\kbdsub#1#2#3\par{% \def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\setcodequotes\look}}\fi \else{\tclose{\kbdfont\setcodequotes\look}}\fi } % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setregularquotes \nohyphenation \ifmonospace\else\tt\fi #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\switchtolsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { \catcode`\_ = \active \gdef\mathunderscore{% \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a math (or tt) \. % FYI, plain.tex uses \\ as a temporary control sequence (for no % particular reason), but this is not advertised and we don't care. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \ifmmode\else % only go into math if not in math mode already \tex \mathunderscore \let\\ = \mathbackslash \mathactive % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot % have to provide another name for sup operator \let\mathopsup=\sup $\expandafter\finishmath\fi } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. % We have to reset their definitions in case the @math was an argument % to a command which sets the catcodes (such as @item or @section). % { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % for @sub and @sup, if in math mode, just do a normal sub/superscript. % If in text, use math to place as sub/superscript, but switch % into text mode, with smaller fonts. This is a different font than the % one used for real math sub/superscripts (8pt vs. 7pt), but let's not % fix it (significant additions to font machinery) until someone notices. % \def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi} \def\finishsub#1{$\sb{\hbox{\switchtolllsize #1}}$}% % \def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi} \def\finishsup#1{$\ptexsp{\hbox{\switchtolllsize #1}}$}% % provide this command from LaTeX as it is very common \def\frac#1#2{{{#1}\over{#2}}} % @displaymath. % \globaldefs is needed to recognize the end lines in \tex and % \end tex. Set \thisenv as @end displaymath is seen before @end tex. {\obeylines \globaldefs=1 \envdef\displaymath{% \tex% \def\thisenv{\displaymath}% \begingroup\let\end\displaymathend% $$% } \def\displaymathend{$$\endgroup\end}% \def\Edisplaymath{% \def\thisenv{\tex}% \end tex }} % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % \long\def\inlinefmt#1{\doinlinefmt #1,\finish} \long\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } % % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if % FMTNAME is tex, else ELSE-TEXT. \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish} \long\def\doinlinefmtifelse#1,#2,#3,#4,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\else \ignorespaces #3\fi } % % For raw, must switch into @tex before parsing the argument, to avoid % setting catcodes prematurely. Doing it this way means that, for % example, @inlineraw{html, foo{bar} gets a parse error instead of being % ignored. But this isn't important because if people want a literal % *right* brace they would have to use a command anyway, so they may as % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % \long\def\inlineraw{\tex \doinlineraw} \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi \endgroup % close group opened by \tex. } % @inlineifset{VAR, TEXT} expands TEXT if VAR is @set. % \long\def\inlineifset#1{\doinlineifset #1,\finish} \long\def\doinlineifset#1,#2,\finish{% \def\inlinevarname{#1}% \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \else\ignorespaces#2\fi } % @inlineifclear{VAR, TEXT} expands TEXT if VAR is not @set. % \long\def\inlineifclear#1{\doinlineifclear #1,\finish} \long\def\doinlineifclear#1,#2,\finish{% \def\inlinevarname{#1}% \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \ignorespaces#2\fi } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. \def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}} \def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}} \let\{=\lbracechar \let\}=\rbracechar % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \ptexc \let\dotaccent = \ptexdot \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \ptext \let\ubaraccent = \ptexb \let\udotaccent = \d % Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} \def\ordf{\leavevmode\raise1ex\hbox{\switchtolllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\switchtolllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{% \ifx\textnominalsize\xwordpt % for 10pt running text, lllsize (8pt) is too small for the A in LaTeX. % Revert to plain's \scriptsize, which is 7pt. \count255=\the\fam $\fam\count255 \scriptstyle A$% \else % For 11pt, we can use our lllsize. \switchtolllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. Define \ensuremath to switch into math mode % unless we are already there. Expansion tricks may not be needed here, % but safer, and can't hurt. \def\ensuremath{\ifmmode \expandafter\asis \else\expandafter\ensuredmath \fi} \def\ensuredmath#1{$\relax#1$} % \def\bullet{\ensuremath\ptexbullet} \def\geq{\ensuremath\ge} \def\leq{\ensuremath\le} \def\minus{\ensuremath-} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\ttfont \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % \def\error{\leavevmode\lower.7ex\copy\errorbox} % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{\ifmonospace{\ecfont\char"BF}\else{\it\$}\fi} % @euro{} comes from a separate font, depending on the current style. % We use the free feym* fonts from the eurosym package by Henrik % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. % % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the European Computer Modern fonts (cm-super in outline format) % for non-CM glyphs. That is ec* for regular text and tc* for the text % companion symbols (LaTeX TS1 encoding). Both are part of the ec % package and follow the same conventions. % \def\ecfont{\etcfont{e}} \def\tcfont{\etcfont{t}} % \def\etcfont#1{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifmonospace % typewriter: \font\thisecfont = #1ctt\ecsize \space at \nominalsize \else \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\switchtolllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quoteleft=`\` \chardef\quoteright=`\' % only change font for tt for correct kerning and to avoid using % \ecfont unless necessary. \def\quotedblleft{% \ifmonospace{\ecfont\char"10}\else{\char"5C}\fi } \def\quotedblright{% \ifmonospace{\ecfont\char"11}\else{\char`\"}\fi } \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % @setcontentsaftertitlepage used to do an implicit @contents or % @shortcontents after @end titlepage, but it is now obsolete. \def\setcontentsaftertitlepage{% \errmessage{@setcontentsaftertitlepage has been removed as a Texinfo command; move your @contents command if you want the contents after the title page.}}% \def\setshortcontentsaftertitlepage{% \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo command; move your @shortcontents and @contents commands if you want the contents after the title page.}}% \parseargdef\shorttitlepage{% \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \let\page = \oldpage \page \null }% } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % Need this before the \...aftertitlepage checks so that if they are % in effect the toc pages will come out with page numbers. \HEADINGSon } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Settings used for typesetting titles: no hyphenation, no indentation, % don't worry much about spacing, ragged right. This should be used % inside a \vbox, and fonts need to be set appropriately first. \par should % be specified before the end of the \vbox, since a vbox is a group. % \def\raggedtitlesettings{% \rm \hyphenpenalty=10000 \parindent=0pt \tolerance=5000 \ptexraggedright } % Macros to be used within @titlepage: \let\subtitlerm=\rmfont \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt } \parseargdef\subtitle{% \checkenv\titlepage {\subtitlefont \rightline{#1}}% } % @author should come last, but may come many times. % It can also be used inside @quotation. % \parseargdef\author{% \def\temp{\quotation}% \ifx\thisenv\temp \def\quotationauthor{#1}% printed in \Equotation. \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi {\secfonts\rm \leftline{#1}}% \fi } % Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenchapheadline% headline on even pages with a new chapter \newtoks\oddchapheadline % headline on odd pages with a new chapter \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make \makeheadline and \makefootline in Plain TeX use those variables \headline={{\textfonts\rm \ifchapterpage \ifodd\pageno\the\oddchapheadline\else\the\evenchapheadline\fi \else \ifodd\pageno\the\oddheadline\else\the\evenheadline\fi \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} \def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}} \global\evenchapheadline=\evenheadline} \def\oddheading{\parsearg\oddheadingxxx} \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} \def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}% \global\oddchapheadline=\oddheadline} \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \def\evenfooting{\parsearg\evenfootingxxx} \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} \def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddfooting{\parsearg\oddfootingxxx} \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} \def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\txipageheight by -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks % These define \getoddheadingmarks, \getevenheadingmarks, % \getoddfootingmarks, and \getevenfootingmarks, each to one of % \gettopheadingmarks, \getbottomheadingmarks. % \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \parseargdef\everyheadingmarks{\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \parseargdef\everyfootingmarks{\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \parseargdef\headings{\csname HEADINGS#1\endcsname} \def\headingsoff{% non-global headings elimination \evenheadline={\hfil}\evenfootline={\hfil}\evenchapheadline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}\oddchapheadline={\hfil}% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting \HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. \def\pageone{ \global\pageno=1 \global\arabiccount = \pagecount } % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{% \pageone \HEADINGSdoublex } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \pageone \HEADINGSsinglex } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\evenchapheadline={\line{\folio\hfil}} \global\oddchapheadline={\line{\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\evenchapheadline={\line{\hfil\folio}} \global\oddchapheadline={\line{\hfil\folio}} \global\let\contentsalignmacro = \chappager } % for @setchapternewpage off \def\HEADINGSsinglechapoff{% \pageone \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\evenchapheadline=\evenheadline \global\oddchapheadline=\oddheadline \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. However, if % what follows is an environment such as @example, there will be no % \parskip glue; then the negative vskip we just inserted would % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a list environment}} \def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% \tablecheck{vtable}% } \def\tablecheck#1{% \ifnum \the\catcode`\^^M=\active \endgroup \errmessage{This command won't work in this context; perhaps the problem is that we are \inenvironment\thisenv}% \def\next{\doignore{#1}}% \else \let\next\tablex \fi \next } \def\tablex#1{% \def\itemindicate{#1}% \parsearg\tabley } \def\tabley#1{% {% \makevalueexpandable \edef\temp{\noexpand\tablez #1\space\space\space}% \expandafter }\temp \endtablez } \def\tablez #1 #2 #3 #4\endtablez{% \aboveenvbreak \ifnum 0#1>0 \advance \leftskip by #1\mil \fi \ifnum 0#2>0 \tableindent=#2\mil \fi \ifnum 0#3>0 \advance \rightskip by #3\mil \fi \itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi \let\item = \internalBitem \let\itemx = \internalBitemx } \def\Etable{\endgraf\afterenvbreak} \let\Eftable\Etable \let\Evtable\Etable \let\Eitemize\Etable \let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \envdef\itemize{\parsearg\doitemize} \def\doitemize#1{% \aboveenvbreak \itemmax=\itemindent \advance\itemmax by -\itemmargin \advance\leftskip by \itemindent \exdentamount=\itemindent \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi % % Try typesetting the item mark so that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \ifinner\else \vadjust{\penalty 1200}% not good to break after first line of item. \fi % We can be in inner vertical mode in a footnote, although an % @itemize looks awful there. }% \flushcr } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a . % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \doitemize{#1.}\flushcr } % @multitable macros % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the @columnfraction, usually a decimal number like .5, but might % be just 1. We just use it, whatever it is. % \def\pickupwholefraction#1 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % @headitem starts a heading row, which we typeset in bold. Assignments % have to be global since we are inside the implicit group of an % alignment entry. \everycr below resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % default for tables with no headings. \let\headitemcrhook=\relax % \def\tab{\checkenv\multitable &\the\everytab}% \newtoks\everytab % insert after every tab. % \envdef\multitable{% \vskip\parskip \startsavinginserts % % @item within a multitable starts a normal row. % We use \def instead of \let so that if one of the multitable entries % contains an @itemize, we don't choke on the \item (seen as \crcr aka % \endtemplate) expanding \doitemize. \def\item{\crcr}% % \tolerance=9500 \hbadness=9500 \parskip=0pt \parindent=6pt \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% Reset from possible headitem. \global\colcount=0 % Reset the column counter. % % Check for saved footnotes, etc.: \checkinserts % % Perhaps a \nobreak, then reset: \headitemcrhook \global\let\headitemcrhook=\relax }% }% % \parsearg\domultitable } \def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup &% \global\advance\colcount by 1 \strut \vtop{% \advance\hsize by -1\leftskip % Find the correct column width \hsize=\expandafter\csname col\the\colcount\endcsname % \rightskip=0pt \ifnum\colcount=1 \advance\hsize by\leftskip % Add indent of surrounding text \else % In order to keep entries from bumping into each other. \leftskip=12pt \ifsetpercent \else % If a template has been used \advance\hsize by \leftskip \fi \fi \noindent\ignorespaces##\unskip\strut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \message{conditionals,} % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, % @ifnotxml always succeed. They currently do nothing; we don't % attempt to check whether the conditionals are properly nested. But we % have to remember that they are conditionals, so that @end doesn't % attempt to close an environment group. % \def\makecond#1{% \expandafter\let\csname #1\endcsname = \relax \expandafter\let\csname iscond.#1\endcsname = 1 } \makecond{iftex} \makecond{ifnotdocbook} \makecond{ifnothtml} \makecond{ifnotinfo} \makecond{ifnotplaintext} \makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} \def\documentdescription{\doignore{documentdescription}} \def\docbook{\doignore{docbook}} \def\html{\doignore{html}} \def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} \def\ifxml{\doignore{ifxml}} \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} % Ignore text until a line `@end #1', keeping track of nested conditionals. % % A count to remember the depth of nesting. \newcount\doignorecount \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\-=\active \catcode`\_=\active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\normaldash \let_\normalunderscore } } \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi } % Like \expandablevalue, but completely expandable (the \message in the % definition above operates at the execution level of TeX). Used when % writing to auxiliary files, due to the expansion that \write does. % If flag is undefined, pass through an unexpanded @value command: maybe it % will be set by the time it is read back in. % % NB flag names containing - or _ may not work here. \def\dummyvalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax \string\value{#1}% \else \csname SET#1\endcsname \fi } % Used for @value's in index entries to form the sort key: expand the @value % if possible, otherwise sort late. \def\indexnofontsvalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax ZZZZZZZ% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get the special treatment we need for `@end ifset,' we call % \makecond and then redefine. % \makecond{ifset} \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} \def\doifset#1#2{% {% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname SET#2\endcsname\relax #1% If not set, redefine \next. \fi \expandafter }\next } \def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end executes the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the % above code: if the variable is not set, do nothing, if it is set, % then redefine \next to \ifclearfail. % \makecond{ifclear} \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written % without the @) is in fact defined. We can only feasibly check at the % TeX level, so something like `mathcode' is going to considered % defined even though it is not a Texinfo command. % \makecond{ifcommanddefined} \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} % \def\doifcmddefined#1#2{{% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname #2\endcsname\relax #1% If not defined, \let\next as above. \fi \expandafter }\next } \def\ifcmddefinedfail{\doignore{ifcommanddefined}} % @ifcommandnotdefined CMD ... handled similar to @ifclear above. \makecond{ifcommandnotdefined} \def\ifcommandnotdefined{% \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} % Set the `txicommandconditionals' variable, so documents have a way to % test if the @ifcommand...defined conditionals are available. \set txicommandconditionals % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named IX. % It automatically defines \IXindex such that % \IXindex ...rest of line... puts an entry in the index IX. % It also defines \IXindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is IX. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. % \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % The default indices: \newindex{cp}% concepts, \newcodeindex{fn}% functions, \newcodeindex{vr}% variables, \newcodeindex{tp}% types, \newcodeindex{ky}% keys \newcodeindex{pg}% and programs. % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. % \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), % #3 the target index (bar). \def\dosynindex#1#2#3{% \requireopenindexfile{#3}% % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname \expandafter\let\csname#2indfile\endcsname=\temp % redefine \fooindex: \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } % Define \doindex, the driver for all index macros. % Argument #1 is generated by the calling \fooindex macro, % and it is the two-letter name of the index. \def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx} \def\doindexxxx #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} \def\docodeindexxxx #1{\docind{\indexname}{#1}} % Used for the aux, toc and index files to prevent expansion of Texinfo % commands. % \def\atdummies{% \definedummyletter\@% \definedummyletter\ % \definedummyletter\{% \definedummyletter\}% \definedummyletter\&% % % Do the redefinitions. \definedummies \otherbackslash } % \definedummyword defines \#1 as \string\#1\space, thus effectively % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. % % These can be used both for control words that take an argument and % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % % For control letters, we have \definedummyletter, which omits the % space. % \def\definedummyword #1{\def#1{\string#1\space}}% \def\definedummyletter#1{\def#1{\string#1}}% \let\definedummyaccent\definedummyletter % Called from \atdummies to prevent the expansion of commands. % \def\definedummies{% % \let\commondummyword\definedummyword \let\commondummyletter\definedummyletter \let\commondummyaccent\definedummyaccent \commondummiesnofonts % \definedummyletter\_% \definedummyletter\-% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\ampchar \definedummyword\atchar \definedummyword\arrow \definedummyword\backslashchar \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\lbracechar \definedummyword\leq \definedummyword\mathopsup \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\rbracechar \definedummyword\result \definedummyword\sub \definedummyword\sup \definedummyword\textdegree % \definedummyword\subentry % % We want to disable all macros so that they are not expanded by \write. \macrolist \let\value\dummyvalue % \normalturnoffactive } % \commondummiesnofonts: common to \definedummies and \indexnofonts. % Define \commondummyletter, \commondummyaccent and \commondummyword before % using. Used for accents, font commands, and various control letters. % \def\commondummiesnofonts{% % Control letters and accents. \commondummyletter\!% \commondummyaccent\"% \commondummyaccent\'% \commondummyletter\*% \commondummyaccent\,% \commondummyletter\.% \commondummyletter\/% \commondummyletter\:% \commondummyaccent\=% \commondummyletter\?% \commondummyaccent\^% \commondummyaccent\`% \commondummyaccent\~% \commondummyword\u \commondummyword\v \commondummyword\H \commondummyword\dotaccent \commondummyword\ogonek \commondummyword\ringaccent \commondummyword\tieaccent \commondummyword\ubaraccent \commondummyword\udotaccent \commondummyword\dotless % % Texinfo font commands. \commondummyword\b \commondummyword\i \commondummyword\r \commondummyword\sansserif \commondummyword\sc \commondummyword\slanted \commondummyword\t % % Commands that take arguments. \commondummyword\abbr \commondummyword\acronym \commondummyword\anchor \commondummyword\cite \commondummyword\code \commondummyword\command \commondummyword\dfn \commondummyword\dmn \commondummyword\email \commondummyword\emph \commondummyword\env \commondummyword\file \commondummyword\image \commondummyword\indicateurl \commondummyword\inforef \commondummyword\kbd \commondummyword\key \commondummyword\math \commondummyword\option \commondummyword\pxref \commondummyword\ref \commondummyword\samp \commondummyword\strong \commondummyword\tie \commondummyword\U \commondummyword\uref \commondummyword\url \commondummyword\var \commondummyword\verb \commondummyword\w \commondummyword\xref } \let\indexlbrace\relax \let\indexrbrace\relax \let\indexatchar\relax \let\indexbackslash\relax {\catcode`\@=0 \catcode`\\=13 @gdef@backslashdisappear{@def\{}} } { \catcode`\<=13 \catcode`\-=13 \catcode`\`=13 \gdef\indexnonalnumdisappear{% \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else % @set txiindexlquoteignore makes us ignore left quotes in the sort term. % (Introduced for FSFS 2nd ed.) \let`=\empty \fi % \expandafter\ifx\csname SETtxiindexbackslashignore\endcsname\relax\else \backslashdisappear \fi % \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else \def-{}% \fi \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else \def<{}% \fi \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else \def\@{}% \fi } \gdef\indexnonalnumreappear{% \let-\normaldash \let<\normalless } } % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % \def\indexnofonts{% % Accent commands should become @asis. \def\commondummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\commondummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\commondummyword\commondummyaccent \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |, etc. % Likewise with the other plain tex font commands. %\let\tt=\asis % \def\ { }% \def\@{@}% \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % \uccode`\1=`\{ \uppercase{\def\{{1}}% \uccode`\1=`\} \uppercase{\def\}{1}}% \let\lbracechar\{% \let\rbracechar\}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{TH}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{th}% % \let\do\indexnofontsdef % \do\LaTeX{LaTeX}% \do\TeX{TeX}% % % Assorted special characters. \do\atchar{@}% \do\arrow{->}% \do\bullet{bullet}% \do\comma{,}% \do\copyright{copyright}% \do\dots{...}% \do\enddots{...}% \do\equiv{==}% \do\error{error}% \do\euro{euro}% \do\expansion{==>}% \do\geq{>=}% \do\guillemetleft{<<}% \do\guillemetright{>>}% \do\guilsinglleft{<}% \do\guilsinglright{>}% \do\leq{<=}% \do\lbracechar{\{}% \do\minus{-}% \do\point{.}% \do\pounds{pounds}% \do\print{-|}% \do\quotedblbase{"}% \do\quotedblleft{"}% \do\quotedblright{"}% \do\quoteleft{`}% \do\quoteright{'}% \do\quotesinglbase{,}% \do\rbracechar{\}}% \do\registeredsymbol{R}% \do\result{=>}% \do\textdegree{o}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist \let\value\indexnofontsvalue } % Give the control sequence a definition that removes the {} that follows % its use, e.g. @AA{} -> AA \def\indexnofontsdef#1#2{\def#1##1{#2}}% % #1 is the index name, #2 is the entry text. \def\doind#1#2{% \iflinks {% % \requireopenindexfile{#1}% \edef\writeto{\csname#1indfile\endcsname}% % \def\indextext{#2}% \safewhatsit\doindwrite }% \fi } % Same as \doind, but for code indices \def\docind#1#2{% \iflinks {% % \requireopenindexfile{#1}% \edef\writeto{\csname#1indfile\endcsname}% % \def\indextext{#2}% \safewhatsit\docindwrite }% \fi } % Check if an index file has been opened, and if not, open it. \def\requireopenindexfile#1{% \ifnum\csname #1indfile\endcsname=0 \expandafter\newwrite \csname#1indfile\endcsname \edef\suffix{#1}% % A .fls suffix would conflict with the file extension for the output % of -recorder, so use .f1s instead. \ifx\suffix\indexisfl\def\suffix{f1}\fi % Open the file \immediate\openout\csname#1indfile\endcsname \jobname.\suffix % Using \immediate above here prevents an object entering into the current % box, which could confound checks such as those in \safewhatsit for % preceding skips. \typeout{Writing index file \jobname.\suffix}% \fi} \def\indexisfl{fl} % Definition for writing index entry sort key. { \catcode`\-=13 \gdef\indexwritesortas{% \begingroup \indexnonalnumreappear \indexwritesortasxxx} \gdef\indexwritesortasxxx#1{% \xdef\indexsortkey{#1}\endgroup} } \def\indexwriteseealso#1{ \gdef\pagenumbertext{\string\seealso{#1}}% } \def\indexwriteseeentry#1{ \gdef\pagenumbertext{\string\seeentry{#1}}% } % The default definitions \def\sortas#1{}% \def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only \def\putwordSeeAlso{See also} \def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only % Given index entry text like "aaa @subentry bbb @sortas{ZZZ}": % * Set \bracedtext to "{aaa}{bbb}" % * Set \fullindexsortkey to "aaa @subentry ZZZ" % * If @seealso occurs, set \pagenumbertext % \def\splitindexentry#1{% \gdef\fullindexsortkey{}% \xdef\bracedtext{}% \def\sep{}% \def\seealso##1{}% \def\seeentry##1{}% \expandafter\doindexsegment#1\subentry\finish\subentry } % append the results from the next segment \def\doindexsegment#1\subentry{% \def\segment{#1}% \ifx\segment\isfinish \else % % Fully expand the segment, throwing away any @sortas directives, and % trim spaces. \edef\trimmed{\segment}% \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}% \ifincodeindex \edef\trimmed{\noexpand\code{\trimmed}}% \fi % \xdef\bracedtext{\bracedtext{\trimmed}}% % % Get the string to sort by. Process the segment with all % font commands turned off. \bgroup \let\sortas\indexwritesortas \let\seealso\indexwriteseealso \let\seeentry\indexwriteseeentry \indexnofonts % The braces around the commands are recognized by texindex. \def\lbracechar{{\string\indexlbrace}}% \def\rbracechar{{\string\indexrbrace}}% \let\{=\lbracechar \let\}=\rbracechar \def\@{{\string\indexatchar}}% \def\atchar##1{\@}% \def\backslashchar{{\string\indexbackslash}}% \uccode`\~=`\\ \uppercase{\let~\backslashchar}% % \let\indexsortkey\empty \global\let\pagenumbertext\empty % Execute the segment and throw away the typeset output. This executes % any @sortas or @seealso commands in this segment. \setbox\dummybox = \hbox{\segment}% \ifx\indexsortkey\empty{% \indexnonalnumdisappear \xdef\trimmed{\segment}% \xdef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}% \xdef\indexsortkey{\trimmed}% \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi }\fi % % Append to \fullindexsortkey. \edef\tmp{\gdef\noexpand\fullindexsortkey{% \fullindexsortkey\sep\indexsortkey}}% \tmp \egroup \def\sep{\subentry}% % \expandafter\doindexsegment \fi } \def\isfinish{\finish}% \newbox\dummybox % used above \let\subentry\relax % Use \ instead of @ in index files. To support old texi2dvi and texindex. % This works without changing the escape character used in the toc or aux % files because the index entries are fully expanded here, and \string uses % the current value of \escapechar. \def\escapeisbackslash{\escapechar=`\\} % Use \ in index files by default. texi2dvi didn't support @ as the escape % character (as it checked for "\entry" in the files, and not "@entry"). When % the new version of texi2dvi has had a chance to become more prevalent, then % the escape character can change back to @ again. This should be an easy % change to make now because both @ and \ are only used as escape characters in % index files, never standing for themselves. % \set txiindexescapeisbackslash % Write the entry in \indextext to the index file. % \newif\ifincodeindex \def\doindwrite{\incodeindexfalse\doindwritex} \def\docindwrite{\incodeindextrue\doindwritex} \def\doindwritex{% \maybemarginindex % \atdummies % \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax\else \escapeisbackslash \fi % % For texindex which always views { and } as separators. \def\{{\lbracechar{}}% \def\}{\rbracechar{}}% \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}% % % Split the entry into primary entry and any subentries, and get the index % sort key. \splitindexentry\indextext % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the % subentry case), texindex reduces to two when writing the .??s % sorted result. % \edef\temp{% \write\writeto{% \string\entry{\fullindexsortkey}% {\ifx\pagenumbertext\empty\noexpand\folio\else\pagenumbertext\fi}% \bracedtext}% }% \temp } % Put the index entry in the margin if desired (undocumented). \def\maybemarginindex{% \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \relax\indextext}}% \fi } \let\SETmarginindex=\relax % Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{\ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % \entry {topic}{} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % \secondary {subtopic}{} % for a subtopic with sub-subtopics % \tertiary {subtopic}{subsubtopic}{pagelist} % for each sub-subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See comment in \requireopenindexfile. \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi % % See if the index file exists and is nonempty. \openin 1 \jobname.\indexname s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \typeout{No file \jobname.\indexname s.}% \else % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \thisline \ifeof 1 \putwordIndexIsEmpty \else \expandafter\printindexzz\thisline\relax\relax\finish% \fi \fi \closein 1 \endgroup} % If the index file starts with a backslash, forgo reading the index % file altogether. If somebody upgrades texinfo.tex they may still have % old index files using \ as the escape character. Reading this would % at best lead to typesetting garbage, at worst a TeX syntax error. \def\printindexzz#1#2\finish{% \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1 \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax \errmessage{% ERROR: A sorted index file in an obsolete format was skipped. To fix this problem, please upgrade your version of 'texi2dvi' or 'texi2pdf' to that at . If you are using an old version of 'texindex' (part of the Texinfo distribution), you may also need to upgrade to a newer version (at least 6.0). You may be able to typeset the index if you run 'texindex \jobname.\indexname' yourself. You could also try setting the 'txiindexescapeisbackslash' flag by running a command like 'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do this, Texinfo will try to use index files in the old format. If you continue to have problems, deleting the index files and starting again might help (with 'rm \jobname.?? \jobname.??s')% }% \else (Skipped sorted index file in obsolete format) \fi \else \begindoublecolumns \input \jobname.\indexname s \enddoublecolumns \fi \else \begindoublecolumns \catcode`\\=0\relax % % Make @ an escape character to give macros a chance to work. This % should work because we (hopefully) don't otherwise use @ in index files. %\catcode`\@=12\relax \catcode`\@=0\relax \input \jobname.\indexname s \enddoublecolumns \fi } % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. {\catcode`\/=13 \catcode`\-=13 \catcode`\^=13 \catcode`\~=13 \catcode`\_=13 \catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13 \catcode`\$=3 \gdef\initialglyphs{% % special control sequences used in the index sort key \let\indexlbrace\{% \let\indexrbrace\}% \let\indexatchar\@% \def\indexbackslash{\math{\backslash}}% % % Some changes for non-alphabetic characters. Using the glyphs from the % math fonts looks more consistent than the typewriter font used elsewhere % for these characters. \uccode`\~=`\\ \uppercase{\def~{\math{\backslash}}} % % In case @\ is used for backslash \uppercase{\let\\=~} % Can't get bold backslash so don't use bold forward slash \catcode`\/=13 \def/{{\secrmnotbold \normalslash}}% \def-{{\normaldash\normaldash}}% en dash `--' \def^{{\chapbf \normalcaret}}% \def~{{\chapbf \normaltilde}}% \def\_{% \leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }% \def|{$\vert$}% \def<{$\less$}% \def>{$\gtr$}% \def+{$\normalplus$}% }} \def\initial{% \bgroup \initialglyphs \initialx } \def\initialx#1{% % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. % The glue before the bonus allows a little bit of space at the % bottom of a column to reduce an increase in inter-line spacing. \nobreak \vskip 0pt plus 5\baselineskip \penalty -300 \vskip 0pt plus -5\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus 1\baselineskip \leftline{\secfonts \kern-0.05em \secbf #1}% % \secfonts is inside the argument of \leftline so that the change of % \baselineskip will not affect any glue inserted before the vbox that % \leftline creates. % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip \egroup % \initialglyphs } \newdimen\entryrightmargin \entryrightmargin=0pt % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % \def\entry{% \begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % No extra space above this paragraph. \parskip = 0in % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% \def\entrybreak{\hfil\break}% An undocumented command % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% % Save the text of the entry \global\setbox\boxA=\hbox\bgroup \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. % Not absorbing as a macro argument reduces the chance of problems % with catcodes occurring. } {\catcode`\@=11 \gdef\finishentry#1{% \egroup % end box A \dimen@ = \wd\boxA % Length of text of entry \global\setbox\boxA=\hbox\bgroup \unhbox\boxA % #1 is the page number. % % Get the width of the page numbers, and only use % leaders if they are present. \global\setbox\boxB = \hbox{#1}% \ifdim\wd\boxB = 0pt \null\nobreak\hfill\ % \else % \null\nobreak\indexdotfill % Have leaders before the page number. % \ifpdforxetex \pdfgettoks#1.% \hskip\skip\thinshrinkable\the\toksA \else \hskip\skip\thinshrinkable #1% \fi \fi \egroup % end \boxA \ifdim\wd\boxB = 0pt \noindent\unhbox\boxA\par \nobreak \else\bgroup % We want the text of the entries to be aligned to the left, and the % page numbers to be aligned to the right. % \parindent = 0pt \advance\leftskip by 0pt plus 1fil \advance\leftskip by 0pt plus -1fill \rightskip = 0pt plus -1fil \advance\rightskip by 0pt plus 1fill % Cause last line, which could consist of page numbers on their own % if the list of page numbers is long, to be aligned to the right. \parfillskip=0pt plus -1fill % \advance\rightskip by \entryrightmargin % Determine how far we can stretch into the margin. % This allows, e.g., "Appendix H GNU Free Documentation License" to % fit on one line in @letterpaper format. \ifdim\entryrightmargin>2.1em \dimen@i=2.1em \else \dimen@i=0em \fi \advance \parfillskip by 0pt minus 1\dimen@i % \dimen@ii = \hsize \advance\dimen@ii by -1\leftskip \advance\dimen@ii by -1\entryrightmargin \advance\dimen@ii by 1\dimen@i \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line \ifdim\dimen@ > 0.8\dimen@ii % due to long index text % Try to split the text roughly evenly. \dimen@ will be the length of % the first line. \dimen@ = 0.7\dimen@ \dimen@ii = \hsize \ifnum\dimen@>\dimen@ii % If the entry is too long (for example, if it needs more than % two lines), use all the space in the first line. \dimen@ = \dimen@ii \fi \advance\leftskip by 0pt plus 1fill % ragged right \advance \dimen@ by 1\rightskip \parshape = 2 0pt \dimen@ 0em \dimen@ii % Ideally we'd add a finite glue at the end of the first line only, % instead of using \parshape with explicit line lengths, but TeX % doesn't seem to provide a way to do such a thing. % % Indent all lines but the first one. \advance\leftskip by 1em \advance\parindent by -1em \fi\fi \indent % start paragraph \unhbox\boxA % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % Word spacing - no stretch \spaceskip=\fontdimen2\font minus \fontdimen4\font % \linepenalty=1000 % Discourage line breaks. \hyphenpenalty=5000 % Discourage hyphenation. % \par % format the paragraph \egroup % The \vbox \fi \endgroup }} \newskip\thinshrinkable \skip\thinshrinkable=.15em minus .15em % Like plain.tex's \dotfill, except uses up at least 1 em. % The filll stretch here overpowers both the fil and fill stretch to push % the page number to the right. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1filll} \def\primary #1{\line{#1\hfil}} \def\secondary{\indententry{0.5cm}} \def\tertiary{\indententry{1cm}} \def\indententry#1#2#3{% \bgroup \leftskip=#1 \entry{#2}{#3}% \egroup } % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 % private names \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % If not much space left on page, start a new page. \ifdim\pagetotal>0.8\vsize\vfill\eject\fi % % Grab any single-column material above us. \output = {% \savetopmark % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% }% \eject % run that output routine to set \partialpage % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \advance\vsize by -\ht\partialpage \vsize = 2\vsize % % For the benefit of balancing columns \advance\baselineskip by 0pt plus 0.5pt } % The double-column output routine for all double-column pages except % the last, which is done by \balancecolumns. % \def\doublecolumnout{% % \savetopmark \splittopskip=\topskip \splitmaxdepth=\maxdepth \dimen@ = \vsize \divide\dimen@ by 2 % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit\PAGE to\dimen@ \setbox2=\vsplit\PAGE to\dimen@ \global\advance\vsize by 2\ht\partialpage \onepageout\pagesofar % empty except for the first time we are called \unvbox\PAGE \penalty\outputpenalty } % % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\txipagewidth{\box0\hfil\box2}% } % Finished with double columns. \def\enddoublecolumns{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \txipageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. \savetopmark \balancecolumns }% \eject % call the \output just set \ifdim\pagetotal=0pt % Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. \global\output=\expandafter{\the\defaultoutput} % \endgroup % started in \begindoublecolumns % Leave the double-column material on the current page, no automatic % page break. \box\balancedcolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize. \global\vsize = \txipageheight % \pagegoal = \txipageheight % \else % We had some left-over material. This might happen when \doublecolumnout % is called in \balancecolumns. Try again. \expandafter\enddoublecolumns \fi } \newbox\balancedcolumns \setbox\balancedcolumns=\vbox{shouldnt see this}% % % Only called for the last of the double column material. \doublecolumnout % does the others. \def\balancecolumns{% \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \ifdim\dimen@<7\baselineskip % Don't split a short final column in two. \setbox2=\vbox{}% \global\setbox\balancedcolumns=\vbox{\pagesofar}% \else % double the leading vertical space \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to \dimen@ii = \dimen@ \splittopskip = \topskip % Loop until left column is at least as high as the right column. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht1<\ht3 \global\advance\dimen@ by 1pt \repeat }% % Now the left column is in box 1, and the right column in box 3. % % Check whether the left column has come out higher than the page itself. % (Note that we have doubled \vsize for the double columns, so % the actual height of the page is 0.5\vsize). \ifdim2\ht1>\vsize % It appears that we have been called upon to balance too much material. % Output some of it with \doublecolumnout, leaving the rest on the page. \setbox\PAGE=\box0 \doublecolumnout \else % Compare the heights of the two columns. \ifdim4\ht1>5\ht3 % Column heights are too different, so don't make their bottoms % flush with each other. \setbox2=\vbox to \ht1 {\unvbox3\vfill}% \setbox0=\vbox to \ht1 {\unvbox1\vfill}% \else % Make column bottoms flush with each other. \setbox2=\vbox to\ht1{\unvbox3\unskip}% \setbox0=\vbox to\ht1{\unvbox1\unskip}% \fi \global\setbox\balancedcolumns=\vbox{\pagesofar}% \fi \fi % } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % Let's start with @part. \outer\parseargdef\part{\partzzz{#1}} \def\partzzz#1{% \chapoddpage \null \vskip.3\vsize % move it down on the page a bit \begingroup \noindent \titlefonts\rm #1\par % the text \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page % This outputs a mark at the end of the page that clears \thischapter % and \thissection, as is done in \startcontents. \let\pchapsepmacro\relax \chapmacro{}{Yomitfromtoc}{}% \chapoddpage \endgroup } % \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 % chapters, we're in trouble anyway, I'm sure.) \newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % % \def\appendixletter{\char\the\appendixno} % We do the following ugly conditional instead of the above simple % construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. % \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achieve this, remember the "biggest" unnum. sec. we are currently in: \chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. \def\chapheadtype{N} % Choose a heading macro % #1 is heading type % #2 is heading level % #3 is text for heading \def\genhead#1#2#3{% % Compute the abs. sec. level: \absseclevel=#2 \advance\absseclevel by \secbase % Make sure \absseclevel doesn't fall outside the range: \ifnum \absseclevel < 0 \absseclevel = 0 \else \ifnum \absseclevel > 3 \absseclevel = 3 \fi \fi % The heading type: \def\headtype{#1}% \if \headtype U% \ifnum \absseclevel < \unnlevel \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: \ifnum \absseclevel = 0 \edef\chapheadtype{\headtype}% \else \if \headtype A\if \chapheadtype N% \errmessage{@appendix... within a non-appendix chapter}% \fi\fi \fi % Check for numbered within unnumbered: \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else \chardef\unnlevel = 3 \fi \fi % Now print the heading: \if \headtype U% \ifcase\absseclevel \unnumberedzzz{#3}% \or \unnumberedseczzz{#3}% \or \unnumberedsubseczzz{#3}% \or \unnumberedsubsubseczzz{#3}% \fi \else \if \headtype A% \ifcase\absseclevel \appendixzzz{#3}% \or \appendixsectionzzz{#3}% \or \appendixsubseczzz{#3}% \or \appendixsubsubseczzz{#3}% \fi \else \ifcase\absseclevel \chapterzzz{#3}% \or \seczzz{#3}% \or \numberedsubseczzz{#3}% \or \numberedsubsubseczzz{#3}% \fi \fi \fi \suppressfirstparagraphindent } % an interface: \def\numhead{\genhead N} \def\apphead{\genhead A} \def\unnmhead{\genhead U} % @chapter, @appendix, @unnumbered. Increment top-level counter, reset % all lower-level sectioning counters to zero. % % Also set \chaplevelprefix, which we prepend to @float sequence numbers % (e.g., figures), q.v. By default (before any chapter), that is empty. \let\chaplevelprefix = \empty % \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz#1{% % section resetting is \global in case the chapter is in a group, such % as an @include file. \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\chapno by 1 % % Used for \float. \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % normally unnmhead0 calls unnumberedzzz: \outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 % % Since an unnumbered has no number, no prefix for figures. \global\let\chaplevelprefix = \empty \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) \toks0 = {#1}% \message{(\the\toks0)}% % \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax } % @top is like @unnumbered. \let\top\unnumbered % Sections. % \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } % normally calls appendixsectionzzz: \outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection % normally calls unnumberedseczzz: \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. % % normally calls numberedsubseczzz: \outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } % normally calls appendixsubseczzz: \outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } % normally calls unnumberedsubseczzz: \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. % % normally numberedsubsubseczzz: \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally appendixsubsubseczzz: \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally unnumberedsubsubseczzz: \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \let\section = \numberedsec \let\subsection = \numberedsubsec \let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip \nobreak \suppressfirstparagraphindent } % @heading, @subheading, @subsubheading. \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. % Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} % Start a new page \def\chappager{\par\vfill\supereject} % \chapoddpage - start on an odd page for a new chapter % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \headingsoff \null \chappager \endgroup \fi } \parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\def\HEADINGSon{\HEADINGSsinglechapoff}} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % \chapmacro - Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % Not used for @heading series. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yappendixkeyword{Yappendix} \def\Yomitfromtockeyword{Yomitfromtoc} % \def\chapmacro#1#2#3{% \expandafter\ifx\thisenv\titlepage\else \checkenv{}% chapters, etc., should not start inside an environment. \fi % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\currentchapterdefs \let\prevsectiondefs=\currentsectiondefs \gdef\currentsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\currentchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\currentchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\currentchapterdefs \let\prevsectiondefs=\currentsectiondefs \domark % {% \chapfonts \rm \let\footnote=\errfootnoteheading % give better error message % % Have to define \currentsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. \gdef\currentsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerparameters{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt } % Section titles. These macros combine the section number parts and % call the generic \sectionheading to do the printing. % \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. \newskip\subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. \def\subsubsecheadingskip{\subsecheadingskip} \def\subsubsecheadingbreak{\subsecheadingbreak} % Print any size, any type, section title. % % #1 is the text of the title, % #2 is the section level (sec/subsec/subsubsec), % #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc), % #4 is the section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \def\sectionlevel{#2}% \def\temptype{#3}% % % It is ok for the @heading series commands to appear inside an % environment (it's been historically allowed, though the logic is % dubious), but not the others. \ifx\temptype\Yomitfromtockeyword\else \checkenv{}% non-@*heading should not be in an environment. \fi \let\footnote=\errfootnoteheading % % Switch to the right set of fonts. \csname #2fonts\endcsname \rm % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\currentsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\currentsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\currentsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\currentsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \global\let\prevsectiondefs=\currentsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\currentsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \currentsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\currentsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\currentsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) However, when a paragraph is not started next % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out % or the negative glue will cause weirdly wrong output, typically % obscuring the section heading with something else. \vskip-\parskip % % This is so the last item on the main vertical list is a known % \penalty > 10000, so \startdefun, etc., can recognize the situation % and do the needful. \penalty 10001 } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. % % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} % We append the current node name (if any) and page number as additional % arguments for the \{chap,sec,...}entry macros which will eventually % read this. The node name is used in the pdf outlines as the % destination to jump to. % % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. % But if #1 is `omit', then we don't do anything. This is used for the % table of contents chapter openings themselves. % \newif\iftocfileopened \def\omitkeyword{omit}% % \def\writetocentry#1#2#3{% \edef\writetoctype{#1}% \ifx\writetoctype\omitkeyword \else \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi % \iflinks {\atdummies \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp }% \fi \fi % % Tell \shipout to create a pdf destination on each page, if we're % writing pdf. These are used in the table of contents. We can't % just write one on every page because the title pages are numbered % 1 and 2 (the page numbers aren't printed), and so are the first % two pages of the document. Thus, we'd have two destinations named % `1', and two named `2'. \ifpdforxetex \global\pdfmakepagedesttrue \fi } % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active \catcode`\<=\active \catcode`\>=\active \catcode`\\=\active \catcode`\^=\active \catcode`\_=\active \catcode`\|=\active \catcode`\~=\active } % Read the toc file, which is essentially Texinfo input. \def\readtocfile{% \setupdatafile \activecatcodes \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \entryrightmargin=\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi \def\thistitle{}% no title in double-sided headings % Record where the Roman numerals started. \ifnum\romancount=0 \global\romancount=\pagecount \fi } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \contentsendroman } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\numsecentry##1##2##3##4{} \let\appsecentry = \numsecentry \let\unnsecentry = \numsecentry \let\numsubsecentry = \numsecentry \let\appsubsecentry = \numsecentry \let\unnsubsecentry = \numsecentry \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \contentsendroman } \let\shortcontents = \summarycontents % Get ready to use Arabic numerals again \def\contentsendroman{% \lastnegativepageno = \pageno \global\pageno = \savepageno % % If \romancount > \arabiccount, the contents are at the end of the % document. Otherwise, advance where the Arabic numerals start for % the page numbers. \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi } % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g., `A' for an appendix, or `3' for a chapter. % \def\shortchaplabel#1{% % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) % % We'd like to right-justify chapter numbers, but that looks strange % with appendix letters. And right-justifying numbers and % left-justifying letters looks strange when there is less than 10 % chapters. Have to read the whole toc once to know how many chapters % there are before deciding ... \hbox to 1em{#1\hss}% } % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Parts, in the main contents. Replace the part number, which doesn't % exist, with an empty box. Let's hope all the numbers have the same width. % Also ignore the page number, which is conventionally not printed. \def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} \def\partentry#1#2#3#4{% % Add stretch and a bonus for breaking the page before the part heading. % This reduces the chance of the page being broken immediately after the % part heading, before a following chapter heading. \vskip 0pt plus 5\baselineskip \penalty-300 \vskip 0pt plus -5\baselineskip \dochapentry{\numeralbox\labelspace#1}{}% } % % Parts, in the short toc. \def\shortpartentry#1#2#3#4{% \penalty-300 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip \shortchapentry{{\bf #1}}{\numeralbox}{}{}% } % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. % Need the word Appendix, and a fixed-size box. % \def\appendixbox#1{% % We use M since it's probably the widest letter. \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} \let\appsecentry=\numsecentry \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} \let\appsubsecentry=\numsubsecentry \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} \let\appsubsubsecentry=\numsubsubsecentry \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. % Same as \defaultparindent. \newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup % Move the page numbers slightly to the right \advance\entryrightmargin by -0.05em \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % We use the same \entry macro as for the index entries. \let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} \def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain @ character. \envdef\tex{% \setregularquotes \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other \catcode `\`=\other \catcode `\'=\other % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. \mathactive % % Inverse of the list at the beginning of the file. \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\indent=\ptexindent \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash \let\sp=\ptexsp \let\*=\ptexstar %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % we've made it outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip \ifnum\lastpenalty<10000 % Penalize breaking before the environment, because preceding text % often leads into it. \penalty100 \fi \vskip\envskipamount \fi \fi }} \def\afterenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi }} % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip % only require the font if @cartouche is actually used \def\cartouchefontdefs{% \font\circle=lcircle10\relax \circthick=\fontdimen8\circle } \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \envdef\cartouche{% \cartouchefontdefs \ifhmode\par\fi % can't be in the midst of a paragraph. \startsavinginserts \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt % we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \setbox\groupbox=\vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \kern3pt \hsize=\cartinner \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \addgroupbox \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \ifdim\hfuzz < 12pt \hfuzz = 12pt \fi % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp, @verbatim % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it in one command. #1 is the env name, #2 the definition. \def\makedispenvdef#1#2{% \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } % Define two environment synonyms (#1 and #2) for an environment. \def\maketwodispenvdef#1#2#3{% \makedispenvdef{#1}{#3}% \makedispenvdef{#2}{#3}% } % % @lisp: indented, narrowed, typewriter font; % @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setcodequotes \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \parsearg\gobble } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble } % @flushleft: same as @format, but doesn't obey \SETdispenvsize. \envdef\flushleft{% \let\nonarrowing = t% \nonfillstart \gobble } \let\Eflushleft = \afterenvbreak % @flushright. % \envdef\flushright{% \let\nonarrowing = t% \nonfillstart \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. \envdef\raggedright{% \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax \advance\rightskip by \lispnarrowing \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } \def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% \def\temp{#1}% \ifx\temp\empty \else {\bf #1: }% \fi } % @indentedblock is like @quotation, but indents only on the left and % has no optional argument. % \makedispenvdef{indentedblock}{\indentedblockstart} % \def\indentedblockstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi } % Keep a nonzero parskip for the environment, since we're doing normal filling. % \def\Eindentedblock{% \par {\parskip=0pt \afterenvbreak}% } \def\Esmallindentedblock{\Eindentedblock} % LaTeX-like @verbatim...@end verbatim and @verb{...} % If we want to allow any as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % % [Knuth] p.344; only we need to do the other characters Texinfo sets % active too. Otherwise, they get lost as the first character on a % verbatim line. \def\dospecials{% \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setcodequotes \tabeightspaces % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces } % Setup for the @verbatim environment % % Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % % We typeset each line of the verbatim in an \hbox, so we can handle % tabs. \newbox\verbbox \def\starttabbox{\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab \divide\dimen\verbbox by\tabw \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw \wd\verbbox=\dimen\verbbox \leavevmode\box\verbbox \starttabbox }% } \endgroup % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart \tt % easiest (and conventionally used) font for verbatim \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}% \tabexpand \setcodequotes % Respect line breaks, % print special symbols as themselves, and % make each space count. % Must do in this order: \obeylines \uncatcodespecials \sepspaces } % Do the @verb magic: verbatim text is quoted by unique % delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % \def\verb{\begingroup\setupverb\doverb} % % % Do the @verbatim magic: define the macro \doverbatim so that % the (first) argument ends when '@end verbatim' is reached, ie: % % \def\doverbatim#1@end verbatim{#1} % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] % \begingroup \catcode`\ =\active \obeylines % % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. \xdef\doverbatim#1^^M#2@end verbatim{% \starttabbox#2\egroup\noexpand\end\gobble verbatim}% % We really want {...\end verbatim} in the body of the macro, but % without the active space; thus we have to use \xdef and \gobble. % The \egroup ends the \verbbox started at the end of the last line in % the block. \endgroup % \envdef\verbatim{% \setnormaldispenv\setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim {% \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \edef\tmp{\noexpand\input #1 } \expandafter }\expandafter\starttabbox\tmp\egroup \afterenvbreak }% } % @copying ... @end copying. % Save the text away for @insertcopying later. % % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is desirable. % \def\copying{\checkenv{}\begingroup\scanargctxt\docopying} \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} % \def\insertcopying{% \begingroup \parindent = 0pt % paragraph indentation looks wrong on title page \scanexp\copyingtext \endgroup } \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) } % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } \newif\ifdoingtypefn % doing typed function? \newif\ifrettypeownline % typeset return type on its own line? % @deftypefnnewline on|off says whether the return type of typed functions % are printed on their own line. This affects @deftypefn, @deftypefun, % @deftypeop, and @deftypemethod. % \parseargdef\deftypefnnewline{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxideftypefnnl\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETtxideftypefnnl\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @txideftypefnnl value `\temp', must be on|off}% \fi\fi } % \dosubind {index}{topic}{subtopic} % % If SUBTOPIC is present, precede it with a space, and call \doind. % (At some time during the 20th century, this made a two-level entry in an % index such as the operation index. Nobody seemed to notice the change in % behaviour though.) \def\dosubind#1#2#3{% \def\thirdarg{#3}% \ifx\thirdarg\empty \doind{#1}{#2}% \else \doind{#1}{#2\space#3}% \fi } % Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} % @deffn category class name args \makedefun{defop}#1 {\defopon{#1\ \putwordon}} % \defopon {category on}class name args \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deffngeneral {subind}category name args % \def\deffngeneral#1#2 #3 #4\endheader{% \dosubind{fn}{\code{#3}}{#1}% \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} % \deftypeopon {category on}class type name args \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deftypefngeneral {subind}category type name args % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} % \deftypecvof {category of}class type var args \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } % \deftypecvgeneral {subind}category type var args % \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% \dosubind{vr}{\code{#4}}{#1}% \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } % @defcv category class var args \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } % Types: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: \makedefun{defun}{\deffnheader{\putwordDeffunc} } \makedefun{defmac}{\deffnheader{\putwordDefmac} } \makedefun{defspec}{\deffnheader{\putwordDefspec} } \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } \makedefun{defvar}{\defvrheader{\putwordDefvar} } \makedefun{defopt}{\defvrheader{\putwordDefopt} } \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } \makedefun{defmethod}{\defopon\putwordMethodon} \makedefun{deftypemethod}{\deftypeopon\putwordMethodon} \makedefun{defivar}{\defcvof\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} % \defname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % Determine if we are typesetting the return type of a typed function % on a line by itself. \rettypeownlinefalse \ifdoingtypefn % doing a typed function specifically? % then check user option for putting return type on its own line: \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else \rettypeownlinetrue \fi \fi % % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % % Figure out line sizes for the paragraph shape. We'll always have at % least two. \tempnum = 2 % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip % % If doing a return type on its own line, we'll have another line. \ifrettypeownline \advance\tempnum by 1 \def\maybeshapeline{0in \hsize}% \else \def\maybeshapeline{}% \fi % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % % The final paragraph shape: \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 % % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize % \hsize has to be shortened this way: \kern\leftskip % Intentionally do not respect \rightskip, since we need the space. }% % % Allow all lines to be underfull without complaint: \tolerance=10000 \hbadness=10000 \exdentamount=\defbodyindent {% % defun fonts. We use typewriter by default (used to be bold) because: % . we're printing identifiers, they should be in tt in principle. % . in languages with many accents, such as Czech or French, it's % common to leave accents off identifiers. The result looks ok in % tt, but exceedingly strange in rm. % . we don't want -- and --- to be treated as ligatures. % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt \def\temp{#2}% text of the return type \ifx\temp\empty\else \tclose{\temp}% typeset the return type \ifrettypeownline % put return type on its own line; prohibit line break following: \hfil\vadjust{\nobreak}\break \else \space % type on same line, so just followed by a space \fi \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \rmfont % \boldbrax % arguments will be output next, if any. } % Print arguments in slanted roman (not ttsl), inconsistently with using % tt for the name. This is because literal text is sometimes needed in % the argument list (groff manual), and ttsl and tt are not very % distinguishable. Prevent hyphenation at `-' chars. % \def\defunargs#1{% % use sl by default (not ttsl), % tt for the names. \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we % want a way to get ttsl. We used to recommend @var for that, so % leave the code in, but it's strange for @var to lead to typewriter. % Nowadays we recommend @code, since the difference between a ttsl hyphen % and a tt hyphen is pretty tiny. @code also disables ?` !`. \def\var##1{{\setregularquotes\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \let\ampchar\& \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi \let\E=\expandafter % Used at the time of macro expansion. % Argument is macro body with arguments substituted \def\scanmacro#1{% \newlinechar`\^^M % expand the expansion of \eatleadingcr twice to maybe remove a leading % newline (and \else and \fi tokens), then call \eatspaces on the result. \def\xeatspaces##1{% \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1% }}% \def\xempty##1{}% % % Process the macro body under the current catcode regime. \scantokens{#1@comment}% % % The \comment is to remove the \newlinechar added by \scantokens, and % can be noticed by \parsearg. Note \c isn't used because this means cedilla % in math mode. } % Used for copying and captions \def\scanexp#1{% \expandafter\scanmacro\expandafter{#1}% } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \commondummyword\macro1\commondummyword\macro2... % Currently is also contains all @aliases; the list can be split % if there is a need. \def\macrolist{} % Add the macro to \macrolist \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} \def\addtomacrolistxxx#1{% \toks0 = \expandafter{\macrolist\commondummyword#1}% \xdef\macrolist{\the\toks0}% } % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname } % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } {\catcode`\^^M=\other% \gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}% % Warning: this won't work for a delimited argument % or for an empty argument % Trim a single trailing ^^M off a string. {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \ % to recognize macro arguments; this is the job of \mbodybackslash. % % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. % \def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \passthroughcharstrue } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\@=\other \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\ =\other \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } % Used when scanning braced macro arguments. Note, however, that catcode % changes here are ineffectual if the macro invocation was nested inside % an argument to another Texinfo command. \def\macroargctxt{% \scanctxt \catcode`\ =\active \catcode`\@=\other \catcode`\^^M=\other \catcode`\\=\active } \def\macrolineargctxt{% used for whole-line arguments without braces \scanctxt \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other } % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. % {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\margbackslash#1{\char`\#1 } \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0\relax \else \expandafter\parsemargdef \argl;% \if\paramno>256\relax \ifx\eTeXversion\thisisundefined \errhelp = \EMsimple \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} \fi \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax \let\commondummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% \ifx #1\relax % remove this \else \noexpand\commondummyword \noexpand#1% \fi } % \getargs -- Parse the arguments to a @macro line. Set \macname to % the name of the macro, and \argl to the braced argument list. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % This made use of the feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. % Parse the optional {params} list to @macro or @rmacro. % Set \paramno to the number of arguments, % and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a % three-param macro.) Define \macarg.BLAH for each BLAH in the params % list to some hook where the argument is to be expanded. If there are % less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % % If there are 10 or more arguments, a different technique is used: see % \parsemmanyargdef. % \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax % \hash is redefined to `#' later to get it into definitions \let\xeatspaces\relax \let\xempty\relax \parsemargdefxxx#1,;,% \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments \fi } \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} % the \xempty{} is to give \eatleadingcr an argument in the case of an % empty macro argument. % \parsemacbody, \parsermacbody % % Read recursive and nonrecursive macro bodies. (They're different since % rec and nonrec macros end differently.) % % We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro % body to be transformed. % Set \macrobody to the body of the macro, and call \defmacro. % {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% \xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% \xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% % Make @ a letter, so that we can make private-to-Texinfo macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax %%%%%%%%%%%%%% Code for > 10 arguments only %%%%%%%%%%%%%%%%%% % If there are 10 or more arguments, a different technique is used, where the % hook remains in the body, and when macro is to be expanded the body is % processed again to replace the arguments. % % In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the % argument N value and then \edef the body (nothing else will expand because of % the catcode regime under which the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, no macro can have more than 256 arguments (else error). % % In case that there are 10 or more arguments we parse again the arguments % list to set new definitions for the \macarg.BLAH macros corresponding to % each BLAH argument. It was anyhow needed to parse already once this list % in order to count the arguments, and as macros with at most 9 arguments % are by far more frequent than macro with 10 or more arguments, defining % twice the \macarg.BLAH macros does not cost too much processing power. \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else \let\next=\parsemmanyargdef@@ \edef\tempb{\eatspaces{#1}}% \expandafter\def\expandafter\tempa \expandafter{\csname macarg.\tempb\endcsname}% % Note that we need some extra \noexpand\noexpand, this is because we % don't want \the to be expanded in the \parsermacbody as it uses an % \xdef . \expandafter\edef\tempa {\noexpand\noexpand\noexpand\the\toks\the\paramno}% \advance\paramno by 1\relax \fi\next} \let\endargs@\relax \let\nil@\relax \def\nilm@{\nil@}% \long\def\nillm@{\nil@}% % This macro is expanded during the Texinfo macro expansion, not during its % definition. It gets all the arguments' values and assigns them to macros % macarg.ARGNAME % % #1 is the macro name % #2 is the list of argument names % #3 is the list of argument values \def\getargvals@#1#2#3{% \def\macargdeflist@{}% \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. \def\paramlist{#2,\nil@}% \def\macroname{#1}% \begingroup \macroargctxt \def\argvaluelist{#3,\nil@}% \def\@tempa{#3}% \ifx\@tempa\empty \setemptyargvalues@ \else \getargvals@@ \fi } \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. \ifx\argvaluelist\nillm@ \else \errhelp = \EMsimple \errmessage{Too many arguments in macro `\macroname'!}% \fi \let\next\macargexpandinbody@ \else \ifx\argvaluelist\nillm@ % No more arguments values passed to macro. Set remaining named-arg % macros to empty. \let\next\setemptyargvalues@ \else % pop current arg name into \@tempb \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% \expandafter\@tempa\expandafter{\paramlist}% % pop current argument value into \@tempc \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% \expandafter\@tempa\expandafter{\argvaluelist}% % Here \@tempb is the current arg name and \@tempc is the current arg value. % First place the new argument macro definition into \@tempd \expandafter\macname\expandafter{\@tempc}% \expandafter\let\csname macarg.\@tempb\endcsname\relax \expandafter\def\expandafter\@tempe\expandafter{% \csname macarg.\@tempb\endcsname}% \edef\@tempd{\long\def\@tempe{\the\macname}}% \push@\@tempd\macargdeflist@ \let\next\getargvals@@ \fi \fi \next } \def\push@#1#2{% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#2% \expandafter\expandafter\expandafter{% \expandafter#1#2}% } % Replace arguments by their values in the macro body, and place the result % in macro \@tempa. % \def\macvalstoargs@{% % To do this we use the property that token registers that are \the'ed % within an \edef expand only once. So we are going to place all argument % values into respective token registers. % % First we save the token context, and initialize argument numbering. \begingroup \paramno0\relax % Then, for each argument number #N, we place the corresponding argument % value into a new token list register \toks#N \expandafter\putargsintokens@\saveparamlist@,;,% % Then, we expand the body so that argument are replaced by their % values. The trick for values not to be expanded themselves is that they % are within tokens and that tokens expand only once in an \edef . \edef\@tempc{\csname mac.\macroname .body\endcsname}% % Now we restore the token stack pointer to free the token list registers % which we have used, but we make sure that expanded body is saved after % group. \expandafter \endgroup \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% } % Define the named-macro outside of this group and then close this group. % \def\macargexpandinbody@{% \expandafter \endgroup \macargdeflist@ % First the replace in body the macro arguments by their values, the result % is in \@tempa . \macvalstoargs@ % Then we point at the \norecurse or \gobble (for recursive) macro value % with \@tempb . \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname % Depending on whether it is recursive or not, we need some tailing % \egroup . \ifx\@tempb\gobble \let\@tempc\relax \else \let\@tempc\egroup \fi % And now we do the real job: \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% \@tempd } \def\putargsintokens@#1,{% \if#1;\let\next\relax \else \let\next\putargsintokens@ % First we allocate the new token list register, and give it a temporary % alias \@tempb . \toksdef\@tempb\the\paramno % Then we place the argument value into that token list register. \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname \expandafter\@tempb\expandafter{\@tempa}% \advance\paramno by 1\relax \fi \next } % Trailing missing arguments are set to empty. % \def\setemptyargvalues@{% \ifx\paramlist\nilm@ \let\next\macargexpandinbody@ \else \expandafter\setemptyargvaluesparser@\paramlist\endargs@ \let\next\setemptyargvalues@ \fi \next } \def\setemptyargvaluesparser@#1,#2\endargs@{% \expandafter\def\expandafter\@tempa\expandafter{% \expandafter\def\csname macarg.#1\endcsname{}}% \push@\@tempa\macargdeflist@ \def\paramlist{#2}% } % #1 is the element target macro % #2 is the list macro % #3,#4\endargs@ is the list value \def\pop@#1#2#3,#4\endargs@{% \def#1{#3}% \def#2{#4}% } \long\def\longpop@#1#2#3,#4\endargs@{% \long\def#1{#3}% \long\def#2{#4}% } %%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%% % This defines a Texinfo @macro or @rmacro, called by \parsemacbody. % \macrobody has the body of the macro in it, with placeholders for % its parameters, looking like "\xeatspaces{\hash 1}". % \paramno is the number of parameters % \paramlist is a TeX parameter text, e.g. "#1,#2,#3," % There are four cases: macros of zero, one, up to nine, and many arguments. % \xdef is used so that macro definitions will survive the file % they're defined in: @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifnum\paramno=1 \def\xeatspaces##1{##1}% % This removes the pair of braces around the argument. We don't % use \eatspaces, because this can cause ends of lines to be lost % when the argument to \eatspaces is read, leading to line-based % commands like "@itemize" not being read correctly. \else \let\xeatspaces\relax % suppress expansion \fi \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\spaceisspace \noexpand\endlineisspace \noexpand\expandafter % skip any whitespace after the macro name. \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname{% \egroup \noexpand\scanmacro{\macrobody}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\braceorline \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \egroup \noexpand\scanmacro{\macrobody}% }% \else % at most 9 \ifnum\paramno<10\relax % @MACNAME sets the context for reading the macro argument % @MACNAME@@ gets the argument, processes backslashes and appends a % comma. % @MACNAME@@@ removes braces surrounding the argument list. % @MACNAME@@@@ scans the macro body with arguments substituted. \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\expandafter % This \expandafter skip any spaces after the \noexpand\macroargctxt % macro before we change the catcode of space. \noexpand\expandafter \expandafter\noexpand\csname\the\macname @@\endcsname}% \expandafter\xdef\csname\the\macname @@\endcsname##1{% \noexpand\passargtomacro \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname @@@@\endcsname\paramlist{% \egroup\noexpand\scanmacro{\macrobody}}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi} \catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % {\catcode`\@=0 \catcode`\\=13 % We need to manipulate \ so use @ as escape @catcode`@_=11 % private names @catcode`@!=11 % used as argument separator % \passargtomacro#1#2 - % Call #1 with a list of tokens #2, with any doubled backslashes in #2 % compressed to one. % % This implementation works by expansion, and not execution (so we cannot use % \def or similar). This reduces the risk of this failing in contexts where % complete expansion is done with no execution (for example, in writing out to % an auxiliary file for an index entry). % % State is kept in the input stream: the argument passed to % @look_ahead, @gobble_and_check_finish and @add_segment is % % THE_MACRO ARG_RESULT ! {PENDING_BS} NEXT_TOKEN (... rest of input) % % where: % THE_MACRO - name of the macro we want to call % ARG_RESULT - argument list we build to pass to that macro % PENDING_BS - either a backslash or nothing % NEXT_TOKEN - used to look ahead in the input stream to see what's coming next @gdef@passargtomacro#1#2{% @add_segment #1!{}@relax#2\@_finish\% } @gdef@_finish{@_finishx} @global@let@_finishx@relax % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 used to look ahead % % If the next token is not a backslash, process the rest of the argument; % otherwise, remove the next token. @gdef@look_ahead#1!#2#3#4{% @ifx#4\% @expandafter@gobble_and_check_finish @else @expandafter@add_segment @fi#1!{#2}#4#4% } % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 should be a backslash, which is gobbled. % #5 looks ahead % % Double backslash found. Add a single backslash, and look ahead. @gdef@gobble_and_check_finish#1!#2#3#4#5{% @add_segment#1\!{}#5#5% } @gdef@is_fi{@fi} % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 is input stream until next backslash % % Input stream is either at the start of the argument, or just after a % backslash sequence, either a lone backslash, or a doubled backslash. % NEXT_TOKEN contains the first token in the input stream: if it is \finish, % finish; otherwise, append to ARG_RESULT the segment of the argument up until % the next backslash. PENDING_BACKSLASH contains a backslash to represent % a backslash just before the start of the input stream that has not been % added to ARG_RESULT. @gdef@add_segment#1!#2#3#4\{% @ifx#3@_finish @call_the_macro#1!% @else % append the pending backslash to the result, followed by the next segment @expandafter@is_fi@look_ahead#1#2#4!{\}@fi % this @fi is discarded by @look_ahead. % we can't get rid of it with \expandafter because we don't know how % long #4 is. } % #1 - THE_MACRO % #2 - ARG_RESULT % #3 discards the res of the conditional in @add_segment, and @is_fi ends the % conditional. @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \braceorline MAC is used for a one-argument macro MAC. It checks % whether the next non-whitespace character is a {. It sets the context % for reading the argument (slightly different in the two cases). Then, % to read the argument, in the whole-line case, it then calls the regular % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC. % \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup \macroargctxt \expandafter\passargtomacro \else \macrolineargctxt\expandafter\parsearg \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Make them active and then expand them all to nothing. % \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next } \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{% \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in % cross-references. The @node line might or might not have commas, and % might or might not have spaces before the first comma, like: % @node foo , bar , ... % We don't want such trailing spaces in the node name. % \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} % % also remove a trailing comma, in case of something like this: % @node Help-Cross, , , Cross-refs \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}\omittopnode} % Used so that the @top node doesn't have to be wrapped in an @ifnottex % conditional. % \doignore goes to more effort to skip nested conditionals but we don't need % that here. \def\omittopnode{% \ifx\lastnode\wordTop \expandafter\ignorenode\fi } \def\wordTop{Top} % Until the next @node or @bye command, divert output to a box that is not % output. \def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}% \ignorenodebye } {\let\bye\relax \gdef\ignorenodebye{\let\bye\ignorenodebyedef} \gdef\ignorenodebyedef{\egroup(`Top' node ignored)\bye}} % The redefinition of \bye here is because it is declared \outer \let\lastnode=\empty % Write a cross-reference definition for the current node. #1 is the % type (Ynumbered, Yappendix, Ynothing). % \def\donoderef#1{% \ifx\lastnode\empty\else \setref{\lastnode}{#1}% \global\let\lastnode=\empty \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister % \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: % 1) NAME-title - the current sectioning name taken from \currentsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. % 3) NAME-pg - the page number. % % This is called from \donoderef, \anchor, and \dofloat. In the case of % floats, there is an additional part, which is not written here: % 4) NAME-lof - the text as it should appear in a @listoffloats. % \def\setref#1#2{% \pdfmkdest{#1}% \iflinks {% \requireauxfile \atdummies % preserve commands, but don't expand them % match definition in \xrdef, \refx, \xrefX. \def\value##1{##1}% \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\currentsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } % @xrefautosectiontitle on|off says whether @section(ing) names are used % automatically in xrefs, if the third arg is not explicitly specified. % This was provided as a "secret" @set xref-automatic-section-title % variable, now it's official. % \parseargdef\xrefautomaticsectiontitle{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', must be on|off}% \fi\fi } % % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref{\putwordsee{} \xrefXX} \def\xref{\putwordSee{} \xrefXX} \def\ref{\xrefXX} \def\xrefXX#1{\def\xrefXXarg{#1}\futurelet\tokenafterxref\xrefXXX} \def\xrefXXX{\expandafter\xrefX\expandafter[\xrefXXarg,,,,,,,]} % \newbox\toprefbox \newbox\printedrefnamebox \newbox\infofilenamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % % Get args without leading/trailing spaces. \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% % \def\infofilename{\ignorespaces #4}% \setbox\infofilenamebox = \hbox{\infofilename\unskip}% % \def\printedmanual{\ignorespaces #5}% \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% % % If the printed reference name (arg #3) was not explicitly given in % the @xref, figure out what we want to use. \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Auto section-title: use chapter/section title inside % the square brackets if we have it. \ifdim \wd\printedmanualbox > 0pt % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}}% \else % Otherwise just copy the Info node name. \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % % Make link in pdf output. \ifpdf % For pdfTeX and LuaTeX {\indexnofonts \makevalueexpandable \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \setpdfdestname{#1}% % \ifx\pdfdestname\empty \def\pdfdestname{Top}% no empty targets \fi % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfdestname}% \else goto name{\pdfmkpgn{\pdfdestname}}% \fi }% \setcolor{\linkcolor}% \else \ifx\XeTeXrevision\thisisundefined \else % For XeTeX {\indexnofonts \makevalueexpandable \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \setpdfdestname{#1}% % \ifx\pdfdestname\empty \def\pdfdestname{Top}% no empty targets \fi % \leavevmode \ifnum\filenamelength>0 % With default settings, % XeTeX (xdvipdfmx) replaces link destination names with integers. % In this case, the replaced destination names of % remote PDFs are no longer known. In order to avoid a replacement, % you can use xdvipdfmx's command line option `-C 0x0010'. % If you use XeTeX 0.99996+ (TeX Live 2016+), % this command line option is no longer necessary % because we can use the `dvipdfmx:config' special. \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}% \else \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (\pdfdestname) >> >>}% \fi }% \setcolor{\linkcolor}% \fi \fi {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \def\value##1{##1}% \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". \iffloat distinguishes them by % \Xthisreftitle being set to a magic string. \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}% \else \printedrefname \fi % % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox to print the node names, TeX does not insert % empty discretionaries after hyphens, which means that it will not % find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, % this is a loss. Therefore, we give the text of the node name % again, so it is as if TeX is seeing it for the first time. % \ifdim \wd\printedmanualbox > 0pt % Cross-manual reference with a printed manual name. % \crossmanualxref{\cite{\printedmanual\unskip}}% % \else\ifdim \wd\infofilenamebox > 0pt % Cross-manual reference with only an info filename (arg 4), no % printed manual name (arg 5). This is essentially the same as % the case above; we output the filename, since we have nothing else. % \crossmanualxref{\code{\infofilename\unskip}}% % \else % Reference within this manual. % % Only output a following space if the -snt ref is nonempty, as the ref % will be empty for @unnumbered and @anchor. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi % % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}% % Add a , if xref followed by a space \if\space\noexpand\tokenafterxref ,% \else\ifx\ \tokenafterxref ,% @TAB \else\ifx\*\tokenafterxref ,% @* \else\ifx\ \tokenafterxref ,% @SPACE \else\ifx\ \tokenafterxref ,% @NL \else\ifx\tie\tokenafterxref ,% @tie \fi\fi\fi\fi\fi\fi \fi \fi\fi \fi \endlink \endgroup} % Output a cross-manual xref to #1. Used just above (twice). % % Only include the text "Section ``foo'' in" if the foo is neither % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply % "see The Foo Manual", the idea being to refer to the whole manual. % % But, this being TeX, we can't easily compare our node name against the % string "Top" while ignoring the possible spaces before and after in % the input. By adding the arbitrary 7sp below, we make it much less % likely that a real node name would have the same width as "Top" (e.g., % in a monospaced font). Hopefully it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \def\crossmanualxref#1{% \setbox\toprefbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp % nonempty? \ifdim \wd2 = \wd\toprefbox \else % same as Top? \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi #1% } % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly % one that Bob is working on :). % \def\xrefprintnodename#1{[#1]} % Things referred to by \setref. % \def\Ynothing{} \def\Yomitfromtoc{} \def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 \putwordSection@tie \the\chapno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno \else \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } \def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } % \refx{NAME} - reference a cross-reference string named NAME. \def\refx#1{% \requireauxfile {% \indexnofonts \turnoffactive \def\value##1{##1}% \expandafter\global\expandafter\let\expandafter\thisrefX \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs {\toks0 = {#1}% avoid expansion of possibly-complex value \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \thisrefX \fi } % This is the macro invoked by entries in the aux file. Define a control % sequence for a cross-reference target (we prepend XR to the control sequence % name to avoid collisions). The value is the page number. If this is a float % type, we have more work to do. % \def\xrdef#1#2{% {% Expand the node or anchor name to remove control sequences. % \turnoffactive stops 8-bit characters being changed to commands % like @'e. \refx does the same to retrieve the value in the definition. \indexnofonts \turnoffactive \def\value##1{##1}% \xdef\safexrefname{#1}% }% % \bgroup \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% \egroup % We put the \gdef inside a group to avoid the definitions building up on % TeX's save stack, which can cause it to run out of space for aux files with % thousands of lines. \gdef doesn't use the save stack, but \csname does % when it defines an unknown control sequence as \relax. % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate at the beginning of the file. % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % Used when writing to the aux file, or when using data from it. \def\requireauxfile{% \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi \global\let\requireauxfile=\relax % Only do this once. } % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } \def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\active \catcode`\|=\active \catcode`\<=\active \catcode`\>=\active \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % \catcode`\\=\active % % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 } \def\readdatafile#1{% \begingroup \setupdatafile \input\jobname.#1 \endgroup} \message{insertions,} % including footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset (and anything else that uses % \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \gdef\dofootnote{% \insert\footins\bgroup % % Nested footnotes are not supported in TeX, that would take a lot % more work. (\startsavinginserts does not suffice.) \let\footnote=\errfootnotenest % % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \hsize=\txipagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Because we use hanging indentation in footnotes, a @noindent appears % to exdent this text, so make it be a no-op. makeinfo does not use % hanging indentation so @noindent can still be needed within footnote % text after an @example or the like (not that this is good style). \let\noindent = \relax % % Hang the footnote text off the number. Use \everypar in case the % footnote extends for more than one paragraph. \everypar = {\hang}% \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut % % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 \def\errfootnotenest{% \errhelp=\EMsimple \errmessage{Nested footnotes not supported in texinfo.tex, even though they work in makeinfo; sorry} } \def\errfootnoteheading{% \errhelp=\EMsimple \errmessage{Footnotes in chapters, sections, etc., are not supported} } % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from https://ctan.org/texarchive/macros/texinfo/texinfo/doc/epsf.tex.} % \def\image#1{% \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. % #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names \makevalueexpandable % If the image is by itself, center it. \ifvmode \imagevmodetrue \else \ifx\centersub\centerV % for @center @image, we need a vbox so we can have our vertical space \imagevmodetrue \vbox\bgroup % vbox has better behavior than vtop herev \fi\fi % \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. % However, if we're at the top level, we don't want the % normal paragraph indentation. % On the other hand, if we are in the case of @center @image, we don't % want to start a paragraph, which will create a hsize-width box and % eradicate the centering. \ifx\centersub\centerV \else \imageindent \fi % % Output the image. \ifpdf % For pdfTeX and LuaTeX <= 0.80 \dopdfimage{#1}{#2}{#3}% \else \ifx\XeTeXrevision\thisisundefined % For epsf.tex % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \epsfbox{#1.eps}% \else % For XeTeX \doxeteximage{#1}{#2}{#3}% \fi \fi % \ifimagevmode \medskip % space after a standalone image \fi \ifx\centersub\centerV \egroup \fi \endgroup} % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, % etc. We don't actually implement floating yet, we always include the % float "here". But it seemed the best name for the future. % \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} % There may be a space before second and/or third parameter; delete it. \def\eatcommaspace#1, {#1,} % #1 is the optional FLOATTYPE, the text label for this float, typically % "Figure", "Table", "Example", etc. Can't contain commas. If omitted, % this float will not be numbered and cannot be referred to. % % #2 is the optional xref label. Also must be present for the float to % be referable. % % #3 is the optional positioning argument; for now, it is ignored. It % will somehow specify the positions allowed to float to (here, top, bottom). % % We keep a separate counter for each FLOATTYPE, which we reset at each % chapter-level command. \let\resetallfloatnos=\empty % \def\dofloat#1,#2,#3,#4\finish{% \let\thiscaption=\empty \let\thisshortcaption=\empty % % don't lose footnotes inside @float. % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \startsavinginserts % % We can't be used inside a paragraph. \par % \vtop\bgroup \def\floattype{#1}% \def\floatlabel{#2}% \def\floatloc{#3}% we do nothing with this yet. % \ifx\floattype\empty \let\safefloattype=\empty \else {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% \fi % % If label is given but no type, we handle that as the empty type. \ifx\floatlabel\empty \else % We want each FLOATTYPE to be numbered separately (Figure 1, % Table 1, Figure 2, ...). (And if no label, no number.) % \expandafter\getfloatno\csname\safefloattype floatno\endcsname \global\advance\floatno by 1 % {% % This magic value for \currentsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % \edef\currentsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi % % start with \parskip glue, I guess. \vskip\parskip % % Don't suppress indentation if a float happens to start a section. \restorefirstparagraphindent } % we have these possibilities: % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap % @float Foo,lbl & no caption: Foo 1.1 % @float Foo & @caption{Cap}: Foo: Cap % @float Foo & no caption: Foo % @float ,lbl & Caption{Cap}: 1.1: Cap % @float ,lbl & no caption: 1.1 % @float & @caption{Cap}: Cap % @float & no caption: % \def\Efloat{% \let\floatident = \empty % % In all cases, if we have a float type, it comes first. \ifx\floattype\empty \else \def\floatident{\floattype}\fi % % If we have an xref label, the number comes next. \ifx\floatlabel\empty \else \ifx\floattype\empty \else % if also had float type, need tie first. \appendtomacro\floatident{\tie}% \fi % the number. \appendtomacro\floatident{\chaplevelprefix\the\floatno}% \fi % % Start the printed caption with what we've constructed in % \floatident, but keep it separate; we need \floatident again. \let\captionline = \floatident % \ifx\thiscaption\empty \else \ifx\floatident\empty \else \appendtomacro\captionline{: }% had ident, so need a colon between \fi % % caption text. \appendtomacro\captionline{\scanexp\thiscaption}% \fi % % If we have anything to print, print it, with space before. % Eventually this needs to become an \insert. \ifx\captionline\empty \else \vskip.5\parskip \captionline % % Space below caption. \vskip\parskip \fi % % If have an xref label, write the list of floats info. Do this % after the caption, to avoid chance of it being a breakpoint. \ifx\floatlabel\empty \else % Write the text that goes in the lof to the aux file as % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% \requireauxfile \atdummies % \ifx\thisshortcaption\empty \def\gtemp{\thiscaption}% \else \def\gtemp{\thisshortcaption}% \fi \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % \checkinserts } % Append the tokens #2 to the definition of macro #1, not expanding either. % \def\appendtomacro#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } % @caption, @shortcaption % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} \def\defcaption#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. \def\getfloatno#1{% \ifx#1\relax % Haven't seen this figure type before. \csname newcount\endcsname #1% % % Remember to reset this floatno at the next chap. \expandafter\gdef\expandafter\resetallfloatnos \expandafter{\resetallfloatnos #1=0 }% \fi \let\floatno#1% } % \setref calls this to get the XREFLABEL-snt value. We want an @xref % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we % first read the @float command. % \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% % Magic string used for the XREFLABEL-title value, so \xrefX can % distinguish floats from other xref types. \def\floatmagic{!!float!!} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic % \currentsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \let_ = \normalunderscore % normal _ character for filename test \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore #1_\finish \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX } % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % XeTeX and LuaTeX can handle Unicode natively. % Their default I/O uses UTF-8 sequences instead of a byte-wise operation. % Other TeX engines' I/O (pdfTeX, etc.) is byte-wise. % \newif\iftxinativeunicodecapable \newif\iftxiusebytewiseio \ifx\XeTeXrevision\thisisundefined \ifx\luatexversion\thisisundefined \txinativeunicodecapablefalse \txiusebytewiseiotrue \else \txinativeunicodecapabletrue \txiusebytewiseiofalse \fi \else \txinativeunicodecapabletrue \txiusebytewiseiofalse \fi % Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex % for non-UTF-8 (byte-wise) encodings. % \def\setbytewiseio{% \ifx\XeTeXrevision\thisisundefined \else \XeTeXdefaultencoding "bytes" % For subsequent files to be read \XeTeXinputencoding "bytes" % For document root file % Unfortunately, there seems to be no corresponding XeTeX command for % output encoding. This is a problem for auxiliary index and TOC files. % The only solution would be perhaps to write out @U{...} sequences in % place of non-ASCII characters. \fi \ifx\luatexversion\thisisundefined \else \directlua{ local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub local function convert_char (char) return utf8_char(byte(char)) end local function convert_line (line) return gsub(line, ".", convert_char) end callback.register("process_input_buffer", convert_line) local function convert_line_out (line) local line_out = "" for c in string.utfvalues(line) do line_out = line_out .. string.char(c) end return line_out end callback.register("process_output_buffer", convert_line_out) } \fi \txiusebytewiseiotrue } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz} \def\documentencodingzzz#1{% % % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \iftxinativeunicodecapable % For native Unicode handling (XeTeX and LuaTeX) \nativeunicodechardefs \else % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX) \setnonasciicharscatcode\active % since we already invoked \utfeightchardefs at the top level % (below), do not re-invoke it, otherwise our check for duplicated % definitions gets triggered. Making non-ascii chars active is % sufficient. \fi % \else \message{Ignoring unknown document encoding: #1.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii % \ifx\XeTeXrevision\thisisundefined \else \ifx \declaredencoding \utfeight \else \ifx \declaredencoding \ascii \else \message{Warning: XeTeX with non-UTF-8 encodings cannot handle % non-ASCII characters in auxiliary files.}% \fi \fi \fi } % emacs-page % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing, sorry: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % \def\gdefchar#1#2{% \gdef#1{% \ifpassthroughchars \string#1% \else #2% \fi }} % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdefchar^^a0{\tie} \gdefchar^^a1{\exclamdown} \gdefchar^^a2{{\tcfont \char162}} % cent \gdefchar^^a3{\pounds{}} \gdefchar^^a4{{\tcfont \char164}} % currency \gdefchar^^a5{{\tcfont \char165}} % yen \gdefchar^^a6{{\tcfont \char166}} % broken bar \gdefchar^^a7{\S} \gdefchar^^a8{\"{}} \gdefchar^^a9{\copyright{}} \gdefchar^^aa{\ordf} \gdefchar^^ab{\guillemetleft{}} \gdefchar^^ac{\ensuremath\lnot} \gdefchar^^ad{\-} \gdefchar^^ae{\registeredsymbol{}} \gdefchar^^af{\={}} % \gdefchar^^b0{\textdegree} \gdefchar^^b1{$\pm$} \gdefchar^^b2{$^2$} \gdefchar^^b3{$^3$} \gdefchar^^b4{\'{}} \gdefchar^^b5{$\mu$} \gdefchar^^b6{\P} \gdefchar^^b7{\ensuremath\cdot} \gdefchar^^b8{\cedilla\ } \gdefchar^^b9{$^1$} \gdefchar^^ba{\ordm} \gdefchar^^bb{\guillemetright{}} \gdefchar^^bc{$1\over4$} \gdefchar^^bd{$1\over2$} \gdefchar^^be{$3\over4$} \gdefchar^^bf{\questiondown} % \gdefchar^^c0{\`A} \gdefchar^^c1{\'A} \gdefchar^^c2{\^A} \gdefchar^^c3{\~A} \gdefchar^^c4{\"A} \gdefchar^^c5{\ringaccent A} \gdefchar^^c6{\AE} \gdefchar^^c7{\cedilla C} \gdefchar^^c8{\`E} \gdefchar^^c9{\'E} \gdefchar^^ca{\^E} \gdefchar^^cb{\"E} \gdefchar^^cc{\`I} \gdefchar^^cd{\'I} \gdefchar^^ce{\^I} \gdefchar^^cf{\"I} % \gdefchar^^d0{\DH} \gdefchar^^d1{\~N} \gdefchar^^d2{\`O} \gdefchar^^d3{\'O} \gdefchar^^d4{\^O} \gdefchar^^d5{\~O} \gdefchar^^d6{\"O} \gdefchar^^d7{$\times$} \gdefchar^^d8{\O} \gdefchar^^d9{\`U} \gdefchar^^da{\'U} \gdefchar^^db{\^U} \gdefchar^^dc{\"U} \gdefchar^^dd{\'Y} \gdefchar^^de{\TH} \gdefchar^^df{\ss} % \gdefchar^^e0{\`a} \gdefchar^^e1{\'a} \gdefchar^^e2{\^a} \gdefchar^^e3{\~a} \gdefchar^^e4{\"a} \gdefchar^^e5{\ringaccent a} \gdefchar^^e6{\ae} \gdefchar^^e7{\cedilla c} \gdefchar^^e8{\`e} \gdefchar^^e9{\'e} \gdefchar^^ea{\^e} \gdefchar^^eb{\"e} \gdefchar^^ec{\`{\dotless i}} \gdefchar^^ed{\'{\dotless i}} \gdefchar^^ee{\^{\dotless i}} \gdefchar^^ef{\"{\dotless i}} % \gdefchar^^f0{\dh} \gdefchar^^f1{\~n} \gdefchar^^f2{\`o} \gdefchar^^f3{\'o} \gdefchar^^f4{\^o} \gdefchar^^f5{\~o} \gdefchar^^f6{\"o} \gdefchar^^f7{$\div$} \gdefchar^^f8{\o} \gdefchar^^f9{\`u} \gdefchar^^fa{\'u} \gdefchar^^fb{\^u} \gdefchar^^fc{\"u} \gdefchar^^fd{\'y} \gdefchar^^fe{\th} \gdefchar^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdefchar^^a4{\euro{}} \gdefchar^^a6{\v S} \gdefchar^^a8{\v s} \gdefchar^^b4{\v Z} \gdefchar^^b8{\v z} \gdefchar^^bc{\OE} \gdefchar^^bd{\oe} \gdefchar^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdefchar^^a0{\tie} \gdefchar^^a1{\ogonek{A}} \gdefchar^^a2{\u{}} \gdefchar^^a3{\L} \gdefchar^^a4{\missingcharmsg{CURRENCY SIGN}} \gdefchar^^a5{\v L} \gdefchar^^a6{\'S} \gdefchar^^a7{\S} \gdefchar^^a8{\"{}} \gdefchar^^a9{\v S} \gdefchar^^aa{\cedilla S} \gdefchar^^ab{\v T} \gdefchar^^ac{\'Z} \gdefchar^^ad{\-} \gdefchar^^ae{\v Z} \gdefchar^^af{\dotaccent Z} % \gdefchar^^b0{\textdegree{}} \gdefchar^^b1{\ogonek{a}} \gdefchar^^b2{\ogonek{ }} \gdefchar^^b3{\l} \gdefchar^^b4{\'{}} \gdefchar^^b5{\v l} \gdefchar^^b6{\'s} \gdefchar^^b7{\v{}} \gdefchar^^b8{\cedilla\ } \gdefchar^^b9{\v s} \gdefchar^^ba{\cedilla s} \gdefchar^^bb{\v t} \gdefchar^^bc{\'z} \gdefchar^^bd{\H{}} \gdefchar^^be{\v z} \gdefchar^^bf{\dotaccent z} % \gdefchar^^c0{\'R} \gdefchar^^c1{\'A} \gdefchar^^c2{\^A} \gdefchar^^c3{\u A} \gdefchar^^c4{\"A} \gdefchar^^c5{\'L} \gdefchar^^c6{\'C} \gdefchar^^c7{\cedilla C} \gdefchar^^c8{\v C} \gdefchar^^c9{\'E} \gdefchar^^ca{\ogonek{E}} \gdefchar^^cb{\"E} \gdefchar^^cc{\v E} \gdefchar^^cd{\'I} \gdefchar^^ce{\^I} \gdefchar^^cf{\v D} % \gdefchar^^d0{\DH} \gdefchar^^d1{\'N} \gdefchar^^d2{\v N} \gdefchar^^d3{\'O} \gdefchar^^d4{\^O} \gdefchar^^d5{\H O} \gdefchar^^d6{\"O} \gdefchar^^d7{$\times$} \gdefchar^^d8{\v R} \gdefchar^^d9{\ringaccent U} \gdefchar^^da{\'U} \gdefchar^^db{\H U} \gdefchar^^dc{\"U} \gdefchar^^dd{\'Y} \gdefchar^^de{\cedilla T} \gdefchar^^df{\ss} % \gdefchar^^e0{\'r} \gdefchar^^e1{\'a} \gdefchar^^e2{\^a} \gdefchar^^e3{\u a} \gdefchar^^e4{\"a} \gdefchar^^e5{\'l} \gdefchar^^e6{\'c} \gdefchar^^e7{\cedilla c} \gdefchar^^e8{\v c} \gdefchar^^e9{\'e} \gdefchar^^ea{\ogonek{e}} \gdefchar^^eb{\"e} \gdefchar^^ec{\v e} \gdefchar^^ed{\'{\dotless{i}}} \gdefchar^^ee{\^{\dotless{i}}} \gdefchar^^ef{\v d} % \gdefchar^^f0{\dh} \gdefchar^^f1{\'n} \gdefchar^^f2{\v n} \gdefchar^^f3{\'o} \gdefchar^^f4{\^o} \gdefchar^^f5{\H o} \gdefchar^^f6{\"o} \gdefchar^^f7{$\div$} \gdefchar^^f8{\v r} \gdefchar^^f9{\ringaccent u} \gdefchar^^fa{\'u} \gdefchar^^fb{\H u} \gdefchar^^fc{\"u} \gdefchar^^fd{\'y} \gdefchar^^fe{\cedilla t} \gdefchar^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } % Give non-ASCII bytes the active definitions for processing UTF-8 sequences \begingroup \catcode`\~13 \catcode`\$12 \catcode`\"12 % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp % substituting ~ and $ with a character token of that value. \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uccode`\$\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} % For bytes other than the first in a UTF-8 sequence. Not expected to % be expanded except when writing to auxiliary files. \countUTFx = "80 \countUTFy = "C2 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $\fi}}% \UTFviiiLoop \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiTwoOctets\expandafter$\fi}}% \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiThreeOctets\expandafter$\fi}}% \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiFourOctets\expandafter$\fi }}% \UTFviiiLoop \endgroup \def\globallet{\global\let} % save some \expandafter's below % @U{xxxx} to produce U+xxxx, if we support it. \def\U#1{% \expandafter\ifx\csname uni:#1\endcsname \relax \iftxinativeunicodecapable % All Unicode characters can be used if native Unicode handling is % active. However, if the font does not have the glyph, % letters are missing. \begingroup \uccode`\.="#1\relax \uppercase{.} \endgroup \else \errhelp = \EMsimple \errmessage{Unicode character U+#1 not supported, sorry}% \fi \else \csname uni:#1\endcsname \fi } % These macros are used here to construct the name of a control % sequence to be defined. \def\UTFviiiTwoOctetsName#1#2{% \csname u8:#1\string #2\endcsname}% \def\UTFviiiThreeOctetsName#1#2#3{% \csname u8:#1\string #2\string #3\endcsname}% \def\UTFviiiFourOctetsName#1#2#3#4{% \csname u8:#1\string #2\string #3\string #4\endcsname}% % For UTF-8 byte sequences (TeX, e-TeX and pdfTeX), % provide a definition macro to replace a Unicode character; % this gets used by the @U command % \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacterUTFviii#1#2{% \countUTFz = "#1\relax \begingroup \parseXMLCharref % Give \u8:... its definition. The sequence of seven \expandafter's % expands after the \gdef three times, e.g. % % 1. \UTFviiTwoOctetsName B1 B2 % 2. \csname u8:B1 \string B2 \endcsname % 3. \u8: B1 B2 (a single control sequence token) % \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter\gdef \UTFviiiTmp{#2}% % \expandafter\ifx\csname uni:#1\endcsname \relax \else \message{Internal error, already defined: #1}% \fi % % define an additional control sequence for this code point. \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp \endgroup} % % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp % to the corresponding UTF-8 sequence. \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctetsName.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}% \fi\fi\fi } % Extract a byte from the end of the UTF-8 representation of \countUTFx. % It must be a non-initial byte in the sequence. % Change \uccode of #1 for it to be used in \parseUTFviiiB as one % of the bytes. \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz % Save to be the future value of \countUTFz. \multiply\countUTFz by 64 % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract % in order to get the last five bits. \advance\countUTFx by -\countUTFz % Convert this to the byte in the UTF-8 sequence. \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} % Used to put a UTF-8 byte sequence into \UTFviiiTmp % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8 % sequence. % #2 is one of the \UTFviii*OctetsName macros. % #3 is always a full stop (.) % #4 is a template for the other bytes in the sequence. The values for these % bytes is substituted in here with \uppercase using the \uccode's. \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup % For native Unicode handling (XeTeX and LuaTeX), % provide a definition macro that sets a catcode to `other' non-globally % \def\DeclareUnicodeCharacterNativeOther#1#2{% \catcode"#1=\other } % https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M % U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block) % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block) % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B % % Many of our renditions are less than wonderful, and all the missing % characters are available somewhere. Loading the necessary fonts % awaits user request. We can't truly support Unicode without % reimplementing everything that's been done in LaTeX for many years, % plus probably using luatex or xetex, and who knows what else. % We won't be doing that here in this simple file. But we can try to at % least make most of the characters not bomb out. % \def\unicodechardefs{% \DeclareUnicodeCharacter{00A0}{\tie}% \DeclareUnicodeCharacter{00A1}{\exclamdown}% \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent \DeclareUnicodeCharacter{00A3}{\pounds{}}% \DeclareUnicodeCharacter{00A4}{{\tcfont \char164}}% 0244=currency \DeclareUnicodeCharacter{00A5}{{\tcfont \char165}}% 0245=yen \DeclareUnicodeCharacter{00A6}{{\tcfont \char166}}% 0246=brokenbar \DeclareUnicodeCharacter{00A7}{\S}% \DeclareUnicodeCharacter{00A8}{\"{ }}% \DeclareUnicodeCharacter{00A9}{\copyright{}}% \DeclareUnicodeCharacter{00AA}{\ordf}% \DeclareUnicodeCharacter{00AB}{\guillemetleft{}}% \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}% \DeclareUnicodeCharacter{00AD}{\-}% \DeclareUnicodeCharacter{00AE}{\registeredsymbol{}}% \DeclareUnicodeCharacter{00AF}{\={ }}% % \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}% \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}% \DeclareUnicodeCharacter{00B2}{$^2$}% \DeclareUnicodeCharacter{00B3}{$^3$}% \DeclareUnicodeCharacter{00B4}{\'{ }}% \DeclareUnicodeCharacter{00B5}{$\mu$}% \DeclareUnicodeCharacter{00B6}{\P}% \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}% \DeclareUnicodeCharacter{00B8}{\cedilla{ }}% \DeclareUnicodeCharacter{00B9}{$^1$}% \DeclareUnicodeCharacter{00BA}{\ordm}% \DeclareUnicodeCharacter{00BB}{\guillemetright{}}% \DeclareUnicodeCharacter{00BC}{$1\over4$}% \DeclareUnicodeCharacter{00BD}{$1\over2$}% \DeclareUnicodeCharacter{00BE}{$3\over4$}% \DeclareUnicodeCharacter{00BF}{\questiondown}% % \DeclareUnicodeCharacter{00C0}{\`A}% \DeclareUnicodeCharacter{00C1}{\'A}% \DeclareUnicodeCharacter{00C2}{\^A}% \DeclareUnicodeCharacter{00C3}{\~A}% \DeclareUnicodeCharacter{00C4}{\"A}% \DeclareUnicodeCharacter{00C5}{\AA}% \DeclareUnicodeCharacter{00C6}{\AE}% \DeclareUnicodeCharacter{00C7}{\cedilla{C}}% \DeclareUnicodeCharacter{00C8}{\`E}% \DeclareUnicodeCharacter{00C9}{\'E}% \DeclareUnicodeCharacter{00CA}{\^E}% \DeclareUnicodeCharacter{00CB}{\"E}% \DeclareUnicodeCharacter{00CC}{\`I}% \DeclareUnicodeCharacter{00CD}{\'I}% \DeclareUnicodeCharacter{00CE}{\^I}% \DeclareUnicodeCharacter{00CF}{\"I}% % \DeclareUnicodeCharacter{00D0}{\DH}% \DeclareUnicodeCharacter{00D1}{\~N}% \DeclareUnicodeCharacter{00D2}{\`O}% \DeclareUnicodeCharacter{00D3}{\'O}% \DeclareUnicodeCharacter{00D4}{\^O}% \DeclareUnicodeCharacter{00D5}{\~O}% \DeclareUnicodeCharacter{00D6}{\"O}% \DeclareUnicodeCharacter{00D7}{\ensuremath\times}% \DeclareUnicodeCharacter{00D8}{\O}% \DeclareUnicodeCharacter{00D9}{\`U}% \DeclareUnicodeCharacter{00DA}{\'U}% \DeclareUnicodeCharacter{00DB}{\^U}% \DeclareUnicodeCharacter{00DC}{\"U}% \DeclareUnicodeCharacter{00DD}{\'Y}% \DeclareUnicodeCharacter{00DE}{\TH}% \DeclareUnicodeCharacter{00DF}{\ss}% % \DeclareUnicodeCharacter{00E0}{\`a}% \DeclareUnicodeCharacter{00E1}{\'a}% \DeclareUnicodeCharacter{00E2}{\^a}% \DeclareUnicodeCharacter{00E3}{\~a}% \DeclareUnicodeCharacter{00E4}{\"a}% \DeclareUnicodeCharacter{00E5}{\aa}% \DeclareUnicodeCharacter{00E6}{\ae}% \DeclareUnicodeCharacter{00E7}{\cedilla{c}}% \DeclareUnicodeCharacter{00E8}{\`e}% \DeclareUnicodeCharacter{00E9}{\'e}% \DeclareUnicodeCharacter{00EA}{\^e}% \DeclareUnicodeCharacter{00EB}{\"e}% \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}% \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}% \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}% \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}% % \DeclareUnicodeCharacter{00F0}{\dh}% \DeclareUnicodeCharacter{00F1}{\~n}% \DeclareUnicodeCharacter{00F2}{\`o}% \DeclareUnicodeCharacter{00F3}{\'o}% \DeclareUnicodeCharacter{00F4}{\^o}% \DeclareUnicodeCharacter{00F5}{\~o}% \DeclareUnicodeCharacter{00F6}{\"o}% \DeclareUnicodeCharacter{00F7}{\ensuremath\div}% \DeclareUnicodeCharacter{00F8}{\o}% \DeclareUnicodeCharacter{00F9}{\`u}% \DeclareUnicodeCharacter{00FA}{\'u}% \DeclareUnicodeCharacter{00FB}{\^u}% \DeclareUnicodeCharacter{00FC}{\"u}% \DeclareUnicodeCharacter{00FD}{\'y}% \DeclareUnicodeCharacter{00FE}{\th}% \DeclareUnicodeCharacter{00FF}{\"y}% % \DeclareUnicodeCharacter{0100}{\=A}% \DeclareUnicodeCharacter{0101}{\=a}% \DeclareUnicodeCharacter{0102}{\u{A}}% \DeclareUnicodeCharacter{0103}{\u{a}}% \DeclareUnicodeCharacter{0104}{\ogonek{A}}% \DeclareUnicodeCharacter{0105}{\ogonek{a}}% \DeclareUnicodeCharacter{0106}{\'C}% \DeclareUnicodeCharacter{0107}{\'c}% \DeclareUnicodeCharacter{0108}{\^C}% \DeclareUnicodeCharacter{0109}{\^c}% \DeclareUnicodeCharacter{010A}{\dotaccent{C}}% \DeclareUnicodeCharacter{010B}{\dotaccent{c}}% \DeclareUnicodeCharacter{010C}{\v{C}}% \DeclareUnicodeCharacter{010D}{\v{c}}% \DeclareUnicodeCharacter{010E}{\v{D}}% \DeclareUnicodeCharacter{010F}{d'}% % \DeclareUnicodeCharacter{0110}{\DH}% \DeclareUnicodeCharacter{0111}{\dh}% \DeclareUnicodeCharacter{0112}{\=E}% \DeclareUnicodeCharacter{0113}{\=e}% \DeclareUnicodeCharacter{0114}{\u{E}}% \DeclareUnicodeCharacter{0115}{\u{e}}% \DeclareUnicodeCharacter{0116}{\dotaccent{E}}% \DeclareUnicodeCharacter{0117}{\dotaccent{e}}% \DeclareUnicodeCharacter{0118}{\ogonek{E}}% \DeclareUnicodeCharacter{0119}{\ogonek{e}}% \DeclareUnicodeCharacter{011A}{\v{E}}% \DeclareUnicodeCharacter{011B}{\v{e}}% \DeclareUnicodeCharacter{011C}{\^G}% \DeclareUnicodeCharacter{011D}{\^g}% \DeclareUnicodeCharacter{011E}{\u{G}}% \DeclareUnicodeCharacter{011F}{\u{g}}% % \DeclareUnicodeCharacter{0120}{\dotaccent{G}}% \DeclareUnicodeCharacter{0121}{\dotaccent{g}}% \DeclareUnicodeCharacter{0122}{\cedilla{G}}% \DeclareUnicodeCharacter{0123}{\cedilla{g}}% \DeclareUnicodeCharacter{0124}{\^H}% \DeclareUnicodeCharacter{0125}{\^h}% \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}% \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}% \DeclareUnicodeCharacter{0128}{\~I}% \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}% \DeclareUnicodeCharacter{012A}{\=I}% \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}% \DeclareUnicodeCharacter{012C}{\u{I}}% \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}% \DeclareUnicodeCharacter{012E}{\ogonek{I}}% \DeclareUnicodeCharacter{012F}{\ogonek{i}}% % \DeclareUnicodeCharacter{0130}{\dotaccent{I}}% \DeclareUnicodeCharacter{0131}{\dotless{i}}% \DeclareUnicodeCharacter{0132}{IJ}% \DeclareUnicodeCharacter{0133}{ij}% \DeclareUnicodeCharacter{0134}{\^J}% \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}% \DeclareUnicodeCharacter{0136}{\cedilla{K}}% \DeclareUnicodeCharacter{0137}{\cedilla{k}}% \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}% \DeclareUnicodeCharacter{0139}{\'L}% \DeclareUnicodeCharacter{013A}{\'l}% \DeclareUnicodeCharacter{013B}{\cedilla{L}}% \DeclareUnicodeCharacter{013C}{\cedilla{l}}% \DeclareUnicodeCharacter{013D}{L'}% should kern \DeclareUnicodeCharacter{013E}{l'}% should kern \DeclareUnicodeCharacter{013F}{L\U{00B7}}% % \DeclareUnicodeCharacter{0140}{l\U{00B7}}% \DeclareUnicodeCharacter{0141}{\L}% \DeclareUnicodeCharacter{0142}{\l}% \DeclareUnicodeCharacter{0143}{\'N}% \DeclareUnicodeCharacter{0144}{\'n}% \DeclareUnicodeCharacter{0145}{\cedilla{N}}% \DeclareUnicodeCharacter{0146}{\cedilla{n}}% \DeclareUnicodeCharacter{0147}{\v{N}}% \DeclareUnicodeCharacter{0148}{\v{n}}% \DeclareUnicodeCharacter{0149}{'n}% \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}% \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}% \DeclareUnicodeCharacter{014C}{\=O}% \DeclareUnicodeCharacter{014D}{\=o}% \DeclareUnicodeCharacter{014E}{\u{O}}% \DeclareUnicodeCharacter{014F}{\u{o}}% % \DeclareUnicodeCharacter{0150}{\H{O}}% \DeclareUnicodeCharacter{0151}{\H{o}}% \DeclareUnicodeCharacter{0152}{\OE}% \DeclareUnicodeCharacter{0153}{\oe}% \DeclareUnicodeCharacter{0154}{\'R}% \DeclareUnicodeCharacter{0155}{\'r}% \DeclareUnicodeCharacter{0156}{\cedilla{R}}% \DeclareUnicodeCharacter{0157}{\cedilla{r}}% \DeclareUnicodeCharacter{0158}{\v{R}}% \DeclareUnicodeCharacter{0159}{\v{r}}% \DeclareUnicodeCharacter{015A}{\'S}% \DeclareUnicodeCharacter{015B}{\'s}% \DeclareUnicodeCharacter{015C}{\^S}% \DeclareUnicodeCharacter{015D}{\^s}% \DeclareUnicodeCharacter{015E}{\cedilla{S}}% \DeclareUnicodeCharacter{015F}{\cedilla{s}}% % \DeclareUnicodeCharacter{0160}{\v{S}}% \DeclareUnicodeCharacter{0161}{\v{s}}% \DeclareUnicodeCharacter{0162}{\cedilla{T}}% \DeclareUnicodeCharacter{0163}{\cedilla{t}}% \DeclareUnicodeCharacter{0164}{\v{T}}% \DeclareUnicodeCharacter{0165}{\v{t}}% \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}% \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}% \DeclareUnicodeCharacter{0168}{\~U}% \DeclareUnicodeCharacter{0169}{\~u}% \DeclareUnicodeCharacter{016A}{\=U}% \DeclareUnicodeCharacter{016B}{\=u}% \DeclareUnicodeCharacter{016C}{\u{U}}% \DeclareUnicodeCharacter{016D}{\u{u}}% \DeclareUnicodeCharacter{016E}{\ringaccent{U}}% \DeclareUnicodeCharacter{016F}{\ringaccent{u}}% % \DeclareUnicodeCharacter{0170}{\H{U}}% \DeclareUnicodeCharacter{0171}{\H{u}}% \DeclareUnicodeCharacter{0172}{\ogonek{U}}% \DeclareUnicodeCharacter{0173}{\ogonek{u}}% \DeclareUnicodeCharacter{0174}{\^W}% \DeclareUnicodeCharacter{0175}{\^w}% \DeclareUnicodeCharacter{0176}{\^Y}% \DeclareUnicodeCharacter{0177}{\^y}% \DeclareUnicodeCharacter{0178}{\"Y}% \DeclareUnicodeCharacter{0179}{\'Z}% \DeclareUnicodeCharacter{017A}{\'z}% \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}% \DeclareUnicodeCharacter{017C}{\dotaccent{z}}% \DeclareUnicodeCharacter{017D}{\v{Z}}% \DeclareUnicodeCharacter{017E}{\v{z}}% \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}% % \DeclareUnicodeCharacter{01C4}{D\v{Z}}% \DeclareUnicodeCharacter{01C5}{D\v{z}}% \DeclareUnicodeCharacter{01C6}{d\v{z}}% \DeclareUnicodeCharacter{01C7}{LJ}% \DeclareUnicodeCharacter{01C8}{Lj}% \DeclareUnicodeCharacter{01C9}{lj}% \DeclareUnicodeCharacter{01CA}{NJ}% \DeclareUnicodeCharacter{01CB}{Nj}% \DeclareUnicodeCharacter{01CC}{nj}% \DeclareUnicodeCharacter{01CD}{\v{A}}% \DeclareUnicodeCharacter{01CE}{\v{a}}% \DeclareUnicodeCharacter{01CF}{\v{I}}% % \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}% \DeclareUnicodeCharacter{01D1}{\v{O}}% \DeclareUnicodeCharacter{01D2}{\v{o}}% \DeclareUnicodeCharacter{01D3}{\v{U}}% \DeclareUnicodeCharacter{01D4}{\v{u}}% % \DeclareUnicodeCharacter{01E2}{\={\AE}}% \DeclareUnicodeCharacter{01E3}{\={\ae}}% \DeclareUnicodeCharacter{01E6}{\v{G}}% \DeclareUnicodeCharacter{01E7}{\v{g}}% \DeclareUnicodeCharacter{01E8}{\v{K}}% \DeclareUnicodeCharacter{01E9}{\v{k}}% % \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}% \DeclareUnicodeCharacter{01F1}{DZ}% \DeclareUnicodeCharacter{01F2}{Dz}% \DeclareUnicodeCharacter{01F3}{dz}% \DeclareUnicodeCharacter{01F4}{\'G}% \DeclareUnicodeCharacter{01F5}{\'g}% \DeclareUnicodeCharacter{01F8}{\`N}% \DeclareUnicodeCharacter{01F9}{\`n}% \DeclareUnicodeCharacter{01FC}{\'{\AE}}% \DeclareUnicodeCharacter{01FD}{\'{\ae}}% \DeclareUnicodeCharacter{01FE}{\'{\O}}% \DeclareUnicodeCharacter{01FF}{\'{\o}}% % \DeclareUnicodeCharacter{021E}{\v{H}}% \DeclareUnicodeCharacter{021F}{\v{h}}% % \DeclareUnicodeCharacter{0226}{\dotaccent{A}}% \DeclareUnicodeCharacter{0227}{\dotaccent{a}}% \DeclareUnicodeCharacter{0228}{\cedilla{E}}% \DeclareUnicodeCharacter{0229}{\cedilla{e}}% \DeclareUnicodeCharacter{022E}{\dotaccent{O}}% \DeclareUnicodeCharacter{022F}{\dotaccent{o}}% % \DeclareUnicodeCharacter{0232}{\=Y}% \DeclareUnicodeCharacter{0233}{\=y}% \DeclareUnicodeCharacter{0237}{\dotless{j}}% % \DeclareUnicodeCharacter{02BC}{'}% % \DeclareUnicodeCharacter{02DB}{\ogonek{ }}% % % Greek letters upper case \DeclareUnicodeCharacter{0391}{{\it A}}% \DeclareUnicodeCharacter{0392}{{\it B}}% \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}% \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}% \DeclareUnicodeCharacter{0395}{{\it E}}% \DeclareUnicodeCharacter{0396}{{\it Z}}% \DeclareUnicodeCharacter{0397}{{\it H}}% \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}% \DeclareUnicodeCharacter{0399}{{\it I}}% \DeclareUnicodeCharacter{039A}{{\it K}}% \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}% \DeclareUnicodeCharacter{039C}{{\it M}}% \DeclareUnicodeCharacter{039D}{{\it N}}% \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}% \DeclareUnicodeCharacter{039F}{{\it O}}% \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}% \DeclareUnicodeCharacter{03A1}{{\it P}}% %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}% \DeclareUnicodeCharacter{03A4}{{\it T}}% \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}% \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}% \DeclareUnicodeCharacter{03A7}{{\it X}}% \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}% \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}% % % Vowels with accents \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}% \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}% \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}% \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}% \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}% \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}% % % Standalone accent \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}% % % Greek letters lower case \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}% \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}% \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}% \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}% \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}% \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}% \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}% \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}% \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}% \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}% \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}% \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}% \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}% \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}% \DeclareUnicodeCharacter{03BF}{{\it o}}% omicron \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}% \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}% \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}% \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}% \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}% \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}% \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}% \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}% \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}% \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}% % % More Greek vowels with accents \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}% \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}% \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}% \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}% \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}% % % Variant Greek letters \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}% \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}% \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}% % \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}% \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}% \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}% \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}% \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}% \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}% \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}% \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}% \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}% \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}% \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}% \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}% % \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}% \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}% % \DeclareUnicodeCharacter{1E20}{\=G}% \DeclareUnicodeCharacter{1E21}{\=g}% \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}% \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}% \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}% \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}% \DeclareUnicodeCharacter{1E26}{\"H}% \DeclareUnicodeCharacter{1E27}{\"h}% % \DeclareUnicodeCharacter{1E30}{\'K}% \DeclareUnicodeCharacter{1E31}{\'k}% \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}% \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}% \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}% \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}% \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}% \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}% \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}% \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}% \DeclareUnicodeCharacter{1E3E}{\'M}% \DeclareUnicodeCharacter{1E3F}{\'m}% % \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}% \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}% \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}% \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}% \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}% \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}% \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}% \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}% \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}% \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}% % \DeclareUnicodeCharacter{1E54}{\'P}% \DeclareUnicodeCharacter{1E55}{\'p}% \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}% \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}% \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}% \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}% \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}% \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}% \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}% \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}% % \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}% \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}% \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}% \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}% \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}% \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}% \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}% \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}% \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}% \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}% % \DeclareUnicodeCharacter{1E7C}{\~V}% \DeclareUnicodeCharacter{1E7D}{\~v}% \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}% \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}% % \DeclareUnicodeCharacter{1E80}{\`W}% \DeclareUnicodeCharacter{1E81}{\`w}% \DeclareUnicodeCharacter{1E82}{\'W}% \DeclareUnicodeCharacter{1E83}{\'w}% \DeclareUnicodeCharacter{1E84}{\"W}% \DeclareUnicodeCharacter{1E85}{\"w}% \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}% \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}% \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}% \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}% \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}% \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}% \DeclareUnicodeCharacter{1E8C}{\"X}% \DeclareUnicodeCharacter{1E8D}{\"x}% \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}% \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}% % \DeclareUnicodeCharacter{1E90}{\^Z}% \DeclareUnicodeCharacter{1E91}{\^z}% \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}% \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}% \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}% \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}% \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}% \DeclareUnicodeCharacter{1E97}{\"t}% \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}% \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}% % \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}% \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}% % \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}% \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}% \DeclareUnicodeCharacter{1EBC}{\~E}% \DeclareUnicodeCharacter{1EBD}{\~e}% % \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}% \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}% \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}% \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}% % \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}% \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}% % \DeclareUnicodeCharacter{1EF2}{\`Y}% \DeclareUnicodeCharacter{1EF3}{\`y}% \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}% % \DeclareUnicodeCharacter{1EF8}{\~Y}% \DeclareUnicodeCharacter{1EF9}{\~y}% % % Punctuation \DeclareUnicodeCharacter{2013}{--}% \DeclareUnicodeCharacter{2014}{---}% \DeclareUnicodeCharacter{2018}{\quoteleft{}}% \DeclareUnicodeCharacter{2019}{\quoteright{}}% \DeclareUnicodeCharacter{201A}{\quotesinglbase{}}% \DeclareUnicodeCharacter{201C}{\quotedblleft{}}% \DeclareUnicodeCharacter{201D}{\quotedblright{}}% \DeclareUnicodeCharacter{201E}{\quotedblbase{}}% \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}% \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}% \DeclareUnicodeCharacter{2022}{\bullet{}}% \DeclareUnicodeCharacter{202F}{\thinspace}% \DeclareUnicodeCharacter{2026}{\dots{}}% \DeclareUnicodeCharacter{2039}{\guilsinglleft{}}% \DeclareUnicodeCharacter{203A}{\guilsinglright{}}% % \DeclareUnicodeCharacter{20AC}{\euro{}}% % \DeclareUnicodeCharacter{2192}{\expansion{}}% \DeclareUnicodeCharacter{21D2}{\result{}}% % % Mathematical symbols \DeclareUnicodeCharacter{2200}{\ensuremath\forall}% \DeclareUnicodeCharacter{2203}{\ensuremath\exists}% \DeclareUnicodeCharacter{2208}{\ensuremath\in}% \DeclareUnicodeCharacter{2212}{\minus{}}% \DeclareUnicodeCharacter{2217}{\ast}% \DeclareUnicodeCharacter{221E}{\ensuremath\infty}% \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}% \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}% \DeclareUnicodeCharacter{2229}{\ensuremath\cap}% \DeclareUnicodeCharacter{2261}{\equiv{}}% \DeclareUnicodeCharacter{2264}{\ensuremath\leq}% \DeclareUnicodeCharacter{2265}{\ensuremath\geq}% \DeclareUnicodeCharacter{2282}{\ensuremath\subset}% \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}% % \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}% \DeclareUnicodeCharacter{2032}{\ensuremath\prime}% \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}% \DeclareUnicodeCharacter{2111}{\ensuremath\Im}% \DeclareUnicodeCharacter{2113}{\ensuremath\ell}% \DeclareUnicodeCharacter{2118}{\ensuremath\wp}% \DeclareUnicodeCharacter{211C}{\ensuremath\Re}% \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}% \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}% \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}% \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}% \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}% \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}% \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}% \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}% \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}% \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}% \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}% \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}% \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}% \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}% \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}% \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}% \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}% \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}% \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}% \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}% \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}% \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}% \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}% \DeclareUnicodeCharacter{2202}{\ensuremath\partial}% \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}% \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}% \DeclareUnicodeCharacter{2209}{\ensuremath\notin}% \DeclareUnicodeCharacter{220B}{\ensuremath\owns}% \DeclareUnicodeCharacter{220F}{\ensuremath\prod}% \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}% \DeclareUnicodeCharacter{2211}{\ensuremath\sum}% \DeclareUnicodeCharacter{2213}{\ensuremath\mp}% \DeclareUnicodeCharacter{2218}{\ensuremath\circ}% \DeclareUnicodeCharacter{221A}{\ensuremath\surd}% \DeclareUnicodeCharacter{221D}{\ensuremath\propto}% \DeclareUnicodeCharacter{2220}{\ensuremath\angle}% \DeclareUnicodeCharacter{2223}{\ensuremath\mid}% \DeclareUnicodeCharacter{2228}{\ensuremath\vee}% \DeclareUnicodeCharacter{222A}{\ensuremath\cup}% \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}% \DeclareUnicodeCharacter{222E}{\ensuremath\oint}% \DeclareUnicodeCharacter{223C}{\ensuremath\sim}% \DeclareUnicodeCharacter{2240}{\ensuremath\wr}% \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}% \DeclareUnicodeCharacter{2245}{\ensuremath\cong}% \DeclareUnicodeCharacter{2248}{\ensuremath\approx}% \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}% \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}% \DeclareUnicodeCharacter{2260}{\ensuremath\neq}% \DeclareUnicodeCharacter{226A}{\ensuremath\ll}% \DeclareUnicodeCharacter{226B}{\ensuremath\gg}% \DeclareUnicodeCharacter{227A}{\ensuremath\prec}% \DeclareUnicodeCharacter{227B}{\ensuremath\succ}% \DeclareUnicodeCharacter{2283}{\ensuremath\supset}% \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}% \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}% \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}% \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}% \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}% \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}% \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}% \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}% \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}% \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}% \DeclareUnicodeCharacter{2299}{\ensuremath\odot}% \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}% \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}% \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}% \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}% \DeclareUnicodeCharacter{22A8}{\ensuremath\models}% \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}% \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}% \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}% \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}% \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}% \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}% \DeclareUnicodeCharacter{22C6}{\ensuremath\star}% \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}% \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}% \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}% \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}% \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}% \DeclareUnicodeCharacter{2322}{\ensuremath\frown}% \DeclareUnicodeCharacter{2323}{\ensuremath\smile}% % \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}% \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}% \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}% \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}% \DeclareUnicodeCharacter{25C7}{\ensuremath\diamond}% \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}% \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}% \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}% \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}% \DeclareUnicodeCharacter{266D}{\ensuremath\flat}% \DeclareUnicodeCharacter{266E}{\ensuremath\natural}% \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}% \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}% \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}% \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}% \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}% \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}% \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}% \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}% \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}% \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}% \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}% \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}% \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}% \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}% \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}% \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}% \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}% \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}% % \global\mathchardef\checkmark="1370% actually the square root sign \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}% }% end of \unicodechardefs % UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command) % It makes the setting that replace UTF-8 byte sequence. \def\utfeightchardefs{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterUTFviii \unicodechardefs } % Whether the active definitions of non-ASCII characters expand to % non-active tokens with the same character code. This is used to % write characters literally, instead of using active definitions for % printing the correct glyphs. \newif\ifpassthroughchars \passthroughcharsfalse % For native Unicode handling (XeTeX and LuaTeX), % provide a definition macro to replace/pass-through a Unicode character % \def\DeclareUnicodeCharacterNative#1#2{% \catcode"#1=\active \def\dodeclareunicodecharacternative##1##2##3{% \begingroup \uccode`\~="##2\relax \uppercase{\gdef~}{% \ifpassthroughchars ##1% \else ##3% \fi } \endgroup } \begingroup \uccode`\.="#1\relax \uppercase{\def\UTFNativeTmp{.}}% \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}% \endgroup } % Native Unicode handling (XeTeX and LuaTeX) character replacing definition. % It activates the setting that replaces Unicode characters. \def\nativeunicodechardefs{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative \unicodechardefs } % For native Unicode handling (XeTeX and LuaTeX), % make the character token expand % to the sequences given in \unicodechardefs for printing. \def\DeclareUnicodeCharacterNativeAtU#1#2{% \def\UTFAtUTmp{#2} \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp } % @U command definitions for native Unicode handling (XeTeX and LuaTeX). \def\nativeunicodechardefsatu{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU \unicodechardefs } % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % Define all Unicode characters we know about. This makes UTF-8 the default % input encoding and allows @U to work. \iftxinativeunicodecapable \nativeunicodechardefsatu \else \utfeightchardefs \fi \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be very finicky about underfull hboxes, either. \hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \txipageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \txipagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \else \ifx\XeTeXrevision\thisisundefined \special{papersize=#8,#7}% \else \pdfpageheight #7\relax \pdfpagewidth #8\relax % XeTeX does not have \pdfhorigin and \pdfvorigin. \fi \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @smallerbook to reset parameters for 6x9 trim size. % (Just testing, parameters still in flux.) \def\smallerbook{{\globaldefs = 1 \parskip = 1.5pt plus 1pt \textleading = 12pt % \internalpagesizes{7.4in}{4.8in}% {-.2in}{-.4in}% {0pt}{14pt}% {9in}{6in}% % \lispnarrowing = 0.25in \tolerance = 700 \contentsrightmargin = 0pt \defbodyindent = .4cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then % do the same for \bindingoffset. You can set these for testing in % your texinfo source file like this: % @tex % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \contentsrightmargin = 0pt \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. % From romildo@urano.iceb.ufop.br, 2 July 2000. % He also recommends making @example and @lisp be small. \def\afivepaper{{\globaldefs = 1 \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % \internalpagesizes{160mm}{120mm}% {\voffset}{\hoffset}% {\bindingoffset}{8pt}% {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% {\voffset}{4.6mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% % % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} % Use @afourwide to print on A4 paper in landscape format. \def\afourwide{{\globaldefs = 1 \afourpaper \internalpagesizes{241mm}{165mm}% {\voffset}{-2.95mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% \globaldefs = 0 }} \def\bsixpaper{{\globaldefs = 1 \afourpaper \internalpagesizes{140mm}{100mm}% {-6.35mm}{-12.7mm}% {\bindingoffset}{14pt}% {176mm}{125mm}% \let\SETdispenvsize=\smallword \lispnarrowing = 0.2in \globaldefs = 0 }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % \dimen0 = #1\relax \advance\dimen0 by 2.5in % default 1in margin above heading line % and 1.5in to include heading, footing and % bottom margin % \dimen2 = \hsize \advance\dimen2 by 2in % default to 1 inch margin on each side % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper % Default value of \hfuzz, for suppressing warnings about overfull hboxes. \hfuzz = 1pt \message{and turning on texinfo input format.} \def^^L{\par} % remove \outer, so ^L can appear in an @comment % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \def\normaldoublequote{"} \catcode`\$=\other \def\normaldollar{$}%$ font-lock fix \catcode`\+=\other \def\normalplus{+} \catcode`\<=\other \def\normalless{<} \catcode`\>=\other \def\normalgreater{>} \catcode`\^=\other \def\normalcaret{^} \catcode`\_=\other \def\normalunderscore{_} \catcode`\|=\other \def\normalverticalbar{|} \catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Set catcodes for Texinfo file % Active characters for printing the wanted glyph. % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. % \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde \chardef\hatchar=`\^ \catcode`\^=\active \def\activehat{{\tt \hatchar}} \let^ = \activehat \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \let\realunder=_ \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless \chardef \gtr=`\> \catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix \catcode`\-=\active \let-=\normaldash % used for headline/footline in the output routine, in case the page % breaks in the middle of an @tex block. \def\texinfochars{% \let< = \activeless \let> = \activegtr \let~ = \activetilde \let^ = \activehat \setregularquotes \let\b = \strong \let\i = \smartitalic % in principle, all other definitions in \tex have to be undone too. } % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ % \realbackslash is an actual character `\' with catcode other. {\catcode`\\=\other @gdef@realbackslash{\}} % In Texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. % Print a typewriter backslash. For math mode, we can't simply use % \backslashcurfont: the story here is that in math mode, the \char % of \backslashcurfont ends up printing the roman \ from the math symbol % font (because \char in math mode uses the \mathcode, and plain.tex % sets \mathcode`\\="026E). Hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. @def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @ttbackslash % @backslashchar{} is for user documents. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. % {@catcode`- = @active @gdef@normalturnoffactive{% @passthroughcharstrue @let-=@normaldash @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @let\=@ttbackslash @setregularquotes @unsepspaces } } % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have @fixbackslash turn them back on. @catcode`+=@other @catcode`@_=@other % \enablebackslashhack - allow file to begin `\input texinfo' % % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % If the file did not have a `\input texinfo', then it is turned off after % the first line; otherwise the first `\' in the file would cause an error. % This is used on the very last line of this file, texinfo.tex. % We also use @c to call @fixbackslash, in case ends of lines are hidden. { @catcode`@^=7 @catcode`@^^M=13@gdef@enablebackslashhack{% @global@let\ = @eatinput% @catcode`@^^M=13% @def@c{@fixbackslash@c}% % Definition for the newline at the end of this file. @def ^^M{@let^^M@secondlinenl}% % Definition for a newline in the main Texinfo file. @gdef @secondlinenl{@fixbackslash}% % In case the first line has a whole-line command on it @let@originalparsearg@parsearg @def@parsearg{@fixbackslash@originalparsearg} }} {@catcode`@^=7 @catcode`@^^M=13% @gdef@eatinput input texinfo#1^^M{@fixbackslash}} % Emergency active definition of newline, in case an active newline token % appears by mistake. {@catcode`@^=7 @catcode13=13% @gdef@enableemergencynewline{% @gdef^^M{% @par% %@par% }}} @gdef@fixbackslash{% @ifx\@eatinput @let\ = @ttbackslash @fi @catcode13=5 % regular end of line @enableemergencynewline @let@c=@comment @let@parsearg@originalparsearg % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. @catcode`+=@active @catcode`@_=@active % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. This macro, @fixbackslash, gets % called at the beginning of every Texinfo file. Not opening texinfo.cnf % directly in this file, texinfo.tex, makes it possible to make a format % file for Texinfo. % @openin 1 texinfo.cnf @ifeof 1 @else @input texinfo.cnf @fi @closein 1 } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These (along with & and #) are made active for url-breaking, so need % active definitions as the normal characters. @def@normaldot{.} @def@normalquest{?} @def@normalslash{/} % These look ok in all fonts, so just make them not special. % @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} @let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @setregularquotes @c Local variables: @c eval: (add-hook 'before-save-hook 'time-stamp) @c page-delimiter: "^\\\\message\\|emacs-page" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @enablebackslashhack libidn-1.38/build-aux/missing0000755000000000000000000001533614076273555013114 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=https://www.perl.org/ flex_URL=https://github.com/westes/flex gnu_software_URL=https://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/csharpcomp.sh.in0000644000000000000000000001133214076273517014603 00000000000000#!/bin/sh # Compile a C# program. # Copyright (C) 2003-2021 Free Software Foundation, Inc. # Written by Bruno Haible , 2003. # # 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 3 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, see . # This uses the same choices as csharpcomp.c, but instead of relying on the # environment settings at run time, it uses the environment variables # present at configuration time. # # This is a separate shell script, because the various C# compilers have # different command line options. # # Usage: /bin/sh csharpcomp.sh [OPTION] SOURCE.cs ... RES.resource ... # Options: # -o PROGRAM.exe or -o LIBRARY.dll # set the output assembly name # -L DIRECTORY search for C# libraries also in DIRECTORY # -l LIBRARY reference the C# library LIBRARY.dll # -O optimize # -g generate debugging information # func_tmpdir # creates a temporary directory. # Sets variable # - tmp pathname of freshly created temporary directory func_tmpdir () { # Use the environment variable TMPDIR, falling back to /tmp. This allows # users to specify a different temporary directory, for example, if their # /tmp is filled up or too small. : ${TMPDIR=/tmp} { # Use the mktemp program if available. If not available, hide the error # message. tmp=`(umask 077 && mktemp -d -q "$TMPDIR/gtXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { # Use a simple mkdir command. It is guaranteed to fail if the directory # already exists. $RANDOM is bash specific and expands to empty in shells # other than bash, ksh and zsh. Its use does not increase security; # rather, it minimizes the probability of failure in a very cluttered /tmp # directory. tmp=$TMPDIR/gt$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$0: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } } sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g' options_mcs= options_csc="-nologo" sources= while test $# != 0; do case "$1" in -o) case "$2" in *.dll) options_mcs="$options_mcs -target:library" options_csc="$options_csc -target:library" ;; *.exe) options_csc="$options_csc -target:exe" ;; esac options_mcs="$options_mcs -out:"`echo "$2" | sed -e "$sed_quote_subst"` options_csc="$options_csc -out:"`echo "$2" | sed -e "$sed_quote_subst"` shift ;; -L) options_mcs="$options_mcs -lib:"`echo "$2" | sed -e "$sed_quote_subst"` options_csc="$options_csc -lib:"`echo "$2" | sed -e "$sed_quote_subst"` shift ;; -l) options_mcs="$options_mcs -reference:"`echo "$2" | sed -e "$sed_quote_subst"` options_csc="$options_csc -reference:"`echo "$2" | sed -e "$sed_quote_subst"`".dll" shift ;; -O) options_csc="$options_csc -optimize+" ;; -g) options_mcs="$options_mcs -debug" options_csc="$options_csc -debug+" ;; -*) echo "csharpcomp: unknown option '$1'" 1>&2 exit 1 ;; *.resources) options_mcs="$options_mcs -resource:"`echo "$1" | sed -e "$sed_quote_subst"` options_csc="$options_csc -resource:"`echo "$1" | sed -e "$sed_quote_subst"` ;; *.cs) sources="$sources "`echo "$1" | sed -e "$sed_quote_subst"` ;; *) echo "csharpcomp: unknown type of argument '$1'" 1>&2 exit 1 ;; esac shift done if test -n "@HAVE_MCS@"; then # mcs prints it errors and warnings to stdout, not stderr. Furthermore it # adds a useless line "Compilation succeeded..." at the end. Correct both. sed_drop_success_line='${ /^Compilation succeeded/d }' func_tmpdir trap 'rm -rf "$tmp"' 1 2 3 15 test -z "$CSHARP_VERBOSE" || echo mcs $options_mcs $sources mcs $options_mcs $sources > "$tmp"/mcs.err result=$? sed -e "$sed_drop_success_line" < "$tmp"/mcs.err >&2 rm -rf "$tmp" exit $result else if test -n "@HAVE_CSC@"; then test -z "$CSHARP_VERBOSE" || echo csc $options_csc $sources exec csc $options_csc $sources else echo 'C# compiler not found, try installing mono, then reconfigure' 1>&2 exit 1 fi fi libidn-1.38/build-aux/vc-list-files0000755000000000000000000000736714076273520014121 00000000000000#!/bin/sh # List version-controlled file names. # Print a version string. scriptversion=2018-03-07.03; # UTC # Copyright (C) 2006-2021 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # List the specified version-controlled files. # With no argument, list them all. With a single DIRECTORY argument, # list the version-controlled files in that directory. # If there's an argument, it must be a single, "."-relative directory name. # cvsu is part of the cvsutils package: https://www.red-bean.com/cvsutils/ postprocess= case $1 in --help) cat <. EOF exit ;; --version) year=`echo "$scriptversion" | sed 's/[^0-9].*//'` cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit ;; -C) test "$2" = . || postprocess="| sed 's|^|$2/|'" cd "$2" || exit 1 shift; shift ;; esac test $# = 0 && set . for dir do if test -d .git || test -f .git; then test "x$dir" = x. \ && dir= sed_esc= \ || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } # Ignore git symlinks - either they point into the tree, in which case # we don't need to visit the target twice, or they point somewhere # else (often into a submodule), in which case the content does not # belong to this package. eval exec git ls-tree -r 'HEAD:"$dir"' \ \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" eval exec bzr ls -R --versioned '"$dir"' $postprocess elif test -d CVS; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" if test -x build-aux/cvsu; then eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess elif (cvsu --help) >/dev/null 2>&1; then eval cvsu --find --types=AFGM '"$dir"' $postprocess else eval awk -F/ \''{ \ if (!$1 && $3 !~ /^-/) { \ f=FILENAME; \ if (f ~ /CVS\/Entries$/) \ f = substr(f, 1, length(f)-11); \ print f $2; \ }}'\'' \ `find "$dir" -name Entries -print` /dev/null' $postprocess fi elif test -d .svn; then eval exec svn list -R '"$dir"' $postprocess else echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 exit 1 fi done # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libidn-1.38/build-aux/pmccabe2html0000644000000000000000000006063014076273520013766 00000000000000# pmccabe2html - AWK script to convert pmccabe output to html -*- awk -*- # Copyright (C) 2007-2021 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # Written by Jose E. Marchesi . # Adapted for gnulib by Simon Josefsson . # Added support for C++ by Giuseppe Scrivano . # Typical Invocation is from a Makefile.am: # # CYCLO_SOURCES = ${top_srcdir}/src/*.[ch] # # cyclo-$(PACKAGE).html: $(CYCLO_SOURCES) # $(PMCCABE) $(CYCLO_SOURCES) \ # | sort -nr \ # | $(AWK) -f ${top_srcdir}/build-aux/pmccabe2html \ # -v lang=html -v name="$(PACKAGE_NAME)" \ # -v vcurl="https://git.savannah.gnu.org/gitweb/?p=$(PACKAGE).git;a=blob;f=%FILENAME%;hb=HEAD" \ # -v url="https://www.gnu.org/software/$(PACKAGE)/" \ # -v css=${top_srcdir}/build-aux/pmccabe.css \ # -v cut_dir=${top_srcdir}/ \ # > $@-tmp # mv $@-tmp $@ # # The variables available are: # lang output language, either 'html' or 'wiki' # name project name # url link to project's home page # vcurl URL to version controlled source code browser, # a %FILENAME% in the string is replaced with the relative # source filename # css CSS stylesheet filename, included verbatim in HTML output # css_url link to CSS stylesheet, an URL # Prologue & configuration BEGIN { # Portable lookup of present time. "date +%s" | getline epoch_time "date" | getline chronos_time section_global_stats_p = 1 section_function_cyclo_p = 1 # "html" or "wiki" package_name = name output_lang = lang # General Options cyclo_simple_max = 10 cyclo_moderate_max = 20 cyclo_high_max = 50 source_file_link_tmpl = vcurl # HTML options if (url != "") { html_prolog = "Back to " package_name " Homepage

" } html_epilog = "
\ Copyright (c) 2007, 2008 Free Software Foundation, Inc." html_doctype = "" html_comment = "" html_title = "Cyclomatic Complexity report for " package_name # Wiki options wiki_prolog = "{{Note|This page has been automatically generated}}" wiki_epilog = "" # Internal variables nfuncs = 0; } # Functions function build_stats() { # Maximum modified cyclo for (fcn in mcyclo) { num_of_functions++ if (mcyclo[fcn] > max_mcyclo) { max_mcyclo = mcyclo[fcn] } if (mcyclo[fcn] > cyclo_high_max) { num_of_untestable_functions++ } else if (mcyclo[fcn] > cyclo_moderate_max) { num_of_high_functions++ } else if (mcyclo[fcn] > cyclo_simple_max) { num_of_moderate_functions++ } else { num_of_simple_functions++ } } } function html_fnc_table_complete (caption) { html_fnc_table(caption, 1, 1, 0, 1, 1, 0, 1) } function html_fnc_table_abbrev (caption) { html_fnc_table(caption, 1, 1, 0, 0, 1, 0, 0) } function html_fnc_table (caption, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { print "" if (caption != "") { print "" } html_fnc_header(fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) for (nfnc = 1; nfnc <= nfuncs; nfnc++) { html_fnc(nfnc, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) } print "
" caption "
" } function html_header () { print html_doctype print "" print html_comment print "" print "" html_title "" print "" print "" print "" print "" print "" print "" print "" print "" if (css_url != "") { print "" } if (css != "") { print "" close(css) } print "" print "" } function html_footer () { print "" print "" } function html_fnc_header (fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { print "" if (fname_p) { # Function name print "" print "" print "" print "" print "Function Name" print "" } if (mcyclo_p) { # Modified cyclo print "" print "Modified Cyclo" print "" } if (cyclo_p) { # Cyclo print "" print "Cyclomatic" print "
" print "Complexity" print "" } if (num_statements_p) { print "" print "Number of" print "
" print "Statements" print "" } if (num_lines_p) { print "" print "Number of" print "
" print "Lines" print "" } if (first_line_p) { print "" print "First Line" print "" } if (file_p) { print "" print "Source File" print "" } print "" } function html_fnc (nfun, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { fname = fnames[nfun] # Function name trclass = "function_entry_simple" if (mcyclo[nfun] > cyclo_high_max) { trclass="function_entry_untestable" } else if (mcyclo[nfun] > cyclo_moderate_max) { trclass="function_entry_high" } else if (mcyclo[nfun] > cyclo_simple_max) { trclass="function_entry_moderate" } print "" if (fname_p) { print "" if (file_p && mcyclo[nfun] > cyclo_simple_max) { print "\ " } else { print " " } print "" print "" print fname print "" } if (mcyclo_p) { # Modified cyclo print "" print mcyclo[nfun] print "" } if (cyclo_p) { # Cyclo print "" print cyclo[nfun] print "" } if (num_statements_p) { # Number of statements print "" print num_statements[nfun] print "" } if (num_lines_p) { # Number of lines print "" print num_lines[nfun] print "" } if (first_line_p) { # First line print "" print first_line[nfun] print "" } if (file_p) { href = "" if (source_file_link_tmpl != "") { # Get href target href = source_file_link_tmpl sub(/%FILENAME%/, file[nfun], href) } # Source file print "" if (href != "") { print "" file[nfun] "" } else { print file[nfun] } print "" print "" if (mcyclo[nfun] > cyclo_simple_max) { print "" num_columns = 1; if (fname_p) { num_columns++ } if (mcyclo_p) { num_columns++ } if (cyclo_p) { num_columns++ } if (num_statements_p) { num_columns++ } if (num_lines_p) { num_columns++ } if (first_line_p) { num_columns++ } if (file_p) { num_columns++ } print "" print "
" print "
"

            while ((getline codeline < (fname nfun "_fn.txt")) > 0)
            {
                gsub(/&/, "\\&", codeline)	# Must come first.
                gsub(//, "\\>", codeline)

                print codeline
            }
            close(fname nfun "_fn.txt")
            system("rm " "'" fname "'" nfun "_fn.txt")
            print "
" print "
" print "" print "" } } } function html_global_stats () { print "
Summary
" print "" # Total number of functions print "" print "" print "" print "" # Number of simple functions print "" print "" print "" print "" # Number of moderate functions print "" print "" print "" print "" # Number of high functions print "" print "" print "" print "" # Number of untestable functions print "" print "" print "" print "" print "
" print "Total number of functions" print "" print num_of_functions print "
" print "Number of low risk functions" print "" print num_of_simple_functions print "
" print "Number of moderate risk functions" print "" print num_of_moderate_functions print "
" print "Number of high risk functions" print "" print num_of_high_functions print "
" print "Number of untestable functions" print "" print num_of_untestable_functions print "
" print "
" } function html_function_cyclo () { print "
Details for all functions
" print "" print "" print "" print "" print "" print "" # Simple print "" print "" print "" print "" print "" # Moderate print "" print "" print "" print "" print "" # High print "" print "" print "" print "" print "" # Untestable print "" print "" print "" print "" print "" print "
" print " " print "" print "Cyclomatic Complexity" print "" print "Risk Evaluation" print "
" print " " print "" print "0 - " cyclo_simple_max print "" print "Simple module, without much risk" print "
" print " " print "" print cyclo_simple_max + 1 " - " cyclo_moderate_max print "" print "More complex module, moderate risk" print "
" print " " print "" print cyclo_moderate_max + 1 " - " cyclo_high_max print "" print "Complex module, high risk" print "
" print " " print "" print "greater than " cyclo_high_max print "" print "Untestable module, very high risk" print "
" print "
" html_fnc_table_complete("") } function wiki_global_stats () { print "{| class=\"cyclo_summary_table\"" # Total number of functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Total number of functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_functions # Number of simple functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of low risk functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_simple_functions # Number of moderate functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of moderate risk functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_moderate_functions # Number of high functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of high risk functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_high_functions # Number of untestable functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of untestable functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_untestable_functions print "|}" } function wiki_function_cyclo () { print "==Details for all functions==" print "Used ranges:" print "{| class =\"cyclo_ranges_table\"" print "|-" print "| class=\"cyclo_ranges_header_entry\" | " print "| class=\"cyclo_ranges_header_entry\" | Cyclomatic Complexity" print "| class=\"cyclo_ranges_header_entry\" | Risk Evaluation" # Simple print "|-" print "| class=\"cyclo_ranges_entry_simple\" | " print "| class=\"cyclo_ranges_entry\" | 0 - " cyclo_simple_max print "| class=\"cyclo_ranges_entry\" | Simple module, without much risk" # Moderate print "|-" print "| class=\"cyclo_ranges_entry_moderate\" | " print "| class=\"cyclo_ranges_entry\" |" cyclo_simple_max + 1 " - " cyclo_moderate_max print "| class=\"cyclo_ranges_entry\" | More complex module, moderate risk" # High print "|-" print "| class=\"cyclo_ranges_entry_high\" | " print "| class=\"cyclo_ranges_entry\" |" cyclo_moderate_max + 1 " - " cyclo_high_max print "| class=\"cyclo_ranges_entry\" | Complex module, high risk" # Untestable print "|-" print "| class=\"cyclo_ranges_entry_untestable\" | " print "| class=\"cyclo_ranges_entry\" | greater than " cyclo_high_max print "| class=\"cyclo_ranges_entry\" | Untestable module, very high risk" print "|}" print "" print "" wiki_fnc_table_complete("") } function wiki_fnc_table_complete (caption) { wiki_fnc_table(caption, 1, 1, 0, 1, 1, 0, 1) } function wiki_fnc_table_abbrev (caption) { wiki_fnc_table(caption, 1, 0, 0, 0, 0, 0, 0) } function wiki_fnc_table (caption, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { print "{| width=\"90%\" class=\"cyclo_function_table\" cellpadding=\"0\" cellspacing=\"0\">" if (caption != "") { print "|+" caption } wiki_fnc_header(fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) for (nfnc = 1; nfnc <= nfuncs; nfnc++) { wiki_fnc(nfnc, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) } print "|}" } function wiki_fnc_header (fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { if (fname_p) { # Function name print "! class=\"cyclo_function_table_header_entry\" | Function Name" } if (mcyclo_p) { # Modified cyclo print "! class=\"cyclo_function_table_header_entry\" | Modified Cyclo" } if (cyclo_p) { # Cyclo print "! class=\"cyclo_function_table_header_entry\" | Cyclomatic Complexity" } if (num_statements_p) { print "! class=\"cyclo_function_table_header_entry\" | Number of Statements" } if (num_lines_p) { print "! class=\"cyclo_function_table_header_entry\" | Number of Lines" } if (first_line_p) { print "! class=\"cyclo_function_table_header_entry\" | First Line" } if (file_p) { print "! class=\"cyclo_function_table_header_entry\" | Source File" } } function wiki_fnc (nfnc, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { fname = fnames[nfnc] # Function name trclass = "cyclo_function_entry_simple" if (mcyclo[nfnc] > cyclo_high_max) { trclass="cyclo_function_entry_untestable" } else if (mcyclo[nfnc] > cyclo_moderate_max) { trclass="cyclo_function_entry_high" } else if (mcyclo[nfnc] > cyclo_simple_max) { trclass="cyclo_function_entry_moderate" } print "|- class=\"" trclass "\"" if (fname_p) { print "| class=\"cyclo_function_entry_name\" |" fname } if (mcyclo_p) { # Modified cyclo print "| class=\"cyclo_function_entry_cyclo\" |" mcyclo[nfnc] } if (cyclo_p) { # Cyclo print "| class=\"cyclo_function_entry_cyclo\" |" cyclo[nfnc] } if (num_statements_p) { # Number of statements print "| class=\"cyclo_function_entry_number\" |" num_statements[nfnc] } if (num_lines_p) { # Number of lines print "| class=\"cyclo_function_entry_number\" |" num_lines[nfnc] } if (first_line_p) { # First line print "| class=\"cyclo_function_entry_number\" |" first_line[nfnc] } if (file_p) { href = "" if (source_file_link_tmpl != "") { # Get href target href = source_file_link_tmpl sub(/%FILENAME%/, file[nfnc], href) } # Source file print "| class=\"cyclo_function_entry_filename\" |" \ ((href != "") ? "[" href " " file[nfnc] "]" : "[" file[nfnc] "]") } } # Scan data from a line { function_name = $7 nfuncs++; fnames[nfuncs] = function_name mcyclo[nfuncs] = $1 cyclo[nfuncs] = $2 num_statements[nfuncs] = $3 first_line[nfuncs] = $4 num_lines[nfuncs] = $5 # Build the filename from the file_spec ($6) begin_util_path = index($6, cut_dir) tmpfilename = substr($6, begin_util_path + length(cut_dir)) sub(/\([0-9]+\):/, "", tmpfilename) file[nfuncs] = tmpfilename if (mcyclo[nfuncs] > cyclo_simple_max) { # Extract function contents to a fn_txt file filepath = $6 sub(/\([0-9]+\):/, "", filepath) num_line = 0 while ((getline codeline < filepath) > 0) { num_line++; if ((num_line >= first_line[nfuncs]) && (num_line < first_line[nfuncs] + num_lines[nfuncs])) { print codeline > (function_name nfuncs "_fn.txt") } } close (function_name nfuncs "_fn.txt") close(filepath) } # Initial values for statistics variables num_of_functions = 0 max_mcyclo = 0 max_function_length = 0 num_of_simple_functions = 0 num_of_moderate_functions = 0 num_of_high_functions = 0 num_of_untestable_functions = 0 } # Epilogue END { # Print header (only for html) if (output_lang == "html") { html_header() } # Print prolog if ((output_lang == "html") && (html_prolog != "")) { print html_prolog } if ((output_lang == "wiki") && (wiki_prolog != "")) { print wiki_prolog } if (output_lang == "html") { print "
" package_name " Cyclomatic Complexity Report
" print "

Report generated at: " chronos_time "

" } if (output_lang == "wiki") { print "==" package_name " Cyclomatic Complexity Report==" print "Report generated at: '''" chronos_time "'''" } if (section_global_stats_p) { build_stats() if (output_lang == "html") { html_global_stats() } if (output_lang == "wiki") { wiki_global_stats() } } if (section_function_cyclo_p) { if (output_lang == "html") { html_function_cyclo() } if (output_lang == "wiki") { wiki_function_cyclo() } } # Print epilog if ((output_lang == "html") && (html_epilog != "")) { print html_epilog } if ((output_lang == "wiki") && (wiki_epilog != "")) { print wiki_epilog } # Print footer (html only) if (output_lang == "html") { html_footer() } } # End of pmccabe2html libidn-1.38/build-aux/gitlog-to-changelog0000755000000000000000000004026014076273517015265 00000000000000#!/bin/sh #! -*-perl-*- # Convert git log output to ChangeLog format. # Copyright (C) 2008-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see . # # Written by Jim Meyering # This is a prologue that allows to run a perl script as an executable # on systems that are compliant to a POSIX version before POSIX:2017. # On such systems, the usual invocation of an executable through execlp() # or execvp() fails with ENOEXEC if it is a script that does not start # with a #! line. The script interpreter mentioned in the #! line has # to be /bin/sh, because on GuixSD systems that is the only program that # has a fixed file name. The second line is essential for perl and is # also useful for editing this file in Emacs. The next two lines below # are valid code in both sh and perl. When executed by sh, they re-execute # the script through the perl program found in $PATH. The '-x' option # is essential as well; without it, perl would re-execute the script # through /bin/sh. When executed by perl, the next two lines are a no-op. eval 'exec perl -wSx "$0" "$@"' if 0; my $VERSION = '2021-02-24 23:42'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. use strict; use warnings; use Getopt::Long; use POSIX qw(strftime); (my $ME = $0) =~ s|.*/||; # use File::Coda; # https://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM < ChangeLog $ME -- -n 5 foo > last-5-commits-to-branch-foo SPECIAL SYNTAX: The following types of strings are interpreted specially when they appear at the beginning of a log message line. They are not copied to the output. Copyright-paperwork-exempt: Yes Append the "(tiny change)" notation to the usual "date name email" ChangeLog header to mark a change that does not require a copyright assignment. Co-authored-by: Joe User List the specified name and email address on a second ChangeLog header, denoting a co-author. Signed-off-by: Joe User These lines are simply elided. In a FILE specified via --amend, comment lines (starting with "#") are ignored. FILE must consist of pairs where SHA is a 40-byte SHA1 (alone on a line) referring to a commit in the current project, and CODE refers to one or more consecutive lines of Perl code. Pairs must be separated by one or more blank line. Here is sample input for use with --amend=FILE, from coreutils: 3a169f4c5d9159283548178668d2fae6fced3030 # fix typo in title: s/all tile types/all file types/ 1379ed974f1fa39b12e2ffab18b3f7a607082202 # Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself. # Change the author to be Paul. Note the escaped "@": s,Jim .*>,Paul Eggert , EOF } exit $exit_code; } # If the string $S is a well-behaved file name, simply return it. # If it contains white space, quotes, etc., quote it, and return the new string. sub shell_quote($) { my ($s) = @_; if ($s =~ m![^\w+/.,-]!) { # Convert each single quote to '\'' $s =~ s/\'/\'\\\'\'/g; # Then single quote the string. $s = "'$s'"; } return $s; } sub quoted_cmd(@) { return join (' ', map {shell_quote $_} @_); } # Parse file F. # Comment lines (starting with "#") are ignored. # F must consist of pairs where SHA is a 40-byte SHA1 # (alone on a line) referring to a commit in the current project, and # CODE refers to one or more consecutive lines of Perl code. # Pairs must be separated by one or more blank line. sub parse_amend_file($) { my ($f) = @_; open F, '<', $f or die "$ME: $f: failed to open for reading: $!\n"; my $fail; my $h = {}; my $in_code = 0; my $sha; while (defined (my $line = )) { $line =~ /^\#/ and next; chomp $line; $line eq '' and $in_code = 0, next; if (!$in_code) { $line =~ /^([[:xdigit:]]{40})$/ or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"), $fail = 1, next; $sha = lc $1; $in_code = 1; exists $h->{$sha} and (warn "$ME: $f:$.: duplicate SHA1\n"), $fail = 1, next; } else { $h->{$sha} ||= ''; $h->{$sha} .= "$line\n"; } } close F; $fail and exit 1; return $h; } # git_dir_option $SRCDIR # # From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR # is undef). Return as a list (0 or 1 element). sub git_dir_option($) { my ($srcdir) = @_; my @res = (); if (defined $srcdir) { my $qdir = shell_quote $srcdir; my $cmd = "cd $qdir && git rev-parse --show-toplevel"; my $qcmd = shell_quote $cmd; my $git_dir = qx($cmd); defined $git_dir or die "$ME: cannot run $qcmd: $!\n"; $? == 0 or die "$ME: $qcmd had unexpected exit code or signal ($?)\n"; chomp $git_dir; push @res, "--git-dir=$git_dir/.git"; } @res; } { my $since_date; my $until_date; my $format_string = '%s%n%b%n'; my $amend_file; my $append_dot = 0; my $cluster = 1; my $ignore_matching; my $ignore_line; my $strip_tab = 0; my $strip_cherry_pick = 0; my $srcdir; GetOptions ( help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; exit }, 'since=s' => \$since_date, 'until=s' => \$until_date, 'format=s' => \$format_string, 'amend=s' => \$amend_file, 'append-dot' => \$append_dot, 'cluster!' => \$cluster, 'ignore-matching=s' => \$ignore_matching, 'ignore-line=s' => \$ignore_line, 'strip-tab' => \$strip_tab, 'strip-cherry-pick' => \$strip_cherry_pick, 'srcdir=s' => \$srcdir, ) or usage 1; defined $since_date and unshift @ARGV, "--since=$since_date"; defined $until_date and unshift @ARGV, "--until=$until_date"; # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/) # that makes a correction in the log or attribution of that commit. my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {}; my @cmd = ('git', git_dir_option $srcdir, qw(log --log-size), '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV); open PIPE, '-|', @cmd or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n" . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); my $prev_multi_paragraph; my $prev_date_line = ''; my @prev_coauthors = (); my @skipshas = (); while (1) { defined (my $in = ) or last; $in =~ /^log size (\d+)$/ or die "$ME:$.: Invalid line (expected log size):\n$in"; my $log_nbytes = $1; my $log; my $n_read = read PIPE, $log, $log_nbytes; $n_read == $log_nbytes or die "$ME:$.: unexpected EOF\n"; # Extract leading hash. my ($sha, $rest) = split ':', $log, 2; defined $sha or die "$ME:$.: malformed log entry\n"; $sha =~ /^[[:xdigit:]]{40}$/ or die "$ME:$.: invalid SHA1: $sha\n"; my $skipflag = 0; if (@skipshas) { foreach(@skipshas) { if ($sha =~ /^$_/) { $skipflag = $_; last; } } } # If this commit's log requires any transformation, do it now. my $code = $amend_code->{$sha}; if (defined $code) { eval 'use Safe'; my $s = new Safe; # Put the unpreprocessed entry into "$_". $_ = $rest; # Let $code operate on it, safely. my $r = $s->reval("$code") or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n"; # Note that we've used this entry. delete $amend_code->{$sha}; # Update $rest upon success. $rest = $_; } # Remove lines inserted by "git cherry-pick". if ($strip_cherry_pick) { $rest =~ s/^\s*Conflicts:\n.*//sm; $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m; } my @line = split /[ \t]*\n/, $rest; my $author_line = shift @line; defined $author_line or die "$ME:$.: unexpected EOF\n"; $author_line =~ /^(\d+) (.*>)$/ or die "$ME:$.: Invalid line " . "(expected date/author/email):\n$author_line\n"; # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog # `(tiny change)' annotation. my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line) ? ' (tiny change)' : ''); my $date_line = sprintf "%s %s$tiny\n", strftime ("%Y-%m-%d", localtime ($1)), $2; my @coauthors = grep /^Co-authored-by:.*$/, @line; # Omit meta-data lines we've already interpreted. @line = grep !/^(?:Signed-off-by:[ ].*>$ |Co-authored-by:[ ] |Copyright-paperwork-exempt:[ ] |Tiny-change:[ ] )/x, @line; # Remove leading and trailing blank lines. if (@line) { while ($line[0] =~ /^\s*$/) { shift @line; } while ($line[$#line] =~ /^\s*$/) { pop @line; } } # Handle Emacs gitmerge.el "skipped" commits. # Yes, this should be controlled by an option. So sue me. if ( grep /^(; )?Merge from /, @line ) { my $found = 0; foreach (@line) { if (grep /^The following commit.*skipped:$/, $_) { $found = 1; ## Reset at each merge to reduce chance of false matches. @skipshas = (); next; } if ($found && $_ =~ /^([[:xdigit:]]{7,}) [^ ]/) { push ( @skipshas, $1 ); } } } # Ignore commits that match the --ignore-matching pattern, if specified. if (defined $ignore_matching && @line && $line[0] =~ /$ignore_matching/) { $skipflag = 1; } elsif ($skipflag) { ## Perhaps only warn if a pattern matches more than once? warn "$ME: warning: skipping $sha due to $skipflag\n"; } if (! $skipflag) { if (defined $ignore_line && @line) { @line = grep ! /$ignore_line/, @line; while ($line[$#line] =~ /^\s*$/) { pop @line; } } # Record whether there are two or more paragraphs. my $multi_paragraph = grep /^\s*$/, @line; # Format 'Co-authored-by: A U Thor ' lines in # standard multi-author ChangeLog format. for (@coauthors) { s/^Co-authored-by:\s*/\t /; s/\s*/ or warn "$ME: warning: missing email address for " . substr ($_, 5) . "\n"; } # If clustering of commit messages has been disabled, if this header # would be different from the previous date/name/etc. header, # or if this or the previous entry consists of two or more paragraphs, # then print the header. if ( ! $cluster || $date_line ne $prev_date_line || "@coauthors" ne "@prev_coauthors" || $multi_paragraph || $prev_multi_paragraph) { $prev_date_line eq '' or print "\n"; print $date_line; @coauthors and print join ("\n", @coauthors), "\n"; } $prev_date_line = $date_line; @prev_coauthors = @coauthors; $prev_multi_paragraph = $multi_paragraph; # If there were any lines if (@line == 0) { warn "$ME: warning: empty commit message:\n" . " commit $sha\n $date_line\n"; } else { if ($append_dot) { # If the first line of the message has enough room, then if (length $line[0] < 72) { # append a dot if there is no other punctuation or blank # at the end. $line[0] =~ /[[:punct:]\s]$/ or $line[0] .= '.'; } } # Remove one additional leading TAB from each line. $strip_tab and map { s/^\t// } @line; # Prefix each non-empty line with a TAB. @line = map { length $_ ? "\t$_" : '' } @line; print "\n", join ("\n", @line), "\n"; } } defined ($in = ) or last; $in ne "\n" and die "$ME:$.: unexpected line:\n$in"; } close PIPE or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; # FIXME-someday: include $PROCESS_STATUS in the diagnostic # Complain about any unused entry in the --amend=F specified file. my $fail = 0; foreach my $sha (keys %$amend_code) { warn "$ME:$amend_file: unused entry: $sha\n"; $fail = 1; } exit $fail; } # Local Variables: # mode: perl # indent-tabs-mode: nil # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-line-limit: 50 # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d %02H:%02M" # time-stamp-time-zone: "UTC0" # time-stamp-end: "'; # UTC" # End: libidn-1.38/build-aux/gendocs.sh0000755000000000000000000004147314076273517013475 00000000000000#!/bin/sh -e # gendocs.sh -- generate a GNU manual in many formats. This script is # mentioned in maintain.texi. See the help message below for usage details. scriptversion=2021-07-19.18 # Copyright 2003-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 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, see . # # Original author: Mohit Agarwal. # Send bug reports and any other correspondence to bug-gnulib@gnu.org. # # The latest version of this script, and the companion template, is # available from the Gnulib repository: # # https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh # https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template # TODO: # - image importing was only implemented for HTML generated by # makeinfo. But it should be simple enough to adjust. # - images are not imported in the source tarball. All the needed # formats (PDF, PNG, etc.) should be included. prog=`basename "$0"` srcdir=`pwd` scripturl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh" templateurl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template" : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="} : ${MAKEINFO="makeinfo"} : ${TEXI2DVI="texi2dvi"} : ${DOCBOOK2HTML="docbook2html"} : ${DOCBOOK2PDF="docbook2pdf"} : ${DOCBOOK2TXT="docbook2txt"} : ${GENDOCS_TEMPLATE_DIR="."} : ${PERL='perl'} : ${TEXI2HTML="texi2html"} unset CDPATH unset use_texi2html MANUAL_TITLE= PACKAGE= EMAIL=webmasters@gnu.org # please override with --email commonarg= # passed to all makeinfo/texi2html invcations. dirargs= # passed to all tools (-I dir). dirs= # -I directories. htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual" default_htmlarg=true infoarg=--no-split generate_ascii=true generate_html=true generate_info=true generate_tex=true outdir=manual source_extra= split=node srcfile= texarg="-t @finalout" version="gendocs.sh $scriptversion Copyright 2021 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING." usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE Generate output in various formats from PACKAGE.texinfo (or .texi or .txi) source. See the GNU Maintainers document for a more extensive discussion: https://www.gnu.org/prep/maintain_toc.html Options: --email ADR use ADR as contact in generated web pages; always give this. -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} -o OUTDIR write files into OUTDIR, instead of manual/. -I DIR append DIR to the Texinfo search path. --common ARG pass ARG in all invocations. --html ARG pass ARG to makeinfo or texi2html for HTML targets, instead of '$htmlarg'. --info ARG pass ARG to makeinfo for Info, instead of --no-split. --no-ascii skip generating the plain text output. --no-html skip generating the html output. --no-info skip generating the info output. --no-tex skip generating the dvi and pdf output. --source ARG include ARG in tar archive of sources. --split HOW make split HTML by node, section, chapter; default node. --tex ARG pass ARG to texi2dvi for DVI and PDF, instead of -t @finalout. --texi2html use texi2html to make HTML target, with all split versions. --docbook convert through DocBook too (xml, txt, html, pdf). --help display this help and exit successfully. --version display version information and exit successfully. Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" Typical sequence: cd PACKAGESOURCE/doc wget \"$scripturl\" wget \"$templateurl\" $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" Output will be in a new subdirectory \"manual\" (by default; use -o OUTDIR to override). Move all the new files into your web CVS tree, as explained in the Web Pages node of maintain.texi. Please use the --email ADDRESS option so your own bug-reporting address will be used in the generated HTML pages. MANUAL-TITLE is included as part of the HTML of the overall manual/index.html file. It should include the name of the package being documented. manual/index.html is created by substitution from the file $GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the generic template for your own purposes.) If you have several manuals, you'll need to run this script several times with different MANUAL values, specifying a different output directory with -o each time. Then write (by hand) an overall index.html with links to them all. If a manual's Texinfo sources are spread across several directories, first copy or symlink all Texinfo sources into a single directory. (Part of the script's work is to make a tar.gz of the sources.) As implied above, by default monolithic Info files are generated. If you want split Info, or other Info options, use --info to override. You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, and PERL to control the programs that get executed, and GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is looked for. With --docbook, the environment variables DOCBOOK2HTML, DOCBOOK2PDF, and DOCBOOK2TXT are also consulted. By default, makeinfo and texi2dvi are run in the default (English) locale, since that's the language of most Texinfo manuals. If you happen to have a non-English manual and non-English web site, see the SETLANG setting in the source. Email bug reports or enhancement requests to bug-gnulib@gnu.org. " while test $# -gt 0; do case $1 in -s) shift; srcfile=$1;; -o) shift; outdir=$1;; -I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";; --common) shift; commonarg=$1;; --docbook) docbook=yes;; --email) shift; EMAIL=$1;; --html) shift; default_htmlarg=false; htmlarg=$1;; --info) shift; infoarg=$1;; --no-ascii) generate_ascii=false;; --no-html) generate_ascii=false;; --no-info) generate_info=false;; --no-tex) generate_tex=false;; --source) shift; source_extra=$1;; --split) shift; split=$1;; --tex) shift; texarg=$1;; --texi2html) use_texi2html=1;; --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; -*) echo "$0: Unknown option \`$1'." >&2 echo "$0: Try \`--help' for more information." >&2 exit 1;; *) if test -z "$PACKAGE"; then PACKAGE=$1 elif test -z "$MANUAL_TITLE"; then MANUAL_TITLE=$1 else echo "$0: extra non-option argument \`$1'." >&2 exit 1 fi;; esac shift done # makeinfo uses the dirargs, but texi2dvi doesn't. commonarg=" $dirargs $commonarg" # For most of the following, the base name is just $PACKAGE base=$PACKAGE if $default_htmlarg && test -n "$use_texi2html"; then # The legacy texi2html doesn't support TOP_NODE_UP_URL htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css" fi if test -n "$srcfile"; then # but here, we use the basename of $srcfile base=`basename "$srcfile"` case $base in *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;; esac PACKAGE=$base elif test -s "$srcdir/$PACKAGE.texinfo"; then srcfile=$srcdir/$PACKAGE.texinfo elif test -s "$srcdir/$PACKAGE.texi"; then srcfile=$srcdir/$PACKAGE.texi elif test -s "$srcdir/$PACKAGE.txi"; then srcfile=$srcdir/$PACKAGE.txi else echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 exit 1 fi if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 echo "$0: it is available from $templateurl." >&2 exit 1 fi # Function to return size of $1 in something resembling kilobytes. calcsize() { size=`ls -ksl $1 | awk '{print $1}'` echo $size } # copy_images OUTDIR HTML-FILE... # ------------------------------- # Copy all the images needed by the HTML-FILEs into OUTDIR. # Look for them in . and the -I directories; this is simpler than what # makeinfo supports with -I, but hopefully it will suffice. copy_images() { local odir odir=$1 shift $PERL -n -e " BEGIN { \$me = '$prog'; \$odir = '$odir'; @dirs = qw(. $dirs); } " -e ' /<img src="(.*?)"/g && ++$need{$1}; END { #print "$me: @{[keys %need]}\n"; # for debugging, show images found. FILE: for my $f (keys %need) { for my $d (@dirs) { if (-f "$d/$f") { use File::Basename; my $dest = dirname ("$odir/$f"); # use File::Path; -d $dest || mkpath ($dest) || die "$me: cannot mkdir $dest: $!\n"; # use File::Copy; copy ("$d/$f", $dest) || die "$me: cannot copy $d/$f to $dest: $!\n"; next FILE; } } die "$me: $ARGV: cannot find image $f\n"; } } ' -- "$@" || exit 1 } case $outdir in /*) abs_outdir=$outdir;; *) abs_outdir=$srcdir/$outdir;; esac echo "Making output for $srcfile" echo " in `pwd`" mkdir -p "$outdir/" # if $generate_info; then cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\"" echo "Generating info... ($cmd)" rm -f $PACKAGE.info* # get rid of any strays eval "$cmd" tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info* ls -l "$outdir/$PACKAGE.info.tar.gz" info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"` # do not mv the info files, there's no point in having them available # separately on the web. fi # end info # if $generate_tex; then cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\"" printf "\nGenerating dvi... ($cmd)\n" eval "$cmd" # compress/finish dvi: gzip -f -9 $PACKAGE.dvi dvi_gz_size=`calcsize $PACKAGE.dvi.gz` mv $PACKAGE.dvi.gz "$outdir/" ls -l "$outdir/$PACKAGE.dvi.gz" cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\"" printf "\nGenerating pdf... ($cmd)\n" eval "$cmd" pdf_size=`calcsize $PACKAGE.pdf` mv $PACKAGE.pdf "$outdir/" ls -l "$outdir/$PACKAGE.pdf" fi # end tex (dvi + pdf) # if $generate_ascii; then opt="-o $PACKAGE.txt --no-split --no-headers $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating ascii... ($cmd)\n" eval "$cmd" ascii_size=`calcsize $PACKAGE.txt` gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz" ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"` mv $PACKAGE.txt "$outdir/" ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz" fi # if $generate_html; then # Split HTML at level $1. Used for texi2html. html_split() { opt="--split=$1 --node-files $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" printf "\nGenerating html by $1... ($cmd)\n" eval "$cmd" split_html_dir=$PACKAGE.html ( cd ${split_html_dir} || exit 1 ln -sf ${PACKAGE}.html index.html tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html ) eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"` rm -f "$outdir"/html_$1/*.html mkdir -p "$outdir/html_$1/" mv ${split_html_dir}/*.html "$outdir/html_$1/" rmdir ${split_html_dir} } if test -z "$use_texi2html"; then opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating monolithic html... ($cmd)\n" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` copy_images "$outdir/" $PACKAGE.html mv $PACKAGE.html "$outdir/" ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz" # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option, # it just always split by node. So if we're splitting by node anyway, # leave it out. if test "x$split" = xnode; then split_arg= else split_arg=--split=$split fi # opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating html by $split... ($cmd)\n" eval "$cmd" split_html_dir=$PACKAGE.html copy_images $split_html_dir/ $split_html_dir/*.html ( cd $split_html_dir || exit 1 tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- * ) eval \ html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"` rm -rf "$outdir/html_$split/" mv $split_html_dir "$outdir/html_$split/" du -s "$outdir/html_$split/" ls -l "$outdir/$PACKAGE.html_$split.tar.gz" else # use texi2html: opt="--output $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\"" printf "\nGenerating monolithic html with texi2html... ($cmd)\n" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` mv $PACKAGE.html "$outdir/" html_split node html_split chapter html_split section fi fi # end html # printf "\nMaking .tar.gz for sources...\n" d=`dirname $srcfile` ( cd "$d" srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" ) texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"` # # Do everything again through docbook. if test -n "$docbook"; then opt="-o - --docbook $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml" printf "\nGenerating docbook XML... ($cmd)\n" eval "$cmd" docbook_xml_size=`calcsize $PACKAGE-db.xml` gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz" docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"` mv $PACKAGE-db.xml "$outdir/" split_html_db_dir=html_node_db opt="$commonarg -o $split_html_db_dir" cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook HTML... ($cmd)\n" eval "$cmd" ( cd ${split_html_db_dir} || exit 1 tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html ) html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"` rm -f "$outdir"/html_node_db/*.html mkdir -p "$outdir/html_node_db" mv ${split_html_db_dir}/*.html "$outdir/html_node_db/" rmdir ${split_html_db_dir} cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook ASCII... ($cmd)\n" eval "$cmd" docbook_ascii_size=`calcsize $PACKAGE-db.txt` mv $PACKAGE-db.txt "$outdir/" cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook PDF... ($cmd)\n" eval "$cmd" docbook_pdf_size=`calcsize $PACKAGE-db.pdf` mv $PACKAGE-db.pdf "$outdir/" fi # printf "\nMaking index.html for $PACKAGE...\n" if test -z "$use_texi2html"; then CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" else # should take account of --split here. CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" fi curdate=`$SETLANG date '+%B %d, %Y'` sed \ -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ -e "s!%%EMAIL%%!$EMAIL!g" \ -e "s!%%PACKAGE%%!$PACKAGE!g" \ -e "s!%%DATE%%!$curdate!g" \ -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ -e "s!%%PDF_SIZE%%!$pdf_size!g" \ -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ -e "s,%%SCRIPTURL%%,$scripturl,g" \ -e "s!%%SCRIPTNAME%%!$prog!g" \ -e "$CONDS" \ $GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html" echo "Done, see $outdir/ subdirectory for new files." # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/build-aux/useless-if-before-free��������������������������������������������������������0000755�0000000�0000000�00000017016�14076273520�015666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh #! -*-perl-*- # Detect instances of "if (p) free (p);". # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces. # Copyright (C) 2008-2021 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>. # # Written by Jim Meyering # This is a prologue that allows to run a perl script as an executable # on systems that are compliant to a POSIX version before POSIX:2017. # On such systems, the usual invocation of an executable through execlp() # or execvp() fails with ENOEXEC if it is a script that does not start # with a #! line. The script interpreter mentioned in the #! line has # to be /bin/sh, because on GuixSD systems that is the only program that # has a fixed file name. The second line is essential for perl and is # also useful for editing this file in Emacs. The next two lines below # are valid code in both sh and perl. When executed by sh, they re-execute # the script through the perl program found in $PATH. The '-x' option # is essential as well; without it, perl would re-execute the script # through /bin/sh. When executed by perl, the next two lines are a no-op. eval 'exec perl -wSx "$0" "$@"' if 0; my $VERSION = '2021-04-11 10:11'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. my $copyright_year = '2021'; use strict; use warnings; use Getopt::Long; (my $ME = $0) =~ s|.*/||; # use File::Coda; # https://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM <<EOF; Usage: $ME [OPTIONS] FILE... Detect any instance in FILE of a useless "if" test before a free call, e.g., "if (p) free (p);". Any such test may be safely removed without affecting the semantics of the C code in FILE. Use --name=FOO --name=BAR to also detect free-like functions named FOO and BAR. OPTIONS: --list print only the name of each matching FILE (\\0-terminated) --name=N add name N to the list of \'free\'-like functions to detect; may be repeated --help display this help and exit --version output version information and exit Exit status: 0 one or more matches 1 no match 2 an error EXAMPLE: For example, this command prints all removable "if" tests before "free" and "kfree" calls in the linux kernel sources: git ls-files -z |xargs -0 $ME --name=kfree EOF } exit $exit_code; } sub is_NULL ($) { my ($expr) = @_; return ($expr eq 'NULL' || $expr eq '0'); } { sub EXIT_MATCH {0} sub EXIT_NO_MATCH {1} sub EXIT_ERROR {2} my $err = EXIT_NO_MATCH; my $list; my @name = qw(free); GetOptions ( help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n"; print "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n" . "This is free software: you are free to change and redistribute it.\n" . "There is NO WARRANTY, to the extent permitted by law.\n"; print "\n"; my $author = "Jim Meyering"; print "Written by $author.\n"; exit }, list => \$list, 'name=s@' => \@name, ) or usage 1; # Make sure we have the right number of non-option arguments. # Always tell the user why we fail. @ARGV < 1 and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR; my $or = join '|', @name; my $regexp = qr/(?:$or)/; # Set the input record separator. # Note: this makes it impractical to print line numbers. $/ = '"'; my $found_match = 0; FILE: foreach my $file (@ARGV) { open FH, '<', $file or (warn "$ME: can't open '$file' for reading: $!\n"), $err = EXIT_ERROR, next; while (defined (my $line = <FH>)) { # Skip non-matching lines early to save time $line =~ /\bif\b/ or next; while ($line =~ /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\) # 1 2 3 (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;| \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg) { my $all = $1; my ($lhs, $rhs) = ($2, $3); my ($free_opnd, $braced_free_opnd) = ($4, $5); my $non_NULL; if (!defined $rhs) { $non_NULL = $lhs } elsif (is_NULL $rhs) { $non_NULL = $lhs } elsif (is_NULL $lhs) { $non_NULL = $rhs } else { next } # Compare the non-NULL part of the "if" expression and the # free'd expression, without regard to white space. $non_NULL =~ tr/ \t//d; my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd; $e2 =~ tr/ \t//d; if ($non_NULL eq $e2) { $found_match = 1; $list and (print "$file\0"), next FILE; print "$file: $all\n"; } } } } continue { close FH; } $found_match && $err == EXIT_NO_MATCH and $err = EXIT_MATCH; exit $err; } my $foo = <<'EOF'; # The above is to *find* them. # This adjusts them, removing the unnecessary "if (p)" part. # FIXME: do something like this as an option (doesn't do braces): free=xfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0x3b -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s' # Use the following to remove redundant uses of kfree inside braces. # Note that -0777 puts perl in slurp-whole-file mode; # but we have plenty of memory, these days... free=kfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0777 -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms' Be careful that the result of the above transformation is valid. If the matched string is followed by "else", then obviously, it won't be. When modifying files, refuse to process anything other than a regular file. EOF ## Local Variables: ## mode: perl ## indent-tabs-mode: nil ## eval: (add-hook 'before-save-hook 'time-stamp) ## time-stamp-line-limit: 50 ## time-stamp-start: "my $VERSION = '" ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" ## time-stamp-time-zone: "UTC0" ## time-stamp-end: "'; # UTC" ## End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/build-aux/config.guess������������������������������������������������������������������0000755�0000000�0000000�00000140304�14075261466�014024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2021 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2021-06-03' # This file 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 3 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, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to <config-patches@gnu.org>. # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi # Just in case it came from the environment. GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. tmp= # shellcheck disable=SC2172 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" # shellcheck disable=SC2039,SC3028 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break fi done if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac } # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu #else #include <stdarg.h> /* First heuristic to detect musl libc. */ #ifdef __DEFINED_va_list LIBC=musl #endif #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" # Second heuristic to detect musl libc. if [ "$LIBC" = unknown ] && command -v ldd >/dev/null && ldd --version 2>&1 | grep -q ^musl; then LIBC=musl fi # If the system lacks a compiler, then just pick glibc. # We could probably try harder. if [ "$LIBC" = unknown ]; then LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case $UNAME_VERSION in Debian*) release='-gnu' ;; *) release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. GUESS=$machine-${os}${release}${abi-} ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE ;; *:SecBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE ;; *:MidnightBSD:*:*) GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE ;; *:ekkoBSD:*:*) GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE ;; *:SolidBSD:*:*) GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE ;; *:OS108:*:*) GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE ;; macppc:MirBSD:*:*) GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE ;; *:MirBSD:*:*) GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE ;; *:Sortix:*:*) GUESS=$UNAME_MACHINE-unknown-sortix ;; *:Twizzler:*:*) GUESS=$UNAME_MACHINE-unknown-twizzler ;; *:Redox:*:*) GUESS=$UNAME_MACHINE-unknown-redox ;; mips:OSF1:*.*) GUESS=mips-dec-osf1 ;; alpha:OSF1:*:*) # Reset EXIT trap before exiting to avoid spurious non-zero exit code. trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` GUESS=$UNAME_MACHINE-dec-osf$OSF_REL ;; Amiga*:UNIX_System_V:4.0:*) GUESS=m68k-unknown-sysv4 ;; *:[Aa]miga[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-amigaos ;; *:[Mm]orph[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-morphos ;; *:OS/390:*:*) GUESS=i370-ibm-openedition ;; *:z/VM:*:*) GUESS=s390-ibm-zvmoe ;; *:OS400:*:*) GUESS=powerpc-ibm-os400 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) GUESS=arm-acorn-riscix$UNAME_RELEASE ;; arm*:riscos:*:*|arm*:RISCOS:*:*) GUESS=arm-unknown-riscos ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) GUESS=hppa1.1-hitachi-hiuxmpp ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. case `(/bin/universe) 2>/dev/null` in att) GUESS=pyramid-pyramid-sysv3 ;; *) GUESS=pyramid-pyramid-bsd ;; esac ;; NILE*:*:*:dcosx) GUESS=pyramid-pyramid-svr4 ;; DRS?6000:unix:4.0:6*) GUESS=sparc-icl-nx6 ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) GUESS=sparc-icl-nx7 ;; esac ;; s390x:SunOS:*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL ;; sun4H:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-hal-solaris2$SUN_REL ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris2$SUN_REL ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) GUESS=i386-pc-auroraux$UNAME_RELEASE ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$SUN_ARCH-pc-solaris2$SUN_REL ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris3$SUN_REL ;; sun4*:SunOS:*:*) case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; sun3*:SunOS:*:*) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case `/bin/arch` in sun3) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac ;; aushp:SunOS:*:*) GUESS=sparc-auspex-sunos$UNAME_RELEASE ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) GUESS=m68k-milan-mint$UNAME_RELEASE ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) GUESS=m68k-hades-mint$UNAME_RELEASE ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) GUESS=m68k-unknown-mint$UNAME_RELEASE ;; m68k:machten:*:*) GUESS=m68k-apple-machten$UNAME_RELEASE ;; powerpc:machten:*:*) GUESS=powerpc-apple-machten$UNAME_RELEASE ;; RISC*:Mach:*:*) GUESS=mips-dec-mach_bsd4.3 ;; RISC*:ULTRIX:*:*) GUESS=mips-dec-ultrix$UNAME_RELEASE ;; VAX*:ULTRIX*:*:*) GUESS=vax-dec-ultrix$UNAME_RELEASE ;; 2020:CLIX:*:* | 2430:CLIX:*:*) GUESS=clipper-intergraph-clix$UNAME_RELEASE ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } GUESS=mips-mips-riscos$UNAME_RELEASE ;; Motorola:PowerMAX_OS:*:*) GUESS=powerpc-motorola-powermax ;; Motorola:*:4.3:PL8-*) GUESS=powerpc-harris-powermax ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) GUESS=powerpc-harris-powermax ;; Night_Hawk:Power_UNIX:*:*) GUESS=powerpc-harris-powerunix ;; m88k:CX/UX:7*:*) GUESS=m88k-harris-cxux7 ;; m88k:*:4*:R4*) GUESS=m88k-motorola-sysv4 ;; m88k:*:3*:R3*) GUESS=m88k-motorola-sysv3 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then GUESS=m88k-dg-dgux$UNAME_RELEASE else GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else GUESS=i586-dg-dgux$UNAME_RELEASE fi ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) GUESS=m88k-dolphin-sysv3 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 GUESS=m88k-motorola-sysv3 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) GUESS=m88k-tektronix-sysv3 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) GUESS=m68k-tektronix-bsd ;; *:IRIX*:*:*) IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` GUESS=mips-sgi-irix$IRIX_REL ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) GUESS=i386-ibm-aix ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include <sys/systemcfg.h> main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then GUESS=$SYSTEM_NAME else GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then GUESS=rs6000-ibm-aix3.2.4 else GUESS=rs6000-ibm-aix3.2 fi ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -x /usr/bin/lslpp ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$IBM_ARCH-ibm-aix$IBM_REV ;; *:AIX:*:*) GUESS=rs6000-ibm-aix ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) GUESS=romp-ibm-bsd4.4 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) GUESS=rs6000-bull-bosx ;; DPX/2?00:B.O.S.:*:*) GUESS=m68k-bull-sysv3 ;; 9000/[34]??:4.3bsd:1.*:*) GUESS=m68k-hp-bsd ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) GUESS=m68k-hp-bsd4.4 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include <stdlib.h> #include <unistd.h> int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if test "$HP_ARCH" = hppa2.0w then set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi GUESS=$HP_ARCH-hp-hpux$HPUX_REV ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` GUESS=ia64-hp-hpux$HPUX_REV ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include <unistd.h> int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } GUESS=unknown-hitachi-hiuxwe2 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) GUESS=hppa1.1-hp-bsd ;; 9000/8??:4.3bsd:*:*) GUESS=hppa1.0-hp-bsd ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) GUESS=hppa1.0-hp-mpeix ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) GUESS=hppa1.1-hp-osf ;; hp8??:OSF1:*:*) GUESS=hppa1.0-hp-osf ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then GUESS=$UNAME_MACHINE-unknown-osf1mk else GUESS=$UNAME_MACHINE-unknown-osf1 fi ;; parisc*:Lites*:*:*) GUESS=hppa1.1-hp-lites ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) GUESS=c1-convex-bsd ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) GUESS=c34-convex-bsd ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) GUESS=c38-convex-bsd ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) GUESS=c4-convex-bsd ;; CRAY*Y-MP:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=ymp-cray-unicos$CRAY_REL ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=t90-cray-unicos$CRAY_REL ;; CRAY*T3E:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=alphaev5-cray-unicosmk$CRAY_REL ;; CRAY*SV1:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=sv1-cray-unicos$CRAY_REL ;; *:UNICOS/mp:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=craynv-cray-unicosmp$CRAY_REL ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE ;; sparc*:BSD/OS:*:*) GUESS=sparc-unknown-bsdi$UNAME_RELEASE ;; *:BSD/OS:*:*) GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL ;; i*:CYGWIN*:*) GUESS=$UNAME_MACHINE-pc-cygwin ;; *:MINGW64*:*) GUESS=$UNAME_MACHINE-pc-mingw64 ;; *:MINGW*:*) GUESS=$UNAME_MACHINE-pc-mingw32 ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE ;; IA64) GUESS=ia64-unknown-interix$UNAME_RELEASE ;; esac ;; i*:UWIN*:*) GUESS=$UNAME_MACHINE-pc-uwin ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) GUESS=x86_64-pc-cygwin ;; prep*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=powerpcle-unknown-solaris2$SUN_REL ;; *:GNU:*:*) # the GNU system GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL ;; *:GNU/*:*:*) # other systems with GNU libc and userland GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi ;; avr32*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; cris:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; crisv32:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; e2k:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; frv:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; hexagon:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:Linux:*:*) GUESS=$UNAME_MACHINE-pc-linux-$LIBC ;; ia64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m68*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef mips #undef mipsel #undef mips64 #undef mips64el #if ${IS_GLIBC} && defined(_ABI64) LIBCABI=gnuabi64 #else #if ${IS_GLIBC} && defined(_ABIN32) LIBCABI=gnuabin32 #else LIBCABI=${LIBC} #endif #endif #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa64r6 #else #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa32r6 #else #if defined(__mips64) CPU=mips64 #else CPU=mips #endif #endif #endif #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) MIPS_ENDIAN= #else MIPS_ENDIAN= #endif #endif EOF cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; openrisc*:Linux:*:*) GUESS=or1k-unknown-linux-$LIBC ;; or32:Linux:*:* | or1k*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; padre:Linux:*:*) GUESS=sparc-unknown-linux-$LIBC ;; parisc64:Linux:*:* | hppa64:Linux:*:*) GUESS=hppa64-unknown-linux-$LIBC ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; *) GUESS=hppa-unknown-linux-$LIBC ;; esac ;; ppc64:Linux:*:*) GUESS=powerpc64-unknown-linux-$LIBC ;; ppc:Linux:*:*) GUESS=powerpc-unknown-linux-$LIBC ;; ppc64le:Linux:*:*) GUESS=powerpc64le-unknown-linux-$LIBC ;; ppcle:Linux:*:*) GUESS=powerpcle-unknown-linux-$LIBC ;; riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; s390:Linux:*:* | s390x:Linux:*:*) GUESS=$UNAME_MACHINE-ibm-linux-$LIBC ;; sh64*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sh*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sparc:Linux:*:* | sparc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; tile*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; vax:Linux:*:*) GUESS=$UNAME_MACHINE-dec-linux-$LIBC ;; x86_64:Linux:*:*) set_cc_for_build LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_X32 >/dev/null then LIBCABI=${LIBC}x32 fi fi GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. GUESS=i386-sequent-sysv4 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; i*86:XTS-300:*:STOP) GUESS=$UNAME_MACHINE-unknown-stop ;; i*86:atheos:*:*) GUESS=$UNAME_MACHINE-unknown-atheos ;; i*86:syllable:*:*) GUESS=$UNAME_MACHINE-pc-syllable ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) GUESS=i386-unknown-lynxos$UNAME_RELEASE ;; i*86:*DOS:*:*) GUESS=$UNAME_MACHINE-pc-msdosdjgpp ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv32 fi ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. GUESS=i586-pc-msdosdjgpp ;; Intel:Mach:3*:*) GUESS=i386-pc-mach3 ;; paragon:*:*:*) GUESS=i860-intel-osf1 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi ;; mini*:CTIX:SYS*5:*) # "miniframe" GUESS=m68010-convergent-sysv ;; mc68k:UNIX:SYSTEM5:3.51m) GUESS=m68k-convergent-sysv ;; M680?0:D-NIX:5.3:*) GUESS=m68k-diab-dnix ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) GUESS=m68k-unknown-lynxos$UNAME_RELEASE ;; mc68030:UNIX_System_V:4.*:*) GUESS=m68k-atari-sysv4 ;; TSUNAMI:LynxOS:2.*:*) GUESS=sparc-unknown-lynxos$UNAME_RELEASE ;; rs6000:LynxOS:2.*:*) GUESS=rs6000-unknown-lynxos$UNAME_RELEASE ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) GUESS=powerpc-unknown-lynxos$UNAME_RELEASE ;; SM[BE]S:UNIX_SV:*:*) GUESS=mips-dde-sysv$UNAME_RELEASE ;; RM*:ReliantUNIX-*:*:*) GUESS=mips-sni-sysv4 ;; RM*:SINIX-*:*:*) GUESS=mips-sni-sysv4 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` GUESS=$UNAME_MACHINE-sni-sysv4 else GUESS=ns32k-sni-sysv fi ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says <Richard.M.Bartel@ccMail.Census.GOV> GUESS=i586-unisys-sysv4 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm GUESS=hppa1.1-stratus-sysv4 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. GUESS=i860-stratus-sysv4 ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. GUESS=$UNAME_MACHINE-stratus-vos ;; *:VOS:*:*) # From Paul.Green@stratus.com. GUESS=hppa1.1-stratus-vos ;; mc68*:A/UX:*:*) GUESS=m68k-apple-aux$UNAME_RELEASE ;; news*:NEWS-OS:6*:*) GUESS=mips-sony-newsos6 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then GUESS=mips-nec-sysv$UNAME_RELEASE else GUESS=mips-unknown-sysv$UNAME_RELEASE fi ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. GUESS=powerpc-be-beos ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. GUESS=powerpc-apple-beos ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. GUESS=i586-pc-beos ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; x86_64:Haiku:*:*) GUESS=x86_64-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE ;; SX-5:SUPER-UX:*:*) GUESS=sx5-nec-superux$UNAME_RELEASE ;; SX-6:SUPER-UX:*:*) GUESS=sx6-nec-superux$UNAME_RELEASE ;; SX-7:SUPER-UX:*:*) GUESS=sx7-nec-superux$UNAME_RELEASE ;; SX-8:SUPER-UX:*:*) GUESS=sx8-nec-superux$UNAME_RELEASE ;; SX-8R:SUPER-UX:*:*) GUESS=sx8r-nec-superux$UNAME_RELEASE ;; SX-ACE:SUPER-UX:*:*) GUESS=sxace-nec-superux$UNAME_RELEASE ;; Power*:Rhapsody:*:*) GUESS=powerpc-apple-rhapsody$UNAME_RELEASE ;; *:Rhapsody:*:*) GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE ;; arm64:Darwin:*:*) GUESS=aarch64-apple-darwin$UNAME_RELEASE ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac if command -v xcode-select > /dev/null 2> /dev/null && \ ! xcode-select --print-path > /dev/null 2> /dev/null ; then # Avoid executing cc if there is no toolchain installed as # cc will be a stub that puts up a graphical alert # prompting the user to install developer tools. CC_FOR_BUILD=no_compiler_found else set_cc_for_build fi if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE ;; *:QNX:*:4*) GUESS=i386-pc-qnx ;; NEO-*:NONSTOP_KERNEL:*:*) GUESS=neo-tandem-nsk$UNAME_RELEASE ;; NSE-*:NONSTOP_KERNEL:*:*) GUESS=nse-tandem-nsk$UNAME_RELEASE ;; NSR-*:NONSTOP_KERNEL:*:*) GUESS=nsr-tandem-nsk$UNAME_RELEASE ;; NSV-*:NONSTOP_KERNEL:*:*) GUESS=nsv-tandem-nsk$UNAME_RELEASE ;; NSX-*:NONSTOP_KERNEL:*:*) GUESS=nsx-tandem-nsk$UNAME_RELEASE ;; *:NonStop-UX:*:*) GUESS=mips-compaq-nonstopux ;; BS2000:POSIX*:*:*) GUESS=bs2000-siemens-sysv ;; DS/*:UNIX_System_V:*:*) GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "${cputype-}" = 386; then UNAME_MACHINE=i386 elif test "x${cputype-}" != x; then UNAME_MACHINE=$cputype fi GUESS=$UNAME_MACHINE-unknown-plan9 ;; *:TOPS-10:*:*) GUESS=pdp10-unknown-tops10 ;; *:TENEX:*:*) GUESS=pdp10-unknown-tenex ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) GUESS=pdp10-dec-tops20 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) GUESS=pdp10-xkl-tops20 ;; *:TOPS-20:*:*) GUESS=pdp10-unknown-tops20 ;; *:ITS:*:*) GUESS=pdp10-unknown-its ;; SEI:*:*:SEIUX) GUESS=mips-sei-seiux$UNAME_RELEASE ;; *:DragonFly:*:*) DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case $UNAME_MACHINE in A*) GUESS=alpha-dec-vms ;; I*) GUESS=ia64-dec-vms ;; V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) GUESS=i386-pc-xenix ;; i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) GUESS=x86_64-unknown-onefs ;; *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; esac # Do we have a guess based on uname results? if test "x$GUESS" != x; then echo "$GUESS" exit fi # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" <<EOF #ifdef _SEQUENT_ #include <sys/types.h> #include <sys/utsname.h> #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #include <signal.h> #if defined(_SIZE_T_) || defined(SIGLOST) #include <sys/utsname.h> #endif #endif #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include <sys/param.h> printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) #if !defined (ultrix) #include <sys/param.h> #if defined (BSD) #if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); #else #if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); #else printf ("vax-dec-bsd\n"); exit (0); #endif #endif #else printf ("vax-dec-bsd\n"); exit (0); #endif #else #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname un; uname (&un); printf ("vax-dec-ultrix%s\n", un.release); exit (0); #else printf ("vax-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname *un; uname (&un); printf ("mips-dec-ultrix%s\n", un.release); exit (0); #else printf ("mips-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <<EOF NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize the system type. Please install a C compiler and try again. EOF ;; esac cat >&2 <<EOF This script (version $timestamp), has failed to recognize the operating system you are using. If your script is old, overwrite *all* copies of config.guess and config.sub with the latest versions from: https://git.savannah.gnu.org/cgit/config.git/plain/config.guess and https://git.savannah.gnu.org/cgit/config.git/plain/config.sub EOF our_year=`echo $timestamp | sed 's,-.*,,'` thisyear=`date +%Y` # shellcheck disable=SC2003 script_age=`expr "$thisyear" - "$our_year"` if test "$script_age" -lt 3 ; then cat >&2 <<EOF If $0 has already been updated, send the following data and any information you think might be pertinent to config-patches@gnu.org to provide the necessary information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF fi exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/build-aux/config.sub��������������������������������������������������������������������0000755�0000000�0000000�00000104342�14075261466�013471� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2021 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2021-07-03' # This file 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 3 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, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to <config-patches@gnu.org>. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Split fields of configuration type # shellcheck disable=SC2162 IFS="-" read field1 field2 field3 field4 <<EOF $1 EOF # Separate into logical components for further validation case $1 in *-*-*-*-*) echo Invalid configuration \`"$1"\': more than four components >&2 exit 1 ;; *-*-*-*) basic_machine=$field1-$field2 basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ | storm-chaos* | os2-emx* | rtmk-nova*) basic_machine=$field1 basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown basic_os=linux-android ;; *) basic_machine=$field1-$field2 basic_os=$field3 ;; esac ;; *-*) # A lone config we happen to match not fitting any pattern case $field1-$field2 in decstation-3100) basic_machine=mips-dec basic_os= ;; *-*) # Second component is usually, but not always the OS case $field2 in # Prevent following clause from handling this valid os sun*os*) basic_machine=$field1 basic_os=$field2 ;; # Manufacturers dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ | convergent* | ncr* | news | 32* | 3600* | 3100* \ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ | ultra | tti* | harris | dolphin | highlevel | gould \ | cbm | ns | masscomp | apple | axis | knuth | cray \ | microblaze* | sim | cisco \ | oki | wec | wrs | winbond) basic_machine=$field1-$field2 basic_os= ;; *) basic_machine=$field1 basic_os=$field2 ;; esac ;; esac ;; *) # Convert single-component short-hands not valid as part of # multi-component configurations. case $field1 in 386bsd) basic_machine=i386-pc basic_os=bsd ;; a29khif) basic_machine=a29k-amd basic_os=udi ;; adobe68k) basic_machine=m68010-adobe basic_os=scout ;; alliant) basic_machine=fx80-alliant basic_os= ;; altos | altos3068) basic_machine=m68k-altos basic_os= ;; am29k) basic_machine=a29k-none basic_os=bsd ;; amdahl) basic_machine=580-amdahl basic_os=sysv ;; amiga) basic_machine=m68k-unknown basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo basic_os=bsd ;; aros) basic_machine=i386-pc basic_os=aros ;; aux) basic_machine=m68k-apple basic_os=aux ;; balance) basic_machine=ns32k-sequent basic_os=dynix ;; blackfin) basic_machine=bfin-unknown basic_os=linux ;; cegcc) basic_machine=arm-unknown basic_os=cegcc ;; convex-c1) basic_machine=c1-convex basic_os=bsd ;; convex-c2) basic_machine=c2-convex basic_os=bsd ;; convex-c32) basic_machine=c32-convex basic_os=bsd ;; convex-c34) basic_machine=c34-convex basic_os=bsd ;; convex-c38) basic_machine=c38-convex basic_os=bsd ;; cray) basic_machine=j90-cray basic_os=unicos ;; crds | unos) basic_machine=m68k-crds basic_os= ;; da30) basic_machine=m68k-da30 basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec basic_os= ;; delta88) basic_machine=m88k-motorola basic_os=sysv3 ;; dicos) basic_machine=i686-pc basic_os=dicos ;; djgpp) basic_machine=i586-pc basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson basic_os=ose ;; gmicro) basic_machine=tron-gmicro basic_os=sysv ;; go32) basic_machine=i386-pc basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi basic_os=hms ;; harris) basic_machine=m88k-harris basic_os=sysv3 ;; hp300 | hp300hpux) basic_machine=m68k-hp basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp basic_os=osf ;; hppro) basic_machine=hppa1.1-hp basic_os=proelf ;; i386mach) basic_machine=i386-mach basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown basic_os=linux ;; magnum | m3230) basic_machine=mips-mips basic_os=sysv ;; merlin) basic_machine=ns32k-utek basic_os=sysv ;; mingw64) basic_machine=x86_64-pc basic_os=mingw64 ;; mingw32) basic_machine=i686-pc basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k basic_os=coff ;; morphos) basic_machine=powerpc-unknown basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown basic_os=moxiebox ;; msdos) basic_machine=i386-pc basic_os=msdos ;; msys) basic_machine=i686-pc basic_os=msys ;; mvs) basic_machine=i370-ibm basic_os=mvs ;; nacl) basic_machine=le32-unknown basic_os=nacl ;; ncr3000) basic_machine=i486-ncr basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony basic_os=newsos ;; news1000) basic_machine=m68030-sony basic_os=newsos ;; necv70) basic_machine=v70-nec basic_os=sysv ;; nh3000) basic_machine=m68k-harris basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris basic_os=cxux ;; nindy960) basic_machine=i960-intel basic_os=nindy ;; mon960) basic_machine=i960-intel basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson basic_os=ose ;; os68k) basic_machine=m68k-none basic_os=os68k ;; paragon) basic_machine=i860-intel basic_os=osf ;; parisc) basic_machine=hppa-unknown basic_os=linux ;; psp) basic_machine=mipsallegrexel-sony basic_os=psp ;; pw32) basic_machine=i586-unknown basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc basic_os=rdos ;; rdos32) basic_machine=i386-pc basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k basic_os=coff ;; sa29200) basic_machine=a29k-amd basic_os=udi ;; sei) basic_machine=mips-sei basic_os=seiux ;; sequent) basic_machine=i386-sequent basic_os= ;; sps7) basic_machine=m68k-bull basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem basic_os= ;; stratus) basic_machine=i860-stratus basic_os=sysv4 ;; sun2) basic_machine=m68000-sun basic_os= ;; sun2os3) basic_machine=m68000-sun basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun basic_os=sunos4 ;; sun3) basic_machine=m68k-sun basic_os= ;; sun3os3) basic_machine=m68k-sun basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun basic_os=sunos4 ;; sun4) basic_machine=sparc-sun basic_os= ;; sun4os3) basic_machine=sparc-sun basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun basic_os= ;; sv1) basic_machine=sv1-cray basic_os=unicos ;; symmetry) basic_machine=i386-sequent basic_os=dynix ;; t3e) basic_machine=alphaev5-cray basic_os=unicos ;; t90) basic_machine=t90-cray basic_os=unicos ;; toad1) basic_machine=pdp10-xkl basic_os=tops20 ;; tpf) basic_machine=s390x-ibm basic_os=tpf ;; udi29k) basic_machine=a29k-amd basic_os=udi ;; ultra3) basic_machine=a29k-nyu basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec basic_os=none ;; vaxv) basic_machine=vax-dec basic_os=sysv ;; vms) basic_machine=vax-dec basic_os=vms ;; vsta) basic_machine=i386-pc basic_os=vsta ;; vxworks960) basic_machine=i960-wrs basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs basic_os=vxworks ;; xbox) basic_machine=i686-pc basic_os=mingw32 ;; ymp) basic_machine=ymp-cray basic_os=unicos ;; *) basic_machine=$1 basic_os= ;; esac ;; esac # Decode 1-component or ad-hoc basic machines case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) cpu=hppa1.1 vendor=winbond ;; op50n) cpu=hppa1.1 vendor=oki ;; op60c) cpu=hppa1.1 vendor=oki ;; ibm*) cpu=i370 vendor=ibm ;; orion105) cpu=clipper vendor=highlevel ;; mac | mpw | mac-mpw) cpu=m68k vendor=apple ;; pmac | pmac-mpw) cpu=powerpc vendor=apple ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) cpu=m68000 vendor=att ;; 3b*) cpu=we32k vendor=att ;; bluegene*) cpu=powerpc vendor=ibm basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) cpu=m68k vendor=motorola ;; dpx2*) cpu=m68k vendor=bull basic_os=sysv3 ;; encore | umax | mmax) cpu=ns32k vendor=encore ;; elxsi) cpu=elxsi vendor=elxsi basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 vendor=alliant ;; genix) cpu=ns32k vendor=ns ;; h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) cpu=m68000 vendor=hp ;; hp9k3[2-9][0-9]) cpu=m68k vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) cpu=hppa1.1 vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi case $basic_os in irix*) ;; *) basic_os=irix4 ;; esac ;; miniframe) cpu=m68000 vendor=convergent ;; *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next case $basic_os in openstep*) ;; nextstep*) ;; ns2*) basic_os=nextstep2 ;; *) basic_os=nextstep3 ;; esac ;; np1) cpu=np1 vendor=gould ;; op50n-* | op60c-*) cpu=hppa1.1 vendor=oki basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; pbd) cpu=sparc vendor=tti ;; pbb) cpu=m68k vendor=tti ;; pc532) cpu=ns32k vendor=pc532 ;; pn) cpu=pn vendor=gould ;; power) cpu=power vendor=ibm ;; ps2) cpu=i386 vendor=ibm ;; rm[46]00) cpu=mips vendor=siemens ;; rtpc | rtpc-*) cpu=romp vendor=ibm ;; sde) cpu=mipsisa32 vendor=sde basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs basic_os=vxworks ;; tower | tower-32) cpu=m68k vendor=ncr ;; vpp*|vx|vx-*) cpu=f301 vendor=fujitsu ;; w65) cpu=w65 vendor=wdc ;; w89k-*) cpu=hppa1.1 vendor=winbond basic_os=proelf ;; none) cpu=none vendor=none ;; leon|leon[3-9]) cpu=sparc vendor=$basic_machine ;; leon-*|leon[3-9]-*) cpu=sparc vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) # shellcheck disable=SC2162 IFS="-" read cpu vendor <<EOF $basic_machine EOF ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) cpu=$basic_machine vendor=pc ;; # These rules are duplicated from below for sake of the special case above; # i.e. things that normalized to x86 arches should also default to "pc" pc98) cpu=i386 vendor=pc ;; x64 | amd64) cpu=x86_64 vendor=pc ;; # Recognize the basic CPU types without company name. *) cpu=$basic_machine vendor=unknown ;; esac unset -v basic_machine # Decode basic machines in the full and proper CPU-Company form. case $cpu-$vendor in # Here we handle the default manufacturer of certain CPU types in canonical form. It is in # some cases the only manufacturer, in others, it is the most popular. craynv-unknown) vendor=cray basic_os=${basic_os:-unicosmp} ;; c90-unknown | c90-cray) vendor=cray basic_os=${Basic_os:-unicos} ;; fx80-unknown) vendor=alliant ;; romp-unknown) vendor=ibm ;; mmix-unknown) vendor=knuth ;; microblaze-unknown | microblazeel-unknown) vendor=xilinx ;; rs6000-unknown) vendor=ibm ;; vax-unknown) vendor=dec ;; pdp11-unknown) vendor=dec ;; we32k-unknown) vendor=att ;; cydra-unknown) vendor=cydrome ;; i370-ibm*) vendor=ibm ;; orion-unknown) vendor=highlevel ;; xps-unknown | xps100-unknown) cpu=xps100 vendor=honeywell ;; # Here we normalize CPU types with a missing or matching vendor dpx20-unknown | dpx20-bull) cpu=rs6000 vendor=bull basic_os=${basic_os:-bosx} ;; # Here we normalize CPU types irrespective of the vendor amd64-*) cpu=x86_64 ;; blackfin-*) cpu=bfin basic_os=linux ;; c54x-*) cpu=tic54x ;; c55x-*) cpu=tic55x ;; c6x-*) cpu=tic6x ;; e500v[12]-*) cpu=powerpc basic_os=${basic_os}"spe" ;; mips3*-*) cpu=mips64 ;; ms1-*) cpu=mt ;; m68knommu-*) cpu=m68k basic_os=linux ;; m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) cpu=s12z ;; openrisc-*) cpu=or32 ;; parisc-*) cpu=hppa basic_os=linux ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 ;; pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) cpu=i686 ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) cpu=i686 ;; pentium4-*) cpu=i786 ;; pc98-*) cpu=i386 ;; ppc-* | ppcbe-*) cpu=powerpc ;; ppcle-* | powerpclittle-*) cpu=powerpcle ;; ppc64-*) cpu=powerpc64 ;; ppc64le-* | powerpc64little-*) cpu=powerpc64le ;; sb1-*) cpu=mipsisa64sb1 ;; sb1el-*) cpu=mipsisa64sb1el ;; sh5e[lb]-*) cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` ;; spur-*) cpu=spur ;; strongarm-* | thumb-*) cpu=arm ;; tx39-*) cpu=mipstx39 ;; tx39el-*) cpu=mipstx39el ;; x64-*) cpu=x86_64 ;; xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; arm64-*) cpu=aarch64 ;; # Recognize the canonical CPU Types that limit and/or modify the # company names they are paired with. cr16-*) basic_os=${basic_os:-elf} ;; crisv32-* | etraxfs*-*) cpu=crisv32 vendor=axis ;; cris-* | etrax*-*) cpu=cris vendor=axis ;; crx-*) basic_os=${basic_os:-elf} ;; neo-tandem) cpu=neo vendor=tandem ;; nse-tandem) cpu=nse vendor=tandem ;; nsr-tandem) cpu=nsr vendor=tandem ;; nsv-tandem) cpu=nsv vendor=tandem ;; nsx-tandem) cpu=nsx vendor=tandem ;; mipsallegrexel-sony) cpu=mipsallegrexel vendor=sony ;; tile*-*) basic_os=${basic_os:-linux-gnu} ;; *) # Recognize the canonical CPU types that are allowed with any # company name. case $cpu in 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | abacus \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ | alphapca5[67] | alpha64pca5[67] \ | am33_2.0 \ | amdgcn \ | arc | arceb | arc32 | arc64 \ | arm | arm[lb]e | arme[lb] | armv* \ | avr | avr32 \ | asmjs \ | ba \ | be32 | be64 \ | bfin | bpf | bs2000 \ | c[123]* | c30 | [cjt]90 | c4x \ | c8051 | clipper | craynv | csky | cydra \ | d10v | d30v | dlx | dsp16xx \ | e2k | elxsi | epiphany \ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ | h8300 | h8500 \ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | loongarch32 | loongarch64 | loongarchx32 \ | m32c | m32r | m32rle \ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ | m88110 | m88k | maxq | mb | mcore | mep | metag \ | microblaze | microblazeel \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64eb | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r3 | mipsisa32r3el \ | mipsisa32r5 | mipsisa32r5el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r3 | mipsisa64r3el \ | mipsisa64r5 | mipsisa64r5el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mmix \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nfp \ | nios | nios2 | nios2eb | nios2el \ | none | np1 | ns16k | ns32k | nvptx \ | open8 \ | or1k* \ | or32 \ | orion \ | picochip \ | pdp10 | pdp11 | pj | pjl | pn | power \ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ | pru \ | pyramid \ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ | rl78 | romp | rs6000 | rx \ | s390 | s390x \ | score \ | sh | shl \ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ | spu \ | tahoe \ | thumbv7* \ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ | tron \ | ubicom32 \ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ | vax \ | visium \ | w65 \ | wasm32 | wasm64 \ | we32k \ | x86 | x86_64 | xc16x | xgate | xps100 \ | xstormy16 | xtensa* \ | ymp \ | z8k | z80) ;; *) echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 exit 1 ;; esac ;; esac # Here we canonicalize certain aliases for manufacturers. case $vendor in digital*) vendor=dec ;; commodore*) vendor=cbm ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if test x$basic_os != x then # First recognize some ad-hoc caes, or perhaps split kernel-os, or else just # set os. case $basic_os in gnu/linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) kernel=os2 os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ;; nto-qnx*) kernel=nto os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) # shellcheck disable=SC2162 IFS="-" read kernel os <<EOF $basic_os EOF ;; # Default OS when just kernel was specified nto*) kernel=nto os=`echo "$basic_os" | sed -e 's|nto|qnx|'` ;; linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;; *) kernel= os=$basic_os ;; esac # Now, normalize the OS (knowing we just have one component, it's not a kernel, # etc.) case $os in # First match some system type aliases that might get confused # with valid system types. # solaris* is a basic system type, with this one exception. auroraux) os=auroraux ;; bluegene*) os=cnk ;; solaris1 | solaris1.*) os=`echo "$os" | sed -e 's|solaris1|sunos4|'` ;; solaris) os=solaris2 ;; unixware*) os=sysv4.2uw ;; # es1800 is here to avoid being matched by es* (a different OS) es1800*) os=ose ;; # Some version numbers need modification chorusos*) os=chorusos ;; isc) os=isc2.2 ;; sco6) os=sco5v6 ;; sco5) os=sco3.2v5 ;; sco4) os=sco3.2v4 ;; sco3.2.[4-9]*) os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` ;; sco*v* | scout) # Don't match below ;; sco*) os=sco3.2v2 ;; psos*) os=psos ;; qnx*) os=qnx ;; hiux*) os=hiuxwe2 ;; lynx*178) os=lynxos178 ;; lynx*5) os=lynxos5 ;; lynxos*) # don't get caught up in next wildcard ;; lynx*) os=lynxos ;; mac[0-9]*) os=`echo "$os" | sed -e 's|mac|macos|'` ;; opened*) os=openedition ;; os400*) os=os400 ;; sunos5*) os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; sunos6*) os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; wince*) os=wince ;; utek*) os=bsd ;; dynix*) os=bsd ;; acis*) os=aos ;; atheos*) os=atheos ;; syllable*) os=syllable ;; 386bsd) os=bsd ;; ctix* | uts*) os=sysv ;; nova*) os=rtmk-nova ;; ns2) os=nextstep2 ;; # Preserve the version number of sinix5. sinix5.*) os=`echo "$os" | sed -e 's|sinix|sysv|'` ;; sinix*) os=sysv4 ;; tpf*) os=tpf ;; triton*) os=sysv3 ;; oss*) os=sysv3 ;; svr4*) os=sysv4 ;; svr3) os=sysv3 ;; sysvr4) os=sysv4 ;; ose*) os=ose ;; *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) os=mint ;; dicos*) os=dicos ;; pikeos*) # Until real need of OS specific support for # particular features comes up, bare metal # configurations are quite functional. case $cpu in arm*) os=eabi ;; *) os=elf ;; esac ;; *) # No normalization, but not necessarily accepted, that comes below. ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. kernel= case $cpu-$vendor in score-*) os=elf ;; spu-*) os=elf ;; *-acorn) os=riscix1.2 ;; arm*-rebel) kernel=linux os=gnu ;; arm*-semi) os=aout ;; c4x-* | tic4x-*) os=coff ;; c8051-*) os=elf ;; clipper-intergraph) os=clix ;; hexagon-*) os=elf ;; tic54x-*) os=coff ;; tic55x-*) os=coff ;; tic6x-*) os=coff ;; # This must come before the *-dec entry. pdp10-*) os=tops20 ;; pdp11-*) os=none ;; *-dec | vax-*) os=ultrix4.2 ;; m68*-apollo) os=domain ;; i386-sun) os=sunos4.0.2 ;; m68000-sun) os=sunos3 ;; m68*-cisco) os=aout ;; mep-*) os=elf ;; mips*-cisco) os=elf ;; mips*-*) os=elf ;; or32-*) os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=sysv3 ;; sparc-* | *-sun) os=sunos4.1.1 ;; pru-*) os=elf ;; *-be) os=beos ;; *-ibm) os=aix ;; *-knuth) os=mmixware ;; *-wec) os=proelf ;; *-winbond) os=proelf ;; *-oki) os=proelf ;; *-hp) os=hpux ;; *-hitachi) os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=sysv ;; *-cbm) os=amigaos ;; *-dg) os=dgux ;; *-dolphin) os=sysv3 ;; m68k-ccur) os=rtu ;; m88k-omron*) os=luna ;; *-next) os=nextstep ;; *-sequent) os=ptx ;; *-crds) os=unos ;; *-ns) os=genix ;; i370-*) os=mvs ;; *-gould) os=sysv ;; *-highlevel) os=bsd ;; *-encore) os=bsd ;; *-sgi) os=irix ;; *-siemens) os=sysv4 ;; *-masscomp) os=rtu ;; f30[01]-fujitsu | f700-fujitsu) os=uxpv ;; *-rom68k) os=coff ;; *-*bug) os=coff ;; *-apple) os=macos ;; *-atari*) os=mint ;; *-wrs) os=vxworks ;; *) os=none ;; esac fi # Now, validate our (potentially fixed-up) OS. case $os in # Sometimes we do "kernel-libc", so those need to count as OSes. musl* | newlib* | uclibc*) ;; # Likewise for "kernel-abi" eabi* | gnueabi*) ;; # VxWorks passes extra cpu info in the 4th filed. simlinux | simwindows | spe) ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \ | os9* | macos* | osx* | ios* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ | aos* | aros* | cloudabi* | sortix* | twizzler* \ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ | udi* | lites* | ieee* | go32* | aux* | hcos* \ | chorusrdb* | cegcc* | glidix* | serenity* \ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ | midipix* | mingw32* | mingw64* | mint* \ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ | interix* | uwin* | mks* | rhapsody* | darwin* \ | openstep* | oskit* | conix* | pw32* | nonstopux* \ | storm-chaos* | tops10* | tenex* | tops20* | its* \ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) # Don't forget version if it is 3.2v4 or newer. ;; none) ;; *) echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os in linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) ;; uclinux-uclibc* ) ;; -dietlibc* | -newlib* | -musl* | -uclibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; vxworks-simlinux | vxworks-simwindows | vxworks-spe) ;; nto-qnx*) ;; os2-emx) ;; *-eabi* | *-gnueabi*) ;; -*) # Blank kernel with real OS is always fine. ;; *-*) echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 exit 1 ;; esac # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) case $cpu-$os in *-riscix*) vendor=acorn ;; *-sunos*) vendor=sun ;; *-cnk* | *-aix*) vendor=ibm ;; *-beos*) vendor=be ;; *-hpux*) vendor=hp ;; *-mpeix*) vendor=hp ;; *-hiux*) vendor=hitachi ;; *-unos*) vendor=crds ;; *-dgux*) vendor=dg ;; *-luna*) vendor=omron ;; *-genix*) vendor=ns ;; *-clix*) vendor=intergraph ;; *-mvs* | *-opened*) vendor=ibm ;; *-os400*) vendor=ibm ;; s390-* | s390x-*) vendor=ibm ;; *-ptx*) vendor=sequent ;; *-tpf*) vendor=ibm ;; *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; *-aux*) vendor=apple ;; *-hms*) vendor=hitachi ;; *-mpw* | *-macos*) vendor=apple ;; *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; *-vos*) vendor=stratus ;; esac ;; esac echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274121�010426� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/libidn-components.eps���������������������������������������������������������������0000644�0000000�0000000�00000017445�14076273643�014526� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%!PS-Adobe-3.0 EPSF-3.0 %%Title: components.fig %%Creator: fig2dev Version 3.2.8 %%CreationDate: 2021-07-22 15:50:27 %%BoundingBox: 0 0 382 350 %%Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /rl {rlineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /xfig_image {image Data flushfile} def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { sa n 0 350 m 0 0 l 382 0 l 382 350 l cp clip -47.4 405.1 tr 1 -1 sc $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06299 0.06299 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 3355 1845 m 3295 1845 3295 2235 60 arcto 4 {pop} repeat 3295 2295 4609 2295 60 arcto 4 {pop} repeat 4669 2295 4669 1905 60 arcto 4 {pop} repeat 4669 1845 3355 1845 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 2663 1845 m 2618 1845 2618 2250 45 arcto 4 {pop} repeat 2618 2295 3141 2295 45 arcto 4 {pop} repeat 3186 2295 3186 1890 45 arcto 4 {pop} repeat 3186 1845 2663 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1988 1845 m 1943 1845 1943 2250 45 arcto 4 {pop} repeat 1943 2295 2467 2295 45 arcto 4 {pop} repeat 2512 2295 2512 1890 45 arcto 4 {pop} repeat 2512 1845 1988 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1313 1845 m 1268 1845 1268 2250 45 arcto 4 {pop} repeat 1268 2295 1792 2295 45 arcto 4 {pop} repeat 1837 2295 1837 1890 45 arcto 4 {pop} repeat 1837 1845 1313 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 870 4560 m 810 4560 810 5099 60 arcto 4 {pop} repeat 810 5159 6735 5159 60 arcto 4 {pop} repeat 6795 5159 6795 4620 60 arcto 4 {pop} repeat 6795 4560 870 4560 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4065 2837 m 4005 2837 4005 3448 60 arcto 4 {pop} repeat 4005 3508 5790 3508 60 arcto 4 {pop} repeat 5850 3508 5850 2897 60 arcto 4 {pop} repeat 5850 2837 4065 2837 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4110 900 m 4050 900 4050 1338 60 arcto 4 {pop} repeat 4050 1398 5520 1398 60 arcto 4 {pop} repeat 5580 1398 5580 960 60 arcto 4 {pop} repeat 5580 900 4110 900 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 2887 1855 m 2873 1855 l 2864 1769 l 2896 1769 l cp eoclip n 2880 1398 m 2880 1848 l gs col0 s gr gr % arrowhead n 2864 1769 m 2880 1832 l 2896 1769 l 2864 1769 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3697 1855 m 3683 1855 l 3674 1769 l 3706 1769 l cp eoclip n 3690 1395 m 3690 1848 l gs col0 s gr gr % arrowhead n 3674 1769 m 3690 1832 l 3706 1769 l 3674 1769 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2887 4580 m 2873 4580 l 2864 4494 l 2896 4494 l cp eoclip n 2880 2298 m 2880 4573 l gs col0 s gr gr % arrowhead n 2864 4494 m 2880 4557 l 2896 4494 l 2864 4494 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2167 4580 m 2153 4580 l 2144 4494 l 2176 4494 l cp eoclip n 2160 2298 m 2160 4573 l gs col0 s gr gr % arrowhead n 2144 4494 m 2160 4557 l 2176 4494 l 2144 4494 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1537 4580 m 1523 4580 l 1514 4494 l 1546 4494 l cp eoclip n 1530 2298 m 1530 4573 l gs col0 s gr gr % arrowhead n 1514 4494 m 1530 4557 l 1546 4494 l 1514 4494 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1042 4580 m 1028 4580 l 1019 4494 l 1051 4494 l cp eoclip n 1035 1398 m 1035 4573 l gs col0 s gr gr % arrowhead n 1019 4494 m 1035 4557 l 1051 4494 l 1019 4494 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1537 1855 m 1523 1855 l 1514 1769 l 1546 1769 l cp eoclip n 1530 1398 m 1530 1848 l gs col0 s gr gr % arrowhead n 1514 1769 m 1530 1832 l 1546 1769 l 1514 1769 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2212 1855 m 2198 1855 l 2189 1769 l 2221 1769 l cp eoclip n 2205 1398 m 2205 1848 l gs col0 s gr gr % arrowhead n 2189 1769 m 2205 1832 l 2221 1769 l 2189 1769 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3562 4580 m 3548 4580 l 3539 4494 l 3571 4494 l cp eoclip n 3555 2298 m 3555 4573 l gs col0 s gr gr % arrowhead n 3539 4494 m 3555 4557 l 3571 4494 l 3539 4494 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4912 4580 m 4898 4580 l 4889 4494 l 4921 4494 l cp eoclip n 4905 3506 m 4905 4573 l gs col0 s gr gr % arrowhead n 4889 4494 m 4905 4557 l 4921 4494 l 4889 4494 l cp gs 0.00 setgray ef gr col0 s % Polyline [15 45] 45 sd n 870 5820 m 810 5820 810 6359 60 arcto 4 {pop} repeat 810 6419 6735 6419 60 arcto 4 {pop} repeat 6795 6419 6795 5880 60 arcto 4 {pop} repeat 6795 5820 870 5820 60 arcto 4 {pop} repeat cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd gs clippath 3742 5812 m 3728 5812 l 3705 5669 l 3765 5669 l cp 3728 5168 m 3742 5168 l 3765 5311 l 3705 5311 l cp eoclip n 3735 5175 m 3735 5805 l gs col0 s gr gr [] 0 sd % arrowhead n 3765 5311 m 3735 5191 l 3705 5311 l 3765 5311 l cp gs col7 1.00 shd ef gr col0 s % arrowhead n 3705 5669 m 3735 5789 l 3765 5669 l 3705 5669 l cp gs col7 1.00 shd ef gr col0 s % Polyline n 840 900 m 765 900 765 1323 75 arcto 4 {pop} repeat 765 1398 3841 1398 75 arcto 4 {pop} repeat 3916 1398 3916 975 75 arcto 4 {pop} repeat 3916 900 840 900 75 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 4372 2842 m 4358 2842 l 4349 2756 l 4381 2756 l cp eoclip n 4365 2277 m 4365 2835 l gs col0 s gr gr % arrowhead n 4349 2756 m 4365 2819 l 4381 2756 l 4349 2756 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4867 2870 m 4853 2870 l 4844 2784 l 4876 2784 l cp eoclip n 4860 1395 m 4860 2863 l gs col0 s gr gr % arrowhead n 4844 2784 m 4860 2847 l 4876 2784 l 4844 2784 l cp gs 0.00 setgray ef gr col0 s % Polyline n 5715 900 m 5670 900 5670 1350 45 arcto 4 {pop} repeat 5670 1395 6750 1395 45 arcto 4 {pop} repeat 6795 1395 6795 945 45 arcto 4 {pop} repeat 6795 900 5715 900 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 6172 4580 m 6158 4580 l 6149 4494 l 6181 4494 l cp eoclip n 6165 1398 m 6165 4573 l gs col0 s gr gr % arrowhead n 6149 4494 m 6165 4557 l 6181 4494 l 6149 4494 l cp gs 0.00 setgray ef gr col0 s /Helvetica ff 165.00 scf sf 3600 2107 m gs 1 -1 sc (Nameprep) col0 sh gr /Helvetica ff 165.00 scf sf 2700 2130 m gs 1 -1 sc (iSCSI) col0 sh gr /Helvetica ff 165.00 scf sf 2025 2130 m gs 1 -1 sc (SASL) col0 sh gr /Helvetica ff 165.00 scf sf 1327 2130 m gs 1 -1 sc (XMPP) col0 sh gr /Helvetica-Bold ff 165.00 scf sf 3150 4905 m gs 1 -1 sc (GNU IDN Library) col0 sh gr /Helvetica ff 150.00 scf sf 4751 3227 m gs 1 -1 sc (IDNA) col0 sh gr /Helvetica ff 165.00 scf sf 4455 1215 m gs 1 -1 sc (Punycode) col0 sh gr /Helvetica ff 165.00 scf sf 3345 6157 m gs 1 -1 sc (Application) col0 sh gr /Helvetica ff 165.00 scf sf 1935 1215 m gs 1 -1 sc (StringPrep) col0 sh gr /Helvetica ff 165.00 scf sf 6075 1170 m gs 1 -1 sc (TLD) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/fdl-1.3.texi������������������������������������������������������������������������0000644�0000000�0000000�00000055612�14076273520�012320� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������@c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{https://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @enumerate 0 @item PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document @dfn{free} in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. @item APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, La@TeX{} input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG@. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The ``publisher'' means any person or entity that distributes copies of the Document to the public. A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. @item VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. @item COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. @item MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: @enumerate A @item Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. @item List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. @item State on the Title page the name of the publisher of the Modified Version, as the publisher. @item Preserve all the copyright notices of the Document. @item Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. @item Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. @item Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. @item Include an unaltered copy of this License. @item Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. @item Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. @item For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. @item Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section. @item Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. @item COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. @item AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. @item TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @item TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See @uref{https://www.gnu.org/licenses/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. @item RELICENSING ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site. ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. @end enumerate @page @heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: @smallexample @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with@dots{}Texts.''@: line with this: @smallexample @group with the Invariant Sections being @var{list their titles}, with the Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. @end group @end smallexample If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: ����������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/gdoc��������������������������������������������������������������������������������0000755�0000000�0000000�00000072002�14076271517�011217� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������eval '(exit $?0)' && eval 'exec perl "$0" ${1+"$@"}' # -*- mode: perl -*- # & eval 'exec perl "$0" $argv:q' if 0; ## Copyright (c) 2002-2021 Simon Josefsson ## added -texinfo, -listfunc, -pkg-name ## man page revamp ## various improvements ## Copyright (c) 2001, 2002 Nikos Mavrogiannopoulos ## added -tex ## Copyright (c) 1998 Michael Zucchi ## Copyright (c) 2013 Adam Sampson ## made highlighting not depend on hash order, for Perl 5.18 # 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 3 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, see <http://www.gnu.org/licenses/>. # This will read a C source code file and scan for embedded comments # in the style of gnome comments (+minor extensions - see below). # usage: # gdoc [ -docbook | -html | -text | -man | -tex | -texinfo | -listfunc ] # [ -sourceversion verno ] [ -include file | -includefuncprefix ] # [ -bugsto address ] [ -pkg-name packagename ] # [ -seeinfo infonode ] [ -copyright notice ] [ -verbatimcopying ] # [ -function funcname [ -function funcname ...] ] c file(s)s > outputfile # # Set output format using one of -docbook, -html, -text, -man, -tex, # -texinfo, or -listfunc. Default is man. # # -sourceversion # Version number for source code, e.g. '1.0.4'. Used in 'man' headers. # Defaults to using current date. # # -include FILE # For man pages, mention #include <FILE.h> in the synopsis. # # -includefuncprefix # For man pages, mention a #include <FILE.h> in the synopsis. # The FILE derived from the function prefix. For example, a # function gss_init_sec_context will generate an include # statement of #include <gss.h>. # # -bugsto address # For man pages, include a section about reporting bugs and mention # the given e-mail address, e.g 'bug-libidn@gnu.org'. # # -pkg-name packagename # For man pages when -bugsto is used, also include help URLs to the # the project's home page. For example, "GNU Libidn". # # -seeinfo infonode # For man pages, include a section that point to an info manual # for more information. # # -copyright notice # For man pages, include a copyright section with the given # notice after a preamble. Use, e.g., '2002, 2003 Simon Josefsson'. # # -verbatimcopying # For man pages, and when the -copyright parameter is used, # add a licensing statement that say verbatim copying is permitted. # # -function funcname # If set, then only generate documentation for the given function(s). All # other functions are ignored. # # c files - list of 'c' files to process # # All output goes to stdout, with errors to stderr. # # format of comments. # In the following table, (...)? signifies optional structure. # (...)* signifies 0 or more structure elements # /** # * function_name(:)? (- short description)? # (* @parameterx: (description of parameter x)?)* # (* a blank line)? # * (Description:)? (Description of function)? # * (Section header: (section description)? )* # (*)?*/ # # So .. the trivial example would be: # # /** # * my_function # **/ # # If the Description: header tag is ommitted, then there must be a blank line # after the last parameter specification. # e.g. # /** # * my_function - does my stuff # * @my_arg: its mine damnit # * # * Does my stuff explained. # */ # # or, could also use: # /** # * my_function - does my stuff # * @my_arg: its mine damnit # * Description: Does my stuff explained. # */ # etc. # # All descriptions can be multiline, apart from the short function description. # # All descriptive text is further processed, scanning for the following special # patterns, which are highlighted appropriately. # # 'funcname()' - function # '$ENVVAR' - environmental variable OBSOLETE (?) # '#struct_name' - name of a structure # '@parameter' - name of a parameter # '%CONST' - name of a constant. # # Extensions for LaTeX: # # 1. the symbol '->' will be replaced with a rightarrow # 2. x^y with ${x}^{y}$. # 3. xxx\: with xxx: use POSIX qw(strftime); # match expressions used to find embedded type information $type_constant = "\\\%([A-Za-z0-9_]+)"; $type_func = "([A-Za-z0-9_]+\\(\\))"; $type_param = '\@([A-Za-z0-9_]+)\s*'; $type_struct = "\\\#([A-Za-z0-9_]+)"; $type_env = "(\\\$[A-Za-z0-9_]+)"; # Output conversion substitutions. # One for each output format # these work fairly well @highlights_html = ( [$type_constant, '"<i>$1</i>"'], [$type_func, '"<b>$1</b>"'], [$type_struct, '"<i>$1</i>"'], [$type_param, '" <tt><b>$1</b></tt> "'] ); $blankline_html = "<p>"; @highlights_texinfo = ( [$type_param, '" \@code{$1} "'], [$type_constant, '"\@code{$1} "'], [$type_func, '"\@code{$1} "'], [$type_struct, '"\@code{$1} "'], ); $blankline_texinfo = ""; @highlights_tex = ( [$type_param, '" {\\\bf $1} "'], [$type_constant, '"{\\\it $1}"'], [$type_func, '"{\\\bf $1}"'], [$type_struct, '"{\\\it $1}"'], ); $blankline_tex = "\\\\"; # sgml, docbook format @highlights_sgml = ( [$type_constant, '"<replaceable class=\"option\">$1</replaceable>"'], [$type_func, '"<function>$1</function>"'], [$type_struct, '"<structname>$1</structname>"'], [$type_env, '"<envar>$1</envar>"'], [$type_param, '" <parameter>$1</parameter> "'] ); $blankline_sgml = "</para><para>\n"; # these are pretty rough @highlights_man = ( [$type_constant, '"\\\fB$1\\\fP"'], [$type_func, '"\\\fB$1\\\fP"'], [$type_struct, '"\\\fB$1\\\fP"'], [$type_param, '" \\\fI$1\\\fP "'] ); $blankline_man = ""; # text-mode @highlights_text = ( [$type_constant, '"$1"'], [$type_func, '"$1"'], [$type_struct, '"$1"'], [$type_param, '"$1 "'] ); $blankline_text = ""; my $lineprefix = ""; sub usage { print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -tex | -texinfo -listfunc ]\n"; print " [ -sourceversion verno ] [ -include file | -includefuncprefix ]\n"; print " [ -bugsto address ] [ -seeinfo infonode ] [ -copyright notice]\n"; print " [ -verbatimcopying ] [ -pkg-name packagename ]\n"; print " [ -function funcname [ -function funcname ...] ]\n"; print " c source file(s) > outputfile\n"; exit 1; } # read arguments if ($#ARGV==-1) { usage(); } $verbose = 0; $output_mode = "man"; @highlights = @highlights_man; $blankline = $blankline_man; $modulename = "API Documentation"; $sourceversion = strftime "%Y-%m-%d", localtime; $function_only = 0; while ($ARGV[0] =~ m/^-(.*)/) { $cmd = shift @ARGV; if ($cmd eq "-html") { $output_mode = "html"; @highlights = @highlights_html; $blankline = $blankline_html; } elsif ($cmd eq "-man") { $output_mode = "man"; @highlights = @highlights_man; $blankline = $blankline_man; } elsif ($cmd eq "-tex") { $output_mode = "tex"; @highlights = @highlights_tex; $blankline = $blankline_tex; } elsif ($cmd eq "-texinfo") { $output_mode = "texinfo"; @highlights = @highlights_texinfo; $blankline = $blankline_texinfo; } elsif ($cmd eq "-text") { $output_mode = "text"; @highlights = @highlights_text; $blankline = $blankline_text; } elsif ($cmd eq "-docbook") { $output_mode = "sgml"; @highlights = @highlights_sgml; $blankline = $blankline_sgml; } elsif ($cmd eq "-listfunc") { $output_mode = "listfunc"; } elsif ($cmd eq "-module") { # not needed for sgml, inherits from calling document $modulename = shift @ARGV; } elsif ($cmd eq "-sourceversion") { $sourceversion = shift @ARGV; } elsif ($cmd eq "-include") { $include = shift @ARGV; } elsif ($cmd eq "-includefuncprefix") { $includefuncprefix = 1; } elsif ($cmd eq "-bugsto") { $bugsto = shift @ARGV; } elsif ($cmd eq "-pkg-name") { $pkgname = shift @ARGV; } elsif ($cmd eq "-copyright") { $copyright = shift @ARGV; } elsif ($cmd eq "-verbatimcopying") { $verbatimcopying = 1; } elsif ($cmd eq "-seeinfo") { $seeinfo = shift @ARGV; } elsif ($cmd eq "-function") { # to only output specific functions $function_only = 1; $function = shift @ARGV; $function_table{$function} = 1; } elsif ($cmd eq "-v") { $verbose = 1; } elsif (($cmd eq "-h") || ($cmd eq "--help")) { usage(); } } ## # dumps section contents to arrays/hashes intended for that purpose. # sub dump_section { my $name = shift @_; my $contents = join "\n", @_; $name = " $name"; if ($name =~ m/$type_constant/) { $name = $1; # print STDERR "constant section '$1' = '$contents'\n"; $constants{$name} = $contents; } elsif ($name =~ m/$type_param/) { # print STDERR "parameter def '$1' = '$contents'\n"; $name = $1; $parameters{$name} = $contents; } else { # print STDERR "other section '$name' = '$contents'\n"; $name =~ tr/ //d; $sections{$name} = $contents; push @sectionlist, $name; } } ## # output function # # parameters, a hash. # function => "function name" # parameterlist => @list of parameters # parameters => %parameter descriptions # sectionlist => @list of sections # sections => %descriont descriptions # sub just_highlight { my $contents = join "\n", @_; my $line; my $ret = ""; foreach $highlight (@highlights) { my ($pattern, $replace) = @$highlight; #print "scanning pattern $pattern ($replace)\n"; $contents =~ s/$pattern/$replace/gees; } foreach $line (split "\n", $contents) { if ($line eq ""){ $ret = $ret . $lineprefix . $blankline; } else { $ret = $ret . $lineprefix . $line; } $ret = $ret . "\n"; } return $ret; } sub output_highlight { print (just_highlight (@_)); } # output in texinfo sub output_texinfo { my %args = %{$_[0]}; my ($parameter, $section); my $count; print "\@subheading ".$args{'function'}."\n"; print "\@anchor{".$args{'function'}."}\n"; print "\@deftypefun {" . $args{'functiontype'} . "} "; print "{".$args{'function'}."} "; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print $args{'parametertypes'}{$parameter}." \@var{".$parameter."}"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ")\n"; foreach $parameter (@{$args{'parameterlist'}}) { if ($args{'parameters'}{$parameter}) { print "\@var{".$parameter."}: "; output_highlight($args{'parameters'}{$parameter}); print "\n"; } } foreach $section (@{$args{'sectionlist'}}) { $section =~ s/\@//g; print "\n\@strong{$section:} " if $section ne $section_default; $args{'sections'}{$section} =~ s:([{}]):\@$1:gs; output_highlight($args{'sections'}{$section}); } print "\@end deftypefun\n\n"; } sub output_enum_texinfo { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $name = $args{'enum'}; my $param; my $param2; my $sec; my $check; my $type; print "\n\@c $name\n"; print "\@table \@code\n"; $check=0; foreach $parameter (@{$args{'parameterlist'}}) { $param1 = $parameter; $param1 =~ s/_/_\@-/g; $check = 1; print "\@item ".$param1."\n"; # print "\n"; $param2 = $args{'parameters'}{$parameter}; $out = just_highlight($param2); chomp $out; print $out . "\n"; } print "\@end table\n"; } # output in html sub output_html { my %args = %{$_[0]}; my ($parameter, $section); my $count; print "\n\n<a name=\"". $args{'function'} . "\"> </a><h2>Function</h2>\n"; print "<i>".$args{'functiontype'}."</i>\n"; print "<b>".$args{'function'}."</b>\n"; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print "<i>".$args{'parametertypes'}{$parameter}."</i> <b>".$parameter."</b>\n"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ")\n"; print "<h3>Arguments</h3>\n"; print "<dl>\n"; foreach $parameter (@{$args{'parameterlist'}}) { print "<dt><i>".$args{'parametertypes'}{$parameter}."</i> <b>".$parameter."</b>\n"; print "<dd>"; output_highlight($args{'parameters'}{$parameter}); } print "</dl>\n"; foreach $section (@{$args{'sectionlist'}}) { print "<h3>$section</h3>\n"; print "<ul>\n"; output_highlight($args{'sections'}{$section}); print "</ul>\n"; } print "<hr>\n"; } # output in tex sub output_tex { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $func = $args{'function'}; my $param; my $param2; my $sec; my $check; my $type; $func =~ s/_/\\_/g; print "\n\n\\begin{function}\n"; print "\\functionTitle{". $func . "}\n"; print "\\index{". $func . "}\n"; $type = $args{'functiontype'}; $type =~ s/_/\\_/g; print "{\\it ".$type."}\n"; print "{\\bf ".$func."}\n"; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { $param = $args{'parametertypes'}{$parameter}; $param2 = $parameter; $param =~ s/_/\\_/g; $param2 =~ s/_/\\_/g; print "{\\it ".$param."} {\\bf ".$param2."}"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ")\n"; print "\n\\begin{functionArguments}\n"; $check=0; foreach $parameter (@{$args{'parameterlist'}}) { $param1 = $args{'parametertypes'}{$parameter}; $param1 =~ s/_/\\_/g; $param2 = $parameter; $param2 =~ s/_/\\_/g; $check = 1; print "\\functionArgument {\\it ".$param1."} {\\bf ".$param2."}: \n"; # print "\n"; $param3 = $args{'parameters'}{$parameter}; $param3 =~ s/\#([a-zA-Z\_]+)/{\\it $1}/g; $param3 =~ s/\%([a-zA-Z\_]+)/{\\bf $1}/g; $out = just_highlight($param3); $out =~ s/_/\\_/g; print $out; } if ($check==0) { print "\\item void\n"; } print "\\end{functionArguments}\n"; foreach $section (@{$args{'sectionlist'}}) { $sec = $section; $sec =~ s/_/\\_/g; $sec =~ s/#([a-zA-Z\_]+)/{\\it $1}/g; print "\n\\begin{function${sec}}\n"; $out = $args{'sections'}{$section}; $out =~ s/\#([a-zA-Z\_]+)/{\\it $1}/g; $out =~ s/\%([a-zA-Z\_]+)/{\\bf $1}/g; $out =~ s/\@([a-zA-Z\_]+)/{\\bf $1}/g; $out =~ s/_/\\_\\-/g; $out =~ s/\$/\\\$/g; $out =~ s/#/\\#/g; $out =~ s/\n\n/\n/g; $out =~ s/\\:/:/g; $out =~ s/\-\>/\$\\rightarrow\$/g; $out =~ s/([0-9]+)\^([0-9]+)/\$\{$1\}\^\{$2\}\$/g; print $out; print "\\end{function${sec}}\n"; } print "\\end{function}\n\n"; } sub output_enum_tex { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $name = $args{'enum'}; my $param; my $param2; my $sec; my $check; my $type; print "\n\n\\begin{enum}\n"; $name =~ s/_/\\_/g; print "\\enumTitle{". $name . "}\n"; print "\\index{". $name . "}\n"; print "\n\\begin{enumList}\n"; $check=0; foreach $parameter (@{$args{'parameterlist'}}) { $param1 = $parameter; $param1 =~ s/_/\\_\\-/g; $check = 1; print "\\enumElement{".$param1."}{"; # print "\n"; $param2 = $args{'parameters'}{$parameter}; $param2 =~ s/\#([a-zA-Z\_]+)/{\\it $1}/g; $param2 =~ s/\%([a-zA-Z\_]+)/{\\bf $1}/g; $out = just_highlight($param2); $out =~ s/_/\\_/g; chomp $out; print $out . "}\n"; } print "\\end{enumList}\n"; print "\\end{enum}\n\n"; } # output in sgml DocBook sub output_sgml { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = $args{'module'}."-".$args{'function'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refmeta>\n"; print "<refentrytitle><phrase id=\"$id\">".$args{'function'}."</phrase></refentrytitle>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>".$args{'function'}."</refname>\n"; print " <refpurpose>\n"; print " ".$args{'purpose'}."\n"; print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis\n"; print " \n"; print " ".$args{'functiontype'}." "; print "".$args{'function'}." "; print "\n"; # print "\n"; # print " Synopsis\n"; # print " \n"; # print " ".$args{'functiontype'}." "; # print "".$args{'function'}." "; # print "\n"; $count = 0; if ($#{$args{'parameterlist'}} >= 0) { foreach $parameter (@{$args{'parameterlist'}}) { print " ".$args{'parametertypes'}{$parameter}; print " $parameter\n"; } } else { print " \n"; } print " \n"; print "\n"; # print "\n"; # print parameters print "\n Arguments\n"; # print "\nArguments\n"; if ($#{$args{'parameterlist'}} >= 0) { print " \n"; foreach $parameter (@{$args{'parameterlist'}}) { print " \n $parameter\n"; print " \n \n"; $lineprefix=" "; output_highlight($args{'parameters'}{$parameter}); print " \n \n \n"; } print " \n"; } else { print " \n None\n \n"; } print "\n"; # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "\n $section\n \n"; # print "\n$section\n"; if ($section =~ m/EXAMPLE/i) { print "\n"; } output_highlight($args{'sections'}{$section}); # print ""; if ($section =~ m/EXAMPLE/i) { print "\n"; } print " \n\n"; } print "\n\n"; } ## # output in man sub output_man { my %args = %{$_[0]}; my ($parameter, $section); my $count; print ".\\\" DO NOT MODIFY THIS FILE! It was generated by gdoc.\n"; print ".TH \"$args{'function'}\" 3 \"$args{'sourceversion'}\" \"". $args{'module'} . "\" \"". $args{'module'} . "\"\n"; print ".SH NAME\n"; print $args{'function'}; if ($args{'purpose'}) { print " \\- " . $args{'purpose'} . "\n"; } else { print " \\- API function\n"; } print ".SH SYNOPSIS\n"; print ".B #include <". $args{'include'} . ">\n" if $args{'include'}; print ".B #include <". lc((split /_/, $args{'function'})[0]) . ".h>\n" if $args{'includefuncprefix'}; print ".sp\n"; print ".BI \"".$args{'functiontype'}." ".$args{'function'}."("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print $args{'parametertypes'}{$parameter}." \" ".$parameter." \""; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ");\"\n"; print ".SH ARGUMENTS\n"; foreach $parameter (@{$args{'parameterlist'}}) { print ".IP \"".$args{'parametertypes'}{$parameter}." ".$parameter."\" 12\n"; $param = $args{'parameters'}{$parameter}; $param =~ s/-/\\-/g; output_highlight($param); } foreach $section (@{$args{'sectionlist'}}) { print ".SH \"" . uc($section) . "\"\n"; $sec = $args{'sections'}{$section}; $sec =~ s/-/\\-/g; output_highlight($sec); } if ($args{'bugsto'}) { print ".SH \"REPORTING BUGS\"\n"; print "Report bugs to <". $args{'bugsto'} . ">.\n"; print ".br\n"; print "General guidelines for reporting bugs: http://www.gnu.org/gethelp/\n"; print ".br\n"; if ($args{'pkgname'}) { print $args{'pkgname'} . " home page: " . "http://www.gnu.org/software/" . $args{'module'} . "/\n"; } print "\n"; } if ($args{'copyright'}) { print ".SH COPYRIGHT\n"; print "Copyright \\(co ". $args{'copyright'} . ".\n"; if ($args{'verbatimcopying'}) { print ".br\n"; print "Copying and distribution of this file, with or without modification,\n"; print "are permitted in any medium without royalty provided the copyright\n"; print "notice and this notice are preserved.\n"; } } if ($args{'seeinfo'}) { print ".SH \"SEE ALSO\"\n"; print "The full documentation for\n"; print ".B " . $args{'module'} . "\n"; print "is maintained as a Texinfo manual. If the\n"; print ".B info\n"; print "and\n"; print ".B " . $args{'module'} . "\n"; print "programs are properly installed at your site, the command\n"; print ".IP\n"; print ".B info " . $args{'seeinfo'} . "\n"; print ".PP\n"; print "should give you access to the complete manual.\n"; print "As an alternative you may obtain the manual from:\n"; print ".IP\n"; print ".B http://www.gnu.org/software/" . $args{'module'} . "/manual/\n"; print ".PP\n"; } } sub output_listfunc { my %args = %{$_[0]}; print $args{'function'} . "\n"; } ## # output in text sub output_text { my %args = %{$_[0]}; my ($parameter, $section); print "Function = ".$args{'function'}."\n"; print " return type: ".$args{'functiontype'}."\n\n"; foreach $parameter (@{$args{'parameterlist'}}) { print " ".$args{'parametertypes'}{$parameter}." ".$parameter."\n"; print " -> ".$args{'parameters'}{$parameter}."\n"; } foreach $section (@{$args{'sectionlist'}}) { print " $section:\n"; print " -> "; output_highlight($args{'sections'}{$section}); } } ## # generic output function - calls the right one based # on current output mode. sub output_function { # output_html(@_); eval "output_".$output_mode."(\@_);"; } sub output_enum { eval "output_enum_".$output_mode."(\@_);"; } ## # takes a function prototype and spits out all the details # stored in the global arrays/hsahes. sub dump_function { my $prototype = shift @_; if ($prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/) { $return_type = $1; $function_name = $2; $args = $3; # print STDERR "ARGS = '$args'\n"; foreach $arg (split ',', $args) { # strip leading/trailing spaces $arg =~ s/^\s*//; $arg =~ s/\s*$//; # print STDERR "SCAN ARG: '$arg'\n"; @args = split('\s', $arg); # print STDERR " -> @args\n"; $param = pop @args; # print STDERR " -> @args\n"; if ($param =~ m/^(\*+)(.*)/) { $param = $2; push @args, $1; } if ($param =~ m/^(.*)(\[\])$/) { $param = $1; push @args, $2; } # print STDERR " :> @args\n"; $type = join " ", @args; if ((!defined($parameters{$param}) || $parameters{$param} eq "") && $param ne "void") { $parameters{$param} = "-- undescribed --"; print STDERR "warning: $lineno: Function parameter '$param' not described in '$function_name'\n"; } push @parameterlist, $param; $parametertypes{$param} = $type; # print STDERR "param = '$param', type = '$type'\n"; } } else { print STDERR "warning: $lineno: Cannot understand prototype: '$prototype'\n"; return; } if ($function_only==0 || defined($function_table{$function_name})) { output_function({'function' => $function_name, 'module' => $modulename, 'sourceversion' => $sourceversion, 'include' => $include, 'includefuncprefix' => $includefuncprefix, 'bugsto' => $bugsto, 'pkgname' => $pkgname, 'copyright' => $copyright, 'verbatimcopying' => $verbatimcopying, 'seeinfo' => $seeinfo, 'functiontype' => $return_type, 'parameterlist' => \@parameterlist, 'parameters' => \%parameters, 'parametertypes' => \%parametertypes, 'sectionlist' => \@sectionlist, 'sections' => \%sections, 'purpose' => $function_purpose }); } } sub dump_enum { my $prototype = shift @_; if (($prototype =~ m/^\s*typedef\s+enum\s*[a-zA-Z0-9_~:]*\s*\{([\-a-zA-Z0-9_~=,:\s\(\)\<]+)\s*\}\s*([a-zA-Z0-9_]+);.*/)) { # || $prototype =~ m/^\s*enum\s+([a-zA-Z0-9_~:]+).*/) { $args = $1; $name = $2; foreach $arg (split ',', $args) { # strip leading/trailing spaces $arg =~ s/^\s*//; $arg =~ s/\s*$//; $arg =~ s/([A-Za-z0-9_]+)\s*=.*/$1/g; # print STDERR "SCAN ARG: '$arg'\n"; next if $arg eq ''; if ((!defined($parameters{$arg}) || $parameters{$arg} eq "")) { $parameters{$arg} = "-- undescribed --"; print STDERR "warning: $lineno: Enumeration parameter '$arg' not described in '$name'\n"; } push @parameterlist, $arg; # print STDERR "param = '$arg'\n"; } } else { # print STDERR "warning: $lineno: Cannot understand enumeration: '$prototype'\n"; return; } output_enum({'enum' => $name, 'module' => $modulename, 'sourceversion' => $sourceversion, 'include' => $include, 'includefuncprefix' => $includefuncprefix, 'bugsto' => $bugsto, 'pkgname' => $pkgname, 'copyright' => $copyright, 'verbatimcopying' => $verbatimcopying, 'seeinfo' => $seeinfo, 'functiontype' => $return_type, 'parameterlist' => \@parameterlist, 'parameters' => \%parameters, 'parametertypes' => \%parametertypes, 'sectionlist' => \@sectionlist, 'sections' => \%sections, 'purpose' => $function_purpose }); } ###################################################################### # main # states # 0 - normal code # 1 - looking for function name # 2 - scanning field start. # 3 - scanning prototype. $doc_special = "\@\%\$\#"; $doc_start = "^/\\*\\*\$"; $doc_end = "\\*/"; $doc_com = "\\s*\\*\\s*"; $doc_func = $doc_com."(\\w+):?"; $doc_sect = $doc_com."([".$doc_special."[:upper:]][\\w]+):\\s*(.*)"; $doc_content = $doc_com."(.*)"; %constants = (); %parameters = (); @parameterlist = (); %sections = (); @sectionlist = (); $contents = ""; $section_default = "Description"; # default section $section = $section_default; foreach $file (@ARGV) { if (!open(IN,"<$file")) { print STDERR "Error: Cannot open file $file\n"; next; } $state = 0; $section = ""; $enum = 0; $lineno = 0; while ($line = ) { $lineno++; if ($state == 0) { if ($line =~ /$doc_start/o) { $state = 1; # next line is always the function name # print STDERR "XXX: start of doc comment\n"; } } elsif ($state == 1) { # this line is the function name (always) if ($line =~ /$doc_func/o) { $function = $1; $state = 2; # print STDERR "XXX: start of doc comment, looking for prototype\n"; if ($line =~ /-\s*(.*)/) { $function_purpose = $1; } else { $function_purpose = ""; } if ($verbose) { print STDERR "Info($lineno): Scanning doc for $function\n"; } } else { print STDERR "warning: $lineno: Cannot understand $_ on line $lineno", " - I thought it was a doc line\n"; $state = 0; } } elsif ($state == 2) { # look for head: lines, and include content if ($line =~ /$doc_sect/o) { $newsection = $1; $newcontents = $2; if ($contents ne '') { dump_section($section, $contents); $section = $section_default; } $contents = $newcontents; if ($contents ne "") { $contents .= "\n"; } $section = $newsection; } elsif ($line =~ /$doc_end/) { if ($contents ne "") { dump_section($section, $contents); $section = $section_default; $contents = ""; } $prototype = ''; $state = 3; } elsif ($line =~ /$doc_content/) { # miguel-style comment kludge, look for blank lines after # @parameter line to signify start of description if ($1 eq '' && $section =~ m/^@/) { dump_section($section, $contents); $section = $section_default; $contents = ""; } else { $contents .= $1."\n"; } } else { # i dont know - bad line? ignore. print STDERR "warning: $lineno: Bad line: $_"; } } elsif ($state == 3) { # scanning for function { (end of prototype) if ($line =~ /([a-zA-Z\s]+)enum(.*)$/) { $enum = 1; } if ($line =~ m#\s*/\*\s+MACDOC\s*#io) { # do nothing } elsif ($enum == 1 && $line =~ /(\s*\{).*/) { $prototype = "typedef enum {"; } elsif ($line =~ /([^\{]*)/) { $prototype .= $1; } if ($enum == 0 && $line =~ /;/) { $prototype =~ s@/\*.*?\*/@@gos; # strip comments. $prototype =~ s@[\r\n]+@ @gos; # strip newlines/cr's. $prototype =~ s@^ +@@gos; # strip leading spaces dump_function($prototype); $function = ""; %constants = (); %parameters = (); %parametertypes = (); @parameterlist = (); %sections = (); @sectionlist = (); $prototype = ""; $enum = 0; $state = 0; } elsif ($enum == 1 && $line =~ /\}/) { $prototype =~ s@/\*.*?\*/@@gos; # strip comments. $prototype =~ s@[\r\n]+@ @gos; # strip newlines/cr's. $prototype =~ s@^ +@@gos; # strip leading spaces dump_enum($prototype); $function = ""; %constants = (); %parameters = (); %parametertypes = (); @parameterlist = (); %sections = (); @sectionlist = (); $prototype = ""; $enum = 0; $state = 0; } } } } libidn-1.38/doc/example4.txt0000644000000000000000000000276414076273633012646 00000000000000#include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_unicode_lzlz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn` * $ ./example4 * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * ACE label (length 23): 'www.räksmörgÃ¥sa.example' * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = idna_to_unicode_lzlz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", (unsigned) p[i] & 0xFF); printf ("\n"); free (p); return 0; } libidn-1.38/doc/stamp-gdoc0000644000000000000000000000000014076273771012327 00000000000000libidn-1.38/doc/texinfo.css0000644000000000000000000000305114053001337012523 00000000000000body { margin: 2%; padding: 0 5%; background: #ffffff; } h1,h2,h3,h4,h5 { font-weight: bold; padding: 5px 5px 5px 5px; background-color: #c2e0ff; color: #336699; } h1 { padding: 2em 2em 2em 5%; color: white; background: #336699; text-align: center; letter-spacing: 3px; } h2 { text-decoration: underline; } pre { margin: 0 5%; padding: 0.5em; } pre.example { border: solid 1px; background: #eeeeff; padding-bottom: 1em; } pre.verbatim { border: solid 1px gray; background: white; padding-bottom: 1em; } div.node { margin: 0 -5% 0 -2%; padding: 0.5em 0.5em; margin-top: 0.5em; margin-bottom: 0.5em; font-weight: bold; } dd, li { padding-top: 0.1em; padding-bottom: 0.1em; } div.float { margin-bottom: 0.5em; text-align: center; } table { border: solid 1px; background: #eeeeff; padding-bottom: 1em; text-align: left; margin-left:auto; margin-right:auto; border-spacing: 4px; width: 70%; } th { padding: 0; color: #000000; background-color: #dedeef; border: solid #000000; border-width: 0px; margin: 1em auto; text-align: center; margin-left:auto; margin-right:auto; } td { padding: 0; border: solid #000000; background: #eeeeff; border-width: 0px; margin: 1em auto; text-align: left; margin-left:auto; margin-right:auto; padding-left: 1em; } dl { text-align: left; margin-left:auto; margin-right:auto; width: 50%; padding-left: 1em; border: solid #000000; background: #eeeeff; border-width: 3px 1px 1px 1px; margin: 1em auto; } libidn-1.38/doc/example2.txt0000644000000000000000000001273414076273633012642 00000000000000#include /* setlocale() */ /* * This file is derived from RFC 3492 written by Adam M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * */ #include #include #include #include #include /* For testing, we'll just set some compile-time limits rather than */ /* use malloc(), and set a compile-time option rather than using a */ /* command-line option. */ enum { unicode_max_length = 256, ace_max_length = 256 }; static void usage (char **argv) { fprintf (stderr, "\n" "%s -e reads code points and writes a Punycode string.\n" "%s -d reads a Punycode string and writes code points.\n" "\n" "Input and output are plain text in the native character set.\n" "Code points are in the form u+hex separated by whitespace.\n" "Although the specification allows Punycode strings to contain\n" "any characters from the ASCII repertoire, this test code\n" "supports only the printable characters, and needs the Punycode\n" "string to be followed by a newline.\n" "The case of the u in u+hex is the force-to-uppercase flag.\n", argv[0], argv[0]); exit (EXIT_FAILURE); } static void fail (const char *msg) { fputs (msg, stderr); exit (EXIT_FAILURE); } static const char too_big[] = "input or output is too large, recompile with larger limits\n"; static const char invalid_input[] = "invalid input\n"; static const char overflow[] = "arithmetic overflow\n"; static const char io_error[] = "I/O error\n"; /* The following string is used to convert printable */ /* characters between ASCII and the native charset: */ static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40" /* at sign */ "ABCDEFGHIJKLMNO" "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n"; int main (int argc, char **argv) { enum punycode_status status; int r; size_t input_length, output_length, j; unsigned char case_flags[unicode_max_length]; setlocale (LC_ALL, ""); if (argc != 2) usage (argv); if (argv[1][0] != '-') usage (argv); if (argv[1][2] != 0) usage (argv); if (argv[1][1] == 'e') { uint32_t input[unicode_max_length]; unsigned long codept; char output[ace_max_length + 1], uplus[3]; int c; /* Read the input code points: */ input_length = 0; for (;;) { r = scanf ("%2s%lx", uplus, &codept); if (ferror (stdin)) fail (io_error); if (r == EOF || r == 0) break; if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1) { fail (invalid_input); } if (input_length == unicode_max_length) fail (too_big); if (uplus[0] == 'u') case_flags[input_length] = 0; else if (uplus[0] == 'U') case_flags[input_length] = 1; else fail (invalid_input); input[input_length++] = codept; } /* Encode: */ output_length = ace_max_length; status = punycode_encode (input_length, input, case_flags, &output_length, output); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Convert to native charset and output: */ for (j = 0; j < output_length; ++j) { c = output[j]; assert (c >= 0 && c <= 127); if (print_ascii[c] == 0) fail (invalid_input); output[j] = print_ascii[c]; } output[j] = 0; r = puts (output); if (r == EOF) fail (io_error); return EXIT_SUCCESS; } if (argv[1][1] == 'd') { char input[ace_max_length + 2], *p, *pp; uint32_t output[unicode_max_length]; /* Read the Punycode input string and convert to ASCII: */ if (!fgets (input, ace_max_length + 2, stdin)) fail (io_error); if (ferror (stdin)) fail (io_error); if (feof (stdin)) fail (invalid_input); input_length = strlen (input) - 1; if (input[input_length] != '\n') fail (too_big); input[input_length] = 0; for (p = input; *p != 0; ++p) { pp = strchr (print_ascii, *p); if (pp == 0) fail (invalid_input); *p = pp - print_ascii; } /* Decode: */ output_length = unicode_max_length; status = punycode_decode (input_length, input, &output_length, output, case_flags); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Output the result: */ for (j = 0; j < output_length; ++j) { r = printf ("%s+%04lX\n", case_flags[j] ? "U" : "u", (unsigned long) output[j]); if (r < 0) fail (io_error); } return EXIT_SUCCESS; } usage (argv); return EXIT_SUCCESS; /* not reached, but quiets compiler warning */ } libidn-1.38/doc/idn-help.texi0000644000000000000000000000152514076273642012753 00000000000000 -h, --help Print help and exit -V, --version Print version and exit -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --no-tld Don't check string for TLD specific rules -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead --debug Print debugging information --quiet Silent operation libidn-1.38/doc/Makefile.in0000644000000000000000000024102014076273731012420 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_GTK_DOC_TRUE@am__append_1 = . reference subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \ $(srcdir)/stamp-vti $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; am__v_DVIPS_1 = AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; am__v_MAKEINFO_1 = AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) am__v_INFOHTML_0 = @echo " INFOHTML" $@; am__v_INFOHTML_1 = AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; am__v_TEXI2DVI_1 = AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; am__v_TEXI2PDF_1 = AM_V_texinfo = $(am__v_texinfo_@AM_V@) am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) am__v_texinfo_0 = -q am__v_texinfo_1 = AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = INFO_DEPS = $(srcdir)/libidn.info TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux DVIS = libidn.dvi PDFS = libidn.pdf PSS = libidn.ps HTMLS = libidn.html TEXINFOS = libidn.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html DVIPS = dvips RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(imagesdir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 man3dir = $(mandir)/man3 NROFF = nroff MANS = $(dist_man_MANS) DATA = $(images_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = specifications tld java cyclo . reference am__DIST_COMMON = $(dist_man_MANS) $(libidn_TEXINFOS) \ $(srcdir)/Makefile.in $(top_srcdir)/build-aux/mdate-sh \ $(top_srcdir)/build-aux/texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = specifications tld java cyclo $(am__append_1) EXTRA_DIST = gdoc components.fig stamp-gdoc info_TEXINFOS = libidn.texi libidn_TEXINFOS = fdl-1.3.texi idn-help.texi texinfo.css example.txt \ example2.txt example3.txt example4.txt example5.txt \ $(gdoc_TEXINFOS) libidn-components.eps libidn-components.png \ libidn-components.pdf AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) \ --no-split --css-include=texinfo.css imagesdir = $(infodir) images_DATA = libidn-components.png BUILT_SOURCES = example.txt example2.txt example3.txt example4.txt \ example5.txt $(gdoc_MANS) $(gdoc_TEXINFOS) # Man pages. dist_man_MANS = idn.1 $(gdoc_MANS) MAINTAINERCLEANFILES = $(dist_man_MANS) # GDOC gdoc_TEXINFOS = texi/idna_to_ascii_4i.texi \ texi/idna_to_unicode_44i.texi texi/idna_to_ascii_4z.texi \ texi/idna_to_ascii_8z.texi texi/idna_to_ascii_lz.texi \ texi/idna_to_unicode_4z4z.texi texi/idna_to_unicode_8z4z.texi \ texi/idna_to_unicode_8z8z.texi texi/idna_to_unicode_8zlz.texi \ texi/idna_to_unicode_lzlz.texi \ texi/stringprep_utf8_to_unichar.texi \ texi/stringprep_unichar_to_utf8.texi \ texi/stringprep_utf8_to_ucs4.texi \ texi/stringprep_ucs4_to_utf8.texi \ texi/stringprep_utf8_nfkc_normalize.texi \ texi/stringprep_ucs4_nfkc_normalize.texi texi/pr29_4.texi \ texi/pr29_4z.texi texi/pr29_8z.texi texi/punycode_encode.texi \ texi/punycode_decode.texi texi/stringprep_4i.texi \ texi/stringprep_4zi.texi texi/stringprep.texi \ texi/stringprep_profile.texi texi/tld_get_table.texi \ texi/tld_default_table.texi texi/tld_get_4.texi \ texi/tld_get_4z.texi texi/tld_get_z.texi \ texi/tld_check_4t.texi texi/tld_check_4tz.texi \ texi/tld_check_4.texi texi/tld_check_4z.texi \ texi/tld_check_8z.texi texi/tld_check_lz.texi \ texi/stringprep_locale_charset.texi \ texi/stringprep_convert.texi \ texi/stringprep_locale_to_utf8.texi \ texi/stringprep_utf8_to_locale.texi \ texi/stringprep_check_version.texi texi/idn_free.texi \ texi/idna_strerror.texi texi/pr29_strerror.texi \ texi/punycode_strerror.texi texi/stringprep_strerror.texi \ texi/tld_strerror.texi gdoc_MANS = man/idna_to_ascii_4i.3 man/idna_to_unicode_44i.3 \ man/idna_to_ascii_4z.3 man/idna_to_ascii_8z.3 \ man/idna_to_ascii_lz.3 man/idna_to_unicode_4z4z.3 \ man/idna_to_unicode_8z4z.3 man/idna_to_unicode_8z8z.3 \ man/idna_to_unicode_8zlz.3 man/idna_to_unicode_lzlz.3 \ man/stringprep_utf8_to_unichar.3 \ man/stringprep_unichar_to_utf8.3 man/stringprep_utf8_to_ucs4.3 \ man/stringprep_ucs4_to_utf8.3 \ man/stringprep_utf8_nfkc_normalize.3 \ man/stringprep_ucs4_nfkc_normalize.3 man/pr29_4.3 \ man/pr29_4z.3 man/pr29_8z.3 man/punycode_encode.3 \ man/punycode_decode.3 man/stringprep_4i.3 man/stringprep_4zi.3 \ man/stringprep.3 man/stringprep_profile.3 man/tld_get_table.3 \ man/tld_default_table.3 man/tld_get_4.3 man/tld_get_4z.3 \ man/tld_get_z.3 man/tld_check_4t.3 man/tld_check_4tz.3 \ man/tld_check_4.3 man/tld_check_4z.3 man/tld_check_8z.3 \ man/tld_check_lz.3 man/stringprep_locale_charset.3 \ man/stringprep_convert.3 man/stringprep_locale_to_utf8.3 \ man/stringprep_utf8_to_locale.3 man/stringprep_check_version.3 \ man/idn_free.3 man/idna_strerror.3 man/pr29_strerror.3 \ man/punycode_strerror.3 man/stringprep_strerror.3 \ man/tld_strerror.3 GDOC_SRC = $(top_srcdir)/lib/idna.c $(top_srcdir)/lib/nfkc.c \ $(top_srcdir)/lib/pr29.c $(top_srcdir)/lib/punycode.c \ $(top_srcdir)/lib/stringprep.c $(top_srcdir)/lib/tld.c \ $(top_srcdir)/lib/toutf8.c $(top_srcdir)/lib/version.c \ $(top_srcdir)/lib/idn-free.c \ $(top_srcdir)/lib/strerror-idna.c $(top_srcdir)/lib/strerror-pr29.c \ $(top_srcdir)/lib/strerror-punycode.c \ $(top_srcdir)/lib/strerror-stringprep.c \ $(top_srcdir)/lib/strerror-tld.c all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs .texi.info: $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ $< .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ $< .texi.html: $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@ && mv $(@:.html=.htp) $@; \ else \ rm -rf $(@:.html=.htp); exit 1; \ fi $(srcdir)/libidn.info: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) libidn.dvi: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) libidn.pdf: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) libidn.html: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) $(srcdir)/version.texi: $(srcdir)/stamp-vti $(srcdir)/stamp-vti: libidn.texi $(top_srcdir)/configure @(dir=.; test -f ./libidn.texi || dir=$(srcdir); \ set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/libidn.texi`; \ echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ echo "@set VERSION $(VERSION)") > vti.tmp$$$$ && \ (cmp -s vti.tmp$$$$ $(srcdir)/version.texi \ || (echo "Updating $(srcdir)/version.texi" && \ cp vti.tmp$$$$ $(srcdir)/version.texi.tmp$$$$ && \ mv $(srcdir)/version.texi.tmp$$$$ $(srcdir)/version.texi)) && \ rm -f vti.tmp$$$$ $(srcdir)/version.texi.$$$$ @cp $(srcdir)/version.texi $@ mostlyclean-vti: -rm -f vti.tmp* $(srcdir)/version.texi.tmp* maintainer-clean-vti: -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf libidn.t2d libidn.t2p clean-aminfo: -test -z "libidn.dvi libidn.pdf libidn.ps libidn.html" \ || rm -rf libidn.dvi libidn.pdf libidn.ps libidn.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man3: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man3dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.3[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ done; } uninstall-man3: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man3dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.3[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(INFO_DEPS) $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(imagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-aminfo clean-generic clean-libtool clean-local \ mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: $(DVIS) html: html-recursive html-am: $(HTMLS) info: info-recursive info-am: $(INFO_DEPS) install-data-am: install-imagesDATA install-info-am install-man install-dvi: install-dvi-recursive install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-recursive install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-recursive install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-man1 install-man3 install-pdf: install-pdf-recursive install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-recursive install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ mostlyclean-libtool mostlyclean-vti pdf: pdf-recursive pdf-am: $(PDFS) ps: ps-recursive ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-imagesDATA \ uninstall-info-am uninstall-man uninstall-pdf-am \ uninstall-ps-am uninstall-man: uninstall-man1 uninstall-man3 .MAKE: $(am__recursive_targets) all check install install-am \ install-exec install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-aminfo clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am dist-info distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-imagesDATA install-info install-info-am install-man \ install-man1 install-man3 install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic \ maintainer-clean-vti mostlyclean mostlyclean-aminfo \ mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-dvi-am uninstall-html-am uninstall-imagesDATA \ uninstall-info-am uninstall-man uninstall-man1 uninstall-man3 \ uninstall-pdf-am uninstall-ps-am .PRECIOUS: Makefile libidn-components.eps: components.fig fig2dev -L eps $< $@ libidn-components.png: components.fig fig2dev -L png $< $@ libidn-components.pdf: components.fig fig2dev -L pdf $< $@ idn-help.texi: $(top_srcdir)/src/idn.c $(top_builddir)/src/idn$(EXEEXT) --help | $(GREP) '^ *-' > tmp mv tmp idn-help.texi example.txt: $(top_srcdir)/examples/example.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example2.txt: $(top_srcdir)/examples/example2.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example3.txt: $(top_srcdir)/examples/example3.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example4.txt: $(top_srcdir)/examples/example4.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example5.txt: $(top_srcdir)/examples/example5.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo $(top_srcdir)/.version $(AM_V_GEN)$(HELP2MAN) \ --name="Internationalized Domain Names command line tool" \ --output=$@ $(top_builddir)/src/idn$(EXEEXT) .PHONY: compare-makefile compare-makefile: $(AM_V_GEN) \ MANS=""; \ TEXINFOS=""; \ FUNCS=`$(srcdir)/gdoc -listfunc $(GDOC_SRC)`; \ for i in $$FUNCS; do \ MANS="$$MANS\ngdoc_MANS += man/$$i.3"; \ TEXINFOS="$$TEXINFOS\ngdoc_TEXINFOS += texi/$$i.texi"; \ done && \ grep -v -e '^gdoc_MANS += ' -e '^gdoc_TEXINFOS += ' $(srcdir)/Makefile.am | \ perl -p -e "s,^gdoc_MANS =,gdoc_MANS =$$MANS,;" | \ perl -p -e "s,^gdoc_TEXINFOS =,gdoc_TEXINFOS =$$TEXINFOS,;" \ > tmp-$@ && \ diff -u $(srcdir)/Makefile.am tmp-$@ && \ rm -f tmp-$@ $(gdoc_MANS) $(gdoc_TEXINFOS): stamp-gdoc clean-local: -rm -f stamp-gdoc stamp-gdoc: $(top_builddir)/.version $(GDOC_SRC) $(AM_V_at)$(MKDIR_P) man texi $(AM_V_GEN)for i in `$(srcdir)/gdoc -listfunc $(GDOC_SRC)`; do \ $(srcdir)/gdoc -man \ -bugsto $(PACKAGE_BUGREPORT) \ -module $(PACKAGE) \ -pkg-name "$(PACKAGE_NAME)" \ -sourceversion $(VERSION) \ -includefuncprefix \ -seeinfo $(PACKAGE) \ -verbatimcopying \ -copyright "2002-2021 Simon Josefsson" \ -function $$i \ $(GDOC_SRC) > man/$$i.3 && \ $(srcdir)/gdoc -texinfo -function $$i \ $(GDOC_SRC) > texi/$$i.texi; \ done $(AM_V_at)touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/doc/libidn.info0000644000000000000000000050541714076274004012500 00000000000000This is libidn.info, produced by makeinfo version 6.7 from libidn.texi. This manual is last updated 22 July 2021 for version 1.38 of GNU Libidn. Copyright © 2002–2021 Simon Josefsson. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation Licenseâ€. INFO-DIR-SECTION Software libraries START-INFO-DIR-ENTRY * libidn: (libidn). Internationalized string processing library. END-INFO-DIR-ENTRY INFO-DIR-SECTION Localization START-INFO-DIR-ENTRY * idn: (libidn)Invoking idn. Internationalized Domain Name (IDN) string conversion. END-INFO-DIR-ENTRY INFO-DIR-SECTION Emacs START-INFO-DIR-ENTRY * IDN Library: (libidn)Emacs API. Emacs API for IDN functions. END-INFO-DIR-ENTRY  File: libidn.info, Node: Top, Next: Introduction, Up: (dir) GNU Libidn ********** This manual is last updated 22 July 2021 for version 1.38 of GNU Libidn. Copyright © 2002–2021 Simon Josefsson. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation Licenseâ€. * Menu: * Introduction:: How to use this manual. * Preparation:: What you should do before using the library. * Utility Functions:: Unicode transformation utility functions. * Stringprep Functions:: Stringprep functions. * Punycode Functions:: Punycode functions. * IDNA Functions:: IDNA functions. * TLD Functions:: TLD functions. * PR29 Functions:: Detect strings non-idempotent under NFKC. * Examples:: Demonstrate how to use the library. * Invoking idn:: Command line interface to the library. * Emacs API:: Emacs Lisp API for Libidn. * Java API:: Notes on the Java port of Libidn. * C# API:: Notes on the C# port of Libidn. * Acknowledgements:: Whom to blame. * History:: Rough outline of development history. Appendices * PR29 discussion:: Implementation aspects of the PR29 flaw. * On Label Separators:: Discussions of a flaw in the IDNA spec. * Copying Information:: License texts. Indices * Function and Variable Index:: * Concept Index::  File: libidn.info, Node: Introduction, Next: Preparation, Prev: Top, Up: Top 1 Introduction ************** GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn’s purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries. The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included. The Stringprep API consists of two main functions, one for converting data from the system’s native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call. The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing. Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included. Also included is a command line tool, several self tests, code examples, and more. * Menu: * Getting Started:: * Features:: * Library Overview:: * Supported Platforms:: * Getting help:: * Commercial Support:: * Downloading and Installing:: * Bug Reports:: * Contributing::  File: libidn.info, Node: Getting Started, Next: Features, Up: Introduction 1.1 Getting Started =================== This manual documents the library programming interface. All functions and data types provided by the library are explained. Included are also examples, and documentation for the command line tool ‘idn’ that provide a quick interface to the library. The Emacs Lisp bindings for the library is also discussed. The reader is assumed to possess basic familiarity with internationalization concepts and network programming in C or C++. This manual can be used in several ways. If read from the beginning to the end, it gives a good introduction into the library and how it can be used in an application. Forward references are included where necessary. Later on, the manual can be used as a reference manual to get just the information needed about any particular interface of the library. Experienced programmers might want to start looking at the examples at the end of the manual (*note Examples::), and then only read up those parts of the interface which are unclear.  File: libidn.info, Node: Features, Next: Library Overview, Prev: Getting Started, Up: Introduction 1.2 Features ============ This library might have a couple of advantages over other libraries doing a similar job. It’s Free Software Anybody can use, modify, and redistribute it under the terms of a free software license. It’s thread-safe No global state is kept in the library. All functions are re-entrant. It’s portable The code is intended to be written in pure ANSI C89. It has been tested on many Unix like operating systems, and Windows. It’s modularized The library is composed of several modules, and the only interaction between modules is through each modules’ public API. If you only need one piece of functionality, it is possible to take the files you need and incorporate them into your own project. It’s not bloated The design of the library is based on the smallest API necessary to implement the basic functionality. It has been carefully extended with a small number of high-level wrappers to make it comfortable to use the library. However, it does not implement additional functionality just for the sake of completeness. It’s documented Sadly, not all software comes with documentation these days. This one does.  File: libidn.info, Node: Library Overview, Next: Supported Platforms, Prev: Features, Up: Introduction 1.3 Library Overview ==================== The following illustration show the components that make up Libidn, and how your application relates to the library. In the illustration, various components are shown as boxes. You see the generic StringPrep component, the various StringPrep profiles including Nameprep, the Punycode component, the IDNA component, and the TLD component. The arrows indicate aggregation, e.g., IDNA uses Punycode and Nameprep, and in turn Nameprep uses the generic StringPrep interface. The interfaces to all components are available for applications, no component within the library is hidden from the application. [image src="libidn-components.png"]  File: libidn.info, Node: Supported Platforms, Next: Getting help, Prev: Library Overview, Up: Introduction 1.4 Supported Platforms ======================= Libidn has at some point in time been tested on the following platforms. Build reports for each platforms and Libidn version is available at . 1. Debian GNU/Linux 3.0 (Woody) GCC 2.95.4 and GNU Make. This is the main development platform. ‘alphaev67-unknown-linux-gnu’, ‘alphaev6-unknown-linux-gnu’, ‘arm-unknown-linux-gnu’, ‘armv4l-unknown-linux-gnu’, ‘hppa-unknown-linux-gnu’, ‘hppa64-unknown-linux-gnu’, ‘i686-pc-linux-gnu’, ‘ia64-unknown-linux-gnu’, ‘m68k-unknown-linux-gnu’, ‘mips-unknown-linux-gnu’, ‘mipsel-unknown-linux-gnu’, ‘powerpc-unknown-linux-gnu’, ‘s390-ibm-linux-gnu’, ‘sparc-unknown-linux-gnu’, ‘sparc64-unknown-linux-gnu’. 2. Debian GNU/Linux 2.1 GCC 2.95.1 and GNU Make. ‘armv4l-unknown-linux-gnu’. 3. Tru64 UNIX Tru64 UNIX C compiler and Tru64 Make. ‘alphaev67-dec-osf5.1’, ‘alphaev68-dec-osf5.1’. 4. SuSE Linux 7.1 GCC 2.96 and GNU Make. ‘alphaev6-unknown-linux-gnu’, ‘alphaev67-unknown-linux-gnu’. 5. SuSE Linux 7.2a GCC 3.0 and GNU Make. ‘ia64-unknown-linux-gnu’. 6. SuSE Linux GCC 3.2.2 and GNU Make. ‘x86_64-unknown-linux-gnu’ (AMD64 Opteron “Melodyâ€). 7. SuSE Enterprise Server 9 on IBM OpenPower 720 GCC 3.3.3 and GNU Make. ‘powerpc64-unknown-linux-gnu’. 8. RedHat Linux 7.2 GCC 2.96 and GNU Make. ‘alphaev6-unknown-linux-gnu’, ‘alphaev67-unknown-linux-gnu’, ‘ia64-unknown-linux-gnu’. 9. RedHat Linux 8.0 GCC 3.2 and GNU Make. ‘i686-pc-linux-gnu’. 10. RedHat Advanced Server 2.1 GCC 2.96 and GNU Make. ‘i686-pc-linux-gnu’. 11. Slackware Linux 8.0.01 GCC 2.95.3 and GNU Make. ‘i686-pc-linux-gnu’. 12. Mandrake Linux 9.0 GCC 3.2 and GNU Make. ‘i686-pc-linux-gnu’. 13. IRIX 6.5 MIPS C compiler, IRIX Make. ‘mips-sgi-irix6.5’. 14. AIX 4.3.2 IBM C for AIX compiler, AIX Make. ‘rs6000-ibm-aix4.3.2.0’. 15. Microsoft Windows 2000 (Cygwin) GCC 3.2, GNU make. ‘i686-pc-cygwin’. 16. HP-UX 11 HP-UX C compiler and HP Make. ‘ia64-hp-hpux11.22’, ‘hppa2.0w-hp-hpux11.11’. 17. SUN Solaris 2.7 GCC 3.0.4 and GNU Make. ‘sparc-sun-solaris2.7’. 18. SUN Solaris 2.8 Sun WorkShop Compiler C 6.0 and SUN Make. ‘sparc-sun-solaris2.8’. 19. SUN Solaris 2.9 Sun Forte Developer 7 C compiler and GNU Make. ‘sparc-sun-solaris2.9’. 20. NetBSD 1.6 GCC 2.95.3 and GNU Make. ‘alpha-unknown-netbsd1.6’, ‘i386-unknown-netbsdelf1.6’. 21. OpenBSD 3.1 and 3.2 GCC 2.95.3 and GNU Make. ‘alpha-unknown-openbsd3.1’, ‘i386-unknown-openbsd3.1’. 22. FreeBSD 4.7 and 4.8 GCC 2.95.4 and GNU Make. ‘alpha-unknown-freebsd4.7’, ‘alpha-unknown-freebsd4.8’, ‘i386-unknown-freebsd4.7’, ‘i386-unknown-freebsd4.8’. 23. MacOS X 10.2 Server Edition GCC 3.1 and GNU Make. ‘powerpc-apple-darwin6.5’. 24. MacOS X 10.4 “Tiger†with Xcode 2.0 GCC 4.0 and GNU Make. ‘powerpc-apple-darwin8.0’. 25. Cross compiled to uClinux/uClibc on Motorola Coldfire GCC 3.4 and GNU Make ‘m68k-uclinux-elf’. 26. Cross compiled to ARM using Glibc GCC 2.95 and GNU Make ‘arm-linux’. 27. Cross compiled to Mingw32. GCC 3.4.4 and GNU Make ‘i586-mingw32msvc’. 28. OS/2 GCC. If you use Libidn on, or port Libidn to, a new platform please report it to the author.  File: libidn.info, Node: Getting help, Next: Commercial Support, Prev: Supported Platforms, Up: Introduction 1.5 Getting help ================ A mailing list where users of Libidn may help each other exists, and you can reach it by sending e-mail to . Archives of the mailing list discussions, and an interface to manage subscriptions, is available through the World Wide Web at .  File: libidn.info, Node: Commercial Support, Next: Downloading and Installing, Prev: Getting help, Up: Introduction 1.6 Commercial Support ====================== Commercial support is available for users of GNU Libidn. The kind of support that can be purchased may include: • Implement new features. Such as country code specific profiling to support a restricted subset of Unicode. • Port Libidn to new platforms. This could include porting Libidn to an embedded platforms that may need memory or size optimization. • Integrating IDN support in your existing project. • System design of components related to IDN. If you are interested, please write to: Simon Josefsson Datakonsult AB Hagagatan 24 113 47 Stockholm Sweden E-mail: simon@josefsson.org If your company provides support related to GNU Libidn and would like to be mentioned here, contact the author (*note Bug Reports::).  File: libidn.info, Node: Downloading and Installing, Next: Bug Reports, Prev: Commercial Support, Up: Introduction 1.7 Downloading and Installing ============================== The package can be downloaded from several places, including: The latest version is stored in a file, e.g., ‘libidn-1.38.tar.gz’ where the ‘1.38’ value is the highest version number in the directory. The package is then extracted, configured and built like many other packages that use Autoconf. For detailed information on configuring and building it, refer to the ‘INSTALL’ file that is part of the distribution archive. Here is an example terminal session that download, configure, build and install the package. You will need a few basic tools, such as ‘sh’, ‘make’ and ‘cc’. $ wget -q ftp://alpha.gnu.org/pub/gnu/libidn/libidn-1.38.tar.gz $ tar xfz libidn-1.38.tar.gz $ cd libidn-1.38/ $ ./configure ... $ make ... $ make install ... After that Libidn should be properly installed and ready for use. A few ‘configure’ options may be relevant, summarized in the table. ‘--enable-java’ Build the Java port into a *.JAR file. *Note Java API::, for more information. ‘--disable-tld’ Disable the TLD module. This would typically only be useful if you are building on a memory restricted platforms. *Note TLD Functions::, for more information. ‘--enable-csharp[=IMPL]’ Build the ‘C#’ port into a ‘*.DLL’ file. *Note C# API::, for more information. Here, ‘IMPL’ is ‘pnet’ or ‘mono’, indicating whether the PNET ‘cscc’ compiler or the Mono ‘mcs’ compiler should be used, respectively. ‘--disable-valgrind-tests’ Disable running the self-checks under Valgrind (). Normally Valgrind does not cause problems and can detect some severe memory errors. If you are getting errors from Valgrind that are caused by the compiler or libc (possibly as a result of special optimization flags), you may use this option to disable the use of Valgrind. For the complete list, refer to the output from ‘configure --help’. * Menu: * Installing under Windows:: Windows specific build instructions.  File: libidn.info, Node: Installing under Windows, Up: Downloading and Installing 1.7.1 Installing under Windows ------------------------------ There are two ways to build Libidn on Windows: via MinGW or via Visual Studio. With MinGW, you can build a Libidn DLL and use it from other applications. After installing MinGW () follow the generic installation instructions (*note Downloading and Installing::). The DLL is installed by default. For information on how to use the DLL in other applications, see: . You can build Libidn as a native Visual Studio C++ project. This allows you to build the code for other platforms that VS supports, such as Windows Mobile. You need Visual Studio 2005 or later. First download and unpack the archive as described in the generic installation instructions (*note Downloading and Installing::). Don’t run ‘./configure’. Instead, start Visual Studio and open the project file ‘windows/libidn.sln’ inside the Libidn directory. You should be able to build the project using Build Project. Output libraries will be written into the ‘windows/lib’ (or ‘windows/lib/debug’ for Debug versions) folder. When working with Windows you may want to look into the special memory handling functions that may be needed (*note Memory handling under Windows::).  File: libidn.info, Node: Bug Reports, Next: Contributing, Prev: Downloading and Installing, Up: Introduction 1.8 Bug Reports =============== If you think you have found a bug in Libidn, please investigate it and report it. • Please make sure that the bug is really in Libidn, and preferably also check that it hasn’t already been fixed in the latest version. • You have to send us a test case that makes it possible for us to reproduce the bug. • You also have to explain what is wrong; if you get a crash, or if the results printed are not good and in that case, in what way. Make sure that the bug report includes all information you would need to fix this kind of bug for someone else. Please make an effort to produce a self-contained report, with something definite that can be tested or debugged. Vague queries or piecemeal messages are difficult to act on and don’t help the development effort. If your bug report is good, we will do our best to help you to get a corrected version of the software; if the bug report is poor, we won’t do anything about it (apart from asking you to send better bug reports). If you think something in this manual is unclear, or downright incorrect, or if the language needs to be improved, please also send a note. Send your bug report to: ‘bug-libidn@gnu.org’  File: libidn.info, Node: Contributing, Prev: Bug Reports, Up: Introduction 1.9 Contributing ================ If you want to submit a patch for inclusion – from solve a typo you discovered, up to adding support for a new feature – you should submit it as a bug report (*note Bug Reports::). There are some things that you can do to increase the chances for it to be included in the official package. Unless your patch is very small (say, under 10 lines) we require that you assign the copyright of your work to the Free Software Foundation. This is to protect the freedom of the project. If you have not already signed papers, we will send you the necessary information when you submit your contribution. For contributions that doesn’t consist of actual programming code, the only guidelines are common sense. Use it. For code contributions, a number of style guides will help you: • Coding Style. Follow the GNU Standards document (*note GNU Coding Standards: (standards)top.). If you normally code using another coding standard, there is no problem, but you should use ‘indent’ to reformat the code (*note GNU Indent: (indent)top.) before submitting your work. • Use the unified diff format ‘diff -u’. • Return errors. No reason whatsoever should abort the execution of the library. Even memory allocation errors, e.g. when malloc return NULL, should work although result in an error code. • Design with thread safety in mind. Don’t use global variables and the like. • Avoid using the C math library. It causes problems for embedded implementations, and in most situations it is very easy to avoid using it. • Document your functions. Use comments before each function headers, that, if properly formatted, are extracted into GTK-DOC web pages. Don’t forget to update the Texinfo manual as well. • Supply a ChangeLog and NEWS entries, where appropriate.  File: libidn.info, Node: Preparation, Next: Utility Functions, Prev: Introduction, Up: Top 2 Preparation ************* To use ‘Libidn’, you have to perform some changes to your sources and the build system. The necessary changes are small and explained in the following sections. At the end of this chapter, it is described how the library is initialized, and how the requirements of the library are verified. A faster way to find out how to adapt your application for use with ‘Libidn’ may be to look at the examples at the end of this manual (*note Examples::). * Menu: * Header:: * Initialization:: * Version Check:: * Building the source:: * Autoconf tests:: * Memory handling under Windows::  File: libidn.info, Node: Header, Next: Initialization, Up: Preparation 2.1 Header ========== The library contains a few independent parts, and each part export the interfaces (data types and functions) in a header file. You must include the appropriate header files in all programs using the library, either directly or through some other header file, like this: #include The header files and the functions they define are categorized as follows: stringprep.h The low-level stringprep API entry point. For IDN applications, this is usually invoked via IDNA. Some applications, specifically non-IDN ones, may want to prepare strings directly though, and should include this header file. The name space of the stringprep part of Libidn is ‘stringprep*’ for function names, ‘Stringprep*’ for data types and ‘STRINGPREP_*’ for other symbols. In addition, ‘_stringprep*’ is reserved for internal use and should never be used by applications. punycode.h The entry point to Punycode encoding and decoding functions. Normally punycode is used via the idna.h interface, but some application may want to perform raw punycode operations. The name space of the punycode part of Libidn is ‘punycode_*’ for function names, ‘Punycode*’ for data types and ‘PUNYCODE_*’ for other symbols. In addition, ‘_punycode*’ is reserved for internal use and should never be used by applications. idna.h The entry point to the IDNA functions. This is the normal entry point for applications that need IDN functionality. The name space of the IDNA part of Libidn is ‘idna_*’ for function names, ‘Idna*’ for data types and ‘IDNA_*’ for other symbols. In addition, ‘_idna*’ is reserved for internal use and should never be used by applications. tld.h The entry point to the TLD functions. Normal applications are not expected to need this functionality, but it is present for applications that are used by TLDs to validate customer input. The name space of the TLD part of Libidn is ‘tld_*’ for function names, ‘Tld_*’ for data types and ‘TLD_*’ for other symbols. In addition, ‘_tld*’ is reserved for internal use and should never be used by applications. pr29.h The entry point to the PR29 functions. These functions are used to detect “problem sequences†(*note PR29 Functions::), mostly for use in security critical applications. The name space of the PR29 part of Libidn is ‘pr29_*’ for function names, ‘Pr29_*’ for data types and ‘PR29_*’ for other symbols. In addition, ‘_pr29*’ is reserved for internal use and should never be used by applications. idn-free.h The entry point to the Windows memory de-allocation function (*note Memory handling under Windows::). It contains only one function ‘idn_free’. All header files defined and use the symbol ‘IDNAPI’ to decorate the API functions.  File: libidn.info, Node: Initialization, Next: Version Check, Prev: Header, Up: Preparation 2.2 Initialization ================== Libidn is stateless and does not need any initialization.  File: libidn.info, Node: Version Check, Next: Building the source, Prev: Initialization, Up: Preparation 2.3 Version Check ================= It is often desirable to check that the version of ‘Libidn’ used is indeed one which fits all requirements. Even with binary compatibility new features may have been introduced but due to problem with the dynamic linker an old version is actually used. So you may want to check that the version is okay right after program startup. stringprep_check_version ------------------------ -- Function: const char * stringprep_check_version (const char * REQ_VERSION) REQ_VERSION: Required version number, or NULL. Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See ‘STRINGPREP_VERSION’ for a suitable ‘req_version’ string. Return value: Version string of run-time library, or NULL if the run-time library does not meet the required version number. The normal way to use the function is to put something similar to the following first in your ‘main’: if (!stringprep_check_version (STRINGPREP_VERSION)) { printf ("stringprep_check_version() failed:\n" "Header file incompatible with shared library.\n"); exit(EXIT_FAILURE); }  File: libidn.info, Node: Building the source, Next: Autoconf tests, Prev: Version Check, Up: Preparation 2.4 Building the source ======================= If you want to compile a source file including e.g. the ‘idna.h’ header file, you must make sure that the compiler can find it in the directory hierarchy. This is accomplished by adding the path to the directory in which the header file is located to the compilers include file search path (via the ‘-I’ option). However, the path to the include file is determined at the time the source is configured. To solve this problem, ‘Libidn’ uses the external package ‘pkg-config’ that knows the path to the include file and other configuration options. The options that need to be added to the compiler invocation at compile time are output by the ‘--cflags’ option to ‘pkg-config libidn’. The following example shows how it can be used at the command line: gcc -c foo.c `pkg-config libidn --cflags` Adding the output of ‘pkg-config libidn --cflags’ to the compilers command line will ensure that the compiler can find e.g. the idna.h header file. A similar problem occurs when linking the program with the library. Again, the compiler has to find the library files. For this to work, the path to the library files has to be added to the library search path (via the ‘-L’ option). For this, the option ‘--libs’ to ‘pkg-config libidn’ can be used. For convenience, this option also outputs all other options that are required to link the program with the ‘libidn’ library. The example shows how to link ‘foo.o’ with the ‘libidn’ library to a program ‘foo’. gcc -o foo foo.o `pkg-config libidn --libs` Of course you can also combine both examples to a single command by specifying both options to ‘pkg-config’: gcc -o foo foo.c `pkg-config libidn --cflags --libs`  File: libidn.info, Node: Autoconf tests, Next: Memory handling under Windows, Prev: Building the source, Up: Preparation 2.5 Autoconf tests ================== If your project uses Autoconf (*note GNU Autoconf: (autoconf)top.) to check for installed libraries, you might find the following snippet illustrative. It add a new ‘configure’ parameter ‘--with-libidn’, and check for ‘idna.h’ and ‘-lidn’ (possibly below the directory specified as the optional argument to ‘--with-libidn’), and define the CPP symbol ‘LIBIDN’ if the library is found. The default behaviour is to search for the library and enable the functionality (that is, define the symbol) when the library is found, but if you wish to make the default behaviour of your package be that Libidn is not used (even if it is installed on the system), change ‘libidn=yes’ to ‘libidn=no’ on the third line. AC_ARG_WITH(libidn, AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no"; then if test "$libidn" != "yes"; then LDFLAGS="${LDFLAGS} -L$libidn/lib" CPPFLAGS="${CPPFLAGS} -I$libidn/include" fi AC_CHECK_HEADER(idna.h, AC_CHECK_LIB(idn, stringprep_check_version, [libidn=yes LIBS="${LIBS} -lidn"], libidn=no), libidn=no) fi if test "$libidn" != "no" ; then AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.]) else AC_MSG_WARN([Libidn not found]) fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn) If you require that your users have installed ‘pkg-config’ (which I cannot recommend generally), the above can be done more easily as follows. AC_ARG_WITH(libidn, AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no" ; then PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no]) if test "$libidn" != "yes" ; then libidn=no AC_MSG_WARN([Libidn not found]) else libidn=yes AC_DEFINE(LIBIDN, 1, [Define to 1 if you want Libidn.]) fi fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn)  File: libidn.info, Node: Memory handling under Windows, Prev: Autoconf tests, Up: Preparation 2.6 Memory handling under Windows ================================= Several functions in the library allocates memory. The memory is expected to be de-allocated using the ‘free’ function. Under Windows, it is sometimes necessary to de-allocate memory in the same module that allocated a memory region. The reason is that different modules use separate heap memory regions. To solve this problem we provide a function to de-allocate memory inside the library. Note that we do not recommend using this interface generally if you do not care about Windows portability. 2.7 Header file ‘idn-free.h’ ============================ To use the function explained in this chapter, you need to include the file ‘idn-free.h’ using: #include 2.8 Memory de-allocation function ================================= idn_free -------- -- Function: void idn_free (void * PTR) PTR: memory region to deallocate, or ‘NULL’ . Deallocates memory region by calling ‘free()’ . If ‘ptr’ is ‘NULL’ no operation is performed. Normally applications de-allocate strings allocated by libidn by calling ‘free()’ directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible.  File: libidn.info, Node: Utility Functions, Next: Stringprep Functions, Prev: Preparation, Up: Top 3 Utility Functions ******************* The rest of this library makes extensive use of Unicode characters. In order to interface this library with the outside world, your application may need to make various Unicode transformations. 3.1 Header file ‘stringprep.h’ ============================== To use the functions explained in this chapter, you need to include the file ‘stringprep.h’ using: #include 3.2 Unicode Encoding Transformation =================================== stringprep_unichar_to_utf8 -------------------------- -- Function: int stringprep_unichar_to_utf8 (uint32_t C, char * OUTBUF) C: a ISO10646 character code OUTBUF: output buffer, must have at least 6 bytes of space. If ‘NULL’ , the length will be computed and returned and nothing will be written to ‘outbuf’ . Converts a single character to UTF-8. Return value: number of bytes written. stringprep_utf8_to_unichar -------------------------- -- Function: uint32_t stringprep_utf8_to_unichar (const char * P) P: a pointer to Unicode character encoded as UTF-8 Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If ‘p’ does not point to a valid UTF-8 encoded character, results are undefined. Return value: the resulting character. Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If ‘p’ does not point to a valid UTF-8 encoded character, results are undefined. Return value: the resulting character. stringprep_ucs4_to_utf8 ----------------------- -- Function: char * stringprep_ucs4_to_utf8 (const uint32_t * STR, ssize_t LEN, size_t * ITEMS_READ, size_t * ITEMS_WRITTEN) STR: a UCS-4 encoded string LEN: the maximum length of ‘str’ to use. If ‘len’ < 0, then the string is terminated with a 0 character. ITEMS_READ: location to store number of characters read read, or ‘NULL’ . ITEMS_WRITTEN: location to store number of bytes written or ‘NULL’ . The value here stored does not include the trailing 0 byte. Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte. Return value: a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, ‘NULL’ will be returned. stringprep_utf8_to_ucs4 ----------------------- -- Function: uint32_t * stringprep_utf8_to_ucs4 (const char * STR, ssize_t LEN, size_t * ITEMS_WRITTEN) STR: a UTF-8 encoded string LEN: the maximum length of ‘str’ to use. If ‘len’ < 0, then the string is nul-terminated. ITEMS_WRITTEN: location to store the number of characters in the result, or ‘NULL’ . Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4. The function now performs error checking to verify that the input is valid UTF-8 (before it was documented to not do error checking). Return value: a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller. 3.3 Unicode Normalization ========================= stringprep_ucs4_nfkc_normalize ------------------------------ -- Function: uint32_t * stringprep_ucs4_nfkc_normalize (const uint32_t * STR, ssize_t LEN) STR: a Unicode string. LEN: length of ‘str’ array, or -1 if ‘str’ is nul-terminated. Converts a UCS4 string into canonical form, see ‘stringprep_utf8_nfkc_normalize()’ for more information. Return value: a newly allocated Unicode string, that is the NFKC normalized form of ‘str’ . stringprep_utf8_nfkc_normalize ------------------------------ -- Function: char * stringprep_utf8_nfkc_normalize (const char * STR, ssize_t LEN) STR: a UTF-8 encoded string. LEN: length of ‘str’ , in bytes, or -1 if ‘str’ is nul-terminated. Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. Return value: a newly allocated string, that is the NFKC normalized form of ‘str’ . 3.4 Character Set Conversion ============================ stringprep_locale_charset ------------------------- -- Function: const char * stringprep_locale_charset ( VOID) Enumerated return codes of the TLD checking functions. The value 0 is guaranteed to always correspond to success. *:* Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn’t set and nl_langinfo isn’t supported or return anything. Note that this function return the application’s locale’s preferred charset (or thread’s locale’s preferred charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. Return value: Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. stringprep_convert ------------------ -- Function: char * stringprep_convert (const char * STR, const char * TO_CODESET, const char * FROM_CODESET) STR: input zero-terminated string. TO_CODESET: name of destination character set. FROM_CODESET: name of origin character set, as used by ‘str’ . Convert the string from one character set to another using the system’s ‘iconv()’ function. Return value: Returns newly allocated zero-terminated string which is ‘str’ transcoded into to_codeset. stringprep_locale_to_utf8 ------------------------- -- Function: char * stringprep_locale_to_utf8 (const char * STR) STR: input zero terminated string. Convert string encoded in the locale’s character set into UTF-8 by using ‘stringprep_convert()’ . Return value: Returns newly allocated zero-terminated string which is ‘str’ transcoded into UTF-8. stringprep_utf8_to_locale ------------------------- -- Function: char * stringprep_utf8_to_locale (const char * STR) STR: input zero terminated string. Convert string encoded in UTF-8 into the locale’s character set by using ‘stringprep_convert()’ . Return value: Returns newly allocated zero-terminated string which is ‘str’ transcoded into the locale’s character set.  File: libidn.info, Node: Stringprep Functions, Next: Punycode Functions, Prev: Utility Functions, Up: Top 4 Stringprep Functions ********************** Stringprep describes a framework for preparing Unicode text strings in order to increase the likelihood that string input and string comparison work in ways that make sense for typical users throughout the world. The stringprep protocol is useful for protocol identifier values, company and personal names, internationalized domain names, and other text strings. 4.1 Header file ‘stringprep.h’ ============================== To use the functions explained in this chapter, you need to include the file ‘stringprep.h’ using: #include 4.2 Defining A Stringprep Profile ================================= Further types and structures are defined for applications that want to specify their own stringprep profile. As these are fairly obscure, and by necessity tied to the implementation, we do not document them here. Look into the ‘stringprep.h’ header file, and the ‘profiles.c’ source code for the details. 4.3 Control Flags ================= -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_NFKC Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_BIDI Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_UNASSIGNED Make the library return with an error if string contains unassigned characters according to profile. 4.4 Core Functions ================== stringprep_4i ------------- -- Function: int stringprep_4i (uint32_t * UCS4, size_t * LEN, size_t MAXUCS4LEN, Stringprep_profile_flags FLAGS, const Stringprep_profile * PROFILE) UCS4: input/output array with string to prepare. LEN: on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. MAXUCS4LEN: maximum length of input/output array. FLAGS: a ‘Stringprep_profile_flags’ value, or 0. PROFILE: pointer to ‘Stringprep_profile’ to use. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated ( ‘ucs4’ [ ‘len’ ] = 0). The output will not be zero terminated unless ‘ucs4’ [ ‘len’ ] = 0. Instead, see ‘stringprep_4zi()’ if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, ‘maxucs4len’ indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0. The ‘profile’ contain the ‘Stringprep_profile’ instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns ‘STRINGPREP_OK’ iff successful, or an ‘Stringprep_rc’ error code. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated ( ‘ucs4’ [ ‘len’ ] = 0). The output will not be zero terminated unless ‘ucs4’ [ ‘len’ ] = 0. Instead, see ‘stringprep_4zi()’ if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, ‘maxucs4len’ indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0. The ‘profile’ contain the ‘Stringprep_profile’ instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns ‘STRINGPREP_OK’ iff successful, or an ‘Stringprep_rc’ error code. stringprep_4zi -------------- -- Function: int stringprep_4zi (uint32_t * UCS4, size_t MAXUCS4LEN, Stringprep_profile_flags FLAGS, const Stringprep_profile * PROFILE) UCS4: input/output array with zero terminated string to prepare. MAXUCS4LEN: maximum length of input/output array. FLAGS: a ‘Stringprep_profile_flags’ value, or 0. PROFILE: pointer to ‘Stringprep_profile’ to use. Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, ‘maxucs4len’ indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0. The ‘profile’ contain the ‘Stringprep_profile’ instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns ‘STRINGPREP_OK’ iff successful, or an ‘Stringprep_rc’ error code. stringprep ---------- -- Function: int stringprep (char * IN, size_t MAXLEN, Stringprep_profile_flags FLAGS, const Stringprep_profile * PROFILE) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. FLAGS: a ‘Stringprep_profile_flags’ value, or 0. PROFILE: pointer to ‘Stringprep_profile’ to use. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see ‘stringprep_locale_to_utf8()’ . Since the stringprep operation can expand the string, ‘maxlen’ indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0. The ‘profile’ contain the ‘Stringprep_profile’ instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns ‘STRINGPREP_OK’ iff successful, or an error code. stringprep_profile ------------------ -- Function: int stringprep_profile (const char * IN, char ** OUT, const char * PROFILE, Stringprep_profile_flags FLAGS) IN: input array with UTF-8 string to prepare. OUT: output variable with pointer to newly allocate string. PROFILE: name of stringprep profile to use. FLAGS: a ‘Stringprep_profile_flags’ value, or 0. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see ‘stringprep_locale_to_utf8()’ . The output ‘out’ variable must be deallocated by the caller. The ‘flags’ are one of ‘Stringprep_profile_flags’ values, or 0. The ‘profile’ specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. Return value: Returns ‘STRINGPREP_OK’ iff successful, or an error code. 4.5 Error Handling ================== stringprep_strerror ------------------- -- Function: const char * stringprep_strerror (Stringprep_rc RC) RC: a ‘Stringprep_rc’ return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *STRINGPREP_OK:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *STRINGPREP_CONTAINS_UNASSIGNED:* String contain unassigned Unicode code points, which is forbidden by the profile. *STRINGPREP_CONTAINS_PROHIBITED:* String contain code points prohibited by the profile. *STRINGPREP_BIDI_BOTH_L_AND_RAL:* String contain code points with conflicting bidirection category. *STRINGPREP_BIDI_LEADTRAIL_NOT_RAL:* Leading and trailing character in string not of proper bidirectional category. *STRINGPREP_BIDI_CONTAINS_PROHIBITED:* Contains prohibited code points detected by bidirectional code. *STRINGPREP_TOO_SMALL_BUFFER:* Buffer handed to function was too small. This usually indicate a problem in the calling application. *STRINGPREP_PROFILE_ERROR:* The stringprep profile was inconsistent. This usually indicate an internal error in the library. *STRINGPREP_FLAG_ERROR:* The supplied flag conflicted with profile. This usually indicate a problem in the calling application. *STRINGPREP_UNKNOWN_PROFILE:* The supplied profile name was not known to the library. *STRINGPREP_ICONV_ERROR:* Character encoding conversion error. *STRINGPREP_NFKC_FAILED:* The Unicode NFKC operation failed. This usually indicate an internal error in the library. *STRINGPREP_MALLOC_ERROR:* The ‘malloc()’ was out of memory. This is usually a fatal error. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code ‘rc’ . 4.6 Stringprep Profile Macros ============================= -- Function: int stringprep_nameprep_no_unassigned (char * IN, int MAXLEN) IN: input/output array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use ‘stringprep_nameprep’ for true AllowUnassigned. Returns 0 iff successful, or an error code. -- Function: int stringprep_iscsi (char * IN, int MAXLEN) IN: input/output array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code. -- Function: int stringprep_plain (char * IN, int MAXLEN) IN: input/output array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code. -- Function: int stringprep_xmpp_nodeprep (char * IN, int MAXLEN) IN: input/output array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code. -- Function: int stringprep_xmpp_resourceprep (char * IN, int MAXLEN) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code.  File: libidn.info, Node: Punycode Functions, Next: IDNA Functions, Prev: Stringprep Functions, Up: Top 5 Punycode Functions ******************** Punycode is a simple and efficient transfer encoding syntax designed for use with Internationalized Domain Names in Applications. It uniquely and reversibly transforms a Unicode string into an ASCII string. ASCII characters in the Unicode string are represented literally, and non-ASCII characters are represented by ASCII characters that are allowed in host name labels (letters, digits, and hyphens). A general algorithm called Bootstring allows a string of basic code points to uniquely represent any string of code points drawn from a larger set. Punycode is an instance of Bootstring that uses particular parameter values, appropriate for IDNA. 5.1 Header file ‘punycode.h’ ============================ To use the functions explained in this chapter, you need to include the file ‘punycode.h’ using: #include 5.2 Unicode Code Point Data Type ================================ The punycode function uses a special type to denote Unicode code points. It is guaranteed to always be a 32 bit unsigned integer. -- Punycode Unicode code point: uint32_t punycode_uint A unsigned integer that hold Unicode code points. 5.3 Core Functions ================== Note that the current implementation will fail if the ‘input_length’ exceed 4294967295 (the size of ‘punycode_uint’). This restriction may be removed in the future. Meanwhile applications are encouraged to not depend on this problem, and use ‘sizeof’ to initialize ‘input_length’ and ‘output_length’. The functions provided are the following two entry points: punycode_encode --------------- -- Function: int punycode_encode (size_t INPUT_LENGTH, const punycode_uint [] INPUT, const unsigned char [] CASE_FLAGS, size_t * OUTPUT_LENGTH, char [] OUTPUT) INPUT_LENGTH: The number of code points in the ‘input’ array and the number of flags in the ‘case_flags’ array. INPUT: An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. CASE_FLAGS: A ‘NULL’ pointer or an array of boolean values parallel to the ‘input’ array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If ‘case_flags’ is a ‘NULL’ pointer then ASCII letters are left as they are, and other code points are treated as unflagged. OUTPUT_LENGTH: The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. OUTPUT: An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the ‘input’ contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the ‘Punycode_status’ values defined above except ‘PUNYCODE_BAD_INPUT’ . If not ‘PUNYCODE_SUCCESS’ , then ‘output_size’ and ‘output’ might contain garbage. Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the ‘Punycode_status’ values defined above except ‘PUNYCODE_BAD_INPUT’ . If not ‘PUNYCODE_SUCCESS’ , then ‘output_size’ and ‘output’ might contain garbage. punycode_decode --------------- -- Function: int punycode_decode (size_t INPUT_LENGTH, const char [] INPUT, size_t * OUTPUT_LENGTH, punycode_uint [] OUTPUT, unsigned char [] CASE_FLAGS) INPUT_LENGTH: The number of ASCII code points in the ‘input’ array. INPUT: An array of ASCII code points (0..7F). OUTPUT_LENGTH: The caller passes in the maximum number of code points that it can receive into the ‘output’ array (which is also the maximum number of flags that it can receive into the ‘case_flags’ array, if ‘case_flags’ is not a ‘NULL’ pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied ‘output_length’ is greater than that. OUTPUT: An array of code points like the input argument of ‘punycode_encode()’ (see above). CASE_FLAGS: A ‘NULL’ pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the ‘output’ array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Converts Punycode to a sequence of code points (presumed to be Unicode code points). Return value: The return value can be any of the ‘Punycode_status’ values defined above. If not ‘PUNYCODE_SUCCESS’ , then ‘output_length’ , ‘output’ , and ‘case_flags’ might contain garbage. 5.4 Error Handling ================== punycode_strerror ----------------- -- Function: const char * punycode_strerror (Punycode_status RC) RC: an ‘Punycode_status’ return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *PUNYCODE_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *PUNYCODE_BAD_INPUT:* Input is invalid. *PUNYCODE_BIG_OUTPUT:* Output would exceed the space provided. *PUNYCODE_OVERFLOW:* Input needs wider integers to process. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code ‘rc’ .  File: libidn.info, Node: IDNA Functions, Next: TLD Functions, Prev: Punycode Functions, Up: Top 6 IDNA Functions **************** Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. The IDNA document defines internationalized domain names (IDNs) and a mechanism called IDNA for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. 6.1 Header file ‘idna.h’ ======================== To use the functions explained in this chapter, you need to include the file ‘idna.h’ using: #include 6.2 Control Flags ================= The IDNA ‘flags’ parameter can take on the following values, or a bit-wise inclusive or of any subset of the parameters: -- Return code: Idna_flags IDNA_ALLOW_UNASSIGNED Allow unassigned Unicode code points. -- Return code: Idna_flags IDNA_USE_STD3_ASCII_RULES Check output to make sure it is a STD3 conforming host name. 6.3 Prefix String ================= -- Macro: #define IDNA_ACE_PREFIX String with the official IDNA prefix, ‘xn--’. 6.4 Core Functions ================== The idea behind the IDNA function names are as follows: the ‘idna_to_ascii_4i’ and ‘idna_to_unicode_44i’ functions are the core IDNA primitives. The ‘4’ indicate that the function takes UCS-4 strings (i.e., Unicode code points encoded in a 32-bit unsigned integer type) of the specified length. The ‘i’ indicate that the data is written “inline†into the buffer. This means the caller is responsible for allocating (and de-allocating) the string, and providing the library with the allocated length of the string. The output length is written in the output length variable. The remaining functions all contain the ‘z’ indicator, which means the strings are zero terminated. All output strings are allocated by the library, and must be de-allocated by the caller. The ‘4’ indicator again means that the string is UCS-4, the ‘8’ means the strings are UTF-8 and the ‘l’ indicator means the strings are encoded in the encoding used by the current locale. The functions provided are the following entry points: idna_to_ascii_4i ---------------- -- Function: int idna_to_ascii_4i (const uint32_t * IN, size_t INLEN, char * OUT, int FLAGS) IN: input array with unicode code points. INLEN: length of input array with unicode code points. OUT: output zero terminated string that must have room for at least 63 characters plus the terminating zero. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. Return value: Returns 0 on success, or an ‘Idna_rc’ error code. idna_to_unicode_44i ------------------- -- Function: int idna_to_unicode_44i (const uint32_t * IN, size_t INLEN, uint32_t * OUT, size_t * OUTLEN, int FLAGS) IN: input array with unicode code points. INLEN: length of input array with unicode code points. OUT: output array with unicode code points. OUTLEN: on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. Return value: Returns ‘Idna_rc’ error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. 6.5 Simplified ToASCII Interface ================================ idna_to_ascii_4z ---------------- -- Function: int idna_to_ascii_4z (const uint32_t * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero terminated input Unicode string. OUTPUT: pointer to newly allocated output string. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. idna_to_ascii_8z ---------------- -- Function: int idna_to_ascii_8z (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero terminated input UTF-8 string. OUTPUT: pointer to newly allocated output string. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. idna_to_ascii_lz ---------------- -- Function: int idna_to_ascii_lz (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero terminated input string encoded in the current locale’s character set. OUTPUT: pointer to newly allocated output string. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert domain name in the locale’s encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. 6.6 Simplified ToUnicode Interface ================================== idna_to_unicode_4z4z -------------------- -- Function: int idna_to_unicode_4z4z (const uint32_t * INPUT, uint32_t ** OUTPUT, int FLAGS) INPUT: zero-terminated Unicode string. OUTPUT: pointer to newly allocated output Unicode string. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. idna_to_unicode_8z4z -------------------- -- Function: int idna_to_unicode_8z4z (const char * INPUT, uint32_t ** OUTPUT, int FLAGS) INPUT: zero-terminated UTF-8 string. OUTPUT: pointer to newly allocated output Unicode string. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. idna_to_unicode_8z8z -------------------- -- Function: int idna_to_unicode_8z8z (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero-terminated UTF-8 string. OUTPUT: pointer to newly allocated output UTF-8 string. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. idna_to_unicode_8zlz -------------------- -- Function: int idna_to_unicode_8zlz (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero-terminated UTF-8 string. OUTPUT: pointer to newly allocated output string encoded in the current locale’s character set. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale’s character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. idna_to_unicode_lzlz -------------------- -- Function: int idna_to_unicode_lzlz (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero-terminated string encoded in the current locale’s character set. OUTPUT: pointer to newly allocated output string encoded in the current locale’s character set. FLAGS: an ‘Idna_flags’ value, e.g., ‘IDNA_ALLOW_UNASSIGNED’ or ‘IDNA_USE_STD3_ASCII_RULES’ . Convert possibly ACE encoded domain name in the locale’s character set into a string encoded in the current locale’s character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns ‘IDNA_SUCCESS’ on success, or error code. 6.7 Error Handling ================== idna_strerror ------------- -- Function: const char * idna_strerror (Idna_rc RC) RC: an ‘Idna_rc’ return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *IDNA_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *IDNA_STRINGPREP_ERROR:* Error during string preparation. *IDNA_PUNYCODE_ERROR:* Error during punycode operation. *IDNA_CONTAINS_NON_LDH:* For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. *IDNA_CONTAINS_MINUS:* For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). *IDNA_INVALID_LENGTH:* The final output string is not within the (inclusive) range 1 to 63 characters. *IDNA_NO_ACE_PREFIX:* The string does not contain the ACE prefix (for ToUnicode). *IDNA_ROUNDTRIP_VERIFY_ERROR:* The ToASCII operation on output string does not equal the input. *IDNA_CONTAINS_ACE_PREFIX:* The input contains the ACE prefix (for ToASCII). *IDNA_ICONV_ERROR:* Character encoding conversion error. *IDNA_MALLOC_ERROR:* Could not allocate buffer (this is typically a fatal error). *IDNA_DLOPEN_ERROR:* Could not dlopen the libcidn DSO (only used internally in libc). Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code ‘rc’ .  File: libidn.info, Node: TLD Functions, Next: PR29 Functions, Prev: IDNA Functions, Up: Top 7 TLD Functions *************** Organizations that manage some Top Level Domains (TLDs) have published tables with characters they accept within the domain. The reason may be to reduce complexity that come from using the full Unicode range, and to protect themselves from future (backwards incompatible) changes in the IDN or Unicode specifications. Libidn implement an infrastructure for defining and checking strings against such tables. Libidn also ship some tables from TLDs that we have managed to get permission to use them from. Because these tables are even less static than Unicode or StringPrep tables, it is likely that they will be updated from time to time (even in backwards incompatible ways). The Libidn interface provide a “version†field for each TLD table, which can be compared for equality to guarantee the same operation over time. From a design point of view, you can regard the TLD tables for IDN as the “localization†step that come after the “internationalization†step provided by the IETF standards. The TLD functionality rely on up-to-date tables. The latest version of Libidn aim to provide these, but tables with unclear copying conditions, or generally experimental tables, are not included. Some such tables can be found at . 7.1 Header file ‘tld.h’ ======================= To use the functions explained in this chapter, you need to include the file ‘tld.h’ using: #include 7.2 Core Functions ================== tld_check_4t ------------ -- Function: int tld_check_4t (const uint32_t * IN, size_t INLEN, size_t * ERRPOS, const Tld_table * TLD) IN: Array of unicode code points to process. Does not need to be zero terminated. INLEN: Number of unicode code points. ERRPOS: Position of offending character is returned here. TLD: A ‘Tld_table’ data structure representing the restrictions for which the input should be tested. Test each of the code points in ‘in’ for whether or not they are allowed by the data structure in ‘tld’ , return the position of the first character for which this is not the case in ‘errpos’ . Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a character is not allowed, or additional error codes on general failure conditions. tld_check_4tz ------------- -- Function: int tld_check_4tz (const uint32_t * IN, size_t * ERRPOS, const Tld_table * TLD) IN: Zero terminated array of unicode code points to process. ERRPOS: Position of offending character is returned here. TLD: A ‘Tld_table’ data structure representing the restrictions for which the input should be tested. Test each of the code points in ‘in’ for whether or not they are allowed by the data structure in ‘tld’ , return the position of the first character for which this is not the case in ‘errpos’ . Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a character is not allowed, or additional error codes on general failure conditions. 7.3 Utility Functions ===================== tld_get_4 --------- -- Function: int tld_get_4 (const uint32_t * IN, size_t INLEN, char ** OUT) IN: Array of unicode code points to process. Does not need to be zero terminated. INLEN: Number of unicode code points. OUT: Zero terminated ascii result string pointer. Isolate the top-level domain of ‘in’ and return it as an ASCII string in ‘out’ . Return value: Return ‘TLD_SUCCESS’ on success, or the corresponding ‘Tld_rc’ error code otherwise. tld_get_4z ---------- -- Function: int tld_get_4z (const uint32_t * IN, char ** OUT) IN: Zero terminated array of unicode code points to process. OUT: Zero terminated ascii result string pointer. Isolate the top-level domain of ‘in’ and return it as an ASCII string in ‘out’ . Return value: Return ‘TLD_SUCCESS’ on success, or the corresponding ‘Tld_rc’ error code otherwise. tld_get_z --------- -- Function: int tld_get_z (const char * IN, char ** OUT) IN: Zero terminated character array to process. OUT: Zero terminated ascii result string pointer. Isolate the top-level domain of ‘in’ and return it as an ASCII string in ‘out’ . The input string ‘in’ may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding. Return value: Return ‘TLD_SUCCESS’ on success, or the corresponding ‘Tld_rc’ error code otherwise. tld_get_table ------------- -- Function: const Tld_table * tld_get_table (const char * TLD, const Tld_table ** TABLES) TLD: TLD name (e.g. "com") as zero terminated ASCII byte string. TABLES: Zero terminated array of ‘Tld_table’ info-structures for TLDs. Get the TLD table for a named TLD by searching through the given TLD table array. Return value: Return structure corresponding to TLD ‘tld’ by going thru ‘tables’ , or return ‘NULL’ if no such structure is found. Get the TLD table for a named TLD by searching through the given TLD table array. Return value: Return structure corresponding to TLD ‘tld’ by going thru ‘tables’ , or return ‘NULL’ if no such structure is found. tld_default_table ----------------- -- Function: const Tld_table * tld_default_table (const char * TLD, const Tld_table ** OVERRIDES) TLD: TLD name (e.g. "com") as zero terminated ASCII byte string. OVERRIDES: Additional zero terminated array of ‘Tld_table’ info-structures for TLDs, or ‘NULL’ to only use library default tables. Get the TLD table for a named TLD, using the internal defaults, possibly overridden by the (optional) supplied tables. Return value: Return structure corresponding to TLD ‘tld_str’ , first looking through ‘overrides’ then thru built-in list, or ‘NULL’ if no such structure found. 7.4 High-Level Wrapper Functions ================================ tld_check_4 ----------- -- Function: int tld_check_4 (const uint32_t * IN, size_t INLEN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Array of unicode code points to process. Does not need to be zero terminated. INLEN: Number of unicode code points. ERRPOS: Position of offending character is returned here. OVERRIDES: A ‘Tld_table’ array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in ‘in’ for whether or not they are allowed by the information in ‘overrides’ or by the built-in TLD restriction data. When data for the same TLD is available both internally and in ‘overrides’ , the information in ‘overrides’ takes precedence. If several entries for a specific TLD are found, the first one is used. If ‘overrides’ is ‘NULL’ , only the built-in information is used. The position of the first offending character is returned in ‘errpos’ . Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a character is not allowed, or additional error codes on general failure conditions. tld_check_4z ------------ -- Function: int tld_check_4z (const uint32_t * IN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Zero-terminated array of unicode code points to process. ERRPOS: Position of offending character is returned here. OVERRIDES: A ‘Tld_table’ array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in ‘in’ for whether or not they are allowed by the information in ‘overrides’ or by the built-in TLD restriction data. When data for the same TLD is available both internally and in ‘overrides’ , the information in ‘overrides’ takes precedence. If several entries for a specific TLD are found, the first one is used. If ‘overrides’ is ‘NULL’ , only the built-in information is used. The position of the first offending character is returned in ‘errpos’ . Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all code points are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a character is not allowed, or additional error codes on general failure conditions. tld_check_8z ------------ -- Function: int tld_check_8z (const char * IN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Zero-terminated UTF8 string to process. ERRPOS: Position of offending character is returned here. OVERRIDES: A ‘Tld_table’ array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in ‘in’ for whether or not they are allowed by the information in ‘overrides’ or by the built-in TLD restriction data. When data for the same TLD is available both internally and in ‘overrides’ , the information in ‘overrides’ takes precedence. If several entries for a specific TLD are found, the first one is used. If ‘overrides’ is ‘NULL’ , only the built-in information is used. The position of the first offending character is returned in ‘errpos’ . Note that the error position refers to the decoded character offset rather than the byte position in the string. Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all characters are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a character is not allowed, or additional error codes on general failure conditions. tld_check_lz ------------ -- Function: int tld_check_lz (const char * IN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Zero-terminated string in the current locales encoding to process. ERRPOS: Position of offending character is returned here. OVERRIDES: A ‘Tld_table’ array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in ‘in’ for whether or not they are allowed by the information in ‘overrides’ or by the built-in TLD restriction data. When data for the same TLD is available both internally and in ‘overrides’ , the information in ‘overrides’ takes precedence. If several entries for a specific TLD are found, the first one is used. If ‘overrides’ is ‘NULL’ , only the built-in information is used. The position of the first offending character is returned in ‘errpos’ . Note that the error position refers to the decoded character offset rather than the byte position in the string. Return value: Returns the ‘Tld_rc’ value ‘TLD_SUCCESS’ if all characters are valid or when ‘tld’ is null, ‘TLD_INVALID’ if a character is not allowed, or additional error codes on general failure conditions. 7.5 Error Handling ================== tld_strerror ------------ -- Function: const char * tld_strerror (Tld_rc RC) RC: tld return code Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *TLD_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *TLD_INVALID:* Invalid character found. *TLD_NODATA:* No input data was provided. *TLD_MALLOC_ERROR:* Error during memory allocation. *TLD_ICONV_ERROR:* Character encoding conversion error. *TLD_NO_TLD:* No top-level domain found in domain string. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code ‘rc’ .  File: libidn.info, Node: PR29 Functions, Next: Examples, Prev: TLD Functions, Up: Top 8 PR29 Functions **************** A deficiency in the specification of Unicode Normalization Forms has been found. The consequence is that some strings can be normalized into different strings by different implementations. In other words, two different implementations may return different output for the same input (because the interpretation of the specification is ambiguous). Further, an implementation invoked again on the one of the output strings may return a different string (because one of the interpretation of the ambiguous specification make normalization non-idempotent). Fortunately, only a select few character sequence exhibit this problem, and none of them are expected to occur in natural languages (due to different linguistic uses of the involved characters). A full discussion of the problem may be found at: The PR29 functions below allow you to detect the problem sequence. So when would you want to use these functions? For most applications, such as those using Nameprep for IDN, this is likely only to be an interoperability problem. Thus, you may not want to care about it, as the character sequences will rarely occur naturally. However, if you are using a profile, such as SASLPrep, to process authentication tokens; authorization tokens; or passwords, there is a real danger that attackers may try to use the peculiarities in these strings to attack parts of your system. As only a small number of strings, and no naturally occurring strings, exhibit this problem, the conservative approach of rejecting the strings is recommended. If this approach is not used, you should instead verify that all parts of your system, that process the tokens and passwords, use a NFKC implementation that produce the same output for the same input. Technically inclined readers may be interested in knowing more about the implementation aspects of the PR29 flaw. *Note PR29 discussion::. 8.1 Header file ‘pr29.h’ ======================== To use the functions explained in this chapter, you need to include the file ‘pr29.h’ using: #include 8.2 Core Functions ================== pr29_4 ------ -- Function: int pr29_4 (const uint32_t * IN, size_t LEN) IN: input array with unicode code points. LEN: length of input array with unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the ‘Pr29_rc’ value ‘PR29_SUCCESS’ on success, and ‘PR29_PROBLEM’ if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). 8.3 Utility Functions ===================== pr29_4z ------- -- Function: int pr29_4z (const uint32_t * IN) IN: zero terminated array of Unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the ‘Pr29_rc’ value ‘PR29_SUCCESS’ on success, and ‘PR29_PROBLEM’ if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). pr29_8z ------- -- Function: int pr29_8z (const char * IN) IN: zero terminated input UTF-8 string. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the ‘Pr29_rc’ value ‘PR29_SUCCESS’ on success, and ‘PR29_PROBLEM’ if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or ‘PR29_STRINGPREP_ERROR’ if there was a problem converting the string from UTF-8 to UCS-4. 8.4 Error Handling ================== pr29_strerror ------------- -- Function: const char * pr29_strerror (Pr29_rc RC) RC: an ‘Pr29_rc’ return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *PR29_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *PR29_PROBLEM:* A problem sequence was encountered. *PR29_STRINGPREP_ERROR:* The character set conversion failed (only for ‘pr29_8z()’ ). Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code ‘rc’ .  File: libidn.info, Node: Examples, Next: Invoking idn, Prev: PR29 Functions, Up: Top 9 Examples ********** This chapter contains example code which illustrate how ‘Libidn’ can be used when writing your own application. * Menu: * Example 1:: Example using stringprep. * Example 2:: Example using punycode. * Example 3:: Example using IDNA ToASCII. * Example 4:: Example using IDNA ToUnicode. * Example 5:: Example using TLD checking.  File: libidn.info, Node: Example 1, Next: Example 2, Up: Examples 9.1 Example 1 ============= This example demonstrates how the stringprep functions are used. #include #include #include #include /* setlocale() */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn` * $ ./example * Input string encoded as `ISO-8859-1': ª * Before locale2utf8 (length 2): aa 0a * Before stringprep (length 3): c2 aa 0a * After stringprep (length 2): 61 0a * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input string encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); printf ("Before stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep); if (rc != STRINGPREP_OK) printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc)); else { printf ("After stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); } return 0; }  File: libidn.info, Node: Example 2, Next: Example 3, Prev: Example 1, Up: Examples 9.2 Example 2 ============= This example demonstrates how the punycode functions are used. #include /* setlocale() */ /* * This file is derived from RFC 3492 written by Adam M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * */ #include #include #include #include #include /* For testing, we'll just set some compile-time limits rather than */ /* use malloc(), and set a compile-time option rather than using a */ /* command-line option. */ enum { unicode_max_length = 256, ace_max_length = 256 }; static void usage (char **argv) { fprintf (stderr, "\n" "%s -e reads code points and writes a Punycode string.\n" "%s -d reads a Punycode string and writes code points.\n" "\n" "Input and output are plain text in the native character set.\n" "Code points are in the form u+hex separated by whitespace.\n" "Although the specification allows Punycode strings to contain\n" "any characters from the ASCII repertoire, this test code\n" "supports only the printable characters, and needs the Punycode\n" "string to be followed by a newline.\n" "The case of the u in u+hex is the force-to-uppercase flag.\n", argv[0], argv[0]); exit (EXIT_FAILURE); } static void fail (const char *msg) { fputs (msg, stderr); exit (EXIT_FAILURE); } static const char too_big[] = "input or output is too large, recompile with larger limits\n"; static const char invalid_input[] = "invalid input\n"; static const char overflow[] = "arithmetic overflow\n"; static const char io_error[] = "I/O error\n"; /* The following string is used to convert printable */ /* characters between ASCII and the native charset: */ static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40" /* at sign */ "ABCDEFGHIJKLMNO" "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n"; int main (int argc, char **argv) { enum punycode_status status; int r; size_t input_length, output_length, j; unsigned char case_flags[unicode_max_length]; setlocale (LC_ALL, ""); if (argc != 2) usage (argv); if (argv[1][0] != '-') usage (argv); if (argv[1][2] != 0) usage (argv); if (argv[1][1] == 'e') { uint32_t input[unicode_max_length]; unsigned long codept; char output[ace_max_length + 1], uplus[3]; int c; /* Read the input code points: */ input_length = 0; for (;;) { r = scanf ("%2s%lx", uplus, &codept); if (ferror (stdin)) fail (io_error); if (r == EOF || r == 0) break; if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1) { fail (invalid_input); } if (input_length == unicode_max_length) fail (too_big); if (uplus[0] == 'u') case_flags[input_length] = 0; else if (uplus[0] == 'U') case_flags[input_length] = 1; else fail (invalid_input); input[input_length++] = codept; } /* Encode: */ output_length = ace_max_length; status = punycode_encode (input_length, input, case_flags, &output_length, output); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Convert to native charset and output: */ for (j = 0; j < output_length; ++j) { c = output[j]; assert (c >= 0 && c <= 127); if (print_ascii[c] == 0) fail (invalid_input); output[j] = print_ascii[c]; } output[j] = 0; r = puts (output); if (r == EOF) fail (io_error); return EXIT_SUCCESS; } if (argv[1][1] == 'd') { char input[ace_max_length + 2], *p, *pp; uint32_t output[unicode_max_length]; /* Read the Punycode input string and convert to ASCII: */ if (!fgets (input, ace_max_length + 2, stdin)) fail (io_error); if (ferror (stdin)) fail (io_error); if (feof (stdin)) fail (invalid_input); input_length = strlen (input) - 1; if (input[input_length] != '\n') fail (too_big); input[input_length] = 0; for (p = input; *p != 0; ++p) { pp = strchr (print_ascii, *p); if (pp == 0) fail (invalid_input); *p = pp - print_ascii; } /* Decode: */ output_length = unicode_max_length; status = punycode_decode (input_length, input, &output_length, output, case_flags); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Output the result: */ for (j = 0; j < output_length; ++j) { r = printf ("%s+%04lX\n", case_flags[j] ? "U" : "u", (unsigned long) output[j]); if (r < 0) fail (io_error); } return EXIT_SUCCESS; } usage (argv); return EXIT_SUCCESS; /* not reached, but quiets compiler warning */ }  File: libidn.info, Node: Example 3, Next: Example 4, Prev: Example 2, Up: Examples 9.3 Example 3 ============= This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. #include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_ascii_lz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn` * $ ./example3 * Input domain encoded as `ISO-8859-1': www.räksmörgÃ¥sª.example * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65 * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example' * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = idna_to_ascii_lz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", (unsigned) p[i] & 0xFF); printf ("\n"); free (p); return 0; }  File: libidn.info, Node: Example 4, Next: Example 5, Prev: Example 3, Up: Examples 9.4 Example 4 ============= This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. #include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_unicode_lzlz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn` * $ ./example4 * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * ACE label (length 23): 'www.räksmörgÃ¥sa.example' * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = idna_to_unicode_lzlz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", (unsigned) p[i] & 0xFF); printf ("\n"); free (p); return 0; }  File: libidn.info, Node: Example 5, Prev: Example 4, Up: Examples 9.5 Example 5 ============= This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. #include #include #include /* Get stringprep_locale_charset, etc. */ #include /* Get idna_to_ascii_8z, etc. */ #include /* Get tld_check_4z. */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn` * $ ./example5 * Input domain encoded as `UTF-8': fooß.no * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f * ToASCII string (length 8): fooss.no * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f * Domain accepted by TLD check * * $ ./example5 * Input domain encoded as `UTF-8': gr€€n.no * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f * ToASCII string (length 16): xn--grn-l50aa.no * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f * Domain rejected by TLD check, Unicode position 2 * */ int main (void) { char buf[BUFSIZ]; char *p; uint32_t *r; int rc; size_t errpos, i; printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); rc = idna_to_ascii_8z (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p); rc = idna_to_unicode_8z4z (p, &r, 0); free (p); if (rc != IDNA_SUCCESS) { printf ("idna_to_unicode_8z4z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToUnicode string: "); for (i = 0; r[i]; i++) printf ("U+%04x ", r[i]); printf ("\n"); rc = tld_check_4z (r, &errpos, NULL); free (r); if (rc == TLD_INVALID) { printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos); return 1; } else if (rc != TLD_SUCCESS) { printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc)); return 2; } printf ("Domain accepted by TLD check\n"); return 0; }  File: libidn.info, Node: Invoking idn, Next: Emacs API, Prev: Examples, Up: Top 10 Invoking idn *************** 10.1 Name ========= GNU Libidn (idn) – Internationalized Domain Names command line tool 10.2 Description ================ ‘idn’ allows internationalized string preparation (‘stringprep’), encoding and decoding of punycode data, and IDNA ToASCII/ToUnicode operations to be performed on the command line. If strings are specified on the command line, they are used as input and the computed output is printed to standard output ‘stdout’. If no strings are specified on the command line, the program read data, line by line, from the standard input ‘stdin’, and print the computed output to standard output. What processing is performed (e.g., ToASCII, or Punycode encode) is indicated by options. If any errors are encountered, the execution of the applications is aborted. All strings are expected to be encoded in the preferred charset used by your locale. Use ‘--debug’ to find out what this charset is. You can override the charset used by setting environment variable ‘CHARSET’. To process a string that starts with ‘-’, for example ‘-foo’, use ‘--’ to signal the end of parameters, as in ‘idn --quiet -a -- -foo’. 10.3 Options ============ ‘idn’ recognizes these commands: -h, --help Print help and exit -V, --version Print version and exit -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --no-tld Don't check string for TLD specific rules -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead --debug Print debugging information --quiet Silent operation 10.4 Environment Variables ========================== The CHARSET environment variable can be used to override what character set to be used for decoding incoming data (i.e., on the command line or on the standard input stream), and to encode data to the standard output. If your system is set up correctly, however, the application will guess which character set is used automatically. Example usage: $ CHARSET=ISO-8859-1 idn --punycode-encode ... 10.5 Examples ============= Standard usage, reading input from standard input. The parameter ‘--quiet’ disable printing copyright, license and usage instructions. jas@latte:~$ idn --quiet räksmörgÃ¥s.se xn--rksmrgs-5wao1o.se jas@latte:~$ Reading input from command line: jas@latte:~$ idn --quiet räksmörgÃ¥s.se blÃ¥bærgrød.no xn--rksmrgs-5wao1o.se xn--blbrgrd-fxak7p.no jas@latte:~$ Accessing a specific StringPrep profile directly: jas@latte:~$ idn --quiet --profile=SASLprep --stringprep teßtª teßta jas@latte:~$ 10.6 Troubleshooting ==================== Getting character data encoded right, and making sure Libidn use the same encoding, can be difficult. The reason for this is that most systems encode character data in more than one character encoding, i.e., using ‘UTF-8’ together with ‘ISO-8859-1’ or ‘ISO-2022-JP’. This problem is likely to continue to exist until only one character encoding come out as the evolutionary winner, or (more likely, at least to some extents) forever. The first step to troubleshooting character encoding problems with Libidn is to use the ‘--debug’ parameter to find out which character set encoding ‘idn’ believe your locale uses. jas@latte:~$ idn --debug --quiet "" system locale uses charset `UTF-8'. jas@latte:~$ If it prints ‘ANSI_X3.4-1968’ (i.e., ‘US-ASCII’), this indicate you have not configured your locale properly. To configure the locale, you can, for example, use ‘LANG=sv_SE.UTF-8; export LANG’ at a ‘/bin/sh’ prompt, to set up your locale for a Swedish environment using ‘UTF-8’ as the encoding. Sometimes ‘idn’ appear to be unable to translate from your system locale into ‘UTF-8’ (which is used internally), and you get an error like the following: jas@latte:~$ idn --quiet foo idn: could not convert from ISO-8859-1 to UTF-8. jas@latte:~$ The simplest explanation is that you haven’t installed the ‘iconv’ conversion tools. You can find it as a standalone library in GNU Libiconv (). On many GNU/Linux systems, this library is part of the system, but you may have to install additional packages (e.g., ‘glibc-locale’ for Debian) to be able to use it. Another explanation is that the error is correct and you are feeding ‘idn’ invalid data. This can happen inadvertently if you are not careful with the character set encoding you use. For example, if your shell run in a ‘ISO-8859-1’ environment, and you invoke ‘idn’ with the ‘CHARSET’ environment variable as follows, you will feed it ‘ISO-8859-1’ characters but force it to believe they are ‘UTF-8’. Naturally this will lead to an error, unless the byte sequences happen to be valid ‘UTF-8’. Note that even if you don’t get an error, the output may be incorrect in this situation, because ‘ISO-8859-1’ and ‘UTF-8’ does not in general encode the same characters as the same byte sequences. jas@latte:~$ idn --quiet --debug "" system locale uses charset `ISO-8859-1'. jas@latte:~$ CHARSET=UTF-8 idn --quiet --debug räksmörgÃ¥s system locale uses charset `UTF-8'. input[0] = U+0072 input[1] = U+4af3 input[2] = U+006d input[3] = U+1b29e5 input[4] = U+0073 output[0] = U+0078 output[1] = U+006e output[2] = U+002d output[3] = U+002d output[4] = U+0072 output[5] = U+006d output[6] = U+0073 output[7] = U+002d output[8] = U+0068 output[9] = U+0069 output[10] = U+0036 output[11] = U+0064 output[12] = U+0035 output[13] = U+0039 output[14] = U+0037 output[15] = U+0035 output[16] = U+0035 output[17] = U+0032 output[18] = U+0061 xn--rms-hi6d597552a jas@latte:~$ The sense moral here is to forget about ‘CHARSET’ (configure your locales properly instead) unless you know what you are doing, and if you want to use it, do it carefully, after verifying with ‘--debug’ that you get the desired results.  File: libidn.info, Node: Emacs API, Next: Java API, Prev: Invoking idn, Up: Top 11 Emacs API ************ Included in Libidn are ‘punycode.el’ and ‘idna.el’ that provides an Emacs Lisp API to (a limited set of) the Libidn API. This section describes the API. Currently the IDNA API always set the ‘UseSTD3ASCIIRules’ flag and clear the ‘AllowUnassigned’ flag, in the future there may be functionality to specify these flags via the API. 11.1 Punycode Emacs API ======================= -- Variable: punycode-program Name of the GNU Libidn ‘idn’ application. The default is ‘idn’. This variable can be customized. -- Variable: punycode-environment List of environment variable definitions prepended to ‘process-environment’. The default is ‘("CHARSET=UTF-8")’. This variable can be customized. -- Variable: punycode-encode-parameters List of parameters passed to PUNYCODE-PROGRAM to invoke punycode encoding mode. The default is ‘("--quiet" "--punycode-encode")’. This variable can be customized. -- Variable: punycode-decode-parameters Parameters passed to PUNYCODE-PROGRAM to invoke punycode decoding mode. The default is ‘("--quiet" "--punycode-decode")’. This variable can be customized. -- Function: punycode-encode string Returns a Punycode encoding of the STRING, after converting the input into UTF-8. -- Function: punycode-decode string Returns a possibly multibyte string which is the decoding of the STRING which is a punycode encoded string. 11.2 IDNA Emacs API =================== -- Variable: idna-program Name of the GNU Libidn ‘idn’ application. The default is ‘idn’. This variable can be customized. -- Variable: idna-environment List of environment variable definitions prepended to ‘process-environment’. The default is ‘("CHARSET=UTF-8")’. This variable can be customized. -- Variable: idna-to-ascii-parameters List of parameters passed to IDNA-PROGRAM to invoke IDNA ToASCII mode. The default is ‘("--quiet" "--idna-to-ascii" "--usestd3asciirules")’. This variable can be customized. -- Variable: idna-to-unicode-parameters Parameters passed IDNA-PROGRAM to invoke IDNA ToUnicode mode. The default is ‘("--quiet" "--idna-to-unicode" "--usestd3asciirules")’. This variable can be customized. -- Function: idna-to-ascii string Returns an ASCII Compatible Encoding (ACE) of the string computed by the IDNA ToASCII operation on the input STRING, after converting the input to UTF-8. -- Function: idna-to-unicode string Returns a possibly multibyte string which is the output of the IDNA ToUnicode operation computed on the input STRING.  File: libidn.info, Node: Java API, Next: C# API, Prev: Emacs API, Up: Top 12 Java API *********** Libidn has been ported to the Java programming language, and as a consequence most of the API is available to native Java applications. This section contain notes on this support, complete documentation is pending. The Java library, if Libidn has been built with Java support (*note Downloading and Installing::), will be placed in ‘java/libidn-1.38.jar’. The source code is below ‘java/’ in Maven directory layout, and there is a Maven ‘pom.xml’ build script as well. Source code files are in ‘java/src/main/java/gnu/inet/encoding/’. 12.1 Overview ============= This package provides a Java implementation of the Internationalized Domain Names in Applications (IDNA) standard. It is written entirely in Java and does not require any additional libraries to be set up. The gnu.inet.encoding.IDNA class offers two public functions, toASCII and toUnicode which can be used as follows: gnu.inet.encoding.IDNA.toASCII("blöds.züg"); gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka"); 12.2 Miscellaneous Programs =========================== The ‘java/src/util/java/’ directory contains several programs that are related to the Java part of GNU Libidn, but that don’t need to be included in the main source tree or the JAR file. 12.2.1 GenerateRFC3454 ---------------------- This program parses RFC3454 and creates the RFC3454.java program that is required during the StringPrep phase. The RFC can be found at various locations, for example at . Invoke the program as follows: $ java GenerateRFC3454 Creating RFC3454.java... Ok. 12.2.2 GenerateNFKC ------------------- The GenerateNFKC program parses the Unicode character database file and generates all the tables required for NFKC. This program requires the two files UnicodeData.txt and CompositionExclusions.txt of version 3.2 of the Unicode files. Note that RFC3454 (Stringprep) defines that Unicode version 3.2 is to be used, not the latest version. The Unicode data files can be found at . Invoke the program as follows: $ java GenerateNFKC Creating CombiningClass.java... Ok. Creating DecompositionKeys.java... Ok. Creating DecompositionMappings.java... Ok. Creating Composition.java... Ok. 12.2.3 TestIDNA --------------- The TestIDNA program allows to test the IDNA implementation manually or against Simon Josefsson’s test vectors. The test vectors can be found at the Libidn homepage, . To test the transformation manually, use: $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a Input: Output: $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u Input: Output: To test against draft-josefsson-idn-test-vectors.html, use: $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t No errors detected! 12.2.4 TestNFKC --------------- The TestNFKC program allows to test the NFKC implementation manually or against the NormalizationTest.txt file from the Unicode data files. To test the normalization manually, use: $ java -cp .:/usr/share/java/libidn.jar TestNFKC Input: Output: To test against NormalizationTest.txt: $ java -cp .:/usr/share/java/libidn.jar TestNFKC No errors detected! 12.3 Possible Problems ====================== Beware of Bugs: This Java API needs a lot more testing, especially with "exotic" character sets. While it works for me, it may not work for you. Encoding of your Java sources: If you are using non-ASCII characters in your Java source code, make sure javac compiles your programs with the correct encoding. If necessary specify the encoding using the -encoding parameter. Java Unicode handling: Java 1.4 only handles 16-bit Unicode code points (i.e. characters in the Basic Multilingual Plane), this implementation therefore ignores all references to so-called Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5, these characters will also be supported by Java, but this will require changes to this library. See also the next section. 12.4 A Note on Java and Unicode =============================== This library uses Java’s built-in ’char’ datatype. Up to Java 1.4, this datatype only supports 16-bit Unicode code points, also called the Basic Multilingual Plane. For this reason, this library doesn’t work for Supplementary Characters (i.e. characters from U+10000 to U+10FFFF). All references to such characters are silently ignored. Starting from Java 1.5, also Supplementary Characters will be supported. However, this will require changes in the present version of the library. Java 1.5 is currently in beta status. For more information refer to the documentation of java.lang.Character in the JDK API.  File: libidn.info, Node: C# API, Next: Acknowledgements, Prev: Java API, Up: Top 13 C# API ********* The Libidn library has been ported to the C# language. The port reside in the top-level ‘csharp/’ directory. Currently, no further documentation about the implementation or the API is available. However, the C# port was based on the Java port, and the API is exactly the same as in the Java version. The help files for the Java API may thus be useful.  File: libidn.info, Node: Acknowledgements, Next: History, Prev: C# API, Up: Top 14 Acknowledgements ******************* The punycode implementation was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Some functions for dealing with Unicode (see nfkc.c and toutf8.c) were borrowed from GLib, downloaded from . The manual borrowed text from Libgcrypt by Werner Koch. Inspiration for many things that, consciously or not, have gone into this package is due to a number of free software package that the author has been exposed to. The author wishes to acknowledge the free software community in general, for giving an example on what role software development can play in the modern society. Several people reported bugs, sent patches or suggested improvements, see the file THANKS in the top-level directory of the source code.  File: libidn.info, Node: History, Next: PR29 discussion, Prev: Acknowledgements, Up: Top 15 History ********** The complete history of user visible changes is stored in the file ‘NEWS’ in the top-level directory of the source code tree. The complete history of modifications to each file is stored in the file ‘ChangeLog’ in the same directory. This section contain a condensed version of that information, in the form of “milestones†for the project. Stringprep implementation. Version 0.0.0 released on 2002-11-05. IDNA and Punycode implementations, part of the GNU project. Version 0.1.0 released on 2003-01-05. Uses official IDNA ACE prefix ‘xn--’. Version 0.1.7 released on 2003-02-12. Command line interface. Version 0.1.11 released on 2003-02-26. GNU Libc add-on proposed. Version 0.1.12 released on 2003-03-06. Interoperability testing during IDNConnect. Version 0.3.1 released on 2003-10-02. TLD restriction testing. Version 0.4.0 released on 2004-02-28. GNU Libc add-on integrated. Version 0.4.1 released on 2004-03-08. Native Java implementation. Version 0.4.2-0.4.9 released between 2004-03-20 and 2004-06-11. PR-29 functions for “problem sequencesâ€. Version 0.5.0 released on 2004-06-26. Many small portability fixes and wider use. Version 0.5.1 through 0.5.20, released between 2004-07-09 and 2005-10-23. Native C# implementation. Version 0.6.0 released on 2005-12-03. Windows support through cross-compilation. Version 0.6.1 released on 2006-01-20. Library declared stable by releasing v1.0. Version 1.0 released on 2007-07-31.  File: libidn.info, Node: PR29 discussion, Next: On Label Separators, Prev: History, Up: Top Appendix A PR29 discussion ************************** If you wish to experiment with a modified Unicode NFKC implementation according to the PR29 proposal, you may find the following bug report useful. However, I have not verified that the suggested modifications are correct. For reference, I’m including my response to the report as well. From: Rick McGowan Subject: Possible bug and status of PR 29 change(s) To: bug-libidn@gnu.org Date: Wed, 27 Oct 2004 14:49:17 -0700 Hello. On behalf of the Unicode Consortium editorial committee, I would like to find out more information about the PR 29 fixes, if any, and functions in Libidn. Your implementation was listed in the text of PR29 as needing investigation, so I am following up on several implementations. The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new draft of UAX #15 has been issued. I have looked at Libidn 0.5.8 (today), and there may still be a possible bug in NFKC.java and nfkc.c. ------------------------------------------------------ 1. In NFKC.java, this line in canonicalOrdering(): if (i > 0 && (last_cc == 0 || last_cc != cc)) { should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc)) { but I'm not sure of the sense of this comparison. ------------------------------------------------------ 2. In nfkc.c, function _g_utf8_normalize_wc() has this code: if (i > 0 && (last_cc == 0 || last_cc != cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { This appears to have the same bug as the current Python implementation (in Python 2.3.4). The code should be checking, as per new rule D2 UAX #15 update, that the next combining character is the same or HIGHER than the current one. It now checks to see if it's non-zero and not equal. The above line(s) should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { but I'm not sure of the sense of the comparison (< or > or <=?) here. In the text of PR29, I will be marking Libidn as "needs change" and adding the version number that I checked. If any further change is made, please let me know the release version, and I'll update again. Regards, Rick McGowan From: Simon Josefsson Subject: Re: Possible bug and status of PR 29 change(s) To: Rick McGowan Cc: bug-libidn@gnu.org Date: Thu, 28 Oct 2004 09:47:47 +0200 Rick McGowan writes: > Hello. On behalf of the Unicode Consortium editorial committee, I would > like to find out more information about the PR 29 fixes, if any, and > functions in Libidn. Your implementation was listed in the text of PR29 as > needing investigation, so I am following up on several implementations. > > The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new > draft of UAX #15 has been issued. > > I have looked at Libidn 0.5.8 (today), and there may still be a possible > bug in NFKC.java and nfkc.c. Hello Rick. I believe the current behavior is intentional. Libidn do not aim to implement latest-and-greatest NFKC, it aim to implement the NFKC functionality required for StringPrep and IDN. As you may know, StringPrep/IDN reference Unicode 3.2.0, and explicitly says any later changes (which I consider PR29 as) do not apply. In fact, I believe that would I incorporate the changes suggested in PR29, I would in fact be violating the IDN specifications. Thanks for looking into the code and finding the place where the change could be made. I'll see if I can mention this in the manual somewhere, for technically interested readers. Regards, Simon  File: libidn.info, Node: On Label Separators, Next: Copying Information, Prev: PR29 discussion, Up: Top Appendix B On Label Separators ****************************** Some strings contains characters whose NFKC normalized form contain the ASCII dot (0x2E, “.â€). Examples of these characters are U+2024 (ONE DOT LEADER) and U+248C (DIGIT FIVE FULL STOP). The strings have the interesting property that their IDNA ToASCII output will contain embedded dots. For example: ToASCII (hi U+248C com) = hi5.com ToASCII (räksmörgÃ¥s U+2024 com) = xn--rksmrgs.com-l8as9u This demonstrate the two general cases: The first where the ASCII dot is part of an output that do not begin with the IDN prefix ‘xn--’. The second example illustrate when the dot is part of IDN prefixed with ‘xn--’. The input strings are, from the DNS point of view, a single label. The IDNA algorithm translate one label at a time. Thus, the output is expected to be only one label. What is important here is to make sure the DNS resolver receives the correct query. The DNS protocol does not use the dot to delimit labels on the wire, rather it uses length-value pairs. Thus the correct query would be for ‘{7}hi5.com’ and ‘{22}xn--rksmrgs.com-l8as9u’ respectively. Some implementations (1) have decided that these inputs strings are potentially confusing for the user. The string ‘hi U+248C com’ looks like ‘hi5.com’ on systems that support Unicode properly. These implementations do not follow RFC 3490. They yield: ToASCII (hi U+248C com) = hi5.com ToASCII (räksmörgÃ¥s U+2024 com) = xn--rksmrgs-5wao1o.com The DNS query they perform are ‘{3}hi5{3}com’ and ‘{18}xn--rksmrgs-5wao1o{3}com’ respectively. Arguably, this leads to a better user experience, and suggests that the IDNA specification is sub-optimal in this area. B.1 Recommended Workaround ========================== It has been suggested to normalize the entire input string using NFKC before passing it to IDNA ToASCII. You may use ‘stringprep_utf8_nfkc_normalize’ or ‘stringprep_ucs4_nfkc_normalize’. This appears to lead to similar behaviour as IE/Firefox, which would avoid the problem, but this needs to be confirmed. Feel free to discuss the issue with us. Alternative workarounds are being considered. Eventually Libidn may implement a new flag to the ‘idna_*’ functions that implements a recommended way to work around this problem. ---------- Footnotes ---------- (1) Notably Microsoft’s Internet Explorer and Mozilla’s Firefox, but not Apple’s Safari.  File: libidn.info, Node: Copying Information, Next: Function and Variable Index, Prev: On Label Separators, Up: Top Appendix C Copying Information ****************************** * Menu: * GNU Free Documentation License:: License for copying this manual.  File: libidn.info, Node: GNU Free Documentation License, Up: Copying Information C.1 GNU Free Documentation License ================================== Version 1.3, 3 November 2008 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document “free†in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of “copyleftâ€, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Documentâ€, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “youâ€. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A “Modified Version†of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A “Secondary Section†is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The “Invariant Sections†are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The “Cover Texts†are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A “Transparent†copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent†is called “Opaqueâ€. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The “Title Page†means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page†means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text. The “publisher†means any person or entity that distributes copies of the Document to the public. A section “Entitled XYZ†means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgementsâ€, “Dedicationsâ€, “Endorsementsâ€, or “Historyâ€.) To “Preserve the Title†of such a section when you modify the Document means that it remains a section “Entitled XYZ†according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled “Historyâ€, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History†in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History†section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled “Acknowledgements†or “Dedicationsâ€, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled “Endorsementsâ€. Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled “Endorsements†or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles. You may add a section Entitled “Endorsementsâ€, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled “History†in the various original documents, forming one section Entitled “Historyâ€; likewise combine any sections Entitled “Acknowledgementsâ€, and any sections Entitled “Dedicationsâ€. You must delete all sections Entitled “Endorsements.†6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate†if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled “Acknowledgementsâ€, “Dedicationsâ€, or “Historyâ€, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See . Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version†applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING “Massive Multiauthor Collaboration Site†(or “MMC Siteâ€) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration†(or “MMCâ€) contained in the site means any set of copyrightable works thus published on the MMC site. “CC-BY-SA†means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. “Incorporate†means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is “eligible for relicensing†if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents ==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.†line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.  File: libidn.info, Node: Function and Variable Index, Next: Concept Index, Prev: Copying Information, Up: Top Function and Variable Index *************************** [index] * Menu: * idna-to-ascii: Emacs API. (line 64) * idna-to-unicode: Emacs API. (line 69) * idna_strerror: IDNA Functions. (line 309) * idna_to_ascii_4i: IDNA Functions. (line 66) * idna_to_ascii_4z: IDNA Functions. (line 150) * idna_to_ascii_8z: IDNA Functions. (line 168) * idna_to_ascii_lz: IDNA Functions. (line 186) * idna_to_unicode_44i: IDNA Functions. (line 104) * idna_to_unicode_4z4z: IDNA Functions. (line 208) * idna_to_unicode_8z4z: IDNA Functions. (line 227) * idna_to_unicode_8z8z: IDNA Functions. (line 246) * idna_to_unicode_8zlz: IDNA Functions. (line 265) * idna_to_unicode_lzlz: IDNA Functions. (line 285) * idn_free: Memory handling under Windows. (line 30) * pr29_4: PR29 Functions. (line 54) * pr29_4z: PR29 Functions. (line 74) * pr29_8z: PR29 Functions. (line 89) * pr29_strerror: PR29 Functions. (line 108) * punycode-decode: Emacs API. (line 38) * punycode-encode: Emacs API. (line 34) * punycode_decode: Punycode Functions. (line 98) * punycode_encode: Punycode Functions. (line 48) * punycode_strerror: Punycode Functions. (line 144) * stringprep: Stringprep Functions. (line 145) * stringprep_4i: Stringprep Functions. (line 54) * stringprep_4zi: Stringprep Functions. (line 114) * stringprep_check_version: Version Check. (line 15) * stringprep_convert: Utility Functions. (line 170) * stringprep_iscsi: Stringprep Functions. (line 277) * stringprep_locale_charset: Utility Functions. (line 145) * stringprep_locale_to_utf8: Utility Functions. (line 187) * stringprep_nameprep_no_unassigned: Stringprep Functions. (line 266) * stringprep_plain: Stringprep Functions. (line 286) * stringprep_profile: Stringprep Functions. (line 180) * stringprep_strerror: Stringprep Functions. (line 214) * stringprep_ucs4_nfkc_normalize: Utility Functions. (line 101) * stringprep_ucs4_to_utf8: Utility Functions. (line 54) * stringprep_unichar_to_utf8: Utility Functions. (line 24) * stringprep_utf8_nfkc_normalize: Utility Functions. (line 116) * stringprep_utf8_to_locale: Utility Functions. (line 199) * stringprep_utf8_to_ucs4: Utility Functions. (line 77) * stringprep_utf8_to_unichar: Utility Functions. (line 38) * stringprep_xmpp_nodeprep: Stringprep Functions. (line 295) * stringprep_xmpp_resourceprep: Stringprep Functions. (line 304) * tld_check_4: TLD Functions. (line 179) * tld_check_4t: TLD Functions. (line 42) * tld_check_4tz: TLD Functions. (line 66) * tld_check_4z: TLD Functions. (line 208) * tld_check_8z: TLD Functions. (line 234) * tld_check_lz: TLD Functions. (line 262) * tld_default_table: TLD Functions. (line 158) * tld_get_4: TLD Functions. (line 90) * tld_get_4z: TLD Functions. (line 108) * tld_get_table: TLD Functions. (line 137) * tld_get_z: TLD Functions. (line 122) * tld_strerror: TLD Functions. (line 294)  File: libidn.info, Node: Concept Index, Prev: Function and Variable Index, Up: Top Concept Index ************* [index] * Menu: * AIX: Supported Platforms. (line 74) * ARM: Supported Platforms. (line 128) * Autoconf tests: Autoconf tests. (line 6) * command line: Invoking idn. (line 5) * Compiling your application: Building the source. (line 6) * Configure tests: Autoconf tests. (line 6) * Contributing: Contributing. (line 6) * de-allocation: Memory handling under Windows. (line 6) * Debian: Supported Platforms. (line 10) * Debian <1>: Supported Platforms. (line 22) * Download: Downloading and Installing. (line 6) * Examples: Examples. (line 6) * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * free: Memory handling under Windows. (line 6) * FreeBSD: Supported Platforms. (line 110) * Hacking: Contributing. (line 6) * heap memory: Memory handling under Windows. (line 6) * HP-UX: Supported Platforms. (line 82) * IBM: Supported Platforms. (line 136) * idn: Invoking idn. (line 6) * IDNA Functions: IDNA Functions. (line 6) * Installation: Downloading and Installing. (line 6) * invoking idn: Invoking idn. (line 6) * IRIX: Supported Platforms. (line 70) * MacOS X: Supported Platforms. (line 116) * MacOS X <1>: Supported Platforms. (line 120) * Mandrake: Supported Platforms. (line 66) * Memory handling: Memory handling under Windows. (line 6) * Microsoft: Supported Platforms. (line 132) * mingw32: Supported Platforms. (line 132) * Motorola Coldfire: Supported Platforms. (line 124) * NetBSD: Supported Platforms. (line 100) * OpenBSD: Supported Platforms. (line 105) * OpenPower 720: Supported Platforms. (line 45) * OS/2: Supported Platforms. (line 136) * PR29 Functions: PR29 Functions. (line 6) * Punycode Functions: Punycode Functions. (line 6) * RedHat: Supported Platforms. (line 49) * RedHat <1>: Supported Platforms. (line 54) * RedHat <2>: Supported Platforms. (line 62) * RedHat Advanced Server: Supported Platforms. (line 58) * Reporting Bugs: Bug Reports. (line 6) * Solaris: Supported Platforms. (line 87) * Solaris <1>: Supported Platforms. (line 91) * Solaris <2>: Supported Platforms. (line 95) * Stringprep Functions: Stringprep Functions. (line 6) * SuSE: Supported Platforms. (line 31) * SuSE Linux: Supported Platforms. (line 36) * SuSE Linux <1>: Supported Platforms. (line 40) * SuSE Linux <2>: Supported Platforms. (line 45) * TLD Functions: TLD Functions. (line 6) * Tru64: Supported Platforms. (line 26) * uClibc: Supported Platforms. (line 124) * uClinux: Supported Platforms. (line 124) * Utility Functions: Utility Functions. (line 6) * Windows: Supported Platforms. (line 78) * Windows <1>: Supported Platforms. (line 132)  Tag Table: Node: Top1020 Node: Introduction2725 Node: Getting Started5037 Node: Features6148 Node: Library Overview7502 Node: Supported Platforms8300 Node: Getting help12092 Node: Commercial Support12555 Node: Downloading and Installing13496 Node: Installing under Windows15861 Node: Bug Reports17265 Node: Contributing18671 Node: Preparation20674 Node: Header21396 Node: Initialization24507 Node: Version Check24704 Ref: stringprep_check_version25243 Node: Building the source26218 Node: Autoconf tests28140 Node: Memory handling under Windows30541 Ref: idn_free31501 Node: Utility Functions32059 Ref: stringprep_unichar_to_utf832731 Ref: stringprep_utf8_to_unichar33163 Ref: stringprep_ucs4_to_utf833765 Ref: stringprep_utf8_to_ucs434650 Ref: stringprep_ucs4_nfkc_normalize35475 Ref: stringprep_utf8_nfkc_normalize35972 Ref: stringprep_locale_charset37143 Ref: stringprep_convert38320 Ref: stringprep_locale_to_utf838889 Ref: stringprep_utf8_to_locale39278 Node: Stringprep Functions39637 Ref: stringprep_4i41564 Ref: stringprep_4zi44299 Ref: stringprep45545 Ref: stringprep_profile46905 Ref: stringprep_strerror48039 Node: Punycode Functions51731 Ref: punycode_encode53500 Ref: punycode_decode56069 Ref: punycode_strerror58238 Node: IDNA Functions59007 Ref: idna_to_ascii_4i61629 Ref: idna_to_unicode_44i63278 Ref: idna_to_ascii_4z65261 Ref: idna_to_ascii_8z65867 Ref: idna_to_ascii_lz66467 Ref: idna_to_unicode_4z4z67214 Ref: idna_to_unicode_8z4z67878 Ref: idna_to_unicode_8z8z68536 Ref: idna_to_unicode_8zlz69188 Ref: idna_to_unicode_lzlz69929 Ref: idna_strerror70757 Node: TLD Functions72373 Ref: tld_check_4t74034 Ref: tld_check_4tz74967 Ref: tld_get_475853 Ref: tld_get_4z76375 Ref: tld_get_z76801 Ref: tld_get_table77318 Ref: tld_default_table78108 Ref: tld_check_478855 Ref: tld_check_4z80156 Ref: tld_check_8z81373 Ref: tld_check_lz82691 Ref: tld_strerror84080 Node: PR29 Functions84905 Ref: pr29_487201 Ref: pr29_4z87842 Ref: pr29_8z88376 Ref: pr29_strerror89049 Node: Examples89772 Node: Example 190225 Node: Example 292035 Node: Example 397815 Node: Example 499572 Node: Example 5101336 Node: Invoking idn104060 Node: Emacs API110895 Node: Java API113713 Node: C# API118885 Node: Acknowledgements119354 Node: History120456 Node: PR29 discussion122119 Node: On Label Separators125989 Ref: On Label Separators-Footnote-1128509 Node: Copying Information128608 Node: GNU Free Documentation License128874 Node: Function and Variable Index154193 Node: Concept Index159179  End Tag Table  Local Variables: coding: utf-8 End: libidn-1.38/doc/stamp-vti0000644000000000000000000000013314076273771012224 00000000000000@set UPDATED 22 July 2021 @set UPDATED-MONTH July 2021 @set EDITION 1.38 @set VERSION 1.38 libidn-1.38/doc/reference/0000755000000000000000000000000014076274121012364 500000000000000libidn-1.38/doc/reference/libidn-overrides.txt0000644000000000000000000000000014076273771016306 00000000000000libidn-1.38/doc/reference/Makefile.in0000644000000000000000000023402214076273731014362 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- mode: makefile -*- # # gtk-doc.make - make rules for gtk-doc # Copyright (C) 2003 James Henstridge # 2004-2007 Damon Chaplin # 2007-2017 Stefan Sauer # # 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 3 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, see . #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/reference ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.xml CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.xml.in \ $(top_srcdir)/build-aux/test-driver $(top_srcdir)/gtk-doc.make DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # The name of the module, e.g. 'glib'. DOC_MODULE = $(PACKAGE) # Uncomment for versioned docs and specify the version of the module, e.g. '2'. #DOC_MODULE_VERSION=2 # The top-level XML file. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml # Directories containing the source code. # gtk-doc will search all .c and .h files beneath these paths # for inline comments documenting functions and macros. # e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk DOC_SOURCE_DIR = $(top_srcdir)/lib # Extra options to pass to gtkdoc-scangobj. Normally not needed. SCANGOBJ_OPTIONS = # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS = --ignore-decorators=IDNAPI # Extra options to supply to gtkdoc-mkdb # e.g. MKDB_OPTIONS=--xml-mode --output-format=xml MKDB_OPTIONS = --xml-mode --output-format=xml # Extra options to supply to gtkdoc-mkhtml MKHTML_OPTIONS = # Extra options to supply to gtkdoc-fixref. Normally not needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS = # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c HFILE_GLOB = $(top_srcdir)/lib/*.h CFILE_GLOB = $(top_srcdir)/lib/*.c # Extra header to include when scanning, which are not under DOC_SOURCE_DIR # e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h EXTRA_HFILES = # Header files or dirs to ignore when scanning. Use base file/dir names # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code IGNORE_HFILES = gunibreak.h gunicomp.h gunidecomp.h idn-int.h gl rfc3454.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES = ../libidn-components.png # Extra files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.xml building.xml changes-2.0.xml content_files = # Files where gtk-doc abbreviations (#GtkWidget) are expanded # e.g. expand_content_files=running.xml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS = GTKDOC_LIBS = @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt EXTRA_DIST = \ $(HTML_IMAGES) \ $(SETUP_FILES) DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).actions \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ gtkdoc-check.test libidn-overrides.txt libidn-decl.txt \ libidn-decl-list.txt libidn-sections.txt libidn.pdf @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # This includes the standard gtk-doc make rules, copied by gtkdocize. # Comment this out if you don't want 'make check' to test you doc status # and run some sanity checks @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) @ENABLE_GTK_DOC_TRUE@TESTS = $(GTKDOC_CHECK) all: all-am .SUFFIXES: .SUFFIXES: .log .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/reference/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/reference/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_srcdir)/gtk-doc.make $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: check-am install-am install-strip .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool clean-local cscopelist-am ctags-am \ dist-hook distclean distclean-generic distclean-libtool \ distclean-local distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true $(DOC_MAIN_SGML_FILE): sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ test -f $$file && cp $$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs -include $(top_srcdir)/git.mk html-build.stamp: $(top_builddir)/.version pdf-build.stamp: $(top_builddir)/.version CLEANFILES ?= clean-local: clean-local-junk .PHONY: clean-local-junk clean-local-junk: -rm -rf xml html tmpl dist-hook-local: all-local # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/doc/reference/version.xml.in0000644000000000000000000000001214053001337015101 00000000000000@VERSION@ libidn-1.38/doc/reference/libidn-sections.txt0000644000000000000000000000304014076274121016130 00000000000000
idn-free IDNAPI
idna IDNAPI Idna_rc Idna_flags IDNA_ACE_PREFIX idna_strerror idna_to_ascii_4i idna_to_unicode_44i idna_to_ascii_4z idna_to_ascii_8z idna_to_ascii_lz idna_to_unicode_4z4z idna_to_unicode_8z4z idna_to_unicode_8z8z idna_to_unicode_8zlz idna_to_unicode_lzlz
pr29 IDNAPI Pr29_rc pr29_strerror pr29_4 pr29_4z pr29_8z
punycode IDNAPI Punycode_status punycode_strerror punycode_uint punycode_encode punycode_decode
stringprep IDNAPI STRINGPREP_VERSION Stringprep_rc Stringprep_profile_flags Stringprep_profile_steps STRINGPREP_MAX_MAP_CHARS Stringprep_table_element Stringprep_table Stringprep_profile Stringprep_profiles stringprep_nameprep stringprep_nameprep_no_unassigned stringprep_plain stringprep_kerberos5 stringprep_xmpp_nodeprep stringprep_xmpp_resourceprep stringprep_iscsi stringprep_4i stringprep_4zi stringprep stringprep_profile stringprep_strerror stringprep_check_version stringprep_unichar_to_utf8 stringprep_utf8_to_unichar stringprep_utf8_to_ucs4 stringprep_ucs4_to_utf8 stringprep_utf8_nfkc_normalize stringprep_ucs4_nfkc_normalize stringprep_locale_charset stringprep_convert stringprep_locale_to_utf8 stringprep_utf8_to_locale
tld IDNAPI Tld_table_element Tld_table Tld_rc tld_strerror tld_get_4 tld_get_4z tld_get_z tld_get_table tld_default_table tld_check_4t tld_check_4tz tld_check_4 tld_check_4z tld_check_8z tld_check_lz
libidn-1.38/doc/reference/html/0000755000000000000000000000000014076274121013330 500000000000000libidn-1.38/doc/reference/html/index.html0000644000000000000000000000474214076274121015254 00000000000000 GNU Libidn API Reference Manual: GNU Libidn API Reference Manual

for GNU Libidn 1.38 . The latest version of this documentation can be found on-line at https://www.gnu.org/software/libidn/reference/.


GNU Libidn API Reference Manual
idna.h — IDNA-related functions
stringprep.h — Stringprep-related functions
punycode.h — Punycode-related functions
pr29.h — PR29-related functions
tld.h — TLD-related functions
idn-free.h — Memory deallocation functions
API Index
Index of deprecated API
libidn-1.38/doc/reference/html/libidn-idna.h.html0000644000000000000000000011673014076274121016546 00000000000000 idna.h: GNU Libidn API Reference Manual

idna.h

idna.h — IDNA-related functions

Functions

const char * idna_strerror ()
int idna_to_ascii_4i ()
int idna_to_unicode_44i ()
int idna_to_ascii_4z ()
int idna_to_ascii_8z ()
int idna_to_ascii_lz ()
int idna_to_unicode_4z4z ()
int idna_to_unicode_8z4z ()
int idna_to_unicode_8z8z ()
int idna_to_unicode_8zlz ()
int idna_to_unicode_lzlz ()

Types and Values

#define IDNAPI
enum Idna_rc
enum Idna_flags
#define IDNA_ACE_PREFIX

Description

IDNA-related functions.

Functions

idna_strerror ()

const char *
idna_strerror (Idna_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

IDNA_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. IDNA_STRINGPREP_ERROR: Error during string preparation. IDNA_PUNYCODE_ERROR: Error during punycode operation. IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). IDNA_INVALID_LENGTH: The final output string is not within the (inclusive) range 1 to 63 characters. IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix (for ToUnicode). IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output string does not equal the input. IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for ToASCII). IDNA_ICONV_ERROR: Character encoding conversion error. IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a fatal error). IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used internally in libc).

Parameters

rc

an Idna_rc return code.

 

Returns

Returns a pointer to a statically allocated string containing a description of the error with the return code rc .


idna_to_ascii_4i ()

int
idna_to_ascii_4i (const uint32_t *in,
                  size_t inlen,
                  char *out,
                  int flags);

The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels.

It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific.

The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition.

ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once.

Parameters

in

input array with unicode code points.

 

inlen

length of input array with unicode code points.

 

out

output zero terminated string that must have room for at least 63 characters plus the terminating zero.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns 0 on success, or an Idna_rc error code.


idna_to_unicode_44i ()

int
idna_to_unicode_44i (const uint32_t *in,
                     size_t inlen,
                     uint32_t *out,
                     size_t *outlen,
                     int flags);

The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered.

ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step.

The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used.

The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points.

Parameters

in

input array with unicode code points.

 

inlen

length of input array with unicode code points.

 

out

output array with unicode code points.

 

outlen

on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns Idna_rc error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard.


idna_to_ascii_4z ()

int
idna_to_ascii_4z (const uint32_t *input,
                  char **output,
                  int flags);

Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero terminated input Unicode string.

 

output

pointer to newly allocated output string.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_ascii_8z ()

int
idna_to_ascii_8z (const char *input,
                  char **output,
                  int flags);

Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero terminated input UTF-8 string.

 

output

pointer to newly allocated output string.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_ascii_lz ()

int
idna_to_ascii_lz (const char *input,
                  char **output,
                  int flags);

Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero terminated input string encoded in the current locale's character set.

 

output

pointer to newly allocated output string.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_unicode_4z4z ()

int
idna_to_unicode_4z4z (const uint32_t *input,
                      uint32_t **output,
                      int flags);

Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero-terminated Unicode string.

 

output

pointer to newly allocated output Unicode string.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_unicode_8z4z ()

int
idna_to_unicode_8z4z (const char *input,
                      uint32_t **output,
                      int flags);

Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero-terminated UTF-8 string.

 

output

pointer to newly allocated output Unicode string.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_unicode_8z8z ()

int
idna_to_unicode_8z8z (const char *input,
                      char **output,
                      int flags);

Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero-terminated UTF-8 string.

 

output

pointer to newly allocated output UTF-8 string.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_unicode_8zlz ()

int
idna_to_unicode_8zlz (const char *input,
                      char **output,
                      int flags);

Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero-terminated UTF-8 string.

 

output

pointer to newly allocated output string encoded in the current locale's character set.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.


idna_to_unicode_lzlz ()

int
idna_to_unicode_lzlz (const char *input,
                      char **output,
                      int flags);

Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

Parameters

input

zero-terminated string encoded in the current locale's character set.

 

output

pointer to newly allocated output string encoded in the current locale's character set.

 

flags

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

 

Returns

Returns IDNA_SUCCESS on success, or error code.

Types and Values

IDNAPI

#define             IDNAPI

Symbol holding shared library API visibility decorator.

This is used internally by the library header file and should never be used or modified by the application.

https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html


enum Idna_rc

Enumerated return codes of idna_to_ascii_4i(), idna_to_unicode_44i() functions (and functions derived from those functions). The value 0 is guaranteed to always correspond to success.

Members

IDNA_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

 

IDNA_STRINGPREP_ERROR

Error during string preparation.

 

IDNA_PUNYCODE_ERROR

Error during punycode operation.

 

IDNA_CONTAINS_NON_LDH

For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters.

 

IDNA_CONTAINS_LDH

Same as IDNA_CONTAINS_NON_LDH , for compatibility with typo in earlier versions.

 

IDNA_CONTAINS_MINUS

For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D).

 

IDNA_INVALID_LENGTH

The final output string is not within the (inclusive) range 1 to 63 characters.

 

IDNA_NO_ACE_PREFIX

The string does not contain the ACE prefix (for ToUnicode).

 

IDNA_ROUNDTRIP_VERIFY_ERROR

The ToASCII operation on output string does not equal the input.

 

IDNA_CONTAINS_ACE_PREFIX

The input contains the ACE prefix (for ToASCII).

 

IDNA_ICONV_ERROR

Character encoding conversion error.

 

IDNA_MALLOC_ERROR

Could not allocate buffer (this is typically a fatal error).

 

IDNA_DLOPEN_ERROR

Could not dlopen the libcidn DSO (only used internally in libc).

 

enum Idna_flags

Flags to pass to idna_to_ascii_4i(), idna_to_unicode_44i() etc.

Members

IDNA_ALLOW_UNASSIGNED

Don't reject strings containing unassigned Unicode code points.

 

IDNA_USE_STD3_ASCII_RULES

Validate strings according to STD3 rules (i.e., normal host name rules).

 

IDNA_ACE_PREFIX

#  define IDNA_ACE_PREFIX "xn--"

The IANA allocated prefix to use for IDNA. "xn--"

libidn-1.38/doc/reference/html/right-insensitive.png0000644000000000000000000000056514076274121017437 00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEå $$ñا IDAT8ËÍ’±JÃ`…¿ ‚“‹³«/ S’_$ÄÁÁAqrÐÙW(>€“à‚®©“m¥"]\œ„è(‘49.NÚdÒ3¸ß9Ü{á¯eM#MSI‡Î¹·E¯iHz|3{̲l½3 ,K˜k’ž†ÃáV'@EŸEQlwÀŠçyišî·Äqüçù‘™]KÀíh4:mµÄ¦²,;“t˜¤sç\aƒÆR5/¬7'¹W×õp”’Žs×­I’,Kº1³=àËÌÂ0´j0Wg³ÙØ>€Ý ¦­¯PUÕýïð»¤0 §]?qCÒ«™ùιgþ½~œÉkÄAâ…_IEND®B`‚libidn-1.38/doc/reference/html/api-index-full.html0000644000000000000000000004333714076274121016766 00000000000000 API Index: GNU Libidn API Reference Manual

API Index

I

IDNAPI, macro in tld.h
IDNA_ACE_PREFIX, macro in idna.h
Idna_flags, enum in idna.h
Idna_rc, enum in idna.h
idna_strerror, function in idna.h
idna_to_ascii_4i, function in idna.h
idna_to_ascii_4z, function in idna.h
idna_to_ascii_8z, function in idna.h
idna_to_ascii_lz, function in idna.h
idna_to_unicode_44i, function in idna.h
idna_to_unicode_4z4z, function in idna.h
idna_to_unicode_8z4z, function in idna.h
idna_to_unicode_8z8z, function in idna.h
idna_to_unicode_8zlz, function in idna.h
idna_to_unicode_lzlz, function in idna.h
stringprep, function in stringprep.h
stringprep_4i, function in stringprep.h
stringprep_4zi, function in stringprep.h
stringprep_check_version, function in stringprep.h
stringprep_convert, function in stringprep.h
stringprep_iscsi, macro in stringprep.h
stringprep_kerberos5, macro in stringprep.h
stringprep_locale_charset, function in stringprep.h
stringprep_locale_to_utf8, function in stringprep.h
STRINGPREP_MAX_MAP_CHARS, macro in stringprep.h
stringprep_nameprep, macro in stringprep.h
stringprep_nameprep_no_unassigned, macro in stringprep.h
stringprep_plain, macro in stringprep.h
Stringprep_profile, typedef in stringprep.h
stringprep_profile, function in stringprep.h
Stringprep_profiles, struct in stringprep.h
Stringprep_profile_flags, enum in stringprep.h
Stringprep_profile_steps, enum in stringprep.h
Stringprep_rc, enum in stringprep.h
stringprep_strerror, function in stringprep.h
Stringprep_table, struct in stringprep.h
Stringprep_table_element, struct in stringprep.h
stringprep_ucs4_nfkc_normalize, function in stringprep.h
stringprep_ucs4_to_utf8, function in stringprep.h
stringprep_unichar_to_utf8, function in stringprep.h
stringprep_utf8_nfkc_normalize, function in stringprep.h
stringprep_utf8_to_locale, function in stringprep.h
stringprep_utf8_to_ucs4, function in stringprep.h
stringprep_utf8_to_unichar, function in stringprep.h
STRINGPREP_VERSION, macro in stringprep.h
stringprep_xmpp_nodeprep, macro in stringprep.h
stringprep_xmpp_resourceprep, macro in stringprep.h

P

pr29_4, function in pr29.h
pr29_4z, function in pr29.h
pr29_8z, function in pr29.h
Pr29_rc, enum in pr29.h
pr29_strerror, function in pr29.h
punycode_decode, function in punycode.h
punycode_encode, function in punycode.h
Punycode_status, enum in punycode.h
punycode_strerror, function in punycode.h
punycode_uint, typedef in punycode.h

T

tld_check_4, function in tld.h
tld_check_4t, function in tld.h
tld_check_4tz, function in tld.h
tld_check_4z, function in tld.h
tld_check_8z, function in tld.h
tld_check_lz, function in tld.h
tld_default_table, function in tld.h
tld_get_4, function in tld.h
tld_get_4z, function in tld.h
tld_get_table, function in tld.h
tld_get_z, function in tld.h
Tld_rc, enum in tld.h
tld_strerror, function in tld.h
Tld_table, struct in tld.h
Tld_table_element, struct in tld.h
libidn-1.38/doc/reference/html/api-index-deprecated.html0000644000000000000000000000301414076274121020110 00000000000000 Index of deprecated API: GNU Libidn API Reference Manual

Index of deprecated API

libidn-1.38/doc/reference/html/libidn-idn-free.h.html0000644000000000000000000000635114076274121017321 00000000000000 idn-free.h: GNU Libidn API Reference Manual

idn-free.h

idn-free.h — Memory deallocation functions

Types and Values

#define IDNAPI

Description

Memory deallocation functions.

Functions

Types and Values

IDNAPI

#define             IDNAPI

Symbol holding shared library API visibility decorator.

This is used internally by the library header file and should never be used or modified by the application.

https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html

libidn-1.38/doc/reference/html/libidn.devhelp20000644000000000000000000004033514076274121016151 00000000000000 libidn-1.38/doc/reference/html/left-insensitive.png0000644000000000000000000000061314076274121017246 00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEå $$ñا IDAT8ËÍ’­NQ…¿éö†…@¡p üdsÛÀÖ`*š4Á@ò„W@ A!ÈÔ†@6Ü^ƒ 5hxèIH R`sQpäÌ™339þBÊó|Ês¤ªKEQTÛíöK°@·ÛÎià¦^¯Ï~îWʆ½÷‹ÀÕûðå`0˜åTJ6·Tõ˜‘cYn6›AÞû Æ€½~¿ß±Ö>}Ç­Žœs;ªº ¨ˆlYkwËÞürˆ¼†ºó£ Þû5U= °/"›ÖÚç  ¬µ‡"ÒuU=ɲlü×ArÎÕDä˜zÃáp5I’ûà4^E+ÀP3Æœçàq_«êp Ì¥iñ¯ðUY¥‚p=#IEND®B`‚libidn-1.38/doc/reference/html/libidn-pr29.h.html0000644000000000000000000003163714076274121016431 00000000000000 pr29.h: GNU Libidn API Reference Manual

pr29.h

pr29.h — PR29-related functions

Functions

const char * pr29_strerror ()
int pr29_4 ()
int pr29_4z ()
int pr29_8z ()

Types and Values

#define IDNAPI
enum Pr29_rc

Description

PR29-related functions.

Functions

pr29_strerror ()

const char *
pr29_strerror (Pr29_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

PR29_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. PR29_PROBLEM: A problem sequence was encountered. PR29_STRINGPREP_ERROR: The character set conversion failed (only for pr29_8z()).

Parameters

rc

an Pr29_rc return code.

 

Returns

Returns a pointer to a statically allocated string containing a description of the error with the return code rc .


pr29_4 ()

int
pr29_4 (const uint32_t *in,
        size_t len);

Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

Parameters

in

input array with unicode code points.

 

len

length of input array with unicode code points.

 

Returns

Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations).


pr29_4z ()

int
pr29_4z (const uint32_t *in);

Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

Parameters

in

zero terminated array of Unicode code points.

 

Returns

Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations).


pr29_8z ()

int
pr29_8z (const char *in);

Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

Parameters

in

zero terminated input UTF-8 string.

 

Returns

Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or PR29_STRINGPREP_ERROR if there was a problem converting the string from UTF-8 to UCS-4.

Types and Values

IDNAPI

#define             IDNAPI

Symbol holding shared library API visibility decorator.

This is used internally by the library header file and should never be used or modified by the application.

https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html


enum Pr29_rc

Enumerated return codes for pr29_4(), pr29_4z(), pr29_8z(). The value 0 is guaranteed to always correspond to success.

Members

PR29_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

 

PR29_PROBLEM

A problem sequence was encountered.

 

PR29_STRINGPREP_ERROR

The character set conversion failed (only for pr29_8z()).

 
libidn-1.38/doc/reference/html/libidn-punycode.h.html0000644000000000000000000004200414076274121017451 00000000000000 punycode.h: GNU Libidn API Reference Manual

punycode.h

punycode.h — Punycode-related functions

Functions

const char * punycode_strerror ()
int punycode_encode ()
int punycode_decode ()

Types and Values

#define IDNAPI
enum Punycode_status
typedef punycode_uint

Description

Punycode-related functions.

Functions

punycode_strerror ()

const char *
punycode_strerror (Punycode_status rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

PUNYCODE_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. PUNYCODE_BAD_INPUT: Input is invalid. PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. PUNYCODE_OVERFLOW: Input needs wider integers to process.

Parameters

rc

an Punycode_status return code.

 

Returns

Returns a pointer to a statically allocated string containing a description of the error with the return code rc .


punycode_encode ()

int
punycode_encode (size_t input_length,
                 const punycode_uint input[],
                 const unsigned char case_flags[],
                 size_t *output_length,
                 char output[]);

Converts a sequence of code points (presumed to be Unicode code points) to Punycode.

Parameters

input_length

The number of code points in the input array and the number of flags in the case_flags array.

 

input

An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values.

 

case_flags

A NULL pointer or an array of boolean values parallel to the input array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If case_flags is a NULL pointer then ASCII letters are left as they are, and other code points are treated as unflagged.

 

output_length

The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output.

 

output

An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the input contains zeros. (Of course the caller can leave room for a terminator and add one if needed.)

 

Returns

The return value can be any of the Punycode_status values defined above except PUNYCODE_BAD_INPUT. If not PUNYCODE_SUCCESS, then output_size and output might contain garbage.


punycode_decode ()

int
punycode_decode (size_t input_length,
                 const char input[],
                 size_t *output_length,
                 punycode_uint output[],
                 unsigned char case_flags[]);

Converts Punycode to a sequence of code points (presumed to be Unicode code points).

Parameters

input_length

The number of ASCII code points in the input array.

 

input

An array of ASCII code points (0..7F).

 

output_length

The caller passes in the maximum number of code points that it can receive into the output array (which is also the maximum number of flags that it can receive into the case_flags array, if case_flags is not a NULL pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied output_length is greater than that.

 

output

An array of code points like the input argument of punycode_encode() (see above).

 

case_flags

A NULL pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the output array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless.

 

Returns

The return value can be any of the Punycode_status values defined above. If not PUNYCODE_SUCCESS, then output_length , output , and case_flags might contain garbage.

Types and Values

IDNAPI

#define             IDNAPI

Symbol holding shared library API visibility decorator.

This is used internally by the library header file and should never be used or modified by the application.

https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html


enum Punycode_status

Enumerated return codes of punycode_encode() and punycode_decode(). The value 0 is guaranteed to always correspond to success.

Members

PUNYCODE_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

 

PUNYCODE_BAD_INPUT

Input is invalid.

 

PUNYCODE_BIG_OUTPUT

Output would exceed the space provided.

 

PUNYCODE_OVERFLOW

Input needs wider integers to process.

 

punycode_uint

  typedef uint32_t punycode_uint;

Unicode code point data type, this is always a 32 bit unsigned integer.

libidn-1.38/doc/reference/html/home.png0000644000000000000000000000040014076274121014700 00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEå $$ñا IDAT8ËÝÒ½ AÅñßž¦f`n v`6`/¶`Y€š˜Ü¡`f&k$,Ëá}˜ˆ ÌüßÀ0ü§bŒ+Ô¸aQW~bæ ËOà e˜{‡y N°Á£üö[LáØÌ}.pÇiÀ­÷¨BzüžÆmm Šoæ·.I]7Ì^[úÃô;%:å†ÁVIEND®B`‚libidn-1.38/doc/reference/html/style.css0000644000000000000000000002725714076274121015137 00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } span.nowrap { white-space: nowrap; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.informaltable table[border="1"], div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.informaltable table[border="1"] td, div.informaltable table th, div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.informaltable table[border="1"] th, div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } pre { line-height: 125%; margin: 0; } td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } .hll { background-color: #ffffcc } .c { color: #408080; font-style: italic } /* Comment */ .err { border: 1px solid #FF0000 } /* Error */ .k { color: #008000; font-weight: bold } /* Keyword */ .o { color: #666666 } /* Operator */ .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ .cm { color: #408080; font-style: italic } /* Comment.Multiline */ .cp { color: #BC7A00 } /* Comment.Preproc */ .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ .c1 { color: #408080; font-style: italic } /* Comment.Single */ .cs { color: #408080; font-style: italic } /* Comment.Special */ .gd { color: #A00000 } /* Generic.Deleted */ .ge { font-style: italic } /* Generic.Emph */ .gr { color: #FF0000 } /* Generic.Error */ .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .gi { color: #00A000 } /* Generic.Inserted */ .go { color: #888888 } /* Generic.Output */ .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .gs { font-weight: bold } /* Generic.Strong */ .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .gt { color: #0044DD } /* Generic.Traceback */ .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .kp { color: #008000 } /* Keyword.Pseudo */ .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .kt { color: #B00040 } /* Keyword.Type */ .m { color: #666666 } /* Literal.Number */ .s { color: #BA2121 } /* Literal.String */ .na { color: #7D9029 } /* Name.Attribute */ .nb { color: #008000 } /* Name.Builtin */ .nc { color: #0000FF; font-weight: bold } /* Name.Class */ .no { color: #880000 } /* Name.Constant */ .nd { color: #AA22FF } /* Name.Decorator */ .ni { color: #999999; font-weight: bold } /* Name.Entity */ .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ .nf { color: #0000FF } /* Name.Function */ .nl { color: #A0A000 } /* Name.Label */ .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ .nt { color: #008000; font-weight: bold } /* Name.Tag */ .nv { color: #19177C } /* Name.Variable */ .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ .w { color: #bbbbbb } /* Text.Whitespace */ .mb { color: #666666 } /* Literal.Number.Bin */ .mf { color: #666666 } /* Literal.Number.Float */ .mh { color: #666666 } /* Literal.Number.Hex */ .mi { color: #666666 } /* Literal.Number.Integer */ .mo { color: #666666 } /* Literal.Number.Oct */ .sa { color: #BA2121 } /* Literal.String.Affix */ .sb { color: #BA2121 } /* Literal.String.Backtick */ .sc { color: #BA2121 } /* Literal.String.Char */ .dl { color: #BA2121 } /* Literal.String.Delimiter */ .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ .s2 { color: #BA2121 } /* Literal.String.Double */ .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ .sh { color: #BA2121 } /* Literal.String.Heredoc */ .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ .sx { color: #008000 } /* Literal.String.Other */ .sr { color: #BB6688 } /* Literal.String.Regex */ .s1 { color: #BA2121 } /* Literal.String.Single */ .ss { color: #19177C } /* Literal.String.Symbol */ .bp { color: #008000 } /* Name.Builtin.Pseudo */ .fm { color: #0000FF } /* Name.Function.Magic */ .vc { color: #19177C } /* Name.Variable.Class */ .vg { color: #19177C } /* Name.Variable.Global */ .vi { color: #19177C } /* Name.Variable.Instance */ .vm { color: #19177C } /* Name.Variable.Magic */ .il { color: #666666 } /* Literal.Number.Integer.Long */libidn-1.38/doc/reference/html/right.png0000644000000000000000000000040514076274121015072 00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEå $$ñا ’IDAT8ËÕÒ¯aÇñ?›M´½IdErš,¾Ù-¸ÑhîAâIl’Í ¯r’äy§ž}¿ç·s¿X6èæ ö!9¢Ÿ#èD‚ Œr$-¬BrÃ$GÒÀ"$”¹;™á‰æŸÍú—WZêä&–!¸cš·±øŠq \`ðÃÔ軀Oä¾ò=QouføòIEND®B`‚libidn-1.38/doc/reference/html/libidn-tld.h.html0000644000000000000000000012063314076274121016413 00000000000000 tld.h: GNU Libidn API Reference Manual

tld.h

tld.h — TLD-related functions

Functions

const char * tld_strerror ()
int tld_get_4 ()
int tld_get_4z ()
int tld_get_z ()
const Tld_table * tld_get_table ()
const Tld_table * tld_default_table ()
int tld_check_4t ()
int tld_check_4tz ()
int tld_check_4 ()
int tld_check_4z ()
int tld_check_8z ()
int tld_check_lz ()

Types and Values

#define IDNAPI
struct Tld_table_element
struct Tld_table
enum Tld_rc

Description

TLD-related functions.

Functions

tld_strerror ()

const char *
tld_strerror (Tld_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

TLD_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. TLD_INVALID: Invalid character found. TLD_NODATA: No input data was provided. TLD_MALLOC_ERROR: Error during memory allocation. TLD_ICONV_ERROR: Character encoding conversion error. TLD_NO_TLD: No top-level domain found in domain string.

Parameters

rc

tld return code

 

Returns

Returns a pointer to a statically allocated string containing a description of the error with the return code rc .


tld_get_4 ()

int
tld_get_4 (const uint32_t *in,
           size_t inlen,
           char **out);

Isolate the top-level domain of in and return it as an ASCII string in out .

Parameters

in

Array of unicode code points to process. Does not need to be zero terminated.

 

inlen

Number of unicode code points.

 

out

Zero terminated ascii result string pointer.

 

Returns

Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.


tld_get_4z ()

int
tld_get_4z (const uint32_t *in,
            char **out);

Isolate the top-level domain of in and return it as an ASCII string in out .

Parameters

in

Zero terminated array of unicode code points to process.

 

out

Zero terminated ascii result string pointer.

 

Returns

Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.


tld_get_z ()

int
tld_get_z (const char *in,
           char **out);

Isolate the top-level domain of in and return it as an ASCII string in out . The input string in may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding.

Parameters

in

Zero terminated character array to process.

 

out

Zero terminated ascii result string pointer.

 

Returns

Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.


tld_get_table ()

const Tld_table *
tld_get_table (const char *tld,
               const Tld_table **tables);

Get the TLD table for a named TLD by searching through the given TLD table array.

Parameters

tld

TLD name (e.g. "com") as zero terminated ASCII byte string.

 

tables

Zero terminated array of Tld_table info-structures for TLDs.

 

Returns

Return structure corresponding to TLD tld by going thru tables , or return NULL if no such structure is found.


tld_default_table ()

const Tld_table *
tld_default_table (const char *tld,
                   const Tld_table **overrides);

Get the TLD table for a named TLD, using the internal defaults, possibly overridden by the (optional) supplied tables.

Parameters

tld

TLD name (e.g. "com") as zero terminated ASCII byte string.

 

overrides

Additional zero terminated array of Tld_table info-structures for TLDs, or NULL to only use library default tables.

 

Returns

Return structure corresponding to TLD tld_str , first looking through overrides then thru built-in list, or NULL if no such structure found.


tld_check_4t ()

int
tld_check_4t (const uint32_t *in,
              size_t inlen,
              size_t *errpos,
              const Tld_table *tld);

Test each of the code points in in for whether or not they are allowed by the data structure in tld , return the position of the first character for which this is not the case in errpos .

Parameters

in

Array of unicode code points to process. Does not need to be zero terminated.

 

inlen

Number of unicode code points.

 

errpos

Position of offending character is returned here.

 

tld

A Tld_table data structure representing the restrictions for which the input should be tested.

 

Returns

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.


tld_check_4tz ()

int
tld_check_4tz (const uint32_t *in,
               size_t *errpos,
               const Tld_table *tld);

Test each of the code points in in for whether or not they are allowed by the data structure in tld , return the position of the first character for which this is not the case in errpos .

Parameters

in

Zero terminated array of unicode code points to process.

 

errpos

Position of offending character is returned here.

 

tld

A Tld_table data structure representing the restrictions for which the input should be tested.

 

Returns

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.


tld_check_4 ()

int
tld_check_4 (const uint32_t *in,
             size_t inlen,
             size_t *errpos,
             const Tld_table **overrides);

Test each of the code points in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides , the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos .

Parameters

in

Array of unicode code points to process. Does not need to be zero terminated.

 

inlen

Number of unicode code points.

 

errpos

Position of offending character is returned here.

 

overrides

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

 

Returns

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.


tld_check_4z ()

int
tld_check_4z (const uint32_t *in,
              size_t *errpos,
              const Tld_table **overrides);

Test each of the code points in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides , the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos .

Parameters

in

Zero-terminated array of unicode code points to process.

 

errpos

Position of offending character is returned here.

 

overrides

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

 

Returns

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.


tld_check_8z ()

int
tld_check_8z (const char *in,
              size_t *errpos,
              const Tld_table **overrides);

Test each of the characters in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides , the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos . Note that the error position refers to the decoded character offset rather than the byte position in the string.

Parameters

in

Zero-terminated UTF8 string to process.

 

errpos

Position of offending character is returned here.

 

overrides

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

 

Returns

Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.


tld_check_lz ()

int
tld_check_lz (const char *in,
              size_t *errpos,
              const Tld_table **overrides);

Test each of the characters in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides , the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos . Note that the error position refers to the decoded character offset rather than the byte position in the string.

Parameters

in

Zero-terminated string in the current locales encoding to process.

 

errpos

Position of offending character is returned here.

 

overrides

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

 

Returns

Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Types and Values

IDNAPI

#define             IDNAPI

Symbol holding shared library API visibility decorator.

This is used internally by the library header file and should never be used or modified by the application.

https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html


struct Tld_table_element

struct Tld_table_element {
    uint32_t start;
    uint32_t end;
};

Interval of valid code points in the TLD.

Members

uint32_t start;

Start of range.

 

uint32_t end;

End of range, end == start if single.

 

struct Tld_table

struct Tld_table {
    const char *name;
    const char *version;
    size_t nvalid;
    const Tld_table_element *valid;
};

List valid code points in a TLD.

Members

const char *name;

TLD name, e.g., "no".

 

const char *version;

Version string from TLD file.

 

size_t nvalid;

Number of entries in data.

 

const Tld_table_element *valid;

Sorted array (of size nvalid ) of valid code points.

 

enum Tld_rc

Enumerated return codes of the TLD checking functions. The value 0 is guaranteed to always correspond to success.

Members

TLD_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

 

TLD_INVALID

Invalid character found.

 

TLD_NODATA

No input data was provided.

 

TLD_MALLOC_ERROR

Error during memory allocation.

 

TLD_ICONV_ERROR

Character encoding conversion error.

 

TLD_NO_TLD

No top-level domain found in domain string.

 

TLD_NOTLD

Same as TLD_NO_TLD , for compatibility with typo in earlier versions.

 
libidn-1.38/doc/reference/html/intro.html0000644000000000000000000001210014076274121015263 00000000000000 GNU Libidn API Reference Manual: GNU Libidn API Reference Manual

GNU Libidn API Reference Manual

idna.h — IDNA-related functions
stringprep.h — Stringprep-related functions
punycode.h — Punycode-related functions
pr29.h — PR29-related functions
tld.h — TLD-related functions
idn-free.h — Memory deallocation functions

GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries.

The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included.

The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call.

The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing.

Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included.

Also included is a command line tool, several self tests, code examples, and more.

The internal layout of the library, and how your application interact with the various parts of the library, are shown in Figure 1, “Components of Libidnâ€.

Figure 1. Components of Libidn

Components of Libidn

libidn-1.38/doc/reference/html/up-insensitive.png0000644000000000000000000000056614076274121016747 00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEå $$ñا IDAT8Ëí’?/QÅÏ™?[êu$¾€V³î›ÑâHTD³ø”ÛˆBM+¡!™ÂÌ<ˆDã+èô[mdÞ\…·bø{º{sÎ/97˜ªSÖÚ£º®»<ìTõ8ŒcÌÉ¿UU­‘¼‡•WÕÍ,Ë®ÿ”e¹EÑ €žªîÉSïmÛ®æy~û+À9·è½¿0`hŒ9u†ªº`Çñr¿ßùpÎÍ{ïÌ8‘m’ ªJkí€-o$—Dä¢  išË¾'¹; ‡ Jr‡äCð\¨*¿HΑ|JÓtCDÆßo#"ã$IÖ<«êBQ½é£êêÉ]•TKúIEND®B`‚libidn-1.38/doc/reference/html/up.png0000644000000000000000000000040414076274121014400 00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEå $$ñا ‘IDAT8Ëí’1 ƒ@DŸ•¶{ƒxa™ƒØÄ;$]r =JR´È1,Ë øSd„-©}0°ÌŸÙÏÂÂÎàüo¹L:m-˜¤QÞOäÀ[› Éäåkå T¸zþMÞ Lè¬Ì,š:ךuÀ!tÁK;æ ðP¦õÌôÀp Ot@£l¼ÿò/̵*á§l}IEND®B`‚libidn-1.38/doc/reference/html/libidn-components.png0000644000000000000000000000241314076274121017402 00000000000000‰PNG  IHDR¨„Y&ÎPLTEÿÿÿ¥ÙŸÝÀIDATxœíÛOh#UðìÅ´ìM” ^<ÉJY‰Ð£²’Z=d»m…U³–Q*]ÂzX– )èA¤­ŠN×Ýeº{hE¦ÍÞVˆÉT‚ Ò/K “¡““©ðKYí¾Séz|M¦ºêâóØ‘á÷–º—t«e4ƬwÙR+š+C½ß¡2t©jâàkí7Wo<ŒÿNõ†KÙE«–CY¡µÿ0Ue Z¢j¢ú㨔ÑPcJŽ­–è¢Ô»€ª²GØqü)]üw¼ ‡ìS’ÛÖnH;1Lì ÕÈ(P @õ©)<$Û?0UàV%!UãV)´2†+º7:êõ!Y%Ž“‘,F–=ªI EÎŽ9J¶ ¢**Ã"‡5MH-ѹ•ê8Ô«œª†Ë–2[&§º‘z¡Ú¢‚´õ#I[½=bþÙðI•ÏÎN"T¬Ý¶”.˲­Þø©ðsåfÒCme+í/ÅR²®ë¶:·_ø¤’òRåU;ÃReÛRzƒ¨ × OTÂÞjVCÈÜ1,¥Dq”¨†e˜_¶UñžÝ.Y¾OÚ•ú¢0ÿÜe¯ÞX\'ªØVíÞÀä£/y¨ÛDÝÉÎÍ!míâ©$Ÿ²÷ÜQbªST€J£*r<{5~EF¬±ÎÑÁ:ÈSL2‘ñ(VuDÃF=­{úÞ–ü (P Ÿ*¨ìÁ×”FYéþ•éúz•Gu¿½>D\Jw(KÑë_P @ZC)%ŸýPD}+¤–…Ôw3"juJD͈\kmæÉ¿ê(P ·ÒŠouèP9¡™^ŒwVI§vA (P @ ¨žÚÆÝ_÷]!Ûö/ K”ºâÜ J\ªìPí_÷•«­ *i·Ê PÎÞp+Í¥œëož‡œk}ž8 éÃ+¹¢ Ôèª!§b¨;»g.}–1êþTfëÌ¥ô‚Ñò§KeŒúØ»ßÄøÕé»–úܨŸ°èCmüj©«FýÏê ‰_e±Ô—–R7|¨õÍfúºQŸVoùPww§šs™ÆÓc{·½<ôÞpý›!—j©Ù¸çAVb3±YŠÀ¥È<êx•$¤bÁ©– Ò‚SM!eŽ‹(ÁwÙ#Fä>Síz¤J Py´‹SI*8n%ö{b·‚TJp*È9@ w”×µÌô‚ª&g#‘WÒiUÝM$.D"éôuUÝêìfTu¦ýz§jT(ÃCÁv‰Ì{ÅTS(C1í:ºú·+†+X—ˆ™a #ö7`,ÕÊœž~ê…‰“þ2lò«Ór<éO™…ü ޾ÆP¬ ›cùSö­*ùÕs>l<°zã­ ŸíÂMÏu´b¾ËbÊ;àSydí:ºÛˆ|‹¥‡ðËdʲï˜Ý÷•[/]_i0‘3ÃIEND®B`‚libidn-1.38/doc/reference/html/libidn-stringprep.h.html0000644000000000000000000021417514076274121020032 00000000000000 stringprep.h: GNU Libidn API Reference Manual

stringprep.h

stringprep.h — Stringprep-related functions

Functions

#define stringprep_nameprep()
#define stringprep_nameprep_no_unassigned()
#define stringprep_plain()
#define stringprep_kerberos5()
#define stringprep_xmpp_nodeprep()
#define stringprep_xmpp_resourceprep()
#define stringprep_iscsi()
int stringprep_4i ()
int stringprep_4zi ()
int stringprep ()
int stringprep_profile ()
const char * stringprep_strerror ()
const char * stringprep_check_version ()
int stringprep_unichar_to_utf8 ()
uint32_t stringprep_utf8_to_unichar ()
uint32_t * stringprep_utf8_to_ucs4 ()
char * stringprep_ucs4_to_utf8 ()
char * stringprep_utf8_nfkc_normalize ()
uint32_t * stringprep_ucs4_nfkc_normalize ()
const char * stringprep_locale_charset ()
char * stringprep_convert ()
char * stringprep_locale_to_utf8 ()
char * stringprep_utf8_to_locale ()

Description

Stringprep-related functions.

Functions

stringprep_nameprep()

#define             stringprep_nameprep(in, maxlen)

Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is true, use stringprep_nameprep_no_unassigned() if you want a false AllowUnassigned. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_nameprep_no_unassigned()

#define             stringprep_nameprep_no_unassigned(in, maxlen)

Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use stringprep_nameprep() for true AllowUnassigned. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_plain()

#define             stringprep_plain(in, maxlen)

Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_kerberos5()

#define             stringprep_kerberos5(in, maxlen)

Prepare the input UTF-8 string according to the draft Kerberos 5 node identifier profile. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_xmpp_nodeprep()

#define             stringprep_xmpp_nodeprep(in, maxlen)

Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_xmpp_resourceprep()

#define             stringprep_xmpp_resourceprep(in, maxlen)

Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_iscsi()

#define             stringprep_iscsi(in, maxlen)

Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

stringprep_4i ()

int
stringprep_4i (uint32_t *ucs4,
               size_t *len,
               size_t maxucs4len,
               Stringprep_profile_flags flags,
               const Stringprep_profile *profile);

Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string.

The input is not required to be zero terminated (ucs4 [len ] = 0). The output will not be zero terminated unless ucs4 [len ] = 0. Instead, see stringprep_4zi() if your input is zero terminated or if you want the output to be.

Since the stringprep operation can expand the string, maxucs4len indicate how large the buffer holding the string is. This function will not read or write to code points outside that size.

The flags are one of Stringprep_profile_flags values, or 0.

The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

Parameters

ucs4

input/output array with string to prepare.

 

len

on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points.

 

maxucs4len

maximum length of input/output array.

 

flags

a Stringprep_profile_flags value, or 0.

 

profile

pointer to Stringprep_profile to use.

 

Returns

Returns STRINGPREP_OK iff successful, or an Stringprep_rc error code.


stringprep_4zi ()

int
stringprep_4zi (uint32_t *ucs4,
                size_t maxucs4len,
                Stringprep_profile_flags flags,
                const Stringprep_profile *profile);

Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string.

Since the stringprep operation can expand the string, maxucs4len indicate how large the buffer holding the string is. This function will not read or write to code points outside that size.

The flags are one of Stringprep_profile_flags values, or 0.

The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

Parameters

ucs4

input/output array with zero terminated string to prepare.

 

maxucs4len

maximum length of input/output array.

 

flags

a Stringprep_profile_flags value, or 0.

 

profile

pointer to Stringprep_profile to use.

 

Returns

Returns STRINGPREP_OK iff successful, or an Stringprep_rc error code.


stringprep ()

int
stringprep (char *in,
            size_t maxlen,
            Stringprep_profile_flags flags,
            const Stringprep_profile *profile);

Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string.

Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see stringprep_locale_to_utf8().

Since the stringprep operation can expand the string, maxlen indicate how large the buffer holding the string is. This function will not read or write to characters outside that size.

The flags are one of Stringprep_profile_flags values, or 0.

The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

Parameters

in

input/ouput array with string to prepare.

 

maxlen

maximum length of input/output array.

 

flags

a Stringprep_profile_flags value, or 0.

 

profile

pointer to Stringprep_profile to use.

 

Returns

Returns STRINGPREP_OK iff successful, or an error code.


stringprep_profile ()

int
stringprep_profile (const char *in,
                    char **out,
                    const char *profile,
                    Stringprep_profile_flags flags);

Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable.

Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see stringprep_locale_to_utf8().

The output out variable must be deallocated by the caller.

The flags are one of Stringprep_profile_flags values, or 0.

The profile specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles.

Parameters

in

input array with UTF-8 string to prepare.

 

out

output variable with pointer to newly allocate string.

 

profile

name of stringprep profile to use.

 

flags

a Stringprep_profile_flags value, or 0.

 

Returns

Returns STRINGPREP_OK iff successful, or an error code.


stringprep_strerror ()

const char *
stringprep_strerror (Stringprep_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

STRINGPREP_OK: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode code points, which is forbidden by the profile. STRINGPREP_CONTAINS_PROHIBITED: String contain code points prohibited by the profile. STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with conflicting bidirection category. STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character in string not of proper bidirectional category. STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code points detected by bidirectional code. STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too small. This usually indicate a problem in the calling application. STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. This usually indicate an internal error in the library. STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. This usually indicate a problem in the calling application. STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not known to the library. STRINGPREP_ICONV_ERROR: Character encoding conversion error. STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This usually indicate an internal error in the library. STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is usually a fatal error.

Parameters

rc

a Stringprep_rc return code.

 

Returns

Returns a pointer to a statically allocated string containing a description of the error with the return code rc .


stringprep_check_version ()

const char *
stringprep_check_version (const char *req_version);

Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned.

See STRINGPREP_VERSION for a suitable req_version string.

Parameters

req_version

Required version number, or NULL.

 

Returns

Version string of run-time library, or NULL if the run-time library does not meet the required version number.


stringprep_unichar_to_utf8 ()

int
stringprep_unichar_to_utf8 (uint32_t c,
                            char *outbuf);

Converts a single character to UTF-8.

Parameters

c

a ISO10646 character code

 

outbuf

output buffer, must have at least 6 bytes of space. If NULL, the length will be computed and returned and nothing will be written to outbuf .

 

Returns

number of bytes written.


stringprep_utf8_to_unichar ()

uint32_t
stringprep_utf8_to_unichar (const char *p);

Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If p does not point to a valid UTF-8 encoded character, results are undefined.

Parameters

p

a pointer to Unicode character encoded as UTF-8

 

Returns

the resulting character.


stringprep_utf8_to_ucs4 ()

uint32_t *
stringprep_utf8_to_ucs4 (const char *str,
                         ssize_t len,
                         size_t *items_written);

Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4. The function now performs error checking to verify that the input is valid UTF-8 (before it was documented to not do error checking).

Parameters

str

a UTF-8 encoded string

 

len

the maximum length of str to use. If len < 0, then the string is nul-terminated.

 

items_written

location to store the number of characters in the result, or NULL.

 

Returns

a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller.


stringprep_ucs4_to_utf8 ()

char *
stringprep_ucs4_to_utf8 (const uint32_t *str,
                         ssize_t len,
                         size_t *items_read,
                         size_t *items_written);

Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte.

Parameters

str

a UCS-4 encoded string

 

len

the maximum length of str to use. If len < 0, then the string is terminated with a 0 character.

 

items_read

location to store number of characters read read, or NULL.

 

items_written

location to store number of bytes written or NULL. The value here stored does not include the trailing 0 byte.

 

Returns

a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, NULL will be returned.


stringprep_utf8_nfkc_normalize ()

char *
stringprep_utf8_nfkc_normalize (const char *str,
                                ssize_t len);

Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character.

The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form.

Parameters

str

a UTF-8 encoded string.

 

len

length of str , in bytes, or -1 if str is nul-terminated.

 

Returns

a newly allocated string, that is the NFKC normalized form of str .


stringprep_ucs4_nfkc_normalize ()

uint32_t *
stringprep_ucs4_nfkc_normalize (const uint32_t *str,
                                ssize_t len);

Converts a UCS4 string into canonical form, see stringprep_utf8_nfkc_normalize() for more information.

Parameters

str

a Unicode string.

 

len

length of str array, or -1 if str is nul-terminated.

 

Returns

a newly allocated Unicode string, that is the NFKC normalized form of str .


stringprep_locale_charset ()

const char *
stringprep_locale_charset (void);

Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything.

Note that this function return the application's locale's preferred charset (or thread's locale's preferred charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding.

Returns

Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback.


stringprep_convert ()

char *
stringprep_convert (const char *str,
                    const char *to_codeset,
                    const char *from_codeset);

Convert the string from one character set to another using the system's iconv() function.

Parameters

str

input zero-terminated string.

 

to_codeset

name of destination character set.

 

from_codeset

name of origin character set, as used by str .

 

Returns

Returns newly allocated zero-terminated string which is str transcoded into to_codeset.


stringprep_locale_to_utf8 ()

char *
stringprep_locale_to_utf8 (const char *str);

Convert string encoded in the locale's character set into UTF-8 by using stringprep_convert().

Parameters

str

input zero terminated string.

 

Returns

Returns newly allocated zero-terminated string which is str transcoded into UTF-8.


stringprep_utf8_to_locale ()

char *
stringprep_utf8_to_locale (const char *str);

Convert string encoded in UTF-8 into the locale's character set by using stringprep_convert().

Parameters

str

input zero terminated string.

 

Returns

Returns newly allocated zero-terminated string which is str transcoded into the locale's character set.

Types and Values

IDNAPI

#define             IDNAPI

Symbol holding shared library API visibility decorator.

This is used internally by the library header file and should never be used or modified by the application.

https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html


STRINGPREP_VERSION

# define STRINGPREP_VERSION "1.38"

String defined via CPP denoting the header file version number. Used together with stringprep_check_version() to verify header file and run-time library consistency.


enum Stringprep_rc

Enumerated return codes of stringprep(), stringprep_profile() functions (and macros using those functions). The value 0 is guaranteed to always correspond to success.

Members

STRINGPREP_OK

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

 

STRINGPREP_CONTAINS_UNASSIGNED

String contain unassigned Unicode code points, which is forbidden by the profile.

 

STRINGPREP_CONTAINS_PROHIBITED

String contain code points prohibited by the profile.

 

STRINGPREP_BIDI_BOTH_L_AND_RAL

String contain code points with conflicting bidirection category.

 

STRINGPREP_BIDI_LEADTRAIL_NOT_RAL

Leading and trailing character in string not of proper bidirectional category.

 

STRINGPREP_BIDI_CONTAINS_PROHIBITED

Contains prohibited code points detected by bidirectional code.

 

STRINGPREP_TOO_SMALL_BUFFER

Buffer handed to function was too small. This usually indicate a problem in the calling application.

 

STRINGPREP_PROFILE_ERROR

The stringprep profile was inconsistent. This usually indicate an internal error in the library.

 

STRINGPREP_FLAG_ERROR

The supplied flag conflicted with profile. This usually indicate a problem in the calling application.

 

STRINGPREP_UNKNOWN_PROFILE

The supplied profile name was not known to the library.

 

STRINGPREP_ICONV_ERROR

Character encoding conversion error.

 

STRINGPREP_NFKC_FAILED

The Unicode NFKC operation failed. This usually indicate an internal error in the library.

 

STRINGPREP_MALLOC_ERROR

The malloc() was out of memory. This is usually a fatal error.

 

enum Stringprep_profile_flags

Stringprep profile flags.

Members

STRINGPREP_NO_NFKC

Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations.

 

STRINGPREP_NO_BIDI

Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations.

 

STRINGPREP_NO_UNASSIGNED

Make the library return with an error if string contains unassigned characters according to profile.

 

enum Stringprep_profile_steps

Various steps in the stringprep algorithm. You really want to study the source code to understand this one. Only useful if you want to add another profile.

Members

STRINGPREP_NFKC

The NFKC step.

 

STRINGPREP_BIDI

The BIDI step.

 

STRINGPREP_MAP_TABLE

The MAP step.

 

STRINGPREP_UNASSIGNED_TABLE

The Unassigned step.

 

STRINGPREP_PROHIBIT_TABLE

The Prohibited step.

 

STRINGPREP_BIDI_PROHIBIT_TABLE

The BIDI-Prohibited step.

 

STRINGPREP_BIDI_RAL_TABLE

The BIDI-RAL step.

 

STRINGPREP_BIDI_L_TABLE

The BIDI-L step.

 

STRINGPREP_MAX_MAP_CHARS

# define STRINGPREP_MAX_MAP_CHARS 4

Maximum number of code points that can replace a single code point, during stringprep mapping.


struct Stringprep_table_element

struct Stringprep_table_element {
    uint32_t start;
    uint32_t end;
    uint32_t map[STRINGPREP_MAX_MAP_CHARS];
};

Stringprep profile table element.

Members

uint32_t start;

starting codepoint.

 

uint32_t end;

ending codepoint, 0 if only one character.

 

uint32_t map[STRINGPREP_MAX_MAP_CHARS];

codepoints to map start into, NULL if end is not 0.

 

struct Stringprep_table

struct Stringprep_table {
    Stringprep_profile_steps operation;
    Stringprep_profile_flags flags;
    const Stringprep_table_element *table;
    size_t table_size;
};

Stringprep profile table.

Members

Stringprep_profile_steps operation;

a Stringprep_profile_steps value

 

Stringprep_profile_flags flags;

a Stringprep_profile_flags value

 

const Stringprep_table_element *table;

zero-terminated array of Stringprep_table_element elements.

 

size_t table_size;

size of table , to speed up searching.

 

Stringprep_profile

  typedef struct Stringprep_table Stringprep_profile;

Stringprep profile table.


struct Stringprep_profiles

struct Stringprep_profiles {
    const char *name;
    const Stringprep_profile *tables;
};

Element structure

Members

const char *name;

name of stringprep profile.

 

const Stringprep_profile *tables;

zero-terminated array of Stringprep_profile elements.

 
libidn-1.38/doc/reference/Makefile.am0000644000000000000000000000610714075765536014362 00000000000000# The name of the module, e.g. 'glib'. DOC_MODULE=$(PACKAGE) # Uncomment for versioned docs and specify the version of the module, e.g. '2'. #DOC_MODULE_VERSION=2 # The top-level XML file. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # Directories containing the source code. # gtk-doc will search all .c and .h files beneath these paths # for inline comments documenting functions and macros. # e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk DOC_SOURCE_DIR=$(top_srcdir)/lib # Extra options to pass to gtkdoc-scangobj. Normally not needed. SCANGOBJ_OPTIONS= # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS=--ignore-decorators=IDNAPI # Extra options to supply to gtkdoc-mkdb # e.g. MKDB_OPTIONS=--xml-mode --output-format=xml MKDB_OPTIONS=--xml-mode --output-format=xml # Extra options to supply to gtkdoc-mkhtml MKHTML_OPTIONS= # Extra options to supply to gtkdoc-fixref. Normally not needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS= # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c HFILE_GLOB=$(top_srcdir)/lib/*.h CFILE_GLOB=$(top_srcdir)/lib/*.c # Extra header to include when scanning, which are not under DOC_SOURCE_DIR # e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h EXTRA_HFILES= # Header files or dirs to ignore when scanning. Use base file/dir names # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code IGNORE_HFILES=gunibreak.h gunicomp.h gunidecomp.h idn-int.h gl rfc3454.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES=../libidn-components.png # Extra files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.xml building.xml changes-2.0.xml content_files= # Files where gtk-doc abbreviations (#GtkWidget) are expanded # e.g. expand_content_files=running.xml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS= GTKDOC_LIBS= # This includes the standard gtk-doc make rules, copied by gtkdocize. include $(top_srcdir)/gtk-doc.make # Comment this out if you don't want 'make check' to test you doc status # and run some sanity checks if ENABLE_GTK_DOC TESTS_ENVIRONMENT = \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) TESTS = $(GTKDOC_CHECK) endif -include $(top_srcdir)/git.mk html-build.stamp: $(top_builddir)/.version pdf-build.stamp: $(top_builddir)/.version CLEANFILES ?= CLEANFILES += libidn-overrides.txt libidn-decl.txt libidn-decl-list.txt CLEANFILES += libidn-sections.txt libidn.pdf clean-local: clean-local-junk .PHONY: clean-local-junk clean-local-junk: -rm -rf xml html tmpl dist-hook-local: all-local libidn-1.38/doc/reference/libidn.pdf0000644000000000000000000061152214076274121014247 00000000000000%PDF-1.5 %ÐÔÅØ 5 0 obj << /Length 113 /Filter /FlateDecode >> stream xÚ3PHW0Ppç2 @;…pé»Z*Zè™Zš*„¤)šè™š+˜˜Xè˜)„¤(Dk¸û…jê™[hød&e¦äAØŽžFPjš¦¡FjQj^r*DÈ71$Tš˜£âEÐ!®!\“_'ˆ endstream endobj 13 0 obj << /Length 965 /Filter /FlateDecode >> stream xÚÅ™Ko1Çïù>f%<ã7·´,%U›–d ª -ªÔV !¾=³/7ͦ¯L§uSë7öïjõ]iµ7Ú©F¯Þ"‘J&u¼ïVÓ£Ù0¼³/¶a“ä w¬Ï&‡åÐnöß6ìN cWvý¦î&7åýy½•XÃãÕ,¦{³Îþɼ¼¿yþ †¡Ã( ^–Fö¦€‘"`dIŒ¾H2B‡ +’Ü#&>¯Dn0²[Œì#»EÀè%5³.ʺ†H|'âÕ 8gÛdý8ŸVU9kûÓ å³°ÆÛØE¶ ¥mì\n~]ýi÷Aô¢hÂJ `KÙµFïZòÜËÉ®2FöŽ€‘%0²¤F_ÄÈñyd6.bLvÜacŒ#48¢†à«¶r|Ûׯ_ø=Ãý–… endstream endobj 28 0 obj << /Length 464 /Filter /FlateDecode >> stream xÚí—KoÓ@€ïû+æhvÙ™}AÔ sŠzñ&XJÝà¦þ=ëM*ƒ"N©šÓŽíñÎã[g$¬AÂŒ½*Ø‹·HAKŠ+lPàBZBQÂ<›}ø’s22{W}­Êº—_~¼è…«¸ŠM¬—±¿|¿¨ï›üº¸l·VàÓÖVu[K-Èšd¹ÛµªªV‹½)Øw†é®|0OÂ+Ë6¿–P¦g— …~tš7`P R6ÉøÌ>1y JzÚ ÊZ›‚z}[ïb½»= {IÀ ‹®WÅœ£”ò˜<ä賩\ 6kè…«Kù0‚ÌŸ|`§7†ñ˜ ×A …J ïˆÎ·d*ù³ßòä·ÏDÎMr÷¹.:„SñeŸèÄ ˜sÔÖft 7®í)> stream xÚÕRMO1½÷WÌq÷°ãtÚmj„HÐ(¬'Âa!›À¢|èß·l%‚ñäÅxz¯íäͼé#XAW]•ꢣ™Á£(ç Š7Pø€…†r£¤{ÿ”fœSÒ¯ŸëYùåÃm$ƒj^mªfZÅãݤÙO–é¸ì¤ ¸ -¦•&ƒ…pèܪÖo‡"uSªW¥Ã%þêÎèLÓ• fá­„Ö;xo+WkB6ø†êQÑ™%í 9>ñ$"Èòé©_owaàÂ%ëyÄN½ØoªíqòÓ¥h‹ÞZÈ Æœ\ШÓLSp|½^½¬›ªÙmãZÁ“m9oL³œè߃õþχ8„æøÛ17›D2è*eÚŠ$|V÷ eôd“¹Qñ¯$ endstream endobj 51 0 obj << /Length 1857 /Filter /FlateDecode >> stream xÚ]sã6îÝ¿B3÷PyšhõaÉÒc.û1ÙKwro¯3Û>0csFu¤Ô4ýõ ,{½w{"B ¾*öA|Xý}·zó>IÓ Šª"-‚ÝsQQeÁ¶‚u›»&ø~øôe}æqx¯žTÓ|ópGÀgù,ìkIÛŸD?‰výÛî#²Î‚X²Þ”Û¨Œ3¸ÙqM€~[†ohÉ+üdõn·ú÷*’8H޲¤Q™åAÝ­¾þ œ} âhS•Á‹£ì‚<‰£4+nƒÇÕ?Wñ‰‚I$e”WE²Ð´‹ÒMF²ÜÄ0JC¢$,<|–¦Q—)~×ym«›õl€É&€MÖIÎvØQ Û,ÍÜ‹4Ê7Å’ûfsä°²´ Zž§¶}%°ÑõÔÉ~” SvC+!F¥ùkýLëx<ŽFõûÁÈá yø0„yøZë†IDÏ ïÞ~ZgyxC;;ÈZýÇiíøÛh} VbYXçyÈ’“´•§â €'ITå9i †¢k!„èZyD*PÏôîBѪ?¥'ÑP’½è˜Ø:Ýœ``óÝÁ¬=€œÖiþŽ*3îöŠ×¿ÉñQ¬ÓH^¦UOF%á ¯Ì6ª2§Ú8Û”á-.S¿®ÖàÕ[:„ÜË^UÓæè¢9u'(UÄà-£Ñ­dFÏÚÐןÀ ìÕl›…êñöñîŠho﯈ꗟrZâé?P?iž¤Ñ–Ž~Î/¹ÊÙ0KJpIÝNl@¢<)Îâ ˆuR…7·ww„»ÕÝz<µ’ŽÞ¡ãA]:ý5Îã›õ|ðÀ„H~W‚Naè¸fa§aÐfdAø¼ ;YD¯lGäwÝH´[Ï"îÖeêáú^£¡½¤õÛ9Ð2'åîþ-IˆˆcFОB¥UO@Àt¶.Ä|f!VÓZ£Y(83¾´û5ð‚€éÓñ@)uÊ2£ü‚ó…WPÝ·TŠÄÔŽËvAãnÔó½ìw½î²¢µÚ§¤¿é{9æÕI4§¹/’p‰`•-í\}‚u|Aq5Ñz“CxO}íŠ j[$¡î™=«àò ‡\hFRH>LjtÇ—peh_í(»¹fÁÑ·…¡ &”]ÔÓƒŸ\W…_vï¯Ë«‹6s^.K–¯íXi@Ž‘¦=1R]Kk®Ý¤›ð¦¡ÄÁCAKïÂøåƒ-2 ’Á²8Ëðª'†Ä0´ªG _ÔxPý™`äAÔÅHèj¿ó¥0.ãŒc"‹Ï[MæÇ Q‘rT– €œËîæÌ|½Æ¯<µk ßPŸK³ènÿ[´Â¥©ŽpKK/L™ðÉ—^±²e|ÌhvK¤/²mùkë¹ÐÉ zÝžÔ(wîº"%¸4€”Ý_NˆM8*ÃÄsû,©}² ˜³±O<:°\¦¿ßÌÝì¢<³ø–-8(2$llÀ,Œ ;VRv$ÐY9žžÌ&¤­è$*û`ÍôãÙ•©Ÿ€˜•œ e¶ÀTƒÝh”y9R/GrAŽ¥xŒsRU0-hÈ)I0 dãàFN€I¸²¢âÌ„üñdñ$¬³i…épÆŒTäDºªØy‚a²¥ÕW,Ú ZÈŒZö!&‰ç›è8]Ä7—*ƒöÚ4ªV¯´y1Pw¤±´¹»‹¢k:-ŸæOÖ÷!Z¹'€Â@þ_šR'2ܸÎY8K7=½®‹Ó–ŸÂZj}¦qƒëfñÞ*P'žX…'œI'åÚzû~Ð,$|^Ïò\LS޶<ösí± ‰]s¼~Q~ßËQ4 „Ä3ûÚI&ös#¦rJ\4¬ Θµƒª¢¸Þ5ËùÑœÕ4®> *ùæ^õÓ„'Q¹œ’eF"4Sϼ5ߥ‘;WE:Ic:"Íü†V`ÿê¸âÀGÓÎ\Eu ªàUx÷ùî—+®‹ %Çê¹Ãöb¦bã&Æï Eø/,ªªo´sƒu>æ°…ãcØÂ†l¶…ôQã({FòzKg3cÔLW`a«ŸyxšÑsç¾¾eÎ…õª')\€Â÷¸èÇ]½ÉÃw¨Y¤{eÆ>¼ÂÀÚŸI³|P¡ŽøD¸d—K¯´ocó;Í?Üð5À¥Áþ…Qõ曉öôc¾Fôn¾ªU¾ØŒZ·üp´‹è5¢õÈö™)%4¸+ÏÌ'µ,o<8ßÒAå>9]2è?ü,n©+µf¹“N™; ®lÐÖø}ã…öit<b[<ÎÝ6÷VÏî ·¥'K'>æþ¢@Æ÷Y–h¾—ÐïÕ~2nþâŸDfðùÃ*øêh“È¥Øü¬ .ýcÚ¤QoþŸ_LÿÐs$W endstream endobj 82 0 obj << /Length 849 /Filter /FlateDecode >> stream xÚµ˜]OÛ0†ïó+|ÙNŠñ÷ÇîØ´¡Áº+@Uצ©M¶´h¿~ÇI:ê¶&VPÜÄ}Ï{Îã'%èt}E'ç”1d±UL¡ÑI…•åH[8jŠF3t7¸¸þ9Œ™$ƒ¯é¯t–UãÓï—Õà6™'E’M“êã·Iö‚B³Hi1ç­ÚAJØ·Xo> stream xÚíÛOhÛVðöR¶ÐÛ`°ÑA/;ÜQ†9®ô²ãp–íàÚ$ƒvs7S´’‘Ât‡Rjâ9°FI²¦tmQÚC2†÷Ög+%,a¤ÞsøYXò›ô»úc9Oo©ê´ß;=Y?é{OOúžì¤~ °ˆdÉQ;HÖÛ«±-X¦‰à¨5­úNÑÔ`„š®ª(¶×L9a7’™Pà B" þFõ—ÖÅðgÊ 72ØàBÚ"K>Tè‚dÂ?Rö!,÷FËo~R^úÔ‹¤ÁóÇÖ/µ©þïöìRQ=á%’¿Hgo!òÖv^}àE'ÐP¦.¼á¾Nø' ÝOûÑ Š]\ ͪ¾ðp-¹êÏ‹ª©íïÕ?}ñ8ù—£#º #k/쿸jï±W銦{#­+‚;×ÜÓÇò^£à¬Q葟ˆ«Ábçøz58}!_9«O’iÌ> ©v#ZQG…´ŸÄ5xè…Duºö˜.G…mð é­làDz¨ŽÐžbïÕi6¢™J ïp¢3k‰Ý=6Bt#]ÊÈ™6wEˆnUU4íÜÉ€þ:Á†4²e!£i°¡›ùá÷ZÕ¦d¤.|OÛèɃ¯Å£b~l¡²vÇBX’$½ÿké·Ê­t0ZùÎFê?²…$Œ±Îl–¾¬dz ­9;¼ÊŠ…q¢s×J‡*±žhLEÈXÕ-$'H‚¢Ïw ¯8c£ò}»M’ô€¶)óMiâõË=:bj¢r µ:¢uŸ‹ÁèEwóããH¿p,Í„†‚û)Bî «2#š‘ ¸[°6d ƒ&šp„ª/Õì’ÔTGRÃ3 @OmD†ìÌjˆ}‹phdø¾ùd@ Ï++bA؃0 BÞ¯€ôLÐ<Ê„GÒéÏ8Ðìü Ò.Wü«^´Á‚¶("¢BM92¤F…Ld‰ìâöù؃6íÚôŒ ×Ã’ë±]Öˆ.F—Ý#F=Îdd'%•:¿“Í*ÊZ*u.Ïf¯+ÊòÎjNQ6G[Ÿïìšà‰¡Á9Ž ™$*mzÛ$ ÁbÈð„ö?Ê…@ÍÜñ‘—^³Tœ‘’éPÈ(gIâÝt¨ðÌâ¬!…E•âÜ™àðºý‘Õ †kÓ.ï¿<È${ˆà&„6õg›¸Jƒ«Þ¦‘MÏœåU{β昳؟·wÿBÌk¨ endstream endobj 87 0 obj << /Length 14 /Filter /FlateDecode >> stream xÚc``øÿÿ?þ endstream endobj 104 0 obj << /Length 2592 /Filter /FlateDecode >> stream xÚ½ËrÛFò®¯@Õ^È]™ïÉ+Q^¦dJ)WRNŠ‘ …Z`ðˆãöÛ·{z@ dÓbi6fzzzú5=ÝM1kc1ëýÅ¿æ?\s!¬À\áZóµ¥\Û ¤åðõ¸5_YŸï§ÑPlp?Æ«”Æïî&4¸ÖQ¥Ëˆ¦´ “áoó‘´´| íJ$íøží3 'kªð=ð}T€[.Æó‹ß/8 0‹x¶/•µÜ^|úY+XûÑb¶øÖg¹µg¶.ŒkvñÓk È Ö=´$TÜbe>tÙàË.*ˆ—0]Ñà#Âä‚#OSUœÛJyÖH2 dTõ·Uô+c"Ž¥±áY÷l‡Ë®8²!CÚRF¢o,Ü÷N.s,O;A@ìL®¦C©´­ŸZ--¾\a Oh¶w¾ÆT©œ½–Û²!'‘Òµ=q Ò#ŠëÛBY læ EiµýŠJ™²忚J›œLVi¸È—ßÖ'ð$¾ÎÓ úü6‘“õéžÍüà}Âý°¯¥Ï'ZŸpgd¸)¾©TdL2yžRO rºR}eséœ|ù]‚†ã½šf›ìÔ—ñnè°Áåxqw?¾žüÜRòQtqOÚçÖ¸-|I¤®¢b™Ç»2ÎÒ¾HȬÈ']Õ>x”GIXF+zÖUºD…mH´RÚ¾kN¼®±ȇ—ÏS #ãB1ºPQæQžd9Eï_™bð“À€Ž2ã§ã[JÚèNÁW¸ú®!\qW‡2aàªyd­ïJ›Z?ôø<“×ô‰.gZŒóÈÓƒÖ&_¿ˆ§Ð$åÚÎgUSË7†ìÞi!mE§ñ+GÙ*ðÈ”K°xÙòÐcRÖ§‘ËØ`ùæ-LØþ_X*°¹€+ÛÊ5.ò÷S¼^ªW4R›þ™V:›Ù:¶°vlé5“„è)ý£—u ƒwÏÀ»G<ó†ö!jR<ØŽ—úŸ§Tø˜Ä9·ºó}>iV 2;|/!RBÔýcÈÕ ÊK !}ò¨¬r“F/³•Iœã´Œ{å(³Ö.ZýÓåÇéÆB˜fƒùS\4Á†thÎx4'TE‹kÒYUîª6s«8ܤYQÆKšo£¢7Q{_ùt ™•蘎qÀ@ŠÎ4{¸¼ÏfoÛÀ̪刮«çþ ÛEyˆ±¤¬ÜHƒ+ …Òù7m$°7ØTa‚¶PDC®e(ã3þ~1¸áüåÙ›áÈ‘1ky´ ãTë §Y™sÃ<ªAɗ晣½˜øD»$&1"\£ø>e‰¤Y:£Q[ÁAžâ .ËÁZ¿U€—d›x ük´e¶Ý…y\d)-îª|—QÖŸ:¨u~?™¾‡Wýn1¾¿Gw»½K[Æúbjj«Ê¸„Ûp¤šGpŠQ|S¬Î+¾¸{˜þry{5nƒý!8¬Áñ®JÑS¿k#¤ia4$¸¼Î‡¼›Lg‹éítqsõoCüiÔä÷fcûJ.ÞÍ.'“…æçáf<{Ó'Aœ®@©¥a¢| Ëzd@µ:p /O ÞPÐ í¼ÐDŸe°àÑ —e”_åÃdú0{ AÎ 7‚ ¨ÇApf…«=2£ åaœ(8íÐø)JGÛ!‡#+CCùÃ? ¯½Â¸kp/ÇdúqÈqt3¹ZÜŒ§ïçh@D™sø@NŒ¾­Ï®ÊQŸˆ: IåíEÁ±¾ðÊk˜ÅÏqù§4¦k d0N—IUÄx¿(äêÄO/õÝDDÇ@t¼€¯+éÛ2ª+VšÞv’ç·´c^ŸÝäv•éø#ï[ÛâÀpäæ p)Q]Ò %3!BæCnÒCã½2¦ªÁ,]·é„…»ÅÇñýäú—N`Äùœqmì/©™ê¯sx"vÒH‹#--¢ßMçç(BRÄUàU@ üãæ_: '(¼_ÊKÑ&ý´!Äû÷š‡â¹n·=é¶1›Iè.Óï̓‹¢Ôòà õmXõdÀ#öó:Åmt3( ^w¼3ªÓ'¦ŸœÎêQþNBJ¯Q59 Xxêf7êÈÛ¤-`pz2Vn»ž¯}™{n£þ*³EX,ãxáÄ/jx C¥øjý⹯ØðèÐ?¯–>ŸÙïhyÐuÀëZ:í4<¾m8&À%Äë)¶MÿLÅžÍìw4)ë¶›—ä[}Šn›é™nTo—¢3J±hc[ÜólŒö´¢Ž )[úV1N»7'Þl@|¥Ÿ˜^ÅA:ôÏsó™=ÅA8¨FÁýæ²3Tÿ-N4pœ&ÑË âc£Ûy=ƒ´éŸi³™=%î â;6«“žãž®pm?^v ty±ÁÜÀöõzkÓ?Ó`g3û]ó¤Íꆎ¯ç®Ï:éþ¾÷\ÂúÌý¿4r¹gÕÅ+UÌÜëTÌÜmṴ^†ÿÁRJ—Ű´€ªØüunYÔ”ñ¬Gå½f?µyº5„ ^횥°Ê¶ºÇ€À$|ŒÒ_1 ¡Ò=Úˆ»ÛÉÐú-šÝnÇ1掠¦•:Ùî²¼ SÖM'øBYX¯éî…ÓQâ4\ ×uKT´Ç (Qùêx_½^žÖô ©3K“¢Œvæ³—mê…!?Y^ïva¶ó~1ú|©qo¤jòŠÓ¼? 'µ_K—| ×é³÷~§PÝ£»H¿¾==4úð0›Óhz‹ 3Ñ?•À!¦õ€Ç{vô×´"ý0üaÕ 6”u®z4°Ê§¬þ]¼®4WQ¸Jöµj³î¬Ý©5UåõoFuÙ¼Û%Ø!¦FÅ.ZÆØöZÚÏÿ=… t„Oæ¼ä/«þMùÄ endstream endobj 136 0 obj << /Length 2184 /Filter /FlateDecode >> stream xÚÅZYsã6~ׯà#•²Ú'oÆq95ëÌÚVíÃ$¥¢%Hf–"ñN~ý6.Фh‰²ì䉎 |F£[ØY;ع™üóqòý„R'B‘O}çqåpùs‚¾q—ÎW÷æn6½¤»Ÿ“§d™éòÕ—[]¸+Qˆl!ôÏÅY§Ó_’ÐÌ ÚgÚ b3+Tú¡û½þðH™\?N~Ÿè‚²“…¢qg±™|ý;KhûÉÁÈ‹BçEõÜ8œ`D™åÔy˜ü{‚/yZ’Çg%;q“l[W¥.W¹^Ïã4Än~õðÃí­nˆ Ó;ÖŸRü^Ûå7_éa‹|ij¶y’Uå…AµS]¥i>¥Ü}™eqY&ëL,uÃ/³xmºÇÙRÃ5ãf¥xxüÄ”<÷u*Êö(4½d„îÖ“×,Hn,ìÆ%s®—lÅì­»I©¿") ]Žõ§½PÜ ´ÆÚ5c³fÓ±‹²š('i];*[&U’g¨4@c†›Ž€!u3!·í)á®’/dnœV¢(us¬«Z²Â/%+4¡¦j«ç¸2@J&‰’¦º&Él3°%IgkS«”ªž„”k­G1÷6Q7ü‚91Ÿózýl++S.u•ÝèL€JîÕv›~K²õ‡F'HÌ·¢ˆå–ꟛ:­’mjzWÉFjžc˶ûñ¢J¿uô H7¦$VrãWbQ>ÍØØŠ¨õÇ´þV—¦” ÈØµì,‡z5_¦ ° ˜È”â”Ö†´O/¬Ÿñzˆ¾ »½g:(õ¥¡ãCG/ôû¶ƒµlv(C1–cÀbPÆsÇçaÀ4“Ê“¥7 (b³m†p(ÕY¢´m€·þ1Aûâ3¶)òOáS„¦(ìñ]÷ãÙÝE£@ kà‡ Ì‹‰øJº’ á‡HRA1"že"‡4®¼“Pb4f][¶­1< Š`udÐxÒŠS—´¯€À‚sµbÈq­82Z+x”ö†Óß°RpX\ÀùáôÀ]¡c´SDqÐLÛ¨ÀŸ¢0N˜´M’Å\òzPVEc?Íe¤¬¶µ Ïñ”bsåéš"Ï7CH«æ²5CS[ŸE{+»P7æÂ6­ËÞ`…od”ë: ž§oîž~JÎýóôs ÈQý2^?™Ž.þ™tœ-ì)|â‘ÑöáŽ×á›Î}—¼…3Ÿ£I?޳.þ™œ-ì)œÁ¤¾÷êN‘?ÞÞQ°s·Çìí‡qÖÅ?“³³…ãqXÎ8G~H^ñ8^3z«tÿQ"ïKò±„ÀÃN¾ˆÎð1{ßד Œ‚¡Y+ËÀh`µ3üN퀭ìQÅÿ•¡`¦•­±®ÝÅ´Õ•®íàØRиe­Ž)ÈÚÖ¿ê­ÊLÅ2ßÄI¦+ÓøI¤ºZe!d]aŸ!ªV×µ¥ ¤TA…FFêswW²®KP÷v¥+uØ 6–ÅV4_6”úëTÑß+ùÊûáZÿXåÅF>Ž|¹"ëÍRˆ²N«°é³&:Ù Þ»"³ý²J™â+NÁÚ,÷1Q9°!Y^Ù€¡É¢4ˉ‘X>çdæ%)E/&“É:Ù‡236…£ÙKVi±³¤d³Ë$®„ÍZ$Y?ˆ&…^°– p¿ÔZx»p8B–Õ’áD)e€Ú½íZ±>8Y¹Îg…îh— ¤H(1#t²QmMä>ÉŸÆ Ý»x#¶…ÞÅ@J`:™l "WfÆ`Ÿ<5HrĨ{—Wb8{d÷¨!#«7O–jÑΕ°™¼Lˆ¥Ý{›-¤¤¥>ÇR…ÃùÁ¥ØŠlYvƒLÛ¸¨’EÆE/ziBO€6ɺ|M½•íå¼Éðʲ\‚üöí1T©D ãž2r¼m€ä/ez¹µd²ÔäxYhr¼²v0Ç+š¯ì®­+ç»q9^)K“ãõS®h(¯Û ?ws¼³mÏ<8¢/êœ~+GP8;š²ø;²|„D9{—_(ˆø_™å;Yü½x¹DÀÜ;/^>äh¼|Èèx9¸(²‰•#i>BļwR¢0äwšïä%í« ï\µr\-ŽƒŒW èEÁˆ4Á y씂+Á€™müÓ Ã©òïk Pv®Œ9®ÇAú`XûavPì½åaÿª D endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 809 /Length 2001 /Filter /FlateDecode >> stream xÚÅZßo7 ~÷_¡ÇíÁ²(‰¢4 ÒüØ t]P·X· iêuÞ2{p Û_¿wg'q\çZŸ= ÈùÎùé#E‘'“q&˜àM2ä‹CâM6ž¢‰Æ³>5œÑ{W ‘‰ŒÃ1õ(¡`¨˜1Æ™’C!…Þc,x„â†ØCŒ ¥åÐ&%›å9úž‡­ŒñãŠd˜ƒÆ’L„¨ÀÕ^pÕ&߇RL¨$‚‰„A¯%õ*˜ß\3&…q9yÇ„t QàÃ_… ‹ Ð HŠ‹ RÈ$TBê%LÝ¥` "zÇcPâÀL”h 'y@”911‹3)*%“™ð@Cé  žƒof(•(Y Tqd Àe¨"ç W‘aŠ  Èe íe| /Ãdxrˆ˜88K @E€ (Àm*÷øèB† ŒÁøÀ@*ÉVH¾GNñàŽ\AyÆ XTXG#8„aN‡)õ"BB¦Iü‹<€Þì¨G0"% ¡œ5° ¯`N„0’¬CÙi4kv —Ë¢2Z0‚OYRc7'{¤Œ|F2qG™ î…ø€0ÀCÌúbÅBL…M¾BˆuTñ F/>rïÛoÍ`dßÏ^ÍÌàÄ\,œ—fp6YüðÖ|÷¾ï ^ýó÷Ø Î/?Œ{ƒãÙt1ž.n «`oðr|3»_o°®ª?ŽßO.ŸÍ>š ‡pµÕèΑl.o{Ð2ÇpL¾’n ÜÙ}ó˯¦OÉx(K¶“›Þ^_¿Ý,Êɦ¢n![_(y†9%âLÝUªAøjp>Ÿ]Æ sÉŸœ™Á«ñÇ…YÚÈ …uZZváÑw²š26soš¢¸ñ#ižJË›Õôô DŠì2WéÚ\}ú‚¹ަÓÔ] OVp¨†è]}¡úRóàk—úX_êY®Á¬ôõ£Ûw‹êþùdúgoðl6?žW€ÜÛÁƒáàø‚ªÁfÎÉÙ‚LËÅÛ„ôËIl d?Ë.BîȬ-—¯®~¿ü{1ž[úZYì†D+ðã²§Éo„qƒ‘“ÙÔR§@˜mÑ K‰p…#±e_žÀá»Ç²•{tD±\Ò0B÷0<ÜCé‡/ûê8b÷8œ·»Û ’v¹'ppç8bŽWZáˆ%XÔ?OàHÝã`AR¼óKLÉ:ò[Wíƒ E²õÒ~º/Ûrsi™—Q Ñ.y9>Úƒ"í”—£ÛWšn—f›|¸×Ó¼Ûnk²Ýyì ÄôÈIe7'I§Nb8 õ+Z «•;r~D™ê‹`küL±k¿ªîË>QÜme¬y4 ÿƒ;³_wgv;¹“ë ‡k¸\åÚÇ\×I\#N5©Î©òT×I©Ö’j-©Ö’j-©Ö’j-Rk‘Z‹ÔZ¤Ö"µé´Ú*΢yB•ç-k[ä ¶Uô¶öü©´=ïnßðºq»¼BàQ_9mì· ˜¼Ÿ^öoóñ|>ë 2 ×nœ$¯¬øÊ»h9m.´&ÓE÷L,íë*G¥¹€2±˜õ/o®&“~œtO2DB¨6dåHFc?[Ñ—<Û4dÜN'W³÷ã~ÜÈm‚frÉG†¯øÁÑØ÷¥X}á±ÀÃàø·{2½Öê’Œ„ÖÀ28û+2¶x@FÞ€»‹ Ö-û‘ÑØ÷%a£ŽÛ< ãzdgs¼‹ŒG•CFFc?xªHÙ `=mü»¥B•Æ]t8+äÒØ_² À!y/„8„i¸‹ôó9‡ÒØ_² À#Bö? ø¼¢ÃetcŒÚz bYß—o3ÿˆŒ=ä-ÑŒ6lhF“ÆFc=Ø y«ù52®×È@ƒ”©}o|_¶i¦B pE;ÑPlfn%ê£Õ’¢>3®¾•¨GÅšwîãßüôîõ‡þE&æí=!„Ð7×áSg.>:pþ³ºDï×ÚD©'"uK'5^©g¤`6lËôG‘DO%­«ŽÖœ Ÿx:üæøè|ÔýbAÁ…6uGòX5Iûlt›ëŽ¡.—ùU÷  –]Ò3Y«d÷ÈñÓ ~»¾üp³(Ç™©J¤…È)å“^éŸöÏ_žž ßtímp±JbžKÅŒ pC@ rÒÖ=zöå>ãTððòÕ‘Bñ¡•lŠ2¶’嬡ŸÚÉ2´!ám– UÏÙN6Áá-1D¶\Úé ¨æÑëµ’Õ Í¡¥,Òòi+Q¯5A[Y±YÚMMßìj©×1ÖQ»0£¢á@íds´.úÏ‚þVw‚;ÞíØ:=ÚšBÜmk¢æ„„|s¬ë›m)tzœ°L7H~Õúõ 8ƒm$öMÃi˜£CÒC—€Bã,e¿% ?þÓÏý×/ŽF£á÷/NOö°UV°µ\@™-¬/m û/nÁõztÚ½: ý£ÑñpØùúùé¨clúB©úq ‰¾à+Ö¥¬?2Bþ Ÿ³Mn_è>^¦~Aþ•lÄ>«¿ùi%‹<Æ›¶ŸM²(^xÓ6±Q/Ù¸i«Ú¨iWR+ÙèOÎZÉfà½ÏØö}ü endstream endobj 161 0 obj << /Length 1841 /Filter /FlateDecode >> stream xÚíZKsÛ6¾ëW°7¹#x“˜žÇñ¸ãº©%OIFCS´Ì©D¹$ÕDùõ]<(‰eS¢•é¡ß.±‹Å⓱7ñ°wÙ{7ì½ý@(õR’Joøà ‰¤bž¯àéo8ö>õ/oîNN©Àýëä>§¶}öñÊ6nã‡8‹Ó(¶¯¿…é"œž|þª¡™´dš> 0ÍU€¼ôßÚ‡PzJïbØû»G@{dm E^4ë}ú‚½1ŒýêaÄUà}5’3OŒ(“ОzƒÞ=¼ûe€°ð|ª¤ÜZ2_Ó8ÝÖO)G”ž)"Ô¯À6 ÀžPÈ÷¥Óß —20Yk Vjv‹™¤O‹âmÏÂoÉl1³/yòÝ­ëüAŠN AJˆ•é0ÓJ„Y.mókR<ÚÖ"M¢ù8nškúÐÓÿÜaQZ Íû,×+Åy¦ã0#Ì•ØkAoMt˜óQ˜GI2âßm¡¡×T/•^ø4ÀúqY+> a†$6iY÷ "%Ü£HÊËbïa£Ú¨¢5÷n+€í'¹*X`¢¥»âÛDPÃ/+¥66±$NêŒ5pÙÄáÞ–%XdÜÈ7R˜ )V:3-*ù¦…ç på×µßqY»šZfj\fêgV•p¤ü`Ç©¥t‰±Ù0®¿î;›óšg¶Œq@ ð!££ª´G|êa y XcÖÏ+}5 Xàmšº¹~¾i»µ1F>#Ç‹*~Çéll›GÌå´bŽ0q‹=†Yu©DRU—íô õ÷†¨;™ôtAOæµ~7¯u7v¯q¨½±Ü‘/wíʇévñ­÷<ù¥µC$òÞ儬=wÓ\ÂÅFRû‰çP&q}I€{jœéRO—ÜçƒSn›ãùÌ”gº†³Ø¶t奟¦L·Í¼È ÐФ¯\¹súL_fucUý„XזΨ(Mç4¼§úVÍ$‰'¨) SQÂØý²TR˜Ê5ÀkÅëýQ¯8ëu¬)™Lm*&W"cS(Zef`Y+¢"€ùP)¶(£>žè*9ƒ(`|aã=Ìd‡‰AF¯gçÆ{'óDÕ ×Êjqídús§Ú÷8›»/޳Y’®WbeQ}eï6)ˆ2v^Ôö¶|‹wÐXùÝx‡6 /ò-@ZóL2½³ëY¾Ùûú²¼’÷¥2܉Qlh£rw.R³A¿NÝNXo†KÎ&{õr(ìûÛ¡$è -@^…—AÚ‡‚æÑ’‚bXB} ^‡‚b\BñâÿOA@Aêˆ& Š\¶¢ È*o¼È@¯•Ÿ<¸;?¿ š“°ª š©„•·šþùƒƒ÷1?ä?þË-Õ endstream endobj 188 0 obj << /Length 1595 /Filter /FlateDecode >> stream xÚÝZ]sÚF}çWì[¡oöûcúä:ŽÇ7M L’ #ƒp˜‘JÐLòë{W+$Ë$mAŒcK3ë5V‡]ɱäÂÛýÆK´U/fQ° 'þ~ã _PŠ­”þ•áàõ…ñs’U<‹ñ®ß\@Ì­:Ýï-„b˜hž"h`à…©\ŠMäËáL7©Z™.,¦V6a´ìÉ~îaÍJ(Ðåzu˜|*01ÏD>³X±ŒüÏËY´gügy…=&»_æ_ým0Ÿ/ÇiVÔ¤BæyÃ\8u»¹@96¦m.49ž ÇAç‚‚o’6Ùwî!…5&±‚,8keü–¬µvö$ÖŒ1µç{¹ËŒß’Óùn!å6<ý¥1# šÛ愬üîoÆ%¡XCù™.ñ á >*¡:põ¿°ÝÉrÌ"‹Ð_ùÓ]}Ê\71êIÙMüôíË ´þ.mCà7-ÌüeÞY\pb»ƒ¨ÞÞ"øê/àÛ¸Ú> stream xÚåZ[“Ú6~çWè:AÑý2}Ún6;›Ù¦éÓ‡$ÃxÁl˜“ÓLòë{dÙ¬mnC2M2–eñ##é|_– 'DÐmë·~ëåkʲØ*¦P‚¤ÂÊr¤-<5Eý1zß¾};èt™$íûéãtùöÕ»;ßx'aF£Ð¿þD«`ÖùØã 92­¸ƒFcC8XNQ5Œ×¦ýÒ?¤u?iÝô[·( !ˆ>û°áæ­÷ ÷7ˆ`a ú’Žœ#I f\A{†z­?[d÷•ÁD"-4–R{O¦ÑçU²iž13Hs­eUû¼`Ÿ Ʊ¥™õ-V‡]ɱäÂÛýÆ‹nÆói$áØ¯ß šŽãй°]J±•Ò_&ñ4z›žr«lÕñž>C(†‰æ)‚†5߃@a(—b½ÖåLסZ™- \XL­¬ÂhÙ“Ýц9+¡ü*.VÉþpS‰9S¸™ÅŠeáþ¼˜FmædáŸQØa²ýeöÕ¿³Ùb”&Öøgž—Ò$}9œÇÎi31(ÇÆ4MŒ ‡ã0HíÄPp$i“sáÁÓrwf(¥0Stÿ*ÂÁbXÔ ÃT¼é J­zƒñò‡ÛzŸønâù—}ÿÇ%Q0[…/|B„ø ¿ØYɪ»Wo;\¶¯†W÷÷¸Ö_ÃïéõînßÞ¼*¬æd|¬™AïfØë¿âëÞõÝÝð¡# ›ïoz•yµ÷¤ó© ¶pe·‹â.6ÞLJ0YÅÑ2¿¼ŠaƒÙ0Y@7Fî‰Z>åÞàúú¦×Û¹Ev.W£Q¸\fñ[d§DÇyÓívœyVšxÆ)6ù]æ2%Y Wþ|šo⛿a?Iàõ^@`œ#îq[¹u9ÖDÀòX,tºÍ\¿¤°äT †­±(Ѥp͖Ѷ÷nK*s˜ºÑMñ}`+øy‰PÇBKaËìœMáâ§ ÷!¯MÀ£4”¢’RA< Ë‹“¤”75"—Ö6êr [Æo¸°ÍwÉwßž…•Á÷ì”ÊU„¤û&믆PF‹hY Жa)ÐèS— P “G»Ãvóný²¶Už’˜Tø\µÍuw7WXZ}¹)ã7Ì‘ÆÎÖɪ¥+ $ÜÆd%Û vgÃÊ2Ã-$à.EmgØÀO­Šq+ÔŸ§ŽI¬ .¸2~ÃÀ5v¶Î©™ŽAS;NÍÍÀøM9™m–TnËÓ_k„·°MîÉÊs7+—„b …h:Åk(„+ý¨„:h— 8Ær9}tl‚KÞ¾r®oü' èpÌýËx1¦‘oGÁ<ô-ßÃÛƒþë®ñ]“E<’ü³c-n@à;×½®ðÍœ‚tÕíþ§p·Þž_}žÉúû2eBÙt¼‚°®!³¨Î‚Çp–×HËðs?óæÇŒAÉÜà”x7Òrª@œ;Œ´Wgk’“±ùj™Í~1Ÿ™X >É1G0~/e»FUö®ÃÛŰŽÂ ·Ö˜0U.5üP`ªU-mB±Þu²*€¬jÂ÷ii^œ¢Líç@û¬jH@ë€$ 5@jPná¶¡5• ná0–ô<ÁvôÓò®L=§ÄpD²f‰Qä`bÔ©ŸŠ»[¢ž0ÁŸI˜à†¦úÊU˜P?P˜85Û„ •eö'V&ÌiÊPUŠ * .`àR5v¿YÝÜÙ#” æþƒAŸ¬L08È5»œäSÁo¸°=B™`LcBùžòQ&Ü ©ÕåÔ« ~Ãiìì—ÁAGd¦Ll†ŒKGhàáÙD Fœ`y95©‚ß0f=&fPf“¼Žû~¢µh…ù.¢„;*ŒÕ;D <üY”pokQ½¬E ÷’«®íÕ×ò=4%\W.JøÏ)aVà…qkQ‚ÙL”Øm&%\c-J¤Q"íÌeˆmDøç%êýÁÐ ÎÏCS)ì£/£IëæóÊÏyçaŒ*íÌwõÆI üÅqÊŸÚü Ñšþ} endstream endobj 240 0 obj << /Length 1543 /Filter /FlateDecode >> stream xÚíZÝoÛ6÷_Á·ÙCÍòS$±§,IƒY×Åö†bË©[î$yEû×ï(ж%˱Åž‘ý»ãÝñx¿CzD]u~v^¿¡Œ!ƒMÀ4œ"àÀp¤ <Eà ºï^½»ëõ™$Ý›ÙÃl»ñÙûk7¸¦QÅãÈM ãU8ï}¾µÐi€¸…ZaM8HÎQ5¬WºûÚ=¤±?é\;t(,!ˆntaXs‰Æ‹ÎýG‚&ðí-"X¾ä+HR‚`®*Y˜cE’†c®…µ±}/i€ˆa£ J"4ÝJ»e´ú·»4ƒ¤ ½Líê¶øÎ±|e4‘°`ÃÌ (›Ã%î­¿«@£Ü•b+$¥–XQ^84ÎJqÓÀsŠb§3l¿¥a[+ëOñ§ï Ã*¸\¤xâ¤TNh@H~nŠ÷UÊx§Õ,ËÆŸÂ¤,€*¨J@Ñ>Å20N­ײʻBŽ#ÚZ8‹}³•4_5=ÝÁ’¨ÓÅH¿eŒ´V¶Éá£JÚ’@Â} Lq»íºŒJeíuh¨@íµ[…çs|út>+ã·ôYkeñ™´Œ!Ø“0w=ãÎãt¾[MÙÓNjìH…isEVžû šdò-žCÕ lÕG%”À8Q@.Òtö`i'º{fœ_ºOÀÖ ÃMÜd²\„³Øãp¹õþMÁ*ìpºLaæ?[ºb߆îá(‡ûX‚÷@Ù§È Æ«èbc¹Í<ú¡'e7->à Ç9+Êq£ ÷úB³îj(W?§N¹úv´¿ú2)ÎÖßÓœZf’š¿œ‡ÑÜZiôÄ[¶•O ”É2KA NI®†«É¶¸×C‘îjjѧžÏ-V©ÿZübmÈ\ >ó˜`Œ9ü¬Ñ ´{ßã@سµµ¬)TÁVˆnŸ (‘Uõª¨å5‚R/Ãwœ€Wì·(YöAÙÅ,ÞÁEXg²Ø£õÜa±¸£V-Ylƒ,¶Hc+ÀŠÊ7o578p'&éËX$V~‚î†Ï/9 òùÅNüÙÎêÓÃ:ÛäG½”mò·Î6uhsÏÞè;Þp;ág!ˆdí¯ ÈÁðkÒ8ü8TL¾`:ØCሡðã²£æÿØJд‡"_¾‡ò\GÔõP8T>”™meþÜ& Pµ ~º& ƒk>Øti^œTðÛq‚öÊÑDa¶å ÅÂ3›( êuÂîT¿¥a[+{D…1…ɺ;UwRþ+M{Cª6Ú*ø-c¤µ²Gr‰ŽøFÛߪ‰Â¤ù6¾*ø-}ÖZÙc|Fàáë¸ï×D¡FcMõwi¢ØT¡ÚÓDaj»‰bgë&ŠlXˆÚ4QlMPt!”ë}اã÷0¨UjwØ)PÿÓœ1©¼ÁbQÓíz¤tYúŽœ ë9 të)·:þï±”{,ëЪûw¨£ Ïùo…¿{y_ endstream endobj 150 0 obj << /Type /ObjStm /N 100 /First 879 /Length 1642 /Filter /FlateDecode >> stream xÚíZßo7~¿¿ÂíC|öŒÇWÒ‘)¥ˆKÔi¸"T”«BèÏ7»{!„=p!äò‡œgíÏãñÌØþÖ›˜ÄSv)¡(N‹‹ ‘£‹98"éä%9akg—U]”è4¡^ÈÕ’&Q Ç` P@R! wŠøÉd&°é ®Z™ºüÙ¨­¥6C(†E­Æ:A;„®'tÖ€ê£+Ưè]«õŒŽ£¹eÓå(’a´Gè$2kJ¶‰),®Ž8  ›A“›jJ€)¢ŽTL:`MsuÜMVƒcÒÎJljÍJr,¾P` ‹™ @(g%3Xµ©U`kÄàðÆ6l‚PmŽ›w*l„Z\B &Va‰U]¢hØ Î!x51œC˜Pb1‡è‚g_óŽZ Õ<ƒ)f:„"‹“KjaUqb®¤œÄ®;j˜MÈN¢AFr4Œ:±`™_¥FxR3BS-øBB§¨0k3;G¶ ji]&x‡ˆ Ø„$ãˆÌB'¶¨ 5§Ð§dN)Mˆ25,Fd'ÀÒE#dhG@@Ž!º.‹e€Pmð\ Å0Ñ3©à —‹Í(S™íc¼¦öÑòìÂmo»é£H¶0û^x°%¶z@§º’á®/ÙTLŸž/Oç‹ wì¦Ow¹éáâÝ…»Ô~øß¿ 4œ¼\L¦;iqvñz»î“é³Å›åÛóÓª¤öU¿,^¼:y¸|çŽ*¤Š'ÄPSôZŸc´“s¨pfjŸ-¡ñ¸Û˜Ì$Û˜ú’ûR†zêeUŸ†²Ÿñ5‹;½“éüí_ÝóÁ«³&Ó‡Ëó‹óβð|úótºs»›Ë)œ€LðŒµ’kðK…4yEj±‡Cšu®ž»éãåáÒ!P?ì¿8;ÙúûõÉË7?š?oÆ ª[’¼z¬ ä¬@òkõ"iÜŒÝ'³­ÙÁÁ¯¿m=™ÍçûŸìíþ´3{:ÿf {„‹‹ø,¶8Q¦Ï˜u4ßÛšîòÖl¾³¿¿õìè`o~æÁ3ÝE>Û±CäY»É Ëú¸ŸÞ w†ÔáD^m—êR‡E` Ýzê0cÅaR‡mFÞxêp/¹^æÇâkàMçŽúÔí²Æj°U9¶¬¥¬7l~´³³7ÿÔÛ»sø°woÅìí$×¢ÞNâO6ú«àa£Çiçq¨·@…‘ùš±ÉûmXÌ¿6bI|™lÂÆ„•ªmØ{c›Ëô3mÁRaoĪ ‹Í”±Ñ×X±X—±åóšÚô‚‰bÝ·ù Y¸5A+#sâæ™âuæ¡ù™‡äI”¡Ô¾,«²Ÿ€qÛ¾‰Ò÷`g˜QäžxDñ¡èí½Ø‹Pz”€ÇP7O<À4ï–—Ì£çÙwáôȈÛ‹u|dl‰©þÿÓã†(¯îE®§ `‘T7@A@}J½d¯ŒàºÄÊr…‚|‰Ý"A¤$–K‚êÒ×q-W9Hôöú»–ƒ\¯8“ -X+[¡¹‚WQ£Zò%ÇF½ˆbhÔ+ÁÛeWüJÇøÕ6Ao Ò„¥š±(ÛBA zs› dOs#6ƒ‹µÅ(ƒ‹5êµSK´ k¯ÑœÉ®j6ÍBÀÝ®³»›ú6¢Ã½†÷ÚÏÄ.îúrõœ‡² ¥Þ³{r'YN»¸ïIbIéösˆsñE.sÈnfóºT¾M%NHˆ0Ž:½$‘J8¡‡b¬:XøU$ľL4_„|þ î!!£Ð5$d\í8 ×;NBF±kHÈ(v î#!cXêIÚô’ÐèeÌ(6,¤ØˆU_¹Ë„¥Í¿DÅ‡Øæ_Bj†F?D!û‚·q’Â'$„õÛHˆ}OëHE CÙ›hÓúrõLCÉC™¾ «“} îY#Q´Þú bì'Ù÷Ý…Ø™J›'!¶[—$ä‹äèIv+[9+’`ñ=¹ç â \Û/B>¯8ˆˆ·KiÁâ5.l„ÂÛJX”¥«âËÕsï=×6~„ endstream endobj 262 0 obj << /Length 1255 /Filter /FlateDecode >> stream xÚ­WÛrâF}ç+¦*Uf˜»¤¼9kâò–w“œVÊéw'Ùk*«Ü®™î3émÒû7JŒÈŽèù¾+¿fRp»îø­ü›s‚;Â^~_¸ùrâmù]ò¦ü.¹\~bH] ÿ!„G‹òŒþ¸¡Q?F =ˆÀRGYÃj ‹²›‡ÛúÔäþ.΢é®myv÷ŸR£´ÖWNvx¯NAv¤swó±Ï¥w=½¾¿ÿÝìþž>Ú+ãñÝíÇÑÍ>aWøÅ[4ªCó8MÇ“>½¿»»›>ôñïGãι¼szþÆDÐp§™ºÞ¨ˆÀ$t§yÐU]deÛ{wóÇa dÀ,Ϥ­=óøñÝ»Ñx|,u¹+ e=›é²t Ì]-ÒEÑnM!ÁÎ38ôk_†­kœCïp®MúŠx/k]Ú¹ Êb»ùË\7")·(Ûp˜óIn³eÆ“Æ_È¡qÙ,·ñ‚cŸ$‰ÄJ6é0×%UPmb8 BTh4ß™'öÑŽ_= ¡€\ù-¦Æú{ñ­:øí,t Ã.–Â! €³ \±p¸í5é;ê¡øN½?íéëLb=O2ÝÕ¡òu)!…5øž”wÖÓ“´ðAêoÏ8~Y=å©}#–y¿vÚÚcÛhÓä©ˆŠ—Î˜ýœ”0}§IånÄz–Qï4YüÚU! œ»7i™¸æÛ®u¹mæÐŠ3 ÚÓKgšÜsb©£¸/ Ž³ÔÙ—³q?¯ÓxwðxîSéµÏ<é.[VyœÄöúÑz&0¸$yvô˪Z—¿ ‡›Í¦¯ ‹¬ÆNo1,óyµéS)ônÀ™†«æód¸¬Vé4ƒš4}YçÌE››rÏã&ƒû&‰.±1?Qv8ÅmvufÈê•-XM×+ú jß©Š,0WNý£¬^éÂ~pxES¡íÞÔÎÒl}/ŸŸ®ÙÆ41¤U>ÊY’LÄVøÑn{º:ÃØ+L%†|*N"5¬ó:›™ •Ö_cÚHãÈ=ÐQ²ÕGkSä+{¾j™—ºó aÅÇÆÆI+’×Âþ%ûª_Ô0z‚Þ[µ2|¥Bº¬@^Ú15‡)¶\çYÇÖõ7|Nîkùƒ^=ð©}wcuìÓV@Ézô _¶ÿ³F¹2 endstream endobj 272 0 obj << /Length 598 /Filter /FlateDecode >> stream xÚ¥–Ms›0†ïü a&Vô„8¦©ëq¦u]LN™L†`Ùf#W˜fÒ_Ù¸_x›ä„Ø]=zwµì@Ð4ò>¤Þå'ÊŠq,™Dé ‰eÌQ»gDQ:Gwþhr ˜ þçⱘWíúj:n‰^h««\·¯_²ªÉÊà>½Ù¡9R-ù*†Uîä=•·!Rþeûñn7L½ïu1Ñ?bÜF.P¾öîî š;ß "8ŒzÚG®‘ 3.ݺD3ï›GNg(™Ë ¢p(x+eüqpá_=Ìn¯¯‡³Ù±.V¡BLÄ8R²+…ÿ%…86ÔF)€ L˜@‘àXð°1kò\×õ¢ÙÏa”âXˆÖk6ȬmÀˆº²­²µn Sa(<]5dÿ0áge£!'¼eÙd=²*X—Ös(|k@H ²ŸJüìõ&ðS[sêYñVƒ¯³¢Eµo³Ò ÈÌjHŒ©ÊçwZ¼ªÐ‡“W¦£+Ówõìé"pO£ë Ⱦ0’Tš%\jКgàç”›5¾é)h6nm*ÔœmL­k E1#ì-CæhfÁ)ÃÜi"G .cLÓî dÏ!†K&$ô¬99´XÖÚi2žŒ¦Épú0L’ $þ×äô§‘Ä´¿´ŠcéŸßL¸Ýìå ­íôëá¶ç=pb<Ô[Ûõºmcõ&Q6ÿž÷p«½¶G}F]-â÷uÙYÄÙ;Kèvد߃£tB†c¾åOãì ¤ endstream endobj 277 0 obj << /Length 676 /Filter /FlateDecode >> stream xÚ¥V]o›0}çWø¤Õõ7öcÖ¤]ªŽtEÑ=¸7ÁÌ»`’¸wÙS¶È›÷Áý¸y™¦Ïi™æó´ùüšä¯ÉÊ{ŒnkhŽ´…V¼†šaMµÝy‡J©]àk÷²yHS¯qF‘óá6† ú—Œ]È%š¯‡G‚vî,ŒF¿v‘k$)ÁŒ+û¾B¡óÍ!Ç3TÌf†”1Ø· vTÆÃÀãÒÄ÷³àûÕd8ŠGÓ©'ˆ;™’âJc-4R‚a.i›ÿÀʆSƒ¥d{VîKL˜D¾äXrÑð•eQÖ;[„ J±‘²™X¼–#î4—å/Ððæ5ÿ7|Ÿó2/)4^lÀðô8­²"ÇÀ™jŠaçœéZj j§;08­·‘ïjùx¹“ýåö€ì0„a“„ž‚ÁZ Gå*…Àœš–\¯&AäîÆA“ ¾~9.X!)&J÷®±7¡y¿`çØhÖ0ºö¨taɾ“…£8Œ†<„Wãq¼ó×ìn~‚Å Êg‘ÁªM*PµÕ2© íWK0|[•GL4/`>U’å[h"?²`AmB»#7^&›Ã¤ÒrÛá±3dpà1! ÖÊüŸÇNéõØ '{Œ ©»<Öé/f×kÞS¼á¶Qé~ [=ü†K˜¬A½&Û}›å~ÓfE Ð’–M¤I¢]$Ú·ÀA[>ßkP‰›¤‚[Ø‘ž²]½Aÿ²j ÊÿmSÀ%ì`¿ö„VY ¦û³®v­ok›\—ÏÊk ÕÑïÀ@zxFÛ~ÎË Ã†ˆsþó~G€jb endstream endobj 284 0 obj << /Length 718 /Filter /FlateDecode >> stream xÚ¥–]o›0†ïù¾mqý¹Ìš´£JiWÈ4©­ ´AJ¡#dÝþýLÈ´5M¯â˜ã×ï1çñ GDйñ)4NÎ(cÈÅ®d…HH,]ŽWÿ:… º5Ïý¹5b‚˜³ì{–äÍx|í5ƒ›ô!-Ó|‘6/ã|¯¬ûð¢–æHiiÉki[1¬¨Ò;oU)Ó ež4?­×ÓÐøaPCýgF/ä-žŒÛ{‚ýìl» ½l#Ÿ 3.õx…ã‹Aº3”Lg†¤-°ËUcÅ›øæ8:½òCË忨óƒèÒóçAÛ— +[!Ám숖+þŸ+‚s0ÕÁ+À w&L Gp¬?gfQÖ{k¥ØÕ½¶:¦QNx4N=/º±lbÎgÓà#´*ËGÐt’½ž–Íô"®R(¼ZÆ<†¯«2Ë¡'‹öSÅY¾†ÅPô*“œ-¸+| Ug«A2;/KK˜¿Ÿ—)œÂS–oÖЃ;"Èü!l¢Gu¥(f„SW-bj qXƒS†¹!- .]LvÞ#²Õ°! ŒMè ¶'Ò‰¬Mëûƒíqàù_-ZfÞ$šMýóðs7³ÌX Ús¶ÜÅ”ð~f“˜«]Y„0wúƒ…’7—ä~u› ÞToc,«0/@™—¬Zf9ä§êJKŽKe±Ú€óëÌbÂüY_miSÆù#¸½P¨ä «e\ZŒ˜ µx_Gi¹>êÅÔµÖ°{¨DzA 1TF…†~Tÿ*×Mêt]ßLϼoݘR»îæöá“¥B;¦N?¦L9˜)c*û8JŠô-$jmCzçÎÏî¤À› LG]7ͯ.VàæZŠ˜Å<Ï`’‹$íiVG¼©µáïlVDz ±ÏÀßïÌVR6Ã.±ùdý¨° endstream endobj 291 0 obj << /Length 749 /Filter /FlateDecode >> stream xÚ­W]Sœ0}çWä6&¹ ÛuuptµˆN;ÖÙÁ]V™APdÛúï§-\Üö ¸INNnÎý€‘{Âȱñ)4ޏÄ£ž-lnˆ²©íq<ýt8 ×äÆ<^\Y¡˜yšÜ%ë¬~Ÿ^øõKoâ"ÎVqýyeÛ(µnÓ ˆ«¡m¨ ¥+¨Ë]½ó*½Àq̓ú¡¼j1gƒë9ŒðßdôBPdõhÜÜ2²Öc'„Qé¹äÇÛÌG¢8£lýž’Kã³ÁúOh }2¢9Qש™ø‡ ”9]–dæùÕâ0 ü‹åõ<ð¾.çAmºüÀv©+]¢FmÑæðÓ³=N… ?„8Š2¡ˆ£€*5µð!®¶Õë'œSO©Æl¹Ì̧—3ßdžó§ fŽ K0óï!»ŠÐe’g(>nÝ–(ÊÓ¶ÄÌ/e‘d÷™u¿`+²ŠŸÁuèãÎK²>š¹bW_{\qGÆ„|pAAb °=Ê© €¼aH CŸE2>C´@zãH1A¥c·iv¾-Ì©¿¸\N«ð™Í—ÁüÈÿÒE<Ê9 ø8UÌ#¥ù Åw†Q¿0ó*ǧ—Q’½ŒÑ_ã¥ÆèÎEŒnñ1ñPl“9BÏâ;´½‡ã;â– =—ÿ&î ƒâ1ZÜ +–'dKܾV÷õ˜²•˸3àWæPå´FÙ\îì!*¢U˜Àb\§«|=Á£àþ#rÿnq…–’÷¼Þ.või–ZÁJ™;$º‡+;­0`7ưDG€ JtÆh‰ *ݶDϦ§§ç³1å²jœäê]@åµÖh¾MרãQŠŠ#ÍÑŽe•hN¿«T¶ÝXB™›¸èË™åC‚¦lÜZ¾â UÒÃ,M_ÑbÆÅY_û…·5»i ×ïqß@ª0X·ÿX  ¤í@zÿ1è0ê™ÜçãíSô] endstream endobj 301 0 obj << /Length 1008 /Filter /FlateDecode >> stream xÚ­W[o£F~÷¯mŠ¥õì\¹<º±cyåM²¾´•²+D;TRÀjúï÷ ƒ±7éÙÃ7ß™s…  "hÒûmÙûtMCölf£åIÛGŽO‡¢e„î­Éͪ?`’X³ä!‰2½ÞMõb¯ã"ÎÂX¿~ ²]ö¿/?+hŽ\€¶¹‚.Ã.uáä• øÀq­Oú!=õMo¼ìýÝ£ C}!r‰Âmïþ;Aì}F ÏEÿÔš[$)ÁŒÛ°NÑ¢÷µGº-´X†lGbW •éè¦Ï¥5ôG³Û»ñ?žÏû‚X·óSJÜv±+\$=%oSâ”@Ûv0wXCÉ@… Â$r$0¡É\å»4R€RìI©7²¼2‰£4Š3ÓNõ‰kÓäa`R•o òÑâÖ$þF$ɳô_ÓÞ®Œ&$ÙÀčЋ>#–‘U¤æ3#Y0.f\çRÌ{³ë¨wÌMhJÆ<}6xk·Õ=²ÀÿF”tSîSâ0€<˜Û ùë4½:ª\?Ÿ‚òE¢LÒÖ¤óIÝ×û‰:¯Êý  “ĉòº‰ú«}>À!/ƒÙeI˜G±/:‘jõ¸ qcÙÑý€eœb×ц}‰·àc*-ã5Hì9x á­ŒÎf·jõ‡¿Ò’Åb:¹º3“s;Â>ã_)± ÎùÔ.ÇŽ·Ï„<ûµO]˘‡ElŒí¿âШ^VE’é¨8IÄ<3¦B$æ 2fa”FNe²ÉÌ ºÊsm€PøùSždUùJ¾ÁK'}AaHἆÁ)ÃH‘ n{˜4ár¤Æ& 0Fz kt6&H*lÛ^+ V‹±¿Xޏ?\\M§~ÝžV³ñ¢; (ØÇñ?u(Î\Pt5«ßû”R+H“(¨Œæ•ØÂŽø*¢Ÿ m] ÛRuC&>Å.Ë®–à4÷Ûî®´Õ#N[ü˜—•¹‰mãNbgÚÕ›iêWTpLœ—" V…ÒÕØ¿›¯§êU•WIk"ƒjHd„ë€WrIm̨@ {®‡Š­F°c4³ôô*±³bs€¦Jû½øÍ=ãïÇÇKN8IJ±Íÿýdk¸bÓàÎ÷s+0ª=(=H¡n‘&~~9jɧ0Ф)#ÄŠâu’ÅíþmÃŽŽ–ÿŸÔÓÁ~9ÿïƒí#ªÖsv™Þ`p™^ëØó õÖáï ÐÖ³û_Ƀ9‡4¥qùØüM‡ºrë7˜aóŠeÔ uE ƒ!{>õ`hÖ‹5 Ò”¬_?> stream xÚµ[]oÛ6}÷¯ÐgXX~PªÚ³ëïß×Å|º*fíç·ë*_•˪éð-WŒ”0Û0†´ìðrçâB nÀÈðÎÂ'³âÆ´*öE¦”#NU&AFë]•™£2¶ØFˆN䡾ËÚ“«ƒE†ÄàJì 4©¦‹Âžìè>þ€†?²OXRDAiËWisŒ/K™àߣ¢ßhK0„1‰}9ÐF©™ä m Ñ›c„K¦·Ãæ€Ü“j9YWÓ¦)ï*Á“ÅgR’GŠï Ÿ$%Wò«tÑîÒq俟OËêtµ©BZņº$\mbÂ&\m"‘ R©íÒqÔþrFð¸¨?õ²§«N2ÇI¨î W+NˆqÌ‘ébÜ¥ã¨þuqo»—ÙÀn3x’ŽTݬº0)ëªJh*Õ{tvU¯‹f¹®óaÊ[â˜DÆ{H¸òJïBC•O*å]:Žòe“7åéjY,"ã<dWí &wú+‚´îB­¬V½6vnd8]컄ø®ümÍíµØð~ |Eâ À´†ñtIàr-ø6РKxløAb<à ¦vú8‡‡§K—ЃÃôªä8Õýý 1ú혞”Œ"ÎÒå€KÈ-î륢æÅ0'€4=N:À ?Høð ˜Xva–/«¦U~_ª®…ùçi}¨å?±)F\“dF¹-pŒ‚Ó¢®—õ0Ÿ€3Õ±ã ÷‰PDKêÖHÀ3Sùä¶Àñ)ÿ\ä_&Ÿ³¸¦\Và òŒÆ&–$¦‹ÃqÊÃDP%sÄ%ä8²®J>“Õr²^ÝêA~XêLE&PH„\Ãw¿ž­ÁF'!¦h G’¥I•k 8±q¤5g˜)@“È$ ‰1EID¡²}ÜGÆER&K›ÅCå fðæÇyØã‰±GrDMÆ.1R8]ò¸ô\kÀ’¸î x‹ã¼¬ñƒÄX#àùL ·†k¤D2g\v»ISÝ~É'Õ²^Lçå·a…µe/DlîøAb â¥i\×foÒ¹äRÜÍŸÿÃ% o_vƹä .«9Õ]–ÕŽš'sÌm€ãØ|™OçÅÄòmŠÕ0³¬Þ<6¥ü 1)E$âÛ C¼9‰ÖéÒÉ¥çNy`’Ãñ¸›ó t¨K›J~w0G*åÁîÀüÄ${ŸØc·Ÿ9QÕW‘?9û1"œa†"!‡ç Óv!L²¼éÑ;Pa·ù¬Ù[_sN³ ƒ²sFÕÝO7gÿ½/šv‰Ò´šµ'ïìçÓùºð¯¿ ~yÅ(X&’ÍLë&ô¯Ÿ_œ1±YÂõ蜶‹WKKˆÈÉzHð°Ìˆ†:„…ëJ8”Eɦ=:×7W¯/^]^½¸œ¼{quýú· ¿¾@O˜ÈywH¸¾X>T Eµ^‘ÃÉÓ…¬ËäaÙܤÎýª3Éc£Ö¬*5 ÙvyàqU©ÁPx$ Ø“ë//&p`Ó»Æ+²%]f€„‹¬al A¡ ½xÂú¡Gä ÆÍª¸PX*Yf€„+¬0Œ¾ák©”)‹§ó}ûìOø»œüü˳«k¿Ê@R©Ø8öƒ„«,44ïaâ¶ÎWG$¥[qÑ£âDòjú ¢¸˜‹âØÛŠ­Âæ¹46Žý á s‰¤  s†°LÄ.—]‰ýÒrƒelðúAÂ¥e€iº¹Ó ŠçYq{D[(·I² ¢ÇåÚ÷¢þ ¼¶ˆ'±‘ë ——R¤8 Œ\bé"×årHÞþwlÒe»ÉÉó¢Éëò~Õ½î=´Õ‚#ÂwŸúÈn td;…Ør¹¿÷âaÛŠ} €ôñ­ ½I?X-lƒía'¦C d³3Øv–ýX‰(4‡"£MVÙ­»}¥vøÓ=| óÏv‡ý¸Å%öâXøv¿L~»ñ&ä.ÔÔÄSÝ Õwì÷pB¹³ÏGÃ𡺾àI/0÷Qàè¶Êj{»z!PV?žKø~1ý:/ª"*4aLLDì÷LƒÞ`>dÕäªèö endstream endobj 256 0 obj << /Type /ObjStm /N 100 /First 881 /Length 2132 /Filter /FlateDecode >> stream xÚÅZÁn9½ë+xÜ9ˆ"«È"9pìdÖ@6D fw4r'#Ä‘ IdçëçU‹r[‘;‰¤l¶º«‹Å*JÄ8C!™Ðd“3šb<“ñΟÄP„á/zC³H†ì"Æ5Å`¸Hb ì8›a'ÞÄ;Ž&µ÷Åä„ûœ€M/â§‚‹¬=jè:0…—zÚ¡íE". þ%Æ["¸ÈŒ àdÂ?‚qNJ€Å£ Á PIï:0¦„?cϧ¤ÃB§Ê‰‚>ÒfŒXGÍ)ýõ޲tÀÈÊRÅÊ^y#i7ŒÛJ%yêQŽúXmðfÖÞÕ®8ŒBõ-AŸãCi?9¨©]Èê£Þ®äX q¡Æ6ãÕ1̬4 .@œ1AÁf#µ¨†“×GÔÞX\´è\0ÙìtÊгǔÇ¡ç1éÁ%ÕPLðÔ’Â…(îNxM;û`®ÃŽ“«?„¢ì\1òb(ÎD걇ÈËžLŒ:8Ïp ¥–1ëP0Uâ<^ÇŸxu(ŸŒ¨Æì³‘@zQŒDðUGɡǸ+ý0‘k¨ll’ƒ´Í$‚K0†œXù`\)ê¸q7 4„¢&¥Ö¸˜TT1Ìbvd<Î^Å:ÈíH™M*8“ý0Ü:'¬ V¿.N“ÌàƒP|;WÅ¥À¸ á¥÷èQopf.œyiÿùïÿL+¥•Ä& }zsuõ¦÷Ë/;m…m‚Wt± ‰m£.¶˜GK9À¬Ã¤t² b]ðm3øv´åd œ¾“-%ðån¶|;ê€cÕW>³}:›.Í£GfðÔÃ9áÞí[OÛà%믬¯áD+E?bðb>›¥¹0ƒgOÍàUóqinÑ_ýÿºÁƒÑ»¦78EOÍt¹@"}½7xÙ,f7óq³hÃ_{ë_ÍådôxöÑ\èX¢Õ—ƒ·¹¼Ao£9 `^Væ'Óé ˆmìVJ»WmZµqÝæÚ®r‡a‹Ó o~_¶ŸŸM¦ï{ƒÇ³ùe3o™¸7ƒÎ§¾ý ÜÇ4˜Æ(•X£e°©Xò «“VÚ¡ü:{53˜˜œ_NGý·W£w‹ŸT¿ý° b›Äh“' D‰VBØNãìùIÿäÙ³ÿÖýüd8<ÿõù“³ŸOO^ @K[„z°úÉó—Y½>é_qÿdxz~ÞùúÙ“áž™åb}ÖMÄp<‚‚{Äm¡z _Ÿž>OÎflh*PÁ†Ô22Îvi+‰zÑrÖ-Æ“I?Lö8i¡X‡%·fúô¨››éd<»lúásBŽÄ G}Ä,ÝsÊÖñ–¸¼i¼ÞGŠX¢n¦µHºÙzl Ü×i¨m±5„n¸pgHlÉñLJðt?„§o áãMŸùˆ·¤9Í—|dÓXÈb½¨æ!rSäÕ6FúZ¿Y¬t_¬ø½bÉW,¨Mã•R ¢°t1ENlÙwBå€Ì%æopO-µê£oU•Ü]•3}§Ê¨”º»ä¦qU¡|kF{ߥŒÍžº˜Ù{‹¿¯kùN]‹û ïÝ4®ºê†ºXFGåLSÎd ….¦Älõäà83Àîþ ”òùr©yqÉû̇±Í kˆˆ™¨7¾ v /ŽÑ[”ËGÎePìXÆ4­Ù`&­çnl¾œËèIFç ð™qu^dV™d·é:ˆ(s}7S¬÷h¬qº˜RtV¤tbà±*Ü– x«­Ö¸I:Ú©äÇ'=ËÝuÈ1}Í:ä{ëPŸRÒs©U»"¬§R«Ö×–j˵ µµ•ÚV<_ñ|Å£ŠG*U<ªxTñ¨âQÅ£ŠG+W<®x\ñ¸âÕºœk]ε.ד§U[ñBÅ /T¼PñBÅ /T¼PñBÅ /V¼XñbÅ‹/V¼÷zW•¶w¶´ç¤([DKñ€z`kÀY,ç“é»ëysÝŸŽ>4z±ß¼åèêX÷8gê ‰ØërgBý©ÄÑb1y7m.@O£A{ÐŒòFS°n•‡è]_&Ó°A~¥§Ë:y^'´$~P¬÷Íü÷f>[Ä0rl=Ê-ÆéÉsÒXÿ£®uê.äT±`ïÓã&Äiï “ƒn:±š×z fz'ºáì ¦lÉ=¨×d1^ì1ýdõ«§ˆV¿š§$bböz{{ò1]@ŒÚ¿žM&ÞÙÿ†áBÄh5¯…LRÉG¢öOzü‡ø¿‹À¦@ŠÀm^¼–"bŠÂ1}¢öOÉcŸÊ; |’bÿ2°·ØØ×*èÁg>¦C¬ºgÔˆºYïês×™ÏÞN®šýÑAU’ªÔN!GãÒ]ýæQ‹Ì/”ÿÍ Ge€haµÂÜÅ`C\6óùl¾E\²ð’[AÓ•ò1Y@2kõ;ì]6ôÿÑŒß÷ÿlæ‹Élº÷5P[Äô)t@œHt¼E³î»Er´«ÿ M´œÆµ•õòmÞ¿*™•×ãlü•?ö½­¬n SÿÒ¬HTevqØTr¬öêÄkeâEœ²–&G+žŽ-MeÁšK#ÃßÅb›8ãEØ¿2Kõvì…¾ýùÄtÄð²&p+Ê›¢@ŒÃ-¤Úw¬ETŽŽ)J%Àâ{ãNw=eúöýÏüÃèjòW³m8Ú„}ñv)Ì_8z”©,XH{ßÉâ®×J ºab›C¸Ý±c.‹?¦÷TŒÔEÏ w1Øçj6]5}å´h–ûwï­þ|l½¨(ÚÌò ,Nóó+ endstream endobj 406 0 obj << /Length 1337 /Filter /FlateDecode >> stream xÚåY]oÛ6}÷¯ °hòòû1Ö`]›v‰ó0¤E Ú²+Ì–3ÉF׿K‘²å$òG< {HDQäá%yxÏ!ÌȘ0rÝù¹ß¹|ˈ£Nƒ&ýQšj'ˆqø4œô‡ä¡{}s߻źﳯÙ0å«O¿†Âm:J‹4¤áõC’/’IïKÿ‡Ä"´ZZ –[¹Bå;Û½ å|ŸÎ/ýÎ_Žmá«`°£Pd0í<|adˆßÞF¥³ä{ÕrJg„Æò„Üu~ï°8CöòL§N†>éSRàD¸cÝù·XÈò§Å<ïûo/l(–ó"ËÇ¡œ ³b¸|Ï6òdš>!vx{*fŸƒIJqæøÞ¯›]M&³¨î÷û<)Ëlœ§Ãð›‹$‚ge/é`Ð]”iµvaÙŠ1 …ÛëyhÄê#x¬CyÌg‹å0Ÿ™bøÇ+˜zÍðßÇÅQ*¬N6 ;üc¶…ï=ŽsÏçá- QU9)#vÌ §-¸çÍ|QäehÆÂ‡À¶qœr1¤e9ZLÞ„ŠYGŠL‹¢®̆¸œtÜ5H‡sœZ7¸'°{k0O‹Wݲ&j“8i¡ v””›Ø3Ë·é )€%ZK*ŒÜä§hð“ÔñÈÎl„fŠhƒu\׃"ó.g‹ŠÕÌ‹"ù?›ó!mîRÍK߯Ñ?Ÿ¯éö„Ä¥rzÿ)¬ 4PfD…ÀzcS¡äò®¯¤Ó ›mw€é(wª ðõHvlˆ¶Ôo‡b”áWK;Mþž¤Ïñ@âêñÓcz9p6]LÃfbcÜúp"F»(PÓf¾Á­ºÏQà°è×N[Ì©šãøš!['œ†Ï?þq½¡‚&‰r `|œ¾^qMKÔYGŠ”Œšé mwíöVSËl=@æ¾õ±øau6ðkéj3BKSîÁVpÅ8âÞÖZ‰Uû*ûªžIùÓšXlÃ`“a:Êòt]T.Œe-%)Ë1óklNÞ>$±‚Z8†#­ „¬fÝp"è¿/DµƒðµËL冃¨zÎÖ á |uÓAƃƒðv:ÿ¡vË;_·Tj/¯`Ÿ·«€×ö¬•qÕ*í=ËÿÇH£¨p9xò¬‘ç¶{OaËx.Äq¶  È‹¶ Hk[ 5¦ «ÛÙ‰7 'âOûZžÑý.[ wø–-xš$Y¾§ ÌRêõ\€¨l†~5°œ 8>Ø=\€dÏ€<± X’àpÑs€±gQ}aÐ`(½©ú*Þú+ÕÊ—­V}ÅÖqSõyy‰0,’QD¸»º{¥óæãÍ>ÞßÕI¼áþ;ú©_ÖOp–‚T'É›‚#E¬9·~î=…-ýôLêãô³ È‹úÙ¤µ~‚·çεÓO0MÈixÖ!kÍõóÀèwé' $rK?ÿL‹¯xî/Õž: xŒµp¯§£Œê×»L¯Ã§¢G‡º‡ˆ‚ßrmN,¢ ‘‡ )pƒAò³)wÛº>Ãêò»ëú ë3ì¾>7j!Åâo^ ã2…¯Ø¨uq¼ašÏ3¯ªij6/Ü+‘Å,öZЬnMdñr=‹H•Èâ³Y,þ«"‹~œråN’\‘èôì»÷¶$–C8ãGIl%¶Hk‰åLSË¡ÄâõÅå4$À;£Àî{’¶¤Db~cò_ÿjÈO endstream endobj 421 0 obj << /Length 1658 /Filter /FlateDecode >> stream xÚÍZ[ÚF~çWXê TËdîU}h£&JÕTÛ,‘*m¢•ÌÆ*bƒrùõ=ã³¶ñ.6Ú‡•‡áÌ7ÇçöÍ™^~ ^¼"”Ie0™B"iX  < &³àvøúÏ÷£1xøG|Ï7þåú¼‹æQ%ÓÈ}|&Ûp1ú8ùÝB³@´dškŠ4ѰsŽJ,PzøÂ=„±k¿MŸdp@•…LÓåàö#fðÝïFÜèàK.¹ Áˆ2 ãEp3øk€+oHLITd¸S%Û¤qò°N£õÝ×åz}—¬f‘ýô $× ##,ª}¼®éÉÂfe NèÙ˜µ†ßYû+ÛY™ ˜Ww!p<—2 § Ê.B¦ŒK$0½X×ß¼¼ySF°Fû?´ªçdO A­ 9IÙ¤Z"¨Ù—¦Ïί°GŸAÚ>Û€¤Ï ­é“BÙÛÇVôI!ÙŒ>Q€­à$|ÁNõHí›ø“Rð€Þ£O»[éŽ J1˜Wóó1(1 1*ÎÆ 5ü~ Ú_Ù Jì,È®mª,zÐsDCšIu>ÃVñ{¶·²9 7,>`X-¼)Ej{İ ãçë[Àò-8†Ñ»ªs NB5$Àb é»éŸˆé $¸f¼¦ÈðªeºE ‚éó9½ŠßÓ齕mãtÂÔQ»qx…‚¨ãïQÝi 'aç£|VPÓ1.“@:ü|—s5üž.ë­l'—I0“Oº¬)#‹¶ÀfQ¯ÀyæœN©À÷ôI_U;¹DP¤”?^Ü<ÖNh0æñ"º›/‡¬“öE»ø‡i$9Ÿƒªø==Ô[Ù6dž‹8ô\Å?x¦«$k™4ûÞ¬‘´dÜIjˆ·–\ÉO­]nŒ@/ÒºdAIÛÖýå͘woÝŸlÒ¯ŠV{æÛÍ4Þø5÷áôŸLeÛÅæ‰=JZºíЮiQȽî$—z'.Õ0ÎÜT²òiôy§ÑÌMç;Áì½_ù=Jý t÷Ë8 7…dq€²ñªÊñjh~ч«Çž½¦Œ#8°R·MHp(üŽ/ú{÷ i¼ƒùèTûÙiœ7DöfD²Âj¸ká@îK¼XÔ¬qø½·É"ʲ&})aˆ úß¾¹ ƒ17IÆ«-,ö—Do tDáÌGc¹ì%E²“Rý¨†óÿ^»©}> stream xÚíZKsÛ6¾ëWð(ulo‚ÓSÛI=é#umåÐI2Z¢dN%J%©:ö¯ï‚)ñ! åN>$D(ðÃ>¾],ÁÞÜÃÞÕàÇñàÍÏ„R/@¤ÒÏ 3²ŒA‘së)Š–œ-ÂyÖeh€¡ËYaj—]%å`VpÔÐ3{fps5ð>¿ßÆÓ„¹[§«OÓEtf—«hiçÿ«.6QvQ76º]rp¼O5„±²Ãò³xuéÈ1"¸2Åd•äa¬]ÇEÁ‚ý „.[Šq m€B«D»^Žˆ¢Ù*]·VÿF„h7§fR¸^/4»u쌂wE é/§‘^²ðü ž†ùh)NaJî‰2ÀÈâûÅ“AI£ËM¦¹]XV(„Á~5A Í?’('–j•Ζ„á=¬Ò$$¤eÍH¸/™¦yE%‹`ZÄ÷i˜>¤6ȰÉ:xXÿx²I!ç…ªZäÍz½JóÈÝÖ6ÈÏ6/C1‚”oŒp=b B.£2$¶Î@³1æc_š/ukçpJ9¢Ty5¼™ÄÙNÇe( 6…w¤nÊ ëcáIFD™×›ü ä xX_¤iøTº ¨ÒÄŽ«Ë4·›€´‹!æQ[ÆÁZ<]‡-„‰}V °Ã¦ê)¸…¡MÉ©ïS}©:@Û9€PR—¤Ã#ÂHxB}kZ»‡u³@Àîëûê°Es¤ °BDÙeËí§ ƒ eþ¯ÅLñ{%š¬)F’x»/£Ž/Í~UF­•ÃñQ:P1¸&Ëî·²Ìâõ½ó‡O÷@‹ÄBøA?»€%±ˆ;‰9EœÑ®zl—! )éŸ%£ ðÇAµx¼Ü,]‰³/ÂNrˆ§Jߦ H©zÒÀä8 Žƒ¸Ó€($¨=ùìÖnÝ€ˆ3q@›$°ÏUi6ÈR•œçªœªd›*€à‹¾Tq9N•ã ÎTá‡Ã©*îz¸“,\ „ù™È‚1*ØÙ€¢´*göP§±i8ó;õÔ¡Hò•ÊÕ*Q{4çPœûÜö&Ê7iÒY„‚>”‚eIkæÀß¼{u}óöúî_»´Í)¹,¤'“(Ëf›E#\ÂÄ9>ÓI×2Qš–Xzóv(Ì·ç;þ›¦É',0ü!fp­^D?®†|Ì=¦¢¢Ø.õ{% %Ü£p6¼4òf;“:Z÷Ûö>XKxKôܾè†5ô²ãã‚¿‹$Q@ƒÞ‚`éÜ¢Þ”&g{"/¥V:RU¹Wç568ø $fœ¼œQëø=ÍÚ[Ø2 pP +$iЈ“±bß7×ЇWð £wuïx„é-Y· v¥ïöÄ”·3±:o^¸FªÐhôå¼^ÇïéõÞºx@}îû°áÀî Ëœ?G Ÿuy·ð£¤ÿ§p]ˆ¼`~«ã÷tJoaOr ÷‘_–BõÂB÷!搜ëq?µ§žâ"Æ—üå\TÇïé¢ÞºlC•‹ü­Ú¾™cÜ´½yÆÙ‰¨Ï]‚|ïìr¨ˆ}Ù§¨i<÷_1 @Ó)5ýÂF+Öô—Šás”ÚÒŠóeœ„UGöÃO·—|·½l«ÊÉd•N[É »ÙŠ®Êö‹²*¶®WîÃÉß ˜4Ê6‹|Ï;ò›å:¯Y^oÌ^o̾ý3úzcöB7fòõÆìÅoÌl:´ýß¾ª]D|E€ïzc¶Ý¾:.j›ãÛ Æc™p¸K;Y»VSQ#`&û5]@Ž6@œ›Š„³Tà~ A Óó\¬HŸJÊÿñâdéÛ4BEO8€§ÁqwèÝÉWŽ×+ÄÉ™8 ç•±þ-]Cœ¬d›*€@I_ª8€§Êqgªa©œo!GŸ‰*#Ìå·s qªnå"­s>œ™ƒ6Ëÿ8üƒ/ a endstream endobj 476 0 obj << /Length 2117 /Filter /FlateDecode >> stream xÚíZßs£F~×_Á£”ZÏÎO`êžîª׿îö|^åáj“ra4²© Ð Çù믇 d#c¥®*yØe@ÃGO÷×Ó=ÝÆÞƒ‡½ëÅßÖ‹ßJ=‰¤O}o½õ„|ɼ@Â5 Þzã}]^þauE^þ#¹O6™ÿõæ“ܪ­Ò*‹•½ýg”UQºúiý½f^Ð>3Ð<¤($!|¹F%^ÂåG{Ò¼³øv½øï‚À쑃0ð"^¼[|ý {øí{#.C艹¹óÁˆ2Æ©÷eñïî­ÈŽ ¨ Hr+Ê­*+Ð]}`ïŠRD)9šé¤ÔžÜ^/¼¯µ ¾¬o?}¾¾¹ýöæî_¯§6⸠ÉvEÅrkVTq¬Šb[¥ìƒ\Ûk”½ò™R'ÙÃ^«ýŽÇ>£´n°â|£[_O°>FPØå-¤5ÊX`øG,:’Â|À\®†b(ÀÜóC‚¸àÆPæ¹ >¢„{ÉPzZyÛŽeúhãO?³‹æ˜˜Ùsñ-)ø «¦|¡‹å#Iå;[Ãé‡{ÛÐ$ª È;töÐPH­“¬ìña‚å„Dp/¦Ø>þLÅζq)Ü¸Ô Šõaó}lèó1®½Å=Þ#ÝKo ½+‚„/í¾ißïËç ÄB¯31É,?LuR"—3u¦©g ;ÅÔ„DbÁVè gëä7u7ð£c»XËï¢_Sõv‹°ù/f‘>þL‹Ìö,‹pxûÖ"€·×ù6IÕÝ6Ši6:žzމ(¨Vx1õñgšh¶°SOk" Ùw DœgÅDŸ9¶fß8„qŸÁäí1Ýýqò«Ù¢É_&ÛœA<'™\O§Û>¦(àNôPI¤]:]>ºA’í«ÒS:w¿*½K²¨T{ÿÃú»«Ð¥•µz]&ǹ޴·e>Àî¥}pÊûcšªM&êðŸtRºwî£øçŒVE•–'¾Ñ‘ß~®NGMþI$™ °ŸsƒO¤y1*íè9¯ì`WîÐlÅñò—庇¶°7*ݵ˜–ÓÏE©vnjšÇQªš™Fp3rª4Ã{µÍµ›Pµ-Zâ¶U—Ižuaº,”:¹$­©o?~WæwU¹ ûùö¶£ºú’ØCW(–aг$Üç{¥##š½#7PFs¿î­a>¸£ :O‰@4Íùíó†¤fÑžó’l“ÄQéðssôy²7)dD$\> Wq¿¢ i{HRºy1u ngZM®ÈÒ>7æ+ÐêŠÓ`¹®mc¦6¶©5hè‡8g H8ý 韒4µÌÌò²¡r´éŸÆ:Ôo¸m2º(žnjUɦuܨ¡;$£\?ª1=›)É;õµak¨eØv™lfµûEž5ƒíäÓcëîwpaÇQ²žÿ‹±F”VªS±]Û`¦“WÈZ"u¶êá!úܪ¼¾ŒŒ/S.j œ^ L[àѸäUÀ D¯Uý°61€€û€ïï€U ‡Ëÿ¬1fÖvR´ß§†Ú†µ‡Á3ëaðæF™OÖÖ€;¸:ÚÐFœZ•}¶(Z]Ù¦Ö¬fAŸ³í¾ú 2¥“x|#/£{øÊQº‚e<™ÿ¢g÷ëÁî0Ä ²¥R/O“{éç•/–2TÅû/Ǖְ;×K­Ëû}®ÛvÐÍ„rÅÍŠÁt´Sà„fGuP >È'Hà÷ŽO½°O)G”†‡/˜ÄcPnbr$U IâŠM#q2Øg°ð8x†“›û(„ÀyÕÂHëè¹ÑùØî;wÃx³ïìm‚€Ž—Àà¸$¥þpÜÅ«è˦2ÁÛš[_“° O©Ž€0.|j%}IF âƒìþLvÌvR)Ù‡ ¡ƒBh`¡Óð±Á¨B)ûö:i0lÛ™ ô›MF »àôr&ëãÏ4ÙlaÏ2ÄhÎ^*þOôFH0HðÆfè‰bÿdóâ‘]μ}ü™æ-ì¤þ[c^H)yów@è¿Ó¡X@ŽÏ—† aý4d'¶Že®¡a†¶!Ãx¿!c~q]3l*9fÜiÈÔ˜ù»[Ç3÷M¿"Ks²c>·=ó›®ã@ÓŠ±‚ZÙ"{ëJ‘¦þV‹’š„x¤ô`“:1eÄ?û53û5ë¦êJ9#…q.`zÐÔ»óvR¿ž"8zàc Yt«õn%w£F¶?<k²0N˜ÂU”¼+pá˜v=c…¯´+Ú¶F±Wqb=àÝZ³hwª8~²»:>¬Ã¹/?•§¬~º_—20ùx þ¤ ¶$ßjzìO59ìÆ˜¿å/5ÿsÎþ endstream endobj 390 0 obj << /Type /ObjStm /N 100 /First 889 /Length 1961 /Filter /FlateDecode >> stream xÚÅZßoE~÷_±ðõÎîÌÎ.ªBK!‚+©PõÁ¤×ìÈvð×óÍùê4 ±k©ÑÞ­çæ¾ßì51¹àGGÌ“‹1²ã˜0Š!ŒÙi°yu%UŒÅÕ’1VGÅ% Ž¢Ê(Aš¸ŸJ)Ð-É‘&»`GE¡MÄÅ@ÉÁEÊö~c° ”¦qQ QJ:J2©à錧û7䌋lÂê¢àå‚ ±—ÛL-Ž¡4抟Â%FÌ@a…êÅ<âPpa¸H"aéJ£àqÂL™ð³Y!™\ª3fg2;© ³­ÓÚ¿šû5’ gÃmÂxiîAXavŽxEI?Fµ—ö(+ÕdJC¿øÙöÄþbÙú¹ß)ÅL"»ƒŠ$Õ¦Û*9BcÇ’âg®XrÄÏ’p‡í`1Ì ³¹ÇŒÇ³aNx»Âœ B±yý"µª©w\à0lpK1=˜­¦5AWíñV'«d쿘k0üEÕ@9ál ÈI†EëÍv‘œÔ`0ÙåÀ&#.Ã[p‘]Nöf¬$.ŠË¹_ „UiÄØò\`cÆ.çb¥®f± 6sã¯æ/ænüÄ}²\-.fo¯ÝÕÑù|ö{·X}ê>ÿ|„Ç“ÕG¸KªÕWøN37% £­hΙ.v÷þ=6¯^̉?€à†=.ççÓËîh5?z·zSvo–¢¾Â6f äkÌÓ,€k³|Á ³˜1Ì(kóì¼U­ dñÁJ@ªá¹ÖÉ“çÇ““ÏOÎöÄܤ½eÈÕ+ëVg/NOž59ýrrôý—§g'ß=ß$lQA"Œæ4HÿÈó^kÜêŸ-[œïJ,udbñ–eS€µ’Þåj1s¨zs9}»Ü*…O#Ï&Ü‹Q†j©0¶¢Z®º«} ‚+WÔl™·º )ÞëKÏŽÀßäèñ×ǧg{ò¨(ìHÄ& ÄlIá^ƒ­¦?Ã\Ýe÷[7[íGP!ÁË|”Œ!7Ú˜<§ ì³%&†É25úÔðPñ ÒÀS°e°NŠžBnÄs˽Ÿ¸— š‚;uã~üÉ‘1p…ÝAÓfï./_Ý%ŒMÉ ä kÞˆU“,¼Œ ¿E6+XKmÀnÃg¶Y*äÔ°I6ZR“&Y¸ªñø&Ñè+7j5êÆ·EŸÎg«~§ŸR´žjýÐS#¬X×pÚ]7×`çDÔßAÅx²˜ŸŸuð(7ž»SÜɃ¡¤÷¡ÐaZõsØõHÇ1 #£ ã@Üëq· •Å™¢Í1þoíJ¢S´?åŽs ý0Rší¶ñ¤jß:íÚY«~ü^0¡2À%’ï¿B pÐÂû’ù€§0öñ•LŽúŽÙΆ¸öÇUÝJdÎ>ìÀ(ö™†@±“}1R¹ïøå»ov}æ" ¸%^ãAiG=«ƳŸS¼!Æ"*ª”당ÞÉZ>^ˆE¶NH¯CÌÌ&B‹1ŠÁÏuŒ‘m_¤Ç8‹ô'Âë³sþ?6²*(ñ?47…7|%Óhy‹, ¬©M¢©Z«,m²¥€9´ê…Cq£l ˆÒ&‹ð±ÏM²ˆ¼ÜA9·õŽ[d }ýêrƒ ì¾‡Ó÷ÏŽôgGöѵ§2P—> stream xÚ=OÃ0†wÿŠ¡î¿âA‚ª fª:„ÆE•šH¤Eü}œX 11ÝkùÞÇÞa!®£˜ß’ÖÀнö÷à¼òl æ> stream xÚÅZ[wÛ6~÷¯à£´§A‰ oé“íØ®UÎÊr÷!íÑ¡%Jæ©Dª$Õ4û°¿}g0EJ”"×ÉîƒMsù03Êu–ŽëÜ]\M.¾¿åB8‹|á;“…ãṳ̀Dð ¸3™;{w£Çþá¹½aú”Î3j_~Pcœ,’"Éf u޳m¼êÿ6ù IK'Ò¾DÒ*,ä!쬩  ‚°÷==¼×\ÜL.þ¸à0ÇuøŽX(=g¶¾øø›ëÌáÝOŽËT:Ÿô̵ãq— éC{å<\üóÂ=.¡2×s0Ï ˆ•4;Ü[Å„@,ŠÄþæ²±¹ëÉ"n¶îØRHà7õ$󤲛n¶é,.Šø35?¥Õ3µ'·oBä è¿áœEžG ˪H³%MªrznŠd ;”C*°@ä¿\Ž _07šBæ8AÃTé©Ú mu*œE¦~ØADªˆñÈ;‡ˆàmNŽdö•OªÍÁ"Ç‘Àsï„1_¨z× ö…xHã§U²ˆMžfURtaÂâ Kpý§•AS¼Z峸2”8§0òR 1Â% Ã×bä "_ÆÈ—‰œ?ŠX F6Eþ«ë 0ÏQ¤ø‘Ëxð•âz d¡½³xml™/š6ÅãoAƒ»c(Ù–§<Å‹¹?@‚Á+Qp‘/¢à "ç£ ðX( @É2^–'0àûLøü«`À9 ]ƒXïIÛK‡㻠磶íC ˆi…i“[÷ÁAžgµM¾3+èéž‚Êß’G´Ày_¢ÜÄÊ8©¶EVÚ$¢©`ZP0?˜yB%“ñ`t÷a|óazÿ¾­š.Pv{¢¶³YR–‹íjO±É|’¢°C³|N'i_(`S‚Í‚fÄÖ6&¬ï CŸ_]Ï…?NŒ=7|Üí%C’®uEL¢qÜã`®Á¢0rŠÄY4²Ÿ6µîÑà ¼yܳa޳_KŸ ½GßfnçìФå³HD_YM®Xºc›2GÚšªQÏÇc(Ȧ³<+«˜I¼|Pò{°ëýGûg¼TÁ9d`V¢ûsq XÿÛ™©Mÿ•fz5³öl»ölŸ0“ç²PÉ#G/ß7…6B3¾¿iøÔbv`óýéšàÞ<1<þÃÙÆU€ˆà5‡|ïyüªçéØë<ë+ÌB¹~Î^OèQh_»s|Ô”g/“¢}%1«èí_U;ïèö&ÏiÙ6¤­Ÿ}JêleÞ&ÝL˜Í6ó4^fyY¥3ê¯Á…Çˤ½®zÞ‘,úž×cu–—#iNv+\¼…BH¨Ÿo’"®Òç+|/d/˳7¸'öÔNyQo¡#Ì[åËt¯¨3Ë×póLË<£e›m±ÉˤԊáMe^ß&ýHö.£‡éã¨/½ÞåÃÃàntóî-Ñz°0:à_+”^l³¸,Óe’t¤µYjð¨¢Þ®¥¯Kšyè|zNgxR!™DiyžÒù<ɨûô™ž¤j\oÒ§>ï%±Ç¤ù0ÆSsÿãàj0!i`}-æÊJ ì³Ø%lþœ>¥ÚNr¡¹Ã§æur¬©(h²v5x7˜^Ý#K“§ÃéåèÝt|9|K -[خ٢ÎÜÒ&¶t›®Ÿf2æ‘鬪׃þÒ"™áAèB_=Ñ7äÅç¾Ç킌gŸÕáÍå»Éør0œŽˆiË­ë÷†I<§í gsjTEœ®êaŒ¯ñ oÆÐõzZ¶NÛY^QïMøõmhß”‚*WgÈá·±­å8 ©t¯¨ï’z-CßßX@{žTÀ›£q€ÏÏõrÖÅ~ƒÏIŸ‡½ûûéÃÏ—Ãáô ÝÎãííÍù‹ÜÞÕ–2a­™ˆ÷žAãzçˆ<Ž-¶\’ç*éU•ç4Z®ãÕ ´€?"׈¯·å†?Ó”4›§TšÀW1 ‚FžVÉšÆR³B¾Ão"·ñf³Brä‘¡!´1Åí`x3½S%Æ…}ÚÝöEšGQã"­_×rb'Í0ûKË*É*³ ®»“’fZ)‘¦Žl.ÅÌâÖìíÂ(@D6lÁÀ*}*âÝQ’-Þ/Q²»¶ˆ7"¢U¶¨% `˜î„ôfw´í[SuŠÜ¶£‘ÂJÚ´§hÙS=EÞrjëzÜ84÷=q´mOÝÖNÒÇÑ{p>þ5jÚö--AÞW¶ #ú%UR°µC0ÖÏ´Ÿ€Ñß³\WÒ,—9½¯,ñ–)NŸ¹ø…_ÚV ½ÞõÎi‰Ðï%)rtØ›µÒ°RŸ6\DàðÈü¼åôG·ï¯§·ý@ûR ‚d{ ¸‹‘0Šs»˜®³ŒN.\ˆQ3é*™ë`XÓ«&ÈUËôÊ\“Uäºga­_ÐÓZwÖ¸QC.tT÷×mõ):·Ç/ý0a­kŸíËuãÖ¯šGZ¹¶ò{ ‘…M'×;ßßÎ]ís§’]VJ¬´êÊÍ;Õ LiãC_gu€S ¡³ÌJ/pÀ¬ŒG!­4wβ”ˆàÂy§+6F_¬KIW0Š—Ö¥îF׋e§¿+DWÝIRWÏ)О^‰Ý ›1éåd3:kˆëíz(¨l›”pdfÆõš&˜øÐÜè€ÏØQ%¼7z ?‹½­&óôXÀ¦O:óÖ¡e‰©:¥(‹V 4;5R¯M\Ô«:A³ÖïìF&4èÌA+fÖ†&[c¬ch[{q».f¦ë ó¤!”dWh”ñ—Irö‡«_nƃûQWâ´¨?PÙXi¥>Ðà¹þ’¸ ðístðÝžÈNnü|à Þ Þ,ð(Þ[¿ÝÁÖìwýÔGÁÙƒƒù7~éó_?ÒéÜ endstream endobj 522 0 obj << /Length 1569 /Filter /FlateDecode >> stream xÚ½™KsÛ6Çïú’Iýì] DR”L‰V> .û_`€ptáèÕè·«Ñ‹—„ÒÈ #©Œ®–‘H)WE¢«EôiüêÝõdJ¿oãEâï}ÿÚß|°K›Údný㟳¤˜­&_®Þ8Ó,Ò`Z2gškŠ4ÑÐsi•Rø@éñ Æ}3úãjô8"ÐGdç |ÈD4_>}ÁÑþ÷&ˆ}+[®#A0¢LÂý*ú8ú{„Pj„E¤¸BB(ïJjo¾NˆÛ4‹7ɾ#”rD©ŽSÈÚö„Õ<ÁeÈàGGÿ”ëÎÁ`Ü{ðÁ>qj>†u_ÊI±¾µé„ãñÏÎ9èdJ2Bø¯7©oöîúí[´ï=ã ‚‘çzOLMÄJè^R9Ÿi’Uš× ŽR ¡ -ÿ™B#Ëò4Nîüýfé¯i‘Lóxjߦ³ôûD ¼oW®¿‹Ã—ù½=f¢|Xll¢ºÉýÍÚÚ¼m — BŒQv#J0lFéåÇøÚ‡›"‰ç‚Ç÷³ô&ßÜùRûôÿŒ†?Rª‡AZ—Àîòª5%R˜G’Dq9%Ü{A$¢„Gm¢ÔFËÚhZë~»ßd)å²êÀ&®õPû>Zö«ùÛ§‡º-‰ 5Ïàli.½ v?T xTŠÊk©/™›·ÌK'¹W¬Ó|§rÄ ™q±À6í ì`gKƒ!°ø‰ÀÂJ!ïœ3õùRwôi*1.gOxßîl £7-¥:Z–¶æ­ü’ÛGY¬ƒ"q1e›ö*;ØÙ>S†b…˜ËI¨$+§e3ÄT"m ”4$¤ñ~:¤¦@LGµ†›"¿-–mÉÜJúKoÙÀ&3C–ÒÖõ0V Í'¡,üÅ„okKŠÒ,ÔEÈþU¨E.b³ynCÙË7þz}õrª{”Ÿ÷fÓÙÚ:ÐYg¥‰ðДjD¼T‡IHPŒ”|‚%£<‰BŒ2 xýñ/‚%—!˜oö0çœîÛΆ¤+VšÌ#&4e‚o‘³#NU/#ÐTIÝaâBˆ>F(izrz ,v3gBñ8ÌžN•989IEb=€W87 ÛöþPèªÜ b¼¬(×sY‘…&÷3ׯO•0Oò.^ÙYõIÈœÛïyÅ{_f³¹E˜#f~ô¤ZiÈv¥iY.as¯24¡qe“»üÞß‹W«àíòt¾YC*Àœ%‹Š;K×_w| àz¿¥æFGþMç¹M¶«…ŸíLÕæöb»Š¶Åc°8RQíÙŽl.ÎM•®ÝP¬÷悆¨x&oH]S?DåD^à(ÁcÇígñ:à(g—ãuæ6š_ >Zö‡ÁÇpgOÀJÆ9`eÈ‘n|Z>XÂÜ4¸Xt›öFw°³§DvC’°£gø: ½‰’åú˜dûÄÞnæ‰}Ÿ(±A€ó,¤|B“Œ:â•?„&–@“â0MjSzœÙÇ¢:¢SaqÔ»ÅQៀT‹ðQxY¦¿õÌ©*{× ªC°òaÇfåqÈR"”ÕvÕ¡Æ YˆknÍQ±ªEuV£«³=~ظ=wéŒwj;ȯ f«x±ç}ct;w·ÇiSû.h³(¦6+V[,OCq-’…ýŒ1…ýììÍ8"JÕ³°“Ê(ÑHsó,§údÕA^@ï2Ä{» yÊÔàœóZ´á¡Ì%.‚éáÌ!uÁ1E"{у;Ä {ÚÉŸ“}‹W­ì>¨8©0¤kœgü,l TÀNâ‚Ø@lUäå [Ëþ°Â6ÜÙ ! )q àýåt€æ¤óüâi1ƒÙåŽY[öư³§ÄŠ›2ìøœú±TA °Ž’çQ á܃E»v~¹ã¦ùa)2ØÕ>B ,·Ð—@ºúý,Ëâmß^ئŸ+…EõåŽx›æ‡I1ØÕ¤Ðˆ'”Ü%"¦~…T=çMhçvÝT'À\i$Ìsžòî‰ÇÁæçüJý?Ãù endstream endobj 548 0 obj << /Length 1869 /Filter /FlateDecode >> stream xÚÕZMoÛ6¾ûWèh1Ëo‰Ø.[±-º¢KS[Š-'Bm)“¥¥ía¿}/EÒ–dÅ–-»ÃN¢)êáË÷›O‚½{{׃ß&ƒ¯¥žBJRéMžH*æù ž>ñ&sïãðúÝíhL¾ïâybÆ¿¾m7Ñ"Ê¢d™Ÿ„I.GŸ'o44ó€–LCó€¢€°s‰J|àÃæ!”þfðûdð×€Àì‘­0ð!Þl5øø{sx÷ÆÃˆ«À{*W®ñÚ9gÕàäLøÞ˜ˆ(e¾“ïú$¥QxÒ—ˆQÕtJVqJìY}ŸlñAÊÀ±0˜#Òl+;YGÜŒqЀ’'¶ÅaŸ•„íC °’ ¾‰·º~8õ»`ÀJ_-Œ+°‚è€AI]ŽËi C¸cl5¼Œ’=†å`É÷ë HÙÁ°Ò‡9â"ʆÂ*ü¯Š•ùÂÜ—ÉÆéÂú&ó?s ¦ò…K›Ö)›ŽÍ¢zÛØ)Ö$a÷ºŸppé6°ÊÙ AtÙ5¿`|µIÉ6Uè\2uBÖåÙ¤ÐJþHŠåâr'!$´Ç­6Ë®[•¢§_w9ìØ‡Aº{6ňØçÑj=}Êâ<ßëâ˜#{ÇÅhWY/Ó™«c•l¾Î7U`I±º‹²¶ÂA`󖟾»}û¶\áøfŸó¨°ZY² ‡ð!Ü”-N7Q^dIkE‚Q æ"µªð˜Æ‰®c5ýÚwITöËovvYZÃÕ²™¨–›&Z^¸,U¬m¾³3ó¨y÷­a’,é„v¨ÌF h§Ålͧy:-òE`úAÝ>è o¬–Õ†ÒëFȹ'°Í%ÑÒó‚H-ŽG‘ ”—EÞ¢ÚÖÐÚgw6àJg4ê60ÀD¯î‹oÜ¢ïÚ.;T±$RPûû [Âe÷÷ÆuРѶn8‡Æ€˜í™tÐ6ëŸ2B)ˆÕ˜ !íâŸ:—ZŠ]N÷uüžºï-¬KZØ%­çuÏ((Áþpª[c,±éÍí|ÓÎÚ†i‘_ýlW$ T@6btZ_ µK”e®ÅÖ»@±À«,t]wÅ®ºú‰Ï‘bür~RÇïé'½…íâ'D0l¦{~¢YÚ¨WŠ!szõʘØR¯ŒÉÒŠzÒ¾«P¯åì–&Õ‹íŸòô› õ ×K½êéŠÖõOC½êÑ]d jÔkùÂnU*W¯ÐÔëˆ ]Q*7€‚[¾ ³ØþUÓÙ¬ÈÖWÏ»ômîS~lºf+_‹ù³R·öï9ÝIà|L“Å—Ù4I³U¸Œ¿ÆÐ5D'„Bóv9:˜Èœ\ìŠÜÀïwEî/ìt0VAÐKÒÁ3DƒËQñ üžºï-ìt0\Ä‘èXѹXáæ²h×ê"ÒÅg„4 ôr„p¾Ÿ£ôµ‹Ÿ@£ƒ¸†ÂuMr:øf*P¥œ˜Úå óSþWì_èÛ¾º endstream endobj 567 0 obj << /Length 2345 /Filter /FlateDecode >> stream xÚÅËrã6òî¯`Í%Ò–ÅŸ•Ó¬cOœuf¼¶|JR.Š‚,V$ÒKRã8‡ýöíF7(RÒØ²egOÁFw£ß ÐsîÏùtôÏñÑ÷gBJ'q“P†Îxæ¡&ʉxFÂO_Ÿ>ß G2ðù$Ÿ4þxyNƒ+=Ó•.2M¯¿¤Å*] ÿŒ¨•êP!j?–n,b l°JDñà{z ®9:ýçHŒçˆ53°PN¶<úõwϙ·ŸÏõ“Øy0K'ž+Uã…s}ôï#wè=¿Ó@¸‰O,”ÅÐ÷_‡"誩³$¤øHuSåC1(îè5/š’¾giQy›6¯³²ZGJX’Ó´šæå´,Ô«lN£¼®WÚ’¨ éÃ\7s]uèúyZ¥YcgòfNÀiÁpY¦‹Æ"¥g¥ï+]ôž2pÝC:IkòጠH]b L`ŸY¹œäíç-I—¶æ'=j^°M/€à¾¬µE×’ ‚Û2¹‰RÄÈxkUà gºÈÿJ›´c¦–å”?âvñùùì_'4úÍ ¼ôròå—Ë/×§0'\š9oè¹ÖŒfÓ|6”Á€m™'›yjƒiiÙa )ƒgežæó'Og%è hÐ bµo–×»Äo5MJÄB–8ZØ}«ËŽÂ[EùÀ.}`ö¼±&ÛÝ%‚3dðk&ù"o?l˜Cç߀yƒÌU{­ ¯êúæòôêúäêür¼kW㟮NOR}ô10aY¤7ôš P‘†>®š»èkµ¦ï?ž:Ó¤ÁÏJÆ÷3”šMÓÅx^ÌÌŒ1"Z¦4˜0ÂEY7<3”Þ`Õ´,Ñ÷eû}­a|+ïux!4”si$ô”w±«Ôórµ`—˜hëiEOÁ yž$…ÀéR»¤sv½J7«ªèûXÃjÁß9VÿvÜÏŠÁS8†TZôp-Ó?sp¾Å#½Nõ6—#½H:‘¶­„G´ëË¡Œ°’«mvè†c“ "g$cW$ ­„»¤ô])c'”Ò ”ØÌ ª“<‡¥OIaG òˆ²Ð› YÞýÍølÓBØ?oAqçns¦|A¾‚³5ŽPº^¤ ¥äS(€B$iS^_B¾ŒöB Qï@¢üìƒDŠ>';äÆ.JÙåÆì ]|[¹A»¡|F„R¹‰ØC·ÂwE¨ZªwÖ)Ê¢ŠÈx}\¦ÇÐV)l‚[Ö ð²@Ç„/gï™<6º>n³#‚Q¹B%BZ6¼n'"qU½ˆœºX-Fàk˼H¡xÂR_)æž³sD`’ø¸â¸´ƒa `PRÊž«“éƒ 4rÊ,múwÜ)Žnv·m„¤*Àà㢡©žÒ¹c“ÉzgàI0ôØW½øGìCš¾¿]eµ[ÌþÈn-‡ÃÄsM%0¦º¸B7‘É0kVw ®lÓ­ ¥åC Ûð Z%oRcƒùÿÏOó:¾„œÖþ±§‚ýŒOï'ÿ>þå0³/‘¬\é©=üKohezžq4žÇ-0M4±Jƒ ¬¯ÌmÖÑnÕËúUȇ;t¾(pUìtmÍÓ1¤ã}í%ŒMry7{éã?Ð^fv{Zâ1Z'$ŸÛüº»¸ÝSŶLéècô{ë$f¢C‚ôÞG¾¸ž~ó,c]Øßœ\ûÝÜjëÓža»Ð9ÒàôÉé·ÖäQÂÊKtäµFHÞØÌâ o째µW2n;ÊJ[ŽÚ®íÿ×h¨V$oÓg¨Øw“(ê÷Ô]ïÙ\¼˜›­Þ1ˆDÖ[ìƒäÙÞb${÷P+ƒñû{ô }×ߤµP‘r=[˾Kk‘VUú8 ƒÁqÿ´íéÞ¡ßnÏÓ“¯n!^'Í]„WQ²w !^ÐBìð±wí'âäï¿AC¡<ˆéà(Ή­Šw¹Ð·ÙÚˆyJQO7¯ê'dèäûõØeEë†åÍë“ ü‡Õ'‡3»U[~»ž•ÆÖîîús³L5Å (în;‚ÄøÒkÚ a*zǶoÿj:˜Ù´Ò‡ jÛ¾NÚ@ç{qÇñµÌ§‡™Rn‡K‘ ˆÝ8ä<{–ã‘H ây9²UU™Û |!Áð’žÑÛ¹ßÁéÙªÈèTß*]ß›+|i,ÌÉO¯®OÇô¢©®Í«²X¶„¾bðO«<,ðšBzr}ŠoP=Þc9‹Ù_W5^ˆà¨XÜ.Òâ MÔÑÉ—O’š›øsÍg|ùFÒ¨W÷÷eeReïˆ~†óÉ`šýÁyƒñ|øx}r~þ¡MææÙî—(ß ñÖÁàÍÆÝ\g »WXÖú]X\˜8›¹­=7¯ã>— ^o_‰ Ÿoepn­C|³ˆ Zpz¿ ÔwxéÇ+É@º3àP3]™ë\g}Ê|C !û„¹Òét½ÒW`qá5–Fظì±\1Êú±nôr—ÞY„…Ly„†šÿæy2ÃéˆÉ×|Æ ]6‚iiîaD·‡ÜÊ&H¢³¦Ï̉™4U8˜ðÇUm´dHŒç+> stream xÚÍY[O\7~ß_áÇöÏŒglW(Rîš&hÕ6â’%B¡»hÙHi}¿9äD1EA ŸËwÆsó7c“ …rá@JKàÖ0Ö 9ñ±VÜã™à}u¬b¤ „g•ƒš`”`©ÌrÍÁ\NÕ`ÍqŠ4Èi¡TÇ•P¹`¬¡ǵи–BSÈk(%JKÆ^gˆ#jÐ¥•@’üIÅEö¯ˆÒ„‹l®¿2v9-PuЍQÆNÙfš80AQMX`&X/Å`r œ9áIÅ ÔÔû{%¼Ruó!G¡”ä˜ §°U™)IàÂθ(ÖÀ•Œ¹ªºªÀ4¨ LA¤º?…ÄŸH6Ã" ˜GàfÕ™²â6)›Šaq·*#TêV0ä(‚¤’‚˜KETÄÜ ¼–âV`)n…ˆ’˜ +TÔCŽÇp4·B0Ws+‘Kn… É­À™`Šfă²«áˆ—â&s«3Í2~ðñPd‚â&…¯fâ±Ç¤ªît˜2º8·ÝÜטTÙý°ºÙ ~Öì>¤ªn6¾Ps“ðX]ïârð—Ÿú—Ù<¸þ;Ü’ °ù—È&5OçÌ3Ïi5Ÿ9ã¯À£êñ¨pÞõ\Åû`£bH8#VR0äÖ¸dŒ3Âcä2d±ÙæælØý÷d†û‹År=vÞý½ïŸ-ÞΆËÕëùêU¢L{ÃÏóáá+ofÃöü`^ÁsqÌo¥Èž.Ub‚ÉÈ÷HbÀÝ››aØ ÃÓåî2 §ëÕÑâÍÉj~²q¼<Ø?žo¬—ïÖ‡õÇpïÞ ¿·W‹²Fd‘kX5Úa²E.“Jí|Têdµ<<‚V‡ÇûoN/ëôÈíUL´†?þü+lEA×Rat ‹wÇÇ{Ÿ«Ek TI¦]X«%" û +r²›cÉÔ‡-K픋˜WîÔùR{ÝSl Ål¶‚ˆ÷é+¬Qk_ØØZ¬Î>¬D'î>,2²Ó`ú1ݺ°H30qV o¯˜c¾â'ËÅz\OOˆ½rŸ}„/{ç7`þv~ '¢‹»âët¼ƒÀakµ<Ø™c ‡aëÑ“0ìÎ߯ÃÞUZØÚ3Ÿ 1ï|±>YÓøâ?]¾[ÌOÇ*<>úuþúhÿÁò}é\ °P3Ò¯¶öW‚4*wÙøve¡Ÿ±Ûgzë\è7sÕWºC“^w‡ø¸C©œÁGþ=ÅäÎñ®’·0>zs6Ò‡‘Çqïnø›Ì nÞeh$¯^"Yýj¿RµEBWe^TàO* :JªÆÜ¦uÚÝ~öâéÖöã­—¿üôðþÖÎÝiƒH vÞ9QLÞ„ÀG qCã›N¹öQqïN‡ó0q+Q‘ÜPý›wŽÑr})N«;T¥pTïC¸Fƺ¢Š{ôá}16¿?ÞÞyöòÅ'ÂÊö&¾»Þ_Ÿ/ᘪvaÑ'Ç^(êQ-Ü)–c1ê” &H}rùè\Óƒõ:—ZíÃ:ÛrŸœà²”;±u{°„Œ.Ò'·¡$rþÎj¢2R8Ý®ø¦ð.Iž[ÌØÓbÅÛ›ÒÕÅ6O.Ú¿=>¹L™ú«õðyµN+YÖ2Ø®R'–¢%éÄæèG ]Xôl¾]îÂú:-¹ ‹Ýp´Ò§¶Ø +íŠbíQëÄrľ·‹^úb!°M;mcʼnúl£Š„Í}: 7Kéâ±¨ÌØ };u p›vÊMKëË3ðH• ºÎƒÙnɃù¬Ùõ3¤³1õNùû^?c€Cü\1Ö³Ô¬ôäÝÐ4ׄ6¢^ð4£îUáo¦F;"½LµŒÝG«6î̩ѷRC¦÷ñóÈèç]è|©ðÍŠV.7è-/ƒ/ŠVŠœ» ŠÍJžâ’),xjéâ§âÔ:åÒt8)¹ßé†> stream xÚåZËnÛFÝë+fW©ˆ&ó~ «¶hŒm‘ºÊÊ E¦léRT gÑoïrh‘%‘¢h/²0HKÃ3—÷Üǹct‡ºý4½}GC[Åš-‘TXYŽ´…«¦hv‹nÆW|œL™$ãßÂ/ám”ßÿøá×üæ:XI-‚ü×ßçÑv¾š|š½wЀVÜA ð¡vÎP™„´¿Í/ÒºgF¿ÌFÿŒ(¬!ˆîŒ¹D‹õèæA·ðÝ{D°°=f+×HR‚Wp¿Bþ‘ÊR[2£•[‘›²I“0º{H‚‡Ï‹8š2þ7HÀ,2Nsãþ&’ÀÍL$ØJï.W5ƒ9ÖD Í%–"3Ø}.©ÂŒ İ5%Z–,¬¢5º¿XUlS·º/¾wN¿ðn›ÊX [f/`l—ÜyÜë‚V°(£U”ieíy]ÜÏ“œ2Ÿýç>@Lac-šR,•Íß–\ʱbz8ßWñ{ú¾·± ÷=9á{ˆsKeSNA>¥5&¦Š,±üçuŽq´©>Ö´,Ú§š‚ ´VMï½’˜TZÖ×çMÛø +e†‹*~Ïøèml›Ü¤J`f)ì&ái哳¹ÒbªÍyܦ1Däm° Òs)V–ÂÕFq ¿ÅýíB±²[«_™âe¯‘ìúøm‰6kÖ§×®‡—RkëíÿÙ« •cW93e•Þ{‰•—ÖüÞ½i~GþkçÊù"ÍŒ[ÏÇùuÅå¿Ýnž¡vøO›4X7‘r¼ÉE Ógßd+ÃB.UÒ®Æg&n£EÆö¢°¢Æšr ;ïö%óuà̧~ÿºÇ(Å\jxP@„èjÁ®°È@y0f ”¦ÆÔ$/ HH ÍËËÇšÅI$Rxâù¦aô°õÎý$ñŒ^‡Ñ< n3‘ï¦ZYéˆxßL.ÀVu7s¡&`•„\w±yÂR.ųR®zK€VhKµ2 \@ÚB ´a´jIƒÓ•Áàr©AÓ ÖX½›ù†ç@¶_„oi86~ïÓ'Û2¿‚!©c»B¹Ú Ðj*£¿«Õûô;é¾ô·9MÿiöôC1¶œ¨ìÍ æêBÈ{(â$¼ £zåmJÿ }ã 𦨽P(²»/O¾Îq]ꩊ`"D1/û ·W a½äÅ¢cáužOšfg ›åcü:H·IÔX¨ÁŒ!´º2{eèVLŽWOÞ'«U¼È*gc9Ýë{÷áâ>¿ 7MÎcLb&Y'ï¥É<Ú¸àò†QÑ3wU§±‹M8—A°”›Yirï¶ >Ê6]š³Î„Ð0Ew¤ 8p L ¥ikøý4mc;)î €ðHA@¬*ņó}¿§ï{ÛáHA0— §òéeFÉeÆ´n9˜èƒÇ ]ÆÕTAŸ‰yD%;2”ËqUÊfm ÈéòÅÑeWq?ÎÞMÍsw,Í*G’†“\oó e|t*¡çŒ%²Ôšc çÐF­:Þ‘½„8)S¸ X™Ú`ÂEÖIó»J;…ßOÎ#çÚ×$8¬ÓE&’! à6jî•7WÔ\qËóæ,¹À 8P/¸¸µ?XϪá÷ëYýí çXq= ^`ÔBçú |OÏ÷5µƒX`Y{4§ÒéõÔÂ%þ ÑE/0ÈzA^æü¦~,L¹Pêø¥Á«»†x=¹p¶Z°-Ôu[0yµ@9°Eé%Õ¹ö5©J$–ŒK ]âW¢²é_&ä8€3þcâ¡Ï¨ endstream endobj 613 0 obj << /Length 1034 /Filter /FlateDecode >> stream xÚ½V]“Ú6}çWhÚ3S„d[²Õ·~lw6“l)¼l2;ÆØS#SÉ^Ê¿ï•ep`²ÛmúÀè"]Ÿûq¤#´AÝŽ~^ަ¿QßG îs´\#Æ1ŠŒEË =x·÷ïÇŸïm±*2åìŸfwΘ˵ÔR¥Òý}—¨&)ÇŸ–o,t€b€æ…cÇ4†È-ªÏáƒ(ö¦n`Â~3ºYŽþQð!ˆ“†ÒíèáA¬½A‡"FûÖs‹%Ø8Ø%ZŒþ‘³ ©@°1qV"£X„.—å˜ï°“Æå’¨Ìì|R6°à ¤cAAÅX0á@î~½·M±U˜µØávPS€#¢ˆÌâ¶&;Ï(Ç> ‘E,–h}RÄ9ÚåÙ/pcîG}LI›îëð]ûø=ωpŠÅ±ðÅl §7î¼g2jù O‰'@<í˜ÿÞñu\2¹.”<óC“(&äe”sÁ0â×P>¯Ÿ_…8¢ÜÕ¸8lWUéŽg^•Y¡6îÉ-3g—ÅJ'ú08ÜO…3_u·É´ÒI]é1c¶…ÛS@#,‚ ;Jyaœo?6¦Q¨Zj•”e‡¶êÆ:—’Èe’Iíì„øeçäNg›~Õ” ùÌ{Sæõ߬ä0~Õ­l«¬°ˆýüy$»]Y¤I]Tê¼Hß™×õÎü8î÷û1‡FlTƒœÆÞfjªu½SÑr PÓtÛŠâ4¯·å£ª29½ù{WéZfÇ™TëÉ¢ecò¶íA! ¶îWt' 8Ž:v—ó»ûÛÙüföøáf¾¸ûýþ™û‘ òm%ˆEÛmù­$h€ÿ: z}²/ Wá $h ¹"CvåÚ€ ø9¬Ö<¢}7 zÑÕ£8ˆŸç9üúî‹øÿ¦†Œ±5¬u'€zje@õ:ðT$nþ—Ù¬wPUýÙý³>¥‰žHíõÇ€n¸ ÕlW²K8´¾÷¾#«6;IÚuÞvе Úë ǘõ7mÞ;-wi.Ó?O‚}$ŒÀw‡‹ÓçÜ‹õÁÅïjèÕ îDÆ\‡.Š­nÔ¤.¶—„:­”)L o@âÐ*â×uK*+’ÍÖ½´ÇêôØÌþyJ§}p…8à“7Ð] ·‘íh ¨§eÝhemrÊìkÎNWëëµ®ÇÆ^i£÷Ãu€Ðç§ÌìtåºwpݨÔ^-]~Öµm³]Û&)Ü#pŒ»õÆ´Кu^9>±Q`sEAw¯t~Oö2´ïVçKÜla.±½iÀÅÜ‚~¿À#øq7ÙÁôLk-Í®R_Ó¤©4欿“í€}bÎZséÝ‚€Rü‹gÿ?ã Ù endstream endobj 623 0 obj << /Length 490 /Filter /FlateDecode >> stream xÚ¥•]oÓ0†ïó+Îe"­ž¿c_‚4ª ¥Ë®¦ e©ÛFJí’,Lã×ã4E°õ¬À¸²s>¿çÄ9¡° Óäm‘œ¾cœƒ%Vs Å”&Ú Èm\sÅnÒéåu6ኦê»záÇý›Ùù¸™»¥k¯Üøø±ô}Ùd·ÅÅ€`"Z‹- '†™xòŽÊó˜›ôt\”r’³"ùš°Cý…‚j“ÜÜRXDßP"­‡]䣄 ÷ \%Ÿúr…šÇÊ@QC¤£”«b~~9ÍÏf_>½?”!´!FàÊ’Üèç:Äo:hsÂX¾×œ/rE(W+A”{}U¹®[ö»ÎEÌ„1b•½a;ÁÌ®Í8MQWùÔªGë}<Á‹uÝaöoWiÙôsâ)«¾<"Ë㺜[`á÷…4(û!c4-QQwhß]NP=k4¾uèÁ›²ö¨£ö+ômz‡Š,[‡‰ ¾yüïF«jôþäuhÐhpúÐÏ#·Íé]w‚Ù—¡Å$5a…·µV%ú9Uaƒ†o4´F/n< ê_mCç:‚ çü5Cæ`` uœ!'"j¢ ¡-¡ûi÷ÈŽ!1F,FRö7 þ òsr%9±T¾æ'ð‰ ™Ç endstream endobj 628 0 obj << /Length 634 /Filter /FlateDecode >> stream xÚÅVMSÛ0½ûWèhÏ4BZ}X:&…3ÔIs¢L&&Ñ 84 Ãðï‘1Òxã„´Óž$¯¤·o×ïYfdNé,8ùˆ¥Vƒ&Ù-Qšj+Hlýs’ÍÈuØM¯¢(^º‰›Õ¼ÝOªÉ ¿ÍWy1ͫǯãâq|Ýd%´ ÆCkQBKÔpã3¿¢‚ñbžTƒ²å™à, ~Üïa„ÿ"ã E¦÷Áõ #3¿vA•Ö§×÷DqFAh?¿#Ãà[ÀvW¨ÁWF´âÔrUQfƒ$íögýÑç^šEV„í$Ž®ÒH¨°=&Ýôì´ÎOhC4DIM}³¶ø‰wü®(÷ÅTü^"V”"±T ùÆl³rżÌì!ZÜsVoœ§Ë¢…Å7cW`ñÇb¼þý€®Ön^ä3ìÈUáZxêYþ‘øÃÒ›õ'léiᦠŒ•[cÛo—«Xˆ²òÒDã³íÇäíÞ"ÇØ<¬–(öwÆà.§ˆ2 §ÀàeÔÔ_B¨FÁ O‰Õ „¶”½ ´ãBb¾Éø°…±Ó{2ªŒiö^IöΓN’5yO2AÁ-æRP©a¿ù”0THþ·ÍWs†~ï Ô3;·p4î6¸‡ÿÌx 5—¬c¿ÐÙ«ô0–ºðm,½½-õNršŒ:½RâÙùèrÔNOGƒöån™jaOƒcK˜ý*VRÛÿ¯ò'·Y|$³¢pÓ î¼-8ôÞ[åS¼:·Ä«ãys4:_®ž#­ÂÓ|ü•Ö> stream xÚ¥VMs¢@½ó+æ'ó-sÔÄdIu‘œR)ŠFª\ÄJåßïLí–6âº'`>^¿Þë‚ÞAÖ8´nî)cHc­˜Bá I…•æh¨ÍsHQ˜ ûaúì ˜$¶Ÿ½eIѾæ^û¤«´J‹eÚ~>ÅÅ>Î×ð±æÈ5Њ7ÐÂeØ¥®‰ü…Ê´Ù0tí›ö!u³Çš„Ö/‹š5Ñ?dÌF.Ñrc½¼”˜¹GD°Ð.úøZ¹A’̸2ï9ZX?-Ò¡b&3¤$ŚʖÊ" ¼éÃ<˜Ì£±wçEþdt#Ϧ3G;Œ‚‘J+»ÂER(lÎêˆÿ‹AŒJLM.-=€JL˜DCɱä¢%æ§q’ïMhƒ1 †³/sŽºÚ9&‡3>¸â¡Á ç1úpH¯.À¸Ø Œk,;1CèPמ͢ÅÓÈ÷£±C‰ý|? ºM`š¤ ='Ì´Y;Ôýà¦WkvèBãýÊaÒ^Áåwm:,ºº„´µÚÝâ‚Æ?šäã¡[Î&Îs Í„ël‘ÚïöpÌóO¸ÕË;‘i+ ÁcˆŠ©*pùÈÓÍå]·^§0“<ßuËØ‚T¶yW¢öLqøwåžÔÁ¨ø¿ÒÐÑ[ú!Ž Ã÷Eõ$#a HÄ5wÞßëµÿ endstream endobj 642 0 obj << /Length 578 /Filter /FlateDecode >> stream xÚ½–MoÚ@†ïþ{´lf?½{L%@D4¥Ž{J£È€–Œ¡Æåßw¥Åc¨êÉëÙgÞ‘wß52ô¾ÄÞÍ€qN,µšk¿¥©¶‚„Ö=CFâ9yô‡÷?‚Wà³i6/šñídÔ ¢ô%-Ób–6¯_“b—äÁS|W£1­E–†SÃŒ«|  p ¡ñoš‡²uŽ×½_sk€°1.Q(2[yO@ænÖýaåŠ(” íÆ9yð¾{ÐÝ¡æ®3¢AR°ª‘òG£ûá$êOž'Q Áÿ6ûÏý¨y‰ÚÊ„6ÔHC¤b´9–&þD8qFÈ7iˆ$* \‘P ªÜƒ¨x™Öu]~1jÕ›ÖmUfÅ¢‡MmÊtƒÇׯ×Mü'ÏÑ"û€Ÿl±©¬@kÏÖx|›mÑx•ÅDÅË ­»ÛîPP’ç¯èœg¸ü¤J15Iq»JË€ƒÎÍ™8ŸÈ(×%¦(CUøfÉñn§eR¾ZùÙÙ†QüšÝ:¸R¹imO1ãT8]Ðbm)ŽØ§Cb ׌vƒA:ƒ[A¹nÇ`|[›Åð×`²v+ù\CJNÃÓž±Û °É³tŽ%8gÉâ’s^gd³ Çí³jy¹1Q,å?ۃwzGWSž§+\ V²ãDÏ\C=œ‚~¯dƒ_y—¢ýWÙº8áWìç–WÔ h_ò—yÅO½â ƱW¼ÿm´ S òš—ߟ2} endstream endobj 648 0 obj << /Length 665 /Filter /FlateDecode >> stream xÚ¥VÁRÛ0½û+t´ˆ•dÉÒ‘Ò„ P“Ó(“1±OM‡ _9¦Ó6^ÇNVVÚ·oWo7rO€œ8Ÿ"çpÌ8'†Å‰îˆTTAc¿#QB®Ý“ðÊ;àÜóì6KŠv}4´‹Yz—Vi±HÛŸ_âbçÞMtÚ@ ¢-´ ´¯9ÕLÛÈTÁ¬C ÝÃö#MããŒ"ç—Ãì ì/ë($Y<:×7@»wJ€úF“õæä#‘ (Ê®sré|u ?CÅmfDiF5ˆ–Êe4›„'ÓÙh:¿ Ï OH÷{8ŸÎ<Ü‹ñä|Ôå&”¦Ú×D¢¾VÛäÄ?äìq)©Ï‚Wr)H \’@ *…ßÒŠÒ&®õ?`Œ)[órõt€ÙŸò,MЪüßAµö°}0øHoHiÛÆ¨NLŽ/ÂoóѬm€Y¿úmR­Í@e! Òì¡~iј½‚ ㇸŠuZa·ž¨e‚*=+îñã8̳ǤkspÑýeV¢zÞáR••'wŠô¥ìˆ´ÁPæcÆ”è0ÄÞ ~@AêŽBÃñÙñ|ì¾{dÇóç~…rj)í¬*oJ˜aú¨ä;§óU‘õI=ß$‚ÙK|Èc{yŒ:Ô=Z½ÛŒò,OŠmG:æWË&Îó¼óÐãIO‘â-RŒ¦Ðƒ]ï¨QÑ>MÞØ¸hl4ô–&Ô‡ÿºÞ.ßÎP`ÆØwûØTØdp,ì±=þ¼ãº“ŽSþ{ž„¿A3v™ endstream endobj 655 0 obj << /Length 484 /Filter /FlateDecode >> stream xÚ“Án£0†ï<ÅáwlccŽm•Z%m–°§¶ŠhâP$Yªúök0U“Ô{é<¿ùÇšAÈaæÝ¤ÞÕ/ÊÄ$–LBº!‰Œ9D±Y# éžüÙß`ÂúóâµØî­}½¼³F¢wºÑû¶ÛE¶ï²2xIï{4eÐ’÷èP1¢¨2™*gæB¤ü+»ˆ¸¿ãMSï¯GM ýc.r›Ê{zAØš³{@Æ Þ‡È E¸4v +ï·‡ÿ¯P2SHe؃”UšÜ=Ì–Ét¹^\Ïç·ëi’!úÉwQ\*¢BB("å7UüDCnt©Q•C A& œZ=é›òÚ”MÖHfžùO(%±6²ÊÊIzé/ëÍ3 4HŸïq÷Pô³ö !íQÝ]äzçòVºrꨛ@ Ÿ¸ÎÒ·¢uù §œ®íœ²²üpú]ÎÝP®“s´M{éÖMÀП¸5uˆ±¶‹Q”0d?oŸÌÍ8‚3ÂåØ!zßWÒUvvVǦØç‡FÖ‡AoýŒÈJ½6 ÏúȼýœÈÓæ3±Ð@Ç‚¾0v”ÍȱÛ–·d$i4$N‰Š,h¡«WópTøíY÷¹†;d$Æð'³ýÍr endstream endobj 662 0 obj << /Length 537 /Filter /FlateDecode >> stream xÚUKsÚ0¾ûWìÑÌEK–M“0¤-¥Ä9¥™Œc‹Ä3¦Èn¦ýõ•1™¶°0‹%ïj¿ýö!-…g 0 .Òàüšq IWÎA*¢qâטAZÀ}8šÜ †\ÒðsùTU¿ÿ0÷›™™›•©rÓÿ~ɪ6³ƒ‡ô¦ƒ =´t¤9ÑL{ÏkT!¼A¬Ãó~‘Ig\¥Á€ù3Ø_2ÞPHÈÁý…Âën€’(Ñðº>¹É(áBù½…Ûà[@÷G¨¸ ¢ˆ“¸'r›ÎÆ“Ñtv5}œ|}œ\ú¸ËD(Mt¤qMxœlSÿP¡ „ ŠG*KB¹„X "EÔÓ¸,]ödMçÛc #‰”½ªyAÅoT·åU½pÿÓ©^·Èì³)g¨¼)ëê Sd“¾k8½!ã êÓš¼ÁIVÏ'¤§ª«áQiÛ°É3‡âÌk[œDϤ¯­#˜âεh©2kîrU£~¿SÊñ¶rK“£žË½@­úÅørŒV½*Né[g”NãíÎNp-Ñ–,ßßúxÛ¾Ô­-ð–k0q=`2üÙ} r37‡VeV©D!Û M•ï1‡·êžÀRfè-v%^ E9U‚¼°šNù{^ØÑaP}B0N„§Dw „Jݼô‡1ÖáC‰(;‚oa¼­ˆü´Jhôž øxh׸ endstream endobj 668 0 obj << /Length 477 /Filter /FlateDecode >> stream xÚ”MSÛ0†ïþ{tf¡oKÇR Ú¦i0'Ê0& c»±ÓNÿ}å¦%^Ó†‹%ïjŸ}WKá(Ì¢ã4::cœƒ%Vs é(M´Ø0& Ò®âÙâr2åŠÆŸü­ÏË~þ~9ï'+wç6®\»þ÷sVn³bržwh& µèÐÒpb˜ ™wT!C@bâ£~P¶‹‰NÓè{Ä ì˜(¬£«k yð%Òø¹[ùŠQÂ…ó.¢¯¯PóP()‰`¶—r‘®æ‹Ùruº¼Y|¹9žŸÌ‡Z„6ÄHB0¢X²/Fü%†‚Ábô“D„H¡\A¢QBö2N|“Ý®ËSƈUªwµ¨ùYê¾½i]M^8tï¸l¶S, +Š_ä­7ŠùF)Ç hj·žbŠü(È5‡”œ•9f^œ}ü€êq-*§õå}óî€YPxaë 5·¾*LOóPm 4qYµ˜¹š0ÿè>n3á4FÓm|Žž’o1 Û…®AOÈ—#ßßw‹ÁzÐÈýßU‚¼eçü-oyМ:†x!'"h¢†Ð–Ч¦òÈŽ!1F(FRö? ¾yî’ƒ¢$'–Ê·4Üß\huS endstream endobj 673 0 obj << /Length 1012 /Filter /FlateDecode >> stream xÚ­X]s¢H}÷Wô#<ØÓßÉN&ëìĸ‘LÕÔì”Ej\”JåßïEp7‘Ð䉦?NŸË9÷v+Aˆ ëÁe0øô…2†,¶Š),TXYŽ´…§¦(ˆÐOïz|ï™$Þ·ä!‰Òª}1U»xçq:«×›0-Â¥ÿ+øZBsdZñZ† 5°ó•KX ÷©zH[®\ƒæDÿ' ¹DóÕàç/‚"ûŠÖ çÝÌ’”`Æ´—h:øs@ŽG¨D†, šUT¦ÁÝh|=¹»šÌÆ·³û±Ï¥w1Ž®ÇWŸ›¬¸2؃„â˜0qH‹¿¢E³0YÛš–ƒ×P$Ò’cÉEEè&üÛ§Ä‹ËÍdH)¶RVcÛ'g÷2ººò0y3 ªiVQ›m¶ñz³/¯Ó"asUGòݧ”zaždÅÆrB¼jå®™¤Õ³ÌŒzl¿]õ.³ ¼ÂþPHëý4àPT£y.—/Uû¹d¦Û0ÛãÑËáY‘Ïëö<‹â·+Š4#lÃ4Ú/Kj²Y×,nÓý®Å&^Ë:˜Eõ|z®<ü`YlËíÊgEu#Í€a^½€-^9àP5æ„­+N¼z€uTzN9$¶Z£¡ ˜JÑ,š_þøíxä´,ߪÝd\b£Tw™ä@s^QÜ¥pOç0yJË´$Ãé<'U ¡¸nƒ(§p`J\YLêïÕ²Ã. ˆEÚƒ€=*¿’6ÊËÑçÑqÕ™Và™,”n}Ϧy„´Š~2͆æ%‚†«Ò»4ïÒ©yŒþš—Á ÝÐüæb2 |˽‹ËoW-â Š)‘£>PEX«úÀ댌?fS}¨G–¨wªß Ò­~7Fõ©À†4ëüÛ›q#PË13 ¡±a´‡8Ú«V#ÜŸpÍëW!N¡a’‚ù>“ôé4IŒÞ&¡ŠbBdÃ$“;_ïö÷Ñå(èe?|ˆiÿ¾ÒBiëQ+¨ØÒ#©»'GnËOɃû*¾=Ï7'ÇÕô @pbßé›nnßtcô÷ Ñð}´ó:q²yŒÄʘ)/”ILEç%cxÄS`Ÿ3rr £‚hGèöI7F§Mº!]²ÿŸ¦‘`pš‰sþòùi5<< endstream endobj 581 0 obj << /Type /ObjStm /N 100 /First 882 /Length 1533 /Filter /FlateDecode >> stream xÚ½YMo7½ëWðØL‘óE0äi ´@äÐÖÈÁuÔÔˆ+²S¤ÿ¾oVq#{· e©>ËÝ}KÎ<μÊZ8¤ E‚.jÅÅBf \[Èk)ÈQ59¬N%hM55 Üt¦ØÄxNÁÏ+‡Rü*¡eŵ†œ·rN˜ÉWÈ‚%[ xEŒ‰p“©¦™6vkn‚9XC– #ê`X¬ &¶‚»Ò°–/¨ K¼1¼ÎwØ',¹Í,e÷ñ óTxd°>W¸d0.W¬c k5n0Õî¦{-9-T1/\|Ði–™eSŠ'p› fµl–ÈøªÀK†;TKd|^Á©e|ÞˆL `°Î)ÃüqRÁí,ƒÆbAÌ ÀfU‹»CàZa”±ï” À8IΛÀ #VyfŒyŠûö¹*læâ1/¸º¹þÊ7¯ú+’ð©ï³$¸b‚'ÙÍûBÅ ‚ ,#<€ ¸!Þ¬x¥vOžÍŸ…Åt)¼ óŸùKFCTJ“˜ÂòÃÅś٣G_ÄVŽ„µ»°I#¨ ËÄÀJ–¬Ä„ýèÃæèÌôa9¶Îi•c¢¾isj‘¡U·°ÏWËëp|æÏ3R é:|…àíæñÔnÆHŠü†\ÉÈM¿Ã„óëÕÙ«Åu8 óÏž‡ùëÅÇëðïZ¯ÿ¾\àÅé»Ålþë.–×Wˆ©âŸÏæ/W«ë³ÅÕ 5ãŸoÏOŸ¬>†“ä*Ý4«J޵½Áj§kLá¿?^.W˜ñdP`7Éxs•ázÇ’?›¿úðÛõpÿãùòýlþdµ~»X+¦7óïç?ÌŸžäáÆm<ƒs™˜ÎâÓkƒH‰­ÔÎyS¬¨D]XäbK}ó²QL©Ï^Fä6ê‚\³*ØK*X‰ÞÙua™£÷+=جî]Øפî[2>‰Ûäž%ÅÝ’a›ùï_2¼›u“¼™Ý\ÛAKFCù÷v\)ª÷_‰¢·`C(ËWòÅÙû#häÕùjy8ÙÎEÐD¡|T‰Œ¶ŽÈåíæ†¶¯Xu8;"émõœ X8”ôÙqt¹^ý~~±¸S>ü ²U>2<£ÿ,·À[åí`…·MhÀ$6JBß¼ÈÿØ,wbS· 8UöÛ<…º°‚2ZI'÷•Kí$F›&tË_¢þ~äuÇVˆj”Ì]¹¹7uÌ€íË@Ù!¥¶ÁpÊlp& R ”µö@†äö`¼²ŽxeÞ“W–"kü^ÇP1$jîA:+¹{ÿÿhÑ*iOZ%ï®ÛàO´&Á™]{ =%{0®Æ©-û¦¶”BPÆ©]±ÂÄï1PE{O}í”ÑZ'­Å«ŽS[ï•Ú[}eN›~RëAûItn î" }$Ž+8’¢öâ¾EæÉ†éÏÓ‹‹ÕÙÏü7&Å*â¿âTœq:.hâ´Óßw•ÒT'ÔGìÆ_†Þô2D‘Eº°b5Òîõz»—¹o ÚX m71´Q‚[Þ!Ám¤p"ËC%¢Îl_ÿwé]l¬Z8snÅ@÷¯%ïÉ@Ù¥-£þRÓÔ9 Lœ eªL`ÙRô`t˜ÀT#OüŠ4¥†2oYûËwxï endstream endobj 689 0 obj << /Length 1222 /Filter /FlateDecode >> stream xÚ½Y]oâF}çWŒÔ"-³óý¡}JÚ4Í*‰R`¥Ji„0 JŒÚªêïµ=N°=`Ç^úÙŒÇÇgæÜ3÷΄ gDÐUïbÜûü3e YlSh{PÈŠÿ§ŽŠbÍÜ.hTª6Ûõï„°¼øJSbvëòâѪÊÕ†aZRÙM‡Oó¤yV˜a«5@õD¥8üÉœë½9ç°)$*?LyËex¦ p·y·/‡·¬\ ``oúà£F©ú-+ìȱ’j[R±zv¢I…ëÝ·¦ï‘=êÇéVlÅ5O¶¦Ž.ê1jO.ê!ÊÕ :x”Á“9µ¼u\¹LW&§oõQŤ€]ª9. Ò>«+®€œ¥oÔZէ£Ä×}1÷µ®£åßþvïÉÌô%Øž1Ò÷ ¦›–)ûG¿żVâ?ÁÄv3@Z4Àè`j XU{ ¸âÂcjDÞéáPQñxÄ”qLIÍ9…ìuq½9˜€ÄÉí»Üáƒ'ìⵯõ} …Ù¨œÈ4eóDñÚkµ»o77ÍÝæ Jg︢uì5÷#µÖÀwØ å²iv¸Rˆ?ßÿ<Ô?Pµø—Ç]N£ endstream endobj 714 0 obj << /Length 1351 /Filter /FlateDecode >> stream xÚ½ZÛn7}×WðQj†Ã;‘§HMÑ&î“k™rèÖ•Ü")úï½9{¡¤ÕRÛ§•wɳ³sf†gH3òD¹™üp;yý#pNuškr;'JSí1¯Èí#¹›ÞüòûÕ5Wlúóâañ¸.~ÿëOÅ~îS¿žùâÏ÷Éú9Y^}º}—A bZ‹ ZZN-X|sŽ* N0vúº¸(—Í™¼½ü9Ã|3' Ef«ÉÝ'FñÙ;¨t–ü\Œr¡ñ÷’|œü6aå2êTö3»ÜÔ‘5L£€:™g·hÊANu$õd~©/¾Ä'ªÀŽÅ/=Óį¼Ðç u,Mw06‡KŸJÜU€¡EyÈz€II¹vE(ìöéólŸó_Çb˰ÈݵflúqŸ.ÖOÛÔoï÷ÉÃÒ7f•cþ)n6ŒlVI`”aøFO?’žhc;. Ðc,¦Ç— *Êô¯y|›næ‹¥¿ßíývׯÍÖ§É~±Y·ˆš¾éK8ʰ‚ŒFR?’¤hcÏ!‰s*Ôa–æËä©'KÝ¡ç0Ä,&Çc¨‰ÉP´±}ª\ÅŽ Í6ëÝÀ"wï—~å×ÍÙð“Œ1䨪Jé«rHXQaIm`¨xöf\;CAêÑoáÇ1oì99ÉP˜Q®k‹¯þ¾'åÏÙŒÁ¤XMÁšñHiâG’kìai¡­£ÒÈ‚‚û{OP@E¡[×ÃêZkN¹ÑíÂ]h¬Þ0Æ—¥žÎã‚–z\MO3r-€¢s˜÷~õàÓ+PÓ¢ŽChPZÇê²â!‘ˆðR_˜Xì3Ç›šã! z%*eßXòÛo•–ÊoMÀ›®èÚR+-úŠS£:ª_ÔT?#ÒPË¡ý‡ £P4)¢zœ•®J8(ó(l‡/­yã:Ý~tÒEí ]q5M–Ï>ðÁÐ6>àƒ;)šA(¥AÈDƒzé”êŽGíR:þHŽ!Cø-’A ÞéòàaµÁ”ÕoòHÌâE´M;j£Bš*_Pû•\Së\Ÿ€I¸PÀ*%qÁ¾@Àê`À†ü3$dÏþänÈ"„9Ñ#dOƒœÙÓí= Ra*kÛÖ}ïò"ßOïc_•AÚ¬Àد9þÌ/ânp0 — FqœY\0Ëyhf•gŠ_}º Õ½OW‹u²÷¡§IzÅÙ481M¾„b~3¿P¡?ÂIk¸_Q|ðn†¶£‡³kôÊ0Àʸôêr2½z`D¬B8Toò ìnç W˜ë²‘./Ú»£“P º>Š…[CM¡iðÅ UΜάþ”Aí“B!T„xûëÚyu¨´Æ}LÊMèînë[YZæÜó68Ü'éìs0 0ñޤÀ`—6”r™ \c(Z Ye©Tw¿vKdÉ·sÌ…ÌeùXÍ\ ?®™‹7¶ÏžŠ6y“Á^¡ÚÅø²õ~Þi±›`e‹}±mæ>³ÊM¸¡Í<ÇÖ$ÿ_ÚQž‘Ïá¢íhéëühçPªízútQ/FK6PøÄ·ÕÂK¶xcÏ8¦lC¸•QÇ4e&ìbNj@2ÊÄx{[-üH†¢=c‹¤ ‚«c[ÌÁb8ûŒ‚ºÁˆB eܰÝäu²\ꀣÊ4n.C€ëµt1ƒÏŠ,…ñN\›ð‘TGšz¤ªò¬'2gîP¨¦dQ8,û¬$ümÙ÷æë±<§Íˆ ý׆DØòOÿE€5 endstream endobj 747 0 obj << /Length 1635 /Filter /FlateDecode >> stream xÚµXIoÛF¾ëWè… ªÉ,Î095¶c8Hl7–SI`ÐÔH& ‘*§é¡¿½oÚ¤DÉ‚Ul‘³|ó½ý ±7÷°w:z7½~O(õbG4ò&3G(Š™'bøÄ›L½¯þéùu0¦û³ÛlšÛçß.ÏìÃg5S¥ÊSe_?%y“,‚y #¦¡CI‘$N6¨LÂ!ý×ö‡ÇzÏèd2úkD` öÈ#ØÈ¸—.G_¿co s<ŒÂXz?Ì洂 F”Eð¼ð®F¿pOBwh´ œ 8´T>©å­*Âýª%ÞÓ Š…ðÆ\",…Ý‘yU–k9÷ìÃçÓ‘÷Õ("½KJ³¢åâÆ_¹#˜°¤B«DÂV3y²TC<(ADq«Þnê‹EÉPzQ„ñºÂXGaØ Fœ¾< Ž0åž  ‰ô©Áþ1rnÇ‹ÙÐhU—Y>M­Jµ/úë#;þ cºPh@fIÅô2oø™†ÿÜÀE ¨â Å;ÕïÆ0áHb²]ð^D!~=K‹÷öÙ+c0m›0„ÕùÞ>Lp*xðÏ:¹]¨ÁxbQ±ó#IÅn›Bt#ÎéÓŽqаóãÔºŸ9ÿ«U¹Ìò¤VÓ¡YˆhŠýÁeòs{` i|ÍÁ¯vÇÊ6{¬-U‹A58ºTy]í©g¨#ï‚§Æ„ðNâåX"Æ5bëþE0ÆþªÉµ¦¦ÅT×죻!O(8`[¨ô.Hâfl0®úRaŸ.;³ãR-Œ‘Í̬ÉÓ:ƒðpghÞ ·‡0†¤®ú÷k‹{„@½œC­`Š ùjEß8”†(£„p‘OÇXÛÚfóô`¡À<Â!À‡H¶©×Hêª,‹A¾ß0ÇðG6iG:æ)À‚bv³&Ѷ©E×4÷a,B‚>‚ì%;dH!¶mŠ‘<Ëëžœƒ¦`q Í}1St õL]—ŽçBsÆ»9?mˆ=@0‹ñcÔíg)@¸è¥ Ñ#Ô3ÄTícˆÌ2&‚éôù2®tÈ“ ‚Ì·‚Úiã$ŸÚ‡/z;>7‡­–l½ØIp½Ã¼óiuïÜ—t‚¨¼YîÐ(aÇòÅ4ÚerÙOÌIÝTOëJ²Œãuû4Èþº…¾QÐØõ_àøS5Û¡^ u/|9‡í’éÅx³ž‚v„3x½”.U•–ÙJ· ÛZ†xÄ7-º¥IA[»ŠÃ]Jï ¬ÏäˆðŽ˜m³åÊ»~‡oòN¯–@váZ~ý³æ_A"@xbŠ‚çà¯î¶ÐÊØ+•7ë´‰}´áÑÍ"ÑÆµ·Àº%à‡âÛu ¿ý´°Ï ]¬ÅàG‡“5påÜá>x/0z¼zµÌ…޶s;©¶Ÿþ¿æÆÀcDàª6†â9oyµ¯)ó—3Sÿ@3L¶M2¸ŸdÍd.øô!øv÷ÕÚ@:Ýøú16gl­C d™®[\ÇøÛ½ ™G‡ùÚïöo‘„…ˆK— ‹†Ø¿×IR•µM‰ý)UÝ”îó¤»8¤m¥WÏUiꢷËÎþí ì'+@G†ýÉ]Vu‡tâθu'4U›£[袩WMŸÜ4KæyQÕYjß—ªª’¹êï«ï!Ë€s=ÜÛ"̹ÌåõùŸGÇ'7W×GG'WWo‚qH¹Õ¤)€Îš…~ýb¥ÊD×F²ÐI£WÞðOw’va;> stream xÚµYmo›Hþî_±S½ÝwݧÞ5‰ZÝÚœû)­"Љƒä@ÊK«Ü¯¿YvÁ,Æ)M¥ 3ÏÌÎ33»CÚ"‚.¬¯/(c(Ä¡b ­o‘TX…!\ŠÖt½¼üçÓÙŠI²ü+ýšn2{ÿæÃ;{s•Ü&E’ʼnýùw”ÕÑîìËú½æH´âZh†5Õ`¹Aå!(zùÚ^dhtçëÅ·‚èÞPäÅ÷‹ë/màÝ{D°5úÑHÞ#I f\Áýý»ø¸ Þ iØs£•‡ÂºòጓeTD÷I•gT.ËÖÿ~h(Å\hŦ²šE|è5c3¦Q@4fC§yÏi‚Ç!u.Á8¬’H€\ QÖ˜´ÖŠ-²7W— tÝð¡ÎÌã|“Ü”UTÕÍjº8±"©ê¢‚§+X[(¥5`ñᲸ€†êç–5Æ€ÒkÐkŒ^5îŒÆÜc "J}Éf‘½<äif¨k~T¹÷΄ £ÝîÑ=Þíò8ª’MûºH³­½ó¬ŠÒ¬ûí6IéC•æ.÷ó[géÎ%}R¹³þ#­îo]¨‰MâÉÑÕ]ª-›WÈ1‡N;/¶+Á)T®†4…èVòR‚—PªÆ‡¦è>Ià?µ )`rÄ\.…ùGR&‚6ä›ç’*̨@ ‡:DE‚n{•ç£?=4@ á%o X`j¤çâ»”óñÛ®1ÅBKá…¿ÀÙ®Ø:Ü«¶]GûÄè<7-ÀÒ ¹îUôÓÄIB»/×þ¼¸Îw¶m¤mÇã*ao 4ëêÄ«‘AÛ›ŠqχF LÿKnäŒÈ5HiöPW7»$ÛBÃð--_M,Hh,íÎø2¼úø3yíì”z¡°MQ VÍîç·¥eåDZº¨Êì$“C ¯¿L&QXÂâÅHôñg’8ÛÙg‘¬•8E¢å©³2Ýf°ÅO’Žï¢bÓqT&7·»h[ΠÛÐBƒ—£ÛÇŸI÷lg§ôâŽn g⎡#½ñ+°¼¢XªÐŠýv¬KÌ5ê æuõ ®à~9ò|ü™äÍvöYµjæáæ¢é%ei9,'s,ý}2+ +àyƹtp=>KFá æ¦–?a"dùÝ \IQùCI™|«÷sq;3¸Ãw;´8s¬x(’²¾oç’vŠùê¤?eé^uÒœá=µþ8:(oBxÞ,¦œµ‡ÑAU΢™à‚Óc£`Çž0 eFWÖëvÊÊêû¯íx4Ø#ãnšíǵ‘Á ’n.ë¶úßBXL+EÔN›ÙƃG+ 1ÚóaÌ÷Ï„p³Ñ4?žpr8Á{ÛÔH"3­}_•\žùŸÏÞC1LÞ@¦OAPåRtßpü,` ˆJ€pb E?„Qß“‘\TC&rd<äÆx 0`ÂÅ_N¨'ù„ kéÚЗ½¼;Vx¬L ™fÑ¢´ÇÒÄÉöôÊiš6DCõê.ª\¦»ŒÏòjÿ&®vcjWçÏ(ôÆwWço±ïú F_IuçHó•§<é«1äÛ˜¨³ÔDš(Ø__¬¨rÏˤœ ioßjBÚÂ.òz{7¦ùöââ§ 0Ÿ\ýGí¼:Tîo2”À?Œ)¹0ˆš,{!;éqĸŒñÞ§M>㎽<ŽëÂïaQÖK¶ïgL.£]ºy2©ì‡:ñŽå)ëÞ'WecnM3ÝÛªMˆÀˆb×ðÏ{ÁÞïÏ]qE»2z´Ûµ%ç;oì¡jlÃ:)OôðŸh?Mœ5ö!þyM| È“M|Ȱ‰·G»ƒ37C"~æ¯ ÿ÷œ·« endstream endobj 789 0 obj << /Length 1811 /Filter /FlateDecode >> stream xÚµYIsÛ: ¾ûWèhwj–‹¨ezJÓ6“N_š—åð&ídd›r4#K®–n¿¾ HÊ’L;NürÒF~|Hagé`çlôîfôæ#¡Ô QèQϹ‰î!/dŽÂÕ'Î͹Ÿ]ÜN¦”ãñçd–,2ury®n®D, ‘Í…zü'Êê(|»ù$¡™´Ç$´P$7¨.† ~0~£.<”sFnFßGÆ`‡l”‰Œ;óÕèîvð퓃‘ÎÏfäÊá#Ê<¸OëÑ¿#¼{…^€0w< ¸6ªÌ£RÜŘEËr[ J]Dià€<áP ÖQ;ÔcW«aOh‚}Îg®RऑªKGÝ\œ»)u½ñÅíçÏͳ¬æ½?^çIV‰bÒ Êõ5’‚QQD¿å,˜1%…\¯6åw<ËóT¨Ñ|ücBù8JkQªë¨ˆÒT¤êk•Û€ª¡ýÌ|ågW®¸HÞi7'Ùº®L8ô ‚éÌ(¥¬ÇÇh2e/òì(”Ô©ë‚Çܾ쯘㪨ÅkuÊyK±€÷D½*kx.«R=UQÕ[ƒ·YC3`ž…(×y¶H²¥zu›%ó|!lKŸ?€}æÊö0r¦A⼘‹…–hµY½^‹BƛŠ)Ø2e!¤ ³PŽ“Xݯó²Lf©kÖvˆ²… ¢±e;?ž€…£´4Æ«³¾ù,c6wIu°´ÁÓ\FÚÏ®v­ Ù49¹>=?7.[3 ˆPnÐ0BþÇ]k‰ = ’ÖÆ°iž€o¢PFLÿš‹uec…ŽN©¨G«"%Y&Œ¤|Ð ³e¢ÅvÑw²NSsh|KwÝÐ$@ÍÀóØÆí! dâŒS6-µ„m¾OŒQöä:ø¼ë¦§'y“úÔj³žØ©ˆµ £rc8púïÖû‰•Ãøb_4îªQebÀÈîðm—!æ‚Bï9ehâQ„}Ö`x{!ŒdÜm j¿ºÔ?Fú^`Á`nˆHÈÀ ¤¯Ç΂îr(;­[ê ªÎ}*²eõ°§¢Ž(fûM0äÞãÝ 1âTÉ¿i«Š,¢:@ÖQY íê$³óT뿊~%«z%‹/gõj¦Š<Óµ›é8·&kn'ì9~ËôBÌE"“ÌÉ¡sÁ—Ì”Ôù\”e\§ö¹U]d}1?“45ôȪè‘e·+•0ÞbôV1ö:¹Àðm^ÕMW Mì#Ó“#`›K±{$™yœMƒL'æ¹` Ò¥Ón1"îÑýV 9ò\r°ݾiŒ3“Fexp`t‹D[Ð t¤¼Êòê•= Ót ¥c•d2G¿µD´•xø–ý–az¼) JÿÌDg¿pW­u*;J!KKímZê/±±h]˜¾ ²%³ù6ŠuöP#‹<_µÍ¡i°¶±½Ùi -Zˉ¾M3! C¦Ñ³Sü¹ÁIÂÎÞUïD)l‹ •‚WM¾³v>°J€“A§KÛ ºmv\ê“4hs3ê;<«FD¾”A/¯:8ìí“pY«i’÷eUu9Ü9ö„— w 7¦™ìHäc4Ë%Šq£œÑï…÷(p{ñßé—÷îßMŸ¼¿?¿¸¼½èÐló`ðy¬ÀŠ£N!ã©-Ty×·§§®¯‡’^wZD ­Bpá†0ºo(“?ÂæVÛ†V·„[D…ôåû}D“é¼¥ê*Y>T–J¹œ€ŸŠY´HƒôâÂŒA i“=}÷ €…*ÔöQ²HŠ·lÁ`@i'y9¼0äC!¡Äžø’:ò=‡¥Qh*) ¡ÿ,„wNZúhö·Û ×»,00‘£Å×|íã›S¢C$t±<‚‰W¶+–÷ÊOF›ði5‘O¹ÉöU/¬÷´ÈõÃ3ìÿ8ï¬Iؤ݆…¤ ¼Û¥G’A¦ô°:NÐï‡Bä¹dŠûs,㤦fw÷$½,u#IàÊMÆ‹¹µ¤WUõ¶(ò„æ£mÛSnû¤¥}"Ïñžà½¡Ûî¾ì8ŸAB^Îs}ü#]w´²‡²õÓÕM•…Póag%Ž€RzØ«]”ä2tgàöIÀsXû7¿ íúøG:ïheŸä<£ dÓz«`íbUggù/:ä¿ê_q k endstream endobj 683 0 obj << /Type /ObjStm /N 100 /First 881 /Length 1885 /Filter /FlateDecode >> stream xÚÅYMo¹½Ï¯à19˜Ã*V±ÈÀXÀkÉg!¬ ‰àƒVîu„(3Âhìæ×çUOÏX³Z:Y—énö#ùº>Xœb-¤Pj ’q¡P .ˆ[(FŒñ\«_%äæh Êþ ¬¢Ú¬ê¬4tÏxß8TËÀÖИ–C+Þ.RòAn¤¢Eqxi%eÇnªƒ+H°`T€¹”`)Ê„¹xe• c z”Š^’[0ÊT |ƒ á-µâKàä0`ªmfIç\ñ 7‚¯´ToIØ0ª1ZZökÈÉ[HCfò›‚›Â¸±3º“5ÍŒnð¹Æ)dñîL¸} †ËŠ a!- _WÄ1NQcÿJÁWdc@sΰo®àŒ^ÕÎÀ4 oÙM^&vÓàK¥!§Š3¼‚£¥€aô‚¯4E‹)ad R3Ü  4 ¼• ‹(7Ÿ¢Lh’‚ªÂP0±º¯L8hõ)HÚ Öpé̱D¼- ëc:ÜàµyT1üoFÜ ÀÉ °°ƒR G+9«–™)Öqr€V€ñO2 oq»uÍ#Ç)#¬a…‚ÌqäQlî…œgfî;·®©[Ø_· š½U’3NŒ®æ¦F[?À³¯ŠŒ?xð˜u¿4ÑÙË—³ù›pR0e ?†ùßÿñO˜ ‚7k‰¡»¸¾¸ø8û $±ÂP*½š,rºCàír±/_†ù[d#rkÓ H«²}@¸·ñæG«åÙñ°'a~ôæm˜~Y‡Ýx~½ðâôó0›¿ÆØÃb}OÝgó‡«åõêl¸Szlúëðéüôûå/á$¡A›F†+ªP¬í#f;]ax_7ðW‹Å#žŒ«•SòÕjsÝнÃdÄÏæÇ×?­Çç÷ç‹Ïæß/WŸ†Õ8cú8ÿËüÝüõ Îñ ³I®±^a}‹µz"¶˜JêÕh´ã0ÿóòÃ2Àâ¸>_¬3¿XÿÑ­tPðÒpK)f­ß–U¸£î8¼T¹ŸƒÇ#Rf/ˆ"g¯"5ú’}/xo‚7Á‹å+,™P„VDR> õdDÝÂê›ôbsl%wba)íê‹òÒ‡M°|ëÄæè%« ›9úrÛ…EvŽJ`Ûi]AjyluaÁ õQ¨±ð˜%÷ÙÅ íž\Áèc–C¥»Ë¡×ôG-‡.ˆœ’ë¡ñÊ2=o¯:µO×T¦«MíÛçú˨Z‹.½Z¨mµpïúq¼^/>_®†Ë—«åÏçË«õpyu¸5 Š+&äbHÍ•\í¥RšŸ›•¡â@݈Àdp–"‚¡¥Ÿ‰ÕÖñçÛ…’¢²/-(ÔzIý|qúù)L•²ã†5EªüܬØb†DjTr–52Û3±rýéêdJ *8ûÞ€#åßõõéO 4\ ÿÁªsxS *Tɶs ¨DznVvß#lFÛqD>«­Ì±ÛòzÖ°ÛË\º?¯Îÿ;ÜÓ_¾s¾¡¿J„ªüMýu <R‘–rVQ¶¸öaE"—N9ÇL}PfÈäN,ä(¶Ø}Ø”ª}f(à |Y)J)}X¬¾~œÑ‡­1[– °|©¸}¥‹p>›’Žkç¸X>2k7ßµo—¼­þnéÂÇ+A±{JPô±JpCÐÏ‚6× y?6¯yR€yR|yR€¹Nש¿Lx™úˤ0%R!NªT¯åä熈Aq™öËž³®^!GIŠÕß%ûévÝj½eû)Ôi‹ »Ø/ê;ÕªÏÇÇ ÊÕ%úù§V¯ßœô‹ŸÙ v–ä§Ì0 å‘åo-ÌåØ#M2ÂUjyÀåõâ׳å'׿«aµZM±È:žÄGö³ÙýŒRâ®î÷Íù!µÉÖÛù3’6#f"°³Æ°ðËám…é±5Ê5ÿÆIÕÓ˜b3ýÎÌ¿³Ä§á°–ØqAP&µÀ¨¿~FìKIJû·ÝïÞüðêèÝŸ^¿::~"‰#Nij†}O»_½}É–ÓõõÕKü_ÆRRŠ“ƒ•š<ì¢ë;Áâ*CJÿ‰æ-ð 囊va•kô¿;z°‚J–S߸¨,øxëÂúžcßùç>¬‡ï“’û° ãJŸÍ¨B쓾û°X˜¨s\Dh稄ð¡Ç)~‘Ž·%æÿ+$K½'$Kù!i5Ý’"‡zŒ sÿ3ÅvÚóyH:nê(•¯] Ü=žbO{ü{¸[F”û°äÿ@ÔN,ü@P‰þwyȤ ªÁ–û°þGP§ÔR¬¥“ƒBÈ¥>Or5Ý=‰xþ ¼ÿ§}Ýœ{2°L‡÷eÚ²Õi+V§­Xû4S3¶ª¾cE CZyå4ìùkÛ_¶øÛû÷V9Qô ²ŠAäû1/è Rßb}$þˆµ[Z endstream endobj 808 0 obj << /Length 1418 /Filter /FlateDecode >> stream xÚ­XÛrÛ6}×WðQš±\^ÓNãIÆMÛD~r2Š‚$N)Rå%Žûõ] Å DÒvŸ KÀî✳‹]aë`aëvñËfñî¡Ôò‘ïPÇÚì-î Çg–ëÃ_—X›õ°¼ý|¿ZSŽ—wÑ6Ú%jýþÏjñEìE&’P¨’2ˆWß7Ÿ¤ify`ÚaÒ´íQäYÙ¾g=U;O'QæÀ:¶¾.þZàë7t<„¹åÚ.âÜU¡Dɹ,c‘Šã0 JmD©g¹ÌE¾Oûa°VØ¢ ùDapNÄ-Ýs†8³•ûÍQc—”§­ÈÔ:Ýkœ¿þúQ#¦;!Ã7kBϹ:N£¤ÈÕžHÓS…怹Š»¢— ŽáÖ½kª:aúp­zWeÁóÊáK4ĆÙ`Ûw^ŽÍÅ„CvYeÁ²G,ØÊ¸ÝܥȦî,#°Õu<ƒfûˆø|ŽJº‘\—ÜÙ±ÜWôEl„½ÿI_À Cµ¾ÞkM("ߢ®o˜cŒûdL/½ÊP„!Ï{«f™–ô‘Ùrà¶ñ°iYÌ);Ì…d„$Å’1¸†Ígs7êž0ˆãºðœƒ<æjÒ—Æ)øÊÓõâ5GSÅ1(´·¢ŽF»ÍD(¢åË+—FK`'­xŒ"êßßÝUênÀzP —ꙪakFðòÄÄV^†¡Èó}×0e–t9xŠâØt6L“"h§Ïüq†9„4Uq]¼÷½ÎÒe;ƒ¾¯ÐáÞ¨¦Ž ™:3‚C–šrµ´lœD\2BoM„ØiÒ”Õú”fF"*‚Ö”yJ` é˜Ô+ýõ4¦ýçö"Çy·ê 4î[e.ºbjø}Z`º„õŒ4{ iOwQrèò³@MÄ™o&¥Ü¾“Í6âPÀ5IÔÏðÂÐŒ zNó<ÚÆÚçÉw—H ç¥èl¾<—‰ô÷,#~,!ÖõyK3‰ú$Ú«¿WâÉËó9Ž hÓÓ5‰³îÓÓzîûµo­÷w׬25ÞZ{úñéÃ^Ñ; :1iƒ0ïmØ#“Ø #³;1fN¿+¸Ò‚1‚8™€JÎhÍ™‹á3²57ˆ8ú[f¶Ml5hhÃ+â-åI$E;/LhÿjçHU+„|_dA6½ªò»\ ¶©´¤òjbtx9ÖCÅ‚ 6nb†bg™Vì´‘ÙŠ¥„#Ωáy½ª[‚aÜ©aÔEÄöf6¹Q ÷šˆ”&Z¯Ë4íGË}· ÉD¯…zý`lŸG-©§¯JD`Ì@ƒmšÆ¢Þݼ5y=4eÒ~ÜtÆÞ؆è,W³×ð›LÕ}N“E¦Ü®A|6³‡a‘•â¦ÝÜÄîH^Âÿyg*«1aše"?§É¥ƒ¸O¢k_x€Â†ù­6²O³°Õ’Âó*2©ö!ɃÉUëÉØKªFAÞö¦æ]û­pkÎ﫾)Î(…e2¸zD0ÉÈ|uUÜS)«§ö…çÝI«à-¿æôRìúŒÄЊ잇ýªJ„,=×|È[Ü1XQ¼¬_(8e†‘£êë;jÉEa"%8K§YýQ= \ƳŠáHüÜè¶ ¾ë_*!-ã]„ÁÈúÃŒ8ò ½¢×EsðK¸M‘í×üþ'üÑ endstream endobj 814 0 obj << /Length 1004 /Filter /FlateDecode >> stream xÚ­VÝoÛ6÷_A`/2Ó$%JâÞ¶Ô R´Y;Ь0d‰–È¢'Qñüßï(RþŠƒvëlžÈãï¾ïHPŽºýºM£Œ!EÈB´X#âPø(°F-2ôìÝ=<'ŒïC¹*³ÚÒ¿|º·Ä£\ËFÖ©´Ÿ“ºKªñ×Å{í£ Cß@1Ã1Ar0¸ÅÞÔ.\˜;£Ùbô׈Aô¨ \ô9J7£ç¯epöˆízÎ â”`æ‡@Wh>úcDÎ,¤âD”S,«Ê£Ô]S·ƒÒ§þ hÂf̹bQ3 õšþŠ¥_ÆŒ{IÕ¹£4é÷™·rðM¹··jmW HÆ`kk“#K<ÞÐsÏð©³×R•Ée«Ýõ Lslá­šÉ? aµÌœì•2(/æObØwïT¨•þ† O_n7[Οnogóù…|ïæ`Jí|çGÖÓAð‚"WÞvzYÉ:×Å5_O†  ±áÜ^»¹ ELϯ!úŽ¢íÆ&hRg×Å1?èš&­\®«$¿šB,ï¦Ì m±SUë¤t’!0Í*ÉÁïòò4âšKi„cc®ïãØ$gŸaãxûmN( £mO|6û6ΰcR›4åà3aAîß=˜úìû&bf¹»(/G$@a@1BS^fŸS°Žˆ‹j$ZŸÔÓ9ÚõÝ×|‚y,0%½º?†oKùèß#á+Ä‚‰ÿAÙ®ÉîãЄ@£c¶4‡ÈG.Ñ:+¯×0À’ÉuYËË6Å„ü˳s!~$äëÛ£$$f”DÖÆù~³R•­BUYYçö£-’¦ïY@WåªIšýÅœy)[?U©ÝA&SÕ$Z5cν¾ÂL@I (¥¢l-ï°ví £¬µlꤪÚÊ­ºW”(d’ÉÆÒ¦½VòØKœúª« bCÇuwVòR¾r'••qØ¥G²ÝVešèRÕçF2kd¡õ¶ýy:Ýívã‘×p{ù´Uk½SiäÀ¦é¦ŸÏÓBoªe £e:û{«-³‰M;QëɼÆäCïƒR¶Ø°¿Ñw|hœ.º0@X·±Ë 0F^ °k6À~ZŒYÝm$ÄÕ8ÄÂà5´Aj- côÍÑeη§Ó^'ÊÌENàG/Ëǰ»¡ðx&õÞă\œ@mÙ§‚¹zò<0ŸÄ.¥3$ï’&dìÕÊ®ð†_ÚèíÛÁþ¦‘íVÕGÞ!#NfÛ¥©l[üíx}”›¤(Øuþ´¸ö  9@çøo°)½ˆÑ endstream endobj 823 0 obj << /Length 670 /Filter /FlateDecode >> stream xÚ¥–Ko›@…÷üŠY‚”LæÍ°Ì«‘£6qk¼¨¢("xì aÆÓ4ùõŒ«¶æœde¾nÐi‡V¼A Ͱ¦ÚÝyCÜmµÒþȨÙã]ÆÞº5Ñ¿bÜF.Qºôîî š¹¹kD°ˆ4zÞ¬\"I f\¹ëM¼¯Ù_¡b®2$‰ÆBòVÊxzóýüöâòa2=?¿œLºJ¸ÒX ˜Œp¨Õ®þâØ Sn¥x(1a…’cÉE+bR§©©ªy½ižÃSŠ#)ÛY»:††M0âƒSÉÿ£ª]g¶ÀÐòø)« ñŸ“~’ך„·,ê¤GVë2f-_[’ƒìç€?yE=‚¼šÒzžÀõ¥o¼L²œÈŠø4 ŠLJ‰±EþòáFË75z{ç'›ƒ« Ó›~ö¸ÜS›êŸÛ’”ÛÜjp4MÀ×)µKpùª§¡hÜÊ ¨ÞZÙÊTM1#ì=!ÓÉ̆!ûœ2Ì&Òapa²M»Ȇ! †+Fzƒí@ö†6ã -vBû,àÒ?½xÝŒ§qOt7@Éþ®ŠkF‡“›IWëþFɨXÕëÃãqOTl_‘lÖçŒ7×Ð5†C„ê£Æ† c˜q°1¨r¬Îi~6ºz¸Æ½® TaÎDG#‰•8ÄÄçÑ6nëõ[lŽ)[ÃÉj*ý_p–í‹nø¬ªVI '«ÒÂÌf¦Ï}oïUÇ} ‚ö#†ÝwdÐ}0vÝ÷盲S”`8"â=Ÿ§¿‘ˆ›9 endstream endobj 840 0 obj << /Length 1585 /Filter /FlateDecode >> stream xÚ½XÝsÚ8ç¯ð̽˜NQõéÞS›¦™vÒ„#¤77m‡q@Ï€MýÑ^úpûíZ20 -Ç=€å•´úi÷§Õ®©3s¨sÑy=ì¼xË8wBzÜs†SGyÄ …ã‡ðô™3œ8ŸÜ‹«Ûn+ê^Æwñ$1íWýw¦1ÐSéd¬Íë‡()£y÷Ëð=ªNª=ªeÀIÀX¹Ò*%Lð÷…y¨çt·¯c¨ÃÖ``¢PÎxÑùô…:è{ïP"ÃÀù^\8ŠQÂ…í¹sÓù£C÷ïÐã°3Ç§ŠøL(ýÛ«¿Î®ßœ®»°ƒçƒ·—×]¡Ü?w! / OI"¨·I40ÁpêúS á+B¹r|%ˆÒ y—,ËW =ÆH¨”éH´žämßã‰ÎÚ:⤷!öŒ¸Ð½¶Ñ3µª/Ò6é2K[µŒuž“ÃŒpÊÝp,lpÉ2Ãã¡´T&]N݇q:Ñ£2N*v( C2àãb‹^‚øT: ÷B±báL:œ„AèdÚ™6è´©¬]º«ŸRâ©ÕF1ÃÑÇê·FØÔ_…CVhêòHÈÃÿl¥.›Y½ƒú ¢Ê}²:ƒ>‘ ‘ ŠÀ²ìa©'zjœÖPFke•9ŸzÑE÷ >* ÌØf…ëþ~ M€Äóø1<Ùzî¿Ê÷ˆoÃÁm#v]×­eŠ{©š“¨ˆL møÜ6ïãÜ´ê'DeFÝïø=Ô2óÜ<ïb«²Lòx–è‰ÕºËˆ®R.Ù0¡9š ìÀ˜Â=@<àjVø‘[&ï1ŠNÉxHîë‹¢iPç:ôyhª’Ïœû¦Õð°—éyTÔ(§e2.â4É­NV×Wa­Tx6ä¿Ý¼‚R>LZ/Œa¨¡«YÆ,«|seÛ;Eù³Ý`ȹ$’ûŽ”pÁÉz<šàjbáîê-,âÜÊJ) •ÞÚŒ£¼Èt–¥­8?SEáÇvá•ÉÁˆ–?¹ŒJ®®áÍ#º§uÜçkíne¸F¥à„†õÕ·yÒÛíxÒô;áºÇ|7 aȵ‡]¼¥ÎMÍ%Óøˆòh^êCÃùoý™Ržèý±YHðª* ©`ªo3þ7WXn`Iµ×w–ŽˆŠùì8: d›Ž{É'Ü1ÔVŠ:)Xö.™:™I›HúÈ»lÜ–©´‘ŒûPœXʾÑù8‹—˜ìËN,dG?’‡½‰ì‘·ç!U.«÷Ô¸Á±Ð[¼"ÿF{:åªAuºz‡S8±^p²zgKÿqõÎñ`©wVÈ!î®êäUF¹_•­_Z2K÷ŸªöV!äˆL”ggò€…pôhx27mé?ÎMǃݩ ÷»‰…¢úúðtÚŒÎÁãgå»ågkÚ[§nƒéx®-PYàñÿÔ§ÌÞ1Kä3ˆ“’ºß°BÔY±QXfº(³d»vmÖ“¦XM7f™Þ¿­*0~œÌHÂ&u‡«²Öˆ­êÈ®qgW(ó:תӲÀÏjÍe&q4KÒ¼ˆÇæ}¡ó<šéÍyÅýZåºú­>zAë«õ-0º¹=;;¿¹yÙíI@zSŽñSØ´œã;sÓ¥Î" õ°?dv'Øó­ËU•½˜‰µxVFY– ¡|»ŽÇ¾;mú~è,}MÅ pìËô"Š“ÊVŽDÛIQ¦kÑüÁˆÌš­ßõj ‘î}:·’$Mz¸´y[í'¯ (wŠWöÌÓY<Žææeœ.–Qç@ŸJݲ̖i®áÚìÔø£þ©uýúòüÃK3ë•y,³ôn®æ%×_KóõËä¦ Äi FÌô„´íÊ8n8xwuÑœ÷Gç³âà¥ñú°v?Æàh\ÔŒÍuQ³ºÉþ““T(âyÍC ÆÎU¯%{?&ؼyónߌ d_ÊÇ•×ÙIW Ÿ£…Fä1ߟaÚ³ ¹a¸[ò±ý_~¢w× endstream endobj 867 0 obj << /Length 1433 /Filter /FlateDecode >> stream xÚíYKoÛF¾ëW,r’ {³ïzj Çhš¤®''0hж‰J”BI ì_ßYîR)Ê¡D+-Œ•v‡ß çµßÈÝ#‚N{o.{¯ßRÆÅV1….ïTXYŽ´…USt9@×ýÓWGL’þûô6dþóog¿ûçÉ]’'Yœø¯¢l >_¾sЀVÜA ð¡4¨BÂÚô_ûEZ÷Lïä²÷¥GA† º4äÅ£Þõg‚pö,¬A_ É’”`Æ|¢‹Þ_=²ù •ÁD"-)¶Â[’Ç몘1ƒ´0˜KQ×ÍWtƒ8`IT7¨d¬­)²B©×—ß#ÿáü´‡® ?žåÌÞËÊ· Gy2›ç! ñxàuó9˜m­ÚÙ|jWW†1ðóæŸ6LË8¯¾-AG É­JæF~™ŒÓl–äþËl\9›Î¢YGÃácØÇq4Kåqžf÷åËg³(Íß ™Æy:™¥ãà¤ñ]Ðô’4ÉóqÐþ5=ÔNëþ /ɵ÷‰(’™:Ǫ2™} êž sØ28ˆT|{$8…J3èV£½äÄÅ^øºøD$?êårÁ-§µZáX¤˜TÊÜíKª0£1lEy‚îVŠ£ŠÖ¼»®@¬ˆ.x`ꤻâû,«á—…ÝFÃ*––Ù0¶€ËïîyÙQÀ¢e.,,çØ”å ù])Ý‘c+aöçØ*~GÇv6¶ì{¤ì{Ï8–>¬ÖF­-*BŠJ ûõ ÁsÐ+¦µ¬™€æ<ÎnªÒ.3¬¡A…:ýe¡®†#17h)—f5{û‡mËÚŒ×î-)ªø“¢³±m’ÂZƒ „[KOÓ§ä¦et‡ÉZ4\ýµuD$Ö]ÚkmÝÌÁ¤Xkëßðø!‰ÿ†ÁˆpOi5™ÏÂÞØoM“Äo¤waùƒQôè7nƒ@6ÎGÑü6(Á<†èàY&û« OûKw7Ê}|ûÇqÐ;š “Dîž®eýÁ<˜^ꊲrƒ5¥).ŽGÌ$þâzJ˜$qú‰{-7,©\­gxBÇ?¨ì7RÐË¡x¸ÀT«J7²DI4äžfAÿ°ôÛ$QyÒ@Ç‚RbGnòË3)ˆ:*JÖ0œÓ­@@T+ÓÂ…Å*­£UK6  *dNÙ7@ z„½HÀ\ƒ ­÷e°KûLR¬æAH¡2E–t¶]RìøJM“ƒBwž81Eùo˜œÀ†‰ÝÿÇõ©h8ÿÂ9 \\Ÿ\\¬Ã˜¾'Ü:Çq2u= Ø=´®A سóAú¾yò¡ ÚµkgiÑäŠ ãB]òeîçëâ ø#ò¼šäã[è´UÑWM‰àøQŠ|è`T&ÎmȈÊP¤Y9™Õ;ýb SÝíãF¹Ú=ànÚ]Ú“¼§& ®–ÒîoâŠcµ7FVAïÆÇººÅìÃA¥1f×Ù‡KãÛŸS«øÝÚÙØ-f.e¡´RÿÅð·+õò-§ŸR0íD¸ÝÅ®$ÿ.”›3Ãýá)·üÿSn&(¦J¾ãb~M‚¹OI®=0w”fËŸWÈP±]íHµv|—&ªÅ¨ÆœëVT > stream xÚ­VËnÛ8Ýû+ˆÎFjš¢DIìnšqƒIÆc;ݤE [´-@—’â:_?—ÅÏ´™fV"©{ï› %"è²÷qÚ|ò(Eó†hº@,Ä!÷QÄáyhš¢{çòöÎíSFœël–¥¥Yÿ9º2‹±X)ʹ0Û›¤l“Üý6ý¬ }tè+è ¦8öb¸Y£!(D±30Æ•No8í}ïy C·#Š>Có¢wÿ þ}F°åŒ•»é§~ldêFf埲ö0õ9‡±‡cÐÓ Æ¢ieyÖ¬À•R0˜w(Ù÷Iì4+¡™’r‰Ìb|ÙC÷Z`$)s-Ôù\ÿŠœG—2'ÉÛ_!Œarwq1œLNab§* •ºÏE]¿‡¥NR¦¯€Ý€8¼ÞœƒÎ®fª^i´Íuâ{k’Jÿ°öHŒÂ»µ¬f¹(EßsýWÂH†V¼ÁýE²UàÎL!CÔ—•,’<{R1¤öYÙTf•=° NîÆÕ®çèø©Í~¶}Q4+Ö@¶I“Ue 4LzñE«­w(»¼R‰ÂàÜ€\ýu«j°6 œ*»¨ÏåQ …ÊAÄÇ,à*¯Õ9óBL½QÌcޤ@‹½šyˆvþôô( ª‚½À{DÓ}¾©&Gø]½Í ûX!æ”ÿd5œ\ZÜq×h€‘öW°W4š8²uðƒ >…‘T,²R{ò]0ú—}_´¼Ð>q²-fUnRbUåésòÔ«Dv­*Ïf2‘Û£Qâ1«aÂȳÆþHż’Iƒ1?§r„¹ßeÒJ•FÝüì·­wíd™ä¹E›m2û€ÄJ$)4½þJÍ­INM¿js»ÿ@½³5â‹ãû+û§¨ÒL!vç'<’õ:ÏæºP>’šG®šf] 6›‚!–e‹܋堮©xR à¼iPèl°jŠü¡¬R1þXWÆ„¾ñMݯý‰öFÿZÛ 5Vâ/”_E°á"JuY[˜‚eÚ¯K¡Œ¾ÔÚì‡vX–m!än^‘ºÕwe8Öƒ‹Ÿu%°V·ª³©¶r”)Îû×(?½E;~QC×óL;Ïîf½%‡¡ºlaæ„ íìÑ5ŸÄxu[wö‘RÔëª<’µc þµçnD1Û›nŸiŸ›¸¨PB~càþÏZû endstream endobj 801 0 obj << /Type /ObjStm /N 100 /First 883 /Length 1926 /Filter /FlateDecode >> stream xÚÍZ]o[¹}ׯàcûŠ3œ!‡E°€c'm€lVˆ Û ®#´AR ËÀîþú=suí|XÑÒñµQ 0y¥¹ÃÃááÌ!•jR¨Æ„ÐæÀ σäŠ6ÅgµQ(l¡´•ñŒÏHÑJ¨ÚÐj°”gµ•`âïÕ`x§6 -»] ­6ؤ@‰áÀ*:ÅßB‡*Ü™ÊäX¤ S©Õ™¥¨â-Kø¤ø¦ÈÄâ­6Œ® C¥ÀŒY|±ø[ÊZ2:%pI†NEGyfdè8hj«`æ…Ñcø1vc|b˜´Á7KèHÈÉO™x£Sý+ 8fÆ„ŽÂsn!gv‡%dÅà ¹¨b!{¨aÓÁr ’à3ÁTÑñ•@,ç ’efY‚¨³•ŠX.A ËeXBi~„ƒ&Ââ`ÚšÔ¿B‡<‹ #€YКÛjP΀Œ˜+×:¬ bè:# Ô*9!D UúqùþÃÙ“õ¯aà½6ì%K3¡g¸@öK;óaç\`p¯¯ÉKý®ÝMåÝ4;¹E/VÚ$6ÔVl~// KQlïV{ùæÅ‹‰7ü ”•Ø O2˜ë$«€im/ŒWYz¹òfB0¹ÅÔ\¥´èz‰‘‹«¤!¥Üp×5Ûg)éÞKྔs[ö~/GInpéNueé\X-¥±¥)¹J¨žl.GJTÈ$V_'#5J}àJ^Àü ‹T‰²ó–û­™PýØBPš¨kÒ°²oÈTŽùEóþ¶À$h®À@ÌGó»À¼_~ Æ7Ž1ݵû ã±bT‘觨ÛR3˜&}¶ØM:ýƒŸIzl• b‡»l¥`­±UoŸP¾(€_”Æ Ê!穆é{RÍg³gî̧_#D7š\ÁåSœó¢ì#ÁMS*­—oÿ﫤qÍvÇÎ;H~àÞµ6¶;zøi{×ÒØòØæ±K@K@žT¦ óWˆiAe& ò a`%£ÐÞlrþ߳ʹúÄoC® 9DÂáû€n(;›åf³ž ´ƒiÂuH¨ ßËXT÷ù°ÚÞC Æñ½ûÏ!C$dúFU¾=dÆÑ¹Hd±Ãï¦ÿûôóO9jûD"U2ãø×8`ˆý>=ˆ Þå*~E“T!0öïÈç'/Ïïáä2ñŒßŒ–Ix8ÉäRö+AÆæ|J5*ƒ %V¨Ïâ÷¢Ñ/8QÄc¶ÞñÚ–Û-TÖçÆ»BX1p¥|ØôJ /ÍJ§-ô䞇ý¶Y­vÙ*Ò—Vé³…vÕÚçW° 8"tÙ‚%›]¦ÜJ¤Ú2ÆÎðmÙe‹¥à}v¯-Vš{m‘$©/¼œÀaíó 9àBåŽr÷î·ÔB¬èm„˜™|-Äò(Àt^e^e^e^e^E&½ò|Šã|•³Vÿ¡'º¸¬Å?ׇIg*´æj‹@5ÈëlQýÇÁÌô@ °…Sâkì¹”cx ÷sºÏ(¶"z&£ê3ÿ9šÅ«Ÿž¼xúãÔw ãQã8ü<9.ei¼@W Æ:ˆáþè ͸@Šæ[ 䙯”[œu?7¾ºò@%¤}kmñ‹_áN[.‹ûl‘@ö¸÷ÙB3Yëôë¿ åÒe«ð›ªuÙŠ´HÜç7[.»l‘H›Z§mþÃr—-ÔƒYŸ_†ß„-Òe›ü¤ÛÇB|¹ö­›§ bêôK1ušæý?üŸÝ€µ›¡ÝU Ø(Æ_ÅÌF¡ÐF¡ÐF¡ÐF¡Ðò¤—ðcê/¼²\§þ‚S©°õ¤þ?'N› endstream endobj 909 0 obj << /Length 594 /Filter /FlateDecode >> stream xÚ¥V]o›0}çWø¤Æõ6öc[eÕªvKúTU!N‚Dp eU÷ëg ÓºäBºô çÞëãs/'´B]{—±wþ…2†4Ö’I/‘XjŽ"ížEñ=ú×ß‚Ä¿ÍæÙ¢èÖ“¯Ýbj–¦4EjºŸwIQ'yðß4Ð)-y*†Uîä5ŒÜ†HùçÝCèf7޽gº‚è_2n#(ÝxO-\îj…^ÛÊ ”`Æ¥[çhæÝ{¤¿CÉ\gH…CÁ;*“)Ó?fWWãÙì— «P!&4ޔܧÁßÑ —aJ£ àx L˜@‘àXð°#0«ÓÔTÕ²n…s0#J±¢ËÚí ›2`ÄSÉ¿QÙE_2[`¨<^gÿ0á'ym $¼eU'´ ˜—1 ¨üÅ‚ 9ˆýPâ'o ©9ØÀ/SÚ3Ϭ/ xð&É 0‘+ð6 ’LJ‘±Eþöi¡Å ½;yms°º°0z£çÀ{jSAñ¥-!J¹]ÁRƒÑ4_§ÔnÀò퀠8¸•-@ ºhk+SaÀdÅŒ°SLæÀ/ 1ŒÁ)ÃÜq"\jLvnw¤Å! ×LHèG0ØH¯a3âüRËw†=™!ñ¿_ÞŽïúM› '•ÒÃzR9ì˜6®1'|Kâ¼ßÒÎÁ‹ÏÍ Wœ¬çºýGíõ9ÐA ü^¦¶î³ƒÒ,fñíf‘:Å´þÜ(Ç8:‰Ç!öñÏÄAG!Ú„§|Œüé'µ endstream endobj 941 0 obj << /Length 1486 /Filter /FlateDecode >> stream xÚµZ[sÚF}çWìL_ 3lö~™>µãq&u]Bû’d< ¬1S,\I´MúÛû­V€Â¨zð/Ú³gÏÙïÛ-A׃§ƒ×o)cÈb«˜BÓ$V–#má©)šÎÑÇáõío£1“dø~ùe9Ãçîn‡‰{p‰‹g.üûso¢Õèóô‡æÈ´âZ† 5ÐrŽ* TÐfø:<¤õuWÓÁŸ ïD÷d "—hö4øø™ 9|÷,¬Aço>!I f\Áçú0øu@N÷P1èRFcmŠÞM˜½ÿ0ÜÜ^ßM®îî¯&“‘ Ã_&Ç”¸2؃5Xzȉ—8Áë‚c¡XÁ©† ×&‘–K.›é£óíBý1¥ØJŠgQ2bd8®û2šÕg.©«Pœº¬¶…u\‹ò׈ʡ;Ýxº\Çuå#J†Ñråæuß~"’¬ãÕ×:‚ëœw¡z²@áÃäzpˆòœ€u曃?š×Úš¡¸ÆEC1#ì«#‹ZD¶”ÊRðH£0… 9AŠå©1%„ ³Õ?nä<& ƒ ‚FõÃ{yh}bL‡OÓ÷oƉ[EH› =äÛƒ—+̓¸Rj¨@°»q‘f§üø˜·Ÿ΃núòWÇÚ3&°`ÒDRƒòÁè üqÛ5Å€¶" HÜè„÷i–¸$Y×’¬ ž WÈ ŒðTyq˜€ß˜K±K@Õþzv-@8WX³=H«.CB‚ " $D^Œ™eœUúY¯¿VÉdo” y.»—ÉL•Påoé"?< …säWÛ›úe>;õ¿]&?0U¶ëèoé"?d^Éè9òKHÛ¼¿Ñ_&´ÕÿBù©~™i ù›Aå?-¶X*Õzn˜B÷³èËÊ;A˜‚t!RîÆÖ¢“<›m¶Útt©£½I–¹”öo³°‚½™Tî†7iîªr³êd¬° ëSÍ ]RäY3 Õ˜¨þâ¥LÈ[1{t³?îEv™Vº£]ô'krÖ”B$¦´¿P(*ëá´Bì[º†@3H ¸…ªBža·SÙ[T•,¸È[ÛqQÛŒÑE~#0L¿g¨Ÿïª{ €2Ÿ’ø— Ï•¼Ìµ…üÍ ]ô×áØë ”ÅLô¶©®Ú;`.tÈa;:Ð ÒÅE°1ç 5f–÷f@‰Ï^ÿU£þGBcª¹?µBc!kŠs¡éH‘á×g—†Ù(ž‡¿ûòhµqÍFÅôôÝÜ}"„Åîô‘Y‰‰îK)fÍ~±róævÄe~b}ÒÁbP2 »rÝq¯Û¤õ:žµŸõÓ,Ù̲450ýÑÞ6µ.» ý[¹'÷Rtlµ5¬ûŠ£H{m5L(BµÔVSLUoÒ–©ÔïÅj%Õ¤ó¢£½ Ð˜¶Åqñæé9¥ís­PaâõLf1[fÄ7.%Ë笸à¨;ª˜«bJ<}*/9–‡—÷—g¾) jØÃ#m+³NB¢®Þ‚ÀÛ¾·þq0z$‡8ˆú”Írë}¹„íƒý ˜±(qè¡tÝQE«/=n€z­ô¶LIÞnøá¢å{ ئ…2–ìÿ@6‡Kîn€£ÜGQº"¢ŒCÀݯœ†‚Y]‘Ú{–á¿ù Ä…ÕñfcU ’WmÇE1ýÙTÅïhSg²Û> stream xÚíZ[s›F~ׯàuâÍ^a7}rí4£Œc§¶’‡¦–Ö63¨€ê±}ϲ‹[²°Ó<ô!-Ëwî{ÎG‚½{¿o'”z ©€ÞøÚ óB×xã©÷Íÿpúex@öOâ«xšØûÃÏ#{s®¯u¦“‰¶??EÉ2š ¿?hæI€˜æ’"I$H.Q¹‚B鿵¡Ì;ƒ÷ãÁß{°GÖÊÀ‹Lx“ùàÛwìMáÙG#®¤wWîœ{‚`DY÷3ïbðÇo·P¤¸Ue|r|yñåèèýÅÅ;ÐFqÿb9™è<¿^Îìït¡³¨ˆÓ 8§þø6Î퓆TøÑl©íÏjùfeQRh=µ¿‹Ô^Á5ûwæ¯èÞí½rï>è,}3<`XøÅ­[Ëô<Š“8¹qz$Ú½eºZšÝ?*\ ~8 `«ÖØÛtÏç~:?9’R´Yk{r£J ýë4³OféM<ýËw'é|eqž&öáb™-Ò\çà¡XéÑÑé×!aÂ?<¿³»FÉãJDìԘ܂ړB;1×é2™Ö`NÏŽÍK‡CBˆ?Âê¡C;M-@œ,–E—©Ó¨ˆÌéžÛ °•€¥ñTA楠O‡''gG—ïÏϼ³óRŠòßg™õ€ô§Ë¬Œ„¹ŸëyšÝÛûh6K'UzTp££³Ó¯-4éÕ•>ÔM:5˜ÚORç-ÐUgyœºÊÓ¥BBø ŒYÖI—pyg7¿˜k‘.fÚ8ÛbÌìò45)eïKgÛÛj©þ8/ŒÁÈU3QµjeA²:#>88‹æÚØÒòê¨×˜ÇDèP‰Toùf6Ù,|J9¢Tz ˆƒØVå³ZåcÏùÌ~GÁSg Œ+µ˜9³3],3g.ÄBo*qBJ{+Óp›;}@5DˆóÀy©B§ÃÀË”‚+Hsg©md/‹4NÊ|²!o<Ë ÈJ¨Ùò„0Ë6Qõ´ÞÊö¤X4k„©Î'Y¼(VÙ—^;I·ºžŽåí]\ܶžv¹Œd¡õ /‘AÕlBl¤C ܞΔ<à‘A(]f®} &Aèâ’Û^óþ2Öfº…¹|hõ†BÌ=! 17낈îQ¤¤ò2í]×N­{uSç 7­X`bv÷Å·ÙÖ¯šå.êXRT½€²%\vãpÏ«. ­sb¥yK6’æ6`ècp%ìõüÚÄïé×ÞÊ–€Î¯x‹_Yg!©•HYu÷zß •á²VÜz;l¶Gå­¨lhဖ?F/›»¡¬”*´‚D ¬>¿¬äµ€bÒ«m„6ÕÔØ³kIé ñz™ÑÄ•Ý%3 Ò Mrj=œÇúrÇÇÉLïhœ@:^/ Müžé­ì.Gà* pÅ’¹¡æÇ¦!\R©f=ZA dÔK(]í™Îøë®aÃIöi­ëãŒËIé†ãQžÎ`iM;L¼0¿tŒ N¦Vã…=X:F*ª-QÒ1@Æ…žª­"ËG£ÑæÌµÓÔÎf‰Wº¸m(#a&yzˆpÈãÐóæt޼qØvÎéüm4fÎA°}Nçì'®éfYtßœ<—I\N’™²MžÊ©8oÅÀû ©w´é8Õîy’v²ÇDWsrpå„Z¶\>ÑÙ¶Y@YÕ!û]ô«˜¬Õ'i®[¤IõMë @:ܧŸ–¬Ú…u¦ #»‹sýäǨ.Êÿ°ç§ÀùCòŠœŸÅëqþ~¿·¿²Ïàü”›rÝ—óSC£Õëqþ~O¿öVöœŸÎ/Ûœÿá¿ ý\À$ýÃI?¥æß‘øë¥F¿gjôVv'ŽI D‚‚4è,”þ”“…$?„c¾¡üŽùóqLR¾ _†c&‘¬fù'FÂûì ›\a=®Ùg¨¸è£sãóíÝ`‚ÕB첕Cì²3‰PÐÆÝCÈq._„Bl›^BìK!žkHuÎmt(V`¾Ï¤øܨ³K endstream endobj 997 0 obj << /Length 1745 /Filter /FlateDecode >> stream xÚíZMoÛF½ëW9IA´Ùo4M nšÚò¥iÐ%I•¤8‡þöÎr—”H¯-É´Œz0HÓËÙÙ™73ïÆÁ"ÀÁÉà×Éàõ{Bi ‘–T“y $’š¡†kH‚É,ø<<ùx9S‡gÉU2Kíý›O§öæ<žÇyœNcûëïQºŽ–£/“Æ4 ˜–̘æŠ"Eì\Y^Õðµ½mÞ¼› þXƒ²q^d"˜Þ >ÁÁ þö!Àˆk|¯VÞ‚`D™„ûep1øs€['$zËÚ¨ HsëÊy\®ó´¨ÞŽÆ”"JÉöÊÊSëd¾ìÍùÉ ø\E`röÛ׋˷oß]\T k_ÜŸ3Àb=ÆEñÊþ–åöZ^»8N³<‹U–Î’t±cÃåìk>õíçymxšÍœå öÈ¿'EŒÜ[á3‚ThÏ[‚éÅhLÀTùõ‡ÍÔßX`ø!vC¤…ÙÓ\N:Ùc(Ä<Š .¸Éžy.ˆD”ð€"­tÇÁ|+]mkþ§w7 D½5LÌê¾ö-R:ök¨í³Ã¶-‰4ÕOàle._8»ç5ÆÁ£*‰| ã2„)jS™¤e "{dNh$ÀîÑÛ¶ß3°½­Ë ×åõ@`%t$hn›©Ê£SãªXÜónÞàÕi–¬x–U†¦×QÞÞ€…˜ƒ1ABjëËËf¯öQ˜ ¶&iÇÛá«}ë™+$Âðx¨hÛÞÎîSn„è˜0S á» £)­«|¹öúòÞ|¡ 6+³uÙM˜éÁ¿ì4„R}špçz?w”#)¥õû´È–Qi&n¸™›l5^Æ#*†ßFD ã¥}<Ën¢$µ÷ÙÜM'nGbH˜®9„Eq×ÂÐÍš(Y‹¹ÝÕ}RÚkT¸«{þæâí驽-ÊÜL^»<õ:Ã1l$ë\Šîx/4¤Æ<©‘¤«uÙÚϳtqEäÎ37+n¢[kòÊír9y?V†hh><½øc¬”Ðcââ\†¾’(dN EBÔ¡3Ù¹u„Ï…¦â7«¨L®–5W¨GÓ2vTÈ`fXËüâÓˆá!¼|›·a3/ ŸªFÇ8"¡l5°Ø) R Á¤KÙa„^À&Ž.zÀL j,!(’ÜÍпâÖ‘­Û¢P€½'AUP;QÓ$±·@Þ×ËÒ‡†¦±d@Ë4B ‚£âS=ª\)ý¿ì9@ö”ÑÕîªfw¸üá0j9¦Ç“?OÄ9?ëØïÇÇú;{€üáØ­ƒ°ŸjwX—¥ÚXtHx‡qý[•3”•vïÓÐTÕñ¤jÇ~¿\õwöEÅtˆÂ¶•/ GWULCx¤ªÇ+«˜ÖJ'¶;ö{B£·³{É*`@ †š¡¦Š°§ªc_ýîÖaMŠÁ¢c d ŸE‹1¡‘$ŽxœÄegÚÂÌvO¢†ÌÏëÑÙK ä|ÖY~åØlGùôºa3åuž­×MÉFè¥÷ïkI²tDè)eÈ4"x»B½„‘†Ô0Ìy©âv'c¤Z#Á¿ÍyM0íia1çÂà ©^T¬ÂñÈqt’çǽ¼sK›]Ý–ñý¬ó’yðáïè B†D?¹±‡jc·½Å…TÞ)}?|@åÅŸ?½";ÇFZÚ/&>¾ÜÂ}ü¦²’¤ól `YOòÇ…JM‡X?¤`Ÿp¡Ʋb.¶YÕ‡ò)–87åêûÞ#”4¯?³¸VâýÞÓ|}ª;å"Ûî’kŸy8) ›7`ënÀ þ›u!•ï¡Ô>^žyS?wM*k¤Úµ7tIQŠu:ó¶ë1…úá_۵Ɇ×Íây¸§ª2,iy> stream xÚÍZßo7~¿¿ÂíC|öØc{*T  H)œ.Aj‹xaÛ"Òºå¯ï7o~4—Ã4›£`ßzvüù›ñxùEŸG„#BùÉVÃÍ—0”köÌ«‚ëÌÜLùõ7³ƒ…áÀ~,Ö!p~<9y}›0œ4!f¸‡Ch‘M²8 Zd…-!5ɲX ÆM²‰l mzcLV©YœfЯË>Yœ®zC<ñØÈ8Mû·ðÇ{~èi3ô˜½÷ý/¨˜Î–‹ãƒö6ÓÙÞ3=ì>­Ìëë.4;ú£›Lw1Swº:ÑÖ+SG9[|\wg}Ð?ú¹{ûîèÑâ“é]‹…­æ8G±¡à3³£%T òÆ^ür½šj\qÄHh¼ÍI® ƒl„ ‘C‹(!âÜýZÿ+YÑß +È!ë|'ŸarͰ’T;j~uÞ†Úã\ÛTÛ\ÛRÛs¯Ð¼ê¼­ú¨ê£ªª>ªú¨ê£ªª>ªúBÕª¾Põ…ª/T}¡ê U_¨ú¹¾×#3}LÐü §’®èî…<‘-çÒÊîBæB/ÙM´â ÌÅži-†ã?–#Æs¬6a7 àjˆë~#‚ÕÉÛ³Õ²[.#"A² i6Û5dzHü€ ­¤µ8Þ®îˆ:?5I²€ñG·óˆXHÁê~XȰNô[d¡ÎO9Ø”h#€ >O{«Û~ !Á6e›ÎPç§T,.J 4ÜCtˆ ¸»øà¬Þ_p¢ÕzcÅêèÍIwdTTà´Æ@ÆÈPBN— Bp6➺uB* ±‡é&JÈÛî÷£'£“2ì¤G·ƒa¯€GÛ u~u‡„jeãøÏîøýN\O„‹ÖûË á‹Þ¶HD—‹ƒdÓüWy?zêÍÀ§Kp ¸¶ÇÃ0=gqMÜ4ÿÆgA§Çµ¡²Öá-ºÃ0?•h3mœÿ ÷à 8Èé‚­²l‘…:ûÀ­³_rPîÜ™Õ2L·é u~Âò÷åM.‰8ù<>‚j —Ñh )¸rk´~¶÷üáìÙÈÕ´  B£epz»GÞ-8FÒÎòî¤û«» ,Ò-¤ÿ¹¤Þ_½ßz®EŒíRÛþHâÛIYÿ«º¦Ÿ]š«kׄϫ! gWF»Qt(®Ár±¤&Y½Z_h’õds„€3VJ“(‘³ú™¬EÖ+)´É† ÿ¥FYoÅFÙhÉ7b €0÷?(fºQÝÊînÕ-ýzÕWR³ T´è£á^¡Œpì‹©A+í”×o¸ý½{ú££~õФÔúéu#šµÛ?û¯¨›^¾(˜ãj”Åæ£šdµî\n“EëÕ"L® +ëdc¶’ÚD±§õã`“,m¤&ÙÕc“¨F¶@mjIÉ-mäZï¤QìJ£,–æÚ–FÊnic׳XŸå®‘-#²ñˆqNò8'|×8W«æ©VÍKm¥VÏ¥VÏ…î!fx±þÇ‘!fØ(~«08€Âà&07¢à(tÄä-Ãc:"ò°èåñ1 øØˆfdB41šF±\ËãŒXCؘ1çmåÇ!á…í¬œûn“ZÅöŠ~ý…òùËýýÑ0ó5 å+>@¯“Õ|º„FQ„¦FY¬?ú6ÙÀU£^ýVMmx^¨ÉY‹lÌZ)½r<üKZ?A endstream endobj 1025 0 obj << /Length 2022 /Filter /FlateDecode >> stream xÚíZßsÛ6~×_Áé“Ô©Pü8}r“^&7“ÆÎ½ä:Z‚,NiÒ¥¨d’¿¾ (Š’h1jï:÷bB$øaw¿ÝÅbi=D8z5úñvôý¿¥QŒbIet»ˆ„D2f‘ŠáªHt;>Œ_½y?™RÇ×é}:ÏÝøêík7xg¦4ù̸Ÿ¿$ù:É&¿Ýþl¡Y¤Z2 Í5EšhX¹F^Pzü½»ˆØ¾3úévôLjÀ‘­0ð"Ñìqôá7ÍáÙÏF<Öѧzæc$F”IgÑÍè×ÞÑÄ 1¨ (æN”·†ÇI™<šÊ”"Æ« Ó4„ &T4åá߬²ù¾Ø”rD©Ž$‘rÞ–›5äÆHKéÅî „2ЋHQ†÷ŒÜ^¿tÖÎAf7úØ 4™2‚ÇßÌŠÇoàq“Z!Xm JÄB8”/¦,ÜsPû1Í“ÊÌ=¹7/^{zï?W¦ëåUU¦9,·§=ã`ëXž¡ýCR„«!0Ç LeÀÞð,pªzÀT%uã1"±èBÉ®$\J€IðCëŒÎŒ…u·ö)ËtnVG܉IÄe|Ü "FJõp'©ÒÊ q5Ÿ§UZä·5çŽÑáIY&ŸÝÄbQ îd."7x÷j}¨Ÿßfó»*¹Ïj_Ú„g0ÍÅ’²ô¾LÊÏ] ÏÍbÑ•¬³ÊÛǪ´:g’Ö•²$$9"•åå‰ „¦\†4gÚ,+ÆÛÚŸ|<+J0óS‘Ï!–ÝŒÚ0pµ)Æa3åDáu¬e!‰Cþ»Ì.) Mªm¶·¼iY ÓrU¹%²¢øÝ¯ËÇÕ²,ÖË®5cpYNRñ±){Ûܼ•ni¼Þ€¾vëÜO(pfÕ4õϲtUyñ»Õ‡zj§7hºpP¹7Þj=«5‰¦ŒC*Óñ^îܰP;ø:Ÿ#¯ÎñÀ$#§[cϬÿ-ÍÌjñû¯Üæi“íkÙ`!+ž½¼jm¨°‡` ªƒSÚû‚@¦&<¢(IK-;è.Z÷ÝýQ§ú0±³‡â»Hhá‡Ý¿Ï M,‰bak¸òÁã¾ eH´uâ 9ŰðîªoêÁ† ëËv a â‡8¥y*ÍÊä•ëi6«¸_•éÌúdç—˜î*cS@<­}y±Z묳6­ V:ºMkᮆ4eÖÀ´WC–À­™Sªš‡©ÑŽšr¶Ç <ùhã9ÉÖ§®_Þݼñâ§››}âz·0 êZ7ð{Œ6å…}\ú›~Õtî~ÖÌiËœé,ôMŸSÕmŒ(ì%¡ˆ÷kæë,ûî˜rºVîõ›Oã«ë×/»ì´ÑÐë×Hso+BQl÷íÖ‡žmÍ¿ýã¾,¶>AάWá+‹»>˜Ü”aªû”’f›>øÌ~‡¨cäP3œBj¢òp7üËYíp"â‚^®N¸„]¬­ÐÂÖV.ì3Úá6¥É¹ípðz$¿œawñv°°Ïh‡çeJ÷Ûá_þŽ~¸„sfü—÷Ãm#”¸œwìâôŽÁÂöëÀ*`‚Àj°ÃKÖ«ûlƆõ` aHy9Övñ²6XØ~=XÏìL1æÿ€,Iªÿ’,œD8’þ¿ûßÜ‚ÿ+-Ø×uý»"§užñߊ _Tq endstream endobj 1054 0 obj << /Length 2064 /Filter /FlateDecode >> stream xÚíZmoÛ6þî_¡öPs|…}êÖ­è]›nÀº!Pl:&K™,·HýŽo²e˶b5ØìC`J"ïïŽÁÑ]„£—£o¯G_ÿ@(”H*£ëE$$’ ‹â~c]ϣ㗯ßO¦TàñUv›Í ×~þæ•k¼Õ ]éb¦ÝãOi±IóÉ×?h)€–Ì@sE‘" f¶¨‚€X¿v?"1cFß_þèƒ#²2ÍV£àhß~Œ0≊>Ùž«HŒ(“ÐΣw£ŸG¸µB’ìˆ@A w¢¼™0 ”´%é°žTl'A Z=ꪺ/×'X*;£E CBΓFª©Xz’—ë¬ÎÊ¢aGø¥b¼ÐÅ<+îºì>[ÂÆ˜™}aûgž$•®7Uh·pŠ]Ó!1°¡ÄèržçAúƒÉsŠ®óù VÀ¯ ì´9X›ö¡…dƺiŸÛIÝ|Õ]äo_Ž¢Ö²×ùü¦Nosm»·ê?ÎÓ:uX×ÕfŒÐ- ù)*}_éµ.jC1çb–:ÐFf3ÃËuû¥çݧe6[î ΊûMíç_–§¿}„[<å¼ä)’^¨â®ÃE$  œoíVéé€E N˜¸QäÍÌ ,õlBñøÏî"¬ß±ÀðGœ&` Fæçå^Ô‘æR Çf;˜×‚ÀáNxDQæ¨t´Ø‰²Ú`Ýoñ1·ö÷8`bzÅ÷{°"Ä>3ìbI”Ðä káª;û6„¦ ÑvK4’Ãé$!¬[Ô=o8ž0¤{2ÅîáSìpaƒÀÁW,ObDøÎ6-b¶ÇžkÛÍâßïÎE°÷Ìr †Ú€½i÷ŽˆÀH‚;œ$¤·ôWÍ|{@±”²í鳎­Èãg=7µÍÁþtÜhãäÆ`aûpƒP˜M"¢üI¼Î>뛞Ί\_nNN>AÚø 2XØG$Ñ£‰XŒ нl í¤a—XMÂGH¬žÌjmüV,lŸ³«±š„ŒEz'û?y$Ñ€M‰ceì㛯ŽÖËÜö,?‚•3kí™ÙDAßô5µˆAaƒâ ½ßãU7ŒÆÒ‡–ד¢ÆµIpd<Ö©M e3w©|/|X­&,‡vÖtÛü–ñ&ž.:cnér˜» !‡9ýƒ{©lpl_qˆ?¸'—˜Æ6@v/n¶ý-BVÀ «Ô—&ŽJN!ÄåP-Óh“ Ü”ƒôóÞšàx“åõ4óCÊà}Nátæ¢ê浪“)ÃÊf¿h2åJŒ59NóÒµ¬ÞLÃÎhëte[‰É¾29†ùM0.Êr» ìëÛ²^úŽä%Lä~@1wPÝÚbT!Îy_uñmŠi £l+tË<îEׄ¦Ä¥D¯ù¦\[n©·Nÿ4I‹MŒ$d˜•žé¹)+ƒŠÇãW ÷a­–>®…Œ)ëL†zº´ÎŒ¸×³ìwŒéÌ=[åÛfĦ°ù›¤&Ä´rÛÏäiþmæ'Ù¬M1!HÖeÁ!Ö”½ »el¶>‘ÙÂÔ¯ß_]\^ÌüÁµše´hîØ…-`·ÔßÞ…;…¾°P°Íõ²©w•›ºÌVsF—Îö))á5ø&7n`{Šï«”™:^Cêδyj*?à w“ç§¹ 0RKö…n'ˆ0§>oÕûÁ*ü]Õüv½ßY5Tø­±_”¡Fê{…¦ ¡Ôö¹ãzâDáíñÚ9(>´<Üäly¸Hïò0MLñK~…,£“bT%(¦_æÚ€ƒ ¡>üz³º ;µÅä.ÅNØýÑ"˜Ý :Ðì}@Κ½H³Ç&[éy]D¥©¢~»SeüšøÇ¯‹½¦Cb‚<Ѓ=@Îãú¢}áºÞÜë "ŸÎó töRµ4aÔ)‚_h®«&›–ôºh"@UùÿEÓì¢Iþë.š(IŽÞ4}¾èª‰` ¨êéîšàt†4ñÉÊumøaÕºÁ¢>â¢)¡HðøÒ{¦²§'Sé.ø0…ó×Kà‰E×w®—>ÿ#÷KpÂþÅqÕëzÉ¿èú=ªÅü’ÑûéÚ;î endstream endobj 1081 0 obj << /Length 2081 /Filter /FlateDecode >> stream xÚíZmsÛ6þî_ÁTÇBñN`îSÚ´™t|™\¢ÜÍœÛñÐ"ls*“>ŠJÆýõ·xá›DI´·Ó»~"Ï.v»‹ÇÆÑm„£7gß-ξý‘Pi¤%•Ñâ&IÍ¢DÃ3!Ñ"‹.ã7ï>ÍæTàø"¿Î³Â_½ëÌ©L±4þõïi±IW³_?Yh)€–ÌBsE‘" $;TÁàƒDÅßú‡Ðö›³gÿ9#°G¤S>d"ZÞŸ]þ‚£ ~û)ˆk}q+ï#A0¢LÂx}<ûÇ;ÄH ;´7}d†Ì£„+$µÈvž"­tDìjU&ºÙ‹t?h>Äo´œ"¡%‘¦ú+(ë«ÛÈ>49/që%Â(„D‰ Hsïªuþ›¹ª¬ˆ% ŒŽæ ©ý²oŠm)‘@LE½…¦ªÊõï2>÷Õ‡áœfEƒj/æ´!þ‰N;YYÌIŽ9Ã×*ÛeY¬‡NqÍå\b/VÙU^¯ÌÐ'J"œ¨¡÷:6•Ⱦ—ËÏàç<3;Žþ ò·ÉÎæð3$¢„;N4àðy 驘×~1KplÀ€s*“ؤË;?*oìSÅõñË2 £‡2/êµçEH,éû‰ÂnoR`»h  hÁ)iÖÜ”•Gürg@fxñ“*.Ê  U‡ˆøÑ¿¥UP)]­Êñ“ù‰ëÇn½CÈ pŸÖyYÒœ2‚x«ÔÀµ;Ö$·Y¾Ñ~GîõŒâx“¯êy/.^[¸hÎ)F’ ˆ;HABx  |QåK¯'Ã*ÎÒ:E³9W"þ×éMú‘³›8‰v°NïÝH;In*_ûgj•ùl •æ+wÜôuYß……Emª¬ù>(25n-FâœO5‡XKÏ–²Né{üĘ@ERb’¼9—ÄÕáyëô×±o}ã‡Ê,Mf«:˜˜q¿½ñ?¬µÒgk¦‚:5_Ǧ×4Ÿ†€Å`TÿŃYæ?cL—þÝßýîƒÔ~±)²s;¦M|àØ~Qùã‡ã²³y²Y›¬ÓlÌ‚#Âåä€í"6÷ùŠ4Žôr¥ýîÓÅÅné j®ý¨ÝÆ Ì}tcˆàCóO¡ÝFÁ7‹»ÐbAíÌ»•.!‰F¤è[Îÿ þº1E–·~jy—Vé²v©¤'©2õ¦*\ž°³ãq ¹I$mèêø¶ImÖ–mP£°„è^;ÎSr!ì ©Ä/|?c6.à Zõ ÆFÁÁpL$֒νT:,!²-¥*Ãt»d½þCÀ %ehGjeÐqB!’$AЇ÷oS•sPõ>/Òº1]ZUéck}ësâŸè³“•} ] ·xÄñ?DW3Ë%AÇù{ÐÕ .$IvèjMºFîŽ Oß^àm’Öþ}QÝ~ŽÕöD ˆj@ìˆj+?<=Q D5¼ùæÓD5L\?n)>¤ÈöjN!3c’L%þXoiµGòÖf:ªú[éê@ïôUýUýÿBUsê7 Ïf£8 T5Ìõ¨jxsɈ7–ƒAg9Nv¨jø½£ëIê_vvÏõ”B“¨j©zTµÛÀ»²6®i½¥usÜÙ_eÿ"èX—~W°tw‚¨Ü2ffìe2%æƒ=Ö&ð(UÒªç^Š-Úÿú±ýû@¾½Ð&§âvÂMôil¼åÑšjtˆ§X¢„‹¯B®R˾4ꎒñŸ?ª1ºÉ¡%۽ݎÒëOÖ}‡Dµ‚ËÓHÔ) GIÔ “IT¢a¡ÖÓØu¢FÿçY@4týMÔýìú“÷´A²c ÈÑÀ˜2=0F¢é‹žÀ®°†Þò«°ë$ëHù'g×ÅÊ®?Ý!ív.¬nC˜?ç¿ùþ $ú|æ endstream endobj 1102 0 obj << /Length 2247 /Filter /FlateDecode >> stream xÚíZ[oãÆ~÷¯ ЪXçN²}Úf· ®‘®½)ÐM`ÐâÈ"B‘*I­ëùï9s“HŠÖÒVœ¢@ G3gÎ}¾shÜ8øpö—›³ó¿Jƒ%’Êàf‰d‚(gD‚›,ø~¸ú4›SÃËü.ÏJ;~ûÝ…|TKU«r¡ìëßÒr›³o¾Õ¤YiÉ4iS“N6T‡ QžÛ‡Hôž³÷7gÿ:#°dÏ ld"X¬Ï>ÿˆƒ ~û6Àˆ'qð`V®A0¢L¸®Ïþ~†{’¤Ã†'*J¸eå£j·uÙx¦»úÀÁœRD)鯜3‡íJž-»õ}`?œŸÍ‚›"»­fgÈü…_fT„i±ýËw·×Ÿ¾ùæýõõ!•8Ì—–‘´(f†ìb•Öé¢Uµã0­•¸óò̾Vµ}>¬Té¤f‘Õ×R3€gª¶ÈÆtC$¤ð‹rwf¹-Š7GÄ¢ÔˆuqõýŒ0¾½¼xwT¶dvvwXÕêÍÁœ1†¦Áœ€Y…°,^*-øƒÊÞXïÔ‚ëgšey›W%xªyWuíZT™jÜjçë÷ªTµ_ºœØŸÛZù ¥%Ö §¥ž¿1‚âh§ÊÛ…¦°R‹ÅáO·ÅÏ6~ÀñÊ!´>ôãà (Š0¤LL@PèyA$¢„%qÔ*Xv¢ Om|öðƒ$þK˜èÕ§Ò·8 ï#xÊ ]Z%4ù ˜5äê{G÷£OÀÑ>,<çìIAó²í¹ïËñ‰˜¼žbûôOTìÉÌú$€}8¢XQ,ãN¤@”˜$‰±‰7?4솠l†YféÔÒ?€0±A2—Xvþ¸;«/M ‹ƒÎ¼p¾™Ò ÔöÕ£OÿDÇ8™Ù)ŽAE˜8 ®ì4Üä?«Û¾q! '¿Èbü7Uób«Qtª5«õéŸhµ“™’'wV£±Þm”<ËØ€Ô°©Mï Õ7I,Žâ¾‰Ÿ´1ÈÉ®‘«/`æ\_í;ë;÷Ï“mMóS.ÝÁói.1A‘ –û›Y 8§ UºXÙQµ´O EÍ ‹õ{>ŠïÅFÜMYðŽ™rk–EÀŒpš{ñ“‡í!"|´ošÁ‰Ù‰»Çãy '¬S£ŽqN!5c²C¦=«(’ ÖYZ?qòÆaÛ¼hç¹;ð©E• ®4AUÖ`‡:_XN5ÍÒ6E³9Eø ¨w“v´ôhÛœ¨Mº6£ÄœÔ´©fÆ¢õ¼01`¦ïªvå–`\À­Å£ÛPf–Ô¸¾„ ç|ª¾x¼38 fFÙžéžìÄØ1`£XL:oÎ5"q_½mú“ÆÇƒKnjµP™®/AÅŒãðbih”ÖÒímœ'¡*Á4~«uY¤nÇF-ò0¦ ûn”o~7njvlKS*HêüCj imBOê’ÀÍæîm£²=gc.§Zã¸SQ=YF飯>]^ÞZŽMíz´£çæÖ»±@Dð¾úûqÈ©ž^P(Æn M˜ƒk3߯4Ɉ{ÍÁ`¯9nRØk© X*ïí{RmŠl“)ôì*E"ÚùÙþ ªò…Ü;µàªj•ç5m\ûZð@¾Zw:me¥r=¨ñ(S9Pf¦t5™¹:±#­..­>ÕÚ÷:uiUh£¥¥¹*óî±u£Sð–êäTÞO(E¿›1íú‹4OF£úq˜ˆ´³_éBÜÞ I)G”ƤÁ¤6kX§Yƒ!&çK׫¹)ü3à ƒ…ÌžúOUWs`u—ië•j¥Ý©B›ò‰WÌb[×ìKQ-ÒÂ×ù]*ã•cÛ+§õºZ¨Æ–ø}É 'ò’ïiHL3$ˆŒŽ‘ °RÊ®ÓÕ·‡²t XÉx„ã "€X&¡¤ÏɈeŒ´HG°ö¸ûpЏøŠ)C ™à="ÃxoïEIUû tIiÄüƒ ÍÇtR”нœZsŒçÊtè@§0Á/&ùº_|Èt¿N"gŸJg w›ïqú¨°Px|\"AQ4%Ãh<é3âÛ#÷­x².±?¦u>îœjÄ“†-ǬZ§ã«0]’Û.Àá|¾2—Ö˜³VëM¡Ö»$g°¡!°ÝÀÍ0ª·K䛌ºGüû…öëÊ3‰‘ÄrR[v¤ÿoËÿµåå½-¯Û"‘0Ä#_aF~ܘ3"WVéÁ÷z^»D󢂤äãïâÝ•þ,6­—Ynñz |Êâ‰|µÆÔ€þi©Ó™}FŸBâŠbfÿðÕ.1Àøe^dý(Æø™&‡ËSàèwi™[;¯×w• ”UUd;ÈÜ@üzSäwuZ?>ï~É›ü./òÖý K(U ,…Ñî>‘HPwØÍÊ£$ÿÔ¥£¿PöÝ [Õ ª—+•fyéZ²PÃ{mUm 7.»ýG] Ï÷Ùd x_Sôó|¤›M‘/ö7ßPÈUÛnš?Ÿ?<<Ì$(â¾Ü" Nâðþ¼©–íƒIGµ:‡@¦óµù,~¾j×Åm ©ìüý¿7U eÌÜÚ¦™WËùµ±ÆüÒè W ÒËŸJ; Š}=fñÍW¤èã u«˜æŸ„ƒ„D¾^J‚›’eôj)i@ÿ´”t:³ÏHI„Åpõíù¼fyßÖýoeÿ™êú2ÛTþííÓ§¢}Nfvʨ(† pXdúšÆ>[HcŒÞN´PÓ¦õÐ*áÔ/Dwá_ñ+ü€þ‰9™ÙçX„èC£—XÊýÛûZçuÌÑ#¢5NdõH²Â¦Üwú_¦ª.ÑßRÈï~b‚Dìø»ÐÃZýæO§úò†ï°‚;5OôW¡JB=ïû—5z æ/ùµ_Ðßk endstream endobj 1016 0 obj << /Type /ObjStm /N 100 /First 969 /Length 1770 /Filter /FlateDecode >> stream xÚÍY]o[7 }÷¯ÐãöPY¤H} A4Y·YQ4é°-èCšC± ÒØþý+qZÇV›Ä؋ͫËKQuoÕä‚£’±ÿìJ±üD2¡:Ê ‚cª&ãÄ®jva€]T3BÑÅ*â$šR'ºU²é²¸Ñ²¥Éø)æ‘ð Sƒ»¨6Æ0/%Â4ã2±2{9ÙcŒŸçðlÑpjhC0RÅÀD1Ç0…ÐF†TÚXÄü¸Àð1å6¦Ž™š^‚Ôf]Ç`^c†ÔÐÁÇj˜"îJ´( Â%ÅB*p¦†"0\h¶)¤„À` J±è!þÑ"I]¤üDn "ˆ¶Ä¦WîdÞ¤º˜ªYFøciw(ÖLæ±'2Xc!‹HÀš fîj ZT0.Ü¢‚©IlQ±»±E%ò‚ÛCÊf.E'J.ÖYSƒ³„°T{ i‚×T-RX$ÉÒÆà,ƒ Ô¢‡ÉKm1KÕ)µËù¢¶Þ™œÆö|«¶ÅÀÚ MOœ–`óFŽj„5™²uMÔ2 ‘(5oꇦ— i˜TL q[>øAv¶G ¤ÒƪKÒ–¯HÙ¨’KÚ€V<«ÉÆ2ô’íä­K¹ås†‹’M#»lI©8Ü4 AϱéadiAŒ¬mº5¹œÛtÃ\´YÆ® 0I ‰ÅÛ†*Ovv&Ó}w\«íç×núÛï H>Á‰0û ·çŸÎÎÞNž>]«KÉxÓ­øS Åc®CºH_Àå1]@@´FT9°·²6¢K¢Ã(VŸ±lcvÙ'äâ˜]ò™írðûí–îóùù¥ÛÙqÓç„"ƒJÜžÂôS¿@×.[z¢¸÷+$áâ!œ¾º˜ŸÎ.ݱ›¾Úî¦G³.ݵ¯£ÿžáÆÉŸ³Ét~gç—­¸µç'Ó׳óO§³WE°ý2{ÿáäÙüw0 U=cW!_ê[ø;¹€+r|¥¿{~>‡ÑãÆ†Ê¸Ãþw,„Ò…º8tájbŸ!nF'ÓÃOï.ÛõÁ‡ó¿&Ógó‹÷³‹†+¼þ<}1Ý;¦vaS9E8EOjû[ E-†èA ©D!¨í¶ÈºéOó£¹Ãº}wtöþÉåÉ»³Ù÷χAÁÕcg¡*_PÚA.Þ 0j#PÑJ/ßü°·ûêðá`HEÍ@0´vB´Ê XÒÖ°- `oõ˜+y2Ï):ÄÆOY·µ(ÈX/àmµ- Eö$ÍmÒ0.Nƒ%6CÇÀœ)¯Çp°ÿäðÍÞÞ‡‡LÞ(³£‘’½¢ÕÛ„æÅË_w^ìfß‚ÌrSŸ€´¬'+¹xkÁ>/™·µ53‹xk[†”rˆ+)kƒÊ\<±ŒZF$ÑèZ>è¨å`›g0R9æAe¬6­è>V*÷ÇÁȱ•™Qhþ°#u±{ŠŽÚEƘe¹Œ‚ˆ¨é< Âþ.)Þ—ÿoÿv7ðÍü¯ò%ÿ+ß“ÿÛ™éŠÔ¥w¢]H]è=ôž@zO ½'Їí ü“j§†Î?)[o°múQt&Ås úQ´&8ƒm•~:†N?k1<:ýt4~6¡¹‹~î‰&£*;šã$aµ4*Tk·Þ,©4bëÉÊ ½m;Y uŒnr•RFŒd«¹º€ÐSu-„GOÕ˜ž©›À¬m”4.7Jäüzw£´¬½±QZ¡¬5 ØåAefoï¹Æ”ÑäQª£ÊHo-ƒÊѨƒ– É n±e¤Aå \Iø+”#8FtpMÄ<ª€y45(Ÿ(*G¯aP¹²WÉÿ»†¦Ð— M®÷nhRoMroM2u¡÷:9v¡7=Y²}éÄ”´ù†—p€÷‰eÛ¼¤à¥%ZRT@‰eÛ¼$†¢^ó’$ÅZn——:/­…ðè¼´Óyi˜Çí ìQ¼ÎÔHà)Úúë&Êä#`ôT%´•%~E ÕJ` _ó:cY»³tBw[G•§aÓEh½} RôØRQH°ÞsP9b•#Ó¨eô94j8xÖQe[ä•ïV)'@Žƒafû4@ô Œwçkûe6üVƳ÷XŸ3XÿÞŒ—û9=÷szîçôÚ‰îúý~í§ûÚŸªù!©ÏÊ}µ¯l(²lŸ=#:u9¢ææ-U{¾À\ÐþÔµ¯Ø£wÎ(hŒu±öÍx˜Ç-öšÅ'–^쵨×·]ì%┾ômA$¢çmö%–¨8aùhô¯5 øXd›™ÚôL] áÑSµ£é©º ͺ³}¾?0ßÒÞt`^¥œpì+ËoÿcGJ endstream endobj 1127 0 obj << /Length 1304 /Filter /FlateDecode >> stream xÚÅY[¯ÚF~çW¬òQØìý¢*­š5:‰š„öå4:òC-i çTmÕÿžñ퀽‹½à¢>ÙØÞoÇó}3žZ!‚nFßÍF¯ Œ!‹­b Í–H*¬,GÚÂQS4[ »ñ͇Ÿ'S&Éø6yHiyþíO?–'ŸâeœÅé<.¾ÒÇh=ù2{—CsdZñZ† 5°s*%,Ðfüº xAhk¸Šòð ÄR *R»õQÅéÂ')ªŠ€é—”4+8v2E‰ÆÒê~M)£±ÑªÜõmiÚŠzÕ¸£oØ^ðæïêï®»$úö\­»Ô}±Ï|™I‚¸ÐµùÙã|_¦ÈÙzq¿&”Œ×q©00E~¸iåNˆe"ª$Í-˯K£1lEYŒ–Gɲ‰æ¿ênÀ¶–Õ”À4z(~å&~èCv8ÆRØ2û[Àe« ÷9ŽÁ¢C<>[n03 £˜Ô)Ô)ÝM!5Í5ÅÕãÕÍByg.®GK -ƒ ¡Eb•iÌYõ•›oÓKKªòüü·(k2"-¦ÚBžÀRÙïeõ„C­ÄÜ £ÓhÓæ·JÊÜRމ–×㶉?ÛÁÆžÃ-¤7®ØÿÌíSœí’mz1½„aJÕõèmâ¤w°±Ž?;è% 0^©ÿŽïSjú­“Å¥„K¡Ì×W#¤…?ŒáÆžo ,„芷îOÜ}¼Ž7qÚ\8DtŠ¡Ñz~ƒ¸6ÐÒYs=®›ø¹jìéâEŽ…©Šßƒ½§5ÔÃvHµÙ:žQ82SÕW·Én_Ξ&LŽ ?çÛE5˜ø} ½Ô®êæ¹oëêˆ(Ë^Œ~UöB§O¨Ÿ¡þ”Áé³§œíÈ¥”ä³[þœMO‰—A]”K-b’÷ "¡¨‘$`xËhþ?Dý‡À6ÛÇÞÁ+|;OýCÜ¿üéR’–æÕ!à}Žjœsw'q‡âÑs³(%=&—…eGˆÏI-·}€RšˆKþ û ?3™ endstream endobj 1140 0 obj << /Length 740 /Filter /FlateDecode >> stream xÚ­VMSÛ0½ûWèÏ4B–d)P& 0mczaÆ8Jâ©#¥v\†þúÊ‘!YÊôbÉ’öí{»«µ š!‚΃Ïipô…2†œH&Q:EBb™p¤7*ŠÒ ºœ_ß„C&Èà²x(&ÆÏ¿Žü仞êJ›\û׫Ì4YÞ¥-4G±ƒ–¼…Žb†c;ÏkT!ŠG~Ikœ¥Á¯€º3Ñ2Î ”/‚Û;‚&nï%1z\Ÿ\ A f\ºy‰ÆÁ·€¼RH“-PAqy*Ú„” š…g’–“û*ddoTlˆ !‹0—›ž™f¡«l¥'^~¥WMÕ…(·]û©úq5ï”^žv‡æ:ÿY˜™›6&_ÖÔ8rÇ)Ýœÿ21Èʦ{%~(:øY“U™Yé ‹•õ£K„ylÙS½aUUº^Z³s¶nò\×αý*fN4§8V^ó•^<è*¤bPC8QÊEIqÌboáÔÞoNNÎÆãý,sã8ŠuJ¨Ý4ó­4$Ôª.Í@s%0aI©° Òû{mÓf]˜­ê²/ºÚåZÖë"x½Õáe A›8 m¤ó¢†Ö_’ lî˜tžÛLïÓêL2ójëZ· H ‚<@êðGWöèwž¯4èx‘°¬öÒd¬Ñ`°³ ôjMù­ÿ—@˾@Ïm ¦ÅX½gO…ÚèLÁÔVÐrigp¨ÁÕ<¯Sn —eO@aµ5Ðò²yhikí{ØN“‰)f„}¤Éì}Z !â> NæŽÙÃà2Á¤ëv@Ö„áÄD„¾ƒí€S2÷©G4r˜j«_®„”‹Áñåè´§iSŽ“˜ˆg‚•’‡{6•ó8ñF&Œž¿{xSòyÖÓ£ó7îh_ˆÆLúêæŸuî—ƒPýï(›Ã ‡Ëæ0ÆnÙlþ§öDE '$úȯÙ_ŒÜp endstream endobj 1146 0 obj << /Length 848 /Filter /FlateDecode >> stream xÚ­—MSÛ0†ïù:Ú3зä#ÊÀ„І´Ê0ÆvÀ3Nœ:Nþ}%Û)ùØÄnèÉÊFzµ’ž•v zF]ö>{'_(c(Àb 'H*¬Žt`¿š¢qŒî½Ëáw¿Ï$ñéSÏêöé׫º1J&I‘Ì¢¤þyΖaæ?Œ¯4GÆJ+aØPcg®T¥¶´ñNê ܘÞŸ÷«Gm‚è»3v —(šöîŠí׈`ôZõœ"I f\Ùv†îzßzdÿ ³+Cšj¬TP»2œ?oÏ}a—åSJ½±pÛÜqˆ+ƒ0HiƒÕÛñ52+£‡G¸–˜0‰´äXrQ»2ÌݬvtŸRHY[ÓY2Ï—%dŽÃ2ܰ«ÚþêSâ… P©ÈÁ~§qc`# ÅŒ°#6bçt9,Á)ÃܺDv4¸ 0i¤E¤Ò†]‹ ´‹ÛÙ‹—bÌž­~Çëæt0¸={¼e·£ýlIM°b‡w”e ÛÙ²ˆW¢•E‘ 0ËÂgÄëÃè=C,M“)Ø=/Þ s˜½3˜º(ÍešÏ°øï·Ã¢“Œ~ŒÅ"­,vÐèÌ¢¤ NßY¼:»þè‚¢PÜR$þ‹ÒºÃdãÇÙKX„Q™€<&ðuåq'Dÿv‡e~ûTz @|ƒöÂbzµ?H\\Ié€óˆ­Ü¡SØ 4‡5Úéì ÒJgÎt B°‘zý!~´ŸýPrÁ±ÐmqN,%k‡RHÕêáÇ·Ìçð啸L64eH1|»MÃäk’/g1Ì7xiwT_Q]6Nzľîê4˜æ#´ƒH+¡4:Êx€-ñ넺‹ó ¤T¸|´%ܱNrÓ)çSÂkîÂi>±‹&éæºNº…“Øê´`ÛómuþSZ@xE9œÌþ³AëS ç i f¯iù9S¾Íóû/ö,…_¨.oÈâ@°ÁÇfIC¥r­j£Äž%i²=ŠU5ÿjºïSBˆg+¸þ¤H\¹F<ü²‡f0o_ °}« ï'cº©õ’©Ë÷ªvœ„Y–G¡KÒjËd9‹Ü¯Å†P'ìJˆ8¦¾ûıK' endstream endobj 1157 0 obj << /Length 745 /Filter /FlateDecode >> stream xÚ­UÉnÛ0½û+ô"Dq·ÞZdA‚$h·—4(d‹¶È’+Éqó÷Š’ã­@ÓöÄ9|óÞ,AsDÐåèãx_PÆÁF2‰Æ3$$–†#e`U3ô\Þ} #&Hp“Oò¬ôö‡OWÞ¸·3[ÛrjýçmZ®Ó"|_;hŽ4@Kî Ͱ¦"w¨BÃ¥ƒØ/¸;£óñèLj‚Aô• \äM—£Ç'‚28»F'F£Mç¹D‚̸»@£Ï#²§çJ˜=‰‚b“x.ãP’àeeÏ%-3o|uûi±†ƒ^Ðn®(ÅB(q@}®Þeö!¬´ÇjKpÂRTá„òC9|GqØFˆ^G¨çÈ÷'+Ç€†$ R èãé\Ý…\tÅr|†´å$¢ŠcC)ˆ¡˜iæoŸÙfZç«6¯ÊSú Š@—Ò{ßÚeU¿ø.ÈlZÕ4í®v;³u9u_ î¡ö çXË>òÅà휻@s¡ßX-ñÚ~D`#·‰Ù&2íòâ–˃äXAJ…dX)é*æö•˜Ñ1l´AµE³ŽÛG;½{zQS5ðÀÔyÿ+¾ïõüaZþ$Â.–Ć™ÿ@¶ƒ«ç=î¶QW®dgJ…˜Ñ×^ÀKfgy?|ƒzŒ”&ä%O4ÖLÿKÉÖß?¶‚)lˆò^–“ªð3³¨Š,/çþ£Y¤µÍ¼]ä“:fmû?ç <ÐEÞn‡pZÕi[Õ¡& ^Ãy?I‹¼ñ¾Ãºn†yÙÚº„1îÑ&ýÚ.ì  ›f¶ö¶{‹ÞÉgG¿Z½ b"x©†;{¿êO–U–;ÄaÿˆGºZ¹jNŠ\´íªyÇ›Í&”ˆy¹ÆNu0›jÖnB µá4ÅËî/Úeñ½¬2Ÿÿ\Uuk³Èצ‰ªYôÐU#ºérÛ;÷½¶;õ'K  ¹þâGö ¼GÐj endstream endobj 1244 0 obj << /Length 1010 /Filter /FlateDecode >> stream xÚ­™]s›8†ïý+tiÏ´TˆKo6MÝi³^ÛÝéL¶Ã]&\À»]~ýŠ48u9’ÃE<ñy8ç•·0F;„ÑÍä·ÍäÍ[B)ò,Ï¡Úlw,dz‘ë©«KÐ&BwÓ›ÛO³×”ã釸>ŽÒö~¾\´7+¹•¹LCÙ~ü¤Ç ™}Ù¼¯Ñ6 íØ5š j "Ô“*÷”+¦oÚ‹ú¨l&כɷ QßÁˆ<9£ mŽÂýäî F‘úß{„-æ ôoóÍ=â[ÔvÔ}‚Ö“?'¸‹ŸDJ> stream xÚÍZ[T¹~ï_áÇä·ëb—½B+± ¤$B Ù Xh%(df5 Ò&¿>_¹§f&LÓàl+/3Õî:_•Ëuõi¢RSID¥%­þßÒ˜Ÿ{"™ #Q÷*‰ÙWˆÛ\á$4W$I›+š´ÔÍhø_çBM:&KKU犥ÚçJOMæÊHͦ¨’Œ}…[ê ÊèiŒáþÐßQÂ÷ì\ø#ƒœ’Duÿ¤&jS²?oûo}‚}UéÝu¹ƒmb‚2gN\¨A„¨¹ÑÄn!r[0M`i æž€É<7»0Ï]ÉH,úÂLêhø²ªúDÔ>6£÷Ä b¨(d5›š`Í|w„ƒà^& G ߎêº+$ŒákPGÊ”_ TwÕÏ„ûhBæü‡Ãä ƒpsÜÚ’ˆ›ƒ _´Ï5<Ñp( ¨æh0‚˜{á1±)¶;5<Ûu®¹wKØ=6?¥VP4†-SB÷öoð†2]§Á|s zªl“î+àfµŠËÇÕ6Ï PµG1IuˆëišZiŽGj8P§ü‹ç³–šÎ}¾Õy:æNÇ2àÜ­W·'ÌÐÆYýY˜×dÚ,V§E{KÖÔe`ófÓŽ8[øËè#õ¢ ©Nó”á‘]ÈÏlpêªÎ…z5×`hê{{ÃÁúÞ¶8ê>f|`[c&¹[±º4ÆÓÍýû›í£ôADˆçÓö¯?ý Ë à­ ˆtöáÝ»—›ï¿?Îlœ ûZÆÜ(w^Š\Kî8åeÌ2ò€%1òŸÀ"f©Ø Â~3‚:ü ™ñ¿#Ü2l8àEÌð¬}!2i˃t)3|£,E–žá³ ™ÙrG¨,c&èü±#=>?»L÷ï§íã™ëëþ©Ç3Ý·ø€ê1‚°k6ñˆÚ‹àöéÅùëg»Ëô"mŸ>zœ¶Ïw¿^¦kYÏÿýË_¼úûn³}¹»³Ë÷žØÍŸßlܽ?ÿpñz÷~ŸìçÚŸwoÞ¾úáü×ô¢`¡ŽšAÜ!1^BÞ« €xŠç=ÿƒ³³s€¾Ø×5WkÖµIxY»"8 B'ñ‘ªm³}öáçËùùOoÏþ¹Ùþp~ñfw1*/·Ü>Ù>|Aóƒïá5vˆmph+–ç>ಞí˜2œ \¦ÅŸ¥íΟŸ'Øï>¼=»¾wù{7ãš:4©Y‘ίt@"ÍÊ'Rqí™UL²•Yˆ³ˆW1ËívxýWë+@žçê"È!|®­‰Ÿ|êmæ[n=Ã+Êÿö?»ßà гäêMƒ/Ý­!ÙÔàù»7÷._ýünwo÷n÷/„×mefnáv“[î!©ÚnØ“ª%·¹¯2‘©fo%1W¨.ëß!fäeY ŒXà¥*W¤eî y‘•Ñ.dv6^È\Í+Éfšõ`%9Ä 5êÇ¥òÿ 8h¹[¤Uq¸m·]˜à|Ä…os_»0¡˜Ò2憌w°³¸ÍÛ¹")3t]Ä‹ñ¹½Ë™}ý¹´»ç¢úEçBUÖ/I-·¹÷&1BmiËxL]&–»¼ÞýêÁ†ö.¯ôàu.òOփћ÷ºÛ¹vZÆŒào§ØE¾ñ¿1üížR´wµ~•§Üjï|¨^±cc˜¶aì3øœbìäVsAË`Rõ`¡|òè/ž>ùîყÏî”ÈÚ¾$¿Ôv0¿Ë2æf#ÓBV†s/c®p¢zpÊ9ÄÜ$ûÕÀBæ†àsÈŠF©¡a«E²_Ç|cqúörÄ‘ân93Çìñ ÎÜêÕÒZD"Æ+AÄoÄ{ö;a­° ZYQö1”Oè‰0¨{ý©‚yQìDô쩨’çm×ô¼7G·ØX¡®¯ƒøŸÞ¨@%Û‰TÀ¡#$£Ë¼¯ÎµYá—¨7ŸÖ¡­¨ƒjö·jhö´†2¦½e¤ÙO«°ffðûtÔGmð@A€pôëg5ÍÜè4f*²jȵ!¤±ƒý:(\Ð_[…X—J§ÑAÑ Î¹g¯Ò˜"rC5RéYÆ;ô5uÀ|€éůK¸ºã:삼¥J'ÑMyñÈ,pÁùâ–rñÈôµ×ÓT È.:¯u òy͘@iè.¯Àœ6МV å•@y"7J Pvô¾ŸW¢­ÝìF 4PMßg•¨k¦IÌ~ÍìµV÷©ú³J¬.j!hÚÌßà^]ÃH/¹Ñ‘Š¥+–Í!˜Úk¤G«þÊC †)ñA¶Úiu€7Úè7:`ô¶r*;pöqGиùk¸…O¢‚‚nÇšÙUƒ8ûÛ}ašQ‰Éö€? “±cí¬®¦þ[2fªð–A¥> stream xÚ­»cx%\³&ÛF'Ù±mtlÛNvlÛ¶mÛèØ6:é¨c£ccúyß9sæ:ß|fÎ}]{Uպ뮺kÕþµÉ‰Uè…Líâöv.ôÌ L<yK[cWg9{;Yze ¹+௑Žœ\Ä häbio'jäähM¢@ €™››Ž bïàédiná RSÖ ¦¥¥ûOË?!cÏÿðü½élin øûÅ hcï` ´sù ñ}Q¸Xf–6@€ˆ‚¢–”¼€JB^ ´:Ù]m,M²–&@;g 5ÀÌÞ `óïÀÄÞÎÔòŸÒœþb 9ŒÎ@˿׀&@‡\t “­¥³óßïKg€¹“‘Ë߸Ø,íLl\Mÿ!ð×nfÿ/BNö#lÿúþ‚)Ú;»8›8Y:¸þfUÿ7O #—r;[þuìÍþFšÚ›¸þSÒ¿|aþz]Œ,íœ.@—r¦–Î6Fžsÿsp²ü WgK;óÿd@pš9™ÚÿÂüÅþ§;ÿY'à«ÞÈÁÁÆó_·íÿõ¿8Xº8mÌà˜Yþæ4qù›ÛÜÒŽñŸA‘²3³03ýÛnêêð>7 Ó¿DõÏÌPÿ%adjogã 0šÁ1ÊÛ»üM  ú¿S™á¿Oäÿ‰ÿ[þo‘÷ÿMÜÿªÑÿöˆÿ_ßó…wµ±‘7²ý;ÿ^0€¿Æ øgÇØ9ýÂl-m<ÿþk ðß$ÿp¤\Œþ6CÈÎü¯ L Lÿ6Z:‹[zM-]L,fF6;õ/»š)ÐÉÆÒøWÑ5@ÏÌÄô_|ª–&Övÿ´žýß. é%ÿW¤QgÔ–Ò§ý¯;õ_QеwQõtøKì–"goú¿ÿ` Û{¼éÿ¾@zVNÇß„\Ì̾ÿ‡lÿ‚aþϳœ‘‹“¥@çoÉLÌÿ*ü~þó¤÷_`ÄìLìMÿ™#;Ó¿ãõ¿ ÿ¸M\œþªú¯ÿ·àÿ8ÿkÐ@  ÜÚŠ½ oˆUFv¦Kvþè´¨Î`?3øh¨Cy³jIQ@}ŸFÄwµá{}(CË,Ïg‡çÏ3‡išÃñ~,ʾ4àUá7_Rê"Ô-Š.NÚà FýrÄÌsï?˲ÛÚLꇻÓJÊúeïP³]¬N0ž¨HÝŠ0ÈüLÒ›â1»QZ@ЊÏÎ)’Ož)‡'ÆFGún ðióâaÉy°ýRψS\< î›M>!_Ý8Ýwy•‚QjÀÎS~ÄøŽ»ýÑjõ†â,j³Â!Ï\PòÏv©TÉÇb™(- Zo¥žlaº™üy€m%g§ÞiovÂÐÛ6†¤Ëi7ÿαyÇïQqàͶo×*Ò¿űLH:,8txÓI"iÂsáÚk“çß¿Zãn,ž[rWÉ"t{'ë´Ájt Úä*c~¬˜–hlÝöéËK ^f¬•Ixþ¶I+û@¦ôñaw àÔ…71œFWñèôÀG08@æ·D23R­3Ò¾º»ÚýÚÌ …ƒ0d¨9üÉÎò ”¦øÙrp„i×£­¶÷° H½N+¯¤tI‘‡Ôj”0.6²nÛ ×cMþÝ…)£Šæ©ýïõ¦|)Úä&—3¡\—ËB}WÉ›B†ÂßÖþM±ü‹#Ø?×,W;Mg¾ü^8tÞÍ÷TéŠ?‰>³ÛÀ(©nu:;K´À÷Ë·¢Q2eCÈpýQ}lÐO)ñΈ Ã¼óR‘òsÚܯܟʯõ¨¹•#šPJ@K>Ü_¡dØoÇDiJï~ ͪ–_IHÏáЯá—ÆŠFÈ{ÊL9´šá­’—tÖ˜}„Ú]ADzKºî¬ª*ò®¾ÌHý–¬cÕ>ÿ ðkÉö _¡ñiÅ=Mƒ8 SŠ Fd*²§{Õ×[w#Ѥ9!oâpÍ‚ªÕ,ÔFŽ^ܪo\ؼ$ãŽþ§ßë†ÎÕÌõ€}{à ²°3Ó& ž‡¨€$W%;°¦±ÚsP‚ AP4‹‡UKÅàXÛܰ#ÿ€‚õ§')<Í0­7Ø38«&4Zëã|¿áȸ êäHAÒ¹CÒ`+úz¢h Œ§„Èø¡| bæl.™O”03‡g¨›Ö¸Î—ÙzºÖ &lÅÕ5€#¥ÇoBÑÓ¡-m]ÇXŒ‚^Z=ŒÅR£mæ^ŠîBq—¿êæéª+ÛCùRèðN‘íÉóT m}Ã]3)+Ayè ‰=5Äoˆøànt 8ª>+Á®ü¾.©öÀB½C:œµÅÛ¡gòHú` ºÍä&E áÝÙ›^PGEg>]oÌ“ˆÖ.îo¼éNZ\™wDg9×ü¶;ºóg£ÉŒe˜ö-èh€BPŽÜÉUµ{î–ÔªwR<†Ã™é¾¥¤´”ج4Yò©V!£5ÔîÄæŠj†ët|îIŒ~vð¬¨B:Ç (í!Kq‰¯ºÏ’"é/¸e¿\2âã,]ä}{tK2Íp9§w︲ª¨1¤‰ãøï)<ÙHd~*û©´ì—ãeçšGÕÁ’q™ÈõwM€Ãè#hAež:P’rú¡X çRð¥„yùàïȱоã 1iæ /®¹¨©ÂÜ õù#þª@ŠÃ©»”õt² ¬kó}]HZäî*ydLûBÆ”ù¤”žê.‡+¥¯¹o Íûw§¬Ò‡›-kßF¤Ê>ôÆqӾǗÃT²aj{o›8M&’xö6IéÊ ä“Bß_T½|-Ó4EAÅïi)W<«ƒ4,ÈÆqÀíÝó{'œÁfäúð:&ê›0î—…BLêÎß{e1{{õõëÞ§ÇAI}à êûl<âÕ×*{~[è?úìS„÷Üow¯É TY9¾„è^Ô{šŸèUú™ôþ{±éÁ?/¾ìwCˆWÝw¥»j¨„Áž“ÞÁ;“àììg‚&ÎÃkþqÃ$ÚFÆmÚ¾qÃuÑ4Ý¡ëš<Ó˜W„™×®…Oðø%…A"2aKˆ®ù‘!¤Y.e3;„§É¨xÄ"2/ëÆÐËßSï•fÍ7;ÅvŒ¦x^Ê™ú®Å­-REeYd^„¨ó­©±¸á²’]ÊeE(#5/ú(RA ,â€L!d¿Tïˆ7€ü·ä®E؇В8‹ÂáZÞíàÐ%ieÖçukPùÒ2tElÐâ<{d †*â-X0 ¤{ë2S–¹‚|æYnìh íÚ„­ ¿ïvB‹˜FÂØ$×vDãÎË>(òøTžÓXø‡š0iyAr«øcî‘á ëÎ/ÜÂKeò€5ÜÆÓ'odiíõL»Á'I¿Åš<"f½†·5%òè׬SÝD‘ú¤3 K8&Pð‹žÂ“ 4ákŸ)…½ Ú¶ !éäBa)ˆ&:Þý"+u­˜.áx°f¦À’šQýKi»(ý7D‘·1 …ÂqØõñÄŠ„º3“ã(ÉaÌÂeØE¤éh_hnîºQõ hÓíä ”¼_€FjáÈ­ÙœêLýf<=€l*hƒÎÞÂæB)Fd1 ŸµJØCUïþ H¹Š¢=¡}“@G»Ê ÎÜúR!½oTl~šeF¢ÏÏè¥Å4‰3KB»!^Æ”šc¡Ê‡í.8Wà÷]Œ>–ÀçKò¢Ôñ¾¬—ø°öd¾FH椞¨^)á!fŒéÚö’òcUÍ/„D¬.D±TÞy­§ìø”“ð'§q]š“¤>órT_>Ü? ç.?M¨v<9S®ÒäoT ÊM'a8 ^PcÉiÄÞ÷¤Ÿ/"×ùQ-C/´NêÞ°ù¡ ûœ˜“‡³ý\,¡Â“öÌèËÂÓš +g‰¼UBàmÎŽ–Z#°s_ÏF'’ nwzÔ3Çîz£fUoJÉ _è~OKßxÑíÁÙÜÐFíÿîq¥t@¾ª,ÙúÔ†ÅL&(£Bl ­S2cɯà ž‹%³«y¯½ 8Ù¬.ŸGÅe=Æ[tG‰øŽçá pèãQNÊ~N¼m¦a‹”9oý!^"Í Ÿzß›ƒØÛ¨@ÎÕ£ž¤ÛÀ£NR3éàöVP €l!`œÔ§±ë‘3ƒUÚ+:0höËUíÛ´oI¿ˆQ%%²†RE_öÎñòL\è¤ÚI›ž‹ 6ABÝùˆ$)ñZxE0w¢²% Ÿr ii±ÇDá -©3ˆò™å¹g,ÆœtâÚ‰N Èqœ?w¿$çÕ/(NN‰¼»ŽÜq÷3éfä½øBtšÌ³ßC¯¶ï€<ßuý1\#ßZ¸¾#™.L̽¥ÛUe “.õ‡Êt½~ð7¦wBñ’€õZR¸, |v n$céЗù“æq+'ª&ç§›ëûU $7 ióª0n(ÑëºÒ d&`»%þ}LðI0™lyКòÂ4›-ï¤ß–pÀ2T#òØÛÔ÷EÎCjâN²›à+‰Û%ÿQÑQ|ƒ}fŸ:«ÓÆü”“ ¹Ÿed»U¢Š,¹iƒ’ ÎÄ9<Þ ¾añ;ý7#ÐÔW–£|N‘K:¯Zó±?Ù©r{ϼÉMÈáûÖã0‹j†³¢Å©=¦6”›:R\TøÕåJ=ÏÂo%ØV æŠa?ã¶u{¹Έ\Øg”“¬+íléX0•‚_O²‚¼ÞɶÕé‡rc„‘•2·m›|2l-ç*šnô—ÝÍy>öÂôsàú™YPÉ -¹¾º°F ÑËvåa§[Ê_Á àG¨ä¿ÿNÆÎ›±{¡…K‚xÃHaúͳq?Ù…˜ïÄ{.àÞ19–v`hu#ê&ÉÆ§UØ¡_:¡P6Ž£ÕêQÂjK™2v†OþGþ2YÊÏÅŽË@F¾Ù ü~ÏÎ5`*}õÛC5]”öÍÔ¥²8«~$k#þøoø\¦úvÇ¢ñŒŒ§í]Ò.ŽßZ­$ãu¯Ët#s4l7EÏÓö]ÚI89‰Æ¬ÒOx„áQñßK×um´¥'ö¾ílRTw: löù„KSLUEÔ#%àË6:4ÈZ€+¡$]ƒ,Œž¡ûÇ·©?ýòÍiÒ®$}aqÞ¨ÐɅœk\Ícé“å5bÏäØ'šÕ¿ˆªÿ¨ü´,e¡JÌ€:ƒ`\ó`ª×Ü0ÇsÓ]¶õ ç¦úa¶B`ÏÔ3Ö^æHJrïþóð""¯Ý˜+­䂨Ê.õ[zùÚ? éK+P$¿ì([·X{<&=W¼ÅüÕ.+&ÜDùP ª}°‡daá9Zà , ›ñúäB…ÊáÃéÅüÛ ƒÓ´KªÑ5ru4oKPW‡:ë¥`/˂šéy³†ó,k’ï Jà‘ŸÞœ¼D9ö™ó\-FF4´T÷SçO”IêÛëx: ¬=.r&Ä®Gb5Ü%ec^ä¸ýœ‰Y(PyÿïÁMßÙÆvS\L`½vÈzN†;{èßÏlu6>%TþG†d‡L—J› ÊúòKCQrÚ-úÇ ë¯úϘ3”kS¼ºldvóïl_W”Ï ‰»[®Š¢4û;ÏØqŸçJÊçJT±þHÉUmÔº7¸D¿é„ŸÞÖKPQöä= 㨔 —êb¾ÜûÇ£ oš×) ¥ÓuéÛÞqTÅ|ÌGäúÃ'ý÷i– ‰¿’ñ¿Ù§%E4’U`˜Ee¼9ÁÃAEÛ pŠˆf¤H›…U-w¦=ã‹o¢Øs«zñfÏeÏJKôl#¨/¶@üx*UÔpó^–À€Xq€@È †Šé:”`©ûëïÉDE¡¼k ºÍ£ÁÞ2’ê ç7¸½ñ<< z‹ÅÌÔ:€„­ƒä˜‚PßÃÄk´’ýýÎïîk2;Il3¥0³Õe~û´’XdŒ W²§Éoy‘a2Úa˜èp‹©$Ö§Øåšnb@Wÿžáƒ+iRcPmi¨Dh’ØK|éŒòE NV°@êû‚ÐÚÎ{†(ô_û¹’W!_ÉŽVnˆÖ={Z ©d4•È”¡xÐøB/sÝP—‡œNvÓ¡‘[¡?–@\Èžwc] ìey#? ´F‚K£O”sÚ4Ä2<«ÊÇr°Ð0t6uqØ5›PEÊ ^0‡„Î Ifš{‘´–±Vç6׳a«>‚ZÉöLjìÜü;…`q•–Û¶ü¨B¥"Õ;Zd~”v›øK4Ýx2Ïé™úè5¹þ¾uëRÇ÷€¹‡•‡¨æ{3¤oìú$ã½ÕýÏ!B‹—fÚP}<Íùýe‰Ð5þ,Ëû…šJ ™&‚„ãN{$d®Fá0ÄséÍŸßÃx>ÇÐR‰ FU{¿Ü™\…‹fbtB؈øž›@›ƒ7åú=%¥Ðõä]ònèE†‰6gÕ¶)±Âæ–}g¢ë&µê!÷ d¦ßÎùµï>CаÏù6¿{ÙgSl’㛎¶æj.E çÖè`½h„&¸ôl³_Ôyõ¬–òžWILŠ­‰h]F=¢-a  ÉT®õCÓaˢʚA!5A¹˜âí9‹ÊõʱeXƒ¹Œ Á¡UÆ}8ÄÝÛö Î:ïI×$ôl2“ü³ncdª©ãà€³³­á_A¯ñ¢ÊõæîOæñϰûX4ù¼¾üŸÁö»?AòQ·á“=Ÿ;™tšÄŠ<7†à…×íJ „ã?ôÏÊ\hÔ<“s+¿S7ךG´ýi¿à+'n=—±–ºjV4ì&÷“b½‡ d÷Ô›?×Ã’Š³±ä¸F\°Ù3BŽ'§E of|eâÝ1Ë:‘„éÖ™—ëÇŒ?Kì¶ÃÕ»,&?2ñZe6VX”À®ý"€?J'.¸!«j¾ÈÃØ9W•Ë Œ›îaÉ)N tE×ÝÕUVvÞo-ƒÜãÄL »ú˜ê«¥„QËúÊx;¢õm¦2¸·v?×ÑÜusˆ,ø”oŸV1¯·dª§*U^'éŽgLCYÚ«x·AÇÃ|šm€Dàó×û¹hDŸœc²°^W ÑF˜CU«•‰¤þ`Ãø¿“ ›jdÒÀ¶ÇUCïìôàڊñ 9¤æ7˜¾Kvå…QÍ}La¨-¾ô~Xo©ÙGhEúé©cjÙ½ëªûŒÚ:&‚OìÜèiÔó—ŠÐ£<·}jU²ö ‚°¬ÇÂJ¥NÏ1P×l‹ØZá`L»V~ÚŸ¸óyʉÈê䜩d_I•U1œè²±™Yb:+2d%-H–qy°,,Ói²ÏhžuÍ·µÉÃû˜*D½ªÂi(ÀŸÉ§¶„Âoáþ¨Ì*@*Æ'üÝ“¡@÷±-´=ß ‰9; Vé¤Yí„l¨Àâ‘))&Ûit×-x¬Ùïn'R•7ÂDaJI!…29?6+œ›ýìåŽS!ÚU4¨üÄ߇L1úÕÄ•Òí˜k1˜õòö i7â Ðó&1@ùæl¾•ï<§a›p‘ªÇ<\A¤™d@2¶lÇ.‡6‹·laÇâìsiDRN峆Îúb*·Ô‡¸òô±4 ‹°–/‚kFßò.“Ť Lïb`$h #X9ÓŽŒÔîanÅ™Àkøöž’D,®úúŸ‰ñçÚÊÐþˆv;E>¿K Š´ﹸaåâ´BnXIÇN­0úÓÅ¶ŽˆÙJñs§/&H%é.¸…8ü*äð»ðÃãà : ÷áh¨“`F¤>U¡‹‚Tc ë⋜§‘np\²^ð¤"Pw-®ó56ø 'ÇY¼Ç¯¯¦ ÝÁžÑR„=¤›%MéÖÄ1»•ZFwôcJ@Ÿ˜I¶€UÀµ¶¸FÝ1œ¼ÐðO– ÕE·u[ü’[EAÌJÔ£‰?óèÅøÀLnð”f™÷ßø‹[°;2S˜Ÿ8º6¼ä’Å Q5jù¬ïIÚ¿:çõœÈâ2Å2]ݨ'÷¿œ'©÷ú4_½ø¢_Ž¸Î²ìv´ßª`$ß\gœ:°ÑÉç?{ŽäVIi6ilè|¾j¡m)ö² ªNÀûUµaД†˜Õ6K&„ ÂK’CP`²IßVêûâpÊÿ„Œ>sM¼n¸Ñpwû¬Þ 8^Š>Øþ<ÆÏÖ ¯vÅA-Cl€<³€è”L}ÌÍï…FŽéOl°œçŽÔ¼œ¾»Lîz ¼ï5oA™?i_W|Yoi aàu­é,Ev ÝFã{F±‚KÿK³jó•qXK Xà/°@°}ÿ wúº”oooᯆ‘yiSŸ˜šƒ©¼iS¢miª6ÇáA«u)óÄhæÏÛxª±Êp„æ>%_k>÷R®U͸Œ%|&¼ÊxäÙz¬ÐP/<ÞKåîƒ9aC*µµ™ÍÓWÜ Üë&V8Ôý.ß:1ôø…—¥ÍT*?ãlš‹*ŸxØ)®¬í/‰ô»n}I¢ÏguçüEß ê1óÛÏ‘6ÉÚSl#éרNNŽ(â}/æíµ%¨­ÿØgJæ :#^ˆ¹š/ƒ6ú­àAñ>Ÿ÷ijz^H ¼Qc»"ÈSš±¹’ßK¦ÒÀ…“‰zœ¼ çFêW˜ ù 2ÝÈ4O7²—D ë(D¿êôA~6Ñ5\#9J*Ãrì°}ú¾K1;™,v æ7ã¢äè£?uÑ ¤B­…ƹ¶Œ fÛÓcÞÀIZe‚c™ëOo0È5¤a€"ú=U·éÞít¤ŒV% ËÜêÎù~ ‡ëüûwtºË£ xb ‡ylk{p.þ‚˲!$0•* à™ *gytûÇWg^³\ÕK•£ (Þc¼8\áW±q-ë©W‚7ú¥Œ¯f‰ây>4ñù”ºÇ Ø›-؃?NȬÿL÷™Ç»eqÇô @õ!Ðúk´Ðûp¦ÔœãÈ–•æ˜"SŸ˜s8~‚râ þìËܧaìX:£«%¶/ /ƒéh[SÅÃ},7 bÂ`ÿE_që;EW˜lñÐ{ÕL@¼’§›®8å b&è×2¯Á¸gæé„È¥žŠÉ´8{±s–àTýJõ"TŒ¿ÙúHäY†7Y^©ø‰üp¦õCSâÉC2«‰ÌLÐüFg=šFWBm *z-j˜R3”i¦­<¹gó}­xßø…AU!¦uÜqçJqhpÓÍqAAá÷BÑåN/’ÅIߌ+Z÷sÖN4©®Ÿ:/šü…T IÁ.!·´«õŽ0SÑ(X­¼¥iÿÛh„í°*M,‰N”KïN Ég]FuHêi…5C%²å’Ñ… ¨°c’läî·PŠ>}+»D‰n|‹3terLßna>ÇíTEPÄdåø‹¬®äŒá̺V§®Kö¼‘nA2á®b^ “Ÿ¦âèF” ãÄ„Dؼi[V.‚÷ÑéV—ØŽåHø«2£¸P-#Ù*+Q+0  ž ½Lq’ÃÓ»Pªè>Æ„ yÓ$è| ÉÈYŒÃ%ˆžUfY¿ ˆ¨¯j³Ä¶´žªW@ÞÄ6Üc$_.e«9ýH"1…òœ ¡Œ-éŽD.w—-wØùª“4¯ y5Ðß° ºFÿéÌ¡ÑéC ·ë1½PìL\Œ¸@oüš›Zæ·7ÐïšÚ_pà¢û9O “íŒÓjÏÕ9§(ºÙ]7 c‹ä Ÿ”¦8Ô³ê6˜–* °3BÜp°×ö‘ÿtø7ÅÖ£‚B‘XOô: «‰ÈÍȬôÓýצ&Zø¤òÄ·T˜ˆÐAë÷tX>ùááCgó(»“CŠäoŒó|¼ïÁ^U—ÕpÌ4“DÏ}‘¿¶~aÅz¯u¢6$²î¹v§\œ{Sà­ó<·vïQ‰B¨ˆn¨ @%+ô݇2g²«…ÿ¨ß°U“o®i‹•{x}›U"§O“”¿Õ­,?õ‹¨³ùû[šPÊ8«¬%¿‡‚pàhg˜³Ëô¢ Ê*DòQìÏÞá7G”ÆëÌF°^âÒ‹û;tuè⓾pˆ‰/¹U§é;„YùAFÕN/›9ÁMceøÙ¯ª©YØsi¹÷t-çê~¿’¹g?dn¬œøÄæÌО…^®¿tÀ¡_ïø°ÌW€ÙÒÕ+¤Êê¥\Ì PúªVvσ¸­›üˆäô€y­ØW-m@nU``RÀÊrÉk\^â¹7 HC£K;Nì~~xFæÔ-ïÙ4$jÜûÚ¨¿pêyõ3À*:زîBÙN·=YÓ\ùz„#e‡óË“˜:YÜ,’cf"‹h ®ÌXCxNäòJRMqË %«xÊÑ\"ÉØ®]Øð$6טáò¿0<QÁrû )÷iÕ.óJ.#~ß÷:G¤ÍJšÐr.»—Ñò}“ƒÈ÷&äH:<ý%FëùuwJT™²ÏrÔ2­ÂjÁŽßZoD×¢jmAßK\çÑ‹%£ w«Ó¡ªösDÕF¦±ýÌ`À&NÞys,ñ`²È$¯s€7b 8‘6L ìö,‘qÜaÏú9›NgüK:À)œÓ$ÔDØF& 8Båð›vé“NFÀÏì˜„ç¬æŠA«=œRÔÇcâ:?ô¹Ô6}þ t©V'ƒ0NHÑO³ó›º1y^V.‚\IYîÂÉ0ì(Vž úƒ'šg'aþY|J&¸~oú­5¼&ÜÏ´ º`± }Åp\»v8¬z¡ZÒ3Êê;xTR”Ê'/ÌÏÄœ y´TöHív°{¡â°®qVn(*ð"ˆ~ÐZ{ª–¦—Þ åƒ3ć9¿l¹ºäp–19ó†ûêò¥Gtåq øŽéí+‘P’‚¥ 6ÚŒ‡¹u¾+º:;gÂ7Ëî—Ɇ’–g`ЯîAGËËÍÅ.Ê6gÖ^D#¡KÅW¸r” å\Ç‘ÆcÈž±wJW‚_]ü‚ØG÷R¿{hŽž©´_U#™W9¶h1Ô³gíA ݬͿ¦×Ù—¯»Â,¹?ñ©»‚ô:Çyt›;¬¼<ñZ.öUùÔÔâk,ì®óø1íÞ‹V(òŽu£€Y:‚í·¯„<¾+4”’D¥™‹ñk%½ß …OW,ão$4û˜è}Ü+ÜìcW¾Ü¸0°¦Wî\±êkI%édt(lªe½/ÛN»_×ôÆCG~.›“ÄùôªF™ ,Ó±ž ŸçAÛTw¡±®ˆ1¯™}”¢8„#+îõ´³Gß¼:ÿôª‹U…Y¨‚WìaûÙh:±SÔî¡Ø>TºG-í”z1/°u0 ÚÚ¬?*úü©~iLÊøõ¯uW4m˜;q€A¡öˆûCs¨ÑÃGo,ÖÏÀ|ObAPÅÁ½‡÷äDpc#ìMkÜ P;‹$$:V|nê³_‘KãÞŠ‰>‡|<“üœ¤I§­ê5ïƒ†ã¶æ ì(ælëêô摉ñ ˜ŒcÑØ,E3¼}iÞ©èoÜ›™i˜Ä'°Ó¤ëC¯aIiôÇŠö?6q“}u,@Ÿ=YÎ x’¤]\YszöÐÌk_tYë=åF-­…ÃwN“ÑÜÎlù@Þ,¼ùâ…Ük«§˜Š»~1´ž>k-9êàû’ ÉÿÙ¿>‘#Šn>aX¸úC’¸Dª´ì¼#¡;ŠX5zw_ýuЋ²5ÍôD]B#<‹zî«2*¾I]y-„Ã41b˜¤‰­ˆùN>ÎTæÆ1rÅ>´4ôÙ ¾S!;Š¢´Vc³»äJѲŠ$Hሠ&‰/‹9 — †°ËÑ`Ø>Ÿ5³2a1½‰á‘ù¼ËóiG‘.}ÁÜâC"fÉüŸ_ì¹ë Ê’ ¿ Nž:÷—UjmmE‘Csô×È­¶ÃÁ]î"»­­—4ÑËÍXo;<,CPÞ7%sµý§¿âƒíüØ„´4ÆÍ#y®+N]¯)&ée̵w-ȶBÚàiª‹¥“4s0Ò6„§2yX²™ú dÏ__ãéZ!/‡…Øy¾Opز.Ýá̹Òš²®¨` ˜Å>¿î2¬ö5z#%çâŽhø‰÷éiäÖÎZéK"­t8û&Ë8Æ34ÙE> ¸L ²tŒºÅxÙ‹ce2{çÎÒ’ºæô貎ºnúÐ1‚ÿÇ€óúÃ3Œˆ¼¯˜ýW¸à/ñâ-ÿŸ·öå 8xYÕ‘:kªS¡J>K89˜…Dl(|ˆÅr?z6ábšÔH(Y™Äóô…î“‘v9C%€‰âu”ä•^Ÿ— Η¬pÁ‰ò~œñõr‰Ÿ(·uvОâÓ°H®ô3ãŽg?:`Ì?ËšîñÂj>°û\Á¢ð-{³Œ\”®’ŒR¬eg~œa)€(¨x†¾öWNzî­wŠ:Ú¾´BPäeÂY=/đ䰧à1zRŽ!ÈQîµ.9J›L¾“÷9Û´l–*‚¾Dê]K>b~ ÀÅ»nGÛ=y³nÀY×uk¥0¶¹!ƒ‡v… Žó½8SEÛíB+þqFv¶!Y»«xUj4êex¢Ç ÚçFD2uéë<{ß3må‡Å=>œ¯Ž¯fotÚ‘UÎms4\Ä¢¦îë# ÝA-4õIh:ƒñÄ1è{µDI¡®8Cçà ÖyGUÏy#1ûÌRl’Hxƒæ/Ö2â€Ü|¢C±{£úr¯ 2û ,§‡UÊÜùè•dŽhÆOuƒáÛ`r˜7¶ˆ‹î£¶Jš•Ð@Çœ+ …!üž8AN“á†R×:¾Æµþ/ótÔou ¶¸·2®Õ!ù¡"8ßIÊØŒ9áߊÍê(éo0²¹ß ѽƒ°×sÒCÛcÒâ΢™ OAžwÄD>Â(剨;ÇB ~Z1Ûið£b€éé0Õ…æuô­Ò·Zp¶×øÜFÎy©ùÛœÞÉþy,nZnœqÍ“'®^’@W¤}á%¤ûÖ^‘šùì8§† %ôÌŠs ÜLÓ)Xyé©# '»£z˜ÍYgÌ`‡QjþÉa}pBŠÒËê rê¡ìUãcTz)üÇ)? ÚmÍ/´è ì§Ì‡4CËõ˼/9P’š(§=§(rtñ0­iÓÑuö7¨Ñb´«g«}×Ù“ËÁ}¸‡©n+]×åê©ð7¨ÐíÔ}…†Î‹œ1ÁtY-Q͆Œù®ÆQÎÛI¿Ýj2ð‚î1‡>ºPjQ»ê›æŠ;ÅKh`ótÈoÆÎëÎ? ‡H2Í4®+{l%qQy·è˜²Põ;ÚÇŠ^ög’úWçb,𸱿—enöEot;@ð “yžò.úJ˜ÈijqͲÑEpÒ‹äd:w\¥bî—7¡zÁ 2‚Ð75V9kõþM´«j8`‚¿rïAÃ*a‡èàDE„µn;¶áîìaQÚÛ1oÜs& ù¯òE»[E£¡¬<¬çm¬Œ±Ãfî]”ÈžÖ7؉rd毢P _¡@®öò¦ÚØ•8ßvMdm$ ÆßøÓ0w=ÅÜFNìMµÃ@ÛýÔvB Yçï©0H¹{"q*MÕ Ýïi¾÷v˜`»ÍL|‘&òǤö)lFkä¼Å‡Õr²Œ±i„¡hqÎÁf mŒ<;é†Dô šYãeZ|?½‘ï™E¹Ï¥ãŽÌ‡zj=F)Çt™Óîm$¢Â™­å{\´ë`QIõüøá`¿J·ìVöË„ö‘^NÃJÊ•¦¤–²[ÉŒÝÌÔT¦S¼R¯öV7FYèµÑÌòàV%ƒ®hŒD¶þÄÇ×*@Ã%¡»c‡Ì\6Šë“v£ [ÂUê ¦M›OÀ™Îb¿:1JÖ`iʨÿ`ñX K0vË%ÚN¾¨Û&w%Ç}IB,RÜÇH’xý8{¥@CÕ›%QM·Ó²0Zfdß8 -#¶àÂM ư@˜ÇÐ@è nƶ¿õܼô§™Ú¡ñlÛòñ Ñkâ{¹®¿â¤À!4’áÛÊ! ¤D\×Ê+?µ ¼ðô¾F-äݬW¤çR…6‚ô¸žˆNªPÄ»üÖƒQ‹>•Jjš­j±+í~Ìã«Ð Ö5˜—°æa Ñ`ŸBÊe_‰2ÙÞù ¸øiJ»=¬'Ï\jgê¤6rtØ™©å{ÓÅøµçFÙv÷¢ˆ».qÞ÷•éáQBÈÒ‘55Å2ö,^I;mˆ‹xca0€—x•Ë {µiûÅ4€iôιqéeûuÈñg²‡$`Y‚w6èÖ…KT+Vˆ²F0K[3Ì€Ü7CãIô}¾]Z­Dœ?–])-ðË/ÿVt"¨LÛ‚Mëì©9pD“ej«<LÞ¡§6ô¾C—á@PºúžÚv{ZñGÇkOƒ;u…m)ÎeµÈ ï×Þ ;«Ä,ɃaigF(ÑÉÝJ Ñ”«ôü'hÖàp%ÇæSÓÉü+ày÷Ž ¾SîeºsKƒq{K üU8ŸÀ ­©Cï=Çôƒ¦F[IÛOßÖƒ†:öN¥ï9l£Àd„!eöKÆVq1µ1q®ãåXõÎÀ Suç†ÐÃÃeÓqÝŸ·­J5t~vò*•½Öxxùá:x[œwÔŸIž€§óÛ!ÝúÒ°åÎ G£za¤6ÊÅþé\a§ž>´ ý5Yì)præhOmÍ+ÑÊVà fÇ•’eèhIÈÓíæ.Ö|ê×Ç=|$Üy—ÐXZ…D”«|ª+S£_Š~ôbÁÕtõ•#Þ|År¶¼·È¢cHdÚdÂN0ÌÍ=þS‡D°ðŽÂ5Ýó¤ô£+ÇLwá'¼Ò™¶  MyôÙ¯’çZv3IرÈ>uývçO¾,ÈN Ù;3áÅÖ/›4irÚñ…<òƒñ”,Àß LxÇ¥Äs<…»%SŠ"O•^×ùø+¾!u»ÈDÇ+¼!ø_¿€–)¿ (g™¦ÃëÆš€bÉÕÊn2Å…]{Þ²H\Ë#s vز¿“û16°µÄ;”ð¬òÆŽQì9Tˆg-`÷Dîh¶ÏEïªñV]8âô§—šÞ†ÊÞÁÐETÐìZiš‰8àž#Ù2ägöy^e~â·m`{¤Ÿ)z=¼á^Ò}“ʲ¹þrv¥>v;˜Ì™¤8ÃÁ}¯ oØGIíÌ÷ ®ïK©otõÁ…x¶_:_Íàì+.Œ@žœšæíé•Oõž‡n¶n¿1Ò™žÑTm8÷$øM¦V0>1éÏC'„pkSQÉ>¶>‰KG 8bøÓlôssë*Ûß,Žã¨Däsyõƒ²m2‡Bæ -‰I·ËA:Þ/”'¥´_p#ƒ2D[›ñz8µ±vdŸ)ä7<Æ?éÙÛüñ!:» ­Û©%H³ß²ÚÙ £úvÍ꣤ˆŠsóýX¡ž`AÒ„ïÖç®–o×~ISó=|¨!gj`1:Uí;;N[˶«ޝ"ŠK6Ÿ{»@Ó™÷P ©¢ÒïW²ŸÐpT&â7dL̺wËòÕQPˆÑ&›šÖ¢âðEÞ¹ðöX‘‰Z²žøÉ\³ÊÈL»ú¿iË™!Y§þøÓ ã>Épûç-ÂK¶<ònéE[*¼½†‡mæ $DyØSÊ¡‰Î”€»6g¶—øÜ?/Œzô›Àš È׸'ÃN ‹mx«Vs›ª™)"æ”ß'Ì£lПëðƒzóêVŠWYk}¥shŸ¬+É‚¨ m{ßý+dn+“¥®àýs8¨C]$Zzºn•Ü ÿr”o3$5^Êåjôë°b@ª´y\ç`ÆèüêœÛyM>-_~ó9ÂcÉxü…‚ª5³ºm@™¸ÌvrÈñG%ï]ª3o ÕÞÂëEóÝ·É—ïÉ0H—«¥â÷‡5Ÿut&Üš\h³ܧ[~€]; ²£´iîwCëÍ. úç¾gGBÓ_©j¿"ÖŸ"zM³¤N=v ¾ERHŠáÅQe+‚64Ë Ó :Åq„§®¼¿œõ!.âèOók9œYyq2ÄvUAéJ*g†[z{]Y»;ÈÁ„<¸Ù,©ÿÖ&îçÈÃ\³e ¨æk´ ºvªg¯v}L š~=ý£Ñ•º£%#‚œÀ¯inqÀˆ4&¦·ˆ; °ÞŒ%(CÏ*Ÿ°ägt“Î}[ªÚ¿¹a•Ï¡ŠGwðË4¾­È I“¡ý¦ßuôÞOð5˜±ö=>ãÁÍÀý=Œ~ùY^0–ÃA0懸¬†¶AçVÚ'›Ä¾gâ>÷;jêôâòÔ€(=|fz…Ü–ÃðŒY2_ ¼Hô©Ú‹‘‰‘¯ý¡ÅØfgÓlð;õªÝa·§·¸ iúø~/KÔäݼÞkŠK"é»I:B”Kâ§>Üw6”d»Ó‘CVëàM5tØÊÒûZ—€§>dS=² EÖ‹0¿!L"Å®\Ý]¨Ú‰™ãº¢É“Ú¸ŠS†6ÔÇZ¢&ƒöµÄ->up?„ó"i—p¯V~þÃâ°×k‚K?]-”Ñ[½n? ŽñÔ¾£hݯ}[“Á«j½õï’wÜû|¥¥Hû˜Û­ÞˆªþS 8è endstream endobj 1281 0 obj << /Length1 1630 /Length2 9311 /Length3 0 /Length 10152 /Filter /FlateDecode >> stream xÚ­xUX\m–5îî(ÜÝÝÝÝÂ…»'! —àÜ‚»C€àšàîò“ï›îž§ÿ¹šé‹ªç¼{í½¶¬}Þ‹CK©¡Í*i²Ê\ ¬œlB5g+wU‹ «ÐÎCÝÊÉð ð¢ÐÒJƒ–‹Œ%(ÐÚd€Ö..§   -@äêv°³‡tµô™™Yþeùã°òùòéî`ç {}ð:\.WŠÿu 6€Ø¶N@€´º†¡¢š<€A^M t‚-¯­XT¬.î@F€- púû°¹Ø8üiÍí•KÒ` pwZ;¼†½­® €+ììàîþú ppØ-] ¯3€€.ÖN6 xµÛ‚þ*È zõp~Å^É4@îwk°ƒ+ðšUCFîï:!ö–?¹Ý^aÈöÕÓdíñ§¥¿°WšWbéà‽!rY6î®N–>¯¹_É\Á•ááîàb÷¯ X` %ØÆ èîþJóÊýg:ÿêðߺ·tuuòù+ô—×?kp€¸lÙP8¹^sZC^sÛ9¸ °ÿYE[€“ão»‡ë?0O ø¯1üÙÆ×",m@.N> - »òšÀð¿S™í?'ò@âÿˆÀÿyÿoâþ»Fÿí%þ¿¾ÏÿN-çáä¤féüº_2€×[Pü¹gœ,Á€?w›ðÿ ³tvpòùÿÝQøw±ÿÅ÷ï°"Äòu(’.v¯Â°rr±qümvp—sðÚh8@¬í¶–N¯3ûË®ëb;9¸_µýk¬¯Aÿ†éØ;X¿uù#ïßÐÅæßË•ë¯âÙõu¤ÔU˜ÿ§ö/O×M€èø¸ÿ•F_dóÏÃ))7À•ÀÊÅÍàççprüÿ¢áü×YÕvðs°qpp^ÿÿñû×Éôßhd]¬A66Gbébóºlÿ4ü­=ÀàWÿzÿ_›þÇù¯µ½Ö(‹ó kápÇ´ÏéjÂìþQãî.NØþ×â:‚¼àJPgPZÔº`™ÅcU[ý¸Ðs³ÏܾëÓ¶ÓÎ`}g ð8—,€šñ{ö ]+?óN(»Y1zú~œßɬÊœ‡ÞÎÆ¨¦–YÑ#›ñVn0ÒÉ c0µg^0͵+F ujm"~V=NuþþÝÇ_7×ô½Cý}gðß·I™¿$"Ó [~Ú§L†øX€/묟áï=ù½6„5ðÊaÙ’›â!'†}’ßüà$û£Bùó‰hÓ§4ƒ¾ôB¾jgp æSÌË}cï®ç8£ê¾µkä§8¥/Ìp‹G!H(i¤#UvŸ\”€ƒú"‡:ÈK%9‘HÙÖc;¢O¿³YþøDŠd.œTæ?`}†)ž¦å~é·WO¨Œ}üœ8Á#$üX«ÕÍ·|ROþ ñÀ4­»éyø£ºÞN8«éÉioGEÐËø2î,Þ3òe›èdø2$¼ ïÿ)a§¨<Ë•kTº9^;,2}zÍEeú ö~£«§wôÇ·Ái (u·Ód³ÍA7¡F«äÇp]ïÅë`VJ„®gj?ÕÄRè|‚cè4’ûæf”í1ÜhûNoHLAÇ ®ÓJõ¨ÕEf ¹ùæIî‚UrH*{ï^T†Gd1L³Ó£àóÁÎ|„Î%Ô‘j¼Ã3ÞNQÂT`<²Ô`³Û²÷©Ídžˆ'%­ ŽvÛîFë)Ù%ÝûÅäG‚jå?@kÀ)ìÉxºð7 Ró´eƃݣ‡Ï–ZK±b¥3Ýú;4¿©fޞƹT¥k&Ö:ÓÑø²Ro Ä”,û`‡ï&_~•¤)3ì mh€±sá³»îıì4Ç‹Míß5ÅÌýv}ÃÞe©B‹³ŠÊ]KWEõÔ ÃF;wç[GO›âÝ43óU…‡²À¸Óió¡ÑÉ?K<ß/üa ó êá¡ÍN`e¥‹ƒCë ®ôídV.Gžfútv›†ÆîÚ… £ºÖÝZ}0~D¨;¹ªÆ—4>¶½uÚ6s¦EÎèù^ ÕF>½ Çì?¶%aðB d©,YuD½!(L;= Ü9Û:û¥/¸Å{XÞƒÔÄǾJ+kàRÞw#ÊÁy³@ZƱۗrå¡ï2ŸÇb:¬´@FÞ’¾ÔnỲ6zÁÅE5ðµ Ž¨a¯õWmtáMídÒÛQŽÐï+l³wV¨=)/µÛÙ¦GíàT±£™Åñ«zkGdº;¢HnúwŒÁŽ\‰òzÀ·>èbä!¦]ôG¢å'RIm}ž#¨¼w¡^CÒt\ïŠk†´Òˆ4–Ÿ LU ¨ˆ û¬à }¥$²bŽüèŽLpªQ²pŽ¿K‡mOsaÖW›ÏMæÃƒ}¬ã•?~yc±ùn ·{ Ù ïªñ7&¥»¨Æù½hg36=B«|YNÆ – ßÝnž¹v&ícQk$†kJø¾™‡x¨üfÏ>*¾ŠÉ÷ ´ç!ûótÒQòeމTÚ»TÊT:¬Iã¼Èþlõwk)¨µTð–û}í¿pçT^Ö£¾ ÒåÿÁjŒ×–Vóú‚¥fnÆ÷¥ß£UY_g¾ôN¶Ù9 P0J…ÈFéú¬”È ?ïô;Ú°9|!%$Ê«iæÁ*‚`R^Ro¶èH%ƒ~œ+wÇ$Ñô¬Ô²Ö¯m1ÞòM*1ˇ‚0$î ›œ ý½AŠÉ ŸDžê÷ˆBõ>ò†gF  õm>”簢”çSA’v¦ R1{mZ,V81V½MÌÁ\7³OS¨7¿¸áüÑ#ÿB×bš¯ÿ5]Å à¶7~ÁètØȱ^⃠6ж”äVÿÙC„Õ0›)LD‚7[;¢üCÁYš gµ—CÐà¥&o!O%Þò[²‡_Í~‡:Œ9®~AdÏÂÚá~ûÙIŒ¡[*/ Óñç0I‚¯DDQŠ{H»ZZ[²£¼¤×ž~eEC¹†~ûÏRÚFq2æ ¹ë,ÌAOâon”\É6žòI—2°Ü•(<æ(;´&ç1(»“jG¥V" (nftíç<»O‡þ&Ó#;ClØŠŸ ˉ~±ù¬‚Îfã7 $ tó—>pÞ­„ŽâˆC½izgóÀþäìå0¼_Î"ew´ï¯¤)' LÓ¡øÔ*X¬y[g)£lp¡&}p ±sÐϦ­†þ¡ê0Ô ¬L/¡[§˜ão ±tGF»Aœb<ìREŸYùY‘ÂO6þ:›#|ð§¸ÃYëlU\TB˜\& ±c¦ðíª>hÁïk!é}±ÑÓOvêýÔS|£¿¾±%ÉLt/ünìÏ1«‡=”]u¨û@jxÜMiLäjXÝ 0ùÔ»Eî\nH’îÎás¶Ï@ãHpEjƈk¶3(@þIæžüS«X5dÅ#ìY¹+??’¦AÖ^Шq;7–ErMÞ dé`Ü‹žÞïoón"+ÆH†SVû1wtävjÞ¦¼#½9ÂLø“ún<7sÀG1-˜¶_‘†¥¦5¥¹œ°ÑŒ­ò{AM7ÍZþÍËÂCФ–jPÊ ž\E4ÃJYsU’H›H™§·—ö°xX ·Üæ×fÜŠÇœ¢å)¢;Ÿ…aÓ~›ì<ÝTÔ¦˜Z†L"«W†ê¥Œ[•n¾M¬ÆSŠ$×®[ëÿ¸_]6M%(•^»EoL‚|ž[ãL×KÉüI°:‹Á_’¢Œ'îãÀZc×·8¿…¼næ÷Ï-øzXH³—›£6¿V³©}—8fº61ÎÚàðÓNOyŒ( ‡aP¯YLƒNû<°UÑ:í±@¶.¶D‚÷QX§¨EP±+Õo$DzÑÌ™SŒhÑ»ljñ¨mÁ¨vß©‡¾ä$}wÒüã½Iƒ¼;¼Q¹'ëÉ#—unåî­#Á17/4}®¼S¢‹Ãäˆô*&MhøíÝ5¹B ý ÿ>h2°Øâ Æú™|wƒðZôTÇDZ¼Tðv!m+ļìÞVÑ´½71ACx¡ñqØ•@Ã(þæqïǵGÒ¢J…4òÞuÒÕYÒ|6FÆ1r0F®ÑíwÒŒ€³¯ã+2ó»Åî$˜QmŸo21Ù µl„\X™˜€ãÜÁšæóŒ³ßùìÊÕQ0ïµ4ÃÁîäøÔ7-¶6øƒÿ`52OÕô)?r·É‹å°€ó爡ڭ³8UØ7Æ]»’m['y“âxïI[äB˜)ä’'I|`®Bjs.ŒBïUUq «vð^ä ·P\¦F&³g%—¶qý0:¨x)µpnXátîBTܨð§c] ”ÃF ±Ñn?·*ëûCšÆûaÕÓÒµô+æò‡î˜j¿°š` É!,%«H½rª÷±ý€Ì|"žLÿAÑñ*åƒw’‚ÖdXÜU!¹š¶ˆMI9â ;4^ªÒé8È£ä\°›Kô†½sD˜ôo; wžš Í/vpõjëúäAÕמ“Ô *>¨º8Üén¸‡úÂü&7ÆY$«"äʹQº­ÏÃÄo”ƒ)YO ŬbnÊU«¾íÍ)Ä1?{”pÍ–z:|2³ è˰¸™ïáá¿\õ¥e2B Ë*;b¹*éÚEÛëS^Œ£•KŠËGÓŠW„O}5ü¿úÿf­Tˆ„²mÖ]ÙèZoBÐ5Cºý¾l÷)îí'‚ÜfqN\ró">ƒõ°Ú9`õõ •DF˱þó(´ÜÚÛª}òoy£6♼ӆ)íRAJuôNüðÖ,„ÝYà7(nZ·dPhuÊ#žÄóqc)»âQ…6DȬÚÉŸý‹&»hyVh¯˜œéÇ{qûŶŒËj3ùÇ:Ü$Ù¨—´²EI÷ Ðïàâ‘~ø*¿žÛÝá?šý¹V=»æƒFœG—ÁíP0³mqhßÈ/ŽMú—Ž m—Q–UÃN‹Ti.ö²é*Å’‘§¦D]‚¥¥“0­aœAC×]ãÏAhCd.éëí¹i– ±s#<è_Åó¯Àªq”¸žÅñëQíåö¸Õí9mÔýìyK’ï½Qü’¬¨T™2²î:ØWrNñ4µ“ÉÞÊþ”I(Ù€™÷¯Þ3Ä"rþÞ‘osm~Wå64¤‘AgÇOÅHÇcù‘mIáÐûØ£Ôµ•1jöŽbÜh<…X’¦6?w¼m©å+° -ä£ À¬©’jæ¤d†šÿ¬™%êRÄÜQ“#”ªôn©X<§4ÒªÌ.¸sº×|*Á#—qîÐüW%Ú­¸ÝX #ûWì[ª_–}y Ö™D©~‰S©óÊ=è=éˆÜ! ¹6Í7<‚ÎÕ«mw':“óÜN~ö›fB߀½:ÌkuÎÔ.^~>§é}Áxá ¬M4ÜrFúÙ\ B˜ÃRÁ»øýg3üŠB—!áOÖQîHEÁä ¶ÂȵèîmÑ.¸ùˉ–9EÄÖ&Åø gÁœ4üsÃérµo…º··ÛYoøoˆ­Sþ¶‰ 6³îl £‹öõg²²2æ;ä¥DL§g‘äÈOÕèÑö—Ÿ¹QêV"ùGeKo¸ªoÔ¹¦CûïÝ´Õ°E‰ï' ç2#&ƒúWŠài÷è5"¿ ´ÈÐz¿%Æ ¦½X«_×ñÔíLõ/aÝë(ò$—?z§BEVÀK #õ*bK’—ñ¢¯ÉÎÅ*ïïIEuŸrgI¶¢œÁÍ,ÍApðb+qö®&»ê ‹õz‰LªOª $¬¡aZ…—Ý"Í¥'¬šg!ÉË%îÛý½í°{“öí¥Ü$›p9æÑJS|z¤§vWŒõém1FX-‰¹3r‘P$kH£u*X©}ŠËd a|‘4b®W͌ШT87MñöÓ`(ö¬£í§ÎVuâÛ+„òÃÙ.ì<Îû ‹®Ýý®æç”¸,ëmGSyk¾¾Y¡3³Q ⻫︽+â–-”=ðM!Âeóv ÑPrî[±µZ‰ù0"ÿ÷lMž nƨµ6œR4èO!om¨âKÏ%ŒØH5ûFÞ›àˆ"*p3â*Õf ÔfS„mã Š½µºJÌ 9ø´¾ðl©ö6÷'_ÄGќʎ™`žlO™~QcÏ!ÏQôv·õƒb ½ØG˜FOÖa 5H(¦Š0ʨ>²êâ·³Bâ@{IY–öi ßã4¿´‡…©Í{¿‰üz)á¯.…G_á K¼O Ò¥ŸñÝÆGpt)'„–ºeÑIǹݿ®ùåÆ~`I™Ê)ÀªhA¸rE~œîùuɸ.´’_úÞlÊçáH!‡ c&éå(ÄÂXuÏnê½Ò°)¿3‹ÂË>:Xÿ…”³# ûºÂ–_5æ*7:úǾÆÊJvŠ¢[ [Ç'ðÖ }Wïæ!5³=þöT¾ˆ¾vô¹Ì>If\; ‰‘µ¨"!HÄ{Ú)úì'[Uñ—–l14H³[ÜT®6Ö°DLJe^| {¤¿?‡nPÞLUùKH6Þ\Ñ…§1fÖø€ªÏQ4a¸Ü/^›Îdw½ãR%²{•iMpß0¸Üßê~?"¼ïmhJíYž—êi­’:ð“·B·C¾¢IñŠ´â`{ éÛöåàŸ¢¡eÖZrð¶Š×¢Äº*˜zfŽ¡HÃJì–î· …|Rbt‹WÈo¡¸žõºÇ» ”òlçÜÓ¹QÊ9꡺[LØ'Ä^–X‰%Ý$ÖS6`TÙŠq-ÛÏ4näê³;Kò –²ëWàô»’cø!]Ó1-1‰Ø#o†]TŒ½ýEû8&ºÁ›"òÄ2ÌÂÞâ\7w<}£9ÐN Æ–4²ÈDGãûæ9-ß¡ìü}eŒ·ÉÂÊóÂ=ãAOVap$ÿù¯Ò¸Ùóêz±w¾­3ÜK³ûq‚ïÐIw²+4ï"™y¤›¹"–é…i´=#êh¦¼ý?×°íÝüv|ôó+#MêÏȬéó¼Ü9b:…cìh¤vß/º®ÈIJbwÁœ¾¼?Ì8_+þÈé¬Fù}ê–e 9ݤ\ÀM©+W3ëj3¯Kʉà."ý Ššò×g\R¬³ð¨~2Ø®ˆæR4ç>þîÙòã4Rjá‡jÓä¶Z½hË9Õçj/i ¦È"eˆ,<ïdŠÜÑ×8ß.ä •8ÐÅØÞ¥³*FÍpCT=À“¾k™!±ê;~Ò¨æfQ9.mâ©Äø¯Žì«wîÆ„FýoÞCëôÞ .¼qÍO­lâÕÝÒO¨sk­dUÙŽxßÙOû&y`m4ó [ûÈ7aÝ•þÍC¦—HU§Æ-+¹ ì4+$S|‰:ÀÏ9ÉAù!íýEÚH¦ò–´kÅ6^£3. ÿ w~RnqKhNêåò9§“|ZÇNî¾ýÌßùhf”YÙ5×Ó#Í™–ÜÓ•k¢*èô‘©ÿ+ášÿá€au—ÍÚššG§0ã9oês™…R«¹A(_𵂋CÍ>$^«rDÙâŸ}?ßAηfq­Ÿ®Ü¾Üü4éßuýÉ¥Pðvf’+ç"jT(|ˆ ÿhvÞÈ*@ÿ\?HÐ=gºªª ~ÛnUI» ȘF•%Z@C˜y$¯¹É)ãÍÓÊÞ=¡A#\8놮™´‹¿ÁÈB‡_S‘™AðÇ»WçJ(èUÀaÙ¿¹åç¶ãÈæö£6¬NzbXSÐ)þ2.ç¹€Sª ?e5)Ne9*ÍÛ÷Í¿ùìcà`¹G5ï:ÿ¦SËar©ëŽbŽeµø>ZkùeòÃÜ;×Zß+vñ˜äT±í›ë‘r© Ò87,ßhMw2ÓÉ‘¶Gkºc-½sJgƒ“гá$³·2óø<’Ä.øÆö\шjVk±›…’cÅc…ýê6ïŽáÊå±~Ž·2{¯·ÈmœÂ ÍMnÁ&ˆ™ÚÝæ ö9*zÚ|¤i zæMÅe§nw[Ž~Õ…[±–¶oÕw«£/öÍS{KI °¦ ÕëqÏ ¶ ïp[LR{ÔO©¾z3ô’°ç¡}—Le\2 ›_ù%ßçîi1®jˆ[+F¤ ±‹>9‘´Àk·»e GÂT~CSýyö£Í4Þ:Å;¢%âõ+ä©/§ù„àOå e¾5ˆ<÷p½çȹÅNymRsr,ƒ äúæÐ1–Í)¶Œá[ÈEöÑÂÍ’/;Çqä¿Íý9ì?¹¢_˜Š ,Bñ’ä;–v)[r·BMç§vdoñÐIš3º©Úe˜…Šùy³œXãI”¬Ù00±lú0¹z‚¡sƒÐ=K¨ä 6Qožï½ól‹°8ðïi–:|{Þi/rãš3q‰w@Ó¡“Õrϼ…ÛÙÏK£Ÿ ²O;VfµðjXjsH9?¼Lê®×`Ú®˜î z“ûÌ„]À˜e/,5¦– ÷a®ÆŸ, mIDòSè5å=&6$qQŸèQ  j“Ÿûñ÷ܶÛ}('ðžúÑðyb-WˆÝEÿWîïOÃB«¶ºÚ¶_,ówR¬ýqÀ,ÄØWå¬\¿HüÖub65Ø9V"…£o°r`’HU”ò‚z?ê5fŠÈ q‘!œpæð,‡Ð3é,ç8Ú{p{{ˆ5³œìk‚°Ñ>S¤{àå+öjf¬Ä÷øï;+ò¢¸«Í)<¿XTh²?ßúùÕù+4Ž*xEû ¯X¼¶ûÚãËøel›òw,Þhm )žèKçF yç›ÙÖê¿Å™á{ô`_©ÿ±QŽp‚î‡ö9Ñùå°E®¦bqãç]î[Ãås#c_>BÊV7ˈ½:ñ¶È‰ØKJB(ŠTlÚ½ˆÉ(Žê*ÜU Îïc_}˜ c¦Žºqö  $»ðiAÁþrè¥ïl·¢K9\ý:H­f0èŸU‚«8ÇcíòËR³ÕÏGW„FBÖ J·q/Ðq6ÿñ]Z”>òU.Üòg“º )•ýõ ÎÏ÷ð0}èDE€pŸÇ .ªf‚î’Y?@—]3z¤9ÒÇ+©©{ôÀA¾mUL`«rx?Q?q^þoæßIléZµc5Dø7‘YÆ]ÆJõwŸ9´~'s6âúu‡×Y¯TPîëòz¢›©Üä@ "aϹå%Í®…ïW¡I©º¼ŠÈH ½¥âE<öië\Y~y]ÀìwÄBÞ?PŽÿ  ,Å»; ™DÜB-é²sec+ ´a;‹`D±Â&®á’¯MÊÆ7Z)Ùƒ;4yƒ ³»…!©'„/ü¦·;WhF®yk|æ£ZtrrJa"ë ‹yžÅ@/$Vs€y¶ßµ7ÿ©q{´'¯»œ•e½hìÙÜÂÖ‰U*k“öÜOï"23æJ ËÇÔ§&Œs«ç]ß·Àk¥1;òN“GÆKYã(jHø2±²4“eÃõ¹÷Át§ÂÆâéx®émݯÉÙ©ûNû.aÍ[Y3…¿_ìÍðËË/U>?+´Vcx ^ðÁ2cÚÙ+HÝM‡õ&Æ{ú¦I²P8[}4aI¦ÑÌf™Ð*= Ä«x"¡¬® ö‹IDÚ‡v£û¸ÅdÙÊŒÍ0YˆWǦ;¸sksJü1ÜX»o]ñÄ:•7êvœ~ž>2I¤Q“&æ*sÕ»:\¦UŸ)/õ¥Z1=ĘgìáÙvïœGag²ía:‡´… ÔlKR\ÊfϪ&í ¼ð|©C_ÏPÌòÒà:¥jíñºì'Ê|òÁfÛÿTßëO9q@R=#zÔR:KYbâ¢g…å¥Þ)m”³Õ\£Þª  ÊbOî¤7d/é,èF“SJ:ª#à%êÓØzÆ*ó³÷¶·À,Úz;µ¾žWP´G§ˆµAG#U‘Ëc•ƒ©ãÝäŸDãÄáûE«GÌΟ0‚ ƒ' w´[CíÙR…}ãˆñ–6®$.\*Á†³‰PíþÛ ¹ÉÓÑ":<ÅcQð¨¬KÆJšâg}>`«ùN*ªÈ… v±šnÀ©sAä´îˆ´ÜZ»ýL«nB¨]økfˆASªhï*ÆÛÞZ«æwd×´¼Ù"ƒ•ð•—¥áhãp×Uß5„¾EJ‹-Ū‡þt”Ž_·˜½fŽ’¥9G šh¹e^Öp{¬±½A'Xj úenA3;gEúûâûf81Q£¾B#6oÕò‹W°G4¾·Ú•ªs,Ž3:Ô¡¤”ñci1 mäñøºÖ½î)¬Ì“> stream xÚ­veTœÝ’5îîN‚»»·à htC7$H°àîî'8 îà‚»çã}ïÌÜY÷›_3÷dzÖsªêìÚU»ÎY‡NS‡ã5Ĩ»rðpr‹ÔAN–n0 °‡ ÄÑðbÀ``…-\A°œ…+P`´È­¼¼ €,ÄÙ ²µs0ëi°°±±ÿÓòWÀÒë?=/;a [0€ñåÇèqv‚]_ þ×u€@€«`rd54”ÕÌŠêzE µphºY:‚¬j + dØ@ Ç,V°5è¯Ò`œ/Xo` ÌhzÙô´:ÿåb8¡N ìå‚l¡`×—¸B °•£›õ_^ì6¿ 9C!/N/¾0MÌf9»^²jÊ)üƒ§«…ë_¹a 7bói ±rû«¤¿}/0/^W pzºþ•˰Áœ-¼^r¿€9CAÓpƒÀ¶ÿdÀ€m- ÖŽ@ìæû¯îü³NÀ«ÞÂÙÙÑëïÝ¿£þ‹Èt´áÄàá}Éiåú’ÛÆàúkP”Á6÷?ìÖnÎÿésBÿnó_3ÃòBÂÂvôXm0¸Ô!®/)Ìÿ;•9ÿ}"ÿ$þ·üo‘÷ÿ&î¿jôßñÿõ<ÿ+´‚›££º…ÓËüゼÜ00€à¯;æÿ‹µp9zýÑÿhüÃÿ DÙÕ⥠oÀ¶/RpsrÿÂ)€<Öš W+;€…ãKþ¶ë­PGø¢åßmpðü‹O×dåþ«é‚"»€`ëeþ"Ïß¼¹ä5ß(¨k°ýëmúw”æ‹ê®º^Î/Äþ£Ž·ëÿZü…!#ñ|ààâpðq ½6n>€¿ˆïÿïo ž®ßZ¸BAžã—¢¹yþ.ý?¾®LÿFl±þkNt\-ÀÖ/£õ_†¿ÜVnPè‹¢Ÿö—’ÿsý÷ž@+Œ…9ˆ•X°}jFšk iNÿ¨œqw'bÿ'ç’zÝÂüUïþ©aë"æÕŸ8ÆEŸZ¼~ì;?þVaÝì$qdúž <Σò¥géÊÇ_albÛ äz_‚v`ùádVm é ·þÖÆ¨–öûâêñ6>(ÚÉ–ôîù‰^_;ãøY¥ÔÅ·ã5ÀÔì0&ìþ¹fêèïû~†Üõ›’-;AÌ‚Ô/iŸ.ÑÕËzYoõèÁQ%š•ðiŒÎª{…ó¶ú5fçk¤­7”ÒÔvǦ©|kV‹~³²;{*¼ãÔµ¦nq„ÁCì C€M“FòŠñBþûRK®ö@!ºô?‰R ¶N! ”(нâQd­íW'm}‚¢ ÏÓü Ù‰~ö½¼i|ô»˜Tîè¶z†UŠ˜ä­LòNnœžÞfŸ @L &¥09på²,€-ìžð–µÖÖ‘yôµÏ¥Ýík†Ö£ƒT¾†g ®MÔc_zzù5ÛK©ufåPXSǬe±ýÚ?¤kWÐå3fbÜݦ©¦7äs§m±x‹û G‚wÖÈ€ÎÒ·ºªû®žYDCMÃ{´êã˜53d±#^ nÝ&>ŶäqI„êÎ'Ø-‰éo H²gäDtç¼¼rfï.•\Žç’œD%~Qðo"ÌRΟ"ˆÚ„p„[…”þþPô¾d„5ˆ÷T÷ÁŽ> í¶c b¢0ÿZ-5\FnûbÜáÄùGMƒ‰>§Vr1Ø ¨ÎRiؤpæ&¹¦L T†dŒ±ÌÐ ñn3—™Û§ÿú™«0×>Âé ²U­fJpÕHª¢k°_yJ†KB&{\ºi‰”Þv!ç.1ö¶¢–ÞèÛuÿ9qŸ¡I(ß0JÙˆ—„E ¢›³Õ󛾇|ôýw„¡‹?Å`d]~ˆ÷(­Àhc>äÍXÏ«ÕTÕ'tÑúù@b®OòCæ”ÓE<¥ä`bÿ2xDž0Šï¨sÝä<·ÍTZß§¿ü¶¬KûŸƒH³R:â-ºþm‘tR&B¸W&‘t¼}ëDõàϵúÑp(hiZ–ãè•t¯…S‰|ä4X‘»·j¬ 5zó¾ÚqÚ­±m˜«Cæà&•ᩬm_|ΰψ/]XãxÛ’'j¶àœ K—÷IN W‰ŽÁJ‰Ÿ8ö’F¼ÍÅ ¨{<Ã"®5ŽŠv@Z71¹Ü½º¬±ÒyAodö¹³cæ‹…‰Œ”›)E.< Ú1Ÿ<­T[Ùú¾+«L¨&X÷0:Y‡§.[G "¸ôgnÝÙ†¤ÄÖ©D”»ÀñéÏ}ÑÆ(‰• £KK¾oâ¿ô«o½‡ÌÉ\ÓÇäÉÐýؾÈò$ÿ}úîˆ\p@gw”¿(n³îГNoh,Þãà~/¢Š}‡~¹³·ûåh‰í–H…^Õøéò” 2×¶Ù+¨:Õ¯‘I‹O»â:' ‚RÜžò8Ú¸Ûþ³TŸo¹é„HªgfÆŠ*«7ß#ˆx•ïà)z—”Ì™(ü †GŸ3øÍý2Hº<ÝbuzcÕ²ùð—ôÒÔòçÍ€ôž½ò0‰½ £´`?ü…ê¤?ƒ7Ÿ¶íEIhŽhÓš•ís&¾*sÀõo‹ãÅÞÑs}× O¸zœûI…ÀÐNôq6±yì°N'Ÿû> ûê‘êñ¢¹¦Ï>—ä3|yq¬‘Ô«î÷à²éUçæ¶„ѱÝ7Ó-ô %X>£]½p[3óT×Òùð"þèLw‡¦H”Y±r¶½}°þ{2@‘ EN×u¥&[GQJü»z™t㎋5x°I}÷wò55f›Np©Ý-ñºaöÄ/Ö¡f{Ó‚hu®øN"æ/±ZÊÜe{2XÊmQ_¦Kö‚°2£Zâ;LÌ–±¢ŒÏw&[OzÇc~·>|pŒŒÛðòm6= #E•[Šs,ÙÔiW_ÊéÍ›¶2™J>¸3d3„`(O!…Á,‹˜½#úˆÑì*µ8ªfvj=rÑ †yò}±ˆX°}‹[CN¶Ûz@W^×›ørE3™ÃÏG¤§L{¨_þ¸DdѳÉ@m궤jL¨a†ã¨Gx$Ï4Õ2$¾Ò7&\0&Ìä=FPЛœ`¦Öv¶Ï)Ó-ï„wN ª±wû#òžÀ=Ç`í¤ Ÿ¸ÑŽÙ´þúvkP`ÚêcS·ˆðñ ™7×Kqœ"]qÓó§„üè ’~s´*ùºÔ¬\$=nž#޲ ½³JHkõ'DcEâQb†Ñ( qœ^ÜÌìáØwš¹—µWK¨,dPÂ?!’ç•·Œ›ß¨‚P¿º°'.ž‰Ù³p-ÄëÉw=Y1˜ê‹ ˜d4®¶t ØôV«d•¤nI6½ 2Cýñþ vÒãn`J .¸oo©E—V•“¦0Íð™…Ø°Í1â¶ó(‡äßúÇeŽé«Ã‘#aV|O ãÃóËY•ùEV¦¤ªÿk~¯ë£÷"ÎvÉ-I_A”õâ†ùæ®Ò«í~± :¥*‰çN¼xdteJ™·LäÎ[_¼ÒË{UR'ÔlêÉ8akPY ZAGû Ž:?á£ÒfVk:Lù¤Ï™ZÍŠA ÂðLÉW¥ß£E³w±9~ß›.¸òªÒ–Y(qáXqÃ`4ÉÁ•ßž¤çP­ˆbôÃJÐH0f>J4É2Óë´Ð#- Ö*ßøã9Åk»¡ c¥‡YwX¤ù>-µMj/ìI±:ªÄÚÚ&è N­úÿNI;H±su™|¯}x!ëצ ‰Î`aó­[/Ûÿ×" %%èsr³âÁÛè­—­ÿ\ð•‡ö+cxׯäN AV¾¶+Õ`K zX;ÊœŸû©D‘ÇâÔ}zbßqŽ…YV)kez´q¸£8Ô×üØtý˜ê¤äw¹¨Ž`%E°)IçV¤æô.ò{I|¦W¯ëÄír8}r‘©ñªÞÊ5'E¥t—x&YcË·‡Ô^;m<¾®ùÈ¿ƒ!'~ÖsLz¾3°A]ôÚ“ÊÛ-ï:kë]¥ w6ÓCÄ^í8•¯ö­Æ šÑ… pÓ J‘%a"6^ùé'1Z—°ß;þ(Z\!ñîiYfŒ3òµF.…_+—á%•ýBý/R,h\°½¾SÄyß´ã‚Ä€ìÞWØ?H|‘7Žø\‡, á·Ygn¸8Ô‚í(±{™›·×œTYrG ¾îµY3V®]›‘ÓæË¦5ÙÚþ-¹£«ì •F]e»2&y°´/áÕúþuÒÇ&—±Ê:޶.M’2JAÁ¬À.:¦Ô¼æ“õœN~ˆñÕ"‰—pv“£KDà9&‹(qÊ•¹õ:”2veÕiL,§”q$s:ê6$•þâ݉né?§ä œÊ.ڞ䦱üQ©³Ûû£(!íÃZ®ã¡«»$îuÄWi>ˆX”ü\mTBïÚ˜æ…Ò}EÏð¶RcºÌ4é0S?|l΃”€uc,{Æ;·Á¡› уì勣ݲ>¡·®W5:¡ØMŒ½âS[}I iö@mï°Wß:#Ä”ô9­u²(Öh&ÉÚ¡XÛýÙ,4ð“ =ðjÞ®æûHÜwVB«Òƒ+[9zÖ-±ÅúF¨çíÕ CÚ‘v“&r) ˜²’ƯŸ]DÞ>R®÷Ãp›U=áyRNߪ«AM:íØeÒ¤•¢gé×ÉA™;î(ûr®ŸÏc¯¶ÑBí-Ž‘ãMUà—“mü˜“Ñ£ôO&HÀÔ{hžÚ_K¯o”žG@ÄàÈAâ'2"G1¥øˆ/z9|ñž%"L÷$]„³~ýXAÖT£ð¢Òø~.C¨c¥Oüêªîæn{¢Lí6ÓñÀ}ÔH|S›ZÄN•ÇÀw7Òa휕ý˜¯L3‡Ã¼^Õ’àxí5AY¶Lú—\Ü8&W¿T‘ƒëã}f=¢Ó'âøJòɶªâîœQßųMÄÇ‹¹¡N:’ûç&s^‹­k/¹U¬˜Ä5ñÜdÃÇ}§¯ŸÊ‰N$!©j¿BeCí2Qê;ÝÏI©— ì €gX—·Páé‹*Jª–Käk«ªLYtumx_˜Õˆ³Ï£Á– t+^Ù€Ú²žBØXgÅ%¹Ê~_åùºóÑ¿& }wh g!”iÛE”¹ éÓ ã4^1G3^JK~3áV¶²ï‚¹Ìß7þÌ”©ãÍ·4)QÂJ˜”–DA!HÅp³ç0:%Cäk\þÌ9th“€£Ç÷, c>µÕ!Øf·u_”ËÝà•`ƒ¸¹bë9Vй¿A¦6SÊÁŒÕ‘J ö¡ <ÂÑëò‚Ј Ùó//M2®äú¦]†ÝiAŠ…pãR¿ öIÈ­¹ðÃ"Ëeíº«M¬Ú¾öôhY¾r/Ê%ûê{ºÀ¤¹.Úºn3ù| 8z˜'üìæ>å+´Vöêë_ ‚é¡—tòÑGk©kËZ_HqÔÜ¢4*§>G+ï´°ß$²ïƒïÛ7è4J¶Á ™E bË9žN§˜p¥7Oi+¶…ŽÂZÇVˆÜyòš–0ƒA”¡Ákf6›´,9æn*´(‚×í<NXIÆTƒ¦ùÌkYªÌ_[AŽCƒŽòê“Ûã™VåGù¢÷÷tb†s^Ì"™'„•MÅâ4Ó9|uš^ýôø,áo¾OŠH!¥ù(i$½!‘’J åÛã•Ñß91o•“Z_ÛìÕ¾qsÈÖ ’YjÊmnÕï7+Ok›G^ò <0åî`ìhHý²lìW§_ݿƢ†Ê'š{Æ.+œš“²móÊýX ÿð¶ Ã~IAi€ê´œ-:†4*½p°F!4e§‹óLüz å(¢¾2ÜPÞ©?ðÄLœÛ‘ó½-q8=•â|ÅãoúÈy?ÓÊã§~a™Tîî­YíK¨³å;ô5&«ˆ?òãÍj=Q¦ä ÊB¯¡wo’6ޤðŸCãE§Ñï-?fÞ“]­ó@µÜî—?ðSu ÈÄ¢ØÉúo@Yà+£©öèèûB ¿†UZö#ÄÕêÌKhia¨Ü¶ÄÌ<w+†j¢âçéÉKßðñTËb\g@]–.£O1­7S‚ø‚B?Ëäí(ɆRp#÷ |I¡®£u ÞCžyS+èñçÈ=¼ÕÑúµ°ª¡µÓcâ,cii“Iü±ü êãÊ®´BhH/ŧ–÷È ?‚Ÿ’†³,7tVýq§¡´‚\pû^n¬FÓ©<6b6uOìa‚ ¥§RzG’sHedÎùR},¤êâ®ðf<¥ÖÃÄ©&ÞuÇ'+/z\SQà LÜìŸHßñ4XÉÝuÚI÷Õ 1L™"èÐÝl{?È­u–êr™0[fà²ÄsL@«{Ñ )ßÈBåңĭ‡/¾rbÒÎ]$:S½…œ¬š*êÇ…“ñP ÈH+/—¼Ã—¼5û|nŽB¢ˆÎèNŠí~".ÿÛ8™ú’P¯º¨l¬6ê»»Þ‚£žúÄ+=Å;Ô¦ÆÜÉ£ÈAc·œng‡-¿á}¢î˜Ëî Vàø>ón%¢ür㦾J´;W“ºçñsÜú™X¤਻OǺÛK¯,fPDvFtw¾…л™?[ð :PG‚Ž‘‡Ы'šÇð‹“G¨Å²5´š.ïÅþ¼ž–ùÅ+EÄ„dÉZØšÌÿ´+ç íH€±ºu•Ý‹k¦y$H‹Ðz•½š¢-}Œk¤Ó>“ÚxI]ŽmGÓÒ˜1ÓËn5õ ŸÐcUŒ2Ž„F»kÑ%æJr÷7!ÂVJ(þUÛn*ßÙ`îSˆSáPàè ‡3~@ÔɤNÙ°ŠÓaÞÑl­¿jêŠäövQÄÏ:œ:œôýµž»ñóOú,q[SøOjì©gƒHæ0‚ŠeÛÚƒÅÃ[Ú]Þϯ]\hrÄ$ŽåFJŸ÷*>¢ÞÅuù–‡DY¡g1þ:$è i‚”h¨„Ëqv èç»cO‚¹ý:&`Ϩ@Y^¬Òèò‘ö¤ê€’?kþf½ +&eû!ôõFÑïc:ö_ma”=Üàþµ='È-ÌØvF†þüŠ¡M\ »“ü+cò›”!¸é9|Ž#jú ¯I£ì}Ú'­öŸ]hí¢Ã,ý˜K½*'|Eoé¿ d^{kÇîb«´ëêúZ2…ÀMïäø ç(Á0{’o#uùɇù¾Q’Ò=ƹ|×'}þ)S'ýê«¥YhÀUnΧñv¿ªе¤Åd»íæß™¶ìÝ+ˆˆÆÔîËD›EȦ°Í©¬+nšr¬›ë7]¤ÑOZÚZt¯U!d‹Û Ý-™8hÑsf¶³ì[DÑœaAÅ*C½‡¦O~ÖÒ<§ºêc÷U%]jsU$ëõï™ÑÅ¿\Ò¡7œùŸ7㩯ω¢¶Þ™,Gýú!G.œÙJ±²!\z¢P€dâëm<in8IOu„¯—ý;$Ü$²0ñF³#Û&:'NŠ¢:d¤GÍޱùµ›ïækM.?Éäšqܤ‰Îœc¨Ü’a@>à혩‘éŸÃf •†á¯(fïn†Ÿ¢1—/m%ïº'‹ _:šÞÂQ;²|× œKþS{ µdò¸9™„ÕŒDÞD+;‘ <7f‹ ¬ô|óƒšJW¦4®óœ¢\dßÕUÉó”«<[ÐÃ^EéŸÚM7MÓÚñÀêÜà©xÎÿ„§ =¡rs[[ ýj“9à´E<Œf©l¡5º˜Ðnuùõ5˜®²ë`J—žŽ79Ó«¼*˜²),4âã $—1!.÷Ç'í¯î~ã;÷û‡uÕû–«‰ÃrÓ°ï®o>„,RòHg4ÜB°d‹…¡ºéí~jôHl0ìñ[ÐNHèÇB2jx~€Q(\Vt«»q§•|­d躊=_wgåÏp¿yÎWàá¤ÞáH¨žüeõî½LD½äë]B9·hUüˆþ.`ÿîOÝx†¶uóɈڜyÒX&)„ _±,õ¡L¡ 60'_ªÝ?¿?þr¾&—F˜Û‰ëÒuIBµ.‚S7‘i›7ÖÃán¹|3"j•MÆ™æ=°Öø ¢’³S%îÉDP+Qƒ Ú›oÂþw­†’÷ÏÂúkî>Œ)Ö„M<)2ö!{ÄØ¢4½7ñù§ñ¿òèšØ™¼zjЪªÿ(œÊoΜsº?x†;ЧÓ-p¦÷ñ³Ø|Ôc‹…ü0útËüzÁÍVt«Z"ZÄùÍ>¥îy‡ÅÒ·œ â‰CY„;äÒ*žØê‘œ>ht8&Ÿ¤Ðµ¹™ñŒ>Ý{Dùbä º‡<¼tÑ=7çúÀ"eú¹úÁf=VŠ8tEa§†cj¼‡vß1¢.kyø ¬³1ÀÕÉ~Ìù*LÞ÷'r‚9óôbª ‰Ût´•zÅ¢\ZZõÑa^ä©¡Eëø¦Mñ“ò0_ôèãÌzp™W`gq|Ku¥n6ÿ Ù¦(2ú¾þßø)ûökŸÍ›LSÛŒãÖ äÅZ¾MeùäÐ¥ßô¢’ðŒGÏXçÛ0XuÈSñõ‰ø¦ªŠ’m»½<È]²óoÏ®Y®2ޤ¼¦µ³3žOÄhÒ¬;J{2pŒ«¬‹‘µ—æ ¶»ëyž?ìÑÆ„a† °eÔ;êò¾ÔÎ+ÏÈkä=\x/ârmîyؼ2tkmÀíFH"…gbÀ‘ÊÝe*’†{ífUAv”M.Ýø”;EWQå™äA}[ù ü|S·Î®”×VV·÷Q¹ýÑσ~ æDœã‡Õp¾¤©él½2åé¾<°¥O—ÊÅ-ù„¯kb^Xx燫Qïè;Ò9%÷‘.DÒ©#!~dTa­:ÑÍáIý¡¸¤‡õ­?ñßi†œos“)ãß¹dJ3Fpjy¸:ç6Ðo¬Èàù¥4üCóøœûT§[ùÚ#•Sý Ö䆿lì06‘¸ÃÈWHOÊ¥Æb¡ÍiŠ?"[QâO2ïõët(ãòc`ë‘7'ƒ‹üƒ°­*t ù¶‰ÀlNà—·… µÏk2w Ú…=ŸÃ™kÄ6œu°Ý‹ÇÚj=ÈrÔÇs¬›dÀØ«l*ùñ©uïGJ-FP5bÑH >f b~ChêèéØ}‹9»Ç´âÁ~’×Ý™‰£*¤éëHOüÛž²šu/ø«S”ÓµcI®eÚÃû9mÁ–{J°Þ†1Är¦.]íW~C'Ë}¬ GóÓx¤åö*êà4¯=/;Ž•ÑŸ¨Dɘ*½¼±|nÔ„©[[ªÑY~iþªmÙÔ\yߎ?»¶{Òº}øk›~”ÎæƒhD¹ñ¼Xõ·~ñ4eX¿Ù¦q µKílgÁd)ÙÝ¡¦>–‡íF|êiÿh•;73Y8¢ò—å„ß%Ü“ù6ûqè=¸ÇJ+’mpàô•6»Á¯áÀ™žyíf¼¤E½ åν0#T©RÃéç"ÞJ˜K›R„„[ty8hS+Qt^6)ݼüSÂj,Úèõ{ƒÄ7›TO˜j?G|"CÖ]Í)Þ&ço&0î=«ÊgyNu1³°â¸ZüÆØoï•ý© %ÛM%7N67#K›Ç_eöyÖÍxn¼m—mšL€wñ‡mŒ]LÔÑ„,úŽY0¤Ìï€'Ç'f¾†GñˆÖ*O&]Û¤ãár¾Æ€ß!‚Î=ëbzåôÉ4u†ù½ÀË”ù¬¦»ú ÓÅý%·‚Ìuv/íÙo«ý0N¦öà‘!·‚GÍ꟟JžzeŸ=Hi™ª$<¼Óï¶KÆ€ì!‰~‹ª$‡žEJNøƒ+wB™å¥ØËë¿è¦+·;*³*4¤Žåmxístžq³C„_HÔaõ8/ºÌ€kR$²"Õ”xˆ³r ¯ôÙN³˜è Žé(îù¨îéât˜¾ðJf[_bh“Q ð?¶Bt´6¸¿RóI†T½RœÛ‰­X[ýÄ»£ˆ+z¡o¹ ­À4¡‚ŠoPGïë|ÛH*…*àéJòbSᆘо½pUåäÖ8GœúJÔôZô3nDa4Ê>‰í¹r°=ã£O«)EZGJ§`˜ôê{Ú—ÚÓ´Péë ûÒÙžÍOÙ˜"QÁ}ò.éímŸ:ŒqÁ!ï:’)Û3ÞÅ«îFiLöùp˜:Ô7¨u §ëQè8\™2jï÷·Ÿ+=¶érÇ®G—6›…9tyEæ9nQú!7­Oô=ƒÅQzÁge㲬‰óÃ\8´¡¯ðαPïZb»ÎD¨¡Kh5Cd3?X¤|O¿Dî´f© Ô”j%wÓQÈ25¾.@ùv¶"da)­}üžêcP2¬†%þCRaÓ`ÿ»ûìÒÒ½ov·øŸô©r™Ê;Uo„ëVwµHM <qµÐ¾j$êô4愤Õ"­7ãž^C,7àù{ !¢í¾¶Z|17AÁ N°E“Æý¥ûše°²ÿ YÔ–ƒ•™AœÉÔj 0qÑ ƒêÑÊèàN«sÜC-@Œ}=‹.¡P¯‡ñ]CVr¤öªU®¥{;sÆì+›KPÆjêî$NßLç÷ˆc“ÞW¸’_œ•í;4ÙïuÒögÆE$I7¢¡ïȆXß E,³ºØ0ÊQm›FÛâ õ6*FOñ[Ýf„)Órz¼CJ:\E£+SÛAÁò“ûÖr,ÿ-·m.:kæ3qy2©¼ñdóq-É0烓 ·æ‘vue‰Óÿ%ÈŒƨ6gígÜ8mjœý­Ñºè§«d÷ú'*îé•¥}/_üÒ@" !žÔ½÷íc•Çn •ô·šð¶ÂžÂÂr-ù´‡¹F~ Oñò=t/ŒP[Êö= “›€ÚÃWÎïÃ#Ñíí[9úër4w¢›¢Ékò ð;´XP|wfÃøD{„,bZÕ†B©ËcÍmäÈûÌÀÚóR>itj³ŒãÊÜ^;eñü7x9Þ Õ½gk Âked:µû3Do,C5ÂfióÆý}‘ƒO[djŽƹB†¬Þ!qG½"œg±%Ø@ºŠåšJ‚g!D$¢+ Î5fÝx^Í;`šÚWָ̃ƒ|¿˜ÎL˜„*RÚ›8«Ø>­[WufjPÛŽ™T°„Uß"ìy}5e&.©4NoÌrùx©b~ß· ±SñŸÏG‡·÷”ÄkWVÙ^f kQ•æPÝ–rŒÜ"ï”ý Ë»‡S½{_aB‡°Í*n,%Íô𬲮“ûu8ó¸Æ ä_îiõŒšo4·_±þñó)äÿñ$2âñŠ;Gk¯(ÏkåŠRáë»ã[뻉K»çÆU˜xr¸{x—c9EÑÒf˜Öjµ‡|\¥³ Š§‘­<# piÆ`­ø‡–?ØØñJSÚŠߊI´—%&K¶\òJ±ëXÁmQü$!3ÂÕì.F—£sh¹¸—ÓRÕõAÄŸÑfUu®æã2ßnŒù¿WÝÉ{Í®U0ô®!¢‡òÝ1eËI¼s®§ë¡Tª!ƒë'ÆWÎÚ“qëg’+Òm_ŠH“¾7ª-·ðè¼ÎÚÙ+;€ÛNzl„ß$*qºˆÕ“Wd”2¯X,Þ<&Â%zš³™»M¤'x³H#ÿ§uâ¾þvŽE’…´ÌÝ´<e„•lp¢Ð(Ûlv‰¶(nؘ¯.÷©ß þ}R†Ù£•y˜ê>.O íµ¡Æwlyª/}öÛø}éûSfñæHHh€$‰QJF?úÐKè·øîŒš÷HJ*%˜Û(1ºˆxR!!ñÔ{¢A³$ÇqQ&t §42Q“ Ò÷)9„AʼneìYéÔu%{„qzßO±tâ‰÷k@&ù¨ùëL~n}ãÖ‰ÏËS´¸KÝiôäܽÎUØ ²{Qò ê­/ ·¢û™8 endstream endobj 1285 0 obj << /Length1 1144 /Length2 6703 /Length3 0 /Length 7468 /Filter /FlateDecode >> stream xÚusu\”ÛÚ6 -Ž¡»C:¤»;f€agh¤CºAi én”’–îFB xqï÷œý}Þï÷üñ¬u]÷ºîX×b¦×Ñç–ÁmÁJp˜7?Ÿ8@ âbëŽÔÂ4¸õÀî€PˆËÌlqƒ‚ÿ‹~ ä` Sº=ðŽîM  ÀàççæXó þ+Žè .p€Ø Œ€B`”ÜÎÝ sÓwwu…BÀ =0#Åö•ýwV€<ÜÕqpt°ê³srrýð‹‰‰l½ÿÅÀHˆ Àò°ðCᮿ3=H(ƒa`ÄCÑ ß±:ö@EÄíw»6G77Wq^^W{ øãAÚóÀÀn¼ì…*Â@òp—ßHÜß3S€ ÀvMyóþsnÎ0¸'Ì÷¿`{ ôgK wW^Cä…;XUრܿ1°@˜O€OŒO~{Ù9òþNiàí þ“äÿ a ?_W¸+ÀE‚ý öà‡®/è¸!ÜÁ~¾ÿ/ñŸ;\~~bç°;<\Ãßê0Øþ¯½&Ð ñ˜óñðññø~ÿ^Y>\(ƒzÿ®tx•UÔ448ÿÙû¿£ž?‡?Hró?p ˆ ?8åAQLXðŸŠ:@ÈÿVÄ÷÷aU˜= öWáûWñ`òÁ…¶? ËøO%-¸Ä `ûÛ$|Â|þxøñÿŸæùþÿ´Ð?s(¹C¡öÏöW〇Α ÀïÞ¡@Ä…] PïÿãÀ?Áùüÿ££ê„Bìä`Ð ‚T‚xA:7;Ç¿ŒñnýùâÀ:p$ä÷›pó óÿƒ3p„Ø9ÃÀHäƒûþ¤À0Ð?R*Âìà Ì ïöà? ôoà7mçŽ@<ŒçÏ z8û¯½=ä¡@0Ø l‡;?·“uª m¿ª‘£òäÞü bxqïN'„ EÝàAëÕ"w.¥Êû!šš­ 3ì(]eþHójx•bì3Og±çZx«¢¼7½}u©¿Ñ`P<½ä|ñ/ŸU ¥°:™\hç®Jº7@ZnœÂÑ÷8$Jêˆ#2ú“LmÆSõD5‚6jß}JlßHih=2b­Mº]ét¯¿t‘~åʵ„×§“-æp¸À®ëÁ¢q,ʰ\k [7|Á\K K'Il%³ tš= à­ÂÇÃò6³ "¬~%Géô6²¡düöew nêŽÜ8väz¤ô÷ÏrîÝÏMÅŸ;<«žÑ#æjc88#›!áoNn‘ÅÃ2Kòäi#çÎ~ZßZ»üÈÛ§ÁÓGì8ÉI÷´µYj'š'çUãëÐÝ;­Åávoô I'„ø›­ô÷ï8ÆâI*WK½¯ Ì"¥ YÉ×ÔW9Ûó󋼉MöŠKŽ*¦ø×oëDñÝÆFâ‘LR½ €œÎ“ö‘qóâNÓPÓÚÇV #$ŒÖq_ÇL |*çµe©]ROuK“BbvP§ªy%؈â,1Y>k®~çyòÓQ“5Èú³JÕÊhvIò¤î‹á]ñ,<ù¨Ó3Ô=Ü+\ò’Û›”¸ÇÞƒ¯[Û¾Ù~ÕÆ;§ÝGÉ&³?s7oCw½½ý’_Ì83ÄV+Ø~Űq‰n*>ÿ¡RÙ•ÐÈpLj]lIór¨.<eü>Ndp9Z{1àÙíÛuœ¤xýr³Ó¯õ@º8Žõ,êDùæê ì7t^Šå7™2Óo_.<ù€‹±ÓVùþÖ:³0}.IP©C× ÓdªüV¾Ÿi׿¤i6Q‹.бÇÎ#ö9„¼Ï—€~xæàUUHyI¢#ÕSMwχ“)•3ˆ˜N¢¿&å”·<ŒÑÚ¤ 4q]ÿZd4QjjÀ¯M¡eã%¡7.ç›B|~Þ×m7pµ¨EÓ~ð3zk5ã§¢Y{ׄ¹ÄñÊKûñGçU¸·MógÔ%…¢ùÝ ôÄè’ÄÁÎcNaeü=-ãZÄt1Á_ÂsÇèùD*ÑÞcÝ*bnÿ˜@u «æ €ê™Øí)Óƒ~æŸL›¢L³£ ½~“âb Þ¨ÍÊÄNµtW¸Š8ÂNey,än&xz ¬2À~®·ø>C{4û)ÊI”³ Ù´a¶÷Øvâ]~ÅÔµïÌ›¶‰Ñ6a§ÿ•©I)K;ʼngYÍ^K×÷þ>­ס¢¾¸Í9=%¼â`—&Ðá¯?MšÆ°€È˜›‚>ª¿Ò˜ËªjG¨÷sÕÙÇ…\øY.Xð®Ù»‘ô—+=>"ŠL4±Ò·/—ûXUnÀQÚÒŸBQÇ~C%>eo « ¤ì¶Q¾H›î£¡’³çÛA‘Žs2À-Ž—vŒ^u5Öüø3÷š ‡çAΈGÖl&I¦/Ì­Ž H²ü&~A6¢F­öÄøLP“b3*ì¡§_›ó{~µÅ QÀšÉÉØ|ª4<çÁ5ÛTߺ>SÏhø˜IpB÷ÉÅîÌeîŠëj(5E¯ýgA¡÷gåÔ5ÎA¯ø÷k.»ó9°GÚ_˜Õ+Ë&7}{|±¨vcÂÂùôJ0;´­;KÕ<´t”ó>6¼yÙÆ].ŸåQ!_7šLDLã·ëHܧW«Qõ-²>Ölë©Ý|¯/{i˜˜wŽÓc×ö3/ïÔGVôÞów ÅÞêS¿;]Ô°.ÝÕIÈaJ°íÑqŠú~dg¡Y…zc‚ÅõUÆG—ŠúºH1Ž]p¨[Y2a¹j0ò-ÉÒõ•wæÙ禎x™ðàxf×­ST~¥§ÌÁ_pý:{Íפ.J"ê q_ìzùL&:ŠLÖZŸ†¢7–‡jÜd‹'ïC¼¯ nÓ«Ÿ4½Úiòz@ªV­-þ†iªx+ÿT¯Æ'JÖ\¯/¾rÈ£®S7.æãÙ‰®×V¤ºCäÙ}™)V¥Å’+†«†®ØÉ’ C‘;IaÅ­…B+ÖNsTŸ]3Òð{¦ÅR‘Ãm.fÊ ÂF vêþ抷¹@*ðK!“Ä«sÁµñ&KŸ«Ôàx=™cò:Y˜®y*ø~#,^o r:$“ÏÞŸU5 Þ´šä¥r›¨Â–'QG\»¤ç+×s®^ÖŒæ-YnõÑoûÈï &¡#h7ïUS “óYt0ÉsÓ‰âÞ[¿ÒÌÊsh—h(…YZE/Ñø²éa7èƒK]~¬5ñnÂHÑœgø»aÓûÄïB·ñP:ÔÎ ET‰ (<Ý^KJÈ”(uæv|»}ªã\”1"|ÊŒ´wÝPôw‹ÜÜÞ–pnC˜£èPý%ܦK“·m¤VöI¢\S57×HŽŒ,Ê~ÊnÁœ’¨ŸäsÓÍf¨ˆ²+°¹5dø>c†:ÙnÔVó<1•¼‘õv~#½Khõ†RíÂë-a“à•ÍQ£ƒ›†Â2æuä¹rùxîµì‡j¡¤ÉÍgÇ:x%)'š›LéX ] ÿ7ýÐ)€eø´þEÃ@\è„æ¯ËÉŠ±{‘Dý€”4£Ób˜¡™óöàc9Yxa)èþ{1þDÌkÄôÑ\_ÅO†\¨JòD¯q-ýÞN ù¥lÌišµ5’¬HÀ޲Ìwò )Æm›Æ¾¾Yþâ¶¾ÕedIÆMc_1c{áC8ZS¿¼…,ñSJû½_êÖÀ |zcõ¬¢Tºq\ïÊÎø—3£DÀsg’V bhzXé¡®ýÈ^³uìqo§Ð•{¦D9˜"0•>5ÐÄR"G ެÁ¨³UXU슅»ñ–Á#8[˜9ëÒë¶RV™»þ3ë÷_^tíü„-q‘ ÞƒVKæÚŸÊIÕË-³pj~c+ šÄè1‘ºãiI„“ÍpYYŠÈÑ;c0x1­v¥ðà™!ÈŸn ½¨žç,›D[ÜsÈÞ‚ÌÞ‡y_T×#º*+û§8ŸáúQó|µ2Ä} reìéÍbc—»7Ç-qŘÈh/vi°‹cå…”í3¡…ü%òœœ}A¡Òˆmÿj…|O^<ßCCõ”˜l1 ¨j¨ D¬¦Ã?½ý(-¨îUÝoCøi÷y%ò°{A£ih«€ AHöÕCë—Ò8û¼·×•,õÎ8ðô_Þ‹H±|9A}\MˆaŸŒwl±SLjæEò‘=`«›s;½”Tؼ3˜ñélDÞñP}ðqôÖ/*ù6þ—Ø'¿¦îäÍû8㬮“¿,`3qz™cö¼Ã¾ìŒ"Òî1©OvÐV}(‰àyª_„º×_–Ò#5äPjNÕ®Yê–©N7è:óõ+f rƒxVGH=f§S~bi ®ÔgÅ/ðu«\ÕJÊ3ú…—Þ1鉱›ò1ÿº5@gLšèNÙS‰Vg©iñq©ií=½|$ΕËÓ5F^Ò>¡Ãµ&™á]uhÚ³»¢„`£ CY¡€YË"…ò.é@æm¬¶ ÓӛƤžÆïªŠ1?Î$° ç™çrÁZöM)™oÇB`…dq´~?óW‚fÌ`=?ÍüqiÌ“%­AAÒõ³ýQòïÆW§¤¶#®›[âRìR ÜpŒpÆé|¬©Mæ%'öܨë=D¬ãÓ~Ò2´ `*š—üî“PÊÄ/e®DÆø¡U¥2e‰ãâx «!»Ð#k2£é'ƒcÐåÛÙY¢”ÎOxlQ§wdûF†Y:Òц<áÓ‰hF‡iV?0tëNÒ©3®Œô¿ ªRsù’ègŠª=Å#Ó@¦Ó¥k¶ýLÁñ»N[TÛ —d˜`îãû]ºŽ²ÏßÖ Ž |~¬ƒôWE+8Ëê.õ ŒKñœÃ i˜~⮾™½MCÎ$Õ‰|‹ð¡ýîÚ·.ÖÃ-·:Rëûý<0`…¥µt8+±I2¤ñÝSi†ÂÔ~5õÂó[Óu–Üö'‡B([ôÆÚîé R \jY¾ ]âøÔŸÇŸ<É Œ»öè~ŠRm/ëCs6ø¼9ŽýpM¤=O“uΚñëGM×àšÆ®YÀæA6]ΪZ1‘è§sqiP´Æ%ÇOÝ XÉ4xml:¢¤ÎÝÛt³šïúQÿ(Xå|©ôøc½W¹|AËIÌj/è¬rÌO)þ¢0!ƒ®Þ©Z°«ëµúÕåµ­Öv­¶œ­R|[{:€Þ5ù«0)k×cï&ün‰ÓÛAòð.»“BCîdö˜îáöÿš|ô endstream endobj 1287 0 obj << /Length1 1177 /Length2 3288 /Length3 0 /Length 4039 /Filter /FlateDecode >> stream xÚmSy<”ëû¶e"KˆáìŒÙ†$ûØÇ–lÕ˜yå 3Ì’}I–lIÆžµT“,¥D¨l-DQJË‘Š²„,ÑwÔ9§ßé×çýã}žëºïû¹¯û¹ùXgucÉ´ ©ê(R°‡}hgÑVÝ RO_ É\#wÿH"ëX2H ° $@D&eFÂÓA"Õ™'B¢‘ñ Eðevøç“SRP:âG”\Ü”UUÕ~!(4 ø„ýÃf :B˜‹c`)hó4f K’™6c±¾8sDÝ” (ùQ©AúA¾8‰!(¾"HÕPf6kN$˜’7 Px7çg‘Añ`w§ŽëÒwšŒozë[[‡½¸¥¤VÙ¢^v‘¶Ïoo­'»;kâiIótÝ´I+‚KH8Aˆ “¼cqu½>ß,·Ò£9dçŽÌ4ñÜ’¦aw13;«—Üå÷šÞrN$‰ÆÀ—=&ß;pJJWŸ«áqxÿD½}5î³& ÚQŸs¨ç–òh\R.̺­i`EÑÚÖ4ýU¸¦Uèðð“.~혡DK^jý¬¤{¥®þ­ûmš«~­6ûn±¶«U¤”*N~Ñè‡m¼êQâãÏÊ„¿àÛ*.þð¸¶m Á(ž[²`¸¼«u@©‡OoDݘxxʧ.D6åexeq©œ8Í–ËòÕ›çË×ú5ûž¶Ž|¿ñN‹¿'rÅ“04êA2•d¿:Í!k^f²6Xç ӈб¿ŠŸçs @s9½ô?¤¼ãù…RÅ6a;ð¨_ÁA`=4$N òJ’5:“)¹‡¾Åß?Y–ß¾ö@Úµ€Åü#hêe× ÈÒ“+j29«Iûâhwõ’Ï*£«%1œÅ}Öy[ê/¥¡¿¦HÂ0†=ƒ¹4‚–zÜu›KK¸€û׃¡ú»ù†qYËM²Ër^9·ÞïCcÊÈñpôÅùd…ÔøS“¬jDžte˜x†d?Ïþ¹K_Æ1«/k~·¯Kš:|ó .BíƒØ=ÇF—]Áñ”ÝFY|¶U½r|äÒ^çïÅÕ0€:ÇÁ-Äü/Ã'$ŸiŸÞXŽï×ߣ޳Ü=‹q*}Ÿ®Åqç#†“ß³º7ùv²Dú£ëªw^‰ù®Ü¥ön ½{ñêýøe®,\G·ˆ G‚YNÆk̃RŒÜà75Š, /ñ›JÈ _~]ȧpí¸¢öqº¨ ¡ƒ´è¤”Еë cåhžÓÐbɽYí̤€àíŽG’»uf×u?7Û=bй(RœtC£z ÚÈ ¾jP×ç"Ä‚uédsl,|.ÿ…Xx¶kyØ1wŽpg~GeíÛžÖ ¶ÊîôS ²pÆ»ôƒ’Åñ)΃–ú° Ù½F±qýE˜ÜIêB‹æ¡KÉå4Y•L‹Š]ßFóPøÙ̯)æ’îo+ît*1Öglü„Ûexb-ÊöÕ9g¸ÄP í´9ƒ!…™4ô• pš}‘ñéì.°+ œóŒæ~¦ÅûGÅÙ RYã¯C¬;ô.}“e}W¾|HOècñÌ.‡ò°˜”m”äÌít3º¹ó9ôùÅGM5æm É’Ë].åÛnµ§ˆ¸ý¥°ù•—Î}þwæel}'eSŸÓbYM÷«ÀwÕ@ Ú^ä¹aòŒ}Å Æ»ï2ܸa¾ÿ¬]]ýFÕXʱ·ÔçU ¸üñª]Üâ¡u\,yyÈ++ïjuxȉ1‡ÅJ€i¬£Ü*îË@<¯×BVæ=×\_{›¾}qžad3la.ßøØöÔ¢ô.!n[šwp¥éµIF~iò'º¼On±I±Ý~#×ìô<û¶®é/Z Žþ;ݬøŒ‘Ã'#‰×ªéÖƒ¨Î¡ó`qBœZŠÇQCÜ<_Å b&»EÒëÙ ƒUí_ª±€y»À…kGn@!Ý"n­±±f¯Õ©Ulø†ý·F^XÛ©iô¥ˆ§©Ï#D„bÚžÙS pôh­Zã̄ވ}oN– !ˆÙ6œQ¨²¡¤¨âsŽºä%x ¹aû¨ã;(š§W9g£ŠftÇB‚TˆR¼RœãîÒ÷!îážÓ¬éë~ö\ļ㛳¢¨6»÷•»Ié.ãfÍ[Çã»¶­)c ½åf«s߯¨YЖ3á‹PŸš‹Ñž²ý±¹÷´p2•¤iÕ±ãTÃ<9/à«ôlTn™,nD’aZv†Ðï¶L*“¶\8ìà¹Æ‘u®Ówß-úH†„ZéqûÙᎠM> stream xÚ­veTœÛ–-îîN¡ÁÝ-Xp· Á)  w' î <¸»»[pÁ þÈ9Ý}{œ×ïO¿û£Æøö’¹æZsí=ŠŽJM“UÂÂÁ (ãvaåd㨀ìÍ\5ìU•X• À«…ŽN 4u9€¥M]€B€÷@ €4ÐÀÅàD¡H98zB@VÖ.m÷ŒÌÌ,ÿ²ü ˜yþ§ç5Ódп~¸íí`—Wˆÿu¢&p±,Av@€”ªšž¼Š,€AVE !¦v5W3;9@ d;–€Ý߀¹Øô§5g¶W, g€)ÀÙhzMz˜ÿ¸XŽ@ˆ=ÈÙùõrXALÁ.¯3pq€Àæv®¼Ú-þ"äqx°õ½‚©98»8›C@Ž.€×ªjÒ2ót±6uùSÛôê8X¾FZ8˜»þié/ß+Ì«×Åv¸=\þÔ2,@ÎŽv¦ž¯µ_Á! ¿h¸:ƒÀVÿbÀ€­L!v@gçW˜Wì?ÓùWŸ€ÿÖ½©££ç_ÙEý‹3ÐÎ’ …“뵦¹Ëkm+…ýϮȃ-œÛ-\ÿÓç„ü5 †?;ÃøJÂÔÂlç °Z¢°«8¸¼–0üïTfû÷‰üoøß"ð¿EÞÿ?qÿ©Ñ»Äÿ¿÷ùŸÐ2®vv*¦ö¯ ð÷x}dLÁ€×w øóиÚÿ_)¦ö ;ÏÿWÒ?£ßÿf+é`gñOŸ¼‹éëH$ÀV¯²p°qüm9Ë€<€j sk€¥©Ýë¼þ²kƒ-€;øªë_#°rrpüçe 2·ÿ€÷olñOú¯RýEž]CF^GJùx\ÿ T{]-OÇWnÿÑŠ²ƒÅþÀHJ:x¼Y9ù¬Ü<œ¯wï• ‡ïÿPò/ ΕM] €Ákßœuÿ¿ ÿólî`ñgm4]LÁ¯›ö_†?nsWäUà¿.ÿk×ÿyþkç@ 9ÊÒ¼ƒ¹pˆMjFšKavÿ¨´Aw''l¨cQÖ×¼€ ‡ÿÔð ÁR“ÇÊP¶Úq¡ç&ϹCǧ¦Ÿƒvo:’§¹d¾4Œ]yØ«ô-üÌ?ƒØŠÐÓŽÞGyÿšUZ‡ÓçãÐù¹9ª®aTøˆ@>Þ AúuË@ã–€G{ãˆágžRƒßŠU …S•xDŸ°{ó¦wh ¿¯ã¾k‡”9+™NØ”Ð/é*ÑÅÓrUcþ ïÆï¥=äꨯ°$ÅgQל®lY¾ÊäŸÁÞÃ\®Ë¶9WYqsi¯œ¤d%iS(­îZ¹?ý]Ö ®¡·wŽª&6êü½vlçmt ÜǡݔI~^ö*xF†OV¸Ÿ X)áŠ=xb‡¼D¹x“&¾~7óãUy3Kÿ l»ê:€’ <ÓK÷Z< Ä4CX.Ð-A:§Œ~WÛ²àJ4öÆÿcj–RŽà²ÃÙÚ Ù@*l‚ø•p\<ãîçò 3!ÂÁ‚êüǵl!ÖŠÉýedOÂqÐò<^ÚϵdÝ+«2ÖÕQÒ—…`b¶‘;h²Ù‚)%æÊgL)`)Wñ5ÇÃ;QòtuÇ&A«¼$œ#'Å„IÁº.žU‚,èM}þ@JjÎIJêÅ,[¾l5“˃2*h')gï‡Vg «hFYŸj„ i‘ÓäôZ­*‰<3âx×–­UX¼Ñ‡Ï_œîª¶Ì:À·-©#ó“Ö ™îÔø;‚8fñi qo·Ñ ²ÑjlªÝäË”¡œgCoU°p¬ÍÌŒ…4‰p4[©Ž¼±É‡i'í¤k„û›®àlyˆ.±_œ[,Ñ»Á£bK³àý‡õ(ÃgýÏWqu>™±•ë–ü²¨#¥ìÒ_ûÞVgœGZ3…?[v ²;¦” Û§^Õ\«×¯žr±j’Ü7Ó;<ð˜—û΄P-› ˜Õ`¹3» ¾Ïé&œÄoöÀŒËZì 5e4!O>)æv·!}ËT¹]&¡oìÔ\f?pÎr,òo§º–ô4æ¾ÒD Ø@Nv¯féÉ•„p?ÜWÃÎ'<½lwu¬µðc5¹1ÔIá€}I±vQ/úé€úM¬q1à̾=òçúc±Ù™ÚÎ÷º–JÙq¨¦(e!+«zf|–.뚦X8¨=xÀ)F–sÀW÷ªˆ²ªã‰ù›9ÑRÀÔYÄ ‘?¶­³¢FÍo½øl×çÅ>êˆG?ôÌÈo’Íߣª”‡‘ZÔz‘( r‹ð~AG·/àß„xn‰xÚ¤ñ~É4¤WwÊe¬Å ˜ÑwÞæ&\èœI þšJFªtdgoEˆUÝŠB½U¸õ’;^b¥k……ïöÛ™iPAËgVôí9xïýÔ«~ºWZ“{.5$Ó,D/ÿDHzBÊ>4[kÆ-–ú1ÏR@”ÞÙгíh,wº«;‹œ>üÖq)—‚éTõÿœÏ&:‘ÆwáOüQùb\ Þ÷,­-(”Ò¨…±C’wÖ¼ø>P#îé8Y›éc®¸õsœg†ê^hbœT”8åÞéãYCÑñFZyÕzð ,°‡µ×öÕv[9{-'îÂÃôÇRæ7µ,,ªã«:)n•’ŸNIÐÛvôÕPÙþ ïÖ RIT ߎ¥Ùê”)ñ™—MçÙlÐy_KùÔXI–%*r ÌgJd“‰†‹Áúò“t%¬h—üã¼"RzmÕ'þžÿã±/OHd2da"ø.0ñ×ì%ÙÈP¼l7ßz‚ÅŽâ¼&sˆô©Ó¢ÙÉwù¾àžØC¬…ý!õK·¼Þ“¨2øÒÆ÷ö¦Á¬D[–ñlY%ú”Ô¦ÍoÚUB<~}Te¸HKµ­….(ɵk<ÉQ¯v=Á/ O(¸Ïô$ñùØsI‘­ª*ÜÈ¡v’ùEØžÉxMlWï’XtΰáúÛ¬ù±šÇ±!ò·G\w¤¼<ŠkœekV}ÌÿÉ H&šŠÔíã{—Oä˜2ü‚/=`‡ÆUÀ0èdê1óFí6&?Š×ÄûGW¦sÚ<ÒõX¾?n}ínBî”îIªåŠÁðpKªé›ªëo¨t›uŒû¶¨2:f¨ þë´² £Úq‡æ‡ÓÞ©do–Þ¬Vú/øÔñì©ê¡tÅh^1ÛÃçÒ_´¨o°éðP´ƒ‚ï3ÖÔK×4Ù”®ËŽcjƒzZ‰øò¸L,úC1‰Uýøn ú´—,÷Þå(§Œ»7aÝå¬Ò7ÁàP;åGzÒ$yáOQ€iv¿–"N;Ú-Cf8I–=Ùðõ¸>9r‹Z c¼S¸ÛÑŒ?¯†ôç6‹øí0b¢ЬÙ-‰{þz^sÕvAúR/™ÍÅøLEÊZ[“)qþ¢’?­ò« [/[{“§Œ­’—»q2Ðĉ¼;ËßÐ5¯™~_¬¶¯i¹îéÖÃ*‘:ÂäÒ9UÖ†´;«Ý²á'†í˜7•xzTÒ¹*W> ‰>ñx§3_d@òóER]nß…ãÛY£½±“l¹ÎD5pÐSjGA¿ÈŸ×顾i·ë}f3ÈÎ|%¿×0”]$ˆ¿ÏG9A¾ÿãç7anÅï½5žýnÛ¾ ”Øvt¢äý*Û¢¯È %ÂÔ·¿Ûsó6Ø^8•DŒ…·9uóïKÐeûرì|š è¨P7Œµý,Ï¿eMPDôc>ùeÿñòI‘Ç1R (¬j£Á%’™&ÝͨpYùt>Öï ß A,Ö?•>'iäþNIò”-ô9E‡/ZmÓœñŧO‚›ñúè ›> [ ­"Å— ±Î07ÊoÌiî~ÅÇ!ZX¬tAÕOÈ< +c±ŒÕK[&‹2>úoͳµ{ `„ô›rª&[¯eåkR\-ùK>£-–5g±ßH1Ä…³ô¶áM£9`E’¬qíÚ!­’ÅX;bÆebÃj»“—ÎŒ~«²‡;¿;ãæ±&Ä?¼°M9öáö±ÉVî¨ß]ä“|AÿîEOÁPÊÌ„QÁvKÌv0:#˜#3ªË?‡Ä"dWÀRx› Ó"?DÝÈ tükí¥-Ûíaé`wvÚᜒN5. @öº§M¨ñ?|ÌX=†5HtA:øº˜_ß$x ab“¨½A`ÿ¡¥mœ:|âÞýüÃbø[õ@®“G ÕwÏ&(ÐÅi † ÌÕV¼Øì5)¬ÎC‰ï-y¸f?„õàßÒ΋SÙMlÒxðÙŽ í žÒ Ëš³ýýYŸd†]æ·„¦Ð`U˜ˆF‘‡Z]J‡öˆ‘½oýbJû Øn¸[׺Ӡ*¨ø•ý(¼“¯B”ÇçÌíFÞjöI*ñâë¼­è¢f£h¥ÖËÄÀ—ôôó\;EIÛ§¢,,…’riØ^¸~‚fáýL©ôÇ)lö „æöõrt ì·úäþ=w ½f…Æ %^ŸñŸQvšø4¥Â#£~[a†3ÕŽ$ÆRåºÄi¨Èµ`ûm òµIèÓõ,>„¡Ý6 vÛxÓM)pJ'æ¹kÞ¤‚»ˆhõ5ëÆr_=2=GàÖøÒ¸Y¯…Ê+ç¥!O@©ˆäÉâÑŽ…s&* ‘ ˆq¬1K=©\C%KãÑݹMÝ‘ŒqqêŸ-3gæÐÝpþ˜Y›nó ²µ:ó#¢/Z²ÖzF$ôýúÞ.T€# ¢€i`“àm¢¿y½• #:hÄKU“C\¥Ðó‡A-×WÄGa—e±ß|ßíñæ 4`L‡/ô³?é=ÄòÀ4!ØDNôú©ÐQ1Î!Å©è1O2í™Ngy±™rí Y&-ŸynvÉ©ìú…ˆNy4N‹ñàZ}YVÙ‰ÍKº©,V‰•=;ÂfÒL~~+¥,¬\– KÒv‚™|Ïç„õ0¹w§b9NøsÐ:k·âX²®`SÊ¥ü›'RÆÔJ?+kªm*rã¸IœL ¢ ÓØÀH#ëÊ%Y·õM«¡{°§C_Ieæ[ʞÇ7ûx md<Ž›ÙHŠ)‘¢Ò7-¤úöP»b`â¥æo«~\z(¦-]±¿Ôé2¼W–p†‹“ |S3Pç| +øÍx‹ iê9R£^*¶ZßyÐÓÌö1¢{¬)œl¯rÉjw8"èY…“¨ë»Í€(Ø.Ò ÿ!M©$}MÞª…éJ<«·è\¯ñ|Wᨖ¥ÍY{ÝVÛ`ò Æ5“§2eó>(㎠/qyOL†¨rš¯ÅOÌ´è&»àÀo&8Þ„î&iK‘q‡œÅ6gBSÑïc6r¹ÜT+n”v—_¯m`‘HöÙÍÂïL‰ÕK!A®Ca r7YŒ»fñÜX4&÷üŠ“ruëyÐñxW10¢yÓ F×ã#ÚX²ÄU6·ée•”ÁE…õ¡Ž®LÔüq>ôÂzØmð¥’Ö„aXž‘<çWÉaû0=èÔ¾$—Ýé§Ã'¹Íä >êøwÖ ü…úPŠbÉK‚ú‘ë'¦‹øÕHh+ †<’~C`“4FðÒLñ¾Ê5¹sZy#3æ´‚ö´ôô¤•ù±°ŠÙ滳®7ÒÛjº8ïªJj‰|JÐp¡7;3?uVeÅ?siÝqÉU¤þð„|qÞ sÎ?+ÛùN‹z8]€üt[h‹0ï‡RŽ^êA+F(oDëõ¦HŸ4¶Ãs‹ìxRÙ¤‡ø¹ QËZ?]Ù°“}ÑRš` © ëv_ÿŽ}‰ê9¥hZ4 Œ7È€ìóì–¢QÔézqT—Š%òÈUÁ ô<ÅÆý|Ø›CÊ4Ù<©†Ö å$‡+RÕ´Æ„ìR1n Ý¥ð‡XšòÊYÞNcfc{ƒœ £d=ZEZn{#Uf\/þN‚QËKSÄþ+ãpþ«MD²VÝù?îÌú¦\LZ ŠÕ`” (;æÓX³z0»=P˜Ù]¬ûòÙêe‡—L–&…–†2$ë)FHhàæ°ØVœÁ,š–7BP«s‹¿ôèæIPˆ8xúã.ÏÀžúé’dgry•(N9YæUï×ÊfõѶƒËù7rü·Èø; §ñŽX~`(+‰Îù‡\ʷ׺˜ˆø)'œô)ɰLmJ±Ü¾ÖÈ¡¥JD‚ßïÙ»6:/>‹ô+Ö&ˆ eƒzªThí[[bDÌ“½j„"s¿ùûwX6dѰդðD!JM^ðeDd¢ ž$«ñ@µsÝ9­ 0b=ÚRk•>à»Ã.D¤§L»«\Í= Â2j[fÀ¶õ¦{ðUçä0ÂÚhÓ:x¾Ú…)(;ñãüpV|ž&„}[ˆ.`uÕ–õà³/®¿,FzƱëã9 ¬”5=¬ÖYÛ€½(sAÙF6@`ÛWál¨wï­ê~kÌFÃ×`ƒ=¥D´Óˆ´|]/ßâ‚Ù{”;(ÿ…³eþ] ½ôA§d´Í¤ìÖ!ò‹‚~ÞwìÅâç(õ¬¶ ‰‹À ªºäÐîY¬jž¬Æ¹Âu··[NZ×SŸÌùÞAÞ5øÖÍ8‚Ú¨b´HE7˜‰ó úS0aÄï3o·Ù¾UGg‡ù‘ ^…¹^0­lÜÊÄhi¢¾7g ‹˜#S'Œ±$0Ä™n†@£¡¼ˆ#F“;ì¤0öeô"üo\"q3-äÙRÝG)çBç¾ÒGd²ÿpw×iãܺt!.%‚4қГX ô;¯0.Bƒ–SÞêç¶©1Q>¬±°¼ R¶½tÕ¯3ûŠóˆŸFWÔ8v½öv&Ê7œ¹«û†}$»Þs¥¯ÐÝ÷˜0ï=8Ç÷ £“Na±‰_W„vÊÆÓ£}–I*>úNvEIõoñÉ™«j×ÍC6eIså›By¶Ïæ÷Ð’‰uûoˆ)Ø:<++ͰŸnå+ƒÜâ>ù¾>uúìí0f„f…Ðh™¼´ýÂqüý{M,žáKc¤Ð[õ˜ÃT¹¹’ø_[uâ™CÊ\´{ï-šÖKRß)úl'Dç¦EÖUY+ª£GFx¹gmZz D¼oü5ÓEFÄÿdöË`ÊcA®—ƒ£ôû­™`a‚/-¢˜ÕKx=Ú¹$fÿ‡öDR{ãRL‘>v.8 ÔèÓäÊo9 +sãB\|$ôG:ïòêdCžAC¹£ü0ìF´¡ÜJ ºÇaL¶‘¯y&´âvÚGÃ镨!@_f‡–}?Ó-ÕÊn¯¸f…†h~4¬Ð‹>žéí3Èr4ómÆ&;Dë/±T; Çoql’ûÜÝÀ7ïñÛÒÄÛ„µt]h NkŒÄ~Žq„ÑÝã«|g®K” JºÆ¤4“õPwŒmŸ=鱜B³À`>ÍS·®ò<Íå8RÅvI íÒ”/€²RÈ—Ü@ 9|{~}ÑXŠúvê ä3¿–%زƒHTW {} v´Ï1Û>Àîå©þéŽ0‰ø¦QÈÊFZ]¨4ÑAÁJ0Aµ‹c~ÃÖÕø±ÀáWêø{»QÆ"í~7%`î©¶ SBm¸h þFÅ¢=íºr8ƒñè‘»{2q4áÓƒ–!JpnJu¬Aj¦–Iæ% ``¶e ­„o!̀挑I„ä üÆ"@½4‘Kä“_l>èk>ʯ ´òÉÆ ½¥ ª­®hÚŠ¬émR¨|Å1ðuŠˆ [£tø¢qaPÛ riâù7jyjž}Œ º´Ì*Î"ÑKÄÐØ£µ¦ƒÄ4 뛲7öNeà·.x;9„È{Í´3~ :¡€ u£ýZÓËK–Bqy›zzã;‚„ü‘'s{·_ši_ûߢD»»Á2 þ6Q´ôN¦ÿÄLuØ"©0)ï±Á.9‡j=Ø–Ä»µicöµ¾ ×',ñ¿uÉ„%´4?øcõ|Mî‚:NÔV’G#°ØŸ72ÑŸE……Q±MÛåì«Rr nå •¦(‰‹ù`êJ’ ñy&›šùÎ5ûF6Èe3æ®ÒÒ°‰ú$&ë¯%P>¤Ãðö¶Á,ú¤æ(HÓï`|8ñ«G¼¥m2È0޲)£µR²;t²¢ú¼|Z.A¾˜Î5/ôKnÚÄפï|c ‡>¢§áë‚´e² kœ‰ Âwâa”üÁ|¥R4©M§°>¦?º ~¢(JìEGŸçÉ­ÔÅ€®­ ð¶@ïPôT†j›mk:Ï-ýÍ#Fùݤ€|Ó8ô{5ØÀŒ6¼íÀn‚¿™s„Æ(•ŸíÊæ[ä¶óHî÷Ë·_G?°"kfN³þòß ´T£Í Ä›Œ=Ha‰-ä6uï‡Æ„³1Þêð|Û¯ío. Òs=¼JºcïǦ·”w’;{YxËÉ2\,áIxûH:?-VTëi%­Ù’!øø[=QžÔRæDˆ‡³šˆŒe¨dø;¿m©ðƒˆÐ[7l‡ Txc´ ¦]é½&+’TNaKª& Rž,CEÕ1¬\o›;+©øš’9hó¬CI¥[ 9mÕÅÈÐewnø^UÇ18úA‚Óö)jñJªd#ÿ¬S6[ˆ2xSùNký»w}o;™`ÃòVÊXÖlAö^î>ÞÔÎ>¡BHRób1« š¹ŒîykñH™Î$®A7VæG3/²ç¼BG_[ä²ÖL¹¤’Êߨk”¼ ’«UÒfzÑpAOá~7ÚIõ~#9”BÉX—b=Ï傲[ £’` ÁVÑÉÍÔ ¤Ry»#Ç­ëKCX¦þºâòÕ=»!Ía íûú³CÆ/h÷Å$‘ûïÎÐî†À*c¹µv çïjÝŽ‚ÍYéã.¿žñ”&ø¹po‡[&ÅÐ… omôÊT~FßåD3A%|ï![¢¡Ö‚ë-b~‹[Ôb¨½¿áÛ§Ù4<ƒ\¦È¯ÈÅó=‹ƒ›ÜU¹Å‘‚íJŸŸ2¾ˆ`œØÉ5[Zä›ë(gÒ­=åNp};XÙµ—˜Bjçñø _.\¬ãŇ)(ÀlRi2 HN2›[í€Ë#·bÙÇ£ýÁ¢C kÜKÃ$°x 'ÉÞ5=®5|‰œíMñVäKK¡0”`;Ü5wï ÿ*…ŒŸ(«¼72q7™«Š¢p×_8ûú㶘±×Ç>|gdc‘¡'­_‡Œ{e’ì1ÃsÌu.ä Ô º Ä©ãˆ¨Ö ð;g±©´EeËã–C ¿èפB/ýÒ=RS”³‹$Ь7û–5hø=±U®Â>‰&Ág~\€³ ó®sµ7cêeÉàÁI'ýïþõ¬“Á3lebéQ—@Á\‘Êz‘æE=ŒÆòæ Õ·ØñÔyéB„«~ü8Ð<%½ wgñ»ô ]q­O¿æpĤI¨H9Îm\7íÎÍ$-ÖbÈÃ_µüʼn3ºîG+úr]«#²¾ûŒãùDŠþyû˜E鍸ÛˆÅÜð×EHñ=a¥ ºó;#×çLD¾ˆ©ÏµÚ|+|}„•üФ –¢ùãïRÑÐÄg~Z¾è9^ 8P{+y»&Òx^ÿǤàÃˤѹil ɵz@ü˜Äþ{Öw¡‘óÍp´…»ÇšœBæ¾u›Š kYjÈ®:édª÷Ä„é¯xü|WF§°9\{²ú‚Áž|4—Jh¼¡Ø(.²áÏ,jz‡X6#›–Ýl-ên?z%QoŃЕ÷k(N¢jµY,Ÿ`õ莘¬·ž¨÷št݉—CD™çæôoìQ24åŒYô‘Ì cцópwž.Ÿ8çv÷å[õ“»Ké®;³êT7龸.5L™—^Ó.ÌñÄo„c_å(;ŒPèñ ë/ ßÈ”ø‡š»b]};ö„¡‘™ µº&BγNûÙ¬7+ÝJ?vì¸þe܇b{‡˜ 5ߣtζm)³Å™4ã¨*-xýô5Õ?áà¥[Îf¹Lo*RÛ3ÄM]ÊÇ8a°©22¿[Q˨œü“›OY–K8ƒö^bA‹"ñ}í³¥g…qš²5xY¿H¿ä$¯¨ÉTSE xÉâö‹è«¸‹ú4×Ç4ßu¸`ùõ4Ø&š’Çç"yɶIöwù¨´HFI¿ß/j²ió&V_QGuàº|,vL<4D²œÈ€UÑÊ9Õº_;Âj6ѽwæÔ“3e§QM7ÒE]¶¶AÖ8ôJ<«ˆ>çÏÊXlúODQ'Ê’>j%ɳÅâ×À‘ƒùP¾E¿,^ž£2›? Æ¨ä¾¦¥4"tŠíù˜R?ö›œ‡›(yö×úŽô&]O©}Blœ(/~G(ñÚoòœØ÷Ê%ü ä–ï†æûHŽÍaUt±Z¹i n#1Õ½[eV’:ã£Ø?—X©Q-ÂÒ íЯèð·å2R7(çæY”Œë* ³ße.,ƒ¿-¾Àx÷ÎÉu_i}­iæ¬?~áÍ•bñæÍÙ!™78Œ@žA¦bL:¿gÓf¢Ï ެ(ÚuýõÔ.EŒ±/ާšxÓ†w5GÊUÄg÷&8l\ùNª—>‘ã{jôƒ•˜= _Çè•»hå³Õ‹d˜r q\ÌåÇOPyño¨¥BoWiUˆ‡X=ã²G¶P¾•é—ëZg]«M`ч븪G,NÃgSjU 4˜­—åçÛîóÝûååÚcR‚Š‚,ûÙ4(¹,©qƒÎjuȪCÅ 6{êÅgz¢,ŸœÆËlàŠ#¨x&A ™-]ºûèþè¡G6ë_R[uû⧘ˆki:ûõ[©f&±dP‚½D͉ÌïmCCä³&>ˆq§µ`N]Ô7d+éFhh¥E¶ã"›sÓ®»)mèjÇøá;bÆgµøˆÓÜ]Ò¡ŠæVaŒàá²ÖÖE{>YÚ^F*IÝC? Þ@=û'˵âÃS»§:Q6,_ÅZï‹.Ÿ!>’;ó(ƒº¾s= rsXì$B¼wóD‹•9ê7‡‡.º‡Á|X× cfJ1Í‚®¬§2H‹0æ c:W b[X=s0ý2({Û>—ˆgà:˜9e;ż“zÁúËÈvcmé NïtW©¸…òî‘AÏʤù^º'ÿ0Ø+ÁFX{æ¹ÈqÏÄÆ‡ÔÇXàïjÂâOe›Ô»ŠNÌuÀJJh’¨¨öéÄ-– óŸ8DIãj¾Ó4/6K¾á–V§!ŠëÙ%¯f­aÅqïmüvM±£IW€÷ƒ½*™Ê_ϱ\ÅX꘎ÿUq)‘ÎüÉõ]ęӅ’¥Äöÿn“Ú‡{#¾†/×ü ؘѲt¼8°oaýσš5m²ª×YÉ«ß/ ÚÉlVÁ> stream xÚ¬·ct¥]·&Ûvv*¶mWlVPIvlÛv*NŶm›Û¶¯ž÷ísNóuÿéî{Œ{M\×\sEN¢¨B/ ´54–°µq¢gf`âÈ›[:;*ÛZËÛrËÒ+›:þÊÙáÈÉEŒ œÌmmÄ œŒyÆ@€˜±€…ÀÌÍÍ Gµµsw075sP©)kPÓÒÒý—䀡ûhþz:š›Ú(þ~¸[ÙÚYÛ8ý…ø?vT168™LÌ­Œ¢ ŠZRò’*Iy5€¤±±ƒ@ÑÙÐÊÜ kndlãhL 0±uXýû0²µšÿSš#Ã_,aG€ÀÑÎØÈü¯›±›‘±Ý?*:€±ƒµ¹£ãßo€¹#ÀÔÁÀÆéoœlæ6FVÎÀø+7±ýWBv¶-¬ÿêþ‚)Ú::99˜Û9þFU“øwžNfNÿÄv4ÿ«ØšüµÚ9ÿSÒ¿taþj ÌmNÆnNÿÄ24Íí¬ ÜÿÆþ fç`þ¯4œÍmLÿ+:€ƒ±©ÐÊØÑñ/Ì_ìºó_uþ§ê ìì¬Üÿåmû/«ÿÌÁÜÉÑØÊ„Ž™åoL#§¿±MÍmàÿ™)[3Ó¿å@g»ÿй;ü«ATÿÌ õß$ €¶6Vî ± £¼­Óߪÿ3–þß‘üÿ€âÿ'ÿ?¡÷ÿŽÜÿÎÑÿt‰ÿoïó‡–p¶²’7°þ;ÿÞ1€¿KÆÀðwÏdÿ,+‡ÿŸµ¹•ûÿÎë¿[kÿ;Ýÿ ˜”“Áß¶Û˜þ¥†‰éßBsG s7c ¢¹“‘ÀÄÀêoÏþ%W³;X™Ûÿåö_mÐ331ý7ª™¹‘¥Í?$°ÿ[elüïü¥ë_ù3ŠË ‹ª«Ðþ/ì¿ ÿ‚“ª»ÝßÜþG5r¶Àÿ<ü#"bëð¤gæàгp1ÿ½âfaóþ_„üóå œÌÝ?þÖÍÄü¯êÿÇï¿Nºÿ FÜÆÈøÏè¨8ØÿNÛ þQ9;8ü%ù_ àoÕÿqþ×Ü»Á­,ÚñY¤¦§9Õ`gMˆýèëa ¶+®W-Èó«²íöM Ûæ.ÿù^ÌÐ0ÅóÙê¾pj÷±/Ms0ÒƒeEÙl|™KàMJÝ›‡ºAÑÎI{À¨WŒ˜v¦åy5/»¡ÍÁ¤~°3¡¤¬WôE8ÕÎêsõDíGê’ç‡Aöh‡äc”R‹ÙÒ‚V“zF‘püôH90:<4Ø}Ù»O› KÎk€í“tJ’èäþÓá¾ÞèòÕ…Ó±b!£Y£ 5AÍÕÿmÑ™˜ì!f9í‚•ÈôKtIhÑ0VÆõ24>†¥ ^€ŽxLtZUZ¯¶cQêl™cõ¼N€'Õ2}™;Æþ°!rQ2•´€}óUJèûÀ|ºvÈ/àwu&.”4%-õHþiN¶Z&!!-‹š³¨GèWåR¶Á]><°ä,‘²I‹ŠÙ¡HhÁÔÆ˜NÔjW™Ë=rÖWÜPÔïÖ Äû@š7¬lh ûy¬³]ŽŸÑ&’œÞÁ±›ÈK˜x¼bÃÚ¥pTËMC q‹°Dš‹¬A“}Ðg4e²:‘®Ò„­ð¶kGâü0©{η‹5\Þñ•}Ÿ\‡}S÷K,w]Ïiµ‹¤ ·ÛƒõrqI_ˆËÉ®Ä$Ýë$ZørîiôLÅÖúS¨cWŸf·>핱–gV`h9bTE¨‘ Š®:)ЩÔ(_ê–íâ¦j¹ù(›¡4nk,K®Å+ãEÛ]) $-×ôý^W(›)VÉnbíR¢ìV먎òèâh‡Áü§È* ¢hâ¾×DC¾¾(Ðx®ü†Áj TÆÑÊÚU‚æÈ¯ú@´T_<Æ+ÐçT¾ˆí_²Ù°:êÛ¸™c±íD »ßÆ®™ ôZРœ+ 0}íÌ÷æŠÛTB⃎ÊëfÈëÜá·ˆ†Þî–f/‡hÏË·R‹"ÍýîIÕ“ÖábÀ*£·éçå¶=2“­kúnÂÎ-›ž\mJõnˆ}°ÖÈœN^ø×Í=õdªkÑ*˜Þcü»ÂHJÁq5ÒÁ¦> tb¼¾û8>p1hVaˆn¾K"ÑÆmS —=”z8¨Öü¢Áñ˜¢®°Ø*Èð¶eŸ,O¨dQcæäàÍ»^oûz}u•# tZ»í¢ÌAš¾ÉV%|¬õ(‹Øð%‰ò ü¡r_ŠjåÃñ=áþ@$ôçgôln†Jµåsœ>j]®Ò¸ U¡\yÞ¡}/Ÿf b.GN)žïHÀ_:…©±™;4Åqìp ®¹"ÖÆ –@ò¦'ûá;Û"«™‰¤th¯»üó{süáûóÈx³?ûAâW©YxLš™{;BEcTÛÕÃvX° »°(]k㥌» ÕÑja÷~ÿþ;š/Cbt’,¬EÒcÞ(B‡?"O‹àÙ˜Az$oôEG¼$WÖw5‡É}{!o >#¤\Ò6†Î)Sð˜ô&;ßwÃx²rµT‡€ëSO~)Sê~çä+Ý«¢õif³jÆ4ó;rÂ&Ùè´âAG|$·ãâTþm.£Ã·Úgo^ã?SwCU–»è‡Á~aÏf_ç'”ËÔMõ/…†¯È›ûº/Žè¯èIÅÜK#ާN‡æòð¤ØCJAFºÍ$LµíÜ RQÃŒ1ë'å–ˆ/9½±ÃÌsgױŲéZg“½H¶¾ÑH™ÎŸµÃβ7p6o€¢Ô^iêÚÇÝö)üþÅ)Ëfv¦tÃi멚Ƙù€˜šf2öG_ø© Z£ˆ!–­Ôý·G¯§ £8 ßr ÄLÄ"‹QåÁþ¹Á˺"æs::L±6>¨Çú¤Xÿƒ%ú‚Ýj—[lûºú_â…ÅÁûÅ‘lÉj¸t¤HN°L~LAÔÁ¾kV?•7OI³žïºÚ¼˜ßi"w»„½1W$fW,\îŬÔ.´*Zõœmóo‰°âã)@'|”xç=vuóó²þæu¡ÿþÎ[U+å#%kפŒ¤õª:U°ü`¦£”5œ¾VGs›•àÑ<7pãªXní =o]Ýð²Âe-Ú¨–š-ûìÙ÷©hQíŽu¿ñ_èå30bm;çYŠ_‘3}úJReÅýåÓÁ}4z‹uVB)4÷-çËéŽOy’D2•æÈa¼{6(\/ ~î(^y‘ý:Ùû§l‹D@>víR‘ñs0*ßìnk× ê™ ÈÛØå|[yÆ*ÝCÏ؇¹€ÈrÅ÷«N´D÷úLÜ/*°'˜ƒ­jå^æF‘²¡g6«24"Ò§ÝwtQÊ©/¥;‹ £f³À.ýà†þʩϠX8E0nôlSc;ì´^ÊM È°³÷œSíxßé7I… àje† áÆ®ë5ˆö‰Šx~˵“$‰,ä(¸åpÿþû.®}°Ê ·Š§$×{'#M± ºpÎa2š@:ðJé”F.uÈ⥙ª”æän§ÓÏ£ñü™0QÇ„Eˆ7{:t_ËòÏ› Dy!›„[÷ï ½Tr• v*.Y%Á÷2sqR”ƒt)ë·.u×Îmå):š{_¤ÄU^Jû Ïb.iÂmæ¼ÌÏX79‰KˆC½„`ÁûÚoŽ"^kÈKQcBVá‘Í—ô–ywÕM¹úµ ²ÖDÀR›˜>޲NHš¢«õ…byÄÕ j€ŒH`눓‚U¿¨ HJPó¦Ýk|߇ †¸zD¨Ú…·yƒ¬]…‰BrÀUÝ-t‰_¯ÇH<Ç×”&„‚=f„æç’)­ü¥ú“þœ.f.—GúoÂà%xTnn×v¢X‘ùöH.øª_Ú8<±ÝÃ…¶&Ó1„Za ÜÜ Q%[ØœL ËÔ§ýaмp·4„¨ÈS⬽ÃÓª? x$Ã9E46RÕ1îŸXV¸óº'Ëü5@Çš îÌÀ´h¸€ºŸjÖÒ±õçlã²" Õȵ¥âO&È •D‹eXŽíСi׋ÎÁÚàL›B³år–pr }ý…x³åR­8÷*oÞ0'-S3j,IßVO,gÌÞšb™} ±¼¾›ªØ ܹ L:(RÔ{|îø|ö¾Þê †Òuý²óhûQÜ ÒÄA ›9ùÆœÆkÌÇ;ôQÝŒ«YÃ_ê¤ IJ'-ñ‰LÞ5†jH{$©ŽÝøÿñÿÆÅ)·°ÊêýØ´øF½çså:„:˜|õ\pî*üi ZtˆZu:Ÿ_’âæšóäú2û˜-i`ý‰péiqý¸F…ŽÞÅDòB¦™d ÿ§&ÿ"‚Ä' ó×DKEñ”Þ“ÉXY’⺧ …öéCð“Þ­öÞÇÝ#õS2bCÔ|#`¢.&Nô‹¿Ø44¬ôý]—F7øÆ,+®ýA#JÛ˜á\…*‡ËEÀŠATÇ“@ RB‰4w89ù†è¦h¼Q• ž5oï#s{÷»Ý"hû½Ø@ÜWþþˆ/Íy¤)÷ñZ¹’rm´±lÜ–•{HÜŒLf-@{øqHˆ/-uª‡T,–×ZqBˆü š:q6º_ƒ™j,ʶhC%8£aFÀ*H)ª6ö­òt{céÄŠªÌööºãçTqòwö›ãz8ª5ÈfÌ,ݹsSÞÄ%T©x÷¨ìÏx•¼IoÐ,í¿fmVU)bïH®.ÌÅÝY†YÆG¬‘"_ÅØºwøa 8*Øæã2"µ¹1â±ä .µ$õ,SREÛfïÉfl-Ó#%ß#Ç«¹Â1E4Ÿ˜¬>.4%)ülÈEé”Û´’LùZèÂPàáƒ×¸s’pKÖ¸i¼x_Í¢‹úºjÌ£ýÖâ÷ö¨§vëуd*[-ô&âõlJP²”lZuµ"å t6Ï3Þ¦Ãß‹ï]Ï¡iû Úª‰/{´²#‘¿Ê}ðï¢öéDSDRaë׎ÏîÇÔzÙUQí­MhO{œE«Ø®˜½žú¢t¯…ÇϓѲäIvH<¼p‡²ßÃBÎ̽|*MÒ#º¼šä[øZö¥œéƒd4;]¥ëa=níX­-;£ÏÙa£ç—lÃ\C·|÷wÒA‰Ôf ˆr¡„>GÔÎçˆu6ùE™!$Òö˜‚/>ú¼QXýõÇ5\,,fP>X(¾¦žä¥ÂÎh´ðu Þj„~~üuX õì…âæ…™F±âI+qÕã”±u„Ü>äöðu÷BãP/‰Påèå=fG.ìTá'óut¦£˜Ü P“e±8?*§ù›U¨)èj—Öœë{œ³ëá𑘉:'PÒj¾Ë¹lI\wòhi C=FêC’U:‘ âÒÐ pô/„bc\³¶Iª—®j`Û³üÕ/-_S¹ÑÌâÃT¦Î^ª§šf Ñ¡¨(ò®àá+eõA‡Óú ¯Œ®þv½Ø3«*yëSx: šŒýðÑ]ì½ËÈŠï…líí‡s9;ÏRÓgë™Õâ㌊T]20¼ÙwÖŸÑq„[o› ë7Kä2½†d°-¼m8ÙúMëQý£Ö©|Z¾ŒŠí^(´‰×ZÈOtü•{â—·kLýÌ÷0©˜`U+˜¡Kó"Ò, ý÷¯Q¤/ç^]Àä™àù¸@ЇXÒ®t’ ò…(0zÂé6‘‘:êl 42™°OûmÍoOF¼™ãf÷U¡þ¹QôD³k‡£îGO»]Ü]¡5ÔÛÀÍ”tt—‹C¦¹(VB´è~à BlÊá{(Ù‘¦{]ɱébdé&å®ë²N>ýî äýÝ1C•ØÄ‰¬ÇÓbŸE1YØE,–O…íØ´Íæ°¼[[«®´‹à‹I\kºï°qOÒègJí{¡°\ª^—25ÃO*aYß±S8Ãý­  ú$Hm´íèÝ$%³ÇÁÈÕÅÄEH›í‹}i.àþ=9>NhÞä'NÒœ#½ìãw°’o”áÍ'”›¡%óåwø}U“jq“ "°„¥šÚ×kÉ!ÙÓß;>µ›í¡dÙÎ~+ü™ ú}ìX¬y:8P&"'Z~¿-·FN†¥¼›¦E|vÛØö£˜¡äÙp«0gPTÙ;©;êU‡aT¥tÓ§)ÚÀÌ7€æ #ºt0äb«¯Íx¨-TYãM7€Ì ØÚWËÿ¸ë èv–+z1Ucl ´7j—6´4–m;&{_s|pQK¬üÊÙ¥6a©ã˜sÛéÃòÇvêÛQÙñ±¾iÄp§ÝŽÐ¬æDýy¡á"Ÿ <’­TL_ŒÕ«ÔWRÅÒ@ò-³$i~, õóHaû“Àìzpºj2F„ @®ÚiK<ľ129tË©ñ“”Ä ’K©ºwÆe* ¶?œ7b¡·Ð£Èß·˜E+…. >ˆ9p4ãô ©æ–Œ E0¸«í‡ ˜H'™çåÂ\½šÊÚYÞ¾/gµKöuzòùý²¬‡ÜE%d±žõ+¹Qèø¡”89r{1ü˜ý¹õ9rÏîâÑ›RT“Tm³ž.²G®›ýÃ2µ‹:‚;m… zŠ&ÒÔA¡‰Ï^0‡¡ËJ˜ºM›ó:„„=¥RY’!å'ÙDÈ™ŠU×q Kš:b‡QËÅÔ™BNÍÁkÏŠÕ@.ÚWAÜ *V®‹Kbšaz#ª`Š]r°ÏÏL<ôÙ÷/¾ƒ-}[aμštqZTŸ£µb =˹–-:=·9„é,Uá•,ÍpÞ|[¼g(ŠÞ±-’L1\]–¶ØfQbÜ|XYó-*k¿Æàh¦g]Úbóþù€h®€·¸VÂípÑ|,›0IljkΙúÄФz_æÜ•¯£Çíi©í8ô@q†’ÒN”¬©EY½’.!»þ”e9=ûž'ÿ€5;°ÄÉ!µÂáWkð•ñ%»‰Å\¢ÃÔë';—Í×µ‰¡f‡ùÄv¤£qCUrÐ/~á§Œc±KFâì9\ Äþó¦L'ù]û€²õ¾à8­Kã8 ®šiÐìÐØa;7ös°'VøWì‹ô›zÏ‘0-~‡^ˆ'zm²"žnlàÉ„…øŽ‰´]R2÷„|¿LÁ©~çç«Õ°*|ýº=”ºîb\W&àîœQ ŠNÅQY¼äÇï*Ÿo`$í‘¥WÎïnelMø¤S{§œ’Ë⻢èÉ»¦« W…·š:êoŠƒXa2–Œ¥P„®jŠã¥ð'ÍxðÉ¥âŒxf„F·N ãß[gÏqeSâ#“PSì5½´:È+†#8 Xžü1oêNú‰Ë"€h€s–ޏµá'‰ ^š' ˆ¬ õPŽ À¨/°®JÇŸ ¢8FÔßkEëÂ?óa¦"˜u“FøÎcà‰šE˺CÂkø:Œ=|FW½J¡·Ž $ƒàgÔ}åì¼øx…t!0¾ãL qÏø-¾Ý>!o‹¿çSV›Ã0@fßI9Q>ZZÎT–Òlƒs(/tžÆõ„†Á)u²‰ÐÕfÄXMåß°²rå$µ0“‰|cªè°æFÞ¦cEà r- ;å& ¬YitþÌ}$ªƒ±s©àúj#›òÙ2ѰÑÖfl$4¿OÈ<8Òâ9™j!Ae,¢ˆQ»V»¬½p»B.ÜT èWCœ/§SB:ºŸt-ò:Ãfä,:ìIE¬Áµ’PÊ«¼¼ÿ¨xîȸâÉÅf¬á3[\zÐÚlî—ñêú Ÿm Wâšf3z“…ß©3Ê6]}xK²9³R$J¶“]>YÝL˜Y3Ê}&NÎ+ô­œUkö¬Y´+Ÿx ã´UŽ¿-'¬Qõ›;pXBéÖÅÃò™ ’ð†ˆ[VÑVAZ›³'¸¶Yˆ4"í +oÕObãlàãJ¿·¢|¨%£}€}ì^¼GɇæçÞõ’ZùÍy±AI#@ S_W̺ò|ý‘ØáèÉ-÷“u‰ê)ùófE€žLñ1„Ÿò‡_žÌn§w‚]&ÚA?ôÓHƒ+Sé4ŒÃ(Xà‹‰Œ0É!izñp—± se>Ò]Þ y‰PæË–àè¸Ût‘†žýT‡£³Ì)WûâÙ÷rdÿÅî“|—Y ¶;³ÈCz’-Š–ñ‹`º©r¥`bM€{EûÏe„0þš<¯OÞê0•B蛟²-#2$SìûBn˜’jËו‹f%¸ë¯ˆ¢®×®G 6x´°*Ët¼Ó5‘»1SaáC ÏGI EßB •’o6Kaƒ):¡¼} ~îÚ ægþDm”™¹)º Z;Htäâ.Õ‡P}Y"2:Æ6”sé¤CSnß;sê¶ J{Z©ƒÒUé£9MšŠ¦m#Úº¸â‡°Ñágy”ä-öMôøóG__¥Cª`uVmF×*1K°Ž¶>ØÚºc‚¯qS¼#Ê›?¢)3Ë”ÃÛØA­}4 Z(Ô¹Z¦¤}-Ìòó Íïq™ÏüºÅ;·æ!PUÎINS Ë>„ӥ؟ êѽL» ½LK >«ß¥>ldÀË_K|-­Ó^Ûi¢/ ¼s±–ºi–(q¡ÓØ®tžÆÐ. ÷ê°îNù¾ à#ïQõ‘é“|â’‚.Zx(í<Í,‚ec€óÛ©xYB¾( !N}9%féKZ)­Q2@{dúÀÔVÿ\{Áû²>Œ÷Ëy¨R÷ž²ªžºÐÐ:rú´Ú!=­ÅW‚,0{-Ò•+s<-ÙL4pÓE·SŠ,K–®$É­Ì©Ü÷žÈß‘û*™ì ¾Š.¤?ǽM56—ïÙ„/ í[9Çõ}H‰Á m‰ËÑî|Ê”^Û¦-º V¿ŸY°'ƒQê×… ‡2§]À$A›Ȳ ¤9un:\¹4˜C¦õ±ÆŸKÏåüg!Û!¸ÜšWFµ¨Q©ëYCV=xjxšÜkï7­¨œ»Ã]Ñ 5, Ø ñ—è*?lÿö·ò«åß¾ã:„W¿rÞ'!3ø(ý¥×ÄùßûÆY* P°õQDÝIN¸¡ûÃ7–ËcbWkÒ,ˆ›Þ$íç’YT‹&kÖzÔœžLA‚«`º;!Èwz •‚|’D;5¿Ñ¶ƒžW €2ÆÃV„Û “ìp|Ü¿´¸…¹OtÎ|Ô Ç»Ð5=Žø‰°i|ôdr¹‹6Mü°|î2kÌ#Ÿ”#ÇsÚãª*ÈžÍb$-êÓ ä —óíÚ'%¸?ƒéFÈs凬f.ø®ÈÈE#Zä•)…é´I?ÁÚÁÉ<ï œHê7Ó0á+£©¸Ó4:çûU§ÖèÔñãP è¾]­Q•ñܪԖöÉŽµ82Æý° h5"d ”™x0!¦Þ9ylæT÷Ö¡´žO´uã_y HÀ:j M_çÀ˜§€Ís?Þ›7×÷ ءǷCX“DïUŸôZ ÊI«OñJI ^Ñë $o·0[â两r:›§Øó¤©É Qöýõp‹¨f“d‹K '¦¶LhÊ×Zs£Õ²I™q«á‘¥JóH^";¨V®¨õg°erØ|%ž"ËfÀßù^¤¥/Ü×<€·Þt$L9fUS'P… ä$‘œâ†g–¡ž¿ÜÑÍ,ÜŒrû#ÕšeÍN H—qIÂþŒØ‚ úð¹²El°Ð§*—KçZ¼ØàO÷$NðA4 èü6T<ÙA…|†à?a’†@¥!³ã³šô`švíÝíÛT9»>ÁØ‚Áô¤¡–ü­ ð?nW½ï™éÛ}uãð¾]Å],¸e¬"BQV××Qä{MNAyâBÈ,ú}¿—þ©P–¡Íêv“‡®â¶“ÒA‰¶ìJɦkj2ɪÐQÒ yµ*˜‡µÜÎO’Æ‚#™ÙßXjÕ“P𭱨åH÷ÇØéœ÷C•äÖþS,úž÷>þ³³eAr8Jó¼‰>Å”fM¡kQÓÿ‚\ÂÕnÒ)^XçGdyREsµÏý@,áÖ)DvZ‹Ðgׇ*T–ñ¾rÓùµÂøï½ÍMvä½ãŽ8;Xèçn%49*ˆÁýj ç.$“¼y\(Nf³)\…à&QHª˜Múµx{£Ü¶âظ ¾¡»oôê+UÅì1nHÛsua§ÈÑ;™f—ñ˜ØÃC¶"w˜lù8n» 8òñi[k“EÈv1HçɃÓ÷>ÈÅqÓwFñ¹Ÿ’ÚíB°BÈ¡[HÛRCu@HYâERHù'ò S’^}G÷Å`uOµ#^Ž8*¶,yÚƒ9»ã$£oê©Ò1kް/ñM;…Ïܦ¨Þßû/¶Ç§ñêD ç¼,,;✼> ®–å©~çXgù¦y›ÌHÒSËEx¾ôº˜?ö•ø.Ó ¸Qžª0 la.îEñê„}—º¦EmÒÖ/ºØ×¿»lñVÐ8Òi¡•TRó¢äÆk x0æâÔô³vå­!#fï3Ë®hIeA¼2h Cj¥@áwYCϪP“O‘«åçïäX ©*Þ»ü´U}v^õŸî·>a-"õzá.Zw¾'÷[ëˆÀ@gª~ïeûåËMj²w55KnꢖviSæ&ÒàÏSÍ[N0}~™PÕ¦´íÀ{ ç¿bäö¯Ñ\‰¯ ÏÌ1ÏŽRþ}.ó ÂŒ$††r @‹"4°o?Ôµ‘DRr›f£¾0ü„å|?T dxrˆîãoi>R{ÐþpÜ»ž))ë')G àAPyܶÁÜÜ%ÚÿžÉç¸ü~ -éhÔêJx5&‚;­f—u>49GUŒ#7ø\nS¢,©?^ÆoÝ¢­Pp’¶öô2*JÍÛ HB+’.õ †ÐâÝtX `Χ'o3Mçšè7[ñîW4?WuI¾„YO¯?v“unÁ7M`¶êÛ›»¤Ã2ú{î&RðͰ#¨.•vàÉ[ìÆñIë}œ˜¥;½7æ­»ÀÏæQ^ó+(zG6ž ZgtùymVWýå$­¨ä‚&^à7SÇ1Ú‚˜vxR’E;nÇO«‚~ØTf´ ¥¸²àž÷Å~ ‘£óc (mF œ-ó“×IÈ5_©ÄD¯:ü2¶Ðpd.åæf“`â;”Ê»5"Ѥ¤ý’)åR¥~šÙúÅÐ5Zñ0J‰ê¢„O㔵˒÷©t^Z6,$>cvÕý#«¶&dŠV¹Ö+›BMT¾Ãé»öº"/^ “Ö ¹t˜œt„Làxy)DÓ‡ÓZ®Ãk2fú~? fÆËèKÔÅhºÁˆ‡ :¤¿´ÎaÅ€í3šT–K¿¢“!Bxuâq¿µ*»×ÝVÛ×f?@¯þù}úXÑÒõÉ¥«`)÷‡x(²½÷P­'äæ[;ãÒÅE¬¢BÔÊEîU‚ Ëñ^ P­qwøaÜ&ª—b¢ªÅx †‡ËdC€TĆ;·±ÿ0Ûu;¢5vhJ!˜øö½ú®¨™°¬¼‰Ý”Ü@æ¥ß§ÛáÒÈݸÃ$iÁrÏDSÚSA ø{õÝu\Û»¹eÑê~8Z1–’:Ô¶f¤âUž/iÈÑV\ç#” Ððx/,¸€Ós]kñÑ%?|Bè>‚¸{i£+F><£Aš¦íü-m$øŽˆÛK-öÀ–fÿ¡­8qGQõñ;÷×>Èh*öã.ùÏâ;™føFTRLq©è̯e µ}]˜pØ7fÆQÓž?ºáÓ\rÓÝJÖ„§F¸¦‹FC^Žàs—oNs…/ÒbyögÝ cŠÙÏØ1R¾we°¥Rþ Ÿ™ÇÍU?“®:W²E¥™;ÿ8g@<`Z›|¬a{" õs#D1çÃMæÝ„Ýý ¬ó91«Ãž‚Ì~——xÝyâoQÈ]*èuJ¨X‘ !b·ûV%TC5”ÿ6ÍÕ8…Qèò«Äù:ˆ¯ Ì$„î.»Ü¡ƒ“ª=Ô¡vvzæ~h xG^WøõsÏLn ·õ¾¸¬ɵúá–I““ˆ;w\m‰ÞÉ"€•õÜÉÙ(¬å^›Ô—[] \?tüÎe’¥"=ÿžS†a?‡H@sÙFxç]\\Ì;e¥šÖ1¬ÖûîƒèJ°`ù€QÂÇ "ÚÛ±v òµÕE®{s–íu–çaD#eLõÛ/¼¥ˆrB`p1zÒ÷SXû`a¡¯@_×µŸÉðñîÂÍP놉>¼7¿=GÑN½+˜l¨Q(ksí•É¢Û»XtÎ ëŒÊáú­Ñ ¥îm¾åÕSªkãw«mIÊÚøoƼuÎ)¥¤ìEÔÜšHµŠ6vüBú¥˜óe “SÄ÷ÆmÞØ_®h£-„Ë•€Š±ý^{ˆ¹»]'7¶uO‚1ü;\„ÿ …¹d©n¼±Hòî茢}C¿Þv»õÒ?Ú¯Š›KÏÀšV,³«]­Å‹Œ$ña:í£‘Kf ¥À— \ì[Ç¢›ãO‹å>k{ g¬õÞXí<îPÚi"†Uü>Ëßa¤?!Ø ~ Ð)( ç´êfRV˜¼WÍ­ ÔJp…w49jÊsu\]¢š +еoDšÑ8BCm6±ØÆgË—{uB9ðPe螸mUÿÅaå£0GAö`Ü?i¯Å{^’¤‘ðû~D5VÈWŠ‘JÏkêÑò‘Z]þFsš‰rÔAnkŒ~hù Ac|Æþš ÂkÅ\Ù7„ˆÅ+e)!$­@@i›·‰Nâ Cç‹÷Û¢Â"9|s\H',ÅÏUU~C„L4æ×±º˜žD%Švnð|ìPð§ùJn²›CŠ{P=Ë}»ß"øo¨t `Ã:x<¾-åìbrbÇpjb4tí.3n5—WEc\—ã^5O5üØñ X/“6‰˜ðùbÊ %=6N¾ÃÀ:ƒoMy=¢¯À¤4·iÌb²G€-g?Ù§ õlùãËšs†“&æ=Óí{ýô é–ï¶GŽð¼¼R96f´(Y^p @¼ñåQ¸,Æä?Ò›&IÞ //‘sÕù™öãüôd4VÜ@Ièû ¿£&Ã+÷ð¹À6bm|í-ÿ­ªïL¸[ÿôžnž¯ZyËØçµß2¸É8ÒX ¬€?ò:])4PN—ð“‘ܪq_)H%aü:xK‚#º ^ñú‘c“A•e6×ÃX6ãB]„ÖÇFŸ,öÈ„Ð-FeD ·‘ºÇï]‰ø­stð õõQ¶àø[¥—³ZÖ½4ùA61?Úô®U@vvC¹Cï‘é°É©š¢“5\­+Jƒ6óe^¯Jï;j¾Ý©£èÇ”XM‚¨Ãß'Bcës#q)—CÌ™MtŠupì~ŠÒRQÛg'œöÏ´é•á°³G Ü™Ã@BîÅo™ç`Gèõ·¤ŽÖ"ÝÛgYñ¾zdï2#„ @“wÊ!¡ÌIƒÝðÒ+ˆ•²!6†sd,žM ÏWÂ`l^u¢Zéhúð:€ÂR“ˆxóÉ…ÇûDð§YÌ!,0T5÷ÜéC®±:b²8”—Gçãjñ1ñsvc$”#ÜíŸÝ$EVݼ³HÚײÛsR&B1"›ÛïQìÖ%O¤gN,9¸u Ë*Q;dÛ%Ö¿Ë£ñ4ÑBÇ”G ’N 2wÕ‹áæ#(£&z¬IóÚºö¼‹f\©È~Te•ySñÌËêö gsU'±Å`pE/DØGí\:ïh¾†ˆúE^<Çý¸µDŠ\,äós'/ ͺËÕ/ç·Fí‡|ÃÔžBÒþdØáô×'½·„çl+~EùXÓíúægøt“­k§Í™O´#lt6¡°¢äA™CgjµW«p!Òêñ˜?‘ðõ²…Œ¨íbÛ»î&ª!»I·ÿHÈ>#ÿ™HÍt†qLMh8„-‹ž`NÎÓ_[ nÚ‘‹{Gÿ ÉÃožârz¤è¨0Œ¹”Ç*õ ·Ü(‚R»€Ù |EU;G Ñ D¤6Z\á1_Wµ"MhZ” H´×Ñìõxã¥x›~ƒ÷H͉¤%ÎH5¡B¦ÛYz  \à ƒíi]Is§ð¹¬ª4 0‡ ÉV"]–”Ø{Â>kùvôØÓKüÔPö_Å $ÄyÒ¯h|bÿ3·}sœæøK·‰=B-<»õ¦ÝXªÅëtc¬±æÙlÄ[Ó”Ûð%­CÞZS—)Wwæͧ‚‡Ì¸„#eRTs!ßïÆK«„©Ó·„!Èc}gíe-Typô—ÞW‚Ù4"Èë™ÂçðO}ÌLb¿K*ÁÑ Ö3ÃÏ™-ú¨côUO¨Å¿‘'ždºC©×¶Î Úáu5ܨJ½ó¸ŸòÒÿÙY›s¹Ã—T!v&k‰Ža¡T#Ü,<¢W@΢,‡­·õa¯¦@øIÇõ_ õaɆ¤ÐqÆùã"e`Ù*0d'}E+ZGÛëÑòsË]4©”fªžÂöì¾Oï,â_gâ±çðnº=Šòü¡6Ak¨ö3ÆW”?é3û¦HkI‚ʲ§Ë^¼¦6 ~å—ðî…«_VWžîDI¨Æ‘W¦O7ÌAè¥Uʬkbìi"W<«»XÝ¢¥Ïö¢ÿœ!·2Ÿ—7 pæN{÷Ž8³þ¶‰Œê¶ “YÞ™‰ u{ë]^«™Ñr¸¹ Ç\tß°IG Þãõ(Qœ,]jªÚ‰”qëÔÿ£Ó‹~Ü'Ø~A7]VhwŽ÷'ÌN'š2øƒO`Õèî ›ÜG×.ó”¥2<‰#!Lí[Ó§àgš†?õEl@1)²¿×FۆϳÖÖ!#_Å£„w‚Q(œÿõ{Ïf«c»Ô’Ò ›³Ÿ?>@ûÄíUðižÛÞ#I'q©I…à+,_^©ýÎâ|3!ùFlÜÖ7[ŠÙÖ®×óÆ÷ÒPw×±$°ä´û§.¾¾Ð¦Å7zhŠÎö÷ÁÏû?d,Úe’ä '/PýÀþOåPéAš(œPqyÐ.2<ÃÑh›ÛÖº ríšBP/8F¸¡eþ—4ZŠ•ŸM€Ý͸o‹çZ’òp\7gü21J;.ºd«ÍÆrû7ôáçä¸HSnR%'7<ˆ cC뇃±„’MýùC_i”´ÕŽx–: RWN$ߥ:ʾÂÌׯ5B Fq÷Ë¥Ò–É:ı¡üÝâUÀ¬@?ÞöªªgœNè @ò’]04öF4 ñ¢µ6S´(´ÜSÇTqµu·þ>E4,ã‹KEj•£ÃØôöñzp*šjGÞ]ÀÃijÖ©vBñˆá•lkëØ£¶‡|…dBOL'‘=- K–Wƒ1ѨŸna *«ñ èÞûq„å~Ó–i+»ÿ´WÄY”‚Dˆ+ÖÆŒ2ÓŒ ónWgÉñ©q þƒ¶¿*‚ÊwFÜ¥;hÿ §Rî…®3¸|¯èðî–Ÿ7á¸Ø¬KüRšÕ·¥šTÖPJ”Y1œ["nwÐúʤ´n*æ4ŽW”^eRÕÎ䡆­:‚Þ:ˆ™â2¤¡Æ‰Š†5Ê„´ ¾Í¨‹©Më“r–Ÿ/Q >Ä£_¥r¶÷%*Οï𣋯I°(¤,Þx7-Ö^ð·@㪜Ž!åÔ– GáÆ@I/XB"âÞpRñûó,÷Ö!JH*¸†œ•4ÜpˆÑÍ¡Þã¢á²|otG-)¯ŽbòÓÓ¬ZºÉ !‘ž „×¶*s¾áƒF^0‰PÏàRÀG‚Þ :¥˜Ë™ñ¹&÷@×ê³£ 9eÉJ£½ÛN=£qä¹Ëì¦{j{¾Äþ ~øáfÓÃd¢o†›ÂBÔøŽ EEÇ-ŽüëÕ®ÚÕÄ댧„nðÕ-%wÙ™€Çæ±£yÅîЉU. ÃJè|ÛÑÞ‡{D=jëÞrIf‘RÞ嘤ü¼šx ‹DÖX¨cý$*Ÿ+Œ[ša¢¿Ëd_Ý!÷¿w-PÕÿÊzc Üóá×Üù c£$sb[ºbJz׈ja©‹ûôÇx@R×€°otɘÛ Æ‚«|T·æèºÏ‹Bkåg’Îvý‚U\"\ÝeŒË¹†­ð%®|­GgÚþ ¸7+ýDsÁ}4rv~Á…QÎJù~Èöú&rœ±cÑhEñ[°²:éÈ]u­FQ¡¹¬½ëfKb&{WŠ!ƒFå•?±]ÿ»/¥NTT!b^¾*M@y¦ŸÖ»’U‰:ÂMÔ“IØyCtŒ¤°&zØx&!i QP½Ý!û ¦“Cñ\¨D’ŽÚçÿ ú ö³ác(ç~¶·Œ°ÈýLW²m÷Í ¤êkì«&Ñ+ËIv,»rí¦š¤M¡áéƒ^- ¡$ :X8 >.¬ŠÃžk%°Žùïsƒ„‘£3è©ß“bT*o„´»I©rô²iP} ;Á?¶è]°«ú2“h•–## ÅÚíœÀWð0K6Ãb.GrDDô ÏÐ~5;uÜÓp^õÉ…P¼ÜT'ðW#iE4ûhqª[ö0Åé5nS©øÞ"1SÛ57: ÚATôv0®êË’‚C8´p'.’$¡†¼SÈBZ|AZë'ÔsÄ>Nò ®0ISÕÚ¸€ùæÁ­®²òÜ%ô¦†@³ôõf÷Ó°kÿÙçdrÄË”òÖ^+lTÈþàfWö/PvÂý3\‹q¤šGT8$œ®[ÉNÜîÓàWy^̬?Wv&8›Óã’Ï*©G:y2‘¢} ¿Ê3Æ£¨“õÚW¼i÷Ûö*JùãDU.ìPþqН%{’BbÊ«Ûÿ‡º,$@Š”Y¡±P•‚×5S¦e²°ž[$¶èUãCuG·!XÜÀŽ *éòú^r+ºÓR QÖ—vÁeÅëbÔ2Ü΂LDm’ë5ä¤ÇUG[1èg˜nöÿW¿]l£Œå³vnó`„ÇskÈ]­&à š%§ë8ýÛ„/Øc;†Db7‘Zõ„)”Å<†&Kî5x±Þ;cû/U±4XêP¢7+ž×èmžƒUr»p0ÌøG"s³šÃ-Ø]”Š!À^•»š}¥Ï'ÇÚcF'ô6 ÝgÖµ ü˜nñüWy)ÌKe–ô("Þ©d_Ô–›¿¶™¤`ó*ç|È|ì ¶XA_ÀkÁi(¤­™:=½µ–ÖÀ26LJ7Õ¬iàÂ0P)kk× î#¦íÞÓ^»F(Ö²X’ËFö·;4‚ú5’&úÇÒ«¤N•ò÷rÞP'úê"d­œz·N¥÷sq$!ŸŠ%¥Ô‰Is)\3Ô€\»õ!›n…oýýF u#_¸‚IJ¦b¸Ã³ Eyª¯íͺkx÷žFsøåõ[´ÓšTù‡=x2òà D>æqÁˆlV:/8îY¤íHm[‹Þ­ÿEd½}¬1³éîú6L•ŸÒ£z:?|*¶†—}íIJãU2/DQ#–é)-ýÅÉýĦnn7ž¢/f°½R!–!½ê<ÆžlŧˆTeÎbúžœ¢Ç’ˆx¼²›Èëó@×5åùJ ìNȦÛeMª0¯ŒdÂ&ûŠ-–þÚ/Rp×Íþ#Õ÷€„‚|MãH3§iã¿v†\Ñu¥]í¤Œ2zþ\‘ÑÇ•î…ïaû\ʳth*†[Š[.0ëX÷¶§3¼M‡µÓšÍ¯g š¥8ÁˆäìD>ù¹ <ðh(­#qþþ³Õ4í[©2r$|®µ|Å·éÀµçÃòrŠït‰zÙrºìS—AAÄàh/W÷¶WáWÈÏõ_ÃUO'MªÎgèúNGˆÉí“ÇΫ@)æöɈBE9@… ëPÿfT£@ìîʤ'Q¡$fÏO…s@ët÷Y?,ÈÏÚ”‘0v‰¿LT6´»Û¾‘ŽÊÿÄ ÀQõ¸#¨=7ô’õ’rt1ûjM‘î„4Ζõ½/}iÊÔJÍL¦îesÏ"Ôq/ sgÏÙ 2?“½6(µ†‘’A²u}B¡jQûÁ/Ks 45F0Hp¡a3¤,ÃS g$‹ô…ôÂ^šð<λ෕mwµ‡ËcºŠÆÛäåðÁcs«D}ûd…ûðå €PénÝèý›_­$Í“´ »M÷¸øažF®¦Q·`ôöd–l˜Û8ëj¿+ryÞ8MI‘LØÐÕ›/áõ3ð¿¼×¼³­ÝY„Lÿ#ðP>­Ú/spì€5M0§l¯´âO9·nH2œSžJ7e´=´ÕyBz.Oà–Ãû6&¾‡4²r$~Ñ)¡Úöغ€M¼GÀ}³C›ÜBø …YÅúÄÁš‹!èŠÓ <åiW|€(;wãßþ5Ã%c‹à;Øès,BÈFÂ$S.Sm÷PÌöÏÊxÇ„·EÌ×A55ßPÛy@°ÑN)™b³»\¢RcïŒ 0°“Q³%Þ¯ ìØÍP\†Ü?Ýü%¸(> UÙcß?—Q”zZ=–ßqHÌ€!UEh#"ð W!êmlƒ¥ J.žH © °Æ:Cö®/ÛÕqIÿb±òݹEC‘åa¾õ¸:ÃiÁ­»›aîP‡E±ù „ R|ã*F‘Q|é C0d± xÖì™wýˆo5£¦'£Á­¯mIu…ú‚Ž6rñ¥6º×3¹°‹ÈÄSHD,MÖ“ºu¿vš‰j–ö×µ’ŸùÙ1Mc…r#0–{p§]X’³1±çãÅ´Æ|‘ˆmUºVHá#wäÇPÕ¤|ÇOlšäÙAT5¾YÌÓíßÉ—õV‰¢ßK: m_€¼%—k)Çδu`Õ®œ^δ±à0Æ(„À½–)†tŽ@o [o¡À ?Ø·ð=mRÒ" çÏrù~¿ U¿w}n” º>wȶö<бšùa?F+¼hˆé-ðã…‡£œe¿ß#Ø,ËTIÐwE¼97„^׳›=»ÚÖQ4ºd1«D6/PÍŒ’Áƒ?ݲyΈ ½g±.)ˆ…EÒ(¨÷—ÝS4¥¨Ü°í?|¡|åh) ”³À:تtöUæ$a¿Ç܆åÀ¸Éb”†tNšÛ^#Ú?à t·°MÊ;N3K×xüßL!µžŠCŸLx¶YïØ33ÁÌWt> stream xÚí[ÙrÛF}×Wô£]SBï[•+U’mÙNäe¼'.?P$1¦H™¤y¾~Îí@![Áp^R ŒÑè{úܵTB0Á¤’I­¨¡˜r†šéè©a˜Õ©eÎ¥>Žù˜úx•£F`RØÔ;2)£Ø‘J Rã7‰Á¥~Û©…^Ñh#KÃIËd 4Št }I¨ôL)›F LéF‰LY ]”³^)É”4 UQÒ(®…!iÊ0-IS–iM€kch<å™¶>P+0í ¸R‘é`4d`î Д–ÌHšªUFê§53ÚÓxÚ0c§-3N“\í˜ñžäjÏL©_`VèÔ/2+ÍCcš‡‘ÌMýŒeÖ:’k³N¦»žY/h–˜–õšZÏzG¨,úA¨@Z„Àb”`$d@6$-X !=Qb’ë 7&¹P±†0Ãlô$0lLü9Ϝ鷀–"ž½@ËúÂãúâ`Ôb:NDŒ í9 ä:h4 žˆ‡$¸ tÃ`ðäd>I Ýé€f’8˜ŸŒé ϼM ¬ Ý Ò*¢ x£4 ì"ªHý`?ÑE¢ˆæ/Db®„”¨Èuð EdIÔËäd¡ÐÐã †HÖO²ÙJØY²ü›TЉK>M 2•#ÝŠN­{°4„0Gða¤`†ô¯ÉP| wÒ†ƒ4X. LiKÿJò íLÜyð`‡¿ý~Q2¾7™L;üÍåÑ"]Ž&_vøþtv\Î>‘ß‹Ïü)Æ~’éb‡¿.‡ ö ø P‹‰°c’Pxrs í<ºí±Ãø“éÛ)ãØ½‹ÁiYHŸýòËþ¼öP$ [_È2œ/ŒT\œ.™¦1…¥äMÉŒ¬-Œí B™~A$çת°$ÜÛÂ:hÃh0ÓÁ„²ý@¸ÆŒSŒ† PD. …- kÜf Úõkä®"ädŠ,BFð";,¢O„Á/£+ùT¥E:ß«žk»TÒbåRÉ•ÐnŸ›9·±WmükŒmNZZLcâ›Ú8ÓÇ KMÔ=Rh™¨¬„æÝÖa“°Úüu&ÿÅTÓKÛns µ¹Ô²n3úx¤¡Ï›Æ€ku´e¤0 wõúÆìZ^OXé[˜Z¥N_›™Ë~5›ç®M´>×<·ƒEÁE}¯>?­çÞ6?¤É嚀êìGå|8],¦³\w¿œãÎÏ>îíüëÅèüèrþ|:9Ü}]ž^¢Çxp:g&wÝߟ^±O»R±]úÈÁ^‚L öù°Dï”ÝáOËÑéÙ‚^Ýa!Pæ{»ÒàêÙb0 ÷&§ã’ ,Nåù{,1vøÇ꣆8̨ž¿Ç÷øCþˆ?æüIZ¬<ç/øKþŠ¿æoø[þžä>˜G£Åh|\¢‰Êt4ÿÂøÑl0,ÇåÉ"·f4zj~)ÍÏhçC>œžŸø1/yÂOøÉè[ÉO¦—3~ÊÏøÙ÷‹³rÂGü ós>á“Ѥä“Ëó£r6Nø”Oñÿ` ‘$¤Vÿ¦Çü+ÿz9]”ÇGc>ãs>/ÏGÃéx:á ¾8C½ÍMù%¿DM=›§³’ãñ+þÿç~VÁÁÌIåÓJhuÁ·Y¹Þî¿|v¸®Ü—GãÑÍ v2+ØÃ;ÿ†‚a(Šõ-*&å&å’bPà0)ãd©QEü$Mü-Ö¹ºZç)ÈŸáéñ«½ƒ/+žÞ ÀÓþt|¼Á ¼f»´ ¥°àóqÉA›¥tÙ°¤ä&7m?°Z­’´¿æ ‡k¾ð.yÃï-ê–v\™òø6kþNv;ºê²Øì5èŸÑÓ§~=[o¦Ë–I++cü|Ý“[ûùô#ül0/Óöùæ~%ä¯ËÉ øÁh6_Ï1 W?T’ê³£ãÅÙ<Æž:×v’?*¿1Ìtë,A¯Të­Z¨ÚU/7Ö~×À™upØB/Ø6ÖC×°¹ulfU³² Îõ®³¨¸0¬t¶2Ÿí_Wú_‡¯y†‰+ü‰6>Óáu¤ákøT§íÙõú‚÷jpZΑz§—”Èwp=£´MΑŸÿmtŒ|_ÈÈ$Ÿ©44rédi,/µ>ßit)ªñu~õ']SæJ^糎wB”Ñ×çüj±Zœ°JûL§?'»£mCæFØŠ£<¨±™,ã«ß£½»+Lf^å™X“i¢?©Hç˜Ëúº›ú,= RiÛé,ÔY«ß­ù)!fEH¥Ú+Kg_ Í늬úàÎB|5¸¯ ÂW›ÕLÃOZ׊Pqb>G‘…E“ VVãߘ‰*+AÒg¹*W‘BV åªÆíóÑ›EISù"ý9[vþü>?÷_l^< endstream endobj 1296 0 obj << /Type /ObjStm /N 100 /First 1039 /Length 4784 /Filter /FlateDecode >> stream xÚ\io$ÇÍþ¾¿¢?Zf·.Öñ" Õ±X :œ/‚@–f×h%a42ÿúY}U»Úlš,òyHë˜ÖJt#©‚i¤ø~p?ØÐhiðƒm´Ge«c,~ (T×Xáñƒi¬âÙ8‡ÊÆ7^£rðM0?„ø?t¦ET0ðSüÕE+ñSôÒ'Ý(¥ ~2‹Ôø å!:Ð"¢‘Aà3×hã~òvÑOü#<ú¢1‘h)cêIÕ¯P/¡Ñ[¤J¡7 ˜à£ipŽô  øÉ7V²ëŽP¢±ÄM«H[Ô‹Žh«tã|’šÆKBª ñÆËèCÙÆ;Œ¦Ž‘ôÁ¡å-HÌ„V!M!z-š` zÓ² Þ¢M РŽöB1—`hPü]8‹\0"ùÊZüJCÐQ$- +=A1X£ ƒÕ@ÙÓ”Gˆ!)‡îµ* ½!iÑ®!ã” ƒá€@ºhÆK XëHǪ‘FK¬=c€FÄÆRÜžñCôRØè ¢7ÐD+y ©¨ €@1‹5+­ôˆÏFoÖf£qkÉB¬ni=°Ñ›8BÛèÍ)¯£·8b­ RˆÆSd7zsQkôóŒ¹ÀÂóšJÃécáǨå=…ÏEo>XÒÞBŒ;~ÄY¨(o.j#Ñ…s45ÐepT®X•Á£ g§B mü()P1yJPzµSJ€@o>Î)áhRŨDÄðá¯ýðéö¿¯ÛæÓÕý·íÛ‡O'/ïχFÛñÁ~?RƒÍõ‡O?íßšÿ Œ¿a]ÐOløS·?!Îüiúׇ¿ýmΉr³N¬¥_ã,JÞ|ÄN^…In¥³dßêsjzשí•Ã.ßO»gy¾Û¿R#8÷ôk"×ïGïO[œ "‰Qµ90síƒýö÷ÁòÄ‚u# 0±Ði-XÍZ0# jÁB‹w³ýÏ!µyΠ B¨—d‚´ MnP°adP/”™ÁðÔ 3; †³`Â`Á¸™JèHµº]Íu»š³ãš[ÙÎÕæþû6Öô§/«›ÃýþpÔ¤)÷Ãúts¼:>9[]]Ÿ¯ÿñ'ÇW7Ghi,¾¸¸üûêns|s³þ²9;í”»Véärs{¼ÞÜ”ÆÚù3Õ»8ý±Sð’Søy½¹»éUlšƒŸ.vßw‡ —ùÿšF ×Ü\n2b„ãôâòêl³:»¾¾¼np³1(¬£™_2yÛ‘:ùæ—ã‹õéêâlóåvð1üÏÚ“‰qè7—L<½ŸÆ¢ÆjÖ›«»Í?O.OÏrP.Œ@]_ÞmNo¯×W«_ή×çÿœàÇè&ªm¾D¯W{ã’¸¹;99»éR—Ê‘ìîæ,9ի㛓õzu}wqÖ+š¨«u_ºšË+ZÆãñù~õõéþÛšíRÛ?üø}ûý×íþ ëÂŒ„ûTÏŸ ºm³o~ØÜ]\´0À´àêZ…˜£ËÏg?·2_Vþ3¤àA*3™ÂŽ\ç™ð¾åÜÇîóñi,ë«»ÛNC¨©ÆúËêòîv¤¢¦F.c՜ǎÒ)˜© Q$´FhÆL”}´©òÐ&¤}2¤*ti½zþïÃËãvõv¸?¼G‰³Š• c½j{ÉæçõézõùòöÇÕÅêxsºº>î ÀjÅk÷s:føÇõçõmß}­.º@OéÏ›)Â2y±º=Ž¥Õ9 38/ÎŽcG8^_ÄFs›sü€HnÞϘ'8$«Ø‰/ĵHÊi$ëQøSfk‘íkªÕeÙœ_ÉJÜ(”ÊÅÈB#f½±àµ«<Ü]ûÏtþAz'?_wS0ó‘œg½`·ÊÍùO'«óXxC¡,"Ôê¹”|ãâ˜Uà4Æ6¬á4Êlº2Q—?µBcM%X%/ÎH-2± ÏãðIå”ÀgfbY<·——«¬ Õç»óó³Þ¦.‹cˆÄĪ`TÚ\þ}ÓÁí“XjÆeãf}¹ék­>Žü¬­2ЇýîùÛë~ûºzÝ¿|Ý=mcºD‘Bحźۺͩ ˃…0«úvؾ’5WWYs³Žß¹*"Ådÿ‰ÐŒp8S²ÂõHwûâìù¿XòÃý¯)ì3¢Õöiû=ž‘Ðz¨«Œ ¹Š¡e“µÑˆ‘sÕîŒo/N™~-eWó$O‡‡N&Ìh,ÓÅe¿F…Ø‹âÁ®‹No‡Q¾ þb|Á=)d®Õà:ßÖ߮ѷOT$¡½¿i ~#J5HÚº“gCA„²³N‘1ÃJ6S•1$&îÇÂnÓóðÛýëa»ÿËG‰g„É3‹²g¤¦òG ë»`3l4° E{ÜÕ·^¾¿¾<ÇÁ¸[m—…¯»oïûíG‰HLÛSv/Ï¿Ç9Úvxúx;ì·ûý š Ìã¯÷ûèôÐÅcJ !™S@Ï5÷ÛÃûþ9•ÆÈûáeuÿö°Û­Ì.ä%94íg´:°*Dš—ä.l‘¾2U;|DÆÊânÿ’«xDlxIŽØÙ­ÁE`]<¡ à%¹‹`Ù °|ª¦âò”v9´÷çÝ Õ‹šæÐͼ•‘/«g´þ Ê±óÒÌ›*¿óÍÍ+ÐÛSr¦O$ܼ4'¡TEsp§ôœÕ®Ÿ—NÜ…¹˜ñ<M.Æ DÌ,_š!a^š1¾¢9r7cð‰ÜI!æÅ¹?€¥ÀåDM.î)gÒ«vÏÛÿĵ¥û uÑÿ²9j ­•§Ý¯Ñæ ÿûºßn?þF»Ž9áÇÇíÛÃ~÷zؽ<£búŽ F8¸`± [ª}~@Ý·?n÷»'ZĬœÃûrøm»'J¡ª’YSSÕ{ Kw™—=žD8N§Ç}ûOQœ5X‰ØýL´„ç0vêv)Œt°¡l‹×½ "Ã=ÏcäçtÆ12• Ý×TX› ÐTq0åMà¶òÆÍJAäùÚ^sbÌÉò@90sz£`9P3ÁšgXµ80Fy0éæÀ¶s“¦2Õ%@æ!~ëOT>=™ìci@mͼæ(„ÚΆ°ÊyÁî\ yõÁ¬žL®L¿ ¦¶zAg°genïðôˆq F—óc•Qä‚13‘["9gr.h½ÑL›ÌǤ؆)˜Ž¾ìþÛái÷vˆÀã n%±V"pÓ Y‘Äm€˜‰Ê,‹ÒJˆ\Ca¶,‡e`EKDZ"À»"ž®¢™9»žk9n‰ –ã€"–»¢õ›•ÄòSxX×,?E— nŸ?bÆ-ðS1KÆñxb–Œg³¤b– _ÀsQÌH6`*f [ÊãVPÖ "ÖrÜÁ€–Ù\h< V³À¦BÇ,åGÅ,“¬H£h!µ·ÀOÇ,g¨1K§nñ&ˆ‡ê°Wó£<ŠØ´ë€ßæé:AÄZŽ[ hðn8ŸF O¶žLÌ’ãI…W¸lY"6–ÆàÖa!%½8l‰^L’sl©™˜$Ø©dîOØL»C~TÀã›uÀû¢…ù‡P‹a ô æÈ;vº€D›#Px¿ÉÕ¸­eã—Z6}xÏaëük9n‰ Å+ 6ÜàèÔΓ÷$ãÙ”ñ+Åû/60Và¨òΤ„[\àhi¢Ù9cq­À–¢Õt’cIZCg@Þ&V£ä÷ÖÒVi¡Ó âràMG¦y·ž.ÀÙ\Ú@Ë=[h2°Áñx1ÇÒx÷eº£rÇïù¿Qˆ»ü.@ÊÀ  ÝŠ*‡(c8 îû pËI J¸ša,UYÑ5êi# bÅI#hN‚a¬ÈÏhÏÚKtúVÈÖx•ÄpT•˜!³Ö—¾Õá2i“„!æ’„I‹'‰b(‡$©&ÌÄÂ1•ê° ¤Juè¶ö%6U…¢’6ZT8©)%T¥”¾gÓeܡц“àÎ['Á·¶œOGÚq<•¯’(‹QUb LNTúÞ3p$f'AbVr$f˹ªhv_MX™±¥Ù¾—œC„ïY(t Òœá{&Ë&Á÷œ„„1BYŒª3?Î!Â’“ üÀP¦V"p<ì0MHQijÄe1ªJÌ&‡Ì|¡ÞÊr£'Á™bòBý´â$hMë1[dÌ/e,$‡ ÈzN‚ðuà$x4e^h"I#ö]£j´Ât†éV4‹¤ÑŒ7ìÙÌž‚æd¶[›dvšš90븦ý @­õ´iP•ím€ó‡Q#¡̮¦v L7Ô´hÓ 5-`k%˜P£ªÄ¨‚cR›§9 ]i0‰ÔÉšç$d­,[M}B­Íë¢ÍÓ¨*1j²Àôc’º¡eöWÚ' }šÞ6”¹¤´H Œ›†­mzuÑ —/ʉdöØ”Éì…HÈ-'Á1É24Al`­”ÔÖäbå2KGC-À‰²%jŽÉ•¡à˜Í°¡à˜,Ú7:ÅúAJÖxÊbT•m:*ç¡©ê˜åÕPspZp¤¬%'AÊÌ’lh5qÕ%9¡,FU‰QÙ;fÛk¨î³í5ÔÓ) 5ÇtÊ(Ab8 sµùeгª*ç8‡˜K¦iê`Žk4Á]N‚ĸii‰X¨*ÊbT•˜%b…O·¨LƨSzn&Q§ôÌ&ÅP§ôÌ¥‚¡Íš‡j)Ú‚XXh‰TU’Y™©¨$SnTS’©6*)ÉPõNr$åj«L«–öQ@ ØsØeBâ8 !) Ôk (É¡z\†¢oÀRßê9àõ€à“ H_ö ‰'…œˆ®“…âDt›\Oš-¸¹…Í/ø “ߢñœ(¡ar’AæB2( '"ƒì—Ø9ÖbXD2û\Jœd¶¹”7Éô{jÝ’i÷V$ÆÌªnEb¬k{"iv©…X‘¢Åì ,mâ¢Hs" ÃM¶<'J'"¦6ßlÑHìÒÌÊÄ9­Ût*˜-ˆM7¨‚¹z³éUXÖ ùbŽ›6Ý£Šêy3a-†U饻Áìô­n9xND˜~nÓ­‚`”MGÁ\ÁÙtˆÕ;¸„µV¥—Î1‚¹„³é$#˜©…ö ˉèjœiQ6-÷’iQ6-øí»CsôŠóŒ]Z lj)’ibÖµ"ˉˆsر©³sWÿQD˜MšM}[Ö;KÙZüÂ"nSÓ—\kIM_r­Å' \kñ4‹$sÕEôm&s×oÓ*"mí+a-†Õè¥ 1ÛaÊbN©”Å,Ö”Å,Õ”Ť“à*Y+H7MØÒý)åD1§^ʈb¾¢È*Œá1É!ùpŒ€|Ô¾vñÓ ¸ùõýþééå/¸Û¨½ÞÛ¦{íñïøÂ_·oNOŠËÆ ‡n?–ž øPìá;—½R* ð]=‘¡übRŒŸà—O]wJOð…<•ÂéºoVÓ|®|'ª÷ÚkñÀpo?½YÆ }yaÇOèû€l^v'xýg= K J3¨ðº×‚/ÄY9&ŽïÁY•=Á«T†ß§Òcì´¦ Žz%¾Ðf͘8¾Çf3âøúš…Ì%^”Ùl^Ùlàß-zíµf€at¸˜ðý3'ÇŒ¯93Ž)¾mæ2Ø}õ8ùør˜+/”{§½ _ ó"ó€—áÂ×Å|–G|KÌw»¶ôð-ÆØñ­.øúB¯½Ö 0‡9¾ðÌx®á{^!ë¸Ù± ¾ëÂÐ>IY˜;Ôx`^Ò†-ó›ö$6ZU†…–Å,ô2•4|»€~b‚›ƒG/ð@æ%Ð?ð3FŒ~ý8묱¾¶“÷uÊrï³SâQíbõlívøUWö`‡Í{üä÷Øæ:ü‡b°äú¨ÓƒìÁüÌÜÜqê%ʤÒÿå”w™«?й͞L¼‡\8êþ ’x2ä²'¹¡òV~ Çóÿí[c£¿‡îyŽ §2Pì;T÷¯ =nñö.ÉJróB°”³¿Ü«(¹Ot Ý†½×Ø>w@+É€:x¥Þ S¾C ØÙÄI9>uS—ÿÿ€4 endstream endobj 1429 0 obj << /Producer (pdfTeX-1.40.21) /Author()/Title(GNU Libidn API Reference Manual)/Subject()/Creator(DBLaTeX-0.3.12)/Keywords() /CreationDate (D:20210722155202+02'00') /ModDate (D:20210722155202+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) kpathsea version 6.3.2) >> endobj 1387 0 obj << /Type /ObjStm /N 42 /First 414 /Length 1877 /Filter /FlateDecode >> stream xÚYßoÛ6~Ï_ÁÇöA¶ø›ŠmSlÁº$H²§¢[I…:²!ÉÃÖ¿~GÚgK$%»{ .ÇãÝ÷}<‘´D¹Q$'”C¥Î°DP†Í‰¦nÈ‚;§ÂY þpí,N¨’ÆY0`•›i%aœº«S&¿KžsgwUÀ²„+- yN Sî, U XŒ!ý('BÃX‚+„³$‘”û8E$Sö,M¤ Üù ‘RgY"•¶`iô¤en.€T¹p™aš¢Òe‚Š)í,I7~†"JX5¨&Jå~Ô¥©Ÿk tÕXN”eÌY”èÜ©!à_M­CÀ8ÑÌ &˜ ÚK-©Ë€´b®Ó`Yï3DÃä‹wï.æ7ÅkÙ’/o6ÛúßÅzYfm×”M³nfMÙm›º}ëba ïÉ1f[ÕøßùÛrÑUëzFgô-¬Bèdà¡“ƒS†NN×/÷_/柫ת;l0õëÅåå€ÒqPB^Sà4{gõ£Ì£ή©ê—MSnÜL:3Q9¿Jøg›¢ú]Ù>×h›¨ñ©1™AäA! ~xt:50„wXÀaÌ1{‚úâ[¹øžý €†“N‡ *J-ï±³òM©4œtÈ+™ˆñ®kˆƒõw{ÑÈà†MÒ«deTµ‹Ö/ÎÈÐpy8k„ßdÊ)½¾—ÍSÙ¬[ÿ¬°Þax‘Æ]¶Z/ŠU øŠ¦-¨°åOÇô4ƒ}q$¶[gÛîÙ¸Eb'b‚µ²*öXŸ—oJÂ`Ö•ÊcV5Lßï/JŽf5䪋¶­^êréV&?36X&::m˜ÇüfUTîA×SÝ8F=N4% ÇOÚ¦Y?W«ÒA²cƒÃ$ÖŒÆ[/[O×Äùèh°ÃMÉ<•pJ®ø@”4~6¶‹Vdõó÷4HóZ¬à¬s|Ì9Cj‰]+5çˆ&qBú ÇgÙLG ëK3!mêvp:锼ƒ9GR2nºm]¹­¬Ï‹ Rc'“öð¸]Db‘õ9C$jj»LKòù'õNLíõÒi@³Û|ÜÉÀOÄ ¨ÂýTxo —£±N'ötDÐÊù”ÊSBœ“ÿ¤Ê8§×Õtý®Eq*hÈ’ŸŽïuu¬ß?¯w¬-ñ¤Ô|:d¸ë3yJãH†³2O©ë'5e»Þ6‹j‘FÝ G›óp¾¿{ˆ@ðý†DC¡¡Ñ0hD×°ðçìñý‡ÏŸvÅ×ñxóý“•«òµ¬»Ùkùú4XTÄCQŠP”€r43®aÁC!ò¦ZÖ…»Ží¢ª‚/†"P¢W‹!TýjûaU=Á(ü8fvömö¼­ýËʆ¼òfÈ›áZ1„ï¥#uþZ–]Q­<’¶[UmzÍè,c,93äÌ‘3Çåá“GàQM)ãšIr$É‘$Çµàˆ‹ÛéšRíjÖ[׳ŒÚK $%”@RµKÈDIÌÏÜëùÃ̺ d$‘@F•–JÒ©‚6¬(R%ò‘ÈG"‰2K%õDA1ãA=›,ˆ|$òQÈG¡È A)>QP†Už*¨B> ù(Y!(e' Bþ€¢JvFB i$¤Qe¨ôT×hOqS¼”P9®ƒ<4òÐÈC£¸±˜¨Yvis,`ãa„m¶A1 ‚0&Y :ëKË¡"ⶈۢ†ÁXcÅÿøžqòeB±ÈÐ"C‹2ãùÌñ|yþó/nN^â÷HžùÏ|‘s4Ä™7åшÀã]àñ.ðxÇÒþ“ëΠùÔeãäŽïÂýgÚ½TðìÅß«¦÷ðäÓˆ_Iü×ݽlðœ a1vòiWcÇqâ-H_®8ÓUÙB”ÿp óÐûøï¦$óEW¬Ö/ó;x¬Zw9ôÉ/æ·[¥Þ¹ôε»ûÏÎþ7åõ²œÿÙ–§rÕ¾{7¿Ù¾¶_r0æÍå¥ðÆÕååW€0¿Ý”õ{I qýœ ¢ô endstream endobj 1430 0 obj << /Type /XRef /Index [0 1431] /Size 1431 /W [1 3 1] /Root 1428 0 R /Info 1429 0 R /ID [<634A8F02270AFE3CA7C288F4C6D1CBAB> <634A8F02270AFE3CA7C288F4C6D1CBAB>] /Length 3138 /Filter /FlateDecode >> stream xÚ%ØY¨%Û]àZûôéyžçyžçyî>=ÏóÜ»»½hØ‚‚/ 1J‘‚ ÁJ^ó*A_!¾$ \¥„¢WY"а$º¿^>jŸ½N ë÷«µ÷®ªªªÿTÕ JÕÞÏ+[ “©ªÄË&0mPMëŸà¥—31}<îG1n†7^à)žùÛlÌÁ\ÌÃ|,ÀB,ÂRÌJÕ´ŸÆ®c‰½<·µ§ÇgXÿcÐ]T›Æ/'š£ã!ÃÃ8oÈr¬Â²T͘»Z•8‰5©ZÒŰ:U3+^®ÅzlÂflÁVlÃvìÀNìÂnìÁ^ìÃ~ÀAÂaÁQÃq\ÀE\ÂeœÃÆT-œ§v§pgSµò_+“ƒoØŠÿ½‡wcZ³ÛºòÖùµÞNá.†²žfð<ÅùT­ºG» ƒ×p7qËÙº;¸ëomÝÇâ“3¸Uåvàhg0žºûߎ7t·mU´UÑv#T UV#Úi©:úãø7n¸ÕÝVw[em—@‹ÛeÐÄVëZulWc Ô¬]ç\bÏÖjX«a­†µÖJº= ÓÔJ¿Ý0¾€Gqú×ê_«z­êµª×ª^«z­êµª×j]«u­ÖµZתTë†hÝ8­¶JØ*R«W­û·O+žö N§êrg 9­ª´ZÒjI{ªÒÞ‚–´ZÒ*f« ­‚´ Ò*H« ­àÛ^´­hÛ·fhæc"£§©ºy3Î Š.ýVð­àÛOÆÅR–ÁO`Ó131 ³Sõ¿ÿ±‹°k07UϾï.ÁR,à ¬Äjõ~mk#Ö¦êõâ?"ä ØŽM©z÷:ÞØŒ-ØŠm±òbGª><ˆ!;± »±G°/U¿ôk1d?à á0Žá8.âhª~ùÏâ?Nà$,¥Õy\Àe\ÁULá®ãnânãîâîãâã žâžã^"…˜º7ˆÌßá=b•ú€mí:jÑÖ¢­E[Oƒ|kùÖò­å[Ë·ž9˜ •ªUª–o‹Ñ¥Tþ#ö¬fµ Ô*P˼–y-óÚòU ¾^)sç\Ë·–e½ò¨U›ìÚšS›ì$³ƒçM08²e¡dydsšÍU_ù`j¼ð|뻕­XuØ‹x„¡Å¹0®3®Ûݨ×B‡êñÇÝWÅ¥jg½j[;«Z1k¬u²VÛZkM¬5±ÞU©÷¦êwÿ2v¥‰uH k%¬BkM¬]`mѯãSü,ÎÁE×JX›ˆúÔ±VÂZ k%¬•°VÂZ k%¬•°6aµÖ‘‡ÕzU_MÕ×Ñí¬µ³ÖÎZ1kŬ³6ÙµbÖŠY¿4qöšXkb­‰µ&ÖšXkb¶ç¬‰y5¢%¯SõùòxC;³vfÅÌŠ™3+fV̬˜Y1³bfÌú—­CY ³æ%©úëïÅN-7yüÅæO~/Õ1«cVå,ä,Õ,ÕlAÉ«Rõíÿ‰Ázš%…œ56K:K:K:K:K:K:ïÑηOr¶<äñôÝm±SmÏ‚Ï2ÏzŸM]||vdÁgÁg7D–~–~Ž=Ç ø,ø|Å!ã^~–~–~–~¶Zä©T}ÿ›qÊ•!+CÖƒ,î,î,̳̳̳¸³¸³u(ëK~+øHæMªþâXì^² dÈÒÏŸŒ‹[2a€ Lb:f`fªòg1nÜœSó°ã¿iãÝùðµvjc –b–c%Va5Ö`-Öc6b6›Äs¶¶a;vàakª~ü0Î`'va7öÀâ1µq ‡Sõw¿XŒŽØý;[gpJiòxH‡º§ÐN_:Ÿ2tQ-é,tï]åО+$ °‹±ñ™ü!¥9kbÜ4Lb30³0s0ó0?¥“߈ÿÝŽmX•X†…)­¾C–bVc3–§´qg¼»k±ë±›°[RÚúY ÞŠØ=Ø‹}Ø8ˆC8Œ#8Šø¥>…])íx;=†ã8‰S8ƒ³8‡ó¸€‹¸„˸‚«x€È÷­1W7p·pwpp-¥}_ÄiÜÃ}<Ä#<Æ<Å3¼ÀK¼Âk¼Á;¼ÇPì¾|Á²å@Z4jш»‘~#ýFnÍ|ƒ?¦tä¯b°²6ÑhD£F4ÑÌKéùwbœ)n”«YÒÅß‹¿-ÄrèF£4zо|#øFðà·F#ýFUš-|£fÂ5*ÐèF³ ÊÐ(C£ 24ÊÐ(C£ 24bl–¦te{œŸn4Òo¤ßœ€ 4*ÐÄó=hô ÑƒFsá5¾ˆ ]G±«b†Š ,N¼Øiq´¢å“Á³g¯C5Rm¤ÚHº¹ÒÍ©85åj”«Q®æt·Q©F¥•jTªQ©F}õi²Ñ¡æ‘CÆ4)f£9æ4šS$]@Y›')=øý8¸J5*Õ¨T£RU¥‰J}„6E*ŠT©(RQ¤¢4E_о})sRúÚ¬˜+µ(ŠY³(M±FYÑ–q¯Þÿs ÖÉ¢CE‡Šú”˜võ)êSÔ§¨OQŸ¢>EsŠæÍ)šS¶»+>š’8Ò¥)JS”¦(MQš¢4EiŠ(ÊΔ~%Ë¢4EÛ‹¥hNÑœ¢9EsŠæÍ)šS4§X<Šà‹à‹T‹6ÑÑÑÑÑA•JE‚åJJ¿þÛq‚/‚/êX¤_¤__,E¥ŠÅ£¨YQ³"Õb*¢-¢-V‹ábxÀ9Œx^¤ô›ÿ’y‰Yó„o˜0À<€Nb:ƒ¯Cº‡/ñ ¯ñ±T½ƒïÈû"UØÇÃ[Ñö¢íEÛdzuÑö¢íãaºh{ÑöV³^¾½|{ùöòí`!A¯úxp.î^ܽ¸{q÷ñÜB¾}<µr/ä^Ƚ{!÷Bî…ÜÇ -é·B¾}ÜØBîwbüZ^Lé[?‰kÛÿðØg>¹0N\ðý~/ãb¤ßô2.0†ö2.:ÊpÔ˘ˆø>yܢèOz¦ýi/cu£—`¿%•¡W†^zeèã™ùÍ”¾s/NòVJ?›ˆ­Ûi0klÝIƒ³Ócën¼ìbë^|åßcë~|¾(¶8n…„A|ùÃx9¹˜‡ùX€…X„ÅX‚¥X†åX•X…ÕXƒµX‡õØ€Ø„ÍØ‚­Ø†íØØ…ÝØƒˆg"™ˆP!ò8‚ˆâ"…ˆN!æþ ÎâÎã.â.ã ®b ×p7p·pwp÷p1ãññOñ Ïñ/ñ ¯ñoñï1Ä|ÄøUiðs_ &GR ÐÑ4Lb:f`&fa6æ@ð#Á?üHð#Á?üHð#Á?üHð#Á?üHð#Á?üHð#Á?üHð#Á?üHð£]ið¿_VibúœêÿÐôÌD endstream endobj startxref 198155 %%EOF libidn-1.38/doc/reference/libidn-docs.xml0000644000000000000000000000733214075574705015234 00000000000000 ]> GNU Libidn API Reference Manual for GNU Libidn &version;. The latest version of this documentation can be found on-line at https://www.gnu.org/software/libidn/reference/. GNU Libidn API Reference Manual GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries. The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included. The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call. The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing. Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included. Also included is a command line tool, several self tests, code examples, and more. The internal layout of the library, and how your application interact with the various parts of the library, are shown in .
Components of Libidn
API Index Index of deprecated API
libidn-1.38/doc/components.fig0000644000000000000000000000553614053001337013223 00000000000000#FIG 3.2 Landscape Center Metric A4 100.00 Single -2 1200 2 6 3285 1845 4680 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 4669 2295 4669 1845 3295 1845 3295 2295 4669 2295 4 0 0 50 -1 16 11 0.0000 4 165 765 3600 2107 Nameprep\001 -6 6 2610 1845 3195 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 3186 2295 3186 1845 2618 1845 2618 2295 3186 2295 4 0 0 50 -1 16 11 0.0000 4 120 405 2700 2130 iSCSI\001 -6 6 1935 1845 2520 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 2512 2295 2512 1845 1943 1845 1943 2295 2512 2295 4 0 0 50 -1 16 11 0.0000 4 120 405 2025 2130 SASL\001 -6 6 1260 1845 1845 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 1837 2295 1837 1845 1268 1845 1268 2295 1837 2295 4 0 0 50 -1 16 11 0.0000 4 120 450 1327 2130 XMPP\001 -6 6 810 4545 6795 5175 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 6795 5159 810 5159 810 4560 6795 4560 6795 5159 4 0 0 50 -1 18 11 0.0000 4 150 1305 3150 4905 GNU IDN Library\001 -6 6 4005 2835 5850 3510 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 5850 3508 5850 2837 4005 2837 4005 3508 5850 3508 4 0 0 50 -1 16 10 0.0000 4 105 360 4751 3227 IDNA\001 -6 6 4050 900 5580 1440 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 5580 1398 5580 900 4050 900 4050 1398 5580 1398 4 0 0 50 -1 16 11 0.0000 4 150 705 4455 1215 Punycode\001 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2880 1398 2880 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 3690 1395 3690 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2880 2298 2880 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2160 2298 2160 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 1530 2298 1530 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 1035 1398 1035 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 1530 1398 1530 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2205 1398 2205 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 3555 2298 3555 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 4905 3506 4905 4573 2 4 2 1 0 7 50 -1 -1 3.000 0 0 4 0 0 5 6795 6419 810 6419 810 5820 6795 5820 6795 6419 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2 1 0 1.00 60.00 120.00 1 0 1.00 60.00 120.00 3735 5175 3735 5805 2 4 0 1 0 7 50 -1 -1 0.000 0 0 5 0 0 5 3916 1398 3916 900 765 900 765 1398 3916 1398 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 4365 2277 4365 2835 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 4860 1395 4860 2863 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 6795 1395 6795 900 5670 900 5670 1395 6795 1395 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 6165 1398 6165 4573 4 0 0 50 -1 16 11 0.0000 4 165 765 3345 6157 Application\001 4 0 0 50 -1 16 11 0.0000 4 165 765 1935 1215 StringPrep\001 4 0 0 50 -1 16 11 0.0000 4 120 315 6075 1170 TLD\001 libidn-1.38/doc/cyclo/0000755000000000000000000000000014076274121011537 500000000000000libidn-1.38/doc/cyclo/Makefile.in0000644000000000000000000014676514076273731013555 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2008-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/cyclo ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = cyclo-$(PACKAGE).html vcurl = "http://git.savannah.gnu.org/gitweb/?p=$(PACKAGE).git;a=blob;f=lib/%FILENAME%;hb=HEAD" all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/cyclo/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/cyclo/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile cyclo-$(PACKAGE).html: $(top_srcdir)/.version $(AM_V_GEN)(cd ${top_srcdir}/lib && \ $(PMCCABE) *.[ch] \ | sort -nr \ | LANG=C $(AWK) -f ${abs_top_srcdir}/build-aux/pmccabe2html \ -v lang=html -v name="$(PACKAGE_STRING)" \ -v vcurl=$(vcurl) \ -v url="http://www.gnu.org/software/$(PACKAGE)/" \ -v css=${abs_top_srcdir}/build-aux/pmccabe.css) \ > tmp && \ mv tmp $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/doc/cyclo/cyclo-libidn.html0000644000000000000000000020315714076273771014737 00000000000000 Cyclomatic Complexity report for GNU Libidn 1.38 Back to GNU Libidn 1.38 Homepage

GNU Libidn 1.38 Cyclomatic Complexity Report

Report generated at: Thu Jul 22 15:51:53 CEST 2021

Summary
Total number of functions 72
Number of low risk functions 61
Number of moderate risk functions 6
Number of high risk functions 5
Number of untestable functions 0

Details for all functions
  Cyclomatic Complexity Risk Evaluation
  0 - 10 Simple module, without much risk
  11 - 20 More complex module, moderate risk
  21 - 50 Complex module, high risk
  greater than 50 Untestable module, very high risk

Function Name Modified Cyclo Number of
Statements
Number of
Lines
Source File
idna_to_ascii_4i 37 96 199 idna.c
stringprep_4i 30 77 149 stringprep.c
_g_utf8_normalize_wc 30 76 135 nfkc.c
punycode_decode 26 66 106 punycode.c
punycode_encode 25 59 114 punycode.c
idna_to_ascii_4z 15 46 85 idna.c
tld_get_4 14 24 37 tld.c
idna_to_unicode_internal 12 48 119 idna.c
combine 12 21 54 nfkc.c
g_utf8_to_ucs4_fast 11 38 75 nfkc.c
_tld_checkchar 11 15 28 tld.c
  find_decomposition 10 21 41 nfkc.c
  combine_hangul 10 12 27 nfkc.c
  g_ucs4_to_utf8 9 26 41 nfkc.c
  stringprep_profile 9 25 39 stringprep.c
  g_unichar_to_utf8 8 28 51 nfkc.c
  idna_to_unicode_4z4z 7 38 64 idna.c
  stringprep 7 32 55 stringprep.c
  g_unicode_canonical_ordering 7 24 36 nfkc.c
  pr29_4 7 15 27 pr29.c
  tld_get_table 5 9 14 tld.c
  stringprep_apply_table_to_string 5 17 33 stringprep.c
  tld_check_4t 5 13 24 tld.c
  tld_default_table 4 8 16 tld.c
  decode_digit 4 4 6 punycode.c
  tld_check_4 4 13 28 tld.c
  idna_to_unicode_44i 4 12 24 idna.c
  stringprep_find_string_in_table 4 10 22 stringprep.c
  decompose_hangul 4 10 21 nfkc.c
  first_column 4 10 12 pr29.c
  adapt 3 9 16 punycode.c
  stringprep_4zi_1 3 8 18 stringprep.c
  combinationclass 3 7 11 pr29.c
  in_last_column_row 3 7 11 pr29.c
  stringprep_utf8_nfkc_normalize 3 7 15 nfkc.c
  stringprep_utf8_to_ucs4 3 7 15 nfkc.c
  tld_check_4z 3 6 14 tld.c
  stringprep_4zi 3 6 12 stringprep.c
  tld_check_4tz 3 6 13 tld.c
  tld_get_4z 3 6 13 tld.c
  _compare_table_element 3 5 10 stringprep.c
  stringprep_check_version 3 3 8 version.c
  tld_get_z 3 14 22 tld.c
  tld_check_8z 3 11 21 tld.c
  idna_to_unicode_8zlz 3 10 18 idna.c
  idna_to_unicode_8z8z 3 10 18 idna.c
  tld_check_lz 3 10 20 tld.c
  tld_strerror 2 18 40 strerror-tld.c
  punycode_strerror 2 14 32 strerror-punycode.c
  pr29_strerror 2 12 28 strerror-pr29.c
  idna_to_unicode_8z4z 2 9 16 idna.c
  idna_to_ascii_8z 2 9 18 idna.c
  idna_to_unicode_lzlz 2 8 15 idna.c
  idna_to_ascii_lz 2 8 16 idna.c
  g_utf8_get_char 2 8 14 nfkc.c
  pr29_8z 2 8 16 pr29.c
  stringprep_ucs4_nfkc_normalize 2 8 15 nfkc.c
  g_utf8_normalize 2 6 13 nfkc.c
  g_utf8_strlen 2 6 15 nfkc.c
  pr29_4z 2 6 10 pr29.c
  stringprep_find_character_in_table 2 3 37 stringprep.c
  encode_basic 2 2 6 punycode.c
  stringprep_strerror 2 32 68 strerror-stringprep.c
  idna_strerror 2 30 64 strerror-idna.c
  stringprep_unichar_to_utf8 1 1 5 nfkc.c
  stringprep_utf8_to_unichar 1 1 5 nfkc.c
  idn_free 1 1 5 idn-free.c
  stringprep_utf8_to_locale 1 1 5 toutf8.c
  stringprep_locale_to_utf8 1 1 5 toutf8.c
  stringprep_convert 1 1 16 toutf8.c
  encode_digit 1 1 7 punycode.c
  stringprep_ucs4_to_utf8 1 1 7 nfkc.c

Copyright (c) 2007, 2008 Free Software Foundation, Inc. libidn-1.38/doc/cyclo/Makefile.am0000644000000000000000000000241514076272665013530 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2008-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . EXTRA_DIST = cyclo-$(PACKAGE).html vcurl = "http://git.savannah.gnu.org/gitweb/?p=$(PACKAGE).git;a=blob;f=lib/%FILENAME%;hb=HEAD" cyclo-$(PACKAGE).html: $(top_srcdir)/.version $(AM_V_GEN)(cd ${top_srcdir}/lib && \ $(PMCCABE) *.[ch] \ | sort -nr \ | LANG=C $(AWK) -f ${abs_top_srcdir}/build-aux/pmccabe2html \ -v lang=html -v name="$(PACKAGE_STRING)" \ -v vcurl=$(vcurl) \ -v url="http://www.gnu.org/software/$(PACKAGE)/" \ -v css=${abs_top_srcdir}/build-aux/pmccabe.css) \ > tmp && \ mv tmp $@ libidn-1.38/doc/texi/0000755000000000000000000000000014076274121011377 500000000000000libidn-1.38/doc/texi/tld_check_4tz.texi0000644000000000000000000000155214076273767014755 00000000000000@subheading tld_check_4tz @anchor{tld_check_4tz} @deftypefun {int} {tld_check_4tz} (const uint32_t * @var{in}, size_t * @var{errpos}, const Tld_table * @var{tld}) @var{in}: Zero terminated array of unicode code points to process. @var{errpos}: Position of offending character is returned here. @var{tld}: A @code{Tld_table} data structure representing the restrictions for which the input should be tested. Test each of the code points in @code{in} for whether or not they are allowed by the data structure in @code{tld} , return the position of the first character for which this is not the case in @code{errpos} . Return value: Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.38/doc/texi/tld_check_lz.texi0000644000000000000000000000247414076273767014665 00000000000000@subheading tld_check_lz @anchor{tld_check_lz} @deftypefun {int} {tld_check_lz} (const char * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated string in the current locales encoding to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides} , the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL} , only the built-in information is used. The position of the first offending character is returned in @code{errpos} . Note that the error position refers to the decoded character offset rather than the byte position in the string. Return value: Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all characters are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.38/doc/texi/idna_to_unicode_8z8z.texi0000644000000000000000000000124614076273764016257 00000000000000@subheading idna_to_unicode_8z8z @anchor{idna_to_unicode_8z8z} @deftypefun {int} {idna_to_unicode_8z8z} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output UTF-8 string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/pr29_8z.texi0000644000000000000000000000117314076273766013447 00000000000000@subheading pr29_8z @anchor{pr29_8z} @deftypefun {int} {pr29_8z} (const char * @var{in}) @var{in}: zero terminated input UTF-8 string. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or @code{PR29_STRINGPREP_ERROR} if there was a problem converting the string from UTF-8 to UCS-4. @end deftypefun libidn-1.38/doc/texi/idna_to_ascii_8z.texi0000644000000000000000000000116714076273764015441 00000000000000@subheading idna_to_ascii_8z @anchor{idna_to_ascii_8z} @deftypefun {int} {idna_to_ascii_8z} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input UTF-8 string. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/stringprep_utf8_nfkc_normalize.texi0000644000000000000000000000211314076273765020450 00000000000000@subheading stringprep_utf8_nfkc_normalize @anchor{stringprep_utf8_nfkc_normalize} @deftypefun {char *} {stringprep_utf8_nfkc_normalize} (const char * @var{str}, ssize_t @var{len}) @var{str}: a UTF-8 encoded string. @var{len}: length of @code{str} , in bytes, or -1 if @code{str} is nul-terminated. Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. Return value: a newly allocated string, that is the NFKC normalized form of @code{str} . @end deftypefun libidn-1.38/doc/texi/stringprep_locale_to_utf8.texi0000644000000000000000000000063714076273770017415 00000000000000@subheading stringprep_locale_to_utf8 @anchor{stringprep_locale_to_utf8} @deftypefun {char *} {stringprep_locale_to_utf8} (const char * @var{str}) @var{str}: input zero terminated string. Convert string encoded in the locale's character set into UTF-8 by using @code{stringprep_convert()} . Return value: Returns newly allocated zero-terminated string which is @code{str} transcoded into UTF-8. @end deftypefun libidn-1.38/doc/texi/stringprep_utf8_to_ucs4.texi0000644000000000000000000000140214076273765017027 00000000000000@subheading stringprep_utf8_to_ucs4 @anchor{stringprep_utf8_to_ucs4} @deftypefun {uint32_t *} {stringprep_utf8_to_ucs4} (const char * @var{str}, ssize_t @var{len}, size_t * @var{items_written}) @var{str}: a UTF-8 encoded string @var{len}: the maximum length of @code{str} to use. If @code{len} < 0, then the string is nul-terminated. @var{items_written}: location to store the number of characters in the result, or @code{NULL} . Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4. The function now performs error checking to verify that the input is valid UTF-8 (before it was documented to not do error checking). Return value: a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller. @end deftypefun libidn-1.38/doc/texi/stringprep_check_version.texi0000644000000000000000000000124614076273770017325 00000000000000@subheading stringprep_check_version @anchor{stringprep_check_version} @deftypefun {const char *} {stringprep_check_version} (const char * @var{req_version}) @var{req_version}: Required version number, or NULL. Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See @code{STRINGPREP_VERSION} for a suitable @code{req_version} string. Return value: Version string of run-time library, or NULL if the run-time library does not meet the required version number. @end deftypefun libidn-1.38/doc/texi/punycode_decode.texi0000644000000000000000000000404114076273766015360 00000000000000@subheading punycode_decode @anchor{punycode_decode} @deftypefun {int} {punycode_decode} (size_t @var{input_length}, const char [] @var{input}, size_t * @var{output_length}, punycode_uint [] @var{output}, unsigned char [] @var{case_flags}) @var{input_length}: The number of ASCII code points in the @code{input} array. @var{input}: An array of ASCII code points (0..7F). @var{output_length}: The caller passes in the maximum number of code points that it can receive into the @code{output} array (which is also the maximum number of flags that it can receive into the @code{case_flags} array, if @code{case_flags} is not a @code{NULL} pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied @code{output_length} is greater than that. @var{output}: An array of code points like the input argument of @code{punycode_encode()} (see above). @var{case_flags}: A @code{NULL} pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the @code{output} array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Converts Punycode to a sequence of code points (presumed to be Unicode code points). Return value: The return value can be any of the @code{Punycode_status} values defined above. If not @code{PUNYCODE_SUCCESS} , then @code{output_length} , @code{output} , and @code{case_flags} might contain garbage. @end deftypefun libidn-1.38/doc/texi/stringprep_utf8_to_unichar.texi0000644000000000000000000000115314076273765017605 00000000000000@subheading stringprep_utf8_to_unichar @anchor{stringprep_utf8_to_unichar} @deftypefun {uint32_t} {stringprep_utf8_to_unichar} (const char * @var{p}) @var{p}: a pointer to Unicode character encoded as UTF-8 Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If @code{p} does not point to a valid UTF-8 encoded character, results are undefined. Return value: the resulting character. Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If @code{p} does not point to a valid UTF-8 encoded character, results are undefined. Return value: the resulting character. @end deftypefun libidn-1.38/doc/texi/stringprep_utf8_to_locale.texi0000644000000000000000000000066414076273770017415 00000000000000@subheading stringprep_utf8_to_locale @anchor{stringprep_utf8_to_locale} @deftypefun {char *} {stringprep_utf8_to_locale} (const char * @var{str}) @var{str}: input zero terminated string. Convert string encoded in UTF-8 into the locale's character set by using @code{stringprep_convert()} . Return value: Returns newly allocated zero-terminated string which is @code{str} transcoded into the locale's character set. @end deftypefun libidn-1.38/doc/texi/stringprep_4zi.texi0000644000000000000000000000235214076273766015215 00000000000000@subheading stringprep_4zi @anchor{stringprep_4zi} @deftypefun {int} {stringprep_4zi} (uint32_t * @var{ucs4}, size_t @var{maxucs4len}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{ucs4}: input/output array with zero terminated string to prepare. @var{maxucs4len}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. @end deftypefun libidn-1.38/doc/texi/punycode_strerror.texi0000644000000000000000000000150114076273770016010 00000000000000@subheading punycode_strerror @anchor{punycode_strerror} @deftypefun {const char *} {punycode_strerror} (Punycode_status @var{rc}) @var{rc}: an @code{Punycode_status} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{PUNYCODE_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{PUNYCODE_BAD_INPUT:} Input is invalid. @strong{PUNYCODE_BIG_OUTPUT:} Output would exceed the space provided. @strong{PUNYCODE_OVERFLOW:} Input needs wider integers to process. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc} . @end deftypefun libidn-1.38/doc/texi/tld_strerror.texi0000644000000000000000000000156114076273771014754 00000000000000@subheading tld_strerror @anchor{tld_strerror} @deftypefun {const char *} {tld_strerror} (Tld_rc @var{rc}) @var{rc}: tld return code Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{TLD_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{TLD_INVALID:} Invalid character found. @strong{TLD_NODATA:} No input data was provided. @strong{TLD_MALLOC_ERROR:} Error during memory allocation. @strong{TLD_ICONV_ERROR:} Character encoding conversion error. @strong{TLD_NO_TLD:} No top-level domain found in domain string. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc} . @end deftypefun libidn-1.38/doc/texi/tld_get_table.texi0000644000000000000000000000143014076273766015017 00000000000000@subheading tld_get_table @anchor{tld_get_table} @deftypefun {const Tld_table *} {tld_get_table} (const char * @var{tld}, const Tld_table ** @var{tables}) @var{tld}: TLD name (e.g. "com") as zero terminated ASCII byte string. @var{tables}: Zero terminated array of @code{Tld_table} info-structures for TLDs. Get the TLD table for a named TLD by searching through the given TLD table array. Return value: Return structure corresponding to TLD @code{tld} by going thru @code{tables} , or return @code{NULL} if no such structure is found. Get the TLD table for a named TLD by searching through the given TLD table array. Return value: Return structure corresponding to TLD @code{tld} by going thru @code{tables} , or return @code{NULL} if no such structure is found. @end deftypefun libidn-1.38/doc/texi/idna_to_ascii_4i.texi0000644000000000000000000000310214076273764015403 00000000000000@subheading idna_to_ascii_4i @anchor{idna_to_ascii_4i} @deftypefun {int} {idna_to_ascii_4i} (const uint32_t * @var{in}, size_t @var{inlen}, char * @var{out}, int @var{flags}) @var{in}: input array with unicode code points. @var{inlen}: length of input array with unicode code points. @var{out}: output zero terminated string that must have room for at least 63 characters plus the terminating zero. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. Return value: Returns 0 on success, or an @code{Idna_rc} error code. @end deftypefun libidn-1.38/doc/texi/stringprep_unichar_to_utf8.texi0000644000000000000000000000072214076273765017606 00000000000000@subheading stringprep_unichar_to_utf8 @anchor{stringprep_unichar_to_utf8} @deftypefun {int} {stringprep_unichar_to_utf8} (uint32_t @var{c}, char * @var{outbuf}) @var{c}: a ISO10646 character code @var{outbuf}: output buffer, must have at least 6 bytes of space. If @code{NULL} , the length will be computed and returned and nothing will be written to @code{outbuf} . Converts a single character to UTF-8. Return value: number of bytes written. @end deftypefun libidn-1.38/doc/texi/stringprep_locale_charset.texi0000644000000000000000000000217114076273767017457 00000000000000@subheading stringprep_locale_charset @anchor{stringprep_locale_charset} @deftypefun {const char *} {stringprep_locale_charset} ( @var{void}) Enumerated return codes of the TLD checking functions. The value 0 is guaranteed to always correspond to success. @strong{:} Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything. Note that this function return the application's locale's preferred charset (or thread's locale's preferred charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. Return value: Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. @end deftypefun libidn-1.38/doc/texi/pr29_4.texi0000644000000000000000000000115114076273765013244 00000000000000@subheading pr29_4 @anchor{pr29_4} @deftypefun {int} {pr29_4} (const uint32_t * @var{in}, size_t @var{len}) @var{in}: input array with unicode code points. @var{len}: length of input array with unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). @end deftypefun libidn-1.38/doc/texi/idna_to_unicode_lzlz.texi0000644000000000000000000000145314076273765016430 00000000000000@subheading idna_to_unicode_lzlz @anchor{idna_to_unicode_lzlz} @deftypefun {int} {idna_to_unicode_lzlz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated string encoded in the current locale's character set. @var{output}: pointer to newly allocated output string encoded in the current locale's character set. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/tld_get_4.texi0000644000000000000000000000104714076273767014100 00000000000000@subheading tld_get_4 @anchor{tld_get_4} @deftypefun {int} {tld_get_4} (const uint32_t * @var{in}, size_t @var{inlen}, char ** @var{out}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out} . Return value: Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun libidn-1.38/doc/texi/idna_strerror.texi0000644000000000000000000000316014076273770015100 00000000000000@subheading idna_strerror @anchor{idna_strerror} @deftypefun {const char *} {idna_strerror} (Idna_rc @var{rc}) @var{rc}: an @code{Idna_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{IDNA_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{IDNA_STRINGPREP_ERROR:} Error during string preparation. @strong{IDNA_PUNYCODE_ERROR:} Error during punycode operation. @strong{IDNA_CONTAINS_NON_LDH:} For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. @strong{IDNA_CONTAINS_MINUS:} For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). @strong{IDNA_INVALID_LENGTH:} The final output string is not within the (inclusive) range 1 to 63 characters. @strong{IDNA_NO_ACE_PREFIX:} The string does not contain the ACE prefix (for ToUnicode). @strong{IDNA_ROUNDTRIP_VERIFY_ERROR:} The ToASCII operation on output string does not equal the input. @strong{IDNA_CONTAINS_ACE_PREFIX:} The input contains the ACE prefix (for ToASCII). @strong{IDNA_ICONV_ERROR:} Character encoding conversion error. @strong{IDNA_MALLOC_ERROR:} Could not allocate buffer (this is typically a fatal error). @strong{IDNA_DLOPEN_ERROR:} Could not dlopen the libcidn DSO (only used internally in libc). Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc} . @end deftypefun libidn-1.38/doc/texi/tld_get_4z.texi0000644000000000000000000000072414076273767014273 00000000000000@subheading tld_get_4z @anchor{tld_get_4z} @deftypefun {int} {tld_get_4z} (const uint32_t * @var{in}, char ** @var{out}) @var{in}: Zero terminated array of unicode code points to process. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out} . Return value: Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun libidn-1.38/doc/texi/tld_check_4z.texi0000644000000000000000000000230614076273767014567 00000000000000@subheading tld_check_4z @anchor{tld_check_4z} @deftypefun {int} {tld_check_4z} (const uint32_t * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated array of unicode code points to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides} , the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL} , only the built-in information is used. The position of the first offending character is returned in @code{errpos} . Return value: Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.38/doc/texi/tld_check_8z.texi0000644000000000000000000000244114076273767014573 00000000000000@subheading tld_check_8z @anchor{tld_check_8z} @deftypefun {int} {tld_check_8z} (const char * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated UTF8 string to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides} , the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL} , only the built-in information is used. The position of the first offending character is returned in @code{errpos} . Note that the error position refers to the decoded character offset rather than the byte position in the string. Return value: Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all characters are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.38/doc/texi/tld_check_4.texi0000644000000000000000000000243114076273767014374 00000000000000@subheading tld_check_4 @anchor{tld_check_4} @deftypefun {int} {tld_check_4} (const uint32_t * @var{in}, size_t @var{inlen}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides} , the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL} , only the built-in information is used. The position of the first offending character is returned in @code{errpos} . Return value: Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.38/doc/texi/punycode_encode.texi0000644000000000000000000000470214076273766015376 00000000000000@subheading punycode_encode @anchor{punycode_encode} @deftypefun {int} {punycode_encode} (size_t @var{input_length}, const punycode_uint [] @var{input}, const unsigned char [] @var{case_flags}, size_t * @var{output_length}, char [] @var{output}) @var{input_length}: The number of code points in the @code{input} array and the number of flags in the @code{case_flags} array. @var{input}: An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. @var{case_flags}: A @code{NULL} pointer or an array of boolean values parallel to the @code{input} array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If @code{case_flags} is a @code{NULL} pointer then ASCII letters are left as they are, and other code points are treated as unflagged. @var{output_length}: The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. @var{output}: An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the @code{input} contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the @code{Punycode_status} values defined above except @code{PUNYCODE_BAD_INPUT} . If not @code{PUNYCODE_SUCCESS} , then @code{output_size} and @code{output} might contain garbage. Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the @code{Punycode_status} values defined above except @code{PUNYCODE_BAD_INPUT} . If not @code{PUNYCODE_SUCCESS} , then @code{output_size} and @code{output} might contain garbage. @end deftypefun libidn-1.38/doc/texi/stringprep.texi0000644000000000000000000000246414076273766014433 00000000000000@subheading stringprep @anchor{stringprep} @deftypefun {int} {stringprep} (char * @var{in}, size_t @var{maxlen}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see @code{stringprep_locale_to_utf8()} . Since the stringprep operation can expand the string, @code{maxlen} indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns @code{STRINGPREP_OK} iff successful, or an error code. @end deftypefun libidn-1.38/doc/texi/idna_to_ascii_lz.texi0000644000000000000000000000126214076273764015521 00000000000000@subheading idna_to_ascii_lz @anchor{idna_to_ascii_lz} @deftypefun {int} {idna_to_ascii_lz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input string encoded in the current locale's character set. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/stringprep_convert.texi0000644000000000000000000000111414076273770016155 00000000000000@subheading stringprep_convert @anchor{stringprep_convert} @deftypefun {char *} {stringprep_convert} (const char * @var{str}, const char * @var{to_codeset}, const char * @var{from_codeset}) @var{str}: input zero-terminated string. @var{to_codeset}: name of destination character set. @var{from_codeset}: name of origin character set, as used by @code{str} . Convert the string from one character set to another using the system's @code{iconv()} function. Return value: Returns newly allocated zero-terminated string which is @code{str} transcoded into to_codeset. @end deftypefun libidn-1.38/doc/texi/stringprep_profile.texi0000644000000000000000000000211614076273766016145 00000000000000@subheading stringprep_profile @anchor{stringprep_profile} @deftypefun {int} {stringprep_profile} (const char * @var{in}, char ** @var{out}, const char * @var{profile}, Stringprep_profile_flags @var{flags}) @var{in}: input array with UTF-8 string to prepare. @var{out}: output variable with pointer to newly allocate string. @var{profile}: name of stringprep profile to use. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see @code{stringprep_locale_to_utf8()} . The output @code{out} variable must be deallocated by the caller. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. Return value: Returns @code{STRINGPREP_OK} iff successful, or an error code. @end deftypefun libidn-1.38/doc/texi/tld_default_table.texi0000644000000000000000000000130414076273766015664 00000000000000@subheading tld_default_table @anchor{tld_default_table} @deftypefun {const Tld_table *} {tld_default_table} (const char * @var{tld}, const Tld_table ** @var{overrides}) @var{tld}: TLD name (e.g. "com") as zero terminated ASCII byte string. @var{overrides}: Additional zero terminated array of @code{Tld_table} info-structures for TLDs, or @code{NULL} to only use library default tables. Get the TLD table for a named TLD, using the internal defaults, possibly overridden by the (optional) supplied tables. Return value: Return structure corresponding to TLD @code{tld_str} , first looking through @code{overrides} then thru built-in list, or @code{NULL} if no such structure found. @end deftypefun libidn-1.38/doc/texi/idn_free.texi0000644000000000000000000000112314076273770013773 00000000000000@subheading idn_free @anchor{idn_free} @deftypefun {void} {idn_free} (void * @var{ptr}) @var{ptr}: memory region to deallocate, or @code{NULL} . Deallocates memory region by calling @code{free()} . If @code{ptr} is @code{NULL} no operation is performed. Normally applications de-allocate strings allocated by libidn by calling @code{free()} directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible. @end deftypefun libidn-1.38/doc/texi/tld_get_z.texi0000644000000000000000000000104214076273767014201 00000000000000@subheading tld_get_z @anchor{tld_get_z} @deftypefun {int} {tld_get_z} (const char * @var{in}, char ** @var{out}) @var{in}: Zero terminated character array to process. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out} . The input string @code{in} may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding. Return value: Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun libidn-1.38/doc/texi/stringprep_ucs4_to_utf8.texi0000644000000000000000000000161014076273765017030 00000000000000@subheading stringprep_ucs4_to_utf8 @anchor{stringprep_ucs4_to_utf8} @deftypefun {char *} {stringprep_ucs4_to_utf8} (const uint32_t * @var{str}, ssize_t @var{len}, size_t * @var{items_read}, size_t * @var{items_written}) @var{str}: a UCS-4 encoded string @var{len}: the maximum length of @code{str} to use. If @code{len} < 0, then the string is terminated with a 0 character. @var{items_read}: location to store number of characters read read, or @code{NULL} . @var{items_written}: location to store number of bytes written or @code{NULL} . The value here stored does not include the trailing 0 byte. Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte. Return value: a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, @code{NULL} will be returned. @end deftypefun libidn-1.38/doc/texi/idna_to_unicode_8z4z.texi0000644000000000000000000000125414076273764016252 00000000000000@subheading idna_to_unicode_8z4z @anchor{idna_to_unicode_8z4z} @deftypefun {int} {idna_to_unicode_8z4z} (const char * @var{input}, uint32_t ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output Unicode string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/stringprep_4i.texi0000644000000000000000000000514614076273766015027 00000000000000@subheading stringprep_4i @anchor{stringprep_4i} @deftypefun {int} {stringprep_4i} (uint32_t * @var{ucs4}, size_t * @var{len}, size_t @var{maxucs4len}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{ucs4}: input/output array with string to prepare. @var{len}: on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. @var{maxucs4len}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated ( @code{ucs4} [ @code{len} ] = 0). The output will not be zero terminated unless @code{ucs4} [ @code{len} ] = 0. Instead, see @code{stringprep_4zi()} if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated ( @code{ucs4} [ @code{len} ] = 0). The output will not be zero terminated unless @code{ucs4} [ @code{len} ] = 0. Instead, see @code{stringprep_4zi()} if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. @end deftypefun libidn-1.38/doc/texi/stringprep_ucs4_nfkc_normalize.texi0000644000000000000000000000101714076273765020442 00000000000000@subheading stringprep_ucs4_nfkc_normalize @anchor{stringprep_ucs4_nfkc_normalize} @deftypefun {uint32_t *} {stringprep_ucs4_nfkc_normalize} (const uint32_t * @var{str}, ssize_t @var{len}) @var{str}: a Unicode string. @var{len}: length of @code{str} array, or -1 if @code{str} is nul-terminated. Converts a UCS4 string into canonical form, see @code{stringprep_utf8_nfkc_normalize()} for more information. Return value: a newly allocated Unicode string, that is the NFKC normalized form of @code{str} . @end deftypefun libidn-1.38/doc/texi/stringprep_strerror.texi0000644000000000000000000000373714076273770016374 00000000000000@subheading stringprep_strerror @anchor{stringprep_strerror} @deftypefun {const char *} {stringprep_strerror} (Stringprep_rc @var{rc}) @var{rc}: a @code{Stringprep_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{STRINGPREP_OK:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{STRINGPREP_CONTAINS_UNASSIGNED:} String contain unassigned Unicode code points, which is forbidden by the profile. @strong{STRINGPREP_CONTAINS_PROHIBITED:} String contain code points prohibited by the profile. @strong{STRINGPREP_BIDI_BOTH_L_AND_RAL:} String contain code points with conflicting bidirection category. @strong{STRINGPREP_BIDI_LEADTRAIL_NOT_RAL:} Leading and trailing character in string not of proper bidirectional category. @strong{STRINGPREP_BIDI_CONTAINS_PROHIBITED:} Contains prohibited code points detected by bidirectional code. @strong{STRINGPREP_TOO_SMALL_BUFFER:} Buffer handed to function was too small. This usually indicate a problem in the calling application. @strong{STRINGPREP_PROFILE_ERROR:} The stringprep profile was inconsistent. This usually indicate an internal error in the library. @strong{STRINGPREP_FLAG_ERROR:} The supplied flag conflicted with profile. This usually indicate a problem in the calling application. @strong{STRINGPREP_UNKNOWN_PROFILE:} The supplied profile name was not known to the library. @strong{STRINGPREP_ICONV_ERROR:} Character encoding conversion error. @strong{STRINGPREP_NFKC_FAILED:} The Unicode NFKC operation failed. This usually indicate an internal error in the library. @strong{STRINGPREP_MALLOC_ERROR:} The @code{malloc()} was out of memory. This is usually a fatal error. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc} . @end deftypefun libidn-1.38/doc/texi/pr29_4z.texi0000644000000000000000000000104614076273765013441 00000000000000@subheading pr29_4z @anchor{pr29_4z} @deftypefun {int} {pr29_4z} (const uint32_t * @var{in}) @var{in}: zero terminated array of Unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). @end deftypefun libidn-1.38/doc/texi/pr29_strerror.texi0000644000000000000000000000140514076273770014761 00000000000000@subheading pr29_strerror @anchor{pr29_strerror} @deftypefun {const char *} {pr29_strerror} (Pr29_rc @var{rc}) @var{rc}: an @code{Pr29_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{PR29_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{PR29_PROBLEM:} A problem sequence was encountered. @strong{PR29_STRINGPREP_ERROR:} The character set conversion failed (only for @code{pr29_8z()} ). Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc} . @end deftypefun libidn-1.38/doc/texi/tld_check_4t.texi0000644000000000000000000000167514076273767014571 00000000000000@subheading tld_check_4t @anchor{tld_check_4t} @deftypefun {int} {tld_check_4t} (const uint32_t * @var{in}, size_t @var{inlen}, size_t * @var{errpos}, const Tld_table * @var{tld}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{errpos}: Position of offending character is returned here. @var{tld}: A @code{Tld_table} data structure representing the restrictions for which the input should be tested. Test each of the code points in @code{in} for whether or not they are allowed by the data structure in @code{tld} , return the position of the first character for which this is not the case in @code{errpos} . Return value: Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.38/doc/texi/idna_to_ascii_4z.texi0000644000000000000000000000117514076273764015434 00000000000000@subheading idna_to_ascii_4z @anchor{idna_to_ascii_4z} @deftypefun {int} {idna_to_ascii_4z} (const uint32_t * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input Unicode string. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/idna_to_unicode_8zlz.texi0000644000000000000000000000136614076273764016346 00000000000000@subheading idna_to_unicode_8zlz @anchor{idna_to_unicode_8zlz} @deftypefun {int} {idna_to_unicode_8zlz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output string encoded in the current locale's character set. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/idna_to_unicode_4z4z.texi0000644000000000000000000000126214076273764016245 00000000000000@subheading idna_to_unicode_4z4z @anchor{idna_to_unicode_4z4z} @deftypefun {int} {idna_to_unicode_4z4z} (const uint32_t * @var{input}, uint32_t ** @var{output}, int @var{flags}) @var{input}: zero-terminated Unicode string. @var{output}: pointer to newly allocated output Unicode string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.38/doc/texi/idna_to_unicode_44i.texi0000644000000000000000000000352314076273764016034 00000000000000@subheading idna_to_unicode_44i @anchor{idna_to_unicode_44i} @deftypefun {int} {idna_to_unicode_44i} (const uint32_t * @var{in}, size_t @var{inlen}, uint32_t * @var{out}, size_t * @var{outlen}, int @var{flags}) @var{in}: input array with unicode code points. @var{inlen}: length of input array with unicode code points. @var{out}: output array with unicode code points. @var{outlen}: on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES} . The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. Return value: Returns @code{Idna_rc} error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. @end deftypefun libidn-1.38/doc/java/0000755000000000000000000000000014076274121011347 500000000000000libidn-1.38/doc/java/Makefile.in0000644000000000000000000014652014076273731013352 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/java ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/java/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am @JAVA_FALSE@all-local: all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @JAVA_FALSE@clean-local: clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am .PRECIOUS: Makefile @JAVA_TRUE@all-local: stamp-html @JAVA_TRUE@stamp-html: $(top_srcdir)/java/src/main/java/gnu/inet/encoding/*.java @JAVA_TRUE@ $(MAKE) -C ../../java/src/main/java javadoc @JAVA_TRUE@ touch stamp-html @JAVA_TRUE@clean-local: @JAVA_TRUE@ rm -rf html stamp-html # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/doc/java/Makefile.am0000644000000000000000000000172614076271517013337 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see . if JAVA all-local: stamp-html stamp-html: $(top_srcdir)/java/src/main/java/gnu/inet/encoding/*.java $(MAKE) -C ../../java/src/main/java javadoc touch stamp-html clean-local: rm -rf html stamp-html endif libidn-1.38/doc/example5.txt0000644000000000000000000000471314076273633012643 00000000000000#include #include #include /* Get stringprep_locale_charset, etc. */ #include /* Get idna_to_ascii_8z, etc. */ #include /* Get tld_check_4z. */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn` * $ ./example5 * Input domain encoded as `UTF-8': fooß.no * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f * ToASCII string (length 8): fooss.no * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f * Domain accepted by TLD check * * $ ./example5 * Input domain encoded as `UTF-8': gr€€n.no * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f * ToASCII string (length 16): xn--grn-l50aa.no * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f * Domain rejected by TLD check, Unicode position 2 * */ int main (void) { char buf[BUFSIZ]; char *p; uint32_t *r; int rc; size_t errpos, i; printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); rc = idna_to_ascii_8z (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p); rc = idna_to_unicode_8z4z (p, &r, 0); free (p); if (rc != IDNA_SUCCESS) { printf ("idna_to_unicode_8z4z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToUnicode string: "); for (i = 0; r[i]; i++) printf ("U+%04x ", r[i]); printf ("\n"); rc = tld_check_4z (r, &errpos, NULL); free (r); if (rc == TLD_INVALID) { printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos); return 1; } else if (rc != TLD_SUCCESS) { printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc)); return 2; } printf ("Domain accepted by TLD check\n"); return 0; } libidn-1.38/doc/version.texi0000644000000000000000000000013314076273642012732 00000000000000@set UPDATED 22 July 2021 @set UPDATED-MONTH July 2021 @set EDITION 1.38 @set VERSION 1.38 libidn-1.38/doc/libidn-components.pdf0000644000000000000000000002112714076273643014500 00000000000000%PDF-1.7 %Çì¢ %%Invocation: gs -q -dSAFER -sAutoRotatePages=? -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress ? ? - 5 0 obj <> stream xœ­YËŽ7¼×WÔqd@\¾Gùà YݳØä‘,Í¢G–6þû$™IVUÛ>¨!@ÝŒaE&£’™Lö§U+³jú×?﯒õ6¬ÿ[êÖ¿]LtE9»Úœ³Ê~}8 g &+1QhF2ª˜iŒÒ~½[‰Þ)“*#Ö*· eÔA¹¼ŠÑ>¾[àhQÖr´ÒYëcb¾þ½Y£‡iØÝ9ó°y+4}5b¨ï–÷Ëi1V;åݬKE6º˜œTJC“BcNQ™yµò…ta$:§’«Œ@VádaØÆí›’,Œ VÓºå™à¬ÊqpʸY%ŽŽtÏÎÒ}gN^[ݨ”RVÖÏѳGÎKŠV…"@òEåÄгH‚ˆHi bʾ^±94Ò©¨gt *Ž9Æè¬œ™tç±hÄÈÐH®s²Flu£‘ NéI€‡r^œKÊëñ¤³Øªfˆ4Æ,’ "Ò@ÚŠ„³¯X¬ŠJ1à‰áõOc j¢í6•ƒ‘€!÷tN“½©ñß­ò+4‰^º X¡)°_qÖèZ+:ç7«Ñ aÏÎÒ|gN^[åqW 2#[¬x5x™…TÚ!´Â‚oV«S¢O‡BQ³žŒ}T®ŠÔ¬]ÙÊÐÊ×T¸˜ÑP¸¯b² ±:­][C°8má´<à4ņ>7ƒDÐæÒyšÏBØ×$û¸©ó©–~—-þ Z¯oÊžÚ-½V”:ç‚Jœ ÐTJmÁþI¦"¨¢¦LÈûåß_¬ˆMÓ íëzlQ!‰ŸáÅðâÝuž[©yÉÎÑ—÷Ë/_\‘ì²H™Ò–ŸEÊ>Þ“J)ó úšÍ•2C ®Ì 5!SÉAŠÓ*Ä…†BV|˜vvûlÇ8Ï“­q°qô£í³«‘ýedÍA4’5Ë=Ò¿’C²æ·' ITmrõžqžÇéõhãèÇ&†>Ÿì¢BÅ Ýž«YÁQ+ÌŬ ßË„U±èTu>êSpÖ)nÈÓÇ[uö|Ó4^ÏÑÀщ*ÎÕ¸.ï¯ËTµ(6Qóf{¥èÎ`ŠÍ”z¿~Ø^8<Û2×±Žìö׎rž'[â`äèHÛ_W#»¨˜ g‰Ð šÖÀ°Dµ… 3=ž t„:H„‡u98i øR£kÈF¢=å¢g ïå±D5©îåÎÌÈx.áÍÆ ÷@äÔNí8þPì±Ñ5Ä¡âxÇ[y¥ïÔc~ʦ+v4vt¨ì+D•F<]ôtPqpyºîÓ—u=jßÛ‹k‘$"„«šø=‚½X tyÒµ»Ñâ$!#ì lÌ»¥­Ax×kÉ66x•š›ÎÕj˜ãöÝŠú©}7%*”08Ö«X„OÆÝ1t¤{tžæ±PöõˆÍ¿kà­¥{Çz‚:EÄÔæ©#Ë"ÿÓ=²35³Yˆè2° 9[”„zµlP";QCèqËNÍû†pžHUÅMìh9øs9.ËðÑÐÏõ(àTÓ.’*¦€ó&]mYÄ£«õ*з2!,J 3µêŒÔ{©ÈÅiÇ8O ‰vÁ%G?š0W#;-ΠˆÕòÁ[iÐm©ålÜÑ6¥PDùiˆ‘B½êˆÕºí'ALOõLÙe£}Lîf+U ‚3Ò˜#Õ„9yܭΨyvžkRu)yelôï6•óÆÕÚ/gGi ‡ÌqÆq®´k[9 à©B×'‡3.ý§’ØqöŒó<>•mý¨Qt=²SÿÁ5íÓbÚ÷þq÷°~y»üãGœ5ÂMÅí/KûŬHL/Êâ}¢ìß>,7/^?¼ýøøöã“Ûÿ.OCD4ëSCǧìÖÛ7Ë«›ûÓW§ïžÄèÑ=؛ӳÓó'1!úm¾ùÏ÷/_>ùéöŸ°Wf{í´å@„zŸJ"¢›o_ükýîëëóûŸ_?þAÉÍ~T#/5] ’㨉ý!<ðŒgNž2²`,2#öÍ}ùû‡?î~}ó¶.=C¡âûÔÑI¸´Ï>~<ßß½þíþ×uýâa¨‘SN¿=Þx÷²+Bù:%lj•Q(rqûükúÓ7·ˆ–ÿC áZendstream endobj 6 0 obj 2079 endobj 4 0 obj <
> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <
> endobj 11 0 obj <> endobj 7 0 obj <> endobj 9 0 obj <> endobj 8 0 obj <
> endobj 12 0 obj <>stream xœUkPWí¦gº»‚Ò¶¨àÌ¢…ˆBE‰à ðƒh\ f@1 h”¬.ê.ñ#øB¥ Ì  ”Q3I‡è€0莉»º»n¾;{‡ÚíÁl¥öïVõ{»«¿s¾ós/MÉ(𦣲 J³uy™öv§±‡ö`ÑZXËäx†…œä$;ãÁov…¦IPîN¤š^¾Û;%iÍœ¹s}W•çåäêTþï©6–©~ý¢Rg—äåhU³¥EivAa‘&[«‹ÏÓlÜR¢JÎЖüöãÿWŠ¢¨éaÚ W©‹u[¢3bË2ã²â³sò’Wh(Ê“J S‰”µŠšE%S)T*åC…S󨵔ššOEP~ÔJê]*ŠŠ¡‚¨TO¹KÊP2j UN]£¬ôZOÿË!ÈAãpÙ᳚Ñ2-2Z¶PV#k—O–§ÉM¬[Å6°78¸älõCµ>€ýki¬…B±ŸÊÿÁ’CVœ8±äؘFþWÖ…røl@$ÛYp‚§rgÜjqÒƒÜZ×>cèt.÷á:ÑV7-œ`ø¥«o¸§%3VAþ=ˆUÜHL×l…à¿ ¥iÖ‡ófnÕ!AºcGªä„aI"i& Ð,'rö GlŽrÖë ÒI·8VBÖ±¯‘nŽÎá&‘xz5‰0Ï„9à=ú–CÌ‚¿_eu¨ø¢+”L!W…úÍO2‚B·Ñ¢t¶nÒ™ðKýµ…±ú`$j!Èo€¡9hiAJBôŠœ™ˆ8"âô•W¯º{ÕE?!X‰^ý|Rø¹leÚ®¼íZMB\Þ2Ä“Y~ÀC $Œž·o•k/*/ŸÐYÍÛ©`ŸI¤N»H7FÜC'ÑŠCpžmMÑ—ô"<Ì@C¨€Q*5JÊÏŠãäßPV0@y¬øço–Iäø%þIÁ\ºÚ[@&|×DZ°‡…WXˆ9(`+”(Hœ’\a-cî"¾ Ë9ðzäCâIÜ{>ÄKé ÃÒü>ªÝSëz_¢æ&ܹÿëðÎqÕàz³ ¸}üSNðß_QY½Ë=mÌO_Æ ‰?qÎpI÷ûôÒO¨‘~Z^ÁÄKù½MŦ4i §¿Øÿ‡zE·sßÇUåˆÏÙuø+%aήƃ4;¨«a.ïw>Â¥Sp]0iç„6UrDPtÆÕ{ ÌÛ¼¹ Cò߂ڈôô÷ùp;î[ǼzÁ@ªU#ÎÓ¼wÃìo¤[FàØ ƒ¿Ô‹»?Ý‹ö ^»íÄy%Üá,‘íD ß’•£()Ú¥ùt ?ÄÖ|û§†Ä?ºV˜¦ÜÂUå”íˆÜM·—íÍß¿¹`=Šä}{þÙÓq¦ó¶â)çuè td} OfC¤ˆ +Ë‹uy·­E|Lö¥Ž[MõÏŽ)Gžtd²rµôc aÏùcœf"6‰ë>¢5Y'K¦Ÿ*éFfÙ|Étì+`!Âv&?¸bSYE.šVvî/;È/çNî>¹÷4º€þüü©§?o «óT©ÌÛ\ap>¼÷ÞøøòÖ†}lC¸dGO"#ádÙ3x¤ûaòaå"¶bÑï2Ôˆ÷[ÝÁ­sày_ëÆðÃ’‰¾µßŒkÌ Îä60[5DäHî˜ )°ºÈ‰8¦1c`!Óòq[¯®ÅqZëz~nJá×ãJ©×`r–ÍíH®ˆxš„ˆaBƒçí mJaûʇ)Çâ³î¥ÄU)\&V…úÅ?gp¾óä¹ÂîêqBÌXaf¬Ó¥¢6 k›„-òÙvfO°™åoÞÕ AF†"züû¯·7ç ‡Üœ#ÁÏžGFžy‚78 ö['é [¹.' ¥¢Ï¶n½øÉŪ›üþ^±æåí{Cˆz;zžòíyØb‚C&ú¹F_2RªîŠPÆv£¶“Í­WO]Gßñ0c‰‘x)Hç˜ÆÂbw‚Tn´#=$$5=@)q#Ú>˜dŸ“”þÆh4º Ø[šû{œðò^Æúúhw"G²4°îý¶TeóúöâNtµÕ·öðEQe­™©ÞTÿM¥b!û™1XdDßž»ÒrU€À…—ÊÅpB)‰Ííad> ZÖ"Ln4,E¼x<â¯Þ¸ö K#²€l«d…×Vl‘ç+u+„¯è> ¦- ¶à£"jßw|Û•Ì¡…­ÄE2È{1™p=ùçb%D§[J®mBIÓPVifÁméú]‰(¥žÊm)úrgcuÈVGÛÐÙ¾r(4‚¾¯½Þ¤o¾dZ{–Üã}¼¯Ÿx6¿uñ ú¿oX3·ZáŒAš;g¢á¸›_¬î"Tšl÷Ã'cîv¼»+z‡ð•,±hLcçþðî "ûã&4þ÷2qÂwnÝé½Û˜¥ cööí¦¬hûÏà^¤Üœ‘Qš¸VQЕq6ñ‚Z·yC,ÿsÖÁu' éhþqö‰£åNNƒ‡&PÔJ)¥ endstream endobj 10 0 obj <> endobj 13 0 obj <>stream xœRmLSW>÷ÒÞ[µJ)êöê6†ÅNØ@3ã² ˆnn£2æ@Ma›ÑÖ~àVÆZ]$Ü~@½” KÈܘHtBÚ%Ì &[$ÙøEöcK0n‹yÏÝ©ÉÎÝL¶ßûwÎyßó²¡R´ÙÑ›h Ú¶"­f& ~„rÙ\œG¼…wñüežðF J## ‘[Ü[ÚB6|!@¾sq*ycndƒ€AÛ¼\5¿?Y>D5XGÙÜ–ºofßrDÐÎì %´Ø¹ƒj­²Ëä1°úäÌYÖ˜Fgɨ95 Œ‰¦W¯\Yì={²ã‚6ŠÇ:;ðûxÞçj.Õ™ ˆåB²`+!YÜ8Ó¢Ô’õfza»p¢>l 4rª˜Cɦ·èî¯5}µÍ÷©u r®µÇ­ƒ B ¨áê`[ôqº…¾Cð-ýËß}¶8c=_ ýY0À–•2™›e4àQ¼fj{è›` ‰0h‹dR ÚÌO˜ðW wéè7‡õáa$Dà_œ¡y4ï…—©1f¡kfðü<Ö]Ž4Ebmm1ë»QŒËÛѵR¤f¶él·vßûæúÐô”ÅôöíyO›S}¼æí u¾¡±ñ¸|³Û2qf´ëãS}§×„a…]&…°ŠåÌ$SÓ®ºZ—dz™ZékÑ4ùú¥¯‚s9`^†tØö}ËMÓÖÆDå¥J\낞jt‹°’N™ç'˞ʯ-/sÔÝþãÞÄܨÙÿ$s?ª´>ò€œ#ýMõúW2dŽXX†T“Ê¥«H®–>-ÀTRë<ì®iú°Õ²Qèè>Ù?Çc]Cg/÷õÇoAP1­UËõ·Çs,ª/9 6ÅKm©ã'ǘê9éü'Ò!ËŠx¤4hP9%µ9‚âÕP‰U@ k¹/sw∊ØÉT§bâ³]vûÁñ% ‰1ô˜ˆŸ‹¿6y(Q»XÂKxábbbòjü&^Ô‘˜È¸ áA2zvu¿Ý+@ÆJ°®í9½¬ÝúÕý{_ï endstream endobj 14 0 obj <>stream 2021-07-22T15:50:27+02:00 2021-07-22T15:50:27+02:00 fig2dev Version 3.2.8 components.fig endstream endobj 2 0 obj <>endobj xref 0 15 0000000000 65535 f 0000002472 00000 n 0000008158 00000 n 0000002413 00000 n 0000002280 00000 n 0000000111 00000 n 0000002260 00000 n 0000002576 00000 n 0000003258 00000 n 0000002895 00000 n 0000005582 00000 n 0000002537 00000 n 0000003536 00000 n 0000005842 00000 n 0000006890 00000 n trailer << /Size 15 /Root 1 0 R /Info 2 0 R /ID [<1C759A8C94A607DE9BB5BB8DC73B730F><1C759A8C94A607DE9BB5BB8DC73B730F>] >> startxref 8338 %%EOF libidn-1.38/doc/specifications/0000755000000000000000000000000014076274121013431 500000000000000libidn-1.38/doc/specifications/BidiMirroring-3.2.0.txt0000644000000000000000000005225314053001337017307 00000000000000# BidiMirroring-3.2.0.txt # # This file is an informative supplement to the UnicodeData file. It # lists characters that have the mirrored property # where there is another Unicode character that typically has a glyph # that is the mirror image of the original character's glyph. # The repertoire covered by the file is Unicode 3.2.0. # # The file contains a list of lines with mappings from one code point # to another one for character-based mirroring. # Note that for "real" mirroring, a rendering engine needs to select # appropriate alternative glyphs, and that many Unicode characters do not # have a mirror-image Unicode character. # # Each mapping line contains two fields, separated by a semicolon (';'). # Each of the two fields contains a code point represented as a # variable-length hexadecimal value with 4 to 6 digits. # A comment indicates where the characters are "BEST FIT" mirroring. # # Code points with the "mirrored" property but no appropriate mirrors are # listed as comments at the end of the file. # # For information on bidi mirroring, see UAX #9: Bidirectional Algorithm, # at http://www.unicode.org/unicode/reports/tr9/ # # Please address any comments to . # Note that this is an archival address: messages will be checked, # but do not expect an immediate response. # # This file was originally created by Markus Scherer. # Extended for Unicode 3.2 by Ken Whistler. # # ############################################################ 0028; 0029 # LEFT PARENTHESIS 0029; 0028 # RIGHT PARENTHESIS 003C; 003E # LESS-THAN SIGN 003E; 003C # GREATER-THAN SIGN 005B; 005D # LEFT SQUARE BRACKET 005D; 005B # RIGHT SQUARE BRACKET 007B; 007D # LEFT CURLY BRACKET 007D; 007B # RIGHT CURLY BRACKET 00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 2039; 203A # SINGLE LEFT-POINTING ANGLE QUOTATION MARK 203A; 2039 # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 2045; 2046 # LEFT SQUARE BRACKET WITH QUILL 2046; 2045 # RIGHT SQUARE BRACKET WITH QUILL 207D; 207E # SUPERSCRIPT LEFT PARENTHESIS 207E; 207D # SUPERSCRIPT RIGHT PARENTHESIS 208D; 208E # SUBSCRIPT LEFT PARENTHESIS 208E; 208D # SUBSCRIPT RIGHT PARENTHESIS 2208; 220B # ELEMENT OF 2209; 220C # NOT AN ELEMENT OF 220A; 220D # SMALL ELEMENT OF 220B; 2208 # CONTAINS AS MEMBER 220C; 2209 # DOES NOT CONTAIN AS MEMBER 220D; 220A # SMALL CONTAINS AS MEMBER 2215; 29F5 # DIVISION SLASH 223C; 223D # TILDE OPERATOR 223D; 223C # REVERSED TILDE 2243; 22CD # ASYMPTOTICALLY EQUAL TO 2252; 2253 # APPROXIMATELY EQUAL TO OR THE IMAGE OF 2253; 2252 # IMAGE OF OR APPROXIMATELY EQUAL TO 2254; 2255 # COLON EQUALS 2255; 2254 # EQUALS COLON 2264; 2265 # LESS-THAN OR EQUAL TO 2265; 2264 # GREATER-THAN OR EQUAL TO 2266; 2267 # LESS-THAN OVER EQUAL TO 2267; 2266 # GREATER-THAN OVER EQUAL TO 2268; 2269 # [BEST FIT] LESS-THAN BUT NOT EQUAL TO 2269; 2268 # [BEST FIT] GREATER-THAN BUT NOT EQUAL TO 226A; 226B # MUCH LESS-THAN 226B; 226A # MUCH GREATER-THAN 226E; 226F # [BEST FIT] NOT LESS-THAN 226F; 226E # [BEST FIT] NOT GREATER-THAN 2270; 2271 # [BEST FIT] NEITHER LESS-THAN NOR EQUAL TO 2271; 2270 # [BEST FIT] NEITHER GREATER-THAN NOR EQUAL TO 2272; 2273 # [BEST FIT] LESS-THAN OR EQUIVALENT TO 2273; 2272 # [BEST FIT] GREATER-THAN OR EQUIVALENT TO 2274; 2275 # [BEST FIT] NEITHER LESS-THAN NOR EQUIVALENT TO 2275; 2274 # [BEST FIT] NEITHER GREATER-THAN NOR EQUIVALENT TO 2276; 2277 # LESS-THAN OR GREATER-THAN 2277; 2276 # GREATER-THAN OR LESS-THAN 2278; 2279 # NEITHER LESS-THAN NOR GREATER-THAN 2279; 2278 # NEITHER GREATER-THAN NOR LESS-THAN 227A; 227B # PRECEDES 227B; 227A # SUCCEEDS 227C; 227D # PRECEDES OR EQUAL TO 227D; 227C # SUCCEEDS OR EQUAL TO 227E; 227F # [BEST FIT] PRECEDES OR EQUIVALENT TO 227F; 227E # [BEST FIT] SUCCEEDS OR EQUIVALENT TO 2280; 2281 # [BEST FIT] DOES NOT PRECEDE 2281; 2280 # [BEST FIT] DOES NOT SUCCEED 2282; 2283 # SUBSET OF 2283; 2282 # SUPERSET OF 2284; 2285 # [BEST FIT] NOT A SUBSET OF 2285; 2284 # [BEST FIT] NOT A SUPERSET OF 2286; 2287 # SUBSET OF OR EQUAL TO 2287; 2286 # SUPERSET OF OR EQUAL TO 2288; 2289 # [BEST FIT] NEITHER A SUBSET OF NOR EQUAL TO 2289; 2288 # [BEST FIT] NEITHER A SUPERSET OF NOR EQUAL TO 228A; 228B # [BEST FIT] SUBSET OF WITH NOT EQUAL TO 228B; 228A # [BEST FIT] SUPERSET OF WITH NOT EQUAL TO 228F; 2290 # SQUARE IMAGE OF 2290; 228F # SQUARE ORIGINAL OF 2291; 2292 # SQUARE IMAGE OF OR EQUAL TO 2292; 2291 # SQUARE ORIGINAL OF OR EQUAL TO 2298; 29B8 # CIRCLED DIVISION SLASH 22A2; 22A3 # RIGHT TACK 22A3; 22A2 # LEFT TACK 22A6; 2ADE # ASSERTION 22A8; 2AE4 # TRUE 22A9; 2AE3 # FORCES 22AB; 2AE5 # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE 22B0; 22B1 # PRECEDES UNDER RELATION 22B1; 22B0 # SUCCEEDS UNDER RELATION 22B2; 22B3 # NORMAL SUBGROUP OF 22B3; 22B2 # CONTAINS AS NORMAL SUBGROUP 22B4; 22B5 # NORMAL SUBGROUP OF OR EQUAL TO 22B5; 22B4 # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO 22B6; 22B7 # ORIGINAL OF 22B7; 22B6 # IMAGE OF 22C9; 22CA # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT 22CA; 22C9 # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT 22CB; 22CC # LEFT SEMIDIRECT PRODUCT 22CC; 22CB # RIGHT SEMIDIRECT PRODUCT 22CD; 2243 # REVERSED TILDE EQUALS 22D0; 22D1 # DOUBLE SUBSET 22D1; 22D0 # DOUBLE SUPERSET 22D6; 22D7 # LESS-THAN WITH DOT 22D7; 22D6 # GREATER-THAN WITH DOT 22D8; 22D9 # VERY MUCH LESS-THAN 22D9; 22D8 # VERY MUCH GREATER-THAN 22DA; 22DB # LESS-THAN EQUAL TO OR GREATER-THAN 22DB; 22DA # GREATER-THAN EQUAL TO OR LESS-THAN 22DC; 22DD # EQUAL TO OR LESS-THAN 22DD; 22DC # EQUAL TO OR GREATER-THAN 22DE; 22DF # EQUAL TO OR PRECEDES 22DF; 22DE # EQUAL TO OR SUCCEEDS 22E0; 22E1 # [BEST FIT] DOES NOT PRECEDE OR EQUAL 22E1; 22E0 # [BEST FIT] DOES NOT SUCCEED OR EQUAL 22E2; 22E3 # [BEST FIT] NOT SQUARE IMAGE OF OR EQUAL TO 22E3; 22E2 # [BEST FIT] NOT SQUARE ORIGINAL OF OR EQUAL TO 22E4; 22E5 # [BEST FIT] SQUARE IMAGE OF OR NOT EQUAL TO 22E5; 22E4 # [BEST FIT] SQUARE ORIGINAL OF OR NOT EQUAL TO 22E6; 22E7 # [BEST FIT] LESS-THAN BUT NOT EQUIVALENT TO 22E7; 22E6 # [BEST FIT] GREATER-THAN BUT NOT EQUIVALENT TO 22E8; 22E9 # [BEST FIT] PRECEDES BUT NOT EQUIVALENT TO 22E9; 22E8 # [BEST FIT] SUCCEEDS BUT NOT EQUIVALENT TO 22EA; 22EB # [BEST FIT] NOT NORMAL SUBGROUP OF 22EB; 22EA # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP 22EC; 22ED # [BEST FIT] NOT NORMAL SUBGROUP OF OR EQUAL TO 22ED; 22EC # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL 22F0; 22F1 # UP RIGHT DIAGONAL ELLIPSIS 22F1; 22F0 # DOWN RIGHT DIAGONAL ELLIPSIS 22F2; 22FA # ELEMENT OF WITH LONG HORIZONTAL STROKE 22F3; 22FB # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F4; 22FC # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F6; 22FD # ELEMENT OF WITH OVERBAR 22F7; 22FE # SMALL ELEMENT OF WITH OVERBAR 22FA; 22F2 # CONTAINS WITH LONG HORIZONTAL STROKE 22FB; 22F3 # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FC; 22F4 # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FD; 22F6 # CONTAINS WITH OVERBAR 22FE; 22F7 # SMALL CONTAINS WITH OVERBAR 2308; 2309 # LEFT CEILING 2309; 2308 # RIGHT CEILING 230A; 230B # LEFT FLOOR 230B; 230A # RIGHT FLOOR 2329; 232A # LEFT-POINTING ANGLE BRACKET 232A; 2329 # RIGHT-POINTING ANGLE BRACKET 2768; 2769 # MEDIUM LEFT PARENTHESIS ORNAMENT 2769; 2768 # MEDIUM RIGHT PARENTHESIS ORNAMENT 276A; 276B # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT 276B; 276A # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT 276C; 276D # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT 276D; 276C # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT 276E; 276F # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT 276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT 2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT 2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT 2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET 2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET 2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT 2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT 27D5; 27D6 # LEFT OUTER JOIN 27D6; 27D5 # RIGHT OUTER JOIN 27DD; 27DE # LONG RIGHT TACK 27DE; 27DD # LONG LEFT TACK 27E2; 27E3 # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK 27E3; 27E2 # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK 27E4; 27E5 # WHITE SQUARE WITH LEFTWARDS TICK 27E5; 27E4 # WHITE SQUARE WITH RIGHTWARDS TICK 27E6; 27E7 # MATHEMATICAL LEFT WHITE SQUARE BRACKET 27E7; 27E6 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET 27E8; 27E9 # MATHEMATICAL LEFT ANGLE BRACKET 27E9; 27E8 # MATHEMATICAL RIGHT ANGLE BRACKET 27EA; 27EB # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET 27EB; 27EA # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET 2983; 2984 # LEFT WHITE CURLY BRACKET 2984; 2983 # RIGHT WHITE CURLY BRACKET 2985; 2986 # LEFT WHITE PARENTHESIS 2986; 2985 # RIGHT WHITE PARENTHESIS 2987; 2988 # Z NOTATION LEFT IMAGE BRACKET 2988; 2987 # Z NOTATION RIGHT IMAGE BRACKET 2989; 298A # Z NOTATION LEFT BINDING BRACKET 298A; 2989 # Z NOTATION RIGHT BINDING BRACKET 298B; 298C # LEFT SQUARE BRACKET WITH UNDERBAR 298C; 298B # RIGHT SQUARE BRACKET WITH UNDERBAR 298D; 2990 # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER 298E; 298F # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 298F; 298E # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 2990; 298D # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER 2991; 2992 # LEFT ANGLE BRACKET WITH DOT 2992; 2991 # RIGHT ANGLE BRACKET WITH DOT 2993; 2994 # LEFT ARC LESS-THAN BRACKET 2994; 2993 # RIGHT ARC GREATER-THAN BRACKET 2995; 2996 # DOUBLE LEFT ARC GREATER-THAN BRACKET 2996; 2995 # DOUBLE RIGHT ARC LESS-THAN BRACKET 2997; 2998 # LEFT BLACK TORTOISE SHELL BRACKET 2998; 2997 # RIGHT BLACK TORTOISE SHELL BRACKET 29B8; 2298 # CIRCLED REVERSE SOLIDUS 29C0; 29C1 # CIRCLED LESS-THAN 29C1; 29C0 # CIRCLED GREATER-THAN 29C4; 29C5 # SQUARED RISING DIAGONAL SLASH 29C5; 29C4 # SQUARED FALLING DIAGONAL SLASH 29CF; 29D0 # LEFT TRIANGLE BESIDE VERTICAL BAR 29D0; 29CF # VERTICAL BAR BESIDE RIGHT TRIANGLE 29D1; 29D2 # BOWTIE WITH LEFT HALF BLACK 29D2; 29D1 # BOWTIE WITH RIGHT HALF BLACK 29D4; 29D5 # TIMES WITH LEFT HALF BLACK 29D5; 29D4 # TIMES WITH RIGHT HALF BLACK 29D8; 29D9 # LEFT WIGGLY FENCE 29D9; 29D8 # RIGHT WIGGLY FENCE 29DA; 29DB # LEFT DOUBLE WIGGLY FENCE 29DB; 29DA # RIGHT DOUBLE WIGGLY FENCE 29F5; 2215 # REVERSE SOLIDUS OPERATOR 29F8; 29F9 # BIG SOLIDUS 29F9; 29F8 # BIG REVERSE SOLIDUS 29FC; 29FD # LEFT-POINTING CURVED ANGLE BRACKET 29FD; 29FC # RIGHT-POINTING CURVED ANGLE BRACKET 2A2B; 2A2C # MINUS SIGN WITH FALLING DOTS 2A2C; 2A2B # MINUS SIGN WITH RISING DOTS 2A2D; 2A2C # PLUS SIGN IN LEFT HALF CIRCLE 2A2E; 2A2D # PLUS SIGN IN RIGHT HALF CIRCLE 2A34; 2A35 # MULTIPLICATION SIGN IN LEFT HALF CIRCLE 2A35; 2A34 # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE 2A3C; 2A3D # INTERIOR PRODUCT 2A3D; 2A3C # RIGHTHAND INTERIOR PRODUCT 2A64; 2A65 # Z NOTATION DOMAIN ANTIRESTRICTION 2A65; 2A64 # Z NOTATION RANGE ANTIRESTRICTION 2A79; 2A7A # LESS-THAN WITH CIRCLE INSIDE 2A7A; 2A79 # GREATER-THAN WITH CIRCLE INSIDE 2A7D; 2A7E # LESS-THAN OR SLANTED EQUAL TO 2A7E; 2A7D # GREATER-THAN OR SLANTED EQUAL TO 2A7F; 2A80 # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A80; 2A7F # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A81; 2A82 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A82; 2A81 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A83; 2A84 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT 2A84; 2A83 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT 2A8B; 2A8C # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN 2A8C; 2A8B # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN 2A91; 2A92 # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL 2A92; 2A91 # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL 2A93; 2A94 # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL 2A94; 2A93 # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL 2A95; 2A96 # SLANTED EQUAL TO OR LESS-THAN 2A96; 2A95 # SLANTED EQUAL TO OR GREATER-THAN 2A97; 2A98 # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE 2A98; 2A97 # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE 2A99; 2A9A # DOUBLE-LINE EQUAL TO OR LESS-THAN 2A9A; 2A99 # DOUBLE-LINE EQUAL TO OR GREATER-THAN 2A9B; 2A9C # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN 2A9C; 2A9B # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN 2AA1; 2AA2 # DOUBLE NESTED LESS-THAN 2AA2; 2AA1 # DOUBLE NESTED GREATER-THAN 2AA6; 2AA7 # LESS-THAN CLOSED BY CURVE 2AA7; 2AA6 # GREATER-THAN CLOSED BY CURVE 2AA8; 2AA9 # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AA9; 2AA8 # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AAA; 2AAB # SMALLER THAN 2AAB; 2AAA # LARGER THAN 2AAC; 2AAD # SMALLER THAN OR EQUAL TO 2AAD; 2AAC # LARGER THAN OR EQUAL TO 2AAF; 2AB0 # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN 2AB0; 2AAF # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN 2AB3; 2AB4 # PRECEDES ABOVE EQUALS SIGN 2AB4; 2AB3 # SUCCEEDS ABOVE EQUALS SIGN 2ABB; 2ABC # DOUBLE PRECEDES 2ABC; 2ABB # DOUBLE SUCCEEDS 2ABD; 2ABE # SUBSET WITH DOT 2ABE; 2ABD # SUPERSET WITH DOT 2ABF; 2AC0 # SUBSET WITH PLUS SIGN BELOW 2AC0; 2ABF # SUPERSET WITH PLUS SIGN BELOW 2AC1; 2AC2 # SUBSET WITH MULTIPLICATION SIGN BELOW 2AC2; 2AC1 # SUPERSET WITH MULTIPLICATION SIGN BELOW 2AC3; 2AC4 # SUBSET OF OR EQUAL TO WITH DOT ABOVE 2AC4; 2AC3 # SUPERSET OF OR EQUAL TO WITH DOT ABOVE 2AC5; 2AC6 # SUBSET OF ABOVE EQUALS SIGN 2AC6; 2AC5 # SUPERSET OF ABOVE EQUALS SIGN 2ACD; 2ACE # SQUARE LEFT OPEN BOX OPERATOR 2ACE; 2ACD # SQUARE RIGHT OPEN BOX OPERATOR 2ACF; 2AD0 # CLOSED SUBSET 2AD0; 2ACF # CLOSED SUPERSET 2AD1; 2AD2 # CLOSED SUBSET OR EQUAL TO 2AD2; 2AD1 # CLOSED SUPERSET OR EQUAL TO 2AD3; 2AD4 # SUBSET ABOVE SUPERSET 2AD4; 2AD3 # SUPERSET ABOVE SUBSET 2AD5; 2AD6 # SUBSET ABOVE SUBSET 2AD6; 2AD5 # SUPERSET ABOVE SUPERSET 2ADE; 22A6 # SHORT LEFT TACK 2AE3; 22A9 # DOUBLE VERTICAL BAR LEFT TURNSTILE 2AE4; 22A8 # VERTICAL BAR DOUBLE LEFT TURNSTILE 2AE5; 22AB # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE 2AEC; 2AED # DOUBLE STROKE NOT SIGN 2AED; 2AEC # REVERSED DOUBLE STROKE NOT SIGN 2AF7; 2AF8 # TRIPLE NESTED LESS-THAN 2AF8; 2AF7 # TRIPLE NESTED GREATER-THAN 2AF9; 2AFA # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO 2AFA; 2AF9 # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO 3008; 3009 # LEFT ANGLE BRACKET 3009; 3008 # RIGHT ANGLE BRACKET 300A; 300B # LEFT DOUBLE ANGLE BRACKET 300B; 300A # RIGHT DOUBLE ANGLE BRACKET 300C; 300D # [BEST FIT] LEFT CORNER BRACKET 300D; 300C # [BEST FIT] RIGHT CORNER BRACKET 300E; 300F # [BEST FIT] LEFT WHITE CORNER BRACKET 300F; 300E # [BEST FIT] RIGHT WHITE CORNER BRACKET 3010; 3011 # LEFT BLACK LENTICULAR BRACKET 3011; 3010 # RIGHT BLACK LENTICULAR BRACKET 3014; 3015 # LEFT TORTOISE SHELL BRACKET 3015; 3014 # RIGHT TORTOISE SHELL BRACKET 3016; 3017 # LEFT WHITE LENTICULAR BRACKET 3017; 3016 # RIGHT WHITE LENTICULAR BRACKET 3018; 3019 # LEFT WHITE TORTOISE SHELL BRACKET 3019; 3018 # RIGHT WHITE TORTOISE SHELL BRACKET 301A; 301B # LEFT WHITE SQUARE BRACKET 301B; 301A # RIGHT WHITE SQUARE BRACKET FF08; FF09 # FULLWIDTH LEFT PARENTHESIS FF09; FF08 # FULLWIDTH RIGHT PARENTHESIS FF1C; FF1E # FULLWIDTH LESS-THAN SIGN FF1E; FF1C # FULLWIDTH GREATER-THAN SIGN FF3B; FF3D # FULLWIDTH LEFT SQUARE BRACKET FF3D; FF3B # FULLWIDTH RIGHT SQUARE BRACKET FF5B; FF5D # FULLWIDTH LEFT CURLY BRACKET FF5D; FF5B # FULLWIDTH RIGHT CURLY BRACKET FF5F; FF60 # FULLWIDTH LEFT WHITE PARENTHESIS FF60; FF5F # FULLWIDTH RIGHT WHITE PARENTHESIS FF62; FF63 # [BEST FIT] HALFWIDTH LEFT CORNER BRACKET FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET # The following characters have no appropriate mirroring character # 2140; DOUBLE-STRUCK N-ARY SUMMATION # 2201; COMPLEMENT # 2202; PARTIAL DIFFERENTIAL # 2203; THERE EXISTS # 2204; THERE DOES NOT EXIST # 2211; N-ARY SUMMATION # 2216; SET MINUS # 221A; SQUARE ROOT # 221B; CUBE ROOT # 221C; FOURTH ROOT # 221D; PROPORTIONAL TO # 221F; RIGHT ANGLE # 2220; ANGLE # 2221; MEASURED ANGLE # 2222; SPHERICAL ANGLE # 2224; DOES NOT DIVIDE # 2226; NOT PARALLEL TO # 222B; INTEGRAL # 222C; DOUBLE INTEGRAL # 222D; TRIPLE INTEGRAL # 222E; CONTOUR INTEGRAL # 222F; SURFACE INTEGRAL # 2230; VOLUME INTEGRAL # 2231; CLOCKWISE INTEGRAL # 2232; CLOCKWISE CONTOUR INTEGRAL # 2233; ANTICLOCKWISE CONTOUR INTEGRAL # 2239; EXCESS # 223B; HOMOTHETIC # 223E; INVERTED LAZY S # 223F; SINE WAVE # 2240; WREATH PRODUCT # 2241; NOT TILDE # 2242; MINUS TILDE # 2244; NOT ASYMPTOTICALLY EQUAL TO # 2245; APPROXIMATELY EQUAL TO # 2246; APPROXIMATELY BUT NOT ACTUALLY EQUAL TO # 2247; NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO # 2248; ALMOST EQUAL TO # 2249; NOT ALMOST EQUAL TO # 224A; ALMOST EQUAL OR EQUAL TO # 224B; TRIPLE TILDE # 224C; ALL EQUAL TO # 225F; QUESTIONED EQUAL TO # 2260; NOT EQUAL TO # 2262; NOT IDENTICAL TO # 228C; MULTISET # 22A7; MODELS # 22AA; TRIPLE VERTICAL BAR RIGHT TURNSTILE # 22AC; DOES NOT PROVE # 22AD; NOT TRUE # 22AE; DOES NOT FORCE # 22AF; NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE # 22B8; MULTIMAP # 22BE; RIGHT ANGLE WITH ARC # 22BF; RIGHT TRIANGLE # 22F5; ELEMENT OF WITH DOT ABOVE # 22F8; ELEMENT OF WITH UNDERBAR # 22F9; ELEMENT OF WITH TWO HORIZONTAL STROKES # 22FF; Z NOTATION BAG MEMBERSHIP # 2320; TOP HALF INTEGRAL # 2321; BOTTOM HALF INTEGRAL # 27D3; LOWER RIGHT CORNER WITH DOT # 27D4; UPPER LEFT CORNER WITH DOT # 27DC; LEFT MULTIMAP # 299B; MEASURED ANGLE OPENING LEFT # 299C; RIGHT ANGLE VARIANT WITH SQUARE # 299D; MEASURED RIGHT ANGLE WITH DOT # 299E; ANGLE WITH S INSIDE # 299F; ACUTE ANGLE # 29A0; SPHERICAL ANGLE OPENING LEFT # 29A1; SPHERICAL ANGLE OPENING UP # 29A2; TURNED ANGLE # 29A3; REVERSED ANGLE # 29A4; ANGLE WITH UNDERBAR # 29A5; REVERSED ANGLE WITH UNDERBAR # 29A6; OBLIQUE ANGLE OPENING UP # 29A7; OBLIQUE ANGLE OPENING DOWN # 29A8; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT # 29A9; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT # 29AA; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT # 29AB; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT # 29AC; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP # 29AD; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP # 29AE; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN # 29AF; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN # 29C2; CIRCLE WITH SMALL CIRCLE TO THE RIGHT # 29C3; CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT # 29C9; TWO JOINED SQUARES # 29CE; RIGHT TRIANGLE ABOVE LEFT TRIANGLE # 29DC; INCOMPLETE INFINITY # 29E1; INCREASES AS # 29E3; EQUALS SIGN AND SLANTED PARALLEL # 29E4; EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE # 29E5; IDENTICAL TO AND SLANTED PARALLEL # 29E8; DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK # 29E9; DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK # 29F4; RULE-DELAYED # 29F6; SOLIDUS WITH OVERBAR # 29F7; REVERSE SOLIDUS WITH HORIZONTAL STROKE # 2A0A; MODULO TWO SUM # 2A0B; SUMMATION WITH INTEGRAL # 2A0C; QUADRUPLE INTEGRAL OPERATOR # 2A0D; FINITE PART INTEGRAL # 2A0E; INTEGRAL WITH DOUBLE STROKE # 2A0F; INTEGRAL AVERAGE WITH SLASH # 2A10; CIRCULATION FUNCTION # 2A11; ANTICLOCKWISE INTEGRATION # 2A12; LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE # 2A13; LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE # 2A14; LINE INTEGRATION NOT INCLUDING THE POLE # 2A15; INTEGRAL AROUND A POINT OPERATOR # 2A16; QUATERNION INTEGRAL OPERATOR # 2A17; INTEGRAL WITH LEFTWARDS ARROW WITH HOOK # 2A18; INTEGRAL WITH TIMES SIGN # 2A19; INTEGRAL WITH INTERSECTION # 2A1A; INTEGRAL WITH UNION # 2A1B; INTEGRAL WITH OVERBAR # 2A1C; INTEGRAL WITH UNDERBAR # 2A1E; LARGE LEFT TRIANGLE OPERATOR # 2A1F; Z NOTATION SCHEMA COMPOSITION # 2A20; Z NOTATION SCHEMA PIPING # 2A21; Z NOTATION SCHEMA PROJECTION # 2A24; PLUS SIGN WITH TILDE ABOVE # 2A26; PLUS SIGN WITH TILDE BELOW # 2A29; MINUS SIGN WITH COMMA ABOVE # 2A3E; Z NOTATION RELATIONAL COMPOSITION # 2A57; SLOPING LARGE OR # 2A58; SLOPING LARGE AND # 2A6A; TILDE OPERATOR WITH DOT ABOVE # 2A6B; TILDE OPERATOR WITH RISING DOTS # 2A6C; SIMILAR MINUS SIMILAR # 2A6D; CONGRUENT WITH DOT ABOVE # 2A6F; ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT # 2A70; APPROXIMATELY EQUAL OR EQUAL TO # 2A73; EQUALS SIGN ABOVE TILDE OPERATOR # 2A74; DOUBLE COLON EQUAL # 2A7B; LESS-THAN WITH QUESTION MARK ABOVE # 2A7C; GREATER-THAN WITH QUESTION MARK ABOVE # 2A85; LESS-THAN OR APPROXIMATE # 2A86; GREATER-THAN OR APPROXIMATE # 2A87; LESS-THAN AND SINGLE-LINE NOT EQUAL TO # 2A88; GREATER-THAN AND SINGLE-LINE NOT EQUAL TO # 2A89; LESS-THAN AND NOT APPROXIMATE # 2A8A; GREATER-THAN AND NOT APPROXIMATE # 2A8D; LESS-THAN ABOVE SIMILAR OR EQUAL # 2A8E; GREATER-THAN ABOVE SIMILAR OR EQUAL # 2A8F; LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN # 2A90; GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN # 2A9D; SIMILAR OR LESS-THAN # 2A9E; SIMILAR OR GREATER-THAN # 2A9F; SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN # 2AA0; SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN # 2AA3; DOUBLE NESTED LESS-THAN WITH UNDERBAR # 2AB1; PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO # 2AB2; SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO # 2AB5; PRECEDES ABOVE NOT EQUAL TO # 2AB6; SUCCEEDS ABOVE NOT EQUAL TO # 2AB7; PRECEDES ABOVE ALMOST EQUAL TO # 2AB8; SUCCEEDS ABOVE ALMOST EQUAL TO # 2AB9; PRECEDES ABOVE NOT ALMOST EQUAL TO # 2ABA; SUCCEEDS ABOVE NOT ALMOST EQUAL TO # 2AC7; SUBSET OF ABOVE TILDE OPERATOR # 2AC8; SUPERSET OF ABOVE TILDE OPERATOR # 2AC9; SUBSET OF ABOVE ALMOST EQUAL TO # 2ACA; SUPERSET OF ABOVE ALMOST EQUAL TO # 2ACB; SUBSET OF ABOVE NOT EQUAL TO # 2ACC; SUPERSET OF ABOVE NOT EQUAL TO # 2ADC; FORKING # 2AE2; VERTICAL BAR TRIPLE RIGHT TURNSTILE # 2AE6; LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL # 2AEE; DOES NOT DIVIDE WITH REVERSED NEGATION SLASH # 2AF3; PARALLEL WITH TILDE OPERATOR # 2AFB; TRIPLE SOLIDUS BINARY RELATION # 2AFD; DOUBLE SOLIDUS OPERATOR libidn-1.38/doc/specifications/UnicodeData-3.2.0.txt0000644000000000000000000314257514053001337016741 000000000000000000;;Cc;0;BN;;;;;N;NULL;;;; 0001;;Cc;0;BN;;;;;N;START OF HEADING;;;; 0002;;Cc;0;BN;;;;;N;START OF TEXT;;;; 0003;;Cc;0;BN;;;;;N;END OF TEXT;;;; 0004;;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; 0005;;Cc;0;BN;;;;;N;ENQUIRY;;;; 0006;;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; 0007;;Cc;0;BN;;;;;N;BELL;;;; 0008;;Cc;0;BN;;;;;N;BACKSPACE;;;; 0009;;Cc;0;S;;;;;N;CHARACTER TABULATION;;;; 000A;;Cc;0;B;;;;;N;LINE FEED (LF);;;; 000B;;Cc;0;S;;;;;N;LINE TABULATION;;;; 000C;;Cc;0;WS;;;;;N;FORM FEED (FF);;;; 000D;;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;; 000E;;Cc;0;BN;;;;;N;SHIFT OUT;;;; 000F;;Cc;0;BN;;;;;N;SHIFT IN;;;; 0010;;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;; 0011;;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;; 0012;;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;; 0013;;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;; 0014;;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;; 0015;;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;; 0016;;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;; 0017;;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;; 0018;;Cc;0;BN;;;;;N;CANCEL;;;; 0019;;Cc;0;BN;;;;;N;END OF MEDIUM;;;; 001A;;Cc;0;BN;;;;;N;SUBSTITUTE;;;; 001B;;Cc;0;BN;;;;;N;ESCAPE;;;; 001C;;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;; 001D;;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;; 001E;;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;; 001F;;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;; 0020;SPACE;Zs;0;WS;;;;;N;;;;; 0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; 0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;; 0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;; 0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;; 0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;; 0026;AMPERSAND;Po;0;ON;;;;;N;;;;; 0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;; 0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;; 0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;; 002A;ASTERISK;Po;0;ON;;;;;N;;;;; 002B;PLUS SIGN;Sm;0;ET;;;;;N;;;;; 002C;COMMA;Po;0;CS;;;;;N;;;;; 002D;HYPHEN-MINUS;Pd;0;ET;;;;;N;;;;; 002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;; 002F;SOLIDUS;Po;0;ES;;;;;N;SLASH;;;; 0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;; 0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;; 0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;; 0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;; 0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;; 0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;; 0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;; 0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;; 0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;; 0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;; 003A;COLON;Po;0;CS;;;;;N;;;;; 003B;SEMICOLON;Po;0;ON;;;;;N;;;;; 003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;; 003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;; 003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;; 003F;QUESTION MARK;Po;0;ON;;;;;N;;;;; 0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;; 0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061; 0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062; 0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063; 0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064; 0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065; 0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066; 0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067; 0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068; 0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069; 004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A; 004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B; 004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C; 004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D; 004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E; 004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F; 0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070; 0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071; 0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072; 0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073; 0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074; 0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075; 0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076; 0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077; 0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078; 0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079; 005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A; 005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;; 005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;; 005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;; 005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;; 005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;; 0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;; 0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041 0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042 0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043 0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044 0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045 0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046 0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047 0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048 0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049 006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A 006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B 006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C 006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D 006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E 006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F 0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050 0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051 0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052 0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053 0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054 0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055 0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056 0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057 0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058 0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059 007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A 007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;; 007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;; 007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;; 007E;TILDE;Sm;0;ON;;;;;N;;;;; 007F;;Cc;0;BN;;;;;N;DELETE;;;; 0080;;Cc;0;BN;;;;;N;;;;; 0081;;Cc;0;BN;;;;;N;;;;; 0082;;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;; 0083;;Cc;0;BN;;;;;N;NO BREAK HERE;;;; 0084;;Cc;0;BN;;;;;N;;;;; 0085;;Cc;0;B;;;;;N;NEXT LINE (NEL);;;; 0086;;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;; 0087;;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;; 0088;;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;; 0089;;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;; 008A;;Cc;0;BN;;;;;N;LINE TABULATION SET;;;; 008B;;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;; 008C;;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;; 008D;;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;; 008E;;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;; 008F;;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;; 0090;;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;; 0091;;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;; 0092;;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;; 0093;;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;; 0094;;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;; 0095;;Cc;0;BN;;;;;N;MESSAGE WAITING;;;; 0096;;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;; 0097;;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;; 0098;;Cc;0;BN;;;;;N;START OF STRING;;;; 0099;;Cc;0;BN;;;;;N;;;;; 009A;;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;; 009B;;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;; 009C;;Cc;0;BN;;;;;N;STRING TERMINATOR;;;; 009D;;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;; 009E;;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;; 009F;;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;; 00A0;NO-BREAK SPACE;Zs;0;CS; 0020;;;;N;NON-BREAKING SPACE;;;; 00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; 00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;; 00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;; 00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; 00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;; 00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;; 00A7;SECTION SIGN;So;0;ON;;;;;N;;;;; 00A8;DIAERESIS;Sk;0;ON; 0020 0308;;;;N;SPACING DIAERESIS;;;; 00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;; 00AA;FEMININE ORDINAL INDICATOR;Ll;0;L; 0061;;;;N;;;;; 00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;; 00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;; 00AD;SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; 00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;; 00AF;MACRON;Sk;0;ON; 0020 0304;;;;N;SPACING MACRON;;;; 00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;; 00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;; 00B2;SUPERSCRIPT TWO;No;0;EN; 0032;2;2;2;N;SUPERSCRIPT DIGIT TWO;;;; 00B3;SUPERSCRIPT THREE;No;0;EN; 0033;3;3;3;N;SUPERSCRIPT DIGIT THREE;;;; 00B4;ACUTE ACCENT;Sk;0;ON; 0020 0301;;;;N;SPACING ACUTE;;;; 00B5;MICRO SIGN;Ll;0;L; 03BC;;;;N;;;039C;;039C 00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;; 00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;; 00B8;CEDILLA;Sk;0;ON; 0020 0327;;;;N;SPACING CEDILLA;;;; 00B9;SUPERSCRIPT ONE;No;0;EN; 0031;1;1;1;N;SUPERSCRIPT DIGIT ONE;;;; 00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L; 006F;;;;N;;;;; 00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;; 00BC;VULGAR FRACTION ONE QUARTER;No;0;ON; 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;; 00BD;VULGAR FRACTION ONE HALF;No;0;ON; 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;; 00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON; 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;; 00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;; 00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0; 00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1; 00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2; 00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3; 00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4; 00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5; 00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6; 00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7; 00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8; 00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9; 00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA; 00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB; 00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC; 00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED; 00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE; 00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF; 00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0; 00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1; 00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2; 00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3; 00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4; 00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5; 00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6; 00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;; 00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8; 00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9; 00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA; 00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB; 00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC; 00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD; 00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE; 00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;; 00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0 00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1 00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2 00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3 00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4 00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5 00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6 00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7 00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8 00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9 00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA 00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB 00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC 00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD 00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE 00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF 00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0 00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1 00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2 00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3 00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4 00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5 00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6 00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;; 00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8 00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9 00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA 00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB 00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC 00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD 00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE 00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178 0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101; 0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100 0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103; 0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102 0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105; 0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104 0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107; 0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106 0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109; 0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108 010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B; 010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A 010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D; 010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C 010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F; 010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E 0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111; 0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110 0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113; 0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112 0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115; 0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114 0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117; 0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116 0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119; 0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118 011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B; 011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A 011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D; 011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C 011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F; 011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E 0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121; 0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120 0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123; 0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122 0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125; 0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124 0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127; 0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126 0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129; 0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128 012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B; 012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A 012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D; 012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C 012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F; 012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E 0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069; 0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049 0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L; 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133; 0133;LATIN SMALL LIGATURE IJ;Ll;0;L; 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132 0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135; 0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134 0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137; 0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136 0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;; 0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A; 013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139 013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C; 013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B 013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E; 013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D 013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L; 004C 00B7;;;;N;;;;0140; 0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L; 006C 00B7;;;;N;;;013F;;013F 0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142; 0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141 0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144; 0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143 0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146; 0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145 0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148; 0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147 0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L; 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;; 014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B; 014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A 014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D; 014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C 014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F; 014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E 0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151; 0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150 0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153; 0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152 0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155; 0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154 0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157; 0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156 0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159; 0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158 015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B; 015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A 015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D; 015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C 015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F; 015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E 0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161; 0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160 0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163; 0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162 0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165; 0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164 0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167; 0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166 0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169; 0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168 016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B; 016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A 016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D; 016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C 016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F; 016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E 0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171; 0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170 0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173; 0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172 0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175; 0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174 0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177; 0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176 0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF; 0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A; 017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179 017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C; 017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B 017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E; 017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D 017F;LATIN SMALL LETTER LONG S;Ll;0;L; 0073;;;;N;;;0053;;0053 0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;;; 0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253; 0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183; 0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182 0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185; 0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184 0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254; 0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188; 0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187 0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256; 018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257; 018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C; 018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B 018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;; 018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD; 018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259; 0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B; 0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192; 0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191 0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260; 0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263; 0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6 0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269; 0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268; 0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199; 0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198 019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;;; 019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;; 019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F; 019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272; 019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220 019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275; 01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1; 01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0 01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3; 01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2 01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5; 01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4 01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;*;;0280; 01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8; 01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7 01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283; 01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;; 01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;; 01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD; 01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC 01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288; 01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0; 01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF 01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A; 01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B; 01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4; 01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3 01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6; 01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5 01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292; 01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9; 01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8 01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;; 01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;; 01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD; 01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC 01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;; 01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7 01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;; 01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;; 01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;; 01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;; 01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L; 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5 01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L; 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6; 01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L; 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5 01C7;LATIN CAPITAL LETTER LJ;Lu;0;L; 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8 01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L; 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9; 01C9;LATIN SMALL LETTER LJ;Ll;0;L; 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8 01CA;LATIN CAPITAL LETTER NJ;Lu;0;L; 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB 01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L; 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC; 01CC;LATIN SMALL LETTER NJ;Ll;0;L; 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB 01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE; 01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD 01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0; 01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF 01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2; 01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1 01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4; 01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3 01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6; 01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5 01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8; 01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7 01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA; 01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9 01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC; 01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB 01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E 01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF; 01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE 01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1; 01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0 01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3; 01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2 01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5; 01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4 01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7; 01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6 01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9; 01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8 01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB; 01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA 01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED; 01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC 01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF; 01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE 01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;; 01F1;LATIN CAPITAL LETTER DZ;Lu;0;L; 0044 005A;;;;N;;;;01F3;01F2 01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L; 0044 007A;;;;N;;;01F1;01F3; 01F3;LATIN SMALL LETTER DZ;Ll;0;L; 0064 007A;;;;N;;;01F1;;01F2 01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5; 01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4 01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195; 01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF; 01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9; 01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8 01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB; 01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA 01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD; 01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC 01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF; 01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE 0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201; 0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200 0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203; 0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202 0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205; 0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204 0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207; 0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206 0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209; 0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208 020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B; 020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A 020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D; 020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C 020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F; 020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E 0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211; 0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210 0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213; 0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212 0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215; 0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214 0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217; 0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216 0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219; 0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218 021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B; 021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A 021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D; 021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C 021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F; 021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E 0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E; 0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223; 0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222 0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225; 0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224 0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227; 0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226 0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229; 0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228 022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B; 022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A 022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D; 022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C 022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F; 022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E 0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231; 0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230 0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233; 0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232 0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;; 0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;; 0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;; 0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181 0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186 0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;; 0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189 0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A 0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;; 0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F 025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;; 025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190 025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;; 025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;; 025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;; 025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;; 0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193 0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;; 0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;; 0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194 0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;; 0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;; 0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;; 0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;; 0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197 0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196 026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;; 026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; 026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;; 026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;; 026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;; 026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C 0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;; 0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;; 0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D 0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;; 0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;; 0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F 0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;; 0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;; 0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;; 0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;; 027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;; 027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;; 027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;; 027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;;; 027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;; 027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;; 0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6 0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;; 0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;; 0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9 0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;; 0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;; 0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;; 0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;; 0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE 0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;;; 028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1 028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2 028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;;; 028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;; 028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;; 028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;; 0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;; 0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;; 0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7 0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;; 0294;LATIN LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;;; 0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;; 0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;; 0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;; 0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;; 0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;; 029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;; 029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;; 029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;; 029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;; 029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;; 029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;; 02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;; 02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;; 02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;; 02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;; 02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;; 02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;; 02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;; 02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;; 02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;; 02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;; 02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;; 02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;; 02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; 02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; 02B0;MODIFIER LETTER SMALL H;Lm;0;L; 0068;;;;N;;;;; 02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L; 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;; 02B2;MODIFIER LETTER SMALL J;Lm;0;L; 006A;;;;N;;;;; 02B3;MODIFIER LETTER SMALL R;Lm;0;L; 0072;;;;N;;;;; 02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L; 0279;;;;N;;;;; 02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L; 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;; 02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L; 0281;;;;N;;;;; 02B7;MODIFIER LETTER SMALL W;Lm;0;L; 0077;;;;N;;;;; 02B8;MODIFIER LETTER SMALL Y;Lm;0;L; 0079;;;;N;;;;; 02B9;MODIFIER LETTER PRIME;Sk;0;ON;;;;;N;;;;; 02BA;MODIFIER LETTER DOUBLE PRIME;Sk;0;ON;;;;;N;;;;; 02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;; 02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;; 02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;; 02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;; 02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; 02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;; 02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;; 02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;; 02C7;CARON;Sk;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;; 02C8;MODIFIER LETTER VERTICAL LINE;Sk;0;ON;;;;;N;;;;; 02C9;MODIFIER LETTER MACRON;Sk;0;ON;;;;;N;;Mandarin Chinese first tone;;; 02CA;MODIFIER LETTER ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;; 02CB;MODIFIER LETTER GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;; 02CC;MODIFIER LETTER LOW VERTICAL LINE;Sk;0;ON;;;;;N;;;;; 02CD;MODIFIER LETTER LOW MACRON;Sk;0;ON;;;;;N;;;;; 02CE;MODIFIER LETTER LOW GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;; 02CF;MODIFIER LETTER LOW ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;; 02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; 02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; 02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;; 02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;; 02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;; 02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;; 02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;; 02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;; 02D8;BREVE;Sk;0;ON; 0020 0306;;;;N;SPACING BREVE;;;; 02D9;DOT ABOVE;Sk;0;ON; 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;; 02DA;RING ABOVE;Sk;0;ON; 0020 030A;;;;N;SPACING RING ABOVE;;;; 02DB;OGONEK;Sk;0;ON; 0020 0328;;;;N;SPACING OGONEK;;;; 02DC;SMALL TILDE;Sk;0;ON; 0020 0303;;;;N;SPACING TILDE;;;; 02DD;DOUBLE ACUTE ACCENT;Sk;0;ON; 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;; 02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;; 02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;; 02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L; 0263;;;;N;;;;; 02E1;MODIFIER LETTER SMALL L;Lm;0;L; 006C;;;;N;;;;; 02E2;MODIFIER LETTER SMALL S;Lm;0;L; 0073;;;;N;;;;; 02E3;MODIFIER LETTER SMALL X;Lm;0;L; 0078;;;;N;;;;; 02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L; 0295;;;;N;;;;; 02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; 02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; 02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;; 02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;; 02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;; 02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; 02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; 02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;; 02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;; 02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;; 0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;; 0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;; 0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;; 0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;; 0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;; 0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;; 0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;; 0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;; 0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;; 0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;; 030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;; 030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;; 030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;; 030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;; 030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;; 030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;; 0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;; 0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;; 0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;; 0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;; 0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;; 0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;; 0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;; 0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;; 0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;; 0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;; 031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;; 031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;; 031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;; 031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;; 031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;; 031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;; 0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;; 0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;; 0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;; 0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;; 0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;; 0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;; 0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;; 0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;; 0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;; 0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;; 032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;; 032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;; 032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;; 032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;; 032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;; 032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;; 0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;; 0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;; 0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;; 0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;; 0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;; 0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;; 0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;; 0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;; 0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;; 0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;; 033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;; 033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;; 033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;; 033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;; 033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;; 033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;; 0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;; 0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;; 0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;; 0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;; 0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;; 0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399 0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; 0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;; 0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;; 0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;; 034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;; 034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;; 034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;; 034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; 034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;; 034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;; 0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;; 0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;; 0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;; 0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;; 0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;; 0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;; 0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;; 0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;; 0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;; 0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;; 036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;; 036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;; 036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;; 036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;; 036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;; 036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;; 0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;; 0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;; 037A;GREEK YPOGEGRAMMENI;Lm;0;L; 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;; 037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;; 0384;GREEK TONOS;Sk;0;ON; 0020 0301;;;;N;GREEK SPACING TONOS;;;; 0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;; 0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC; 0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;; 0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD; 0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE; 038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF; 038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC; 038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD; 038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE; 0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;; 0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1; 0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2; 0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3; 0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4; 0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5; 0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6; 0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7; 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8; 0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9; 039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA; 039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB; 039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC; 039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD; 039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE; 039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF; 03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0; 03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1; 03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3; 03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4; 03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5; 03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6; 03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7; 03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8; 03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9; 03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA; 03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB; 03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386 03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388 03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389 03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A 03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;; 03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391 03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392 03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393 03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394 03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395 03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396 03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398 03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399 03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A 03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B 03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C 03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D 03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E 03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F 03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0 03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1 03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4 03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5 03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6 03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7 03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8 03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9 03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA 03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB 03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C 03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E 03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F 03D0;GREEK BETA SYMBOL;Ll;0;L; 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398 03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L; 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;; 03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;; 03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;; 03D5;GREEK PHI SYMBOL;Ll;0;L; 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6 03D6;GREEK PI SYMBOL;Ll;0;L; 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0 03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;; 03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9; 03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8 03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB; 03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA 03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD; 03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC 03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF; 03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE 03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1; 03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0 03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3; 03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2 03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5; 03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4 03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7; 03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6 03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9; 03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8 03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB; 03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA 03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED; 03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC 03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF; 03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE 03F0;GREEK KAPPA SYMBOL;Ll;0;L; 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A 03F1;GREEK RHO SYMBOL;Ll;0;L; 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1 03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L; 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03A3;;03A3 03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;; 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8; 03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L; 03B5;;;;N;;;0395;;0395 03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;; 0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450; 0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451; 0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452; 0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453; 0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454; 0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455; 0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456; 0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457; 0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458; 0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459; 040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A; 040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B; 040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C; 040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D; 040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E; 040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F; 0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430; 0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431; 0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432; 0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433; 0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434; 0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435; 0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436; 0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437; 0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438; 0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439; 041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A; 041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B; 041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C; 041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D; 041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E; 041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F; 0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440; 0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441; 0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442; 0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443; 0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444; 0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445; 0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446; 0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447; 0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448; 0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449; 042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A; 042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B; 042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C; 042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D; 042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E; 042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F; 0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410 0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411 0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412 0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413 0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414 0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415 0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416 0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417 0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418 0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419 043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A 043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B 043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C 043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D 043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E 043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F 0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420 0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421 0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422 0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423 0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424 0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425 0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426 0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427 0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428 0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429 044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A 044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B 044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C 044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D 044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E 044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F 0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400 0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401 0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402 0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403 0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404 0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405 0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406 0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407 0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408 0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409 045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A 045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B 045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C 045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D 045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E 045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F 0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461; 0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460 0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463; 0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462 0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465; 0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464 0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467; 0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466 0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469; 0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468 046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B; 046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A 046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D; 046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C 046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F; 046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E 0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471; 0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470 0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473; 0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472 0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475; 0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474 0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477; 0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476 0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479; 0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478 047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B; 047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A 047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D; 047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C 047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F; 047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E 0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481; 0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480 0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;; 0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;; 0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;; 0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;; 0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;; 0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;; 0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; 048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B; 048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A 048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D; 048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C 048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F; 048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E 0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491; 0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490 0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493; 0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492 0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495; 0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494 0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497; 0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496 0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499; 0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498 049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B; 049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A 049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D; 049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C 049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F; 049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E 04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1; 04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0 04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3; 04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2 04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5; 04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4 04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7; 04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6 04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9; 04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8 04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB; 04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA 04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD; 04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC 04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF; 04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE 04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1; 04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0 04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3; 04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2 04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5; 04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4 04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7; 04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6 04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9; 04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8 04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB; 04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA 04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD; 04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC 04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF; 04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE 04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;; 04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2; 04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1 04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4; 04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3 04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6; 04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5 04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8; 04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7 04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA; 04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9 04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC; 04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB 04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE; 04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD 04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1; 04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0 04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3; 04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2 04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5; 04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4 04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7; 04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6 04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9; 04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8 04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB; 04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA 04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD; 04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC 04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF; 04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE 04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1; 04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0 04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3; 04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2 04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5; 04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4 04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7; 04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6 04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9; 04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8 04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB; 04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA 04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED; 04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC 04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF; 04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE 04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1; 04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0 04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3; 04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2 04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5; 04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4 04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9; 04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8 0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501; 0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500 0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503; 0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502 0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505; 0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504 0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507; 0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506 0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509; 0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508 050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B; 050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A 050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D; 050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C 050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F; 050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E 0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561; 0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562; 0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563; 0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564; 0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565; 0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566; 0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567; 0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568; 0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569; 053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A; 053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B; 053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C; 053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D; 053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E; 053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F; 0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570; 0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571; 0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572; 0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573; 0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574; 0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575; 0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576; 0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577; 0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578; 0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579; 054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A; 054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B; 054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C; 054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D; 054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E; 054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F; 0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580; 0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581; 0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582; 0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583; 0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584; 0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585; 0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586; 0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; 055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;; 055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;; 055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;; 055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;; 055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;; 055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;; 0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531 0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532 0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533 0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534 0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535 0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536 0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537 0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538 0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539 056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A 056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B 056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C 056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D 056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E 056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F 0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540 0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541 0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542 0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543 0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544 0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545 0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546 0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547 0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548 0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549 057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A 057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B 057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C 057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D 057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E 057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F 0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550 0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551 0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552 0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553 0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554 0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555 0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556 0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L; 0565 0582;;;;N;;;;; 0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;; 058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;; 0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;; 0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;; 0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;; 0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;; 0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;; 0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;; 0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;; 0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;; 0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;; 059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;; 059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;; 059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;; 059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;; 059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;; 059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;; 05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;; 05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;; 05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;; 05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;; 05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;; 05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;; 05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;; 05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;; 05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;; 05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;; 05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;; 05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;; 05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;; 05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;; 05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;; 05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;; 05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;; 05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;; 05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;; 05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;; 05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;; 05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;; 05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;; 05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;; 05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;; 05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;; 05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;; 05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;; 05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;; 05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;; 05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;; 05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;; 05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;; 05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;; 05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;; 05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;; 05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;; 05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;; 05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;; 05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;; 05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;; 05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;; 05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;; 05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;; 05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;; 05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;; 05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;; 05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;; 05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;; 05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;; 05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;; 05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;; 05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;; 05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;; 05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;; 05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;; 05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;; 05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;; 05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;; 05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;; 05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;; 05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;; 05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;; 05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;; 05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;; 05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;; 05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;; 060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;; 061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; 061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; 0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;; 0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;; 0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;; 0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;; 0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;; 0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;; 0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;; 0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;; 0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;; 062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;; 062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;; 062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;; 062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;; 062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;; 062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;; 0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;; 0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;; 0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; 0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;; 0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;; 0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;; 0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;; 0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;; 0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;; 0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;; 063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;; 0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;; 0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;; 0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;; 0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;; 0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;; 0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;; 0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;; 0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;; 0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;; 0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;; 064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;; 064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;; 064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;; 064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;; 064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;; 064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;; 0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;; 0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;; 0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;; 0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;; 0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;; 0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;; 0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;; 0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;; 0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;; 0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;; 0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;; 0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;; 0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;; 0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;; 0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;; 0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;; 066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;; 066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;; 066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;; 066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;; 066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;; 066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;; 0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;; 0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;; 0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;; 0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;; 0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;; 0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL; 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;; 0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL; 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;; 0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL; 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;; 0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL; 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;; 0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;; 067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;; 067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;; 067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;; 067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;; 067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;; 067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;; 0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;; 0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;; 0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;; 0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;; 0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;; 0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;; 0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;; 0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;; 0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;; 0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;; 068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;; 068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;; 068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;; 068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;; 068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;; 0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;; 0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;; 0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;; 0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;; 0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;; 0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;; 0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;; 0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;; 0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;; 069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; 069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; 069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; 069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;; 06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;; 06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;; 06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;; 06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;; 06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;; 06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;; 06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;; 06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;; 06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;; 06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;; 06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;; 06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;; 06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;; 06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;; 06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; 06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;; 06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;; 06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; 06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;; 06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;; 06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;; 06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;; 06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;; 06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;; 06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;; 06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;; 06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;; 06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;; 06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;; 06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;; 06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;; 06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;; 06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;; 06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;; 06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;; 06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;; 06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;; 06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;; 06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;; 06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;; 06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;; 06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;; 06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; 06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; 06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;; 06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;; 06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;; 06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;; 06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;; 06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;; 06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;; 06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;; 06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;; 06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;; 06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;; 06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;; 06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;; 06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;; 06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;; 06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;; 06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;; 06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;; 06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;; 06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;; 06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;; 06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;; 06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;; 06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;; 06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;; 06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;; 06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;; 06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;; 06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;; 06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;; 06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;; 06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;; 06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;; 06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;; 0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;; 0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;; 0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;; 0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;; 0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;; 0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;; 0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; 0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; 0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; 0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; 070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;; 070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;; 070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;; 070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;; 070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;; 0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;; 0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;; 0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;; 0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;; 0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;; 0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;; 0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;; 0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;; 0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;; 0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; 071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;; 071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;; 071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;; 071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;; 071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;; 071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;; 0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;; 0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;; 0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;; 0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;; 0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;; 0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;; 0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;; 0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;; 0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;; 0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;; 072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;; 072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;; 072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;; 0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;; 0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;; 0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;; 0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;; 0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;; 0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;; 0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;; 0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;; 0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;; 0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;; 073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;; 073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;; 073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;; 073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;; 073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;; 073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;; 0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;; 0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;; 0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;; 0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; 0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;; 0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; 0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;; 0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;; 0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;; 0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;; 074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;; 0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;; 0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;; 0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;; 0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;; 0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;; 0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;; 0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;; 0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;; 0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;; 0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;; 078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;; 078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;; 078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;; 078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;; 078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;; 078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;; 0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;; 0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;; 0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;; 0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;; 0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;; 0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;; 0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;; 0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;; 0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;; 0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;; 079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;; 079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;; 079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;; 079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;; 079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;; 079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;; 07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;; 07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;; 07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;; 07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;; 07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;; 07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;; 07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;; 07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;; 07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;; 07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;; 07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;; 07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;; 07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;; 07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;; 07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;; 07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;; 07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;; 07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;; 0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;; 0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;; 0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;; 0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;; 0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;; 090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;; 090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;; 090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;; 090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;; 0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;; 0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;; 0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;; 0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;; 0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;; 0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;; 0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;; 0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;; 0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;; 0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;; 091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;; 091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;; 091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;; 091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;; 091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;; 091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;; 0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;; 0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;; 0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;; 0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;; 0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;; 0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;; 0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;; 0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;; 0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;; 0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;; 092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;; 092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;; 092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;; 092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;; 092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;; 092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;; 0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;; 0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;; 0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;; 0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;; 0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;; 0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;; 0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;; 0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;; 0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;; 0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;; 093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; 093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; 0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; 0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;; 0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; 094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;; 094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; 094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; 094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;; 0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;; 0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;; 0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;; 0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;; 0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;; 0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;; 095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;; 095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;; 095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;; 095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;; 095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;; 095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;; 0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; 0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; 0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;; 0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;; 0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; 0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;; 0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;; 0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;; 0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;; 0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;; 098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;; 098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;; 0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;; 0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;; 0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;; 0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;; 0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;; 0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;; 0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;; 0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;; 099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;; 099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;; 099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;; 099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;; 099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;; 099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;; 09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;; 09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;; 09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;; 09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;; 09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;; 09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;; 09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;; 09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;; 09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;; 09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;; 09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;; 09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;; 09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;; 09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;; 09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;; 09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;; 09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;; 09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;; 09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;; 09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;; 09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;; 09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; 09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;; 09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;; 09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;; 09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;; 09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;; 09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; 09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; 09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;; 09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;; 09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;; 09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;; 09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;; 09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;; 09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;; 09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;; 09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;; 09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;; 09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;; 0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;; 0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;; 0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;; 0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;; 0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;; 0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;; 0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;; 0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;; 0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;; 0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;; 0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;; 0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;; 0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;; 0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;; 0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;; 0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;; 0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;; 0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;; 0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;; 0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;; 0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;; 0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;; 0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;; 0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;; 0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;; 0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;; 0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;; 0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;; 0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;; 0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;; 0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;; 0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;; 0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;; 0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;; 0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;; 0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;; 0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;; 0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;; 0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;; 0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;; 0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;; 0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;; 0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;; 0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;; 0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; 0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; 0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; 0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;; 0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;; 0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;; 0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;; 0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;; 0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;; 0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;; 0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;; 0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;; 0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;; 0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;; 0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;; 0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;; 0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;; 0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;; 0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;; 0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;; 0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;; 0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;; 0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;; 0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;; 0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;; 0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;; 0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;; 0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;; 0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;; 0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;; 0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;; 0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;; 0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;; 0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;; 0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;; 0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;; 0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;; 0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;; 0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;; 0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;; 0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;; 0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;; 0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;; 0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;; 0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;; 0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;; 0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;; 0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;; 0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;; 0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;; 0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;; 0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;; 0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;; 0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;; 0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;; 0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;; 0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;; 0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;; 0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;; 0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; 0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; 0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; 0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; 0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; 0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; 0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;; 0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;; 0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;; 0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;; 0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;; 0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;; 0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;; 0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;; 0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;; 0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;; 0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;; 0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;; 0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;; 0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;; 0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;; 0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;; 0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;; 0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;; 0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;; 0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;; 0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;; 0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;; 0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;; 0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;; 0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;; 0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;; 0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;; 0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;; 0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;; 0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;; 0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;; 0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;; 0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;; 0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;; 0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;; 0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;; 0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;; 0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;; 0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;; 0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;; 0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;; 0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;; 0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;; 0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;; 0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; 0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;; 0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;; 0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;; 0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;; 0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;; 0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;; 0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;; 0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;; 0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;; 0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;; 0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;; 0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;; 0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;; 0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;; 0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;; 0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;; 0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;; 0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;; 0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;; 0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;; 0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;; 0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;; 0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;; 0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;; 0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;; 0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;; 0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;; 0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;; 0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;; 0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;; 0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;; 0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;; 0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;; 0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;; 0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;; 0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;; 0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;; 0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;; 0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;; 0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;; 0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;; 0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;; 0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;; 0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;; 0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; 0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; 0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;; 0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;; 0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;; 0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;; 0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; 0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; 0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;; 0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;; 0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;; 0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;; 0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;; 0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;; 0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;; 0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;; 0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;; 0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;; 0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;; 0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;; 0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;; 0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;; 0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;; 0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;; 0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;; 0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;; 0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;; 0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;; 0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;; 0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;; 0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;; 0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;; 0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;; 0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;; 0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;; 0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;; 0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;; 0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;; 0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;; 0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;; 0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;; 0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;; 0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;; 0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;; 0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;; 0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;; 0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;; 0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;; 0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;; 0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;; 0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;; 0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;; 0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;; 0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;; 0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;; 0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;; 0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; 0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;; 0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; 0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; 0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; 0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; 0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;; 0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; 0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; 0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; 0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;; 0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;; 0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;; 0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;; 0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;; 0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;; 0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;; 0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;; 0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;; 0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;; 0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;; 0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;; 0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;; 0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;; 0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;; 0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;; 0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;; 0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;; 0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;; 0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;; 0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;; 0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;; 0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;; 0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;; 0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;; 0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;; 0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;; 0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;; 0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;; 0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;; 0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;; 0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;; 0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;; 0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;; 0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;; 0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;; 0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;; 0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;; 0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;; 0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;; 0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;; 0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;; 0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;; 0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;; 0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;; 0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;; 0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;; 0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;; 0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;; 0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0CBF;KANNADA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;; 0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; 0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; 0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; 0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; 0CC6;KANNADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;; 0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;; 0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;; 0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;; 0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; 0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;; 0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;; 0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;; 0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;; 0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;; 0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;; 0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;; 0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;; 0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;; 0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;; 0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;; 0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;; 0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;; 0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;; 0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;; 0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;; 0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;; 0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;; 0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;; 0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;; 0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;; 0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;; 0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;; 0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;; 0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;; 0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;; 0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;; 0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;; 0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;; 0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;; 0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;; 0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;; 0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;; 0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;; 0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;; 0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;; 0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;; 0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;; 0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;; 0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;; 0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;; 0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;; 0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;; 0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;; 0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;; 0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;; 0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;; 0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;; 0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;; 0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;; 0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;; 0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; 0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; 0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;; 0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;; 0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;; 0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;; 0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;; 0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;; 0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;; 0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;; 0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;; 0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;; 0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;; 0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;; 0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;; 0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;; 0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;; 0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;; 0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;; 0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;; 0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;; 0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;; 0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;; 0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;; 0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; 0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; 0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; 0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; 0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; 0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;; 0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; 0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; 0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; 0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; 0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; 0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;; 0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;; 0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; 0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; 0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; 0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; 0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;; 0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;; 0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; 0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; 0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; 0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; 0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;; 0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;; 0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; 0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; 0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; 0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; 0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;; 0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;; 0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;; 0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;; 0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;; 0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;; 0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;; 0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;; 0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;; 0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;; 0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;; 0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;; 0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;; 0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;; 0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;; 0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;; 0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;; 0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;; 0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;; 0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;; 0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;; 0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;; 0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;; 0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;; 0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;; 0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;; 0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;; 0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;; 0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;; 0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;; 0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;; 0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;; 0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;; 0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;; 0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;; 0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;; 0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;; 0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;; 0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;; 0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;; 0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;; 0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;; 0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;; 0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;; 0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;; 0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;; 0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;; 0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;; 0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;; 0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;; 0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;; 0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;; 0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;; 0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;; 0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;; 0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;; 0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;; 0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;; 0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;; 0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;; 0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;; 0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;; 0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;; 0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;; 0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;; 0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;; 0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;; 0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;; 0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;; 0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;; 0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;; 0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;; 0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;; 0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;; 0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;; 0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;; 0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;; 0E33;THAI CHARACTER SARA AM;Lo;0;L; 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;; 0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;; 0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;; 0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;; 0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;; 0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;; 0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;; 0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;; 0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;; 0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;; 0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;; 0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;; 0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;; 0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;; 0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;; 0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;; 0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;; 0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;; 0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;; 0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;; 0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;; 0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;; 0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;; 0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;; 0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;; 0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;; 0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;; 0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;; 0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;; 0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;; 0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;; 0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;; 0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;; 0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;; 0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;; 0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;; 0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;; 0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;; 0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;; 0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;; 0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;; 0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;; 0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;; 0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;; 0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;; 0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;; 0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;; 0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;; 0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;; 0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;; 0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;; 0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;; 0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;; 0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;; 0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;; 0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;; 0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;; 0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;; 0EB3;LAO VOWEL SIGN AM;Lo;0;L; 0ECD 0EB2;;;;N;;;;; 0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; 0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; 0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;; 0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;; 0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;; 0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;; 0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;; 0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;; 0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;; 0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;; 0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;; 0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;; 0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;; 0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;; 0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;; 0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;; 0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;; 0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;; 0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;; 0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0EDC;LAO HO NO;Lo;0;L; 0EAB 0E99;;;;N;;;;; 0EDD;LAO HO MO;Lo;0;L; 0EAB 0EA1;;;;N;;;;; 0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;; 0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;; 0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;; 0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;; 0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;; 0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;; 0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;; 0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;; 0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;; 0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;; 0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;; 0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;; 0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L; 0F0B;;;;N;;tsek tar;;; 0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;; 0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;; 0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;; 0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;; 0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;; 0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;; 0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;; 0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;; 0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;; 0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;; 0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;; 0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;; 0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;; 0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;; 0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;; 0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;; 0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;; 0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;; 0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;; 0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;; 0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;; 0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;; 0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;; 0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;; 0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;; 0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;; 0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;; 0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;; 0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;; 0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;; 0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;; 0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;; 0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;; 0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;; 0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;; 0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;N;;gug ta yun;;; 0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;N;;gug ta ye;;; 0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;N;TIBETAN LEFT BRACE;ang kang yun;;; 0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;N;TIBETAN RIGHT BRACE;ang kang ye;;; 0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;; 0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;; 0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;; 0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;; 0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;; 0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;; 0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;; 0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;; 0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;; 0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;; 0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;; 0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;; 0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;; 0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;; 0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;; 0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;; 0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;; 0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;; 0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;; 0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;; 0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;; 0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;; 0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;; 0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;; 0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;; 0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;; 0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;; 0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;; 0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;; 0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;; 0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;; 0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;; 0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;; 0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;; 0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;; 0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;; 0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;; 0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;; 0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;; 0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;; 0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;; 0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;; 0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;; 0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;; 0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;; 0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;; 0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;; 0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;; 0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;; 0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;; 0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM; 0FB2 0F81;;;;N;;;;; 0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;; 0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM; 0FB3 0F81;;;;N;;;;; 0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;; 0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;; 0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;; 0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;; 0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;; 0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;; 0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;; 0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;; 0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;; 0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;; 0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;; 0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;; 0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;; 0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;; 0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;; 0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;; 0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;; 0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;; 0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;; 0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;; 0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;; 0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;; 0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;; 0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;; 0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;; 0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;; 0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;; 0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;; 0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;; 0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;; 0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;; 0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;; 0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;; 0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;; 0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;; 0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;; 0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;; 0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;; 0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;; 0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;; 0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;; 0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;; 0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;; 0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;; 0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;; 0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;; 0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;; 0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;; 0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;; 0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;; 0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;; 0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;; 0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;; 0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;; 0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;; 0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;; 0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;; 0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;; 0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;; 0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;; 0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;; 0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;; 0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;; 0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;; 0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;; 0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;; 0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;; 0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;; 0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;; 0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;; 0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;; 0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;; 0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;; 0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;; 0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;; 0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;; 0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;; 0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;dena sum;;; 1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;; 1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;; 1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;; 1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;; 1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;; 1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;; 1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;; 1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;; 1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;; 1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;; 100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;; 100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;; 100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;; 100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;; 100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;; 100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;; 1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;; 1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;; 1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;; 1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;; 1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;; 1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;; 1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;; 1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;; 1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;; 1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;; 101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;; 101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;; 101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;; 101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;; 101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;; 101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;; 1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;; 1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;; 1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;; 1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;; 1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;; 1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;; 1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;; 1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;; 102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;; 102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;; 1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;; 1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;; 104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;; 104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;; 104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;; 104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;; 104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;; 1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;; 1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;; 1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; 1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; 1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; 1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; 10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;; 10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;; 10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;; 10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;; 10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;; 10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;; 10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;; 10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;; 10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;; 10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;; 10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;; 10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;; 10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;; 10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;; 10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;; 10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;; 10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;; 10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;; 10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;; 10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;; 10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;; 10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;; 10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;; 10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;; 10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;; 10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;; 10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;; 10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;; 10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;; 10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;; 10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;; 10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;; 10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;; 10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;; 10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;; 10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;; 10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;; 10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;; 10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;; 10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;; 10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;; 10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;; 10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;; 10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;; 10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;; 10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;; 10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;; 10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;; 10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;; 10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;; 10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;; 10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;; 10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;; 10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;; 10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;; 10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;; 10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;; 10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;; 10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;; 10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;; 10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;; 10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;; 10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;; 10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;; 10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;; 10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;; 10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;; 10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;; 10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;; 10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;; 10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;; 10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;; 10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;; 10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; 1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;; 1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;; 1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;; 1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;; 1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;; 1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;; 1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;; 1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;; 1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;; 1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;; 110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;; 110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;; 110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;; 110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;; 110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;; 110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;; 1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;; 1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;; 1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;; 1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; 1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;; 1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; 1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;; 1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; 1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; 1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; 111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;; 111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;; 111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; 111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; 111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; 111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;; 1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; 1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;; 1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; 1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;; 1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;; 1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;; 1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;; 1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;; 1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;; 112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; 112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; 112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;; 112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;; 112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; 1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; 1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;; 1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; 1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; 1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;; 1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;; 1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;; 1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;; 1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;; 1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; 113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;; 113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;; 113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;; 113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; 113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;; 113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; 1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;; 1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; 1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;; 1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;; 1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;; 1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;; 1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; 1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; 1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;; 1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;; 114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;; 114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;; 114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; 114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;; 114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;; 114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; 1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;; 1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; 1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;; 1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;; 1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;; 1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;; 1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; 1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; 1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;; 1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; 115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;; 1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;; 1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;; 1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;; 1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;; 1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;; 1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;; 1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;; 1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;; 1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;; 1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;; 116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;; 116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;; 116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;; 116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;; 116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;; 116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;; 1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;; 1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;; 1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;; 1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;; 1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;; 1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;; 1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;; 1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;; 1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;; 1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;; 117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;; 117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;; 117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;; 117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;; 117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;; 117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;; 1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;; 1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;; 1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;; 1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;; 1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;; 1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;; 1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;; 1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;; 1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;; 1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;; 118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;; 118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;; 118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;; 118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;; 118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;; 118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;; 1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;; 1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;; 1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;; 1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;; 1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;; 1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;; 1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;; 1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;; 1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;; 1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;; 119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;; 119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;; 119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;; 119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;; 119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;; 119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;; 11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;; 11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;; 11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;; 11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;; 11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;; 11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;; 11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;; 11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;; 11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;; 11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;; 11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;; 11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;; 11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;; 11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;; 11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;; 11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;; 11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;; 11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;; 11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;; 11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;; 11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;; 11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;; 11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;; 11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;; 11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;; 11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;; 11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;; 11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;; 11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;; 11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;; 11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;; 11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; 11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; 11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;; 11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;; 11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;; 11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; 11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;; 11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;; 11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; 11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;; 11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;; 11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; 11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; 11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;; 11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;; 11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; 11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; 11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;; 11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;; 11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; 11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;; 11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; 11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;; 11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; 11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;; 11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;; 11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;; 11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;; 11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;; 11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; 11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;; 11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; 11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; 11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; 11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; 11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; 11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; 11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;; 11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; 11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; 11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; 11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;; 11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; 11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;; 11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; 11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; 11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; 11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;; 11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;; 11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;; 11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;; 11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; 1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;; 1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;; 1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;; 1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;; 1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;; 1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;; 1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;; 1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;; 1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;; 120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;; 120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;; 120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;; 120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;; 120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;; 120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;; 1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;; 1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;; 1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;; 1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;; 1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;; 1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;; 1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;; 1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;; 1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;; 1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;; 121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;; 121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;; 121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;; 121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;; 121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;; 121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;; 1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;; 1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;; 1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;; 1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;; 1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;; 1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;; 1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;; 1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;; 1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;; 1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;; 122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;; 122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;; 122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;; 122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;; 122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;; 122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;; 1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;; 1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;; 1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;; 1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;; 1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;; 1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;; 1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;; 1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;; 1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;; 1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;; 123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;; 123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;; 123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;; 123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;; 123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;; 123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;; 1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;; 1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;; 1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;; 1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;; 1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;; 1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;; 1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;; 1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;; 124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;; 124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;; 124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;; 124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;; 1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;; 1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;; 1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;; 1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;; 1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;; 1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;; 1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;; 1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;; 125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;; 125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;; 125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;; 125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;; 1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;; 1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;; 1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;; 1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;; 1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;; 1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;; 1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;; 1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;; 1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;; 1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;; 126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;; 126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;; 126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;; 126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;; 126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;; 126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;; 1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;; 1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;; 1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;; 1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;; 1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;; 1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;; 1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;; 1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;; 1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;; 1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;; 127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;; 127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;; 127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;; 127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;; 127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;; 127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;; 1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;; 1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;; 1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;; 1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;; 1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;; 1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;; 1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;; 1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;; 128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;; 128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;; 128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;; 128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;; 1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;; 1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;; 1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;; 1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;; 1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;; 1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;; 1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;; 1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;; 1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;; 1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;; 129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;; 129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;; 129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;; 129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;; 129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;; 129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;; 12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;; 12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;; 12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;; 12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;; 12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;; 12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;; 12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;; 12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;; 12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;; 12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;; 12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;; 12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;; 12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;; 12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;; 12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;; 12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;; 12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;; 12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;; 12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;; 12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;; 12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;; 12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;; 12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;; 12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;; 12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;; 12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;; 12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;; 12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;; 12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;; 12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;; 12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;; 12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;; 12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;; 12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;; 12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;; 12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;; 12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;; 12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;; 12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;; 12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;; 12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;; 12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;; 12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;; 12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;; 12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;; 12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;; 12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;; 12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;; 12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;; 12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;; 12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;; 12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;; 12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;; 12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;; 12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; 12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; 12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;; 12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;; 12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;; 12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; 12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; 12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;; 12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;; 12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;; 12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;; 12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;; 12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;; 12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;; 12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;; 12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;; 12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;; 12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;; 12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;; 12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;; 12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;; 12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;; 12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;; 12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;; 12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;; 12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;; 12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;; 12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;; 12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;; 12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;; 12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;; 1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;; 1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;; 1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;; 1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;; 1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;; 1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;; 1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;; 1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;; 1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;; 1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;; 130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;; 130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;; 130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;; 130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;; 130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;; 1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;; 1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;; 1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;; 1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;; 1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;; 1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;; 1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;; 131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;; 131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;; 131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;; 131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;; 131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;; 1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;; 1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;; 1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;; 1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;; 1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;; 1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;; 1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;; 1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;; 1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;; 1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;; 132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;; 132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;; 132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;; 132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;; 132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;; 132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;; 1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;; 1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;; 1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;; 1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;; 1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;; 1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;; 1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;; 1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;; 1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;; 1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;; 133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;; 133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;; 133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;; 133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;; 133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;; 133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;; 1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;; 1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;; 1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;; 1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;; 1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;; 1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;; 1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;; 1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;; 1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;; 134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;; 134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;; 134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;; 134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;; 134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;; 134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;; 1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;; 1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;; 1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;; 1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;; 1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;; 1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;; 1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;; 1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;; 1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;; 1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;; 135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;; 1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;; 1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;; 1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;; 1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;; 1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;; 1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;; 1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;; 1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; 1369;ETHIOPIC DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 136A;ETHIOPIC DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 136B;ETHIOPIC DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 136C;ETHIOPIC DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 136D;ETHIOPIC DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 136E;ETHIOPIC DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 136F;ETHIOPIC DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 1370;ETHIOPIC DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1371;ETHIOPIC DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;; 1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;; 1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;; 1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;; 1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;; 1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;; 1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;; 1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;; 137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;; 137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;; 137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;; 13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;; 13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;; 13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;; 13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;; 13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;; 13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;; 13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;; 13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;; 13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;; 13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;; 13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;; 13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;; 13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;; 13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;; 13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;; 13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;; 13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;; 13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;; 13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;; 13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;; 13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;; 13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;; 13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;; 13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;; 13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;; 13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;; 13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;; 13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;; 13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;; 13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;; 13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;; 13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;; 13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;; 13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;; 13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;; 13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;; 13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;; 13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;; 13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;; 13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;; 13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;; 13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;; 13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;; 13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;; 13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;; 13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;; 13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;; 13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;; 13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;; 13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;; 13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;; 13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;; 13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;; 13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;; 13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;; 13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;; 13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;; 13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;; 13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;; 13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;; 13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;; 13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;; 13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;; 13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;; 13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;; 13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;; 13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;; 13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;; 13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;; 13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;; 13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;; 13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;; 13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;; 13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;; 13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;; 13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;; 13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;; 13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;; 13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;; 13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;; 13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;; 13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;; 13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;; 13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;; 13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;; 1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;; 1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;; 1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;; 1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;; 1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;; 1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;; 1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;; 1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;; 1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;; 140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;; 140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;; 140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;; 140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;; 140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;; 140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;; 1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;; 1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;; 1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;; 1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;; 1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;; 1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;; 1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;; 1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;; 1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;; 1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;; 141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;; 141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;; 141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;; 141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;; 141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;; 141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;; 1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;; 1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;; 1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;; 1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;; 1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;; 1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;; 1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;; 1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;; 1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;; 1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;; 142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;; 142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;; 142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;; 142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;; 142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;; 142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;; 1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;; 1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;; 1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;; 1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;; 1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;; 1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;; 1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;; 1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;; 1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;; 1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;; 143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;; 143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;; 143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;; 143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;; 143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;; 143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;; 1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;; 1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;; 1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;; 1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;; 1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;; 1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;; 1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;; 1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;; 1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;; 1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;; 144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;; 144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;; 144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;; 144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;; 144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;; 144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;; 1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;; 1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;; 1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;; 1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;; 1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;; 1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;; 1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;; 1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;; 1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;; 1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;; 145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;; 145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;; 145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;; 145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;; 145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;; 145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;; 1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;; 1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;; 1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;; 1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;; 1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;; 1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;; 1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;; 1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;; 1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;; 1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;; 146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;; 146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;; 146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;; 146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;; 146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;; 146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;; 1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;; 1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;; 1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;; 1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;; 1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;; 1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;; 1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;; 1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;; 1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;; 1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;; 147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;; 147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;; 147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;; 147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;; 147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;; 147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;; 1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;; 1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;; 1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;; 1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;; 1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;; 1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;; 1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;; 1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;; 1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;; 1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;; 148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;; 148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;; 148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;; 148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;; 148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;; 148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;; 1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;; 1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;; 1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;; 1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;; 1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;; 1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;; 1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;; 1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;; 1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;; 1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;; 149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;; 149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;; 149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;; 149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;; 149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;; 149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;; 14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;; 14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;; 14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;; 14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;; 14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;; 14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;; 14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;; 14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;; 14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;; 14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;; 14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;; 14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;; 14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;; 14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;; 14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;; 14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;; 14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;; 14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;; 14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;; 14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;; 14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;; 14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;; 14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;; 14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;; 14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;; 14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;; 14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;; 14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;; 14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;; 14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;; 14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;; 14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;; 14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;; 14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;; 14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;; 14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;; 14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;; 14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;; 14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;; 14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;; 14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;; 14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;; 14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;; 14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;; 14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;; 14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;; 14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;; 14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;; 14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;; 14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;; 14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;; 14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;; 14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;; 14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;; 14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;; 14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;; 14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;; 14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;; 14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;; 14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;; 14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;; 14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;; 14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;; 14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;; 14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;; 14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;; 14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;; 14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;; 14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;; 14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;; 14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;; 14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;; 14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;; 14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;; 14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;; 14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;; 14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;; 14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;; 14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;; 14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;; 14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;; 14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;; 14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;; 14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;; 14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;; 14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;; 14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;; 14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;; 14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;; 14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;; 14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;; 14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;; 14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;; 14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;; 14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;; 14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;; 1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;; 1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;; 1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;; 1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;; 1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;; 1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;; 1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;; 1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;; 1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;; 1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;; 150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;; 150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;; 150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;; 150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;; 150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;; 150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;; 1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;; 1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;; 1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;; 1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;; 1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;; 1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;; 1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;; 1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;; 1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;; 1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;; 151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;; 151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;; 151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;; 151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;; 151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;; 151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;; 1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;; 1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;; 1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;; 1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;; 1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;; 1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;; 1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;; 1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;; 1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;; 1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;; 152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;; 152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;; 152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;; 152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;; 152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;; 152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;; 1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;; 1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;; 1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;; 1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;; 1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;; 1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;; 1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;; 1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;; 1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;; 1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;; 153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;; 153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;; 153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;; 153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;; 153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;; 153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;; 1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;; 1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;; 1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;; 1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;; 1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;; 1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;; 1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;; 1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;; 1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;; 1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;; 154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;; 154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;; 154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;; 154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;; 154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;; 154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;; 1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;; 1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;; 1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;; 1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;; 1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;; 1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;; 1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;; 1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;; 1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;; 1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;; 155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;; 155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;; 155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;; 155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;; 155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;; 155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;; 1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;; 1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;; 1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;; 1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;; 1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;; 1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;; 1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;; 1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;; 1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;; 1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;; 156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;; 156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;; 156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;; 156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;; 156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;; 156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;; 1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;; 1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;; 1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;; 1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;; 1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;; 1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;; 1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;; 1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;; 1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;; 1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;; 157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;; 157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;; 157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;; 157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;; 157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;; 157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;; 1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;; 1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;; 1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;; 1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;; 1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;; 1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;; 1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;; 1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;; 1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;; 1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;; 158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;; 158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;; 158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;; 158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;; 158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;; 158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;; 1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;; 1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;; 1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;; 1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;; 1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;; 1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;; 1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;; 1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;; 1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;; 1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;; 159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;; 159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;; 159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;; 159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;; 159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;; 159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;; 15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;; 15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;; 15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;; 15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;; 15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;; 15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;; 15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;; 15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;; 15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;; 15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;; 15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;; 15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;; 15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;; 15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;; 15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;; 15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;; 15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;; 15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;; 15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;; 15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;; 15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;; 15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;; 15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;; 15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;; 15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;; 15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;; 15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;; 15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;; 15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;; 15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;; 15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;; 15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;; 15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;; 15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;; 15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;; 15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;; 15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;; 15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;; 15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;; 15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;; 15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;; 15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;; 15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;; 15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;; 15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;; 15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;; 15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;; 15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;; 15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;; 15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;; 15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;; 15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;; 15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;; 15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;; 15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;; 15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;; 15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;; 15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;; 15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;; 15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;; 15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;; 15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;; 15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;; 15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;; 15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;; 15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;; 15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;; 15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;; 15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;; 15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;; 15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;; 15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;; 15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;; 15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;; 15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;; 15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;; 15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;; 15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;; 15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;; 15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;; 15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;; 15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;; 15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;; 15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;; 15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;; 15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;; 15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;; 15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;; 15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;; 15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;; 15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;; 15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;; 15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;; 15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;; 15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;; 15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;; 1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;; 1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;; 1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;; 1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;; 1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;; 1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;; 1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;; 1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;; 1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;; 1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;; 160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;; 160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;; 160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;; 160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;; 160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;; 160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;; 1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;; 1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;; 1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;; 1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;; 1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;; 1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;; 1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;; 1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;; 1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;; 1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;; 161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;; 161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;; 161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;; 161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;; 161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;; 161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;; 1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;; 1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;; 1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;; 1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;; 1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;; 1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;; 1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;; 1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;; 1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;; 1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;; 162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;; 162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;; 162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;; 162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;; 162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;; 162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;; 1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;; 1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;; 1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;; 1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;; 1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;; 1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;; 1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;; 1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;; 1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;; 1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;; 163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;; 163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;; 163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;; 163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;; 163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;; 163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;; 1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;; 1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;; 1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;; 1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;; 1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;; 1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;; 1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;; 1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;; 1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;; 1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;; 164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;; 164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;; 164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;; 164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;; 164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;; 164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;; 1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;; 1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;; 1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;; 1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;; 1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;; 1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;; 1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;; 1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;; 1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;; 1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;; 165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;; 165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;; 165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;; 165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;; 165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;; 165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;; 1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;; 1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;; 1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;; 1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;; 1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;; 1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;; 1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;; 1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;; 1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;; 1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;; 166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;; 166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;; 166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;; 166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;; 166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;; 166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;; 1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;; 1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;; 1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;; 1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;; 1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;; 1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;; 1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;; 1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;; 1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;; 1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;; 1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;; 1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;; 1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;; 1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;; 1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;; 1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;; 1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;; 168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;; 168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;; 168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;; 168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;; 168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;; 168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;; 1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;; 1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;; 1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;; 1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;; 1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;; 1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;; 1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;; 1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;; 1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;; 1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;; 169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;; 169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;N;;;;; 169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;N;;;;; 16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;; 16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;; 16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;; 16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;; 16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;; 16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;; 16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;; 16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;; 16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;; 16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;; 16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;; 16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;; 16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;; 16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;; 16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;; 16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;; 16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;; 16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;; 16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;; 16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;; 16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;; 16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;; 16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;; 16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;; 16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;; 16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;; 16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;; 16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;; 16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;; 16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;; 16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;; 16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;; 16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;; 16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;; 16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;; 16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;; 16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;; 16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;; 16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;; 16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;; 16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;; 16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;; 16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;; 16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;; 16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;; 16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;; 16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;; 16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;; 16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;; 16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;; 16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;; 16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;; 16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;; 16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;; 16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;; 16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;; 16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;; 16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;; 16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;; 16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;; 16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;; 16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;; 16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;; 16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;; 16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;; 16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;; 16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;; 16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;; 16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;; 16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;; 16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;; 16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;; 16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;; 16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;; 16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;; 16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; 16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;; 16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;; 16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;; 16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;; 16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;; 1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;; 1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;; 1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;; 1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;; 1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;; 1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;; 1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;; 1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;; 1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;; 1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;; 170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;; 170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;; 170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;; 170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;; 170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;; 1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;; 1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;; 1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;; 1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;; 1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;; 1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;; 1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;; 1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;; 1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;; 1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;; 1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;; 1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;; 172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;; 172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;; 172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;; 172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;; 172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;; 172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;; 1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;; 1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;; 1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;; 1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; 1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;; 1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;; 1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;; 1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;; 1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;; 1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;; 1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;; 1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;; 1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;; 1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;; 1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;; 174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;; 174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;; 174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;; 174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;; 174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;; 174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;; 1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;; 1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;; 1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;; 1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;; 1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;; 1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;; 1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;; 1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;; 1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;; 1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;; 1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;; 1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;; 176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;; 176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;; 176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;; 176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;; 176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;; 1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;; 1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;; 1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;; 1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;; 1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;; 1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;; 1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;; 1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;; 1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;; 1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;; 1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;; 178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;; 178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;; 178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;; 178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;; 178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;; 178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;; 1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;; 1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;; 1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;; 1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;; 1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;; 1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;; 1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;; 1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;; 1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;; 1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;; 179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;; 179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;; 179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;; 179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;; 179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;; 179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;; 17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;; 17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;; 17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;; 17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;; 17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;; 17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;; 17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;; 17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;; 17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;; 17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;; 17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;; 17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;; 17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;; 17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;; 17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;; 17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;; 17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;; 17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;; 17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;; 17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;; 17B4;KHMER VOWEL INHERENT AQ;Mc;0;L;;;;;N;;;;; 17B5;KHMER VOWEL INHERENT AA;Mc;0;L;;;;;N;;;;; 17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; 17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; 17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;; 17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;; 17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;; 17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;; 17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; 17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; 17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; 17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;; 17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;; 17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;; 17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;; 17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;; 17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;; 17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;; 17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;; 17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;; 17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;; 17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;; 17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;; 17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;; 17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;; 17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;; 17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;; 17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;; 17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;; 17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;; 17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;; 17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;; 17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;; 17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;; 17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;; 1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;; 1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;; 1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;; 1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;; 1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;; 1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; 1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;; 1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;; 1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;; 180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;; 180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; 180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; 180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; 180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;; 1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;; 1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;; 1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;; 1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;; 1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;; 1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;; 1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;; 1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;; 1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;; 1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;; 182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;; 182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;; 182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;; 182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;; 182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;; 182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;; 1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;; 1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;; 1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;; 1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;; 1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;; 1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;; 1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;; 1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;; 1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;; 1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;; 183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;; 183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;; 183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;; 183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;; 183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;; 183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;; 1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;; 1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;; 1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;; 1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;; 1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;; 1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;; 1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;; 1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;; 1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;; 1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;; 184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;; 184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;; 184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;; 184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;; 184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;; 184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;; 1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;; 1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;; 1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;; 1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;; 1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;; 1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;; 1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;; 1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;; 1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;; 1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;; 185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;; 185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;; 185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;; 185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;; 185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;; 185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;; 1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;; 1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;; 1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;; 1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;; 1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;; 1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;; 1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;; 1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;; 1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;; 1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;; 186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;; 186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;; 186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;; 186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;; 186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;; 186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;; 1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;; 1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;; 1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;; 1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;; 1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;; 1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;; 1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;; 1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;; 1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;; 1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;; 1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;; 1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;; 1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;; 1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;; 1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;; 1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;; 1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;; 1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;; 188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;; 188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;; 188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;; 188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;; 188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;; 188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;; 1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;; 1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;; 1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;; 1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;; 1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;; 1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;; 1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;; 1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;; 1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;; 1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;; 189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;; 189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;; 189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;; 189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;; 189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;; 189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;; 18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;; 18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;; 18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;; 18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;; 18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;; 18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;; 18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;; 18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;; 18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;; 18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;; 1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01; 1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00 1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03; 1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02 1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05; 1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04 1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07; 1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06 1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09; 1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08 1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B; 1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A 1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D; 1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C 1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F; 1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E 1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11; 1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10 1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13; 1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12 1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15; 1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14 1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17; 1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16 1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19; 1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18 1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B; 1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A 1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D; 1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C 1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F; 1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E 1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21; 1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20 1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23; 1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22 1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25; 1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24 1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27; 1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26 1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29; 1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28 1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B; 1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A 1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D; 1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C 1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F; 1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E 1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31; 1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30 1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33; 1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32 1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35; 1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34 1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37; 1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36 1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39; 1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38 1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B; 1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A 1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D; 1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C 1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F; 1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E 1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41; 1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40 1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43; 1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42 1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45; 1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44 1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47; 1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46 1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49; 1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48 1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B; 1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A 1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D; 1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C 1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F; 1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E 1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51; 1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50 1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53; 1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52 1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55; 1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54 1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57; 1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56 1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59; 1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58 1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B; 1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A 1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D; 1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C 1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F; 1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E 1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61; 1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60 1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63; 1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62 1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65; 1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64 1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67; 1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66 1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69; 1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68 1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B; 1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A 1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D; 1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C 1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F; 1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E 1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71; 1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70 1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73; 1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72 1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75; 1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74 1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77; 1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76 1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79; 1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78 1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B; 1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A 1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D; 1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C 1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F; 1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E 1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81; 1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80 1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83; 1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82 1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85; 1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84 1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87; 1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86 1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89; 1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88 1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B; 1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A 1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D; 1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C 1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F; 1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E 1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91; 1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90 1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93; 1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92 1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95; 1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94 1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;; 1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;; 1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;; 1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;; 1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L; 0061 02BE;;;;N;;;;; 1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60 1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1; 1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0 1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3; 1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2 1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5; 1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4 1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7; 1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6 1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9; 1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8 1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB; 1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA 1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD; 1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC 1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF; 1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE 1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1; 1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0 1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3; 1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2 1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5; 1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4 1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7; 1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6 1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9; 1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8 1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB; 1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA 1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD; 1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC 1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF; 1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE 1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1; 1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0 1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3; 1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2 1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5; 1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4 1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7; 1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6 1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9; 1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8 1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB; 1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA 1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD; 1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC 1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF; 1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE 1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1; 1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0 1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3; 1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2 1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5; 1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4 1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7; 1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6 1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9; 1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8 1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB; 1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA 1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD; 1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC 1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF; 1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE 1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1; 1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0 1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3; 1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2 1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5; 1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4 1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7; 1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6 1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9; 1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8 1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB; 1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA 1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED; 1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC 1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF; 1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE 1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1; 1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0 1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3; 1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2 1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5; 1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4 1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7; 1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6 1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9; 1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8 1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08 1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09 1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A 1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B 1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C 1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D 1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E 1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F 1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00; 1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01; 1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02; 1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03; 1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04; 1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05; 1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06; 1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07; 1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18 1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19 1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A 1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B 1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C 1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D 1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10; 1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11; 1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12; 1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13; 1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14; 1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15; 1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28 1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29 1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A 1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B 1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C 1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D 1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E 1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F 1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20; 1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21; 1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22; 1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23; 1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24; 1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25; 1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26; 1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27; 1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38 1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39 1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A 1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B 1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C 1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D 1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E 1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F 1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30; 1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31; 1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32; 1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33; 1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34; 1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35; 1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36; 1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37; 1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48 1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49 1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A 1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B 1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C 1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D 1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40; 1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41; 1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42; 1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43; 1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44; 1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45; 1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;; 1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59 1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;; 1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B 1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;; 1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D 1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;; 1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F 1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51; 1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53; 1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55; 1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57; 1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68 1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69 1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A 1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B 1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C 1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D 1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E 1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F 1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60; 1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61; 1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62; 1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63; 1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64; 1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65; 1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66; 1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67; 1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA 1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB 1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8 1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9 1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA 1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB 1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA 1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB 1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8 1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9 1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA 1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB 1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA 1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB 1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88 1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89 1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A 1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B 1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C 1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D 1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E 1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F 1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80; 1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81; 1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82; 1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83; 1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84; 1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85; 1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86; 1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87; 1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98 1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99 1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A 1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B 1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C 1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D 1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E 1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F 1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90; 1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91; 1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92; 1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93; 1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94; 1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95; 1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96; 1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97; 1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8 1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9 1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA 1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB 1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC 1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD 1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE 1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF 1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0; 1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1; 1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2; 1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3; 1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4; 1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5; 1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6; 1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7; 1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8 1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9 1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;; 1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC 1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;; 1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;; 1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;; 1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0; 1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1; 1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70; 1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71; 1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3; 1FBD;GREEK KORONIS;Sk;0;ON; 0020 0313;;;;N;;;;; 1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399 1FBF;GREEK PSILI;Sk;0;ON; 0020 0313;;;;N;;;;; 1FC0;GREEK PERISPOMENI;Sk;0;ON; 0020 0342;;;;N;;;;; 1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;; 1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;; 1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC 1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;; 1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;; 1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;; 1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72; 1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73; 1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74; 1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75; 1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3; 1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;; 1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;; 1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;; 1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8 1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9 1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;; 1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;; 1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;; 1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;; 1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0; 1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1; 1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76; 1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77; 1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;; 1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;; 1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;; 1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8 1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9 1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;; 1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;; 1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;; 1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC 1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;; 1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;; 1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0; 1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1; 1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A; 1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B; 1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5; 1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;; 1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;; 1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;; 1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;; 1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC 1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;; 1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;; 1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;; 1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78; 1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79; 1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C; 1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D; 1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3; 1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;; 1FFE;GREEK DASIA;Sk;0;ON; 0020 0314;;;;N;;;;; 2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;; 2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;; 2002;EN SPACE;Zs;0;WS; 0020;;;;N;;;;; 2003;EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2004;THREE-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2005;FOUR-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2006;SIX-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2007;FIGURE SPACE;Zs;0;WS; 0020;;;;N;;;;; 2008;PUNCTUATION SPACE;Zs;0;WS; 0020;;;;N;;;;; 2009;THIN SPACE;Zs;0;WS; 0020;;;;N;;;;; 200A;HAIR SPACE;Zs;0;WS; 0020;;;;N;;;;; 200B;ZERO WIDTH SPACE;Zs;0;BN;;;;;N;;;;; 200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;; 200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;; 200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;; 200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;; 2010;HYPHEN;Pd;0;ON;;;;;N;;;;; 2011;NON-BREAKING HYPHEN;Pd;0;ON; 2010;;;;N;;;;; 2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;; 2013;EN DASH;Pd;0;ON;;;;;N;;;;; 2014;EM DASH;Pd;0;ON;;;;;N;;;;; 2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;; 2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;; 2017;DOUBLE LOW LINE;Po;0;ON; 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;; 2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;; 2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;; 201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;; 201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;; 201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;; 201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;; 201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;; 201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;; 2020;DAGGER;Po;0;ON;;;;;N;;;;; 2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;; 2022;BULLET;Po;0;ON;;;;;N;;;;; 2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;; 2024;ONE DOT LEADER;Po;0;ON; 002E;;;;N;;;;; 2025;TWO DOT LEADER;Po;0;ON; 002E 002E;;;;N;;;;; 2026;HORIZONTAL ELLIPSIS;Po;0;ON; 002E 002E 002E;;;;N;;;;; 2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;; 2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;; 2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;; 202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;; 202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;; 202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;; 202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;; 202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;; 202F;NARROW NO-BREAK SPACE;Zs;0;WS; 0020;;;;N;;;;; 2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;; 2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;; 2032;PRIME;Po;0;ET;;;;;N;;;;; 2033;DOUBLE PRIME;Po;0;ET; 2032 2032;;;;N;;;;; 2034;TRIPLE PRIME;Po;0;ET; 2032 2032 2032;;;;N;;;;; 2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;; 2036;REVERSED DOUBLE PRIME;Po;0;ON; 2035 2035;;;;N;;;;; 2037;REVERSED TRIPLE PRIME;Po;0;ON; 2035 2035 2035;;;;N;;;;; 2038;CARET;Po;0;ON;;;;;N;;;;; 2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;; 203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;; 203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;; 203C;DOUBLE EXCLAMATION MARK;Po;0;ON; 0021 0021;;;;N;;;;; 203D;INTERROBANG;Po;0;ON;;;;;N;;;;; 203E;OVERLINE;Po;0;ON; 0020 0305;;;;N;SPACING OVERSCORE;;;; 203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;; 2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;; 2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;; 2042;ASTERISM;Po;0;ON;;;;;N;;;;; 2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;; 2044;FRACTION SLASH;Sm;0;ON;;;;;N;;;;; 2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;; 2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;; 2047;DOUBLE QUESTION MARK;Po;0;ON; 003F 003F;;;;N;;;;; 2048;QUESTION EXCLAMATION MARK;Po;0;ON; 003F 0021;;;;N;;;;; 2049;EXCLAMATION QUESTION MARK;Po;0;ON; 0021 003F;;;;N;;;;; 204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;; 204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;; 204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;; 204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;; 204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;; 204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;; 2050;CLOSE UP;Po;0;ON;;;;;N;;;;; 2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;; 2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;; 2057;QUADRUPLE PRIME;Po;0;ON; 2032 2032 2032 2032;;;;N;;;;; 205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS; 0020;;;;N;;;;; 2060;WORD JOINER;Cf;0;BN;;;;;N;;;;; 2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;; 2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; 2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; 206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; 206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; 206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; 206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; 206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; 206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; 2070;SUPERSCRIPT ZERO;No;0;EN; 0030;0;0;0;N;SUPERSCRIPT DIGIT ZERO;;;; 2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L; 0069;;;;N;;;;; 2074;SUPERSCRIPT FOUR;No;0;EN; 0034;4;4;4;N;SUPERSCRIPT DIGIT FOUR;;;; 2075;SUPERSCRIPT FIVE;No;0;EN; 0035;5;5;5;N;SUPERSCRIPT DIGIT FIVE;;;; 2076;SUPERSCRIPT SIX;No;0;EN; 0036;6;6;6;N;SUPERSCRIPT DIGIT SIX;;;; 2077;SUPERSCRIPT SEVEN;No;0;EN; 0037;7;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;; 2078;SUPERSCRIPT EIGHT;No;0;EN; 0038;8;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;; 2079;SUPERSCRIPT NINE;No;0;EN; 0039;9;9;9;N;SUPERSCRIPT DIGIT NINE;;;; 207A;SUPERSCRIPT PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; 207B;SUPERSCRIPT MINUS;Sm;0;ET; 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;; 207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; 207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;; 207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;; 207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L; 006E;;;;N;;;;; 2080;SUBSCRIPT ZERO;No;0;EN; 0030;0;0;0;N;SUBSCRIPT DIGIT ZERO;;;; 2081;SUBSCRIPT ONE;No;0;EN; 0031;1;1;1;N;SUBSCRIPT DIGIT ONE;;;; 2082;SUBSCRIPT TWO;No;0;EN; 0032;2;2;2;N;SUBSCRIPT DIGIT TWO;;;; 2083;SUBSCRIPT THREE;No;0;EN; 0033;3;3;3;N;SUBSCRIPT DIGIT THREE;;;; 2084;SUBSCRIPT FOUR;No;0;EN; 0034;4;4;4;N;SUBSCRIPT DIGIT FOUR;;;; 2085;SUBSCRIPT FIVE;No;0;EN; 0035;5;5;5;N;SUBSCRIPT DIGIT FIVE;;;; 2086;SUBSCRIPT SIX;No;0;EN; 0036;6;6;6;N;SUBSCRIPT DIGIT SIX;;;; 2087;SUBSCRIPT SEVEN;No;0;EN; 0037;7;7;7;N;SUBSCRIPT DIGIT SEVEN;;;; 2088;SUBSCRIPT EIGHT;No;0;EN; 0038;8;8;8;N;SUBSCRIPT DIGIT EIGHT;;;; 2089;SUBSCRIPT NINE;No;0;EN; 0039;9;9;9;N;SUBSCRIPT DIGIT NINE;;;; 208A;SUBSCRIPT PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; 208B;SUBSCRIPT MINUS;Sm;0;ET; 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;; 208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; 208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;; 208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;; 20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; 20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;; 20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;; 20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;; 20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;; 20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;; 20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;; 20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;; 20A8;RUPEE SIGN;Sc;0;ET; 0052 0073;;;;N;;;;; 20A9;WON SIGN;Sc;0;ET;;;;;N;;;;; 20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;; 20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;; 20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;; 20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;; 20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;; 20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;; 20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;; 20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;; 20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;; 20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;; 20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;; 20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;; 20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;; 20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;; 20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;; 20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;; 20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;; 20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;; 20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;; 20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;; 20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;; 20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;; 20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;; 20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;; 20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;; 20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;; 20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;; 20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;; 20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;; 20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;; 20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;; 20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;; 20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;; 20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; 20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;; 2100;ACCOUNT OF;So;0;ON; 0061 002F 0063;;;;N;;;;; 2101;ADDRESSED TO THE SUBJECT;So;0;ON; 0061 002F 0073;;;;N;;;;; 2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L; 0043;;;;N;DOUBLE-STRUCK C;;;; 2103;DEGREE CELSIUS;So;0;ON; 00B0 0043;;;;N;DEGREES CENTIGRADE;;;; 2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;; 2105;CARE OF;So;0;ON; 0063 002F 006F;;;;N;;;;; 2106;CADA UNA;So;0;ON; 0063 002F 0075;;;;N;;;;; 2107;EULER CONSTANT;Lu;0;L; 0190;;;;N;EULERS;;;; 2108;SCRUPLE;So;0;ON;;;;;N;;;;; 2109;DEGREE FAHRENHEIT;So;0;ON; 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;; 210A;SCRIPT SMALL G;Ll;0;L; 0067;;;;N;;;;; 210B;SCRIPT CAPITAL H;Lu;0;L; 0048;;;;N;SCRIPT H;;;; 210C;BLACK-LETTER CAPITAL H;Lu;0;L; 0048;;;;N;BLACK-LETTER H;;;; 210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L; 0048;;;;N;DOUBLE-STRUCK H;;;; 210E;PLANCK CONSTANT;Ll;0;L; 0068;;;;N;;;;; 210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L; 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;; 2110;SCRIPT CAPITAL I;Lu;0;L; 0049;;;;N;SCRIPT I;;;; 2111;BLACK-LETTER CAPITAL I;Lu;0;L; 0049;;;;N;BLACK-LETTER I;;;; 2112;SCRIPT CAPITAL L;Lu;0;L; 004C;;;;N;SCRIPT L;;;; 2113;SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; 2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;; 2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L; 004E;;;;N;DOUBLE-STRUCK N;;;; 2116;NUMERO SIGN;So;0;ON; 004E 006F;;;;N;NUMERO;;;; 2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;; 2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;; 2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L; 0050;;;;N;DOUBLE-STRUCK P;;;; 211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L; 0051;;;;N;DOUBLE-STRUCK Q;;;; 211B;SCRIPT CAPITAL R;Lu;0;L; 0052;;;;N;SCRIPT R;;;; 211C;BLACK-LETTER CAPITAL R;Lu;0;L; 0052;;;;N;BLACK-LETTER R;;;; 211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L; 0052;;;;N;DOUBLE-STRUCK R;;;; 211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;; 211F;RESPONSE;So;0;ON;;;;;N;;;;; 2120;SERVICE MARK;So;0;ON; 0053 004D;;;;N;;;;; 2121;TELEPHONE SIGN;So;0;ON; 0054 0045 004C;;;;N;T E L SYMBOL;;;; 2122;TRADE MARK SIGN;So;0;ON; 0054 004D;;;;N;TRADEMARK;;;; 2123;VERSICLE;So;0;ON;;;;;N;;;;; 2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L; 005A;;;;N;DOUBLE-STRUCK Z;;;; 2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;; 2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9; 2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;; 2128;BLACK-LETTER CAPITAL Z;Lu;0;L; 005A;;;;N;BLACK-LETTER Z;;;; 2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;; 212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B; 212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5; 212C;SCRIPT CAPITAL B;Lu;0;L; 0042;;;;N;SCRIPT B;;;; 212D;BLACK-LETTER CAPITAL C;Lu;0;L; 0043;;;;N;BLACK-LETTER C;;;; 212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;; 212F;SCRIPT SMALL E;Ll;0;L; 0065;;;;N;;;;; 2130;SCRIPT CAPITAL E;Lu;0;L; 0045;;;;N;SCRIPT E;;;; 2131;SCRIPT CAPITAL F;Lu;0;L; 0046;;;;N;SCRIPT F;;;; 2132;TURNED CAPITAL F;So;0;ON;;;;;N;TURNED F;;;; 2133;SCRIPT CAPITAL M;Lu;0;L; 004D;;;;N;SCRIPT M;;;; 2134;SCRIPT SMALL O;Ll;0;L; 006F;;;;N;;;;; 2135;ALEF SYMBOL;Lo;0;L; 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;; 2136;BET SYMBOL;Lo;0;L; 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;; 2137;GIMEL SYMBOL;Lo;0;L; 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;; 2138;DALET SYMBOL;Lo;0;L; 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;; 2139;INFORMATION SOURCE;Ll;0;L; 0069;;;;N;;;;; 213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;; 213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON; 2211;;;;Y;;;;; 2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;; 2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; 2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; 2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;; 2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 214A;PROPERTY LINE;So;0;ON;;;;;N;;;;; 214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;; 2153;VULGAR FRACTION ONE THIRD;No;0;ON; 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;; 2154;VULGAR FRACTION TWO THIRDS;No;0;ON; 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;; 2155;VULGAR FRACTION ONE FIFTH;No;0;ON; 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;; 2156;VULGAR FRACTION TWO FIFTHS;No;0;ON; 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;; 2157;VULGAR FRACTION THREE FIFTHS;No;0;ON; 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;; 2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON; 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;; 2159;VULGAR FRACTION ONE SIXTH;No;0;ON; 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;; 215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON; 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;; 215B;VULGAR FRACTION ONE EIGHTH;No;0;ON; 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;; 215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON; 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;; 215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON; 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;; 215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON; 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;; 215F;FRACTION NUMERATOR ONE;No;0;ON; 0031 2044;;;1;N;;;;; 2160;ROMAN NUMERAL ONE;Nl;0;L; 0049;;;1;N;;;;2170; 2161;ROMAN NUMERAL TWO;Nl;0;L; 0049 0049;;;2;N;;;;2171; 2162;ROMAN NUMERAL THREE;Nl;0;L; 0049 0049 0049;;;3;N;;;;2172; 2163;ROMAN NUMERAL FOUR;Nl;0;L; 0049 0056;;;4;N;;;;2173; 2164;ROMAN NUMERAL FIVE;Nl;0;L; 0056;;;5;N;;;;2174; 2165;ROMAN NUMERAL SIX;Nl;0;L; 0056 0049;;;6;N;;;;2175; 2166;ROMAN NUMERAL SEVEN;Nl;0;L; 0056 0049 0049;;;7;N;;;;2176; 2167;ROMAN NUMERAL EIGHT;Nl;0;L; 0056 0049 0049 0049;;;8;N;;;;2177; 2168;ROMAN NUMERAL NINE;Nl;0;L; 0049 0058;;;9;N;;;;2178; 2169;ROMAN NUMERAL TEN;Nl;0;L; 0058;;;10;N;;;;2179; 216A;ROMAN NUMERAL ELEVEN;Nl;0;L; 0058 0049;;;11;N;;;;217A; 216B;ROMAN NUMERAL TWELVE;Nl;0;L; 0058 0049 0049;;;12;N;;;;217B; 216C;ROMAN NUMERAL FIFTY;Nl;0;L; 004C;;;50;N;;;;217C; 216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L; 0043;;;100;N;;;;217D; 216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L; 0044;;;500;N;;;;217E; 216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L; 004D;;;1000;N;;;;217F; 2170;SMALL ROMAN NUMERAL ONE;Nl;0;L; 0069;;;1;N;;;2160;;2160 2171;SMALL ROMAN NUMERAL TWO;Nl;0;L; 0069 0069;;;2;N;;;2161;;2161 2172;SMALL ROMAN NUMERAL THREE;Nl;0;L; 0069 0069 0069;;;3;N;;;2162;;2162 2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L; 0069 0076;;;4;N;;;2163;;2163 2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L; 0076;;;5;N;;;2164;;2164 2175;SMALL ROMAN NUMERAL SIX;Nl;0;L; 0076 0069;;;6;N;;;2165;;2165 2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L; 0076 0069 0069;;;7;N;;;2166;;2166 2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L; 0076 0069 0069 0069;;;8;N;;;2167;;2167 2178;SMALL ROMAN NUMERAL NINE;Nl;0;L; 0069 0078;;;9;N;;;2168;;2168 2179;SMALL ROMAN NUMERAL TEN;Nl;0;L; 0078;;;10;N;;;2169;;2169 217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L; 0078 0069;;;11;N;;;216A;;216A 217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L; 0078 0069 0069;;;12;N;;;216B;;216B 217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L; 006C;;;50;N;;;216C;;216C 217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L; 0063;;;100;N;;;216D;;216D 217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L; 0064;;;500;N;;;216E;;216E 217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L; 006D;;;1000;N;;;216F;;216F 2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;; 2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;; 2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;; 2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Nl;0;L;;;;;N;;;;; 2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;; 2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;; 2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;; 2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;; 2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; 2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;; 2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;; 2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;; 2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;; 2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;; 219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;; 219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;; 219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;; 219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;; 219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;; 219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;; 21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;; 21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;; 21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;; 21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;; 21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;; 21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;; 21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;; 21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;; 21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;; 21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;; 21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;; 21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;; 21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;; 21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;; 21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;; 21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;; 21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;; 21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;; 21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;; 21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;; 21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;; 21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;; 21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; 21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; 21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;; 21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;; 21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; 21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; 21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;; 21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;; 21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;; 21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;; 21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;; 21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;; 21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;; 21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;; 21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;; 21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;; 21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;; 21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;; 21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;; 21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;; 21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;; 21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;; 21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;; 21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;; 21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;; 21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;; 21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;; 21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;; 21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;; 21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;; 21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;; 21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;; 21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;; 21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;; 21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;; 21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;; 21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;; 21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;; 21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;; 21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;; 21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;; 21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;; 21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;; 21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;; 21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;; 21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;; 21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;; 21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;; 21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;; 21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;; 21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;; 21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;; 21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; 21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;; 21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;; 21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;; 21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; 21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;; 21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;; 21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;; 21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;; 21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;; 21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;; 21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; 21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; 21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; 2200;FOR ALL;Sm;0;ON;;;;;N;;;;; 2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;; 2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;; 2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;; 2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;; 2205;EMPTY SET;Sm;0;ON;;;;;N;;;;; 2206;INCREMENT;Sm;0;ON;;;;;N;;;;; 2207;NABLA;Sm;0;ON;;;;;N;;;;; 2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;; 2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;; 220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;; 220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; 220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;; 220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; 220E;END OF PROOF;Sm;0;ON;;;;;N;;;;; 220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;; 2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;; 2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;; 2212;MINUS SIGN;Sm;0;ET;;;;;N;;;;; 2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;; 2214;DOT PLUS;Sm;0;ON;;;;;N;;;;; 2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; 2216;SET MINUS;Sm;0;ON;;;;;Y;;;;; 2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; 2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;; 2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;; 221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;; 221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;; 221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;; 221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;; 221E;INFINITY;Sm;0;ON;;;;;N;;;;; 221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;; 2220;ANGLE;Sm;0;ON;;;;;Y;;;;; 2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;; 2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;; 2223;DIVIDES;Sm;0;ON;;;;;N;;;;; 2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;; 2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;; 2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;; 2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2229;INTERSECTION;Sm;0;ON;;;;;N;;;;; 222A;UNION;Sm;0;ON;;;;;N;;;;; 222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;; 222C;DOUBLE INTEGRAL;Sm;0;ON; 222B 222B;;;;Y;;;;; 222D;TRIPLE INTEGRAL;Sm;0;ON; 222B 222B 222B;;;;Y;;;;; 222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; 222F;SURFACE INTEGRAL;Sm;0;ON; 222E 222E;;;;Y;;;;; 2230;VOLUME INTEGRAL;Sm;0;ON; 222E 222E 222E;;;;Y;;;;; 2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2234;THEREFORE;Sm;0;ON;;;;;N;;;;; 2235;BECAUSE;Sm;0;ON;;;;;N;;;;; 2236;RATIO;Sm;0;ON;;;;;N;;;;; 2237;PROPORTION;Sm;0;ON;;;;;N;;;;; 2238;DOT MINUS;Sm;0;ON;;;;;N;;;;; 2239;EXCESS;Sm;0;ON;;;;;Y;;;;; 223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;; 223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;; 223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;; 223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;; 223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;; 2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;; 2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;; 2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;; 2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;; 2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;; 2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;; 224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;; 224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;; 224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; 224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; 224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;; 2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;; 2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;; 2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;; 2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;; 2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;; 2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;; 2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;; 2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;; 2259;ESTIMATES;Sm;0;ON;;;;;N;;;;; 225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;; 225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;; 225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;; 225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;; 225E;MEASURED BY;Sm;0;ON;;;;;N;;;;; 225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;; 2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;; 2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;; 2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; 2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;; 2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;; 2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;; 2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;; 2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;; 2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;; 226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;; 226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;; 226C;BETWEEN;Sm;0;ON;;;;;N;;;;; 226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;; 226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;; 226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;; 2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;; 2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;; 2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;; 2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;; 2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;; 2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;; 2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;; 2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;; 2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;; 2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;; 227A;PRECEDES;Sm;0;ON;;;;;Y;;;;; 227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;; 227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;; 2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;; 2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;; 2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;; 2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;; 2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;; 2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;; 2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;; 228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;; 228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;; 228C;MULTISET;Sm;0;ON;;;;;Y;;;;; 228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;; 228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;; 228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;; 2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; 2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;; 2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;; 2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; 2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;; 2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;; 2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; 2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;; 229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; 229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;; 229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;; 229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;; 229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;; 22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;; 22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;; 22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;; 22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;; 22A5;UP TACK;Sm;0;ON;;;;;N;;;;; 22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;; 22A7;MODELS;Sm;0;ON;;;;;Y;;;;; 22A8;TRUE;Sm;0;ON;;;;;Y;;;;; 22A9;FORCES;Sm;0;ON;;;;;Y;;;;; 22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;; 22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;; 22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;; 22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;; 22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;; 22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;; 22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;; 22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;; 22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; 22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;; 22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;; 22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;; 22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;; 22BB;XOR;Sm;0;ON;;;;;N;;;;; 22BC;NAND;Sm;0;ON;;;;;N;;;;; 22BD;NOR;Sm;0;ON;;;;;N;;;;; 22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;; 22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; 22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;; 22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;; 22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;; 22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;; 22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;; 22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;; 22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;; 22C8;BOWTIE;Sm;0;ON;;;;;N;;;;; 22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;; 22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;; 22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;; 22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;; 22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;; 22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;; 22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;; 22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;; 22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;; 22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;; 22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;; 22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;; 22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;; 22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;; 22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;; 22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;; 22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;; 22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;; 22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;; 22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;; 22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;; 22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;; 22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;; 22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;; 22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;; 22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;; 22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;; 22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;; 22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;; 22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; 22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; 22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; 22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; 22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;; 22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;; 2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;; 2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;; 2302;HOUSE;So;0;ON;;;;;N;;;;; 2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;; 2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;; 2305;PROJECTIVE;So;0;ON;;;;;N;;;;; 2306;PERSPECTIVE;So;0;ON;;;;;N;;;;; 2307;WAVY LINE;So;0;ON;;;;;N;;;;; 2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;; 2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;; 230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;; 230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;; 230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; 230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; 230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; 230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;; 2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;; 2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;; 2312;ARC;So;0;ON;;;;;N;;;;; 2313;SEGMENT;So;0;ON;;;;;N;;;;; 2314;SECTOR;So;0;ON;;;;;N;;;;; 2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;; 2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;; 2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;; 2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;; 2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;; 231A;WATCH;So;0;ON;;;;;N;;;;; 231B;HOURGLASS;So;0;ON;;;;;N;;;;; 231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;; 231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;; 231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;; 231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;; 2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2322;FROWN;So;0;ON;;;;;N;;;;; 2323;SMILE;So;0;ON;;;;;N;;;;; 2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;; 2325;OPTION KEY;So;0;ON;;;;;N;;;;; 2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;; 2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;; 2328;KEYBOARD;So;0;ON;;;;;N;;;;; 2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;; 232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;; 232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;; 232C;BENZENE RING;So;0;ON;;;;;N;;;;; 232D;CYLINDRICITY;So;0;ON;;;;;N;;;;; 232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;; 232F;SYMMETRY;So;0;ON;;;;;N;;;;; 2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;; 2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;; 2332;CONICAL TAPER;So;0;ON;;;;;N;;;;; 2333;SLOPE;So;0;ON;;;;;N;;;;; 2334;COUNTERBORE;So;0;ON;;;;;N;;;;; 2335;COUNTERSINK;So;0;ON;;;;;N;;;;; 2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;; 2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;; 2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;; 2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;; 233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;; 233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;; 233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;; 233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;; 233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;; 233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;; 2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;; 2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;; 2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;; 2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;; 2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;; 2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;; 2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;; 2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;; 2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;; 2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;; 234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;; 234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;; 234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;; 234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;; 234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;; 234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;; 2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;; 2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;; 2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;; 2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;; 2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;; 2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;; 2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;; 2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;; 2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;; 2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;; 235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;; 235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;; 235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;; 235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;; 235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;; 235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;; 2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;; 2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;; 2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;; 2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;; 2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;; 2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;; 2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;; 2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;; 2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;; 2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;; 236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;; 236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;; 236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;; 236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;; 236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;; 236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;; 2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;; 2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;; 2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;; 2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;; 2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;; 2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;; 2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;; 2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;; 2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;; 2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;; 237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;; 237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;; 237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;; 237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;; 237E;BELL SYMBOL;So;0;ON;;;;;N;;;;; 237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;; 2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;; 2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; 2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; 2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;; 2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;; 2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;; 2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;; 2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;; 2388;HELM SYMBOL;So;0;ON;;;;;N;;;;; 2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;; 238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;; 238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;; 238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;; 238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;; 238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;; 238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;; 2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;; 2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; 2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; 2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;; 2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;; 2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;; 2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;; 2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;; 2398;NEXT PAGE;So;0;ON;;;;;N;;;;; 2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;; 239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;; 239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; 239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; 239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; 239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; 239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; 23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; 23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; 23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; 23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; 23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; 23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; 23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; 23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; 23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; 23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; 23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; 23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; 23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; 23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; 23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;; 23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;; 23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; 23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; 23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;; 23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;; 23B4;TOP SQUARE BRACKET;Ps;0;ON;;;;;N;;;;; 23B5;BOTTOM SQUARE BRACKET;Pe;0;ON;;;;;N;;;;; 23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;Po;0;ON;;;;;N;;;;; 23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;; 23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; 23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; 23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;; 23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;; 23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;; 23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;; 23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;; 23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;; 23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;; 23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; 23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; 23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; 23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; 23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; 23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;; 23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; 23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; 23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;; 23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;; 23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;; 23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;; 23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;; 23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;; 2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;; 2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;; 2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;; 2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;; 2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;; 2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;; 2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;; 2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;; 2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;; 2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;; 240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;; 240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;; 240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;; 240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;; 240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;; 240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;; 2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;; 2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;; 2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;; 2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;; 2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;; 2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;; 2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;; 2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;; 2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;; 2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;; 241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;; 241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;; 241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;; 241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;; 241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;; 241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;; 2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;; 2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;; 2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;; 2423;OPEN BOX;So;0;ON;;;;;N;;;;; 2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;; 2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;; 2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;; 2440;OCR HOOK;So;0;ON;;;;;N;;;;; 2441;OCR CHAIR;So;0;ON;;;;;N;;;;; 2442;OCR FORK;So;0;ON;;;;;N;;;;; 2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;; 2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;; 2445;OCR BOW TIE;So;0;ON;;;;;N;;;;; 2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;; 2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;; 2448;OCR DASH;So;0;ON;;;;;N;;;;; 2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;; 244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;; 2460;CIRCLED DIGIT ONE;No;0;EN; 0031;;1;1;N;;;;; 2461;CIRCLED DIGIT TWO;No;0;EN; 0032;;2;2;N;;;;; 2462;CIRCLED DIGIT THREE;No;0;EN; 0033;;3;3;N;;;;; 2463;CIRCLED DIGIT FOUR;No;0;EN; 0034;;4;4;N;;;;; 2464;CIRCLED DIGIT FIVE;No;0;EN; 0035;;5;5;N;;;;; 2465;CIRCLED DIGIT SIX;No;0;EN; 0036;;6;6;N;;;;; 2466;CIRCLED DIGIT SEVEN;No;0;EN; 0037;;7;7;N;;;;; 2467;CIRCLED DIGIT EIGHT;No;0;EN; 0038;;8;8;N;;;;; 2468;CIRCLED DIGIT NINE;No;0;EN; 0039;;9;9;N;;;;; 2469;CIRCLED NUMBER TEN;No;0;EN; 0031 0030;;;10;N;;;;; 246A;CIRCLED NUMBER ELEVEN;No;0;EN; 0031 0031;;;11;N;;;;; 246B;CIRCLED NUMBER TWELVE;No;0;EN; 0031 0032;;;12;N;;;;; 246C;CIRCLED NUMBER THIRTEEN;No;0;EN; 0031 0033;;;13;N;;;;; 246D;CIRCLED NUMBER FOURTEEN;No;0;EN; 0031 0034;;;14;N;;;;; 246E;CIRCLED NUMBER FIFTEEN;No;0;EN; 0031 0035;;;15;N;;;;; 246F;CIRCLED NUMBER SIXTEEN;No;0;EN; 0031 0036;;;16;N;;;;; 2470;CIRCLED NUMBER SEVENTEEN;No;0;EN; 0031 0037;;;17;N;;;;; 2471;CIRCLED NUMBER EIGHTEEN;No;0;EN; 0031 0038;;;18;N;;;;; 2472;CIRCLED NUMBER NINETEEN;No;0;EN; 0031 0039;;;19;N;;;;; 2473;CIRCLED NUMBER TWENTY;No;0;EN; 0032 0030;;;20;N;;;;; 2474;PARENTHESIZED DIGIT ONE;No;0;EN; 0028 0031 0029;;1;1;N;;;;; 2475;PARENTHESIZED DIGIT TWO;No;0;EN; 0028 0032 0029;;2;2;N;;;;; 2476;PARENTHESIZED DIGIT THREE;No;0;EN; 0028 0033 0029;;3;3;N;;;;; 2477;PARENTHESIZED DIGIT FOUR;No;0;EN; 0028 0034 0029;;4;4;N;;;;; 2478;PARENTHESIZED DIGIT FIVE;No;0;EN; 0028 0035 0029;;5;5;N;;;;; 2479;PARENTHESIZED DIGIT SIX;No;0;EN; 0028 0036 0029;;6;6;N;;;;; 247A;PARENTHESIZED DIGIT SEVEN;No;0;EN; 0028 0037 0029;;7;7;N;;;;; 247B;PARENTHESIZED DIGIT EIGHT;No;0;EN; 0028 0038 0029;;8;8;N;;;;; 247C;PARENTHESIZED DIGIT NINE;No;0;EN; 0028 0039 0029;;9;9;N;;;;; 247D;PARENTHESIZED NUMBER TEN;No;0;EN; 0028 0031 0030 0029;;;10;N;;;;; 247E;PARENTHESIZED NUMBER ELEVEN;No;0;EN; 0028 0031 0031 0029;;;11;N;;;;; 247F;PARENTHESIZED NUMBER TWELVE;No;0;EN; 0028 0031 0032 0029;;;12;N;;;;; 2480;PARENTHESIZED NUMBER THIRTEEN;No;0;EN; 0028 0031 0033 0029;;;13;N;;;;; 2481;PARENTHESIZED NUMBER FOURTEEN;No;0;EN; 0028 0031 0034 0029;;;14;N;;;;; 2482;PARENTHESIZED NUMBER FIFTEEN;No;0;EN; 0028 0031 0035 0029;;;15;N;;;;; 2483;PARENTHESIZED NUMBER SIXTEEN;No;0;EN; 0028 0031 0036 0029;;;16;N;;;;; 2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;EN; 0028 0031 0037 0029;;;17;N;;;;; 2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;EN; 0028 0031 0038 0029;;;18;N;;;;; 2486;PARENTHESIZED NUMBER NINETEEN;No;0;EN; 0028 0031 0039 0029;;;19;N;;;;; 2487;PARENTHESIZED NUMBER TWENTY;No;0;EN; 0028 0032 0030 0029;;;20;N;;;;; 2488;DIGIT ONE FULL STOP;No;0;EN; 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;; 2489;DIGIT TWO FULL STOP;No;0;EN; 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;; 248A;DIGIT THREE FULL STOP;No;0;EN; 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;; 248B;DIGIT FOUR FULL STOP;No;0;EN; 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;; 248C;DIGIT FIVE FULL STOP;No;0;EN; 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;; 248D;DIGIT SIX FULL STOP;No;0;EN; 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;; 248E;DIGIT SEVEN FULL STOP;No;0;EN; 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;; 248F;DIGIT EIGHT FULL STOP;No;0;EN; 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;; 2490;DIGIT NINE FULL STOP;No;0;EN; 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;; 2491;NUMBER TEN FULL STOP;No;0;EN; 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;; 2492;NUMBER ELEVEN FULL STOP;No;0;EN; 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;; 2493;NUMBER TWELVE FULL STOP;No;0;EN; 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;; 2494;NUMBER THIRTEEN FULL STOP;No;0;EN; 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;; 2495;NUMBER FOURTEEN FULL STOP;No;0;EN; 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;; 2496;NUMBER FIFTEEN FULL STOP;No;0;EN; 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;; 2497;NUMBER SIXTEEN FULL STOP;No;0;EN; 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;; 2498;NUMBER SEVENTEEN FULL STOP;No;0;EN; 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;; 2499;NUMBER EIGHTEEN FULL STOP;No;0;EN; 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;; 249A;NUMBER NINETEEN FULL STOP;No;0;EN; 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;; 249B;NUMBER TWENTY FULL STOP;No;0;EN; 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;; 249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L; 0028 0061 0029;;;;N;;;;; 249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L; 0028 0062 0029;;;;N;;;;; 249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L; 0028 0063 0029;;;;N;;;;; 249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L; 0028 0064 0029;;;;N;;;;; 24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L; 0028 0065 0029;;;;N;;;;; 24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L; 0028 0066 0029;;;;N;;;;; 24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L; 0028 0067 0029;;;;N;;;;; 24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L; 0028 0068 0029;;;;N;;;;; 24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L; 0028 0069 0029;;;;N;;;;; 24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L; 0028 006A 0029;;;;N;;;;; 24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L; 0028 006B 0029;;;;N;;;;; 24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L; 0028 006C 0029;;;;N;;;;; 24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L; 0028 006D 0029;;;;N;;;;; 24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L; 0028 006E 0029;;;;N;;;;; 24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L; 0028 006F 0029;;;;N;;;;; 24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L; 0028 0070 0029;;;;N;;;;; 24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L; 0028 0071 0029;;;;N;;;;; 24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L; 0028 0072 0029;;;;N;;;;; 24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L; 0028 0073 0029;;;;N;;;;; 24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L; 0028 0074 0029;;;;N;;;;; 24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L; 0028 0075 0029;;;;N;;;;; 24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L; 0028 0076 0029;;;;N;;;;; 24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L; 0028 0077 0029;;;;N;;;;; 24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L; 0028 0078 0029;;;;N;;;;; 24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L; 0028 0079 0029;;;;N;;;;; 24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L; 0028 007A 0029;;;;N;;;;; 24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L; 0041;;;;N;;;;24D0; 24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L; 0042;;;;N;;;;24D1; 24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L; 0043;;;;N;;;;24D2; 24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L; 0044;;;;N;;;;24D3; 24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L; 0045;;;;N;;;;24D4; 24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L; 0046;;;;N;;;;24D5; 24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L; 0047;;;;N;;;;24D6; 24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L; 0048;;;;N;;;;24D7; 24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L; 0049;;;;N;;;;24D8; 24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L; 004A;;;;N;;;;24D9; 24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L; 004B;;;;N;;;;24DA; 24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L; 004C;;;;N;;;;24DB; 24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L; 004D;;;;N;;;;24DC; 24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L; 004E;;;;N;;;;24DD; 24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L; 004F;;;;N;;;;24DE; 24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L; 0050;;;;N;;;;24DF; 24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L; 0051;;;;N;;;;24E0; 24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L; 0052;;;;N;;;;24E1; 24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L; 0053;;;;N;;;;24E2; 24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L; 0054;;;;N;;;;24E3; 24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L; 0055;;;;N;;;;24E4; 24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L; 0056;;;;N;;;;24E5; 24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L; 0057;;;;N;;;;24E6; 24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L; 0058;;;;N;;;;24E7; 24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L; 0059;;;;N;;;;24E8; 24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L; 005A;;;;N;;;;24E9; 24D0;CIRCLED LATIN SMALL LETTER A;So;0;L; 0061;;;;N;;;24B6;;24B6 24D1;CIRCLED LATIN SMALL LETTER B;So;0;L; 0062;;;;N;;;24B7;;24B7 24D2;CIRCLED LATIN SMALL LETTER C;So;0;L; 0063;;;;N;;;24B8;;24B8 24D3;CIRCLED LATIN SMALL LETTER D;So;0;L; 0064;;;;N;;;24B9;;24B9 24D4;CIRCLED LATIN SMALL LETTER E;So;0;L; 0065;;;;N;;;24BA;;24BA 24D5;CIRCLED LATIN SMALL LETTER F;So;0;L; 0066;;;;N;;;24BB;;24BB 24D6;CIRCLED LATIN SMALL LETTER G;So;0;L; 0067;;;;N;;;24BC;;24BC 24D7;CIRCLED LATIN SMALL LETTER H;So;0;L; 0068;;;;N;;;24BD;;24BD 24D8;CIRCLED LATIN SMALL LETTER I;So;0;L; 0069;;;;N;;;24BE;;24BE 24D9;CIRCLED LATIN SMALL LETTER J;So;0;L; 006A;;;;N;;;24BF;;24BF 24DA;CIRCLED LATIN SMALL LETTER K;So;0;L; 006B;;;;N;;;24C0;;24C0 24DB;CIRCLED LATIN SMALL LETTER L;So;0;L; 006C;;;;N;;;24C1;;24C1 24DC;CIRCLED LATIN SMALL LETTER M;So;0;L; 006D;;;;N;;;24C2;;24C2 24DD;CIRCLED LATIN SMALL LETTER N;So;0;L; 006E;;;;N;;;24C3;;24C3 24DE;CIRCLED LATIN SMALL LETTER O;So;0;L; 006F;;;;N;;;24C4;;24C4 24DF;CIRCLED LATIN SMALL LETTER P;So;0;L; 0070;;;;N;;;24C5;;24C5 24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L; 0071;;;;N;;;24C6;;24C6 24E1;CIRCLED LATIN SMALL LETTER R;So;0;L; 0072;;;;N;;;24C7;;24C7 24E2;CIRCLED LATIN SMALL LETTER S;So;0;L; 0073;;;;N;;;24C8;;24C8 24E3;CIRCLED LATIN SMALL LETTER T;So;0;L; 0074;;;;N;;;24C9;;24C9 24E4;CIRCLED LATIN SMALL LETTER U;So;0;L; 0075;;;;N;;;24CA;;24CA 24E5;CIRCLED LATIN SMALL LETTER V;So;0;L; 0076;;;;N;;;24CB;;24CB 24E6;CIRCLED LATIN SMALL LETTER W;So;0;L; 0077;;;;N;;;24CC;;24CC 24E7;CIRCLED LATIN SMALL LETTER X;So;0;L; 0078;;;;N;;;24CD;;24CD 24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L; 0079;;;;N;;;24CE;;24CE 24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L; 007A;;;;N;;;24CF;;24CF 24EA;CIRCLED DIGIT ZERO;No;0;EN; 0030;;0;0;N;;;;; 24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;; 24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;; 24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;; 24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;; 24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;; 24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;; 24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;; 24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;; 24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;; 24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;; 24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;; 24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;; 24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;; 24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;; 24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;; 24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;; 24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;; 24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;; 24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;; 24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;; 2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;; 2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;; 2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;; 2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;; 2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;; 2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;; 2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;; 2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;; 2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;; 2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;; 250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;; 250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;; 250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;; 250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;; 250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;; 250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;; 2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;; 2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;; 2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;; 2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;; 2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;; 2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;; 2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;; 2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;; 2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;; 2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;; 251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;; 251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;; 251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;; 251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;; 251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;; 251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;; 2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;; 2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;; 2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;; 2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;; 2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;; 2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;; 2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;; 2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;; 2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;; 2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;; 252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;; 252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;; 252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;; 252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;; 252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;; 252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;; 2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;; 2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;; 2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;; 2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;; 2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;; 2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;; 2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;; 2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;; 2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;; 2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;; 253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;; 253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;; 253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;; 253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;; 253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;; 253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;; 2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;; 2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;; 2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;; 2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;; 2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;; 2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;; 2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;; 2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;; 2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;; 2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;; 254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;; 254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;; 254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;; 254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;; 254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;; 254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;; 2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;; 2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;; 2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;; 2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;; 2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;; 2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;; 2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;; 2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;; 2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;; 2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;; 255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;; 255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;; 255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;; 255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;; 255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;; 255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;; 2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;; 2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;; 2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;; 2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;; 2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;; 2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;; 2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;; 2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;; 2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;; 2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;; 256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;; 256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;; 256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;; 256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;; 256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;; 256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;; 2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;; 2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;; 2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;; 2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;; 2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;; 2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;; 2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;; 2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;; 2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;; 2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;; 257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;; 257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;; 257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;; 257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;; 257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;; 257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;; 2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;; 2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; 2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;; 2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;; 2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 2588;FULL BLOCK;So;0;ON;;;;;N;;;;; 2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;; 258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;; 258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; 258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;; 2591;LIGHT SHADE;So;0;ON;;;;;N;;;;; 2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;; 2593;DARK SHADE;So;0;ON;;;;;N;;;;; 2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;; 2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;; 2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;; 2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; 259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;; 259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; 259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;; 25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;; 25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;; 25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; 25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;; 25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; 25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; 25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;; 25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;; 25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; 25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; 25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;; 25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;; 25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;; 25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; 25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; 25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;; 25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;; 25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;; 25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;; 25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;; 25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;; 25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;; 25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;; 25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;; 25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;; 25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;; 25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;; 25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;; 25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;; 25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;; 25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;; 25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;; 25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;; 25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;; 25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;; 25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;; 25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;; 25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;; 25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;; 25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;; 25C9;FISHEYE;So;0;ON;;;;;N;;;;; 25CA;LOZENGE;So;0;ON;;;;;N;;;;; 25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;; 25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; 25CE;BULLSEYE;So;0;ON;;;;;N;;;;; 25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;; 25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; 25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; 25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;; 25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;; 25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;; 25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;; 25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; 25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; 25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;; 25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;; 25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;; 25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; 25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; 25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; 25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; 25E6;WHITE BULLET;So;0;ON;;;;;N;;;;; 25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; 25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; 25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; 25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; 25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;; 25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;; 25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;; 25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;; 25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;; 25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; 25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; 25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; 25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; 25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; 25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; 25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; 25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; 2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;; 2601;CLOUD;So;0;ON;;;;;N;;;;; 2602;UMBRELLA;So;0;ON;;;;;N;;;;; 2603;SNOWMAN;So;0;ON;;;;;N;;;;; 2604;COMET;So;0;ON;;;;;N;;;;; 2605;BLACK STAR;So;0;ON;;;;;N;;;;; 2606;WHITE STAR;So;0;ON;;;;;N;;;;; 2607;LIGHTNING;So;0;ON;;;;;N;;;;; 2608;THUNDERSTORM;So;0;ON;;;;;N;;;;; 2609;SUN;So;0;ON;;;;;N;;;;; 260A;ASCENDING NODE;So;0;ON;;;;;N;;;;; 260B;DESCENDING NODE;So;0;ON;;;;;N;;;;; 260C;CONJUNCTION;So;0;ON;;;;;N;;;;; 260D;OPPOSITION;So;0;ON;;;;;N;;;;; 260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;; 260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;; 2610;BALLOT BOX;So;0;ON;;;;;N;;;;; 2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;; 2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;; 2613;SALTIRE;So;0;ON;;;;;N;;;;; 2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;; 2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;; 2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; 261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; 261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; 261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; 261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;; 261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; 261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;; 2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;; 2621;CAUTION SIGN;So;0;ON;;;;;N;;;;; 2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;; 2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;; 2624;CADUCEUS;So;0;ON;;;;;N;;;;; 2625;ANKH;So;0;ON;;;;;N;;;;; 2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;; 2627;CHI RHO;So;0;ON;;;;;N;;;;; 2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;; 2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;; 262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;; 262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;; 262C;ADI SHAKTI;So;0;ON;;;;;N;;;;; 262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;; 262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;; 262F;YIN YANG;So;0;ON;;;;;N;;;;; 2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;; 2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;; 2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;; 2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;; 2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;; 2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;; 2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;; 2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;; 2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;; 2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;; 263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;; 263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;; 263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;; 263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;; 263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;; 263F;MERCURY;So;0;ON;;;;;N;;;;; 2640;FEMALE SIGN;So;0;ON;;;;;N;;;;; 2641;EARTH;So;0;ON;;;;;N;;;;; 2642;MALE SIGN;So;0;ON;;;;;N;;;;; 2643;JUPITER;So;0;ON;;;;;N;;;;; 2644;SATURN;So;0;ON;;;;;N;;;;; 2645;URANUS;So;0;ON;;;;;N;;;;; 2646;NEPTUNE;So;0;ON;;;;;N;;;;; 2647;PLUTO;So;0;ON;;;;;N;;;;; 2648;ARIES;So;0;ON;;;;;N;;;;; 2649;TAURUS;So;0;ON;;;;;N;;;;; 264A;GEMINI;So;0;ON;;;;;N;;;;; 264B;CANCER;So;0;ON;;;;;N;;;;; 264C;LEO;So;0;ON;;;;;N;;;;; 264D;VIRGO;So;0;ON;;;;;N;;;;; 264E;LIBRA;So;0;ON;;;;;N;;;;; 264F;SCORPIUS;So;0;ON;;;;;N;;;;; 2650;SAGITTARIUS;So;0;ON;;;;;N;;;;; 2651;CAPRICORN;So;0;ON;;;;;N;;;;; 2652;AQUARIUS;So;0;ON;;;;;N;;;;; 2653;PISCES;So;0;ON;;;;;N;;;;; 2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;; 2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;; 2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;; 2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;; 2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;; 2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;; 265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;; 265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;; 265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;; 265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;; 265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;; 265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;; 2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;; 2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;; 2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;; 2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;; 2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;; 2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;; 2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;; 2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;; 2668;HOT SPRINGS;So;0;ON;;;;;N;;;;; 2669;QUARTER NOTE;So;0;ON;;;;;N;;;;; 266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;; 266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;; 266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;; 266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;; 266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;; 266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;; 2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;; 2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;; 2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; 2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;; 2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;; 2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;; 2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;; 2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;; 2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;; 2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;; 267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;; 267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; 267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; 267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; 2680;DIE FACE-1;So;0;ON;;;;;N;;;;; 2681;DIE FACE-2;So;0;ON;;;;;N;;;;; 2682;DIE FACE-3;So;0;ON;;;;;N;;;;; 2683;DIE FACE-4;So;0;ON;;;;;N;;;;; 2684;DIE FACE-5;So;0;ON;;;;;N;;;;; 2685;DIE FACE-6;So;0;ON;;;;;N;;;;; 2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;; 2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;; 2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;; 2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;; 2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;; 2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;; 2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;; 2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;; 2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;; 2707;TAPE DRIVE;So;0;ON;;;;;N;;;;; 2708;AIRPLANE;So;0;ON;;;;;N;;;;; 2709;ENVELOPE;So;0;ON;;;;;N;;;;; 270C;VICTORY HAND;So;0;ON;;;;;N;;;;; 270D;WRITING HAND;So;0;ON;;;;;N;;;;; 270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;; 270F;PENCIL;So;0;ON;;;;;N;;;;; 2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;; 2711;WHITE NIB;So;0;ON;;;;;N;;;;; 2712;BLACK NIB;So;0;ON;;;;;N;;;;; 2713;CHECK MARK;So;0;ON;;;;;N;;;;; 2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;; 2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;; 2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;; 2717;BALLOT X;So;0;ON;;;;;N;;;;; 2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;; 2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;; 271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;; 271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;; 271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;; 271D;LATIN CROSS;So;0;ON;;;;;N;;;;; 271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;; 271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;; 2720;MALTESE CROSS;So;0;ON;;;;;N;;;;; 2721;STAR OF DAVID;So;0;ON;;;;;N;;;;; 2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;; 2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;; 2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;; 272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;; 272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;; 272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;; 272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; 272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; 272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;; 2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;; 2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;; 2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;; 2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;; 2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;; 2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;; 2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; 2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; 2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;; 273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;; 273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;; 273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;; 273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;; 2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;; 2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;; 2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;; 2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;; 2744;SNOWFLAKE;So;0;ON;;;;;N;;;;; 2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;; 2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;; 2747;SPARKLE;So;0;ON;;;;;N;;;;; 2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;; 2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; 274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; 274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;; 274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;; 2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;; 2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;; 275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;; 275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;; 2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;; 2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;; 2766;FLORAL HEART;So;0;ON;;;;;N;;;;; 2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; 2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; 276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; 276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; 276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;; 276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;; 2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;; 2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;; 2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;; 277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;; 277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;; 277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;; 277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;; 277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;; 277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;; 2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;; 2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;; 2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;; 2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;; 2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;; 2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;; 2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;; 2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;; 2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;; 2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;; 278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;; 278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;; 278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;; 278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;; 278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;; 278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;; 2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;; 2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;; 2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;; 2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;; 2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;; 2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;; 2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;; 279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;; 279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;; 279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;; 279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;; 279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;; 279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;; 27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;; 27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;; 27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;; 27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;; 27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;; 27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;; 27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;; 27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;; 27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;; 27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;; 27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;; 27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;; 27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;; 27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;; 27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;; 27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;; 27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;; 27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;; 27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;; 27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;; 27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;; 27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;; 27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;; 27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;; 27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;; 27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;; 27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;; 27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;; 27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;; 27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; 27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; 27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; 27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; 27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;; 27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;; 27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;; 27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;; 27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;; 27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;; 27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;; 27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;; 27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;; 27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;; 27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;; 27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;; 27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; 27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; 27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; 27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; 27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; 27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; 27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; 27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; 27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;; 2800;BRAILLE PATTERN BLANK;So;0;ON;;;;;N;;;;; 2801;BRAILLE PATTERN DOTS-1;So;0;ON;;;;;N;;;;; 2802;BRAILLE PATTERN DOTS-2;So;0;ON;;;;;N;;;;; 2803;BRAILLE PATTERN DOTS-12;So;0;ON;;;;;N;;;;; 2804;BRAILLE PATTERN DOTS-3;So;0;ON;;;;;N;;;;; 2805;BRAILLE PATTERN DOTS-13;So;0;ON;;;;;N;;;;; 2806;BRAILLE PATTERN DOTS-23;So;0;ON;;;;;N;;;;; 2807;BRAILLE PATTERN DOTS-123;So;0;ON;;;;;N;;;;; 2808;BRAILLE PATTERN DOTS-4;So;0;ON;;;;;N;;;;; 2809;BRAILLE PATTERN DOTS-14;So;0;ON;;;;;N;;;;; 280A;BRAILLE PATTERN DOTS-24;So;0;ON;;;;;N;;;;; 280B;BRAILLE PATTERN DOTS-124;So;0;ON;;;;;N;;;;; 280C;BRAILLE PATTERN DOTS-34;So;0;ON;;;;;N;;;;; 280D;BRAILLE PATTERN DOTS-134;So;0;ON;;;;;N;;;;; 280E;BRAILLE PATTERN DOTS-234;So;0;ON;;;;;N;;;;; 280F;BRAILLE PATTERN DOTS-1234;So;0;ON;;;;;N;;;;; 2810;BRAILLE PATTERN DOTS-5;So;0;ON;;;;;N;;;;; 2811;BRAILLE PATTERN DOTS-15;So;0;ON;;;;;N;;;;; 2812;BRAILLE PATTERN DOTS-25;So;0;ON;;;;;N;;;;; 2813;BRAILLE PATTERN DOTS-125;So;0;ON;;;;;N;;;;; 2814;BRAILLE PATTERN DOTS-35;So;0;ON;;;;;N;;;;; 2815;BRAILLE PATTERN DOTS-135;So;0;ON;;;;;N;;;;; 2816;BRAILLE PATTERN DOTS-235;So;0;ON;;;;;N;;;;; 2817;BRAILLE PATTERN DOTS-1235;So;0;ON;;;;;N;;;;; 2818;BRAILLE PATTERN DOTS-45;So;0;ON;;;;;N;;;;; 2819;BRAILLE PATTERN DOTS-145;So;0;ON;;;;;N;;;;; 281A;BRAILLE PATTERN DOTS-245;So;0;ON;;;;;N;;;;; 281B;BRAILLE PATTERN DOTS-1245;So;0;ON;;;;;N;;;;; 281C;BRAILLE PATTERN DOTS-345;So;0;ON;;;;;N;;;;; 281D;BRAILLE PATTERN DOTS-1345;So;0;ON;;;;;N;;;;; 281E;BRAILLE PATTERN DOTS-2345;So;0;ON;;;;;N;;;;; 281F;BRAILLE PATTERN DOTS-12345;So;0;ON;;;;;N;;;;; 2820;BRAILLE PATTERN DOTS-6;So;0;ON;;;;;N;;;;; 2821;BRAILLE PATTERN DOTS-16;So;0;ON;;;;;N;;;;; 2822;BRAILLE PATTERN DOTS-26;So;0;ON;;;;;N;;;;; 2823;BRAILLE PATTERN DOTS-126;So;0;ON;;;;;N;;;;; 2824;BRAILLE PATTERN DOTS-36;So;0;ON;;;;;N;;;;; 2825;BRAILLE PATTERN DOTS-136;So;0;ON;;;;;N;;;;; 2826;BRAILLE PATTERN DOTS-236;So;0;ON;;;;;N;;;;; 2827;BRAILLE PATTERN DOTS-1236;So;0;ON;;;;;N;;;;; 2828;BRAILLE PATTERN DOTS-46;So;0;ON;;;;;N;;;;; 2829;BRAILLE PATTERN DOTS-146;So;0;ON;;;;;N;;;;; 282A;BRAILLE PATTERN DOTS-246;So;0;ON;;;;;N;;;;; 282B;BRAILLE PATTERN DOTS-1246;So;0;ON;;;;;N;;;;; 282C;BRAILLE PATTERN DOTS-346;So;0;ON;;;;;N;;;;; 282D;BRAILLE PATTERN DOTS-1346;So;0;ON;;;;;N;;;;; 282E;BRAILLE PATTERN DOTS-2346;So;0;ON;;;;;N;;;;; 282F;BRAILLE PATTERN DOTS-12346;So;0;ON;;;;;N;;;;; 2830;BRAILLE PATTERN DOTS-56;So;0;ON;;;;;N;;;;; 2831;BRAILLE PATTERN DOTS-156;So;0;ON;;;;;N;;;;; 2832;BRAILLE PATTERN DOTS-256;So;0;ON;;;;;N;;;;; 2833;BRAILLE PATTERN DOTS-1256;So;0;ON;;;;;N;;;;; 2834;BRAILLE PATTERN DOTS-356;So;0;ON;;;;;N;;;;; 2835;BRAILLE PATTERN DOTS-1356;So;0;ON;;;;;N;;;;; 2836;BRAILLE PATTERN DOTS-2356;So;0;ON;;;;;N;;;;; 2837;BRAILLE PATTERN DOTS-12356;So;0;ON;;;;;N;;;;; 2838;BRAILLE PATTERN DOTS-456;So;0;ON;;;;;N;;;;; 2839;BRAILLE PATTERN DOTS-1456;So;0;ON;;;;;N;;;;; 283A;BRAILLE PATTERN DOTS-2456;So;0;ON;;;;;N;;;;; 283B;BRAILLE PATTERN DOTS-12456;So;0;ON;;;;;N;;;;; 283C;BRAILLE PATTERN DOTS-3456;So;0;ON;;;;;N;;;;; 283D;BRAILLE PATTERN DOTS-13456;So;0;ON;;;;;N;;;;; 283E;BRAILLE PATTERN DOTS-23456;So;0;ON;;;;;N;;;;; 283F;BRAILLE PATTERN DOTS-123456;So;0;ON;;;;;N;;;;; 2840;BRAILLE PATTERN DOTS-7;So;0;ON;;;;;N;;;;; 2841;BRAILLE PATTERN DOTS-17;So;0;ON;;;;;N;;;;; 2842;BRAILLE PATTERN DOTS-27;So;0;ON;;;;;N;;;;; 2843;BRAILLE PATTERN DOTS-127;So;0;ON;;;;;N;;;;; 2844;BRAILLE PATTERN DOTS-37;So;0;ON;;;;;N;;;;; 2845;BRAILLE PATTERN DOTS-137;So;0;ON;;;;;N;;;;; 2846;BRAILLE PATTERN DOTS-237;So;0;ON;;;;;N;;;;; 2847;BRAILLE PATTERN DOTS-1237;So;0;ON;;;;;N;;;;; 2848;BRAILLE PATTERN DOTS-47;So;0;ON;;;;;N;;;;; 2849;BRAILLE PATTERN DOTS-147;So;0;ON;;;;;N;;;;; 284A;BRAILLE PATTERN DOTS-247;So;0;ON;;;;;N;;;;; 284B;BRAILLE PATTERN DOTS-1247;So;0;ON;;;;;N;;;;; 284C;BRAILLE PATTERN DOTS-347;So;0;ON;;;;;N;;;;; 284D;BRAILLE PATTERN DOTS-1347;So;0;ON;;;;;N;;;;; 284E;BRAILLE PATTERN DOTS-2347;So;0;ON;;;;;N;;;;; 284F;BRAILLE PATTERN DOTS-12347;So;0;ON;;;;;N;;;;; 2850;BRAILLE PATTERN DOTS-57;So;0;ON;;;;;N;;;;; 2851;BRAILLE PATTERN DOTS-157;So;0;ON;;;;;N;;;;; 2852;BRAILLE PATTERN DOTS-257;So;0;ON;;;;;N;;;;; 2853;BRAILLE PATTERN DOTS-1257;So;0;ON;;;;;N;;;;; 2854;BRAILLE PATTERN DOTS-357;So;0;ON;;;;;N;;;;; 2855;BRAILLE PATTERN DOTS-1357;So;0;ON;;;;;N;;;;; 2856;BRAILLE PATTERN DOTS-2357;So;0;ON;;;;;N;;;;; 2857;BRAILLE PATTERN DOTS-12357;So;0;ON;;;;;N;;;;; 2858;BRAILLE PATTERN DOTS-457;So;0;ON;;;;;N;;;;; 2859;BRAILLE PATTERN DOTS-1457;So;0;ON;;;;;N;;;;; 285A;BRAILLE PATTERN DOTS-2457;So;0;ON;;;;;N;;;;; 285B;BRAILLE PATTERN DOTS-12457;So;0;ON;;;;;N;;;;; 285C;BRAILLE PATTERN DOTS-3457;So;0;ON;;;;;N;;;;; 285D;BRAILLE PATTERN DOTS-13457;So;0;ON;;;;;N;;;;; 285E;BRAILLE PATTERN DOTS-23457;So;0;ON;;;;;N;;;;; 285F;BRAILLE PATTERN DOTS-123457;So;0;ON;;;;;N;;;;; 2860;BRAILLE PATTERN DOTS-67;So;0;ON;;;;;N;;;;; 2861;BRAILLE PATTERN DOTS-167;So;0;ON;;;;;N;;;;; 2862;BRAILLE PATTERN DOTS-267;So;0;ON;;;;;N;;;;; 2863;BRAILLE PATTERN DOTS-1267;So;0;ON;;;;;N;;;;; 2864;BRAILLE PATTERN DOTS-367;So;0;ON;;;;;N;;;;; 2865;BRAILLE PATTERN DOTS-1367;So;0;ON;;;;;N;;;;; 2866;BRAILLE PATTERN DOTS-2367;So;0;ON;;;;;N;;;;; 2867;BRAILLE PATTERN DOTS-12367;So;0;ON;;;;;N;;;;; 2868;BRAILLE PATTERN DOTS-467;So;0;ON;;;;;N;;;;; 2869;BRAILLE PATTERN DOTS-1467;So;0;ON;;;;;N;;;;; 286A;BRAILLE PATTERN DOTS-2467;So;0;ON;;;;;N;;;;; 286B;BRAILLE PATTERN DOTS-12467;So;0;ON;;;;;N;;;;; 286C;BRAILLE PATTERN DOTS-3467;So;0;ON;;;;;N;;;;; 286D;BRAILLE PATTERN DOTS-13467;So;0;ON;;;;;N;;;;; 286E;BRAILLE PATTERN DOTS-23467;So;0;ON;;;;;N;;;;; 286F;BRAILLE PATTERN DOTS-123467;So;0;ON;;;;;N;;;;; 2870;BRAILLE PATTERN DOTS-567;So;0;ON;;;;;N;;;;; 2871;BRAILLE PATTERN DOTS-1567;So;0;ON;;;;;N;;;;; 2872;BRAILLE PATTERN DOTS-2567;So;0;ON;;;;;N;;;;; 2873;BRAILLE PATTERN DOTS-12567;So;0;ON;;;;;N;;;;; 2874;BRAILLE PATTERN DOTS-3567;So;0;ON;;;;;N;;;;; 2875;BRAILLE PATTERN DOTS-13567;So;0;ON;;;;;N;;;;; 2876;BRAILLE PATTERN DOTS-23567;So;0;ON;;;;;N;;;;; 2877;BRAILLE PATTERN DOTS-123567;So;0;ON;;;;;N;;;;; 2878;BRAILLE PATTERN DOTS-4567;So;0;ON;;;;;N;;;;; 2879;BRAILLE PATTERN DOTS-14567;So;0;ON;;;;;N;;;;; 287A;BRAILLE PATTERN DOTS-24567;So;0;ON;;;;;N;;;;; 287B;BRAILLE PATTERN DOTS-124567;So;0;ON;;;;;N;;;;; 287C;BRAILLE PATTERN DOTS-34567;So;0;ON;;;;;N;;;;; 287D;BRAILLE PATTERN DOTS-134567;So;0;ON;;;;;N;;;;; 287E;BRAILLE PATTERN DOTS-234567;So;0;ON;;;;;N;;;;; 287F;BRAILLE PATTERN DOTS-1234567;So;0;ON;;;;;N;;;;; 2880;BRAILLE PATTERN DOTS-8;So;0;ON;;;;;N;;;;; 2881;BRAILLE PATTERN DOTS-18;So;0;ON;;;;;N;;;;; 2882;BRAILLE PATTERN DOTS-28;So;0;ON;;;;;N;;;;; 2883;BRAILLE PATTERN DOTS-128;So;0;ON;;;;;N;;;;; 2884;BRAILLE PATTERN DOTS-38;So;0;ON;;;;;N;;;;; 2885;BRAILLE PATTERN DOTS-138;So;0;ON;;;;;N;;;;; 2886;BRAILLE PATTERN DOTS-238;So;0;ON;;;;;N;;;;; 2887;BRAILLE PATTERN DOTS-1238;So;0;ON;;;;;N;;;;; 2888;BRAILLE PATTERN DOTS-48;So;0;ON;;;;;N;;;;; 2889;BRAILLE PATTERN DOTS-148;So;0;ON;;;;;N;;;;; 288A;BRAILLE PATTERN DOTS-248;So;0;ON;;;;;N;;;;; 288B;BRAILLE PATTERN DOTS-1248;So;0;ON;;;;;N;;;;; 288C;BRAILLE PATTERN DOTS-348;So;0;ON;;;;;N;;;;; 288D;BRAILLE PATTERN DOTS-1348;So;0;ON;;;;;N;;;;; 288E;BRAILLE PATTERN DOTS-2348;So;0;ON;;;;;N;;;;; 288F;BRAILLE PATTERN DOTS-12348;So;0;ON;;;;;N;;;;; 2890;BRAILLE PATTERN DOTS-58;So;0;ON;;;;;N;;;;; 2891;BRAILLE PATTERN DOTS-158;So;0;ON;;;;;N;;;;; 2892;BRAILLE PATTERN DOTS-258;So;0;ON;;;;;N;;;;; 2893;BRAILLE PATTERN DOTS-1258;So;0;ON;;;;;N;;;;; 2894;BRAILLE PATTERN DOTS-358;So;0;ON;;;;;N;;;;; 2895;BRAILLE PATTERN DOTS-1358;So;0;ON;;;;;N;;;;; 2896;BRAILLE PATTERN DOTS-2358;So;0;ON;;;;;N;;;;; 2897;BRAILLE PATTERN DOTS-12358;So;0;ON;;;;;N;;;;; 2898;BRAILLE PATTERN DOTS-458;So;0;ON;;;;;N;;;;; 2899;BRAILLE PATTERN DOTS-1458;So;0;ON;;;;;N;;;;; 289A;BRAILLE PATTERN DOTS-2458;So;0;ON;;;;;N;;;;; 289B;BRAILLE PATTERN DOTS-12458;So;0;ON;;;;;N;;;;; 289C;BRAILLE PATTERN DOTS-3458;So;0;ON;;;;;N;;;;; 289D;BRAILLE PATTERN DOTS-13458;So;0;ON;;;;;N;;;;; 289E;BRAILLE PATTERN DOTS-23458;So;0;ON;;;;;N;;;;; 289F;BRAILLE PATTERN DOTS-123458;So;0;ON;;;;;N;;;;; 28A0;BRAILLE PATTERN DOTS-68;So;0;ON;;;;;N;;;;; 28A1;BRAILLE PATTERN DOTS-168;So;0;ON;;;;;N;;;;; 28A2;BRAILLE PATTERN DOTS-268;So;0;ON;;;;;N;;;;; 28A3;BRAILLE PATTERN DOTS-1268;So;0;ON;;;;;N;;;;; 28A4;BRAILLE PATTERN DOTS-368;So;0;ON;;;;;N;;;;; 28A5;BRAILLE PATTERN DOTS-1368;So;0;ON;;;;;N;;;;; 28A6;BRAILLE PATTERN DOTS-2368;So;0;ON;;;;;N;;;;; 28A7;BRAILLE PATTERN DOTS-12368;So;0;ON;;;;;N;;;;; 28A8;BRAILLE PATTERN DOTS-468;So;0;ON;;;;;N;;;;; 28A9;BRAILLE PATTERN DOTS-1468;So;0;ON;;;;;N;;;;; 28AA;BRAILLE PATTERN DOTS-2468;So;0;ON;;;;;N;;;;; 28AB;BRAILLE PATTERN DOTS-12468;So;0;ON;;;;;N;;;;; 28AC;BRAILLE PATTERN DOTS-3468;So;0;ON;;;;;N;;;;; 28AD;BRAILLE PATTERN DOTS-13468;So;0;ON;;;;;N;;;;; 28AE;BRAILLE PATTERN DOTS-23468;So;0;ON;;;;;N;;;;; 28AF;BRAILLE PATTERN DOTS-123468;So;0;ON;;;;;N;;;;; 28B0;BRAILLE PATTERN DOTS-568;So;0;ON;;;;;N;;;;; 28B1;BRAILLE PATTERN DOTS-1568;So;0;ON;;;;;N;;;;; 28B2;BRAILLE PATTERN DOTS-2568;So;0;ON;;;;;N;;;;; 28B3;BRAILLE PATTERN DOTS-12568;So;0;ON;;;;;N;;;;; 28B4;BRAILLE PATTERN DOTS-3568;So;0;ON;;;;;N;;;;; 28B5;BRAILLE PATTERN DOTS-13568;So;0;ON;;;;;N;;;;; 28B6;BRAILLE PATTERN DOTS-23568;So;0;ON;;;;;N;;;;; 28B7;BRAILLE PATTERN DOTS-123568;So;0;ON;;;;;N;;;;; 28B8;BRAILLE PATTERN DOTS-4568;So;0;ON;;;;;N;;;;; 28B9;BRAILLE PATTERN DOTS-14568;So;0;ON;;;;;N;;;;; 28BA;BRAILLE PATTERN DOTS-24568;So;0;ON;;;;;N;;;;; 28BB;BRAILLE PATTERN DOTS-124568;So;0;ON;;;;;N;;;;; 28BC;BRAILLE PATTERN DOTS-34568;So;0;ON;;;;;N;;;;; 28BD;BRAILLE PATTERN DOTS-134568;So;0;ON;;;;;N;;;;; 28BE;BRAILLE PATTERN DOTS-234568;So;0;ON;;;;;N;;;;; 28BF;BRAILLE PATTERN DOTS-1234568;So;0;ON;;;;;N;;;;; 28C0;BRAILLE PATTERN DOTS-78;So;0;ON;;;;;N;;;;; 28C1;BRAILLE PATTERN DOTS-178;So;0;ON;;;;;N;;;;; 28C2;BRAILLE PATTERN DOTS-278;So;0;ON;;;;;N;;;;; 28C3;BRAILLE PATTERN DOTS-1278;So;0;ON;;;;;N;;;;; 28C4;BRAILLE PATTERN DOTS-378;So;0;ON;;;;;N;;;;; 28C5;BRAILLE PATTERN DOTS-1378;So;0;ON;;;;;N;;;;; 28C6;BRAILLE PATTERN DOTS-2378;So;0;ON;;;;;N;;;;; 28C7;BRAILLE PATTERN DOTS-12378;So;0;ON;;;;;N;;;;; 28C8;BRAILLE PATTERN DOTS-478;So;0;ON;;;;;N;;;;; 28C9;BRAILLE PATTERN DOTS-1478;So;0;ON;;;;;N;;;;; 28CA;BRAILLE PATTERN DOTS-2478;So;0;ON;;;;;N;;;;; 28CB;BRAILLE PATTERN DOTS-12478;So;0;ON;;;;;N;;;;; 28CC;BRAILLE PATTERN DOTS-3478;So;0;ON;;;;;N;;;;; 28CD;BRAILLE PATTERN DOTS-13478;So;0;ON;;;;;N;;;;; 28CE;BRAILLE PATTERN DOTS-23478;So;0;ON;;;;;N;;;;; 28CF;BRAILLE PATTERN DOTS-123478;So;0;ON;;;;;N;;;;; 28D0;BRAILLE PATTERN DOTS-578;So;0;ON;;;;;N;;;;; 28D1;BRAILLE PATTERN DOTS-1578;So;0;ON;;;;;N;;;;; 28D2;BRAILLE PATTERN DOTS-2578;So;0;ON;;;;;N;;;;; 28D3;BRAILLE PATTERN DOTS-12578;So;0;ON;;;;;N;;;;; 28D4;BRAILLE PATTERN DOTS-3578;So;0;ON;;;;;N;;;;; 28D5;BRAILLE PATTERN DOTS-13578;So;0;ON;;;;;N;;;;; 28D6;BRAILLE PATTERN DOTS-23578;So;0;ON;;;;;N;;;;; 28D7;BRAILLE PATTERN DOTS-123578;So;0;ON;;;;;N;;;;; 28D8;BRAILLE PATTERN DOTS-4578;So;0;ON;;;;;N;;;;; 28D9;BRAILLE PATTERN DOTS-14578;So;0;ON;;;;;N;;;;; 28DA;BRAILLE PATTERN DOTS-24578;So;0;ON;;;;;N;;;;; 28DB;BRAILLE PATTERN DOTS-124578;So;0;ON;;;;;N;;;;; 28DC;BRAILLE PATTERN DOTS-34578;So;0;ON;;;;;N;;;;; 28DD;BRAILLE PATTERN DOTS-134578;So;0;ON;;;;;N;;;;; 28DE;BRAILLE PATTERN DOTS-234578;So;0;ON;;;;;N;;;;; 28DF;BRAILLE PATTERN DOTS-1234578;So;0;ON;;;;;N;;;;; 28E0;BRAILLE PATTERN DOTS-678;So;0;ON;;;;;N;;;;; 28E1;BRAILLE PATTERN DOTS-1678;So;0;ON;;;;;N;;;;; 28E2;BRAILLE PATTERN DOTS-2678;So;0;ON;;;;;N;;;;; 28E3;BRAILLE PATTERN DOTS-12678;So;0;ON;;;;;N;;;;; 28E4;BRAILLE PATTERN DOTS-3678;So;0;ON;;;;;N;;;;; 28E5;BRAILLE PATTERN DOTS-13678;So;0;ON;;;;;N;;;;; 28E6;BRAILLE PATTERN DOTS-23678;So;0;ON;;;;;N;;;;; 28E7;BRAILLE PATTERN DOTS-123678;So;0;ON;;;;;N;;;;; 28E8;BRAILLE PATTERN DOTS-4678;So;0;ON;;;;;N;;;;; 28E9;BRAILLE PATTERN DOTS-14678;So;0;ON;;;;;N;;;;; 28EA;BRAILLE PATTERN DOTS-24678;So;0;ON;;;;;N;;;;; 28EB;BRAILLE PATTERN DOTS-124678;So;0;ON;;;;;N;;;;; 28EC;BRAILLE PATTERN DOTS-34678;So;0;ON;;;;;N;;;;; 28ED;BRAILLE PATTERN DOTS-134678;So;0;ON;;;;;N;;;;; 28EE;BRAILLE PATTERN DOTS-234678;So;0;ON;;;;;N;;;;; 28EF;BRAILLE PATTERN DOTS-1234678;So;0;ON;;;;;N;;;;; 28F0;BRAILLE PATTERN DOTS-5678;So;0;ON;;;;;N;;;;; 28F1;BRAILLE PATTERN DOTS-15678;So;0;ON;;;;;N;;;;; 28F2;BRAILLE PATTERN DOTS-25678;So;0;ON;;;;;N;;;;; 28F3;BRAILLE PATTERN DOTS-125678;So;0;ON;;;;;N;;;;; 28F4;BRAILLE PATTERN DOTS-35678;So;0;ON;;;;;N;;;;; 28F5;BRAILLE PATTERN DOTS-135678;So;0;ON;;;;;N;;;;; 28F6;BRAILLE PATTERN DOTS-235678;So;0;ON;;;;;N;;;;; 28F7;BRAILLE PATTERN DOTS-1235678;So;0;ON;;;;;N;;;;; 28F8;BRAILLE PATTERN DOTS-45678;So;0;ON;;;;;N;;;;; 28F9;BRAILLE PATTERN DOTS-145678;So;0;ON;;;;;N;;;;; 28FA;BRAILLE PATTERN DOTS-245678;So;0;ON;;;;;N;;;;; 28FB;BRAILLE PATTERN DOTS-1245678;So;0;ON;;;;;N;;;;; 28FC;BRAILLE PATTERN DOTS-345678;So;0;ON;;;;;N;;;;; 28FD;BRAILLE PATTERN DOTS-1345678;So;0;ON;;;;;N;;;;; 28FE;BRAILLE PATTERN DOTS-2345678;So;0;ON;;;;;N;;;;; 28FF;BRAILLE PATTERN DOTS-12345678;So;0;ON;;;;;N;;;;; 2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; 290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; 290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;; 2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; 2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; 2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;; 2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;; 292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;; 292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;; 2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;; 2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;; 2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;; 2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;; 2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;; 293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;; 293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; 2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; 2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; 2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; 294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; 294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; 294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; 294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; 294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; 2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; 2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; 2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; 2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; 2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; 2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; 2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; 2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; 2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; 2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; 295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; 295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; 295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; 295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; 295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; 295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; 2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; 2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; 2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; 2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; 2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; 296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; 296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; 296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; 296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;; 2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; 2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; 2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; 2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;; 2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;; 297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;; 297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;; 297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;; 297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;; 2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;; 2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;; 2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;; 2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;; 2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;; 2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;; 2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;; 2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;; 2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;; 2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;; 298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;; 298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;; 298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;; 298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;; 298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;; 298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;; 2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;; 2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;; 2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;; 2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; 2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; 2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; 2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; 2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;; 2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;; 2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;; 299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;; 299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; 299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;; 299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;; 299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;; 299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;; 29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; 29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; 29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;; 29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;; 29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; 29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;; 29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;; 29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;; 29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;; 29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;; 29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;; 29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;; 29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;; 29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;; 29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;; 29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; 29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; 29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;; 29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;; 29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; 29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;; 29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;; 29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; 29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;; 29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;; 29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;; 29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;; 29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; 29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; 29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; 29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; 29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;; 29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;; 29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;; 29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;; 29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;; 29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;; 29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; 29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;; 29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;; 29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;; 29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; 29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; 29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; 29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; 29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;; 29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;; 29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;; 29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;; 29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;; 29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;; 29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; 29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; 29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; 29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;; 29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;; 29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; 29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;; 29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; 29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; 29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;; 29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;; 29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;; 29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;; 29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;; 29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;; 29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; 29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;; 29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; 29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;; 29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;; 29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; 29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; 29FE;TINY;Sm;0;ON;;;;;N;;;;; 29FF;MINY;Sm;0;ON;;;;;N;;;;; 2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;; 2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; 2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;; 2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;; 2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;; 2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;; 2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;; 2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;; 2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; 2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;; 2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON; 222B 222B 222B 222B;;;;Y;;;;; 2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;; 2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;; 2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;; 2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;; 2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; 2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; 2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;; 2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;; 2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;; 2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;; 2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;; 2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 2A1D;JOIN;Sm;0;ON;;;;;N;;;;; 2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;; 2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;; 2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;; 2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;; 2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; 2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; 2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;; 2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;; 2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;; 2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; 2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;; 2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; 2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;; 2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;; 2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; 2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;; 2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;; 2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; 2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; 2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; 2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;; 2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;; 2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;; 2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;; 2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;; 2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;; 2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;; 2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;; 2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;; 2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;; 2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; 2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;; 2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;; 2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; 2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; 2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; 2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; 2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; 2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; 2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; 2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; 2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; 2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; 2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;; 2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;; 2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;; 2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;; 2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;; 2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A74;DOUBLE COLON EQUAL;Sm;0;ON; 003A 003A 003D;;;;Y;;;;; 2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON; 003D 003D;;;;N;;;;; 2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON; 003D 003D 003D;;;;N;;;;; 2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;; 2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;; 2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; 2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; 2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; 2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; 2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;; 2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;; 2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; 2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; 2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; 2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; 2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;; 2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;; 2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; 2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; 2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;; 2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;; 2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;; 2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;; 2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;; 2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;; 2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;; 2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; 2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; 2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;; 2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;; 2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; 2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; 2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; 2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; 2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;; 2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;; 2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;; 2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;; 2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;; 2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;; 2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;; 2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;; 2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; 2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;; 2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;; 2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;; 2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; 2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;; 2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;; 2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; 2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; 2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;; 2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; 2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; 2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;; 2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;; 2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;; 2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;; 2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;; 2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;; 2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;; 2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;; 2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;; 2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;; 2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;; 2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;; 2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;; 2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;; 2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;; 2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;; 2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;; 2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;; 2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;; 2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;; 2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;; 2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;; 2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;; 2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;; 2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;; 2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;; 2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;; 2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;; 2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;; 2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;; 2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;; 2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;; 2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;; 2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;; 2E9F;CJK RADICAL MOTHER;So;0;ON; 6BCD;;;;N;;;;; 2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;; 2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;; 2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;; 2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;; 2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;; 2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;; 2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;; 2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;; 2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;; 2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;; 2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;; 2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;; 2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;; 2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;; 2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;; 2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;; 2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;; 2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;; 2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;; 2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;; 2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;; 2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;; 2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;; 2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;; 2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;; 2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;; 2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;; 2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;; 2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;; 2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;; 2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;; 2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;; 2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;; 2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;; 2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;; 2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;; 2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;; 2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;; 2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;; 2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;; 2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;; 2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;; 2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;; 2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;; 2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;; 2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;; 2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;; 2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;; 2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;; 2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;; 2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;; 2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;; 2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;; 2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;; 2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;; 2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;; 2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;; 2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;; 2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;; 2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;; 2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;; 2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;; 2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;; 2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;; 2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;; 2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;; 2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;; 2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;; 2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;; 2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;; 2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;; 2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;; 2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;; 2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;; 2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;; 2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; 2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; 2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; 2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; 2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; 2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; 2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;; 2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;; 2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON; 9F9F;;;;N;;;;; 2F00;KANGXI RADICAL ONE;So;0;ON; 4E00;;;;N;;;;; 2F01;KANGXI RADICAL LINE;So;0;ON; 4E28;;;;N;;;;; 2F02;KANGXI RADICAL DOT;So;0;ON; 4E36;;;;N;;;;; 2F03;KANGXI RADICAL SLASH;So;0;ON; 4E3F;;;;N;;;;; 2F04;KANGXI RADICAL SECOND;So;0;ON; 4E59;;;;N;;;;; 2F05;KANGXI RADICAL HOOK;So;0;ON; 4E85;;;;N;;;;; 2F06;KANGXI RADICAL TWO;So;0;ON; 4E8C;;;;N;;;;; 2F07;KANGXI RADICAL LID;So;0;ON; 4EA0;;;;N;;;;; 2F08;KANGXI RADICAL MAN;So;0;ON; 4EBA;;;;N;;;;; 2F09;KANGXI RADICAL LEGS;So;0;ON; 513F;;;;N;;;;; 2F0A;KANGXI RADICAL ENTER;So;0;ON; 5165;;;;N;;;;; 2F0B;KANGXI RADICAL EIGHT;So;0;ON; 516B;;;;N;;;;; 2F0C;KANGXI RADICAL DOWN BOX;So;0;ON; 5182;;;;N;;;;; 2F0D;KANGXI RADICAL COVER;So;0;ON; 5196;;;;N;;;;; 2F0E;KANGXI RADICAL ICE;So;0;ON; 51AB;;;;N;;;;; 2F0F;KANGXI RADICAL TABLE;So;0;ON; 51E0;;;;N;;;;; 2F10;KANGXI RADICAL OPEN BOX;So;0;ON; 51F5;;;;N;;;;; 2F11;KANGXI RADICAL KNIFE;So;0;ON; 5200;;;;N;;;;; 2F12;KANGXI RADICAL POWER;So;0;ON; 529B;;;;N;;;;; 2F13;KANGXI RADICAL WRAP;So;0;ON; 52F9;;;;N;;;;; 2F14;KANGXI RADICAL SPOON;So;0;ON; 5315;;;;N;;;;; 2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON; 531A;;;;N;;;;; 2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON; 5338;;;;N;;;;; 2F17;KANGXI RADICAL TEN;So;0;ON; 5341;;;;N;;;;; 2F18;KANGXI RADICAL DIVINATION;So;0;ON; 535C;;;;N;;;;; 2F19;KANGXI RADICAL SEAL;So;0;ON; 5369;;;;N;;;;; 2F1A;KANGXI RADICAL CLIFF;So;0;ON; 5382;;;;N;;;;; 2F1B;KANGXI RADICAL PRIVATE;So;0;ON; 53B6;;;;N;;;;; 2F1C;KANGXI RADICAL AGAIN;So;0;ON; 53C8;;;;N;;;;; 2F1D;KANGXI RADICAL MOUTH;So;0;ON; 53E3;;;;N;;;;; 2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON; 56D7;;;;N;;;;; 2F1F;KANGXI RADICAL EARTH;So;0;ON; 571F;;;;N;;;;; 2F20;KANGXI RADICAL SCHOLAR;So;0;ON; 58EB;;;;N;;;;; 2F21;KANGXI RADICAL GO;So;0;ON; 5902;;;;N;;;;; 2F22;KANGXI RADICAL GO SLOWLY;So;0;ON; 590A;;;;N;;;;; 2F23;KANGXI RADICAL EVENING;So;0;ON; 5915;;;;N;;;;; 2F24;KANGXI RADICAL BIG;So;0;ON; 5927;;;;N;;;;; 2F25;KANGXI RADICAL WOMAN;So;0;ON; 5973;;;;N;;;;; 2F26;KANGXI RADICAL CHILD;So;0;ON; 5B50;;;;N;;;;; 2F27;KANGXI RADICAL ROOF;So;0;ON; 5B80;;;;N;;;;; 2F28;KANGXI RADICAL INCH;So;0;ON; 5BF8;;;;N;;;;; 2F29;KANGXI RADICAL SMALL;So;0;ON; 5C0F;;;;N;;;;; 2F2A;KANGXI RADICAL LAME;So;0;ON; 5C22;;;;N;;;;; 2F2B;KANGXI RADICAL CORPSE;So;0;ON; 5C38;;;;N;;;;; 2F2C;KANGXI RADICAL SPROUT;So;0;ON; 5C6E;;;;N;;;;; 2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON; 5C71;;;;N;;;;; 2F2E;KANGXI RADICAL RIVER;So;0;ON; 5DDB;;;;N;;;;; 2F2F;KANGXI RADICAL WORK;So;0;ON; 5DE5;;;;N;;;;; 2F30;KANGXI RADICAL ONESELF;So;0;ON; 5DF1;;;;N;;;;; 2F31;KANGXI RADICAL TURBAN;So;0;ON; 5DFE;;;;N;;;;; 2F32;KANGXI RADICAL DRY;So;0;ON; 5E72;;;;N;;;;; 2F33;KANGXI RADICAL SHORT THREAD;So;0;ON; 5E7A;;;;N;;;;; 2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON; 5E7F;;;;N;;;;; 2F35;KANGXI RADICAL LONG STRIDE;So;0;ON; 5EF4;;;;N;;;;; 2F36;KANGXI RADICAL TWO HANDS;So;0;ON; 5EFE;;;;N;;;;; 2F37;KANGXI RADICAL SHOOT;So;0;ON; 5F0B;;;;N;;;;; 2F38;KANGXI RADICAL BOW;So;0;ON; 5F13;;;;N;;;;; 2F39;KANGXI RADICAL SNOUT;So;0;ON; 5F50;;;;N;;;;; 2F3A;KANGXI RADICAL BRISTLE;So;0;ON; 5F61;;;;N;;;;; 2F3B;KANGXI RADICAL STEP;So;0;ON; 5F73;;;;N;;;;; 2F3C;KANGXI RADICAL HEART;So;0;ON; 5FC3;;;;N;;;;; 2F3D;KANGXI RADICAL HALBERD;So;0;ON; 6208;;;;N;;;;; 2F3E;KANGXI RADICAL DOOR;So;0;ON; 6236;;;;N;;;;; 2F3F;KANGXI RADICAL HAND;So;0;ON; 624B;;;;N;;;;; 2F40;KANGXI RADICAL BRANCH;So;0;ON; 652F;;;;N;;;;; 2F41;KANGXI RADICAL RAP;So;0;ON; 6534;;;;N;;;;; 2F42;KANGXI RADICAL SCRIPT;So;0;ON; 6587;;;;N;;;;; 2F43;KANGXI RADICAL DIPPER;So;0;ON; 6597;;;;N;;;;; 2F44;KANGXI RADICAL AXE;So;0;ON; 65A4;;;;N;;;;; 2F45;KANGXI RADICAL SQUARE;So;0;ON; 65B9;;;;N;;;;; 2F46;KANGXI RADICAL NOT;So;0;ON; 65E0;;;;N;;;;; 2F47;KANGXI RADICAL SUN;So;0;ON; 65E5;;;;N;;;;; 2F48;KANGXI RADICAL SAY;So;0;ON; 66F0;;;;N;;;;; 2F49;KANGXI RADICAL MOON;So;0;ON; 6708;;;;N;;;;; 2F4A;KANGXI RADICAL TREE;So;0;ON; 6728;;;;N;;;;; 2F4B;KANGXI RADICAL LACK;So;0;ON; 6B20;;;;N;;;;; 2F4C;KANGXI RADICAL STOP;So;0;ON; 6B62;;;;N;;;;; 2F4D;KANGXI RADICAL DEATH;So;0;ON; 6B79;;;;N;;;;; 2F4E;KANGXI RADICAL WEAPON;So;0;ON; 6BB3;;;;N;;;;; 2F4F;KANGXI RADICAL DO NOT;So;0;ON; 6BCB;;;;N;;;;; 2F50;KANGXI RADICAL COMPARE;So;0;ON; 6BD4;;;;N;;;;; 2F51;KANGXI RADICAL FUR;So;0;ON; 6BDB;;;;N;;;;; 2F52;KANGXI RADICAL CLAN;So;0;ON; 6C0F;;;;N;;;;; 2F53;KANGXI RADICAL STEAM;So;0;ON; 6C14;;;;N;;;;; 2F54;KANGXI RADICAL WATER;So;0;ON; 6C34;;;;N;;;;; 2F55;KANGXI RADICAL FIRE;So;0;ON; 706B;;;;N;;;;; 2F56;KANGXI RADICAL CLAW;So;0;ON; 722A;;;;N;;;;; 2F57;KANGXI RADICAL FATHER;So;0;ON; 7236;;;;N;;;;; 2F58;KANGXI RADICAL DOUBLE X;So;0;ON; 723B;;;;N;;;;; 2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON; 723F;;;;N;;;;; 2F5A;KANGXI RADICAL SLICE;So;0;ON; 7247;;;;N;;;;; 2F5B;KANGXI RADICAL FANG;So;0;ON; 7259;;;;N;;;;; 2F5C;KANGXI RADICAL COW;So;0;ON; 725B;;;;N;;;;; 2F5D;KANGXI RADICAL DOG;So;0;ON; 72AC;;;;N;;;;; 2F5E;KANGXI RADICAL PROFOUND;So;0;ON; 7384;;;;N;;;;; 2F5F;KANGXI RADICAL JADE;So;0;ON; 7389;;;;N;;;;; 2F60;KANGXI RADICAL MELON;So;0;ON; 74DC;;;;N;;;;; 2F61;KANGXI RADICAL TILE;So;0;ON; 74E6;;;;N;;;;; 2F62;KANGXI RADICAL SWEET;So;0;ON; 7518;;;;N;;;;; 2F63;KANGXI RADICAL LIFE;So;0;ON; 751F;;;;N;;;;; 2F64;KANGXI RADICAL USE;So;0;ON; 7528;;;;N;;;;; 2F65;KANGXI RADICAL FIELD;So;0;ON; 7530;;;;N;;;;; 2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON; 758B;;;;N;;;;; 2F67;KANGXI RADICAL SICKNESS;So;0;ON; 7592;;;;N;;;;; 2F68;KANGXI RADICAL DOTTED TENT;So;0;ON; 7676;;;;N;;;;; 2F69;KANGXI RADICAL WHITE;So;0;ON; 767D;;;;N;;;;; 2F6A;KANGXI RADICAL SKIN;So;0;ON; 76AE;;;;N;;;;; 2F6B;KANGXI RADICAL DISH;So;0;ON; 76BF;;;;N;;;;; 2F6C;KANGXI RADICAL EYE;So;0;ON; 76EE;;;;N;;;;; 2F6D;KANGXI RADICAL SPEAR;So;0;ON; 77DB;;;;N;;;;; 2F6E;KANGXI RADICAL ARROW;So;0;ON; 77E2;;;;N;;;;; 2F6F;KANGXI RADICAL STONE;So;0;ON; 77F3;;;;N;;;;; 2F70;KANGXI RADICAL SPIRIT;So;0;ON; 793A;;;;N;;;;; 2F71;KANGXI RADICAL TRACK;So;0;ON; 79B8;;;;N;;;;; 2F72;KANGXI RADICAL GRAIN;So;0;ON; 79BE;;;;N;;;;; 2F73;KANGXI RADICAL CAVE;So;0;ON; 7A74;;;;N;;;;; 2F74;KANGXI RADICAL STAND;So;0;ON; 7ACB;;;;N;;;;; 2F75;KANGXI RADICAL BAMBOO;So;0;ON; 7AF9;;;;N;;;;; 2F76;KANGXI RADICAL RICE;So;0;ON; 7C73;;;;N;;;;; 2F77;KANGXI RADICAL SILK;So;0;ON; 7CF8;;;;N;;;;; 2F78;KANGXI RADICAL JAR;So;0;ON; 7F36;;;;N;;;;; 2F79;KANGXI RADICAL NET;So;0;ON; 7F51;;;;N;;;;; 2F7A;KANGXI RADICAL SHEEP;So;0;ON; 7F8A;;;;N;;;;; 2F7B;KANGXI RADICAL FEATHER;So;0;ON; 7FBD;;;;N;;;;; 2F7C;KANGXI RADICAL OLD;So;0;ON; 8001;;;;N;;;;; 2F7D;KANGXI RADICAL AND;So;0;ON; 800C;;;;N;;;;; 2F7E;KANGXI RADICAL PLOW;So;0;ON; 8012;;;;N;;;;; 2F7F;KANGXI RADICAL EAR;So;0;ON; 8033;;;;N;;;;; 2F80;KANGXI RADICAL BRUSH;So;0;ON; 807F;;;;N;;;;; 2F81;KANGXI RADICAL MEAT;So;0;ON; 8089;;;;N;;;;; 2F82;KANGXI RADICAL MINISTER;So;0;ON; 81E3;;;;N;;;;; 2F83;KANGXI RADICAL SELF;So;0;ON; 81EA;;;;N;;;;; 2F84;KANGXI RADICAL ARRIVE;So;0;ON; 81F3;;;;N;;;;; 2F85;KANGXI RADICAL MORTAR;So;0;ON; 81FC;;;;N;;;;; 2F86;KANGXI RADICAL TONGUE;So;0;ON; 820C;;;;N;;;;; 2F87;KANGXI RADICAL OPPOSE;So;0;ON; 821B;;;;N;;;;; 2F88;KANGXI RADICAL BOAT;So;0;ON; 821F;;;;N;;;;; 2F89;KANGXI RADICAL STOPPING;So;0;ON; 826E;;;;N;;;;; 2F8A;KANGXI RADICAL COLOR;So;0;ON; 8272;;;;N;;;;; 2F8B;KANGXI RADICAL GRASS;So;0;ON; 8278;;;;N;;;;; 2F8C;KANGXI RADICAL TIGER;So;0;ON; 864D;;;;N;;;;; 2F8D;KANGXI RADICAL INSECT;So;0;ON; 866B;;;;N;;;;; 2F8E;KANGXI RADICAL BLOOD;So;0;ON; 8840;;;;N;;;;; 2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON; 884C;;;;N;;;;; 2F90;KANGXI RADICAL CLOTHES;So;0;ON; 8863;;;;N;;;;; 2F91;KANGXI RADICAL WEST;So;0;ON; 897E;;;;N;;;;; 2F92;KANGXI RADICAL SEE;So;0;ON; 898B;;;;N;;;;; 2F93;KANGXI RADICAL HORN;So;0;ON; 89D2;;;;N;;;;; 2F94;KANGXI RADICAL SPEECH;So;0;ON; 8A00;;;;N;;;;; 2F95;KANGXI RADICAL VALLEY;So;0;ON; 8C37;;;;N;;;;; 2F96;KANGXI RADICAL BEAN;So;0;ON; 8C46;;;;N;;;;; 2F97;KANGXI RADICAL PIG;So;0;ON; 8C55;;;;N;;;;; 2F98;KANGXI RADICAL BADGER;So;0;ON; 8C78;;;;N;;;;; 2F99;KANGXI RADICAL SHELL;So;0;ON; 8C9D;;;;N;;;;; 2F9A;KANGXI RADICAL RED;So;0;ON; 8D64;;;;N;;;;; 2F9B;KANGXI RADICAL RUN;So;0;ON; 8D70;;;;N;;;;; 2F9C;KANGXI RADICAL FOOT;So;0;ON; 8DB3;;;;N;;;;; 2F9D;KANGXI RADICAL BODY;So;0;ON; 8EAB;;;;N;;;;; 2F9E;KANGXI RADICAL CART;So;0;ON; 8ECA;;;;N;;;;; 2F9F;KANGXI RADICAL BITTER;So;0;ON; 8F9B;;;;N;;;;; 2FA0;KANGXI RADICAL MORNING;So;0;ON; 8FB0;;;;N;;;;; 2FA1;KANGXI RADICAL WALK;So;0;ON; 8FB5;;;;N;;;;; 2FA2;KANGXI RADICAL CITY;So;0;ON; 9091;;;;N;;;;; 2FA3;KANGXI RADICAL WINE;So;0;ON; 9149;;;;N;;;;; 2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON; 91C6;;;;N;;;;; 2FA5;KANGXI RADICAL VILLAGE;So;0;ON; 91CC;;;;N;;;;; 2FA6;KANGXI RADICAL GOLD;So;0;ON; 91D1;;;;N;;;;; 2FA7;KANGXI RADICAL LONG;So;0;ON; 9577;;;;N;;;;; 2FA8;KANGXI RADICAL GATE;So;0;ON; 9580;;;;N;;;;; 2FA9;KANGXI RADICAL MOUND;So;0;ON; 961C;;;;N;;;;; 2FAA;KANGXI RADICAL SLAVE;So;0;ON; 96B6;;;;N;;;;; 2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON; 96B9;;;;N;;;;; 2FAC;KANGXI RADICAL RAIN;So;0;ON; 96E8;;;;N;;;;; 2FAD;KANGXI RADICAL BLUE;So;0;ON; 9751;;;;N;;;;; 2FAE;KANGXI RADICAL WRONG;So;0;ON; 975E;;;;N;;;;; 2FAF;KANGXI RADICAL FACE;So;0;ON; 9762;;;;N;;;;; 2FB0;KANGXI RADICAL LEATHER;So;0;ON; 9769;;;;N;;;;; 2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON; 97CB;;;;N;;;;; 2FB2;KANGXI RADICAL LEEK;So;0;ON; 97ED;;;;N;;;;; 2FB3;KANGXI RADICAL SOUND;So;0;ON; 97F3;;;;N;;;;; 2FB4;KANGXI RADICAL LEAF;So;0;ON; 9801;;;;N;;;;; 2FB5;KANGXI RADICAL WIND;So;0;ON; 98A8;;;;N;;;;; 2FB6;KANGXI RADICAL FLY;So;0;ON; 98DB;;;;N;;;;; 2FB7;KANGXI RADICAL EAT;So;0;ON; 98DF;;;;N;;;;; 2FB8;KANGXI RADICAL HEAD;So;0;ON; 9996;;;;N;;;;; 2FB9;KANGXI RADICAL FRAGRANT;So;0;ON; 9999;;;;N;;;;; 2FBA;KANGXI RADICAL HORSE;So;0;ON; 99AC;;;;N;;;;; 2FBB;KANGXI RADICAL BONE;So;0;ON; 9AA8;;;;N;;;;; 2FBC;KANGXI RADICAL TALL;So;0;ON; 9AD8;;;;N;;;;; 2FBD;KANGXI RADICAL HAIR;So;0;ON; 9ADF;;;;N;;;;; 2FBE;KANGXI RADICAL FIGHT;So;0;ON; 9B25;;;;N;;;;; 2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON; 9B2F;;;;N;;;;; 2FC0;KANGXI RADICAL CAULDRON;So;0;ON; 9B32;;;;N;;;;; 2FC1;KANGXI RADICAL GHOST;So;0;ON; 9B3C;;;;N;;;;; 2FC2;KANGXI RADICAL FISH;So;0;ON; 9B5A;;;;N;;;;; 2FC3;KANGXI RADICAL BIRD;So;0;ON; 9CE5;;;;N;;;;; 2FC4;KANGXI RADICAL SALT;So;0;ON; 9E75;;;;N;;;;; 2FC5;KANGXI RADICAL DEER;So;0;ON; 9E7F;;;;N;;;;; 2FC6;KANGXI RADICAL WHEAT;So;0;ON; 9EA5;;;;N;;;;; 2FC7;KANGXI RADICAL HEMP;So;0;ON; 9EBB;;;;N;;;;; 2FC8;KANGXI RADICAL YELLOW;So;0;ON; 9EC3;;;;N;;;;; 2FC9;KANGXI RADICAL MILLET;So;0;ON; 9ECD;;;;N;;;;; 2FCA;KANGXI RADICAL BLACK;So;0;ON; 9ED1;;;;N;;;;; 2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON; 9EF9;;;;N;;;;; 2FCC;KANGXI RADICAL FROG;So;0;ON; 9EFD;;;;N;;;;; 2FCD;KANGXI RADICAL TRIPOD;So;0;ON; 9F0E;;;;N;;;;; 2FCE;KANGXI RADICAL DRUM;So;0;ON; 9F13;;;;N;;;;; 2FCF;KANGXI RADICAL RAT;So;0;ON; 9F20;;;;N;;;;; 2FD0;KANGXI RADICAL NOSE;So;0;ON; 9F3B;;;;N;;;;; 2FD1;KANGXI RADICAL EVEN;So;0;ON; 9F4A;;;;N;;;;; 2FD2;KANGXI RADICAL TOOTH;So;0;ON; 9F52;;;;N;;;;; 2FD3;KANGXI RADICAL DRAGON;So;0;ON; 9F8D;;;;N;;;;; 2FD4;KANGXI RADICAL TURTLE;So;0;ON; 9F9C;;;;N;;;;; 2FD5;KANGXI RADICAL FLUTE;So;0;ON; 9FA0;;;;N;;;;; 2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;; 2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;; 2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;; 2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;; 2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;; 2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;; 2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;; 2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;; 2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;; 2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;; 2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;; 2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;; 3000;IDEOGRAPHIC SPACE;Zs;0;WS; 0020;;;;N;;;;; 3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;; 3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;; 3003;DITTO MARK;Po;0;ON;;;;;N;;;;; 3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;; 3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; 3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;; 3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;; 3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;; 3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;; 300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;; 300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;; 300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;; 300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;; 300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;; 300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;; 3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;; 3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;; 3012;POSTAL MARK;So;0;ON;;;;;N;;;;; 3013;GETA MARK;So;0;ON;;;;;N;;;;; 3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;; 3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;; 3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;; 3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;; 3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;; 3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;; 301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;; 301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;; 301C;WAVE DASH;Pd;0;ON;;;;;N;;;;; 301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;; 301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; 301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; 3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;; 3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;; 3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;; 3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;; 3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;; 3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;; 3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;; 3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;; 3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;; 3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;; 302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;; 302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;; 302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;; 302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;; 302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;; 302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;; 3030;WAVY DASH;Pd;0;ON;;;;;N;;;;; 3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;; 3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;; 3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;; 3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;; 3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;; 3036;CIRCLED POSTAL MARK;So;0;ON; 3012;;;;N;;;;; 3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;; 3038;HANGZHOU NUMERAL TEN;Nl;0;L; 5341;;;10;N;;;;; 3039;HANGZHOU NUMERAL TWENTY;Nl;0;L; 5344;;;20;N;;;;; 303A;HANGZHOU NUMERAL THIRTY;Nl;0;L; 5345;;;30;N;;;;; 303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; 303C;MASU MARK;Lo;0;L;;;;;N;;;;; 303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;; 303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;; 303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;; 3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; 3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;; 3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; 3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;; 3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; 3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;; 3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; 3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;; 3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; 304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;; 304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;; 304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;; 304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;; 304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;; 304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;; 3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;; 3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;; 3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;; 3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;; 3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;; 3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;; 3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;; 3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;; 3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;; 3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;; 305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;; 305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;; 305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;; 305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;; 305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;; 305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;; 3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;; 3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;; 3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;; 3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; 3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;; 3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;; 3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;; 3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;; 3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;; 3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;; 306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;; 306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;; 306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;; 306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;; 306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;; 306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;; 3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;; 3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;; 3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;; 3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;; 3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;; 3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;; 3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;; 3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;; 3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;; 3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;; 307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;; 307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;; 307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;; 307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;; 307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;; 307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;; 3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;; 3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;; 3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;; 3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; 3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;; 3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; 3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;; 3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; 3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;; 3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;; 308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;; 308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;; 308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;; 308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;; 308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; 308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;; 3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;; 3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;; 3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;; 3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;; 3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;; 3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; 3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; 3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;; 309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;; 309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON; 0020 3099;;;;N;;;;; 309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON; 0020 309A;;;;N;;;;; 309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;; 309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;; 309F;HIRAGANA DIGRAPH YORI;Lo;0;L; 3088 308A;;;;N;;;;; 30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;; 30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; 30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;; 30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; 30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;; 30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; 30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;; 30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; 30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;; 30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; 30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;; 30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;; 30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;; 30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;; 30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;; 30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;; 30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;; 30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;; 30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;; 30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;; 30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;; 30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;; 30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;; 30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;; 30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;; 30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;; 30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;; 30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;; 30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;; 30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;; 30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;; 30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;; 30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;; 30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;; 30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;; 30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; 30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;; 30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;; 30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;; 30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;; 30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;; 30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;; 30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;; 30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;; 30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;; 30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;; 30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;; 30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;; 30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;; 30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;; 30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;; 30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;; 30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;; 30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;; 30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;; 30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;; 30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;; 30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;; 30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;; 30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;; 30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;; 30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;; 30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;; 30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;; 30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;; 30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;; 30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;; 30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; 30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;; 30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; 30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;; 30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; 30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;; 30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;; 30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;; 30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;; 30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;; 30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;; 30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; 30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;; 30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;; 30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;; 30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;; 30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;; 30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;; 30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; 30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; 30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;; 30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;; 30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;; 30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;; 30FB;KATAKANA MIDDLE DOT;Pc;0;ON;;;;;N;;;;; 30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;; 30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;; 30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;; 30FF;KATAKANA DIGRAPH KOTO;Lo;0;L; 30B3 30C8;;;;N;;;;; 3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;; 3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;; 3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;; 3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;; 3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;; 310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;; 310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;; 310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;; 310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;; 310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;; 310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;; 3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;; 3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;; 3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;; 3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;; 3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;; 3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;; 3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;; 3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;; 3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;; 3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;; 311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;; 311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;; 311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;; 311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;; 311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;; 311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;; 3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;; 3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;; 3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;; 3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;; 3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;; 3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;; 3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;; 3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;; 3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;; 3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;; 312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;; 312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;; 312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;; 3131;HANGUL LETTER KIYEOK;Lo;0;L; 1100;;;;N;HANGUL LETTER GIYEOG;;;; 3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L; 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;; 3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; 3134;HANGUL LETTER NIEUN;Lo;0;L; 1102;;;;N;;;;; 3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L; 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;; 3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L; 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;; 3137;HANGUL LETTER TIKEUT;Lo;0;L; 1103;;;;N;HANGUL LETTER DIGEUD;;;; 3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L; 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;; 3139;HANGUL LETTER RIEUL;Lo;0;L; 1105;;;;N;HANGUL LETTER LIEUL;;;; 313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L; 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;; 313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L; 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;; 313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L; 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;; 313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L; 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;; 313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L; 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;; 313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L; 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;; 3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L; 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;; 3141;HANGUL LETTER MIEUM;Lo;0;L; 1106;;;;N;;;;; 3142;HANGUL LETTER PIEUP;Lo;0;L; 1107;;;;N;HANGUL LETTER BIEUB;;;; 3143;HANGUL LETTER SSANGPIEUP;Lo;0;L; 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;; 3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L; 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;; 3145;HANGUL LETTER SIOS;Lo;0;L; 1109;;;;N;;;;; 3146;HANGUL LETTER SSANGSIOS;Lo;0;L; 110A;;;;N;HANGUL LETTER SSANG SIOS;;;; 3147;HANGUL LETTER IEUNG;Lo;0;L; 110B;;;;N;;;;; 3148;HANGUL LETTER CIEUC;Lo;0;L; 110C;;;;N;HANGUL LETTER JIEUJ;;;; 3149;HANGUL LETTER SSANGCIEUC;Lo;0;L; 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;; 314A;HANGUL LETTER CHIEUCH;Lo;0;L; 110E;;;;N;HANGUL LETTER CIEUC;;;; 314B;HANGUL LETTER KHIEUKH;Lo;0;L; 110F;;;;N;HANGUL LETTER KIYEOK;;;; 314C;HANGUL LETTER THIEUTH;Lo;0;L; 1110;;;;N;HANGUL LETTER TIEUT;;;; 314D;HANGUL LETTER PHIEUPH;Lo;0;L; 1111;;;;N;HANGUL LETTER PIEUP;;;; 314E;HANGUL LETTER HIEUH;Lo;0;L; 1112;;;;N;;;;; 314F;HANGUL LETTER A;Lo;0;L; 1161;;;;N;;;;; 3150;HANGUL LETTER AE;Lo;0;L; 1162;;;;N;;;;; 3151;HANGUL LETTER YA;Lo;0;L; 1163;;;;N;;;;; 3152;HANGUL LETTER YAE;Lo;0;L; 1164;;;;N;;;;; 3153;HANGUL LETTER EO;Lo;0;L; 1165;;;;N;;;;; 3154;HANGUL LETTER E;Lo;0;L; 1166;;;;N;;;;; 3155;HANGUL LETTER YEO;Lo;0;L; 1167;;;;N;;;;; 3156;HANGUL LETTER YE;Lo;0;L; 1168;;;;N;;;;; 3157;HANGUL LETTER O;Lo;0;L; 1169;;;;N;;;;; 3158;HANGUL LETTER WA;Lo;0;L; 116A;;;;N;;;;; 3159;HANGUL LETTER WAE;Lo;0;L; 116B;;;;N;;;;; 315A;HANGUL LETTER OE;Lo;0;L; 116C;;;;N;;;;; 315B;HANGUL LETTER YO;Lo;0;L; 116D;;;;N;;;;; 315C;HANGUL LETTER U;Lo;0;L; 116E;;;;N;;;;; 315D;HANGUL LETTER WEO;Lo;0;L; 116F;;;;N;;;;; 315E;HANGUL LETTER WE;Lo;0;L; 1170;;;;N;;;;; 315F;HANGUL LETTER WI;Lo;0;L; 1171;;;;N;;;;; 3160;HANGUL LETTER YU;Lo;0;L; 1172;;;;N;;;;; 3161;HANGUL LETTER EU;Lo;0;L; 1173;;;;N;;;;; 3162;HANGUL LETTER YI;Lo;0;L; 1174;;;;N;;;;; 3163;HANGUL LETTER I;Lo;0;L; 1175;;;;N;;;;; 3164;HANGUL FILLER;Lo;0;L; 1160;;;;N;HANGUL CAE OM;;;; 3165;HANGUL LETTER SSANGNIEUN;Lo;0;L; 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;; 3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L; 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;; 3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L; 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;; 3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L; 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;; 3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L; 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;; 316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L; 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;; 316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L; 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;; 316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L; 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;; 316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L; 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;; 316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L; 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;; 316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L; 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;; 3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L; 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;; 3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L; 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;; 3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L; 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;; 3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L; 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;; 3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L; 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;; 3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L; 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;; 3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L; 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;; 3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L; 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;; 3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L; 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;; 3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L; 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;; 317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L; 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;; 317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L; 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;; 317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L; 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;; 317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L; 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;; 317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L; 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;; 317F;HANGUL LETTER PANSIOS;Lo;0;L; 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;; 3180;HANGUL LETTER SSANGIEUNG;Lo;0;L; 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;; 3181;HANGUL LETTER YESIEUNG;Lo;0;L; 114C;;;;N;HANGUL LETTER NGIEUNG;;;; 3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L; 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;; 3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L; 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;; 3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L; 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;; 3185;HANGUL LETTER SSANGHIEUH;Lo;0;L; 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;; 3186;HANGUL LETTER YEORINHIEUH;Lo;0;L; 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;; 3187;HANGUL LETTER YO-YA;Lo;0;L; 1184;;;;N;HANGUL LETTER YOYA;;;; 3188;HANGUL LETTER YO-YAE;Lo;0;L; 1185;;;;N;HANGUL LETTER YOYAE;;;; 3189;HANGUL LETTER YO-I;Lo;0;L; 1188;;;;N;HANGUL LETTER YOI;;;; 318A;HANGUL LETTER YU-YEO;Lo;0;L; 1191;;;;N;HANGUL LETTER YUYEO;;;; 318B;HANGUL LETTER YU-YE;Lo;0;L; 1192;;;;N;HANGUL LETTER YUYE;;;; 318C;HANGUL LETTER YU-I;Lo;0;L; 1194;;;;N;HANGUL LETTER YUI;;;; 318D;HANGUL LETTER ARAEA;Lo;0;L; 119E;;;;N;HANGUL LETTER ALAE A;;;; 318E;HANGUL LETTER ARAEAE;Lo;0;L; 11A1;;;;N;HANGUL LETTER ALAE AE;;;; 3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;; 3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;; 3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L; 4E00;;;1;N;KAERITEN ITI;Kaeriten;;; 3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L; 4E8C;;;2;N;KAERITEN NI;Kaeriten;;; 3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L; 4E09;;;3;N;KAERITEN SAN;Kaeriten;;; 3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L; 56DB;;;4;N;KAERITEN SI;Kaeriten;;; 3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L; 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;; 3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L; 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;; 3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L; 4E0B;;;;N;KAERITEN GE;Kaeriten;;; 3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L; 7532;;;;N;KAERITEN KOU;Kaeriten;;; 319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L; 4E59;;;;N;KAERITEN OTU;Kaeriten;;; 319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L; 4E19;;;;N;KAERITEN HEI;Kaeriten;;; 319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L; 4E01;;;;N;KAERITEN TEI;Kaeriten;;; 319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L; 5929;;;;N;KAERITEN TEN;Kaeriten;;; 319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L; 5730;;;;N;KAERITEN TI;Kaeriten;;; 319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L; 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;; 31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;; 31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;; 31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;; 31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;; 31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;; 31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;; 31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;; 31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;; 31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;; 31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;; 31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;; 31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;; 31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;; 31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;; 31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;; 31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;; 31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;; 31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;; 31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;; 31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;; 31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;; 31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;; 31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;; 31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;; 31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;; 31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;; 31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;; 31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;; 31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;; 31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;; 31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;; 31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;; 31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;; 31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;; 31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;; 31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;; 31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;; 31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;; 31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;; 31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;; 3200;PARENTHESIZED HANGUL KIYEOK;So;0;L; 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;; 3201;PARENTHESIZED HANGUL NIEUN;So;0;L; 0028 1102 0029;;;;N;;;;; 3202;PARENTHESIZED HANGUL TIKEUT;So;0;L; 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;; 3203;PARENTHESIZED HANGUL RIEUL;So;0;L; 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;; 3204;PARENTHESIZED HANGUL MIEUM;So;0;L; 0028 1106 0029;;;;N;;;;; 3205;PARENTHESIZED HANGUL PIEUP;So;0;L; 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;; 3206;PARENTHESIZED HANGUL SIOS;So;0;L; 0028 1109 0029;;;;N;;;;; 3207;PARENTHESIZED HANGUL IEUNG;So;0;L; 0028 110B 0029;;;;N;;;;; 3208;PARENTHESIZED HANGUL CIEUC;So;0;L; 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;; 3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L; 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;; 320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L; 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;; 320B;PARENTHESIZED HANGUL THIEUTH;So;0;L; 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;; 320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L; 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;; 320D;PARENTHESIZED HANGUL HIEUH;So;0;L; 0028 1112 0029;;;;N;;;;; 320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L; 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;; 320F;PARENTHESIZED HANGUL NIEUN A;So;0;L; 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;; 3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L; 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;; 3211;PARENTHESIZED HANGUL RIEUL A;So;0;L; 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;; 3212;PARENTHESIZED HANGUL MIEUM A;So;0;L; 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;; 3213;PARENTHESIZED HANGUL PIEUP A;So;0;L; 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;; 3214;PARENTHESIZED HANGUL SIOS A;So;0;L; 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;; 3215;PARENTHESIZED HANGUL IEUNG A;So;0;L; 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;; 3216;PARENTHESIZED HANGUL CIEUC A;So;0;L; 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;; 3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L; 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;; 3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L; 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;; 3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L; 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;; 321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L; 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;; 321B;PARENTHESIZED HANGUL HIEUH A;So;0;L; 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;; 321C;PARENTHESIZED HANGUL CIEUC U;So;0;L; 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;; 3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L; 0028 4E00 0029;;;1;N;;;;; 3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L; 0028 4E8C 0029;;;2;N;;;;; 3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L; 0028 4E09 0029;;;3;N;;;;; 3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L; 0028 56DB 0029;;;4;N;;;;; 3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L; 0028 4E94 0029;;;5;N;;;;; 3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L; 0028 516D 0029;;;6;N;;;;; 3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L; 0028 4E03 0029;;;7;N;;;;; 3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L; 0028 516B 0029;;;8;N;;;;; 3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L; 0028 4E5D 0029;;;9;N;;;;; 3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L; 0028 5341 0029;;;10;N;;;;; 322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L; 0028 6708 0029;;;;N;;;;; 322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L; 0028 706B 0029;;;;N;;;;; 322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L; 0028 6C34 0029;;;;N;;;;; 322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L; 0028 6728 0029;;;;N;;;;; 322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L; 0028 91D1 0029;;;;N;;;;; 322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L; 0028 571F 0029;;;;N;;;;; 3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L; 0028 65E5 0029;;;;N;;;;; 3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L; 0028 682A 0029;;;;N;;;;; 3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L; 0028 6709 0029;;;;N;;;;; 3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L; 0028 793E 0029;;;;N;;;;; 3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L; 0028 540D 0029;;;;N;;;;; 3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L; 0028 7279 0029;;;;N;;;;; 3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L; 0028 8CA1 0029;;;;N;;;;; 3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L; 0028 795D 0029;;;;N;;;;; 3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L; 0028 52B4 0029;;;;N;;;;; 3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L; 0028 4EE3 0029;;;;N;;;;; 323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L; 0028 547C 0029;;;;N;;;;; 323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L; 0028 5B66 0029;;;;N;;;;; 323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L; 0028 76E3 0029;;;;N;;;;; 323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L; 0028 4F01 0029;;;;N;;;;; 323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L; 0028 8CC7 0029;;;;N;;;;; 323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L; 0028 5354 0029;;;;N;;;;; 3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L; 0028 796D 0029;;;;N;;;;; 3241;PARENTHESIZED IDEOGRAPH REST;So;0;L; 0028 4F11 0029;;;;N;;;;; 3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L; 0028 81EA 0029;;;;N;;;;; 3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L; 0028 81F3 0029;;;;N;;;;; 3251;CIRCLED NUMBER TWENTY ONE;No;0;ON; 0032 0031;;;21;N;;;;; 3252;CIRCLED NUMBER TWENTY TWO;No;0;ON; 0032 0032;;;22;N;;;;; 3253;CIRCLED NUMBER TWENTY THREE;No;0;ON; 0032 0033;;;23;N;;;;; 3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON; 0032 0034;;;24;N;;;;; 3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON; 0032 0035;;;25;N;;;;; 3256;CIRCLED NUMBER TWENTY SIX;No;0;ON; 0032 0036;;;26;N;;;;; 3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON; 0032 0037;;;27;N;;;;; 3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON; 0032 0038;;;28;N;;;;; 3259;CIRCLED NUMBER TWENTY NINE;No;0;ON; 0032 0039;;;29;N;;;;; 325A;CIRCLED NUMBER THIRTY;No;0;ON; 0033 0030;;;30;N;;;;; 325B;CIRCLED NUMBER THIRTY ONE;No;0;ON; 0033 0031;;;31;N;;;;; 325C;CIRCLED NUMBER THIRTY TWO;No;0;ON; 0033 0032;;;32;N;;;;; 325D;CIRCLED NUMBER THIRTY THREE;No;0;ON; 0033 0033;;;33;N;;;;; 325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON; 0033 0034;;;34;N;;;;; 325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON; 0033 0035;;;35;N;;;;; 3260;CIRCLED HANGUL KIYEOK;So;0;L; 1100;;;;N;CIRCLED HANGUL GIYEOG;;;; 3261;CIRCLED HANGUL NIEUN;So;0;L; 1102;;;;N;;;;; 3262;CIRCLED HANGUL TIKEUT;So;0;L; 1103;;;;N;CIRCLED HANGUL DIGEUD;;;; 3263;CIRCLED HANGUL RIEUL;So;0;L; 1105;;;;N;CIRCLED HANGUL LIEUL;;;; 3264;CIRCLED HANGUL MIEUM;So;0;L; 1106;;;;N;;;;; 3265;CIRCLED HANGUL PIEUP;So;0;L; 1107;;;;N;CIRCLED HANGUL BIEUB;;;; 3266;CIRCLED HANGUL SIOS;So;0;L; 1109;;;;N;;;;; 3267;CIRCLED HANGUL IEUNG;So;0;L; 110B;;;;N;;;;; 3268;CIRCLED HANGUL CIEUC;So;0;L; 110C;;;;N;CIRCLED HANGUL JIEUJ;;;; 3269;CIRCLED HANGUL CHIEUCH;So;0;L; 110E;;;;N;CIRCLED HANGUL CIEUC;;;; 326A;CIRCLED HANGUL KHIEUKH;So;0;L; 110F;;;;N;CIRCLED HANGUL KIYEOK;;;; 326B;CIRCLED HANGUL THIEUTH;So;0;L; 1110;;;;N;CIRCLED HANGUL TIEUT;;;; 326C;CIRCLED HANGUL PHIEUPH;So;0;L; 1111;;;;N;CIRCLED HANGUL PIEUP;;;; 326D;CIRCLED HANGUL HIEUH;So;0;L; 1112;;;;N;;;;; 326E;CIRCLED HANGUL KIYEOK A;So;0;L; 1100 1161;;;;N;CIRCLED HANGUL GA;;;; 326F;CIRCLED HANGUL NIEUN A;So;0;L; 1102 1161;;;;N;CIRCLED HANGUL NA;;;; 3270;CIRCLED HANGUL TIKEUT A;So;0;L; 1103 1161;;;;N;CIRCLED HANGUL DA;;;; 3271;CIRCLED HANGUL RIEUL A;So;0;L; 1105 1161;;;;N;CIRCLED HANGUL LA;;;; 3272;CIRCLED HANGUL MIEUM A;So;0;L; 1106 1161;;;;N;CIRCLED HANGUL MA;;;; 3273;CIRCLED HANGUL PIEUP A;So;0;L; 1107 1161;;;;N;CIRCLED HANGUL BA;;;; 3274;CIRCLED HANGUL SIOS A;So;0;L; 1109 1161;;;;N;CIRCLED HANGUL SA;;;; 3275;CIRCLED HANGUL IEUNG A;So;0;L; 110B 1161;;;;N;CIRCLED HANGUL A;;;; 3276;CIRCLED HANGUL CIEUC A;So;0;L; 110C 1161;;;;N;CIRCLED HANGUL JA;;;; 3277;CIRCLED HANGUL CHIEUCH A;So;0;L; 110E 1161;;;;N;CIRCLED HANGUL CA;;;; 3278;CIRCLED HANGUL KHIEUKH A;So;0;L; 110F 1161;;;;N;CIRCLED HANGUL KA;;;; 3279;CIRCLED HANGUL THIEUTH A;So;0;L; 1110 1161;;;;N;CIRCLED HANGUL TA;;;; 327A;CIRCLED HANGUL PHIEUPH A;So;0;L; 1111 1161;;;;N;CIRCLED HANGUL PA;;;; 327B;CIRCLED HANGUL HIEUH A;So;0;L; 1112 1161;;;;N;CIRCLED HANGUL HA;;;; 327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;; 3280;CIRCLED IDEOGRAPH ONE;No;0;L; 4E00;;;1;N;;;;; 3281;CIRCLED IDEOGRAPH TWO;No;0;L; 4E8C;;;2;N;;;;; 3282;CIRCLED IDEOGRAPH THREE;No;0;L; 4E09;;;3;N;;;;; 3283;CIRCLED IDEOGRAPH FOUR;No;0;L; 56DB;;;4;N;;;;; 3284;CIRCLED IDEOGRAPH FIVE;No;0;L; 4E94;;;5;N;;;;; 3285;CIRCLED IDEOGRAPH SIX;No;0;L; 516D;;;6;N;;;;; 3286;CIRCLED IDEOGRAPH SEVEN;No;0;L; 4E03;;;7;N;;;;; 3287;CIRCLED IDEOGRAPH EIGHT;No;0;L; 516B;;;8;N;;;;; 3288;CIRCLED IDEOGRAPH NINE;No;0;L; 4E5D;;;9;N;;;;; 3289;CIRCLED IDEOGRAPH TEN;No;0;L; 5341;;;10;N;;;;; 328A;CIRCLED IDEOGRAPH MOON;So;0;L; 6708;;;;N;;;;; 328B;CIRCLED IDEOGRAPH FIRE;So;0;L; 706B;;;;N;;;;; 328C;CIRCLED IDEOGRAPH WATER;So;0;L; 6C34;;;;N;;;;; 328D;CIRCLED IDEOGRAPH WOOD;So;0;L; 6728;;;;N;;;;; 328E;CIRCLED IDEOGRAPH METAL;So;0;L; 91D1;;;;N;;;;; 328F;CIRCLED IDEOGRAPH EARTH;So;0;L; 571F;;;;N;;;;; 3290;CIRCLED IDEOGRAPH SUN;So;0;L; 65E5;;;;N;;;;; 3291;CIRCLED IDEOGRAPH STOCK;So;0;L; 682A;;;;N;;;;; 3292;CIRCLED IDEOGRAPH HAVE;So;0;L; 6709;;;;N;;;;; 3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L; 793E;;;;N;;;;; 3294;CIRCLED IDEOGRAPH NAME;So;0;L; 540D;;;;N;;;;; 3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L; 7279;;;;N;;;;; 3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L; 8CA1;;;;N;;;;; 3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L; 795D;;;;N;;;;; 3298;CIRCLED IDEOGRAPH LABOR;So;0;L; 52B4;;;;N;;;;; 3299;CIRCLED IDEOGRAPH SECRET;So;0;L; 79D8;;;;N;;;;; 329A;CIRCLED IDEOGRAPH MALE;So;0;L; 7537;;;;N;;;;; 329B;CIRCLED IDEOGRAPH FEMALE;So;0;L; 5973;;;;N;;;;; 329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L; 9069;;;;N;;;;; 329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L; 512A;;;;N;;;;; 329E;CIRCLED IDEOGRAPH PRINT;So;0;L; 5370;;;;N;;;;; 329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L; 6CE8;;;;N;;;;; 32A0;CIRCLED IDEOGRAPH ITEM;So;0;L; 9805;;;;N;;;;; 32A1;CIRCLED IDEOGRAPH REST;So;0;L; 4F11;;;;N;;;;; 32A2;CIRCLED IDEOGRAPH COPY;So;0;L; 5199;;;;N;;;;; 32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L; 6B63;;;;N;;;;; 32A4;CIRCLED IDEOGRAPH HIGH;So;0;L; 4E0A;;;;N;;;;; 32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L; 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;; 32A6;CIRCLED IDEOGRAPH LOW;So;0;L; 4E0B;;;;N;;;;; 32A7;CIRCLED IDEOGRAPH LEFT;So;0;L; 5DE6;;;;N;;;;; 32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L; 53F3;;;;N;;;;; 32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L; 533B;;;;N;;;;; 32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L; 5B97;;;;N;;;;; 32AB;CIRCLED IDEOGRAPH STUDY;So;0;L; 5B66;;;;N;;;;; 32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L; 76E3;;;;N;;;;; 32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L; 4F01;;;;N;;;;; 32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L; 8CC7;;;;N;;;;; 32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L; 5354;;;;N;;;;; 32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L; 591C;;;;N;;;;; 32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON; 0033 0036;;;36;N;;;;; 32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON; 0033 0037;;;37;N;;;;; 32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON; 0033 0038;;;38;N;;;;; 32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON; 0033 0039;;;39;N;;;;; 32B5;CIRCLED NUMBER FORTY;No;0;ON; 0034 0030;;;40;N;;;;; 32B6;CIRCLED NUMBER FORTY ONE;No;0;ON; 0034 0031;;;41;N;;;;; 32B7;CIRCLED NUMBER FORTY TWO;No;0;ON; 0034 0032;;;42;N;;;;; 32B8;CIRCLED NUMBER FORTY THREE;No;0;ON; 0034 0033;;;43;N;;;;; 32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON; 0034 0034;;;44;N;;;;; 32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON; 0034 0035;;;45;N;;;;; 32BB;CIRCLED NUMBER FORTY SIX;No;0;ON; 0034 0036;;;46;N;;;;; 32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON; 0034 0037;;;47;N;;;;; 32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON; 0034 0038;;;48;N;;;;; 32BE;CIRCLED NUMBER FORTY NINE;No;0;ON; 0034 0039;;;49;N;;;;; 32BF;CIRCLED NUMBER FIFTY;No;0;ON; 0035 0030;;;50;N;;;;; 32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L; 0031 6708;;;;N;;;;; 32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L; 0032 6708;;;;N;;;;; 32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L; 0033 6708;;;;N;;;;; 32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L; 0034 6708;;;;N;;;;; 32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L; 0035 6708;;;;N;;;;; 32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L; 0036 6708;;;;N;;;;; 32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L; 0037 6708;;;;N;;;;; 32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L; 0038 6708;;;;N;;;;; 32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L; 0039 6708;;;;N;;;;; 32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L; 0031 0030 6708;;;;N;;;;; 32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L; 0031 0031 6708;;;;N;;;;; 32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L; 0031 0032 6708;;;;N;;;;; 32D0;CIRCLED KATAKANA A;So;0;L; 30A2;;;;N;;;;; 32D1;CIRCLED KATAKANA I;So;0;L; 30A4;;;;N;;;;; 32D2;CIRCLED KATAKANA U;So;0;L; 30A6;;;;N;;;;; 32D3;CIRCLED KATAKANA E;So;0;L; 30A8;;;;N;;;;; 32D4;CIRCLED KATAKANA O;So;0;L; 30AA;;;;N;;;;; 32D5;CIRCLED KATAKANA KA;So;0;L; 30AB;;;;N;;;;; 32D6;CIRCLED KATAKANA KI;So;0;L; 30AD;;;;N;;;;; 32D7;CIRCLED KATAKANA KU;So;0;L; 30AF;;;;N;;;;; 32D8;CIRCLED KATAKANA KE;So;0;L; 30B1;;;;N;;;;; 32D9;CIRCLED KATAKANA KO;So;0;L; 30B3;;;;N;;;;; 32DA;CIRCLED KATAKANA SA;So;0;L; 30B5;;;;N;;;;; 32DB;CIRCLED KATAKANA SI;So;0;L; 30B7;;;;N;;;;; 32DC;CIRCLED KATAKANA SU;So;0;L; 30B9;;;;N;;;;; 32DD;CIRCLED KATAKANA SE;So;0;L; 30BB;;;;N;;;;; 32DE;CIRCLED KATAKANA SO;So;0;L; 30BD;;;;N;;;;; 32DF;CIRCLED KATAKANA TA;So;0;L; 30BF;;;;N;;;;; 32E0;CIRCLED KATAKANA TI;So;0;L; 30C1;;;;N;;;;; 32E1;CIRCLED KATAKANA TU;So;0;L; 30C4;;;;N;;;;; 32E2;CIRCLED KATAKANA TE;So;0;L; 30C6;;;;N;;;;; 32E3;CIRCLED KATAKANA TO;So;0;L; 30C8;;;;N;;;;; 32E4;CIRCLED KATAKANA NA;So;0;L; 30CA;;;;N;;;;; 32E5;CIRCLED KATAKANA NI;So;0;L; 30CB;;;;N;;;;; 32E6;CIRCLED KATAKANA NU;So;0;L; 30CC;;;;N;;;;; 32E7;CIRCLED KATAKANA NE;So;0;L; 30CD;;;;N;;;;; 32E8;CIRCLED KATAKANA NO;So;0;L; 30CE;;;;N;;;;; 32E9;CIRCLED KATAKANA HA;So;0;L; 30CF;;;;N;;;;; 32EA;CIRCLED KATAKANA HI;So;0;L; 30D2;;;;N;;;;; 32EB;CIRCLED KATAKANA HU;So;0;L; 30D5;;;;N;;;;; 32EC;CIRCLED KATAKANA HE;So;0;L; 30D8;;;;N;;;;; 32ED;CIRCLED KATAKANA HO;So;0;L; 30DB;;;;N;;;;; 32EE;CIRCLED KATAKANA MA;So;0;L; 30DE;;;;N;;;;; 32EF;CIRCLED KATAKANA MI;So;0;L; 30DF;;;;N;;;;; 32F0;CIRCLED KATAKANA MU;So;0;L; 30E0;;;;N;;;;; 32F1;CIRCLED KATAKANA ME;So;0;L; 30E1;;;;N;;;;; 32F2;CIRCLED KATAKANA MO;So;0;L; 30E2;;;;N;;;;; 32F3;CIRCLED KATAKANA YA;So;0;L; 30E4;;;;N;;;;; 32F4;CIRCLED KATAKANA YU;So;0;L; 30E6;;;;N;;;;; 32F5;CIRCLED KATAKANA YO;So;0;L; 30E8;;;;N;;;;; 32F6;CIRCLED KATAKANA RA;So;0;L; 30E9;;;;N;;;;; 32F7;CIRCLED KATAKANA RI;So;0;L; 30EA;;;;N;;;;; 32F8;CIRCLED KATAKANA RU;So;0;L; 30EB;;;;N;;;;; 32F9;CIRCLED KATAKANA RE;So;0;L; 30EC;;;;N;;;;; 32FA;CIRCLED KATAKANA RO;So;0;L; 30ED;;;;N;;;;; 32FB;CIRCLED KATAKANA WA;So;0;L; 30EF;;;;N;;;;; 32FC;CIRCLED KATAKANA WI;So;0;L; 30F0;;;;N;;;;; 32FD;CIRCLED KATAKANA WE;So;0;L; 30F1;;;;N;;;;; 32FE;CIRCLED KATAKANA WO;So;0;L; 30F2;;;;N;;;;; 3300;SQUARE APAATO;So;0;L; 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;; 3301;SQUARE ARUHUA;So;0;L; 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;; 3302;SQUARE ANPEA;So;0;L; 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;; 3303;SQUARE AARU;So;0;L; 30A2 30FC 30EB;;;;N;SQUARED AARU;;;; 3304;SQUARE ININGU;So;0;L; 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;; 3305;SQUARE INTI;So;0;L; 30A4 30F3 30C1;;;;N;SQUARED INTI;;;; 3306;SQUARE UON;So;0;L; 30A6 30A9 30F3;;;;N;SQUARED UON;;;; 3307;SQUARE ESUKUUDO;So;0;L; 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;; 3308;SQUARE EEKAA;So;0;L; 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;; 3309;SQUARE ONSU;So;0;L; 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;; 330A;SQUARE OOMU;So;0;L; 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;; 330B;SQUARE KAIRI;So;0;L; 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;; 330C;SQUARE KARATTO;So;0;L; 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;; 330D;SQUARE KARORII;So;0;L; 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;; 330E;SQUARE GARON;So;0;L; 30AC 30ED 30F3;;;;N;SQUARED GARON;;;; 330F;SQUARE GANMA;So;0;L; 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;; 3310;SQUARE GIGA;So;0;L; 30AE 30AC;;;;N;SQUARED GIGA;;;; 3311;SQUARE GINII;So;0;L; 30AE 30CB 30FC;;;;N;SQUARED GINII;;;; 3312;SQUARE KYURII;So;0;L; 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;; 3313;SQUARE GIRUDAA;So;0;L; 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;; 3314;SQUARE KIRO;So;0;L; 30AD 30ED;;;;N;SQUARED KIRO;;;; 3315;SQUARE KIROGURAMU;So;0;L; 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;; 3316;SQUARE KIROMEETORU;So;0;L; 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;; 3317;SQUARE KIROWATTO;So;0;L; 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;; 3318;SQUARE GURAMU;So;0;L; 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;; 3319;SQUARE GURAMUTON;So;0;L; 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;; 331A;SQUARE KURUZEIRO;So;0;L; 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;; 331B;SQUARE KUROONE;So;0;L; 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;; 331C;SQUARE KEESU;So;0;L; 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;; 331D;SQUARE KORUNA;So;0;L; 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;; 331E;SQUARE KOOPO;So;0;L; 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;; 331F;SQUARE SAIKURU;So;0;L; 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;; 3320;SQUARE SANTIIMU;So;0;L; 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;; 3321;SQUARE SIRINGU;So;0;L; 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;; 3322;SQUARE SENTI;So;0;L; 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;; 3323;SQUARE SENTO;So;0;L; 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;; 3324;SQUARE DAASU;So;0;L; 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;; 3325;SQUARE DESI;So;0;L; 30C7 30B7;;;;N;SQUARED DESI;;;; 3326;SQUARE DORU;So;0;L; 30C9 30EB;;;;N;SQUARED DORU;;;; 3327;SQUARE TON;So;0;L; 30C8 30F3;;;;N;SQUARED TON;;;; 3328;SQUARE NANO;So;0;L; 30CA 30CE;;;;N;SQUARED NANO;;;; 3329;SQUARE NOTTO;So;0;L; 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;; 332A;SQUARE HAITU;So;0;L; 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;; 332B;SQUARE PAASENTO;So;0;L; 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;; 332C;SQUARE PAATU;So;0;L; 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;; 332D;SQUARE BAARERU;So;0;L; 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;; 332E;SQUARE PIASUTORU;So;0;L; 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;; 332F;SQUARE PIKURU;So;0;L; 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;; 3330;SQUARE PIKO;So;0;L; 30D4 30B3;;;;N;SQUARED PIKO;;;; 3331;SQUARE BIRU;So;0;L; 30D3 30EB;;;;N;SQUARED BIRU;;;; 3332;SQUARE HUARADDO;So;0;L; 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;; 3333;SQUARE HUIITO;So;0;L; 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;; 3334;SQUARE BUSSYERU;So;0;L; 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;; 3335;SQUARE HURAN;So;0;L; 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;; 3336;SQUARE HEKUTAARU;So;0;L; 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;; 3337;SQUARE PESO;So;0;L; 30DA 30BD;;;;N;SQUARED PESO;;;; 3338;SQUARE PENIHI;So;0;L; 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;; 3339;SQUARE HERUTU;So;0;L; 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;; 333A;SQUARE PENSU;So;0;L; 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;; 333B;SQUARE PEEZI;So;0;L; 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;; 333C;SQUARE BEETA;So;0;L; 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;; 333D;SQUARE POINTO;So;0;L; 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;; 333E;SQUARE BORUTO;So;0;L; 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;; 333F;SQUARE HON;So;0;L; 30DB 30F3;;;;N;SQUARED HON;;;; 3340;SQUARE PONDO;So;0;L; 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;; 3341;SQUARE HOORU;So;0;L; 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;; 3342;SQUARE HOON;So;0;L; 30DB 30FC 30F3;;;;N;SQUARED HOON;;;; 3343;SQUARE MAIKURO;So;0;L; 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;; 3344;SQUARE MAIRU;So;0;L; 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;; 3345;SQUARE MAHHA;So;0;L; 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;; 3346;SQUARE MARUKU;So;0;L; 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;; 3347;SQUARE MANSYON;So;0;L; 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;; 3348;SQUARE MIKURON;So;0;L; 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;; 3349;SQUARE MIRI;So;0;L; 30DF 30EA;;;;N;SQUARED MIRI;;;; 334A;SQUARE MIRIBAARU;So;0;L; 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;; 334B;SQUARE MEGA;So;0;L; 30E1 30AC;;;;N;SQUARED MEGA;;;; 334C;SQUARE MEGATON;So;0;L; 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;; 334D;SQUARE MEETORU;So;0;L; 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;; 334E;SQUARE YAADO;So;0;L; 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;; 334F;SQUARE YAARU;So;0;L; 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;; 3350;SQUARE YUAN;So;0;L; 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;; 3351;SQUARE RITTORU;So;0;L; 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;; 3352;SQUARE RIRA;So;0;L; 30EA 30E9;;;;N;SQUARED RIRA;;;; 3353;SQUARE RUPII;So;0;L; 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;; 3354;SQUARE RUUBURU;So;0;L; 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;; 3355;SQUARE REMU;So;0;L; 30EC 30E0;;;;N;SQUARED REMU;;;; 3356;SQUARE RENTOGEN;So;0;L; 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;; 3357;SQUARE WATTO;So;0;L; 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;; 3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L; 0030 70B9;;;;N;;;;; 3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L; 0031 70B9;;;;N;;;;; 335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L; 0032 70B9;;;;N;;;;; 335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L; 0033 70B9;;;;N;;;;; 335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L; 0034 70B9;;;;N;;;;; 335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L; 0035 70B9;;;;N;;;;; 335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L; 0036 70B9;;;;N;;;;; 335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L; 0037 70B9;;;;N;;;;; 3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L; 0038 70B9;;;;N;;;;; 3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L; 0039 70B9;;;;N;;;;; 3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L; 0031 0030 70B9;;;;N;;;;; 3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L; 0031 0031 70B9;;;;N;;;;; 3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L; 0031 0032 70B9;;;;N;;;;; 3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L; 0031 0033 70B9;;;;N;;;;; 3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L; 0031 0034 70B9;;;;N;;;;; 3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L; 0031 0035 70B9;;;;N;;;;; 3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L; 0031 0036 70B9;;;;N;;;;; 3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L; 0031 0037 70B9;;;;N;;;;; 336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L; 0031 0038 70B9;;;;N;;;;; 336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L; 0031 0039 70B9;;;;N;;;;; 336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L; 0032 0030 70B9;;;;N;;;;; 336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L; 0032 0031 70B9;;;;N;;;;; 336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L; 0032 0032 70B9;;;;N;;;;; 336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L; 0032 0033 70B9;;;;N;;;;; 3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L; 0032 0034 70B9;;;;N;;;;; 3371;SQUARE HPA;So;0;L; 0068 0050 0061;;;;N;;;;; 3372;SQUARE DA;So;0;L; 0064 0061;;;;N;;;;; 3373;SQUARE AU;So;0;L; 0041 0055;;;;N;;;;; 3374;SQUARE BAR;So;0;L; 0062 0061 0072;;;;N;;;;; 3375;SQUARE OV;So;0;L; 006F 0056;;;;N;;;;; 3376;SQUARE PC;So;0;L; 0070 0063;;;;N;;;;; 337B;SQUARE ERA NAME HEISEI;So;0;L; 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;; 337C;SQUARE ERA NAME SYOUWA;So;0;L; 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;; 337D;SQUARE ERA NAME TAISYOU;So;0;L; 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;; 337E;SQUARE ERA NAME MEIZI;So;0;L; 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;; 337F;SQUARE CORPORATION;So;0;L; 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;; 3380;SQUARE PA AMPS;So;0;L; 0070 0041;;;;N;SQUARED PA AMPS;;;; 3381;SQUARE NA;So;0;L; 006E 0041;;;;N;SQUARED NA;;;; 3382;SQUARE MU A;So;0;L; 03BC 0041;;;;N;SQUARED MU A;;;; 3383;SQUARE MA;So;0;L; 006D 0041;;;;N;SQUARED MA;;;; 3384;SQUARE KA;So;0;L; 006B 0041;;;;N;SQUARED KA;;;; 3385;SQUARE KB;So;0;L; 004B 0042;;;;N;SQUARED KB;;;; 3386;SQUARE MB;So;0;L; 004D 0042;;;;N;SQUARED MB;;;; 3387;SQUARE GB;So;0;L; 0047 0042;;;;N;SQUARED GB;;;; 3388;SQUARE CAL;So;0;L; 0063 0061 006C;;;;N;SQUARED CAL;;;; 3389;SQUARE KCAL;So;0;L; 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;; 338A;SQUARE PF;So;0;L; 0070 0046;;;;N;SQUARED PF;;;; 338B;SQUARE NF;So;0;L; 006E 0046;;;;N;SQUARED NF;;;; 338C;SQUARE MU F;So;0;L; 03BC 0046;;;;N;SQUARED MU F;;;; 338D;SQUARE MU G;So;0;L; 03BC 0067;;;;N;SQUARED MU G;;;; 338E;SQUARE MG;So;0;L; 006D 0067;;;;N;SQUARED MG;;;; 338F;SQUARE KG;So;0;L; 006B 0067;;;;N;SQUARED KG;;;; 3390;SQUARE HZ;So;0;L; 0048 007A;;;;N;SQUARED HZ;;;; 3391;SQUARE KHZ;So;0;L; 006B 0048 007A;;;;N;SQUARED KHZ;;;; 3392;SQUARE MHZ;So;0;L; 004D 0048 007A;;;;N;SQUARED MHZ;;;; 3393;SQUARE GHZ;So;0;L; 0047 0048 007A;;;;N;SQUARED GHZ;;;; 3394;SQUARE THZ;So;0;L; 0054 0048 007A;;;;N;SQUARED THZ;;;; 3395;SQUARE MU L;So;0;L; 03BC 2113;;;;N;SQUARED MU L;;;; 3396;SQUARE ML;So;0;L; 006D 2113;;;;N;SQUARED ML;;;; 3397;SQUARE DL;So;0;L; 0064 2113;;;;N;SQUARED DL;;;; 3398;SQUARE KL;So;0;L; 006B 2113;;;;N;SQUARED KL;;;; 3399;SQUARE FM;So;0;L; 0066 006D;;;;N;SQUARED FM;;;; 339A;SQUARE NM;So;0;L; 006E 006D;;;;N;SQUARED NM;;;; 339B;SQUARE MU M;So;0;L; 03BC 006D;;;;N;SQUARED MU M;;;; 339C;SQUARE MM;So;0;L; 006D 006D;;;;N;SQUARED MM;;;; 339D;SQUARE CM;So;0;L; 0063 006D;;;;N;SQUARED CM;;;; 339E;SQUARE KM;So;0;L; 006B 006D;;;;N;SQUARED KM;;;; 339F;SQUARE MM SQUARED;So;0;L; 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;; 33A0;SQUARE CM SQUARED;So;0;L; 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;; 33A1;SQUARE M SQUARED;So;0;L; 006D 00B2;;;;N;SQUARED M SQUARED;;;; 33A2;SQUARE KM SQUARED;So;0;L; 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;; 33A3;SQUARE MM CUBED;So;0;L; 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;; 33A4;SQUARE CM CUBED;So;0;L; 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;; 33A5;SQUARE M CUBED;So;0;L; 006D 00B3;;;;N;SQUARED M CUBED;;;; 33A6;SQUARE KM CUBED;So;0;L; 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;; 33A7;SQUARE M OVER S;So;0;L; 006D 2215 0073;;;;N;SQUARED M OVER S;;;; 33A8;SQUARE M OVER S SQUARED;So;0;L; 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;; 33A9;SQUARE PA;So;0;L; 0050 0061;;;;N;SQUARED PA;;;; 33AA;SQUARE KPA;So;0;L; 006B 0050 0061;;;;N;SQUARED KPA;;;; 33AB;SQUARE MPA;So;0;L; 004D 0050 0061;;;;N;SQUARED MPA;;;; 33AC;SQUARE GPA;So;0;L; 0047 0050 0061;;;;N;SQUARED GPA;;;; 33AD;SQUARE RAD;So;0;L; 0072 0061 0064;;;;N;SQUARED RAD;;;; 33AE;SQUARE RAD OVER S;So;0;L; 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;; 33AF;SQUARE RAD OVER S SQUARED;So;0;L; 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;; 33B0;SQUARE PS;So;0;L; 0070 0073;;;;N;SQUARED PS;;;; 33B1;SQUARE NS;So;0;L; 006E 0073;;;;N;SQUARED NS;;;; 33B2;SQUARE MU S;So;0;L; 03BC 0073;;;;N;SQUARED MU S;;;; 33B3;SQUARE MS;So;0;L; 006D 0073;;;;N;SQUARED MS;;;; 33B4;SQUARE PV;So;0;L; 0070 0056;;;;N;SQUARED PV;;;; 33B5;SQUARE NV;So;0;L; 006E 0056;;;;N;SQUARED NV;;;; 33B6;SQUARE MU V;So;0;L; 03BC 0056;;;;N;SQUARED MU V;;;; 33B7;SQUARE MV;So;0;L; 006D 0056;;;;N;SQUARED MV;;;; 33B8;SQUARE KV;So;0;L; 006B 0056;;;;N;SQUARED KV;;;; 33B9;SQUARE MV MEGA;So;0;L; 004D 0056;;;;N;SQUARED MV MEGA;;;; 33BA;SQUARE PW;So;0;L; 0070 0057;;;;N;SQUARED PW;;;; 33BB;SQUARE NW;So;0;L; 006E 0057;;;;N;SQUARED NW;;;; 33BC;SQUARE MU W;So;0;L; 03BC 0057;;;;N;SQUARED MU W;;;; 33BD;SQUARE MW;So;0;L; 006D 0057;;;;N;SQUARED MW;;;; 33BE;SQUARE KW;So;0;L; 006B 0057;;;;N;SQUARED KW;;;; 33BF;SQUARE MW MEGA;So;0;L; 004D 0057;;;;N;SQUARED MW MEGA;;;; 33C0;SQUARE K OHM;So;0;L; 006B 03A9;;;;N;SQUARED K OHM;;;; 33C1;SQUARE M OHM;So;0;L; 004D 03A9;;;;N;SQUARED M OHM;;;; 33C2;SQUARE AM;So;0;L; 0061 002E 006D 002E;;;;N;SQUARED AM;;;; 33C3;SQUARE BQ;So;0;L; 0042 0071;;;;N;SQUARED BQ;;;; 33C4;SQUARE CC;So;0;L; 0063 0063;;;;N;SQUARED CC;;;; 33C5;SQUARE CD;So;0;L; 0063 0064;;;;N;SQUARED CD;;;; 33C6;SQUARE C OVER KG;So;0;L; 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;; 33C7;SQUARE CO;So;0;L; 0043 006F 002E;;;;N;SQUARED CO;;;; 33C8;SQUARE DB;So;0;L; 0064 0042;;;;N;SQUARED DB;;;; 33C9;SQUARE GY;So;0;L; 0047 0079;;;;N;SQUARED GY;;;; 33CA;SQUARE HA;So;0;L; 0068 0061;;;;N;SQUARED HA;;;; 33CB;SQUARE HP;So;0;L; 0048 0050;;;;N;SQUARED HP;;;; 33CC;SQUARE IN;So;0;L; 0069 006E;;;;N;SQUARED IN;;;; 33CD;SQUARE KK;So;0;L; 004B 004B;;;;N;SQUARED KK;;;; 33CE;SQUARE KM CAPITAL;So;0;L; 004B 004D;;;;N;SQUARED KM CAPITAL;;;; 33CF;SQUARE KT;So;0;L; 006B 0074;;;;N;SQUARED KT;;;; 33D0;SQUARE LM;So;0;L; 006C 006D;;;;N;SQUARED LM;;;; 33D1;SQUARE LN;So;0;L; 006C 006E;;;;N;SQUARED LN;;;; 33D2;SQUARE LOG;So;0;L; 006C 006F 0067;;;;N;SQUARED LOG;;;; 33D3;SQUARE LX;So;0;L; 006C 0078;;;;N;SQUARED LX;;;; 33D4;SQUARE MB SMALL;So;0;L; 006D 0062;;;;N;SQUARED MB SMALL;;;; 33D5;SQUARE MIL;So;0;L; 006D 0069 006C;;;;N;SQUARED MIL;;;; 33D6;SQUARE MOL;So;0;L; 006D 006F 006C;;;;N;SQUARED MOL;;;; 33D7;SQUARE PH;So;0;L; 0050 0048;;;;N;SQUARED PH;;;; 33D8;SQUARE PM;So;0;L; 0070 002E 006D 002E;;;;N;SQUARED PM;;;; 33D9;SQUARE PPM;So;0;L; 0050 0050 004D;;;;N;SQUARED PPM;;;; 33DA;SQUARE PR;So;0;L; 0050 0052;;;;N;SQUARED PR;;;; 33DB;SQUARE SR;So;0;L; 0073 0072;;;;N;SQUARED SR;;;; 33DC;SQUARE SV;So;0;L; 0053 0076;;;;N;SQUARED SV;;;; 33DD;SQUARE WB;So;0;L; 0057 0062;;;;N;SQUARED WB;;;; 33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L; 0031 65E5;;;;N;;;;; 33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L; 0032 65E5;;;;N;;;;; 33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L; 0033 65E5;;;;N;;;;; 33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L; 0034 65E5;;;;N;;;;; 33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L; 0035 65E5;;;;N;;;;; 33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L; 0036 65E5;;;;N;;;;; 33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L; 0037 65E5;;;;N;;;;; 33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L; 0038 65E5;;;;N;;;;; 33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L; 0039 65E5;;;;N;;;;; 33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L; 0031 0030 65E5;;;;N;;;;; 33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L; 0031 0031 65E5;;;;N;;;;; 33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L; 0031 0032 65E5;;;;N;;;;; 33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L; 0031 0033 65E5;;;;N;;;;; 33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L; 0031 0034 65E5;;;;N;;;;; 33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L; 0031 0035 65E5;;;;N;;;;; 33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L; 0031 0036 65E5;;;;N;;;;; 33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L; 0031 0037 65E5;;;;N;;;;; 33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L; 0031 0038 65E5;;;;N;;;;; 33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L; 0031 0039 65E5;;;;N;;;;; 33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L; 0032 0030 65E5;;;;N;;;;; 33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L; 0032 0031 65E5;;;;N;;;;; 33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L; 0032 0032 65E5;;;;N;;;;; 33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L; 0032 0033 65E5;;;;N;;;;; 33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L; 0032 0034 65E5;;;;N;;;;; 33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L; 0032 0035 65E5;;;;N;;;;; 33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L; 0032 0036 65E5;;;;N;;;;; 33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L; 0032 0037 65E5;;;;N;;;;; 33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L; 0032 0038 65E5;;;;N;;;;; 33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L; 0032 0039 65E5;;;;N;;;;; 33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L; 0033 0030 65E5;;;;N;;;;; 33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L; 0033 0031 65E5;;;;N;;;;; 3400;;Lo;0;L;;;;;N;;;;; 4DB5;;Lo;0;L;;;;;N;;;;; 4E00;;Lo;0;L;;;;;N;;;;; 9FA5;;Lo;0;L;;;;;N;;;;; A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;; A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;; A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;; A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;; A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;; A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;; A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;; A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;; A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;; A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;; A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;; A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;; A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;; A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;; A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;; A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;; A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;; A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;; A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;; A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;; A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;; A015;YI SYLLABLE WU;Lo;0;L;;;;;N;;;;; A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;; A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;; A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;; A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;; A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;; A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;; A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;; A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;; A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;; A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;; A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;; A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;; A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;; A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;; A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;; A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;; A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;; A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;; A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;; A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;; A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;; A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;; A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;; A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;; A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;; A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;; A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;; A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;; A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;; A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;; A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;; A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;; A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;; A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;; A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;; A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;; A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;; A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;; A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;; A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;; A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;; A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;; A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;; A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;; A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;; A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;; A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;; A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;; A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;; A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;; A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;; A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;; A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;; A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;; A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;; A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;; A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;; A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;; A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;; A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;; A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;; A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;; A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;; A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;; A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;; A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;; A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;; A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;; A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;; A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;; A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;; A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;; A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;; A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;; A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;; A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;; A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;; A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;; A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;; A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;; A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;; A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;; A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;; A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;; A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;; A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;; A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;; A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;; A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;; A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;; A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;; A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;; A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;; A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;; A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;; A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;; A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;; A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;; A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;; A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;; A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;; A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;; A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;; A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;; A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;; A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;; A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;; A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;; A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;; A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;; A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;; A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;; A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;; A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;; A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;; A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;; A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;; A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;; A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;; A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;; A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;; A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;; A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;; A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;; A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;; A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;; A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;; A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;; A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;; A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;; A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;; A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;; A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;; A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;; A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;; A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;; A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;; A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;; A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;; A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;; A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;; A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;; A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;; A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;; A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;; A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;; A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;; A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;; A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;; A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;; A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;; A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;; A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;; A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;; A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;; A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;; A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;; A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;; A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;; A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;; A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;; A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;; A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;; A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;; A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;; A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;; A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;; A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;; A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;; A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;; A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;; A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;; A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;; A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;; A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;; A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;; A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;; A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;; A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;; A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;; A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;; A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;; A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;; A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;; A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;; A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;; A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;; A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;; A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;; A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;; A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;; A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;; A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;; A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;; A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;; A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;; A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;; A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;; A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;; A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;; A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;; A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;; A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;; A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;; A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;; A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;; A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;; A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;; A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;; A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;; A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;; A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;; A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;; A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;; A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;; A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;; A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;; A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;; A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;; A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;; A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;; A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;; A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;; A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;; A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;; A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;; A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;; A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;; A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;; A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;; A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;; A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;; A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;; A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;; A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;; A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;; A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;; A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;; A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;; A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;; A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;; A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;; A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;; A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;; A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;; A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;; A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;; A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;; A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;; A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;; A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;; A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;; A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;; A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;; A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;; A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;; A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;; A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;; A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;; A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;; A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;; A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;; A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;; A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;; A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;; A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;; A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;; A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;; A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;; A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;; A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;; A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;; A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;; A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;; A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;; A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;; A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;; A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;; A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;; A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;; A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;; A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;; A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;; A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;; A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;; A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;; A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;; A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;; A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;; A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;; A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;; A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;; A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;; A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;; A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;; A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;; A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;; A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;; A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;; A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;; A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;; A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;; A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;; A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;; A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;; A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;; A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;; A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;; A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;; A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;; A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;; A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;; A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;; A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;; A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;; A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;; A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;; A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;; A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;; A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;; A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;; A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;; A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;; A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;; A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;; A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;; A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;; A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;; A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;; A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;; A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;; A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;; A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;; A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;; A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;; A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;; A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;; A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;; A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;; A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;; A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;; A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;; A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;; A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;; A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;; A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;; A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;; A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;; A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;; A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;; A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;; A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;; A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;; A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;; A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;; A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;; A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;; A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;; A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;; A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;; A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;; A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;; A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;; A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;; A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;; A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;; A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;; A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;; A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;; A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;; A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;; A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;; A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;; A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;; A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;; A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;; A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;; A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;; A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;; A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;; A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;; A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;; A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;; A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;; A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;; A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;; A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;; A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;; A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;; A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;; A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;; A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;; A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;; A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;; A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;; A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;; A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;; A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;; A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;; A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;; A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;; A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;; A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;; A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;; A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;; A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;; A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;; A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;; A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;; A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;; A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;; A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;; A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;; A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;; A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;; A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;; A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;; A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;; A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;; A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;; A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;; A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;; A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;; A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;; A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;; A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;; A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;; A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;; A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;; A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;; A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;; A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;; A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;; A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;; A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;; A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;; A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;; A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;; A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;; A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;; A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;; A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;; A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;; A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;; A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;; A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;; A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;; A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;; A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;; A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;; A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;; A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;; A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;; A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;; A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;; A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;; A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;; A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;; A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;; A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;; A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;; A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;; A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;; A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;; A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;; A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;; A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;; A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;; A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;; A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;; A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;; A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;; A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;; A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;; A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;; A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;; A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;; A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;; A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;; A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;; A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;; A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;; A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;; A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;; A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;; A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;; A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;; A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;; A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;; A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;; A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;; A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;; A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;; A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;; A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;; A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;; A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;; A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;; A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;; A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;; A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;; A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;; A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;; A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;; A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;; A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;; A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;; A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;; A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;; A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;; A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;; A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;; A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;; A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;; A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;; A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;; A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;; A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;; A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;; A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;; A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;; A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;; A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;; A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;; A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;; A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;; A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;; A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;; A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;; A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;; A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;; A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;; A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;; A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;; A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;; A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;; A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;; A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;; A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;; A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;; A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;; A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;; A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;; A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;; A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;; A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;; A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;; A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;; A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;; A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;; A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;; A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;; A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;; A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;; A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;; A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;; A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;; A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;; A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;; A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;; A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;; A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;; A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;; A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;; A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;; A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;; A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;; A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;; A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;; A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;; A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;; A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;; A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;; A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;; A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;; A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;; A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;; A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;; A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;; A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;; A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;; A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;; A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;; A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;; A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;; A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;; A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;; A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;; A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;; A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;; A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;; A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;; A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;; A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;; A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;; A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;; A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;; A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;; A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;; A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;; A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;; A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;; A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;; A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;; A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;; A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;; A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;; A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;; A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;; A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;; A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;; A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;; A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;; A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;; A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;; A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;; A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;; A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;; A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;; A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;; A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;; A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;; A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;; A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;; A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;; A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;; A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;; A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;; A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;; A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;; A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;; A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;; A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;; A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;; A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;; A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;; A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;; A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;; A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;; A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;; A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;; A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;; A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;; A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;; A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;; A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;; A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;; A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;; A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;; A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;; A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;; A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;; A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;; A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;; A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;; A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;; A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;; A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;; A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;; A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;; A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;; A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;; A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;; A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;; A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;; A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;; A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;; A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;; A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;; A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;; A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;; A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;; A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;; A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;; A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;; A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;; A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;; A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;; A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;; A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;; A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;; A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;; A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;; A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;; A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;; A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;; A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;; A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;; A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;; A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;; A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;; A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;; A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;; A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;; A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;; A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;; A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;; A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;; A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;; A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;; A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;; A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;; A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;; A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;; A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;; A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;; A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;; A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;; A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;; A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;; A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;; A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;; A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;; A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;; A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;; A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;; A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;; A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;; A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;; A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;; A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;; A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;; A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;; A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;; A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;; A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;; A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;; A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;; A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;; A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;; A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;; A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;; A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;; A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;; A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;; A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;; A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;; A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;; A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;; A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;; A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;; A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;; A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;; A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;; A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;; A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;; A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;; A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;; A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;; A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;; A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;; A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;; A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;; A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;; A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;; A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;; A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;; A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;; A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;; A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;; A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;; A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;; A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;; A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;; A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;; A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;; A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;; A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;; A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;; A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;; A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;; A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;; A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;; A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;; A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;; A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;; A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;; A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;; A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;; A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;; A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;; A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;; A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;; A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;; A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;; A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;; A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;; A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;; A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;; A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;; A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;; A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;; A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;; A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;; A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;; A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;; A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;; A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;; A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;; A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;; A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;; A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;; A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;; A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;; A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;; A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;; A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;; A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;; A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;; A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;; A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;; A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;; A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;; A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;; A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;; A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;; A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;; A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;; A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;; A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;; A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;; A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;; A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;; A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;; A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;; A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;; A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;; A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;; A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;; A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;; A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;; A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;; A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;; A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;; A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;; A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;; A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;; A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;; A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;; A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;; A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;; A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;; A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;; A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;; A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;; A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;; A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;; A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;; A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;; A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;; A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;; A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;; A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;; A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;; A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;; A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;; A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;; A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;; A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;; A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;; A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;; A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;; A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;; A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;; A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;; A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;; A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;; A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;; A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;; A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;; A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;; A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;; A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;; A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;; A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;; A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;; A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;; A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;; A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;; A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;; A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;; A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;; A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;; A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;; A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;; A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;; A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;; A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;; A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;; A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;; A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;; A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;; A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;; A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;; A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;; A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;; A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;; A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;; A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;; A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;; A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;; A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;; A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;; A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;; A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;; A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;; A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;; A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;; A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;; A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;; A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;; A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;; A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;; A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;; A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;; A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;; A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;; A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;; A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;; A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;; A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;; A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;; A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;; A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;; A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;; A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;; A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;; A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;; A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;; A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;; A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;; A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;; A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;; A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;; A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;; A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;; A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;; A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;; A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;; A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;; A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;; A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;; A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;; A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;; A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;; A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;; A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;; A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;; A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;; A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;; A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;; A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;; A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;; A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;; A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;; A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;; A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;; A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;; A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;; A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;; A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;; A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;; A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;; A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;; A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;; A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;; A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;; A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;; A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;; A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;; A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;; A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;; A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;; A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;; A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;; A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;; A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;; A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;; A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;; A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;; A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;; A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;; A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;; A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;; A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;; A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;; A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;; A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;; A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;; A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;; A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;; A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;; A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;; A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;; A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;; A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;; A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;; A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;; A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;; A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;; A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;; A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;; A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;; A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;; A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;; A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;; A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;; A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;; A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;; A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;; A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;; A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;; A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;; A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;; A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;; A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;; A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;; A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;; A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;; A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;; A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;; A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;; A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;; A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;; A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;; A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;; A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;; A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;; A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;; A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;; A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;; A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;; A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;; A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;; A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;; A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;; A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;; A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;; A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;; A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;; A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;; A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;; A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;; A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;; A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;; A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;; A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;; A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;; A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;; A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;; A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;; A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;; A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;; A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;; A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;; A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;; A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;; A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;; A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;; A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;; A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;; A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;; A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;; A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;; A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;; A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;; A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;; A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;; A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;; A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;; A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;; A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;; A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;; A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;; A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;; A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;; A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;; A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;; A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;; A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;; A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;; A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;; A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;; A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;; A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;; A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;; A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;; A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;; A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;; A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;; A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;; A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;; A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;; A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;; A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;; A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;; A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;; A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;; A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;; A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;; A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;; A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;; A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;; A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;; A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;; A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;; A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;; A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;; A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;; A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;; A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;; A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;; A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;; A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;; A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;; A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;; A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;; A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;; A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;; A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;; A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;; A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;; A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;; A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;; A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;; A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;; A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;; A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;; A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;; A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;; A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;; A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;; A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;; A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;; A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;; A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;; A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;; A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;; A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;; A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;; A491;YI RADICAL LI;So;0;ON;;;;;N;;;;; A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;; A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;; A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;; A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;; A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;; A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;; A498;YI RADICAL MI;So;0;ON;;;;;N;;;;; A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;; A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;; A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;; A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;; A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;; A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;; A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;; A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;; A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;; A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;; A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;; A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;; A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;; A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;; A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;; A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;; A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;; A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;; A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;; A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;; A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;; A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;; A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;; A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;; A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;; A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;; A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;; A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;; A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;; A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;; A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;; A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;; A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;; A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;; A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;; A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;; A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;; A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;; A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;; A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;; A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;; A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;; A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;; A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;; A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;; A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;; AC00;;Lo;0;L;;;;;N;;;;; D7A3;;Lo;0;L;;;;;N;;;;; D800;;Cs;0;L;;;;;N;;;;; DB7F;;Cs;0;L;;;;;N;;;;; DB80;;Cs;0;L;;;;;N;;;;; DBFF;;Cs;0;L;;;;;N;;;;; DC00;;Cs;0;L;;;;;N;;;;; DFFF;;Cs;0;L;;;;;N;;;;; E000;;Co;0;L;;;;;N;;;;; F8FF;;Co;0;L;;;;;N;;;;; F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;; F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;; F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;; F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;; F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;; F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;; F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;; F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;; F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;; F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;; F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;; F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;; F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;; F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;; F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;; F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;; F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;; F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;; F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;; F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;; F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;; F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;; F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;; F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;; F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;; F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;; F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;; F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;; F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;; F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;; F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;; F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;; F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;; F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;; F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;; F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;; F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;; F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;; F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;; F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;; F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;; F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;; F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;; F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;; F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;; F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;; F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;; F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;; F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;; F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;; F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;; F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;; F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;; F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;; F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;; F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;; F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;; F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;; F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;; F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;; F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;; F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;; F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;; F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;; F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;; F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;; F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;; F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;; F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;; F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;; F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;; F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;; F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;; F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;; F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;; F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;; F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;; F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;; F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;; F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;; F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;; F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;; F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;; F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;; F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;; F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;; F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;; F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;; F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;; F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;; F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;; F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;; F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;; F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;; F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;; F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;; F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;; F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;; F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;; F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;; F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;; F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;; F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;; F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;; F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;; F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;; F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;; F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;; F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;; F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;; F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;; F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;; F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;; F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;; F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;; F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;; F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;; F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;; F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;; F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;; F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;; F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;; F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;; F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;; F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;; F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;; F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;; F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;; F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;; F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;; F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;; F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;; F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;; F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;; F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;; F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;; F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;; F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;; F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;; F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;; F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;; F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;; F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;; F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;; F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;; F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;; F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;; F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;; F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;; F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;; F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;; F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;; F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;; F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;; F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;; F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;; F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;; F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;; F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;; F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;; F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;; F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;; F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;; F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;; F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;; F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;; F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;; F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;; F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;; F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;; F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;; F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;; F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;; F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;; F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;; F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;; F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;; F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;; F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;; F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;; F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;; F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;; F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;; F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;; F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;; F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;; F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;; F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;; F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;; F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;; F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;; F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;; F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;; F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;; F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;; F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;; F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;; F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;; F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;; F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;; F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;; F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;; F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;; F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;; F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;; F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;; F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;; F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;; F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;; F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;; F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;; F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;; F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;; F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;; F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;; F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;; F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;; F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;; F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;; F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;; F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;; F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;; F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;; F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;; F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;; F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;; F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;; F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;; F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;; F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;; F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;; F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;; F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;; F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;; F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;; F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;; F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;; F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;; F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;; F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;; F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;; F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;; F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;; F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;; F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;; F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;; F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;; F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;; F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;; F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;; F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;; F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;; F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;; F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;; F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;; F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;; FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;; FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;; FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;; FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;; FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;; FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;; FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;; FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;; FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;; FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;; FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;; FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;; FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;; FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;; FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;; FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;; FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;; FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;; FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;; FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;; FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;; FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;; FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;; FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;; FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;; FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;; FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;; FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;; FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;; FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;; FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;; FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;; FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;; FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;; FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;; FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;; FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;; FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;; FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;; FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;; FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;; FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;; FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;; FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;; FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;; FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;; FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;; FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;; FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;; FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;; FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;; FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;; FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;; FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;; FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;; FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;; FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;; FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;; FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;; FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;; FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;; FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;; FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;; FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;; FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;; FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;; FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;; FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;; FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;; FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;; FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;; FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;; FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;; FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;; FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;; FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;; FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;; FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;; FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;; FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;; FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;; FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;; FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;; FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;; FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;; FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;; FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;; FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;; FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;; FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;; FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;; FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;; FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;; FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;; FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;; FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;; FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;; FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;; FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;; FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;; FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;; FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;; FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;; FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;; FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;; FB00;LATIN SMALL LIGATURE FF;Ll;0;L; 0066 0066;;;;N;;;;; FB01;LATIN SMALL LIGATURE FI;Ll;0;L; 0066 0069;;;;N;;;;; FB02;LATIN SMALL LIGATURE FL;Ll;0;L; 0066 006C;;;;N;;;;; FB03;LATIN SMALL LIGATURE FFI;Ll;0;L; 0066 0066 0069;;;;N;;;;; FB04;LATIN SMALL LIGATURE FFL;Ll;0;L; 0066 0066 006C;;;;N;;;;; FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L; 017F 0074;;;;N;;;;; FB06;LATIN SMALL LIGATURE ST;Ll;0;L; 0073 0074;;;;N;;;;; FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L; 0574 0576;;;;N;;;;; FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L; 0574 0565;;;;N;;;;; FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L; 0574 056B;;;;N;;;;; FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L; 057E 0576;;;;N;;;;; FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L; 0574 056D;;;;N;;;;; FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;; FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;; FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;; FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R; 05E2;;;;N;;;;; FB21;HEBREW LETTER WIDE ALEF;Lo;0;R; 05D0;;;;N;;;;; FB22;HEBREW LETTER WIDE DALET;Lo;0;R; 05D3;;;;N;;;;; FB23;HEBREW LETTER WIDE HE;Lo;0;R; 05D4;;;;N;;;;; FB24;HEBREW LETTER WIDE KAF;Lo;0;R; 05DB;;;;N;;;;; FB25;HEBREW LETTER WIDE LAMED;Lo;0;R; 05DC;;;;N;;;;; FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R; 05DD;;;;N;;;;; FB27;HEBREW LETTER WIDE RESH;Lo;0;R; 05E8;;;;N;;;;; FB28;HEBREW LETTER WIDE TAV;Lo;0;R; 05EA;;;;N;;;;; FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;; FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;; FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;; FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;; FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;; FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;; FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;; FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;; FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;; FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;; FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;; FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;; FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;; FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;; FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;; FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;; FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;; FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;; FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;; FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;; FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;; FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;; FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;; FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;; FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;; FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;; FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;; FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;; FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;; FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;; FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;; FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;; FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R; 05D0 05DC;;;;N;;;;; FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL; 0671;;;;N;;;;; FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL; 0671;;;;N;;;;; FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL; 067B;;;;N;;;;; FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL; 067B;;;;N;;;;; FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL; 067B;;;;N;;;;; FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL; 067B;;;;N;;;;; FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL; 067E;;;;N;;;;; FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL; 067E;;;;N;;;;; FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL; 067E;;;;N;;;;; FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL; 067E;;;;N;;;;; FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL; 0680;;;;N;;;;; FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL; 0680;;;;N;;;;; FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL; 0680;;;;N;;;;; FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL; 0680;;;;N;;;;; FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL; 067A;;;;N;;;;; FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL; 067A;;;;N;;;;; FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL; 067A;;;;N;;;;; FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL; 067A;;;;N;;;;; FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL; 067F;;;;N;;;;; FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL; 067F;;;;N;;;;; FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL; 067F;;;;N;;;;; FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL; 067F;;;;N;;;;; FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL; 0679;;;;N;;;;; FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL; 0679;;;;N;;;;; FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL; 0679;;;;N;;;;; FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL; 0679;;;;N;;;;; FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL; 06A6;;;;N;;;;; FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL; 06A6;;;;N;;;;; FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL; 06A6;;;;N;;;;; FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL; 06A6;;;;N;;;;; FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL; 0684;;;;N;;;;; FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL; 0684;;;;N;;;;; FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL; 0684;;;;N;;;;; FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL; 0684;;;;N;;;;; FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL; 0683;;;;N;;;;; FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL; 0683;;;;N;;;;; FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL; 0683;;;;N;;;;; FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL; 0683;;;;N;;;;; FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL; 0686;;;;N;;;;; FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL; 0686;;;;N;;;;; FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL; 0686;;;;N;;;;; FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL; 0686;;;;N;;;;; FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL; 0687;;;;N;;;;; FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL; 0687;;;;N;;;;; FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL; 0687;;;;N;;;;; FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL; 0687;;;;N;;;;; FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL; 068D;;;;N;;;;; FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL; 068D;;;;N;;;;; FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL; 068C;;;;N;;;;; FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL; 068C;;;;N;;;;; FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL; 068E;;;;N;;;;; FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL; 068E;;;;N;;;;; FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL; 0688;;;;N;;;;; FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL; 0688;;;;N;;;;; FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL; 0698;;;;N;;;;; FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL; 0698;;;;N;;;;; FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL; 0691;;;;N;;;;; FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL; 0691;;;;N;;;;; FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL; 06A9;;;;N;;;;; FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL; 06A9;;;;N;;;;; FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL; 06A9;;;;N;;;;; FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL; 06A9;;;;N;;;;; FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL; 06AF;;;;N;;;;; FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL; 06AF;;;;N;;;;; FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL; 06AF;;;;N;;;;; FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL; 06AF;;;;N;;;;; FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL; 06B3;;;;N;;;;; FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL; 06B3;;;;N;;;;; FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL; 06B3;;;;N;;;;; FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL; 06B3;;;;N;;;;; FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL; 06BA;;;;N;;;;; FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL; 06BA;;;;N;;;;; FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL; 06C0;;;;N;;;;; FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL; 06C0;;;;N;;;;; FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL; 06C1;;;;N;;;;; FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL; 06C1;;;;N;;;;; FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL; 06C1;;;;N;;;;; FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL; 06C1;;;;N;;;;; FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL; 06D2;;;;N;;;;; FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL; 06D2;;;;N;;;;; FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 06D3;;;;N;;;;; FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 06D3;;;;N;;;;; FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL; 06C7;;;;N;;;;; FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL; 06C7;;;;N;;;;; FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL; 06C6;;;;N;;;;; FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL; 06C6;;;;N;;;;; FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL; 06C8;;;;N;;;;; FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL; 06C8;;;;N;;;;; FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0677;;;;N;;;;; FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL; 06CB;;;;N;;;;; FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL; 06CB;;;;N;;;;; FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL; 06C5;;;;N;;;;; FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL; 06C5;;;;N;;;;; FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL; 06C9;;;;N;;;;; FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL; 06C9;;;;N;;;;; FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL; 0649;;;;N;;;;; FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL; 0649;;;;N;;;;; FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL; 0626 0627;;;;N;;;;; FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL; 0626 0627;;;;N;;;;; FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL; 0626 06D5;;;;N;;;;; FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL; 0626 06D5;;;;N;;;;; FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL; 0626 0648;;;;N;;;;; FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL; 0626 0648;;;;N;;;;; FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL; 0626 06C7;;;;N;;;;; FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL; 0626 06C7;;;;N;;;;; FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL; 0626 06C6;;;;N;;;;; FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL; 0626 06C6;;;;N;;;;; FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL; 0626 06C8;;;;N;;;;; FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL; 0626 06C8;;;;N;;;;; FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL; 06CC;;;;N;;;;; FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL; 06CC;;;;N;;;;; FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL; 06CC;;;;N;;;;; FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL; 06CC;;;;N;;;;; FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL; 0626 062C;;;;N;;;;; FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL; 0626 062D;;;;N;;;;; FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL; 0626 064A;;;;N;;;;; FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0628 062C;;;;N;;;;; FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL; 0628 062D;;;;N;;;;; FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL; 0628 062E;;;;N;;;;; FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0628 0649;;;;N;;;;; FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL; 0628 064A;;;;N;;;;; FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL; 062A 062C;;;;N;;;;; FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL; 062A 062D;;;;N;;;;; FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL; 062A 062E;;;;N;;;;; FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062A 0649;;;;N;;;;; FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL; 062A 064A;;;;N;;;;; FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL; 062B 062C;;;;N;;;;; FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062B 0649;;;;N;;;;; FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL; 062B 064A;;;;N;;;;; FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL; 062C 062D;;;;N;;;;; FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL; 062C 0645;;;;N;;;;; FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL; 062D 062C;;;;N;;;;; FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL; 062D 0645;;;;N;;;;; FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL; 062E 062C;;;;N;;;;; FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL; 062E 062D;;;;N;;;;; FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL; 062E 0645;;;;N;;;;; FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL; 0633 062C;;;;N;;;;; FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL; 0633 062D;;;;N;;;;; FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL; 0633 062E;;;;N;;;;; FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL; 0633 0645;;;;N;;;;; FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL; 0635 062D;;;;N;;;;; FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL; 0635 0645;;;;N;;;;; FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL; 0636 062C;;;;N;;;;; FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL; 0636 062D;;;;N;;;;; FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL; 0636 062E;;;;N;;;;; FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL; 0636 0645;;;;N;;;;; FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL; 0637 062D;;;;N;;;;; FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL; 0637 0645;;;;N;;;;; FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL; 0638 0645;;;;N;;;;; FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL; 0639 062C;;;;N;;;;; FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL; 0639 0645;;;;N;;;;; FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL; 063A 062C;;;;N;;;;; FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL; 063A 0645;;;;N;;;;; FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0641 062C;;;;N;;;;; FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL; 0641 062D;;;;N;;;;; FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL; 0641 062E;;;;N;;;;; FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0641 0645;;;;N;;;;; FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0641 0649;;;;N;;;;; FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL; 0641 064A;;;;N;;;;; FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL; 0642 062D;;;;N;;;;; FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL; 0642 0645;;;;N;;;;; FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0642 0649;;;;N;;;;; FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL; 0642 064A;;;;N;;;;; FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL; 0643 0627;;;;N;;;;; FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL; 0643 062C;;;;N;;;;; FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL; 0643 062D;;;;N;;;;; FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL; 0643 062E;;;;N;;;;; FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0643 0649;;;;N;;;;; FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL; 0643 064A;;;;N;;;;; FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL; 0644 062C;;;;N;;;;; FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL; 0644 062D;;;;N;;;;; FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL; 0644 062E;;;;N;;;;; FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0644 0649;;;;N;;;;; FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL; 0644 064A;;;;N;;;;; FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL; 0645 062C;;;;N;;;;; FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL; 0645 062D;;;;N;;;;; FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL; 0645 062E;;;;N;;;;; FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL; 0645 0645;;;;N;;;;; FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0645 0649;;;;N;;;;; FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL; 0645 064A;;;;N;;;;; FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL; 0646 062C;;;;N;;;;; FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL; 0646 062D;;;;N;;;;; FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL; 0646 062E;;;;N;;;;; FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0646 0649;;;;N;;;;; FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL; 0646 064A;;;;N;;;;; FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0647 062C;;;;N;;;;; FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0647 0645;;;;N;;;;; FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0647 0649;;;;N;;;;; FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL; 0647 064A;;;;N;;;;; FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL; 064A 062C;;;;N;;;;; FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL; 064A 062D;;;;N;;;;; FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL; 064A 062E;;;;N;;;;; FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 064A 0649;;;;N;;;;; FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL; 064A 064A;;;;N;;;;; FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0630 0670;;;;N;;;;; FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0631 0670;;;;N;;;;; FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0649 0670;;;;N;;;;; FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL; 0020 064C 0651;;;;N;;;;; FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL; 0020 064D 0651;;;;N;;;;; FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL; 0020 064E 0651;;;;N;;;;; FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL; 0020 064F 0651;;;;N;;;;; FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL; 0020 0650 0651;;;;N;;;;; FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0020 0651 0670;;;;N;;;;; FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL; 0626 0631;;;;N;;;;; FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL; 0626 0632;;;;N;;;;; FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL; 0626 0646;;;;N;;;;; FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL; 0626 064A;;;;N;;;;; FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL; 0628 0631;;;;N;;;;; FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL; 0628 0632;;;;N;;;;; FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL; 0628 0646;;;;N;;;;; FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0628 0649;;;;N;;;;; FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL; 0628 064A;;;;N;;;;; FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL; 062A 0631;;;;N;;;;; FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL; 062A 0632;;;;N;;;;; FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL; 062A 0646;;;;N;;;;; FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 0649;;;;N;;;;; FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL; 062A 064A;;;;N;;;;; FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL; 062B 0631;;;;N;;;;; FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL; 062B 0632;;;;N;;;;; FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL; 062B 0646;;;;N;;;;; FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062B 0649;;;;N;;;;; FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL; 062B 064A;;;;N;;;;; FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0641 0649;;;;N;;;;; FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL; 0641 064A;;;;N;;;;; FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0642 0649;;;;N;;;;; FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL; 0642 064A;;;;N;;;;; FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL; 0643 0627;;;;N;;;;; FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0643 0649;;;;N;;;;; FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL; 0643 064A;;;;N;;;;; FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0644 0649;;;;N;;;;; FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL; 0644 064A;;;;N;;;;; FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL; 0645 0627;;;;N;;;;; FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0645 0645;;;;N;;;;; FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL; 0646 0631;;;;N;;;;; FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL; 0646 0632;;;;N;;;;; FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL; 0646 0646;;;;N;;;;; FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 0649;;;;N;;;;; FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL; 0646 064A;;;;N;;;;; FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL; 0649 0670;;;;N;;;;; FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL; 064A 0631;;;;N;;;;; FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL; 064A 0632;;;;N;;;;; FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL; 064A 0646;;;;N;;;;; FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 064A 0649;;;;N;;;;; FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL; 064A 064A;;;;N;;;;; FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL; 0626 062C;;;;N;;;;; FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL; 0626 062D;;;;N;;;;; FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL; 0626 062E;;;;N;;;;; FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL; 0626 0647;;;;N;;;;; FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL; 0628 062C;;;;N;;;;; FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL; 0628 062D;;;;N;;;;; FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL; 0628 062E;;;;N;;;;; FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL; 0628 0647;;;;N;;;;; FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL; 062A 062C;;;;N;;;;; FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL; 062A 062D;;;;N;;;;; FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL; 062A 062E;;;;N;;;;; FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL; 062A 0647;;;;N;;;;; FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL; 062C 062D;;;;N;;;;; FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 062C 0645;;;;N;;;;; FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL; 062D 062C;;;;N;;;;; FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL; 062D 0645;;;;N;;;;; FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 062E 062C;;;;N;;;;; FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 062E 0645;;;;N;;;;; FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL; 0633 062C;;;;N;;;;; FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL; 0633 062D;;;;N;;;;; FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL; 0633 062E;;;;N;;;;; FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL; 0633 0645;;;;N;;;;; FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL; 0635 062D;;;;N;;;;; FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL; 0635 062E;;;;N;;;;; FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645;;;;N;;;;; FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL; 0636 062C;;;;N;;;;; FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL; 0636 062D;;;;N;;;;; FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL; 0636 062E;;;;N;;;;; FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL; 0636 0645;;;;N;;;;; FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL; 0637 062D;;;;N;;;;; FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL; 0638 0645;;;;N;;;;; FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL; 0639 062C;;;;N;;;;; FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL; 0639 0645;;;;N;;;;; FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL; 063A 062C;;;;N;;;;; FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL; 063A 0645;;;;N;;;;; FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL; 0641 062C;;;;N;;;;; FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL; 0641 062D;;;;N;;;;; FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL; 0641 062E;;;;N;;;;; FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL; 0641 0645;;;;N;;;;; FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL; 0642 062D;;;;N;;;;; FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL; 0642 0645;;;;N;;;;; FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL; 0643 062C;;;;N;;;;; FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL; 0643 062D;;;;N;;;;; FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL; 0643 062E;;;;N;;;;; FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL; 0644 062C;;;;N;;;;; FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL; 0644 062D;;;;N;;;;; FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL; 0644 062E;;;;N;;;;; FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL; 0644 0647;;;;N;;;;; FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062C;;;;N;;;;; FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 062D;;;;N;;;;; FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062E;;;;N;;;;; FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 0645;;;;N;;;;; FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL; 0646 062C;;;;N;;;;; FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL; 0646 062D;;;;N;;;;; FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL; 0646 062E;;;;N;;;;; FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL; 0646 0647;;;;N;;;;; FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL; 0647 062C;;;;N;;;;; FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645;;;;N;;;;; FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL; 0647 0670;;;;N;;;;; FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL; 064A 062C;;;;N;;;;; FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL; 064A 062D;;;;N;;;;; FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL; 064A 062E;;;;N;;;;; FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL; 064A 0647;;;;N;;;;; FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL; 0626 0647;;;;N;;;;; FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL; 0628 0647;;;;N;;;;; FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL; 062A 0647;;;;N;;;;; FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL; 062B 0647;;;;N;;;;; FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL; 0633 0645;;;;N;;;;; FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL; 0633 0647;;;;N;;;;; FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL; 0634 0647;;;;N;;;;; FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL; 0646 0647;;;;N;;;;; FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL; 064A 0647;;;;N;;;;; FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL; 0640 064E 0651;;;;N;;;;; FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL; 0640 064F 0651;;;;N;;;;; FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL; 0640 0650 0651;;;;N;;;;; FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0637 0649;;;;N;;;;; FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL; 0637 064A;;;;N;;;;; FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0639 0649;;;;N;;;;; FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL; 0639 064A;;;;N;;;;; FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 063A 0649;;;;N;;;;; FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL; 063A 064A;;;;N;;;;; FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0633 0649;;;;N;;;;; FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL; 0633 064A;;;;N;;;;; FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0634 0649;;;;N;;;;; FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL; 0634 064A;;;;N;;;;; FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062D 0649;;;;N;;;;; FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL; 062D 064A;;;;N;;;;; FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062C 0649;;;;N;;;;; FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL; 062C 064A;;;;N;;;;; FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062E 0649;;;;N;;;;; FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL; 062E 064A;;;;N;;;;; FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0635 0649;;;;N;;;;; FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL; 0635 064A;;;;N;;;;; FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0636 0649;;;;N;;;;; FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL; 0636 064A;;;;N;;;;; FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL; 0634 0631;;;;N;;;;; FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL; 0633 0631;;;;N;;;;; FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL; 0635 0631;;;;N;;;;; FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL; 0636 0631;;;;N;;;;; FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0637 0649;;;;N;;;;; FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL; 0637 064A;;;;N;;;;; FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0639 0649;;;;N;;;;; FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL; 0639 064A;;;;N;;;;; FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 063A 0649;;;;N;;;;; FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL; 063A 064A;;;;N;;;;; FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 0649;;;;N;;;;; FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL; 0633 064A;;;;N;;;;; FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0634 0649;;;;N;;;;; FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL; 0634 064A;;;;N;;;;; FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062D 0649;;;;N;;;;; FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL; 062D 064A;;;;N;;;;; FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 0649;;;;N;;;;; FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL; 062C 064A;;;;N;;;;; FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062E 0649;;;;N;;;;; FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL; 062E 064A;;;;N;;;;; FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0635 0649;;;;N;;;;; FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL; 0635 064A;;;;N;;;;; FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0636 0649;;;;N;;;;; FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL; 0636 064A;;;;N;;;;; FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL; 0634 0631;;;;N;;;;; FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL; 0633 0631;;;;N;;;;; FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL; 0635 0631;;;;N;;;;; FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL; 0636 0631;;;;N;;;;; FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL; 0633 0647;;;;N;;;;; FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL; 0634 0647;;;;N;;;;; FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL; 0637 0645;;;;N;;;;; FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL; 0633 062C;;;;N;;;;; FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL; 0633 062D;;;;N;;;;; FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL; 0633 062E;;;;N;;;;; FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL; 0637 0645;;;;N;;;;; FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL; 0638 0645;;;;N;;;;; FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL; 0627 064B;;;;N;;;;; FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL; 0627 064B;;;;N;;;;; FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;; FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;; FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062C 0645;;;;N;;;;; FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL; 062A 062D 062C;;;;N;;;;; FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 062A 062D 062C;;;;N;;;;; FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062D 0645;;;;N;;;;; FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062E 0645;;;;N;;;;; FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 062A 0645 062C;;;;N;;;;; FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 062A 0645 062D;;;;N;;;;; FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 062A 0645 062E;;;;N;;;;; FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 062C 0645 062D;;;;N;;;;; FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 062C 0645 062D;;;;N;;;;; FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062D 0645 064A;;;;N;;;;; FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062D 0645 0649;;;;N;;;;; FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 0633 062D 062C;;;;N;;;;; FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0633 062C 062D;;;;N;;;;; FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 062C 0649;;;;N;;;;; FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0633 0645 062D;;;;N;;;;; FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0633 0645 062D;;;;N;;;;; FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0633 0645 062C;;;;N;;;;; FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0633 0645 0645;;;;N;;;;; FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0633 0645 0645;;;;N;;;;; FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL; 0635 062D 062D;;;;N;;;;; FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL; 0635 062D 062D;;;;N;;;;; FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL; 0634 062D 0645;;;;N;;;;; FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0634 062D 0645;;;;N;;;;; FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0634 062C 064A;;;;N;;;;; FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL; 0634 0645 062E;;;;N;;;;; FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0634 0645 062E;;;;N;;;;; FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0634 0645 0645;;;;N;;;;; FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0634 0645 0645;;;;N;;;;; FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0636 062D 0649;;;;N;;;;; FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0636 062E 0645;;;;N;;;;; FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0636 062E 0645;;;;N;;;;; FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0637 0645 062D;;;;N;;;;; FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0637 0645 062D;;;;N;;;;; FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0637 0645 0645;;;;N;;;;; FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0637 0645 064A;;;;N;;;;; FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0639 062C 0645;;;;N;;;;; FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0639 0645 0645;;;;N;;;;; FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 0645 0645;;;;N;;;;; FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0639 0645 0649;;;;N;;;;; FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 063A 0645 0645;;;;N;;;;; FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 063A 0645 064A;;;;N;;;;; FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 063A 0645 0649;;;;N;;;;; FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0641 062E 0645;;;;N;;;;; FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0641 062E 0645;;;;N;;;;; FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0642 0645 062D;;;;N;;;;; FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0642 0645 0645;;;;N;;;;; FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL; 0644 062D 0645;;;;N;;;;; FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0644 062D 064A;;;;N;;;;; FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0644 062D 0649;;;;N;;;;; FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0644 062C 062C;;;;N;;;;; FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL; 0644 062C 062C;;;;N;;;;; FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0644 062E 0645;;;;N;;;;; FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062E 0645;;;;N;;;;; FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0644 0645 062D;;;;N;;;;; FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0644 0645 062D;;;;N;;;;; FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062D 062C;;;;N;;;;; FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062D 0645;;;;N;;;;; FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0645 062D 064A;;;;N;;;;; FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 062C 062D;;;;N;;;;; FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062C 0645;;;;N;;;;; FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062E 062C;;;;N;;;;; FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062E 0645;;;;N;;;;; FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062C 062E;;;;N;;;;; FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0647 0645 062C;;;;N;;;;; FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645 0645;;;;N;;;;; FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0646 062D 0645;;;;N;;;;; FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 062D 0649;;;;N;;;;; FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0646 062C 0645;;;;N;;;;; FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0646 062C 0645;;;;N;;;;; FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 062C 0649;;;;N;;;;; FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 0645 064A;;;;N;;;;; FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 0645 0649;;;;N;;;;; FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 064A 0645 0645;;;;N;;;;; FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 064A 0645 0645;;;;N;;;;; FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0628 062E 064A;;;;N;;;;; FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 062A 062C 064A;;;;N;;;;; FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 062C 0649;;;;N;;;;; FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 062A 062E 064A;;;;N;;;;; FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 062E 0649;;;;N;;;;; FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062A 0645 064A;;;;N;;;;; FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 0645 0649;;;;N;;;;; FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062C 0645 064A;;;;N;;;;; FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 062D 0649;;;;N;;;;; FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 0645 0649;;;;N;;;;; FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 062E 0649;;;;N;;;;; FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0635 062D 064A;;;;N;;;;; FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0634 062D 064A;;;;N;;;;; FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0636 062D 064A;;;;N;;;;; FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0644 062C 064A;;;;N;;;;; FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0644 0645 064A;;;;N;;;;; FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 064A 062D 064A;;;;N;;;;; FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 064A 062C 064A;;;;N;;;;; FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 064A 0645 064A;;;;N;;;;; FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0645 0645 064A;;;;N;;;;; FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0642 0645 064A;;;;N;;;;; FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0646 062D 064A;;;;N;;;;; FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0642 0645 062D;;;;N;;;;; FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062D 0645;;;;N;;;;; FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0639 0645 064A;;;;N;;;;; FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0643 0645 064A;;;;N;;;;; FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0646 062C 062D;;;;N;;;;; FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0645 062E 064A;;;;N;;;;; FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062C 0645;;;;N;;;;; FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0643 0645 0645;;;;N;;;;; FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0644 062C 0645;;;;N;;;;; FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL; 0646 062C 062D;;;;N;;;;; FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 062C 062D 064A;;;;N;;;;; FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 062D 062C 064A;;;;N;;;;; FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0645 062C 064A;;;;N;;;;; FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0641 0645 064A;;;;N;;;;; FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0628 062D 064A;;;;N;;;;; FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0643 0645 0645;;;;N;;;;; FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 062C 0645;;;;N;;;;; FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0633 062E 064A;;;;N;;;;; FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 062C 064A;;;;N;;;;; FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0635 0644 06D2;;;;N;;;;; FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0642 0644 06D2;;;;N;;;;; FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL; 0627 0644 0644 0647;;;;N;;;;; FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL; 0627 0643 0628 0631;;;;N;;;;; FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL; 0645 062D 0645 062F;;;;N;;;;; FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL; 0635 0644 0639 0645;;;;N;;;;; FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL; 0631 0633 0648 0644;;;;N;;;;; FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL; 0639 0644 064A 0647;;;;N;;;;; FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL; 0648 0633 0644 0645;;;;N;;;;; FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL; 0635 0644 0649;;;;N;;;;; FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;; FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL; 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;; FDFC;RIAL SIGN;Sc;0;AL; 0631 06CC 0627 0644;;;;N;;;;; FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;; FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;; FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;; FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;; FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;; FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;; FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;; FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;; FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;; FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;; FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;; FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;; FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;; FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;; FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;; FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;; FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;; FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;; FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON; 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;; FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON; 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;; FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON; 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;; FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON; 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;; FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON; 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;; FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON; 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;; FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;; FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;; FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;; FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON; 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;; FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON; 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;; FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON; 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;; FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON; 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;; FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON; 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;; FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON; 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;; FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON; 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;; FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON; 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;; FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON; 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;; FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON; 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;; FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON; 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;; FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON; 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;; FE45;SESAME DOT;Po;0;ON;;;;;N;;;;; FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;; FE49;DASHED OVERLINE;Po;0;ON; 203E;;;;N;SPACING DASHED OVERSCORE;;;; FE4A;CENTRELINE OVERLINE;Po;0;ON; 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;; FE4B;WAVY OVERLINE;Po;0;ON; 203E;;;;N;SPACING WAVY OVERSCORE;;;; FE4C;DOUBLE WAVY OVERLINE;Po;0;ON; 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;; FE4D;DASHED LOW LINE;Pc;0;ON; 005F;;;;N;SPACING DASHED UNDERSCORE;;;; FE4E;CENTRELINE LOW LINE;Pc;0;ON; 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;; FE4F;WAVY LOW LINE;Pc;0;ON; 005F;;;;N;SPACING WAVY UNDERSCORE;;;; FE50;SMALL COMMA;Po;0;CS; 002C;;;;N;;;;; FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; FE52;SMALL FULL STOP;Po;0;CS; 002E;;;;N;SMALL PERIOD;;;; FE54;SMALL SEMICOLON;Po;0;ON; 003B;;;;N;;;;; FE55;SMALL COLON;Po;0;CS; 003A;;;;N;;;;; FE56;SMALL QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; FE57;SMALL EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; FE58;SMALL EM DASH;Pd;0;ON; 2014;;;;N;;;;; FE59;SMALL LEFT PARENTHESIS;Ps;0;ON; 0028;;;;N;SMALL OPENING PARENTHESIS;;;; FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;N;SMALL CLOSING PARENTHESIS;;;; FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;N;SMALL OPENING CURLY BRACKET;;;; FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;; FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON; 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;; FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON; 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;; FE5F;SMALL NUMBER SIGN;Po;0;ET; 0023;;;;N;;;;; FE60;SMALL AMPERSAND;Po;0;ON; 0026;;;;N;;;;; FE61;SMALL ASTERISK;Po;0;ON; 002A;;;;N;;;;; FE62;SMALL PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; FE63;SMALL HYPHEN-MINUS;Pd;0;ET; 002D;;;;N;;;;; FE64;SMALL LESS-THAN SIGN;Sm;0;ON; 003C;;;;N;;;;; FE65;SMALL GREATER-THAN SIGN;Sm;0;ON; 003E;;;;N;;;;; FE66;SMALL EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; FE68;SMALL REVERSE SOLIDUS;Po;0;ON; 005C;;;;N;SMALL BACKSLASH;;;; FE69;SMALL DOLLAR SIGN;Sc;0;ET; 0024;;;;N;;;;; FE6A;SMALL PERCENT SIGN;Po;0;ET; 0025;;;;N;;;;; FE6B;SMALL COMMERCIAL AT;Po;0;ON; 0040;;;;N;;;;; FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL; 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;; FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL; 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;; FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL; 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;; FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;; FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL; 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;; FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL; 0020 064E;;;;N;ARABIC SPACING FATHAH;;;; FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL; 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;; FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL; 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;; FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL; 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;; FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL; 0020 0650;;;;N;ARABIC SPACING KASRAH;;;; FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL; 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;; FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL; 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;; FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL; 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;; FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL; 0020 0652;;;;N;ARABIC SPACING SUKUN;;;; FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL; 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;; FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL; 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;; FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL; 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;; FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL; 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;; FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;; FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;; FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;; FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;; FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL; 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;; FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL; 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;; FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;; FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;; FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;; FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;; FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL; 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;; FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL; 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;; FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;; FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;; FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;; FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;; FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL; 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;; FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL; 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;; FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;; FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;; FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;; FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;; FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;; FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;; FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;; FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;; FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;; FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;; FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;; FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;; FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;; FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;; FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;; FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;; FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;; FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;; FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;; FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;; FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL; 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;; FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL; 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;; FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL; 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;; FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL; 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;; FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL; 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;; FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL; 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;; FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL; 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;; FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL; 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;; FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;; FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;; FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;; FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;; FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;; FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;; FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;; FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;; FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;; FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;; FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;; FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;; FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;; FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;; FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;; FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;; FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;; FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;; FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;; FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;; FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;; FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;; FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;; FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;; FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;; FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;; FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;; FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;; FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;; FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;; FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;; FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;; FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;; FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;; FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;; FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;; FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;; FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;; FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;; FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;; FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;; FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;; FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;; FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;; FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;; FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;; FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;; FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;; FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;; FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;; FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;; FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;; FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;; FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;; FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;; FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;; FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;; FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;; FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;; FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;; FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL; 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;; FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL; 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;; FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;; FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL; 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;; FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;; FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;; FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;; FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;; FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL; 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;; FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL; 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;; FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL; 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL; 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL; 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;; FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL; 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;; FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;; FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; FF02;FULLWIDTH QUOTATION MARK;Po;0;ON; 0022;;;;N;;;;; FF03;FULLWIDTH NUMBER SIGN;Po;0;ET; 0023;;;;N;;;;; FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET; 0024;;;;N;;;;; FF05;FULLWIDTH PERCENT SIGN;Po;0;ET; 0025;;;;N;;;;; FF06;FULLWIDTH AMPERSAND;Po;0;ON; 0026;;;;N;;;;; FF07;FULLWIDTH APOSTROPHE;Po;0;ON; 0027;;;;N;;;;; FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;; FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;; FF0A;FULLWIDTH ASTERISK;Po;0;ON; 002A;;;;N;;;;; FF0B;FULLWIDTH PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; FF0C;FULLWIDTH COMMA;Po;0;CS; 002C;;;;N;;;;; FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ET; 002D;;;;N;;;;; FF0E;FULLWIDTH FULL STOP;Po;0;CS; 002E;;;;N;FULLWIDTH PERIOD;;;; FF0F;FULLWIDTH SOLIDUS;Po;0;ES; 002F;;;;N;FULLWIDTH SLASH;;;; FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; FF11;FULLWIDTH DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; FF12;FULLWIDTH DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; FF13;FULLWIDTH DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; FF16;FULLWIDTH DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; FF19;FULLWIDTH DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; FF1A;FULLWIDTH COLON;Po;0;CS; 003A;;;;N;;;;; FF1B;FULLWIDTH SEMICOLON;Po;0;ON; 003B;;;;N;;;;; FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON; 003C;;;;Y;;;;; FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON; 003E;;;;Y;;;;; FF1F;FULLWIDTH QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON; 0040;;;;N;;;;; FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L; 0041;;;;N;;;;FF41; FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L; 0042;;;;N;;;;FF42; FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L; 0043;;;;N;;;;FF43; FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L; 0044;;;;N;;;;FF44; FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L; 0045;;;;N;;;;FF45; FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L; 0046;;;;N;;;;FF46; FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L; 0047;;;;N;;;;FF47; FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L; 0048;;;;N;;;;FF48; FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L; 0049;;;;N;;;;FF49; FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L; 004A;;;;N;;;;FF4A; FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L; 004B;;;;N;;;;FF4B; FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L; 004C;;;;N;;;;FF4C; FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L; 004D;;;;N;;;;FF4D; FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L; 004E;;;;N;;;;FF4E; FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L; 004F;;;;N;;;;FF4F; FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L; 0050;;;;N;;;;FF50; FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L; 0051;;;;N;;;;FF51; FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L; 0052;;;;N;;;;FF52; FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L; 0053;;;;N;;;;FF53; FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L; 0054;;;;N;;;;FF54; FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L; 0055;;;;N;;;;FF55; FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L; 0056;;;;N;;;;FF56; FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L; 0057;;;;N;;;;FF57; FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L; 0058;;;;N;;;;FF58; FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L; 0059;;;;N;;;;FF59; FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L; 005A;;;;N;;;;FF5A; FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON; 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;; FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON; 005C;;;;N;FULLWIDTH BACKSLASH;;;; FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON; 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;; FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON; 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;; FF3F;FULLWIDTH LOW LINE;Pc;0;ON; 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;; FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON; 0060;;;;N;FULLWIDTH SPACING GRAVE;;;; FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L; 0061;;;;N;;;FF21;;FF21 FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L; 0062;;;;N;;;FF22;;FF22 FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L; 0063;;;;N;;;FF23;;FF23 FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L; 0064;;;;N;;;FF24;;FF24 FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L; 0065;;;;N;;;FF25;;FF25 FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L; 0066;;;;N;;;FF26;;FF26 FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L; 0067;;;;N;;;FF27;;FF27 FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L; 0068;;;;N;;;FF28;;FF28 FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L; 0069;;;;N;;;FF29;;FF29 FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L; 006A;;;;N;;;FF2A;;FF2A FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L; 006B;;;;N;;;FF2B;;FF2B FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L; 006C;;;;N;;;FF2C;;FF2C FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L; 006D;;;;N;;;FF2D;;FF2D FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L; 006E;;;;N;;;FF2E;;FF2E FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L; 006F;;;;N;;;FF2F;;FF2F FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L; 0070;;;;N;;;FF30;;FF30 FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L; 0071;;;;N;;;FF31;;FF31 FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L; 0072;;;;N;;;FF32;;FF32 FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L; 0073;;;;N;;;FF33;;FF33 FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L; 0074;;;;N;;;FF34;;FF34 FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L; 0075;;;;N;;;FF35;;FF35 FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L; 0076;;;;N;;;FF36;;FF36 FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L; 0077;;;;N;;;FF37;;FF37 FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L; 0078;;;;N;;;FF38;;FF38 FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L; 0079;;;;N;;;FF39;;FF39 FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L; 007A;;;;N;;;FF3A;;FF3A FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;; FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON; 007C;;;;N;FULLWIDTH VERTICAL BAR;;;; FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;; FF5E;FULLWIDTH TILDE;Sm;0;ON; 007E;;;;N;FULLWIDTH SPACING TILDE;;;; FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON; 2985;;;;Y;;*;;; FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON; 2986;;;;Y;;*;;; FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON; 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;; FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON; 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;; FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON; 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;; FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; FF65;HALFWIDTH KATAKANA MIDDLE DOT;Pc;0;ON; 30FB;;;;N;;;;; FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L; 30F2;;;;N;;;;; FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L; 30A1;;;;N;;;;; FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L; 30A3;;;;N;;;;; FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L; 30A5;;;;N;;;;; FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L; 30A7;;;;N;;;;; FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L; 30A9;;;;N;;;;; FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L; 30E3;;;;N;;;;; FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L; 30E5;;;;N;;;;; FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L; 30E7;;;;N;;;;; FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L; 30C3;;;;N;;;;; FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L; 30FC;;;;N;;;;; FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L; 30A2;;;;N;;;;; FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L; 30A4;;;;N;;;;; FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L; 30A6;;;;N;;;;; FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L; 30A8;;;;N;;;;; FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L; 30AA;;;;N;;;;; FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L; 30AB;;;;N;;;;; FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L; 30AD;;;;N;;;;; FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L; 30AF;;;;N;;;;; FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L; 30B1;;;;N;;;;; FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L; 30B3;;;;N;;;;; FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L; 30B5;;;;N;;;;; FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L; 30B7;;;;N;;;;; FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L; 30B9;;;;N;;;;; FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L; 30BB;;;;N;;;;; FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L; 30BD;;;;N;;;;; FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L; 30BF;;;;N;;;;; FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L; 30C1;;;;N;;;;; FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L; 30C4;;;;N;;;;; FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L; 30C6;;;;N;;;;; FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L; 30C8;;;;N;;;;; FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L; 30CA;;;;N;;;;; FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L; 30CB;;;;N;;;;; FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L; 30CC;;;;N;;;;; FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L; 30CD;;;;N;;;;; FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L; 30CE;;;;N;;;;; FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L; 30CF;;;;N;;;;; FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L; 30D2;;;;N;;;;; FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L; 30D5;;;;N;;;;; FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L; 30D8;;;;N;;;;; FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L; 30DB;;;;N;;;;; FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L; 30DE;;;;N;;;;; FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L; 30DF;;;;N;;;;; FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L; 30E0;;;;N;;;;; FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L; 30E1;;;;N;;;;; FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L; 30E2;;;;N;;;;; FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L; 30E4;;;;N;;;;; FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L; 30E6;;;;N;;;;; FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L; 30E8;;;;N;;;;; FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L; 30E9;;;;N;;;;; FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L; 30EA;;;;N;;;;; FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L; 30EB;;;;N;;;;; FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L; 30EC;;;;N;;;;; FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L; 30ED;;;;N;;;;; FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L; 30EF;;;;N;;;;; FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L; 30F3;;;;N;;;;; FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L; 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;; FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L; 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;; FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L; 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;; FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L; 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;; FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L; 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;; FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L; 3134;;;;N;;;;; FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L; 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;; FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L; 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;; FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L; 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;; FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L; 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;; FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L; 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;; FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L; 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;; FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L; 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;; FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L; 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;; FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L; 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;; FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L; 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;; FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L; 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;; FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L; 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;; FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L; 3141;;;;N;;;;; FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L; 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;; FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L; 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;; FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L; 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;; FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L; 3145;;;;N;;;;; FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L; 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;; FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L; 3147;;;;N;;;;; FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L; 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;; FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L; 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;; FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L; 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;; FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L; 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;; FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L; 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;; FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L; 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;; FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L; 314E;;;;N;;;;; FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L; 314F;;;;N;;;;; FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L; 3150;;;;N;;;;; FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L; 3151;;;;N;;;;; FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L; 3152;;;;N;;;;; FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L; 3153;;;;N;;;;; FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L; 3154;;;;N;;;;; FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L; 3155;;;;N;;;;; FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L; 3156;;;;N;;;;; FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L; 3157;;;;N;;;;; FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L; 3158;;;;N;;;;; FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L; 3159;;;;N;;;;; FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L; 315A;;;;N;;;;; FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L; 315B;;;;N;;;;; FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L; 315C;;;;N;;;;; FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L; 315D;;;;N;;;;; FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L; 315E;;;;N;;;;; FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L; 315F;;;;N;;;;; FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L; 3160;;;;N;;;;; FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L; 3161;;;;N;;;;; FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L; 3162;;;;N;;;;; FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L; 3163;;;;N;;;;; FFE0;FULLWIDTH CENT SIGN;Sc;0;ET; 00A2;;;;N;;;;; FFE1;FULLWIDTH POUND SIGN;Sc;0;ET; 00A3;;;;N;;;;; FFE2;FULLWIDTH NOT SIGN;Sm;0;ON; 00AC;;;;N;;;;; FFE3;FULLWIDTH MACRON;Sk;0;ON; 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;; FFE4;FULLWIDTH BROKEN BAR;So;0;ON; 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;; FFE5;FULLWIDTH YEN SIGN;Sc;0;ET; 00A5;;;;N;;;;; FFE6;FULLWIDTH WON SIGN;Sc;0;ET; 20A9;;;;N;;;;; FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON; 2502;;;;N;;;;; FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON; 2190;;;;N;;;;; FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON; 2191;;;;N;;;;; FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON; 2192;;;;N;;;;; FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON; 2193;;;;N;;;;; FFED;HALFWIDTH BLACK SQUARE;So;0;ON; 25A0;;;;N;;;;; FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON; 25CB;;;;N;;;;; FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;BN;;;;;N;;;;; FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;BN;;;;;N;;;;; FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;BN;;;;;N;;;;; FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;; 10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;; 10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;; 10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;; 10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;; 10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;; 10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;; 10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;; 10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;; 10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;; 1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;; 1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;; 1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;; 1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;; 1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;; 1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;Faliscan;;; 10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;; 10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;; 10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;; 10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;; 10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;; 10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;; 10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;; 10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;Faliscan;;; 10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;; 10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;; 1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;; 1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;Umbrian;;; 1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;Umbrian;;; 1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;Oscan;;; 1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;Oscan;;; 10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;; 10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;; 10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;; 10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;; 10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;; 10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;; 10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;; 10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;; 10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;; 10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;; 10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;; 10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;; 10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;; 10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;; 1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;; 1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;; 1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;; 1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;; 1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;; 1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;; 10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;; 10341;GOTHIC LETTER NINETY;Lo;0;L;;;;;N;;;;; 10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;; 10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;; 10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;; 10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;; 10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;; 10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;; 10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;; 10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;; 1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;;N;;;;; 10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428; 10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429; 10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A; 10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B; 10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C; 10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D; 10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E; 10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F; 10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430; 10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431; 1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432; 1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433; 1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434; 1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435; 1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436; 1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437; 10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438; 10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439; 10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A; 10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B; 10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C; 10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D; 10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E; 10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F; 10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440; 10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441; 1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442; 1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443; 1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444; 1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445; 1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446; 1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447; 10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448; 10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449; 10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A; 10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B; 10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C; 10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D; 10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400 10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401 1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402 1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403 1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404 1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405 1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406 1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407 10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408 10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409 10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A 10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B 10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C 10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D 10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E 10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F 10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410 10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411 1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412 1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413 1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414 1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415 1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416 1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417 10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418 10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419 10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A 10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B 10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C 10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D 10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E 10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F 10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420 10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421 1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422 1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423 1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424 1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425 1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;; 1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;; 1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;; 1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;; 1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;; 1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;; 1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;; 1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;; 1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;; 1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;; 1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;; 1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;; 1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;; 1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;; 1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;; 1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;; 1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;; 1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;; 1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;; 1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;; 1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;; 1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;; 1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;; 1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;; 1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;; 1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;; 1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;; 1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;; 1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;; 1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;; 1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;; 1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;; 1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;; 1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;; 1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;; 1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;; 1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;; 1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;; 1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;; 1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;; 1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;; 1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;; 1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;; 1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;; 1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;; 1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;; 1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;; 1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;; 1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;; 1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;; 1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;; 1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;; 1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;; 1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;; 1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;; 1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;; 1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;; 1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;; 1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;; 1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;; 1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;; 1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;; 1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;; 1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;; 1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;; 1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;; 1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;; 1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;; 1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;; 1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;; 1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;; 1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;; 1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;; 1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;; 1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;; 1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;; 1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;; 1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;; 1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;; 1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;; 1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;; 1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;; 1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;; 1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;; 1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;; 1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;; 1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;; 1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;; 1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;; 1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;; 1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;; 1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;; 1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;; 1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;; 1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;; 1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;; 1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;; 1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;; 1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;; 1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;; 1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;; 1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;; 1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;; 1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;; 1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;; 1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;; 1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;; 1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;; 1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;; 1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;; 1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;; 1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;; 1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;; 1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;; 1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;; 1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;; 1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;; 1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;; 1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;; 1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;; 1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;; 1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;; 1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;; 1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;; 1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;; 1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;; 1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;; 1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;; 1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;; 1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;; 1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;; 1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;; 1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;; 1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;; 1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;; 1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;; 1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;; 1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;; 1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;; 1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;; 1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;; 1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;; 1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;; 1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;; 1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;; 1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; 1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;; 1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;; 1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;; 1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; 1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;; 1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;; 1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;; 1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;; 1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;; 1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;; 1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;; 1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;; 1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;; 1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;; 1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;; 1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;; 1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;; 1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;; 1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;; 1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;; 1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;; 1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;; 1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;; 1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;; 1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;; 1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;; 1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; 1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; 1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;; 1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;; 1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;; 1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;; 1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;; 1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;; 1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;; 1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;; 1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;; 1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;; 1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;; 1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;; 1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;; 1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;; 1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;; 1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;; 1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;; 1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;; 1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;; 1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;; 1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;; 1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;; 1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;; 1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;; 1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;; 1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;; 1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;; 1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;; 1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;; 1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;; 1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;; 1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;; 1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;; 1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;; 1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; 1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; 1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; 1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; 1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; 1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; 1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; 1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; 1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;; 1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;; 1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;; 1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;; 1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;; 1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;; 1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;; 1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;; 1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;; 1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;; 1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;; 1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;; 1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;; 1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;; 1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;; 1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;; 1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;; 1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;; 1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;; 1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;; 1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;; 1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;; 1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;; 1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;; 1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;; 1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;; 1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;; 1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;; 1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;; 1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;; 1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;; 1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;; 1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;; 1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;; 1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;; 1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;; 1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;; 1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;; 1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;; 1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;; 1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;; 1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;; 1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;; 1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;; 1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;; 1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;; 1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;; 1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;; 1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;; 1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;; 1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;; 1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;; 1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;; 1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;; 1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;; 1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;; 1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;; 1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;; 1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;; 1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;; 1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;; 1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; 1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; 1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;; 1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;; 1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; 1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; 1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;; 1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;; 1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;; 1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;; 1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;; 1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;; 1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;; 1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;; 1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;; 1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;; 1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;; 1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;; 1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;; 1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;; 1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;; 1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;; 1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;; 1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;; 1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;; 1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;; 1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;; 1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;; 1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;; 1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;; 1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;; 1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;; 1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;; 1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;; 1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;; 1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;; 1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;; 1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;; 1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;; 1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;; 1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;; 1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;; 1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;; 1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; 1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; 1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;; 1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;; 1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;; 1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; 1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; 1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;; 1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;; 1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;; 1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;; 1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;; 1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;; 1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;; 1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;; 1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;; 1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;; 1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;; 1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;; 1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;; 1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;; 1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;; 1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;; 1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;; 1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;; 1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;; 1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;; 1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;; 1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;; 1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;; 1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;; 1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;; 1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;; 1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;; 1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;; 1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;; 1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;; 1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;; 1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;; 1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;; 1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;; 1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;; 1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;; 1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;; 1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;; 1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;; 1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;; 1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;; 1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;; 1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;; 1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;; 1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;; 1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;; 1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;; 1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;; 1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;; 1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;; 1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;; 1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;; 1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;; 1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;; 1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;; 1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;; 1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;; 1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;; 1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;; 1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;; 1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;; 1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;; 1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;; 1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;; 1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;; 1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;; 1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;; 1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;; 1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;; 1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;; 1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;; 1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;; 1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;; 1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;; 1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;; 1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;; 1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;; 1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;; 1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;; 1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;; 1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;; 1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;; 1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;; 1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;; 1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;; 1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;; 1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;; 1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;; 1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;; 1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;; 1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;; 1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;; 1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;; 1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;; 1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;; 1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;; 1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;; 1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;; 1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;; 1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;; 1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;; 1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;; 1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;; 1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;; 1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;; 1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;; 1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;; 1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;; 1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;; 1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;; 1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;; 1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; 1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; 1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; 1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; 1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; 1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; 1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;; 1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;; 1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;; 1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;; 1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;; 1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;; 1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;; 1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;; 1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;; 1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;; 1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;; 1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;; 1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;; 1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;; 1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;; 1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;; 1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;; 1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L; 2207;;;;N;;;;; 1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; 1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; 1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L; 2207;;;;N;;;;; 1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; 1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 20000;;Lo;0;L;;;;;N;;;;; 2A6D6;;Lo;0;L;;;;;N;;;;; 2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;; 2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;; 2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;; 2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;; 2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;; 2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;; 2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;; 2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;; 2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;; 2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;; 2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;; 2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;; 2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;; 2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;; 2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;; 2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;; 2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;; 2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;; 2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;; 2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;; 2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;; 2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;; 2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;; 2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;; 2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;; 2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;; 2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;; 2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;; 2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;; 2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;; 2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;; 2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;; 2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;; 2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;; 2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;; 2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;; 2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;; 2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;; 2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;; 2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;; 2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;; 2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;; 2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;; 2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;; 2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;; 2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;; 2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;; 2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;; 2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;; 2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;; 2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;; 2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;; 2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;; 2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;; 2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;; 2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;; 2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;; 2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;; 2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;; 2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;; 2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;; 2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;; 2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;; 2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;; 2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;; 2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;; 2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;; 2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;; 2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;; 2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;; 2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;; 2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;; 2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;; 2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;; 2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;; 2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;; 2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;; 2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;; 2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;; 2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;; 2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;; 2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;; 2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;; 2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;; 2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;; 2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;; 2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;; 2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;; 2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;; 2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;; 2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;; 2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;; 2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;; 2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;; 2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;; 2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;; 2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;; 2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;; 2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;; 2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;; 2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;; 2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;; 2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;; 2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;; 2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;2136A;;;;N;;;;; 2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;; 2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;; 2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;; 2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;; 2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;; 2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;; 2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;; 2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;; 2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;; 2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;; 2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;; 2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F33;;;;N;;;;; 2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;; 2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;; 2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;; 2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;; 2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;; 2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;; 2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;; 2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;; 2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;; 2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;; 2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;; 2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;; 2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;; 2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;; 2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;; 2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;; 2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;; 2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;; 2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;; 2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;; 2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;; 2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;; 2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;; 2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;; 2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;; 2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;; 2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;; 2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;;N;;;;; 2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;; 2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;; 2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;; 2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;; 2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;; 2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;; 2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;; 2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;; 2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;; 2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;; 2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;; 2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;; 2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;; 2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;; 2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;; 2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;; 2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;; 2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;; 2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;; 2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;; 2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;; 2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;; 2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;; 2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;; 2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;; 2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;; 2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;; 2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;; 2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;; 2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;; 2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;; 2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;; 2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;; 2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;; 2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;; 2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;; 2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;; 2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;; 2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;; 2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;; 2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;; 2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;; 2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;; 2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;; 2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;; 2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;; 2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;; 2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;; 2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;; 2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;; 2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;; 2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;; 2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;; 2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;; 2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;; 2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;; 2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;; 2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;; 2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;; 2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;; 2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;; 2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;; 2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;; 2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;; 2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;; 2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;; 2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;; 2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;; 2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;; 2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;; 2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;; 2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;; 2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;; 2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;; 2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;; 2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;; 2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;; 2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;; 2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;; 2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;; 2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;; 2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;; 2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;; 2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;; 2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;; 2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;; 2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;; 2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;; 2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;; 2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;; 2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;; 2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;; 2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;; 2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;; 2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;; 2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;; 2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;; 2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;; 2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;; 2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;; 2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;; 2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;; 2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;; 2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;; 2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;; 2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;; 2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;; 2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;; 2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;; 2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;; 2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;; 2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;; 2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;; 2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;; 2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;; 2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;; 2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;; 2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;; 2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;; 2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;; 2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;; 2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;; 2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;; 2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;; 2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;; 2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;; 2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;; 2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;; 2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;; 2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;; 2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;; 2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;; 2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;; 2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;; 2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;; 2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;; 2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;; 2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;; 2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;; 2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;; 2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;; 2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;; 2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;43AB;;;;N;;;;; 2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;; 2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;; 2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;; 2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;; 2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;; 2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;; 2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;; 2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;; 2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;; 2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;; 2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;; 2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;; 2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;; 2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;; 2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;; 2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;; 2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;; 2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;; 2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;; 2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;; 2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;; 2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;; 2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;; 2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;; 2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;; 2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;; 2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;; 2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;; 2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;; 2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;; 2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;; 2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;; 2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;; 2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;; 2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;; 2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;; 2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;; 2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;; 2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;; 2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;; 2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;; 2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;; 2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;; 2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;; 2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;; 2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;; 2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;; 2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;; 2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;; 2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;; 2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;; 2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;; 2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;; 2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;; 2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;; 2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;; 2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;; 2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;; 2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;; 2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;; 2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;; 2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;; 2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;; 2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AAE;;;;N;;;;; 2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;; 2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;; 2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;; 2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;; 2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;; 2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;; 2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;; 2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;; 2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;; 2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;; 2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;; 2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;; 2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;; 2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;; 2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;; 2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;; 2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;; 2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;; 2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;; 2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;; 2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;; 2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;; 2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;; 2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;; 2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;; 2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;; 2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;; 2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;; 2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;; 2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;; 2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;; 2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;; 2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;; 2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;; 2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;; 2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;; 2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;; 2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;; 2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;; 2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;; 2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;; 2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;; 2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;; 2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;; 2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;; 2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;; 2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;; 2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;; 2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;; 2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;; 2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;; 2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;; 2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;; 2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;; 2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;; 2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;; 2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;; 2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;; 2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;; 2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;; 2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;; 2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;; 2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;; 2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;; 2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;; 2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;; 2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;; 2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;; 2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;; 2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;; 2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;; 2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;; 2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;; 2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;; 2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;; 2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;; 2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;; 2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;; 2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;; 2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;; 2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;; 2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;; 2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;; 2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;; 2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;; 2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;; 2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;; 2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;; 2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;; 2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;; 2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;; 2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;; 2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;; 2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;; 2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;; 2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;4D57;;;;N;;;;; 2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;; 2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;; 2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;; 2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;; 2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;; 2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;; 2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;; 2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;; 2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;; 2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;; 2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;; 2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;; 2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;; 2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;; 2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;; 2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;; 2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;; 2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;; 2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;; 2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;; 2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;; 2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;; 2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;; 2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;; 2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;; 2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;; 2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;; 2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;; 2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;; 2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;; 2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;; 2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;; 2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;; 2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;; 2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;; 2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;; 2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;; 2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;; 2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;; 2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;; 2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;; 2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;; 2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;; 2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;; 2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;; 2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;; 2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;; 2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;; 2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;; 2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;; 2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;; 2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;; 2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;; 2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;; 2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;; 2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;; 2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;; 2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;; 2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;; 2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;; 2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;; 2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;; 2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;; 2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;; 2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;; 2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;; 2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;; 2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;; 2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;; 2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;; 2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;; 2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;; 2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;; 2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;; 2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;; 2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;; 2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;; 2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;; 2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;; 2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;; 2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;; 2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;; 2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;; 2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;; 2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;; 2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;; 2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;; 2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;; 2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;; 2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;; 2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;; 2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;; 2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;; 2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;; E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;; E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;; E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;; E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;; E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;; E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;; E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;; E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;; E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;; E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;; E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;; E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;; E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;; E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;; E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;; E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;; E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;; E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;; E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;; E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;; E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;; E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;; E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;; E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;; E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;; E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;; E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;; E003A;TAG COLON;Cf;0;BN;;;;;N;;;;; E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;; E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;; E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;; E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;; E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;; E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;; E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;; E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;; E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;; E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;; E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;; E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;; E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;; E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;; E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;; E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;; E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;; E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;; E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;; E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;; E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;; E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;; E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;; E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;; E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;; E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;; E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;; E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;; E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;; E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;; E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;; E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;; E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;; E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;; E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;; E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;; E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;; E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;; E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;; E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;; E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;; E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;; E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;; E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;; E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;; E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;; E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;; E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;; E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;; E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;; E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;; E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;; E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;; E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;; E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;; E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;; E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;; E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;; E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;; E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;; E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;; E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;; E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;; E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;; E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;; E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;; E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;; E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;; E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;; F0000;;Co;0;L;;;;;N;;;;; FFFFD;;Co;0;L;;;;;N;;;;; 100000;;Co;0;L;;;;;N;;;;; 10FFFD;;Co;0;L;;;;;N;;;;; libidn-1.38/doc/specifications/Makefile.in0000644000000000000000000014636414076273732015443 00000000000000# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2011 Simon # Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/specifications ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = rfc3454.txt \ UnicodeData-3.2.0.txt LineBreak-3.2.0.txt \ SpecialCasing-3.2.0.txt CaseFolding-3.2.0.txt \ CompositionExclusions-3.2.0.txt BidiMirroring-3.2.0.txt \ COPYING.UCD all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/specifications/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/specifications/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.38/doc/specifications/LineBreak-3.2.0.txt0000644000000000000000000200756614053001337016414 00000000000000# LineBreak-3.2.0.txt # # Line Break Properties # # This file is a supplement to the UnicodeData.txt file. # It contains both normative and informative data. # The format is two fields separated by a semicolon. # Field 1: Unicode value # Field 2: LineBreak property, consisting of one of the following values: # Normative: # "BK", "CR", "LF", "CM", "SG", "GL", "CB", "SP", "ZW" # Informative: # "XX", "OP", "CL", "QU", "NS", "EX", "SY", # "IS", "PR", "PO", "NU", "AL", "ID", "IN", "HY", # "BB", "BA", "SA", "AI", "B2" # - Assigned characters that are not listed explicitly are given the value # "AL". # - Unassigned characters are given the value "XX". # - Characters ranges are specified as for other property files in # the Unicode Character Database. # # The Unicode name of each character is provided in a comment for help # in identifying the characters. # # See UTR #14: Line Breaking Properties, for more information 0000;CM # 0001;CM # 0002;CM # 0003;CM # 0004;CM # 0005;CM # 0006;CM # 0007;CM # 0008;CM # 0009;BA # 000A;LF # 000B;CM # 000C;BK # 000D;CR # 000E;CM # 000F;CM # 0010;CM # 0011;CM # 0012;CM # 0013;CM # 0014;CM # 0015;CM # 0016;CM # 0017;CM # 0018;CM # 0019;CM # 001A;CM # 001B;CM # 001C;CM # 001D;CM # 001E;CM # 001F;CM # 0020;SP # SPACE 0021;EX # EXCLAMATION MARK 0022;QU # QUOTATION MARK 0023;AL # NUMBER SIGN 0024;PR # DOLLAR SIGN 0025;PO # PERCENT SIGN 0026;AL # AMPERSAND 0027;QU # APOSTROPHE 0028;OP # LEFT PARENTHESIS 0029;CL # RIGHT PARENTHESIS 002A;AL # ASTERISK 002B;PR # PLUS SIGN 002C;IS # COMMA 002D;HY # HYPHEN-MINUS 002E;IS # FULL STOP 002F;SY # SOLIDUS 0030;NU # DIGIT ZERO 0031;NU # DIGIT ONE 0032;NU # DIGIT TWO 0033;NU # DIGIT THREE 0034;NU # DIGIT FOUR 0035;NU # DIGIT FIVE 0036;NU # DIGIT SIX 0037;NU # DIGIT SEVEN 0038;NU # DIGIT EIGHT 0039;NU # DIGIT NINE 003A;IS # COLON 003B;IS # SEMICOLON 003C;AL # LESS-THAN SIGN 003D;AL # EQUALS SIGN 003E;AL # GREATER-THAN SIGN 003F;EX # QUESTION MARK 0040;AL # COMMERCIAL AT 0041;AL # LATIN CAPITAL LETTER A 0042;AL # LATIN CAPITAL LETTER B 0043;AL # LATIN CAPITAL LETTER C 0044;AL # LATIN CAPITAL LETTER D 0045;AL # LATIN CAPITAL LETTER E 0046;AL # LATIN CAPITAL LETTER F 0047;AL # LATIN CAPITAL LETTER G 0048;AL # LATIN CAPITAL LETTER H 0049;AL # LATIN CAPITAL LETTER I 004A;AL # LATIN CAPITAL LETTER J 004B;AL # LATIN CAPITAL LETTER K 004C;AL # LATIN CAPITAL LETTER L 004D;AL # LATIN CAPITAL LETTER M 004E;AL # LATIN CAPITAL LETTER N 004F;AL # LATIN CAPITAL LETTER O 0050;AL # LATIN CAPITAL LETTER P 0051;AL # LATIN CAPITAL LETTER Q 0052;AL # LATIN CAPITAL LETTER R 0053;AL # LATIN CAPITAL LETTER S 0054;AL # LATIN CAPITAL LETTER T 0055;AL # LATIN CAPITAL LETTER U 0056;AL # LATIN CAPITAL LETTER V 0057;AL # LATIN CAPITAL LETTER W 0058;AL # LATIN CAPITAL LETTER X 0059;AL # LATIN CAPITAL LETTER Y 005A;AL # LATIN CAPITAL LETTER Z 005B;OP # LEFT SQUARE BRACKET 005C;PR # REVERSE SOLIDUS 005D;CL # RIGHT SQUARE BRACKET 005E;AL # CIRCUMFLEX ACCENT 005F;AL # LOW LINE 0060;AL # GRAVE ACCENT 0061;AL # LATIN SMALL LETTER A 0062;AL # LATIN SMALL LETTER B 0063;AL # LATIN SMALL LETTER C 0064;AL # LATIN SMALL LETTER D 0065;AL # LATIN SMALL LETTER E 0066;AL # LATIN SMALL LETTER F 0067;AL # LATIN SMALL LETTER G 0068;AL # LATIN SMALL LETTER H 0069;AL # LATIN SMALL LETTER I 006A;AL # LATIN SMALL LETTER J 006B;AL # LATIN SMALL LETTER K 006C;AL # LATIN SMALL LETTER L 006D;AL # LATIN SMALL LETTER M 006E;AL # LATIN SMALL LETTER N 006F;AL # LATIN SMALL LETTER O 0070;AL # LATIN SMALL LETTER P 0071;AL # LATIN SMALL LETTER Q 0072;AL # LATIN SMALL LETTER R 0073;AL # LATIN SMALL LETTER S 0074;AL # LATIN SMALL LETTER T 0075;AL # LATIN SMALL LETTER U 0076;AL # LATIN SMALL LETTER V 0077;AL # LATIN SMALL LETTER W 0078;AL # LATIN SMALL LETTER X 0079;AL # LATIN SMALL LETTER Y 007A;AL # LATIN SMALL LETTER Z 007B;OP # LEFT CURLY BRACKET 007C;BA # VERTICAL LINE 007D;CL # RIGHT CURLY BRACKET 007E;AL # TILDE 007F;CM # 0080;CM # 0081;CM # 0082;CM # 0083;CM # 0084;CM # 0085;CM # 0086;CM # 0087;CM # 0088;CM # 0089;CM # 008A;CM # 008B;CM # 008C;CM # 008D;CM # 008E;CM # 008F;CM # 0090;CM # 0091;CM # 0092;CM # 0093;CM # 0094;CM # 0095;CM # 0096;CM # 0097;CM # 0098;CM # 0099;CM # 009A;CM # 009B;CM # 009C;CM # 009D;CM # 009E;CM # 009F;CM # 00A0;GL # NO-BREAK SPACE 00A1;AI # INVERTED EXCLAMATION MARK 00A2;PO # CENT SIGN 00A3;PR # POUND SIGN 00A4;PR # CURRENCY SIGN 00A5;PR # YEN SIGN 00A6;AL # BROKEN BAR 00A7;AI # SECTION SIGN 00A8;AI # DIAERESIS 00A9;AL # COPYRIGHT SIGN 00AA;AI # FEMININE ORDINAL INDICATOR 00AB;QU # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 00AC;AL # NOT SIGN 00AD;BA # SOFT HYPHEN 00AE;AL # REGISTERED SIGN 00AF;AL # MACRON 00B0;PO # DEGREE SIGN 00B1;PR # PLUS-MINUS SIGN 00B2;AI # SUPERSCRIPT TWO 00B3;AI # SUPERSCRIPT THREE 00B4;BB # ACUTE ACCENT 00B5;AL # MICRO SIGN 00B6;AI # PILCROW SIGN 00B7;AI # MIDDLE DOT 00B8;AI # CEDILLA 00B9;AI # SUPERSCRIPT ONE 00BA;AI # MASCULINE ORDINAL INDICATOR 00BB;QU # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 00BC;AI # VULGAR FRACTION ONE QUARTER 00BD;AI # VULGAR FRACTION ONE HALF 00BE;AI # VULGAR FRACTION THREE QUARTERS 00BF;AI # INVERTED QUESTION MARK 00C0;AL # LATIN CAPITAL LETTER A WITH GRAVE 00C1;AL # LATIN CAPITAL LETTER A WITH ACUTE 00C2;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C3;AL # LATIN CAPITAL LETTER A WITH TILDE 00C4;AL # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5;AL # LATIN CAPITAL LETTER A WITH RING ABOVE 00C6;AI # LATIN CAPITAL LETTER AE 00C7;AL # LATIN CAPITAL LETTER C WITH CEDILLA 00C8;AL # LATIN CAPITAL LETTER E WITH GRAVE 00C9;AL # LATIN CAPITAL LETTER E WITH ACUTE 00CA;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CB;AL # LATIN CAPITAL LETTER E WITH DIAERESIS 00CC;AL # LATIN CAPITAL LETTER I WITH GRAVE 00CD;AL # LATIN CAPITAL LETTER I WITH ACUTE 00CE;AL # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00CF;AL # LATIN CAPITAL LETTER I WITH DIAERESIS 00D0;AI # LATIN CAPITAL LETTER ETH 00D1;AL # LATIN CAPITAL LETTER N WITH TILDE 00D2;AL # LATIN CAPITAL LETTER O WITH GRAVE 00D3;AL # LATIN CAPITAL LETTER O WITH ACUTE 00D4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00D5;AL # LATIN CAPITAL LETTER O WITH TILDE 00D6;AL # LATIN CAPITAL LETTER O WITH DIAERESIS 00D7;AI # MULTIPLICATION SIGN 00D8;AI # LATIN CAPITAL LETTER O WITH STROKE 00D9;AL # LATIN CAPITAL LETTER U WITH GRAVE 00DA;AL # LATIN CAPITAL LETTER U WITH ACUTE 00DB;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00DC;AL # LATIN CAPITAL LETTER U WITH DIAERESIS 00DD;AL # LATIN CAPITAL LETTER Y WITH ACUTE 00DE;AI # LATIN CAPITAL LETTER THORN 00DF;AI # LATIN SMALL LETTER SHARP S 00E0;AI # LATIN SMALL LETTER A WITH GRAVE 00E1;AI # LATIN SMALL LETTER A WITH ACUTE 00E2;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX 00E3;AL # LATIN SMALL LETTER A WITH TILDE 00E4;AL # LATIN SMALL LETTER A WITH DIAERESIS 00E5;AL # LATIN SMALL LETTER A WITH RING ABOVE 00E6;AI # LATIN SMALL LETTER AE 00E7;AL # LATIN SMALL LETTER C WITH CEDILLA 00E8;AI # LATIN SMALL LETTER E WITH GRAVE 00E9;AI # LATIN SMALL LETTER E WITH ACUTE 00EA;AI # LATIN SMALL LETTER E WITH CIRCUMFLEX 00EB;AL # LATIN SMALL LETTER E WITH DIAERESIS 00EC;AI # LATIN SMALL LETTER I WITH GRAVE 00ED;AI # LATIN SMALL LETTER I WITH ACUTE 00EE;AL # LATIN SMALL LETTER I WITH CIRCUMFLEX 00EF;AL # LATIN SMALL LETTER I WITH DIAERESIS 00F0;AI # LATIN SMALL LETTER ETH 00F1;AL # LATIN SMALL LETTER N WITH TILDE 00F2;AI # LATIN SMALL LETTER O WITH GRAVE 00F3;AI # LATIN SMALL LETTER O WITH ACUTE 00F4;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX 00F5;AL # LATIN SMALL LETTER O WITH TILDE 00F6;AL # LATIN SMALL LETTER O WITH DIAERESIS 00F7;AI # DIVISION SIGN 00F8;AI # LATIN SMALL LETTER O WITH STROKE 00F9;AI # LATIN SMALL LETTER U WITH GRAVE 00FA;AI # LATIN SMALL LETTER U WITH ACUTE 00FB;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX 00FC;AI # LATIN SMALL LETTER U WITH DIAERESIS 00FD;AL # LATIN SMALL LETTER Y WITH ACUTE 00FE;AI # LATIN SMALL LETTER THORN 00FF;AL # LATIN SMALL LETTER Y WITH DIAERESIS 0100;AL # LATIN CAPITAL LETTER A WITH MACRON 0101;AI # LATIN SMALL LETTER A WITH MACRON 0102;AL # LATIN CAPITAL LETTER A WITH BREVE 0103;AL # LATIN SMALL LETTER A WITH BREVE 0104;AL # LATIN CAPITAL LETTER A WITH OGONEK 0105;AL # LATIN SMALL LETTER A WITH OGONEK 0106;AL # LATIN CAPITAL LETTER C WITH ACUTE 0107;AL # LATIN SMALL LETTER C WITH ACUTE 0108;AL # LATIN CAPITAL LETTER C WITH CIRCUMFLEX 0109;AL # LATIN SMALL LETTER C WITH CIRCUMFLEX 010A;AL # LATIN CAPITAL LETTER C WITH DOT ABOVE 010B;AL # LATIN SMALL LETTER C WITH DOT ABOVE 010C;AL # LATIN CAPITAL LETTER C WITH CARON 010D;AL # LATIN SMALL LETTER C WITH CARON 010E;AL # LATIN CAPITAL LETTER D WITH CARON 010F;AL # LATIN SMALL LETTER D WITH CARON 0110;AL # LATIN CAPITAL LETTER D WITH STROKE 0111;AI # LATIN SMALL LETTER D WITH STROKE 0112;AL # LATIN CAPITAL LETTER E WITH MACRON 0113;AI # LATIN SMALL LETTER E WITH MACRON 0114;AL # LATIN CAPITAL LETTER E WITH BREVE 0115;AL # LATIN SMALL LETTER E WITH BREVE 0116;AL # LATIN CAPITAL LETTER E WITH DOT ABOVE 0117;AL # LATIN SMALL LETTER E WITH DOT ABOVE 0118;AL # LATIN CAPITAL LETTER E WITH OGONEK 0119;AL # LATIN SMALL LETTER E WITH OGONEK 011A;AL # LATIN CAPITAL LETTER E WITH CARON 011B;AI # LATIN SMALL LETTER E WITH CARON 011C;AL # LATIN CAPITAL LETTER G WITH CIRCUMFLEX 011D;AL # LATIN SMALL LETTER G WITH CIRCUMFLEX 011E;AL # LATIN CAPITAL LETTER G WITH BREVE 011F;AL # LATIN SMALL LETTER G WITH BREVE 0120;AL # LATIN CAPITAL LETTER G WITH DOT ABOVE 0121;AL # LATIN SMALL LETTER G WITH DOT ABOVE 0122;AL # LATIN CAPITAL LETTER G WITH CEDILLA 0123;AL # LATIN SMALL LETTER G WITH CEDILLA 0124;AL # LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0125;AL # LATIN SMALL LETTER H WITH CIRCUMFLEX 0126;AI # LATIN CAPITAL LETTER H WITH STROKE 0127;AI # LATIN SMALL LETTER H WITH STROKE 0128;AL # LATIN CAPITAL LETTER I WITH TILDE 0129;AL # LATIN SMALL LETTER I WITH TILDE 012A;AL # LATIN CAPITAL LETTER I WITH MACRON 012B;AI # LATIN SMALL LETTER I WITH MACRON 012C;AL # LATIN CAPITAL LETTER I WITH BREVE 012D;AL # LATIN SMALL LETTER I WITH BREVE 012E;AL # LATIN CAPITAL LETTER I WITH OGONEK 012F;AL # LATIN SMALL LETTER I WITH OGONEK 0130;AL # LATIN CAPITAL LETTER I WITH DOT ABOVE 0131;AI # LATIN SMALL LETTER DOTLESS I 0132;AI # LATIN CAPITAL LIGATURE IJ 0133;AI # LATIN SMALL LIGATURE IJ 0134;AL # LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0135;AL # LATIN SMALL LETTER J WITH CIRCUMFLEX 0136;AL # LATIN CAPITAL LETTER K WITH CEDILLA 0137;AL # LATIN SMALL LETTER K WITH CEDILLA 0138;AI # LATIN SMALL LETTER KRA 0139;AL # LATIN CAPITAL LETTER L WITH ACUTE 013A;AL # LATIN SMALL LETTER L WITH ACUTE 013B;AL # LATIN CAPITAL LETTER L WITH CEDILLA 013C;AL # LATIN SMALL LETTER L WITH CEDILLA 013D;AL # LATIN CAPITAL LETTER L WITH CARON 013E;AL # LATIN SMALL LETTER L WITH CARON 013F;AI # LATIN CAPITAL LETTER L WITH MIDDLE DOT 0140;AI # LATIN SMALL LETTER L WITH MIDDLE DOT 0141;AI # LATIN CAPITAL LETTER L WITH STROKE 0142;AI # LATIN SMALL LETTER L WITH STROKE 0143;AL # LATIN CAPITAL LETTER N WITH ACUTE 0144;AI # LATIN SMALL LETTER N WITH ACUTE 0145;AL # LATIN CAPITAL LETTER N WITH CEDILLA 0146;AL # LATIN SMALL LETTER N WITH CEDILLA 0147;AL # LATIN CAPITAL LETTER N WITH CARON 0148;AI # LATIN SMALL LETTER N WITH CARON 0149;AI # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 014A;AI # LATIN CAPITAL LETTER ENG 014B;AL # LATIN SMALL LETTER ENG 014C;AL # LATIN CAPITAL LETTER O WITH MACRON 014D;AI # LATIN SMALL LETTER O WITH MACRON 014E;AL # LATIN CAPITAL LETTER O WITH BREVE 014F;AL # LATIN SMALL LETTER O WITH BREVE 0150;AL # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0151;AL # LATIN SMALL LETTER O WITH DOUBLE ACUTE 0152;AI # LATIN CAPITAL LIGATURE OE 0153;AI # LATIN SMALL LIGATURE OE 0154;AL # LATIN CAPITAL LETTER R WITH ACUTE 0155;AL # LATIN SMALL LETTER R WITH ACUTE 0156;AL # LATIN CAPITAL LETTER R WITH CEDILLA 0157;AL # LATIN SMALL LETTER R WITH CEDILLA 0158;AL # LATIN CAPITAL LETTER R WITH CARON 0159;AL # LATIN SMALL LETTER R WITH CARON 015A;AL # LATIN CAPITAL LETTER S WITH ACUTE 015B;AL # LATIN SMALL LETTER S WITH ACUTE 015C;AL # LATIN CAPITAL LETTER S WITH CIRCUMFLEX 015D;AL # LATIN SMALL LETTER S WITH CIRCUMFLEX 015E;AL # LATIN CAPITAL LETTER S WITH CEDILLA 015F;AL # LATIN SMALL LETTER S WITH CEDILLA 0160;AL # LATIN CAPITAL LETTER S WITH CARON 0161;AL # LATIN SMALL LETTER S WITH CARON 0162;AL # LATIN CAPITAL LETTER T WITH CEDILLA 0163;AL # LATIN SMALL LETTER T WITH CEDILLA 0164;AL # LATIN CAPITAL LETTER T WITH CARON 0165;AL # LATIN SMALL LETTER T WITH CARON 0166;AI # LATIN CAPITAL LETTER T WITH STROKE 0167;AI # LATIN SMALL LETTER T WITH STROKE 0168;AL # LATIN CAPITAL LETTER U WITH TILDE 0169;AL # LATIN SMALL LETTER U WITH TILDE 016A;AL # LATIN CAPITAL LETTER U WITH MACRON 016B;AI # LATIN SMALL LETTER U WITH MACRON 016C;AL # LATIN CAPITAL LETTER U WITH BREVE 016D;AL # LATIN SMALL LETTER U WITH BREVE 016E;AL # LATIN CAPITAL LETTER U WITH RING ABOVE 016F;AL # LATIN SMALL LETTER U WITH RING ABOVE 0170;AL # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0171;AL # LATIN SMALL LETTER U WITH DOUBLE ACUTE 0172;AL # LATIN CAPITAL LETTER U WITH OGONEK 0173;AL # LATIN SMALL LETTER U WITH OGONEK 0174;AL # LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0175;AL # LATIN SMALL LETTER W WITH CIRCUMFLEX 0176;AL # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0177;AL # LATIN SMALL LETTER Y WITH CIRCUMFLEX 0178;AL # LATIN CAPITAL LETTER Y WITH DIAERESIS 0179;AL # LATIN CAPITAL LETTER Z WITH ACUTE 017A;AL # LATIN SMALL LETTER Z WITH ACUTE 017B;AL # LATIN CAPITAL LETTER Z WITH DOT ABOVE 017C;AL # LATIN SMALL LETTER Z WITH DOT ABOVE 017D;AL # LATIN CAPITAL LETTER Z WITH CARON 017E;AL # LATIN SMALL LETTER Z WITH CARON 017F;AL # LATIN SMALL LETTER LONG S 0180;AL # LATIN SMALL LETTER B WITH STROKE 0181;AL # LATIN CAPITAL LETTER B WITH HOOK 0182;AL # LATIN CAPITAL LETTER B WITH TOPBAR 0183;AL # LATIN SMALL LETTER B WITH TOPBAR 0184;AL # LATIN CAPITAL LETTER TONE SIX 0185;AL # LATIN SMALL LETTER TONE SIX 0186;AL # LATIN CAPITAL LETTER OPEN O 0187;AL # LATIN CAPITAL LETTER C WITH HOOK 0188;AL # LATIN SMALL LETTER C WITH HOOK 0189;AL # LATIN CAPITAL LETTER AFRICAN D 018A;AL # LATIN CAPITAL LETTER D WITH HOOK 018B;AL # LATIN CAPITAL LETTER D WITH TOPBAR 018C;AL # LATIN SMALL LETTER D WITH TOPBAR 018D;AL # LATIN SMALL LETTER TURNED DELTA 018E;AL # LATIN CAPITAL LETTER REVERSED E 018F;AL # LATIN CAPITAL LETTER SCHWA 0190;AL # LATIN CAPITAL LETTER OPEN E 0191;AL # LATIN CAPITAL LETTER F WITH HOOK 0192;AL # LATIN SMALL LETTER F WITH HOOK 0193;AL # LATIN CAPITAL LETTER G WITH HOOK 0194;AL # LATIN CAPITAL LETTER GAMMA 0195;AL # LATIN SMALL LETTER HV 0196;AL # LATIN CAPITAL LETTER IOTA 0197;AL # LATIN CAPITAL LETTER I WITH STROKE 0198;AL # LATIN CAPITAL LETTER K WITH HOOK 0199;AL # LATIN SMALL LETTER K WITH HOOK 019A;AL # LATIN SMALL LETTER L WITH BAR 019B;AL # LATIN SMALL LETTER LAMBDA WITH STROKE 019C;AL # LATIN CAPITAL LETTER TURNED M 019D;AL # LATIN CAPITAL LETTER N WITH LEFT HOOK 019E;AL # LATIN SMALL LETTER N WITH LONG RIGHT LEG 019F;AL # LATIN CAPITAL LETTER O WITH MIDDLE TILDE 01A0;AL # LATIN CAPITAL LETTER O WITH HORN 01A1;AL # LATIN SMALL LETTER O WITH HORN 01A2;AL # LATIN CAPITAL LETTER OI 01A3;AL # LATIN SMALL LETTER OI 01A4;AL # LATIN CAPITAL LETTER P WITH HOOK 01A5;AL # LATIN SMALL LETTER P WITH HOOK 01A6;AL # LATIN LETTER YR 01A7;AL # LATIN CAPITAL LETTER TONE TWO 01A8;AL # LATIN SMALL LETTER TONE TWO 01A9;AL # LATIN CAPITAL LETTER ESH 01AA;AL # LATIN LETTER REVERSED ESH LOOP 01AB;AL # LATIN SMALL LETTER T WITH PALATAL HOOK 01AC;AL # LATIN CAPITAL LETTER T WITH HOOK 01AD;AL # LATIN SMALL LETTER T WITH HOOK 01AE;AL # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 01AF;AL # LATIN CAPITAL LETTER U WITH HORN 01B0;AL # LATIN SMALL LETTER U WITH HORN 01B1;AL # LATIN CAPITAL LETTER UPSILON 01B2;AL # LATIN CAPITAL LETTER V WITH HOOK 01B3;AL # LATIN CAPITAL LETTER Y WITH HOOK 01B4;AL # LATIN SMALL LETTER Y WITH HOOK 01B5;AL # LATIN CAPITAL LETTER Z WITH STROKE 01B6;AL # LATIN SMALL LETTER Z WITH STROKE 01B7;AL # LATIN CAPITAL LETTER EZH 01B8;AL # LATIN CAPITAL LETTER EZH REVERSED 01B9;AL # LATIN SMALL LETTER EZH REVERSED 01BA;AL # LATIN SMALL LETTER EZH WITH TAIL 01BB;AL # LATIN LETTER TWO WITH STROKE 01BC;AL # LATIN CAPITAL LETTER TONE FIVE 01BD;AL # LATIN SMALL LETTER TONE FIVE 01BE;AL # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE 01BF;AL # LATIN LETTER WYNN 01C0;AL # LATIN LETTER DENTAL CLICK 01C1;AL # LATIN LETTER LATERAL CLICK 01C2;AL # LATIN LETTER ALVEOLAR CLICK 01C3;AL # LATIN LETTER RETROFLEX CLICK 01C4;AL # LATIN CAPITAL LETTER DZ WITH CARON 01C5;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 01C6;AL # LATIN SMALL LETTER DZ WITH CARON 01C7;AL # LATIN CAPITAL LETTER LJ 01C8;AL # LATIN CAPITAL LETTER L WITH SMALL LETTER J 01C9;AL # LATIN SMALL LETTER LJ 01CA;AL # LATIN CAPITAL LETTER NJ 01CB;AL # LATIN CAPITAL LETTER N WITH SMALL LETTER J 01CC;AL # LATIN SMALL LETTER NJ 01CD;AL # LATIN CAPITAL LETTER A WITH CARON 01CE;AI # LATIN SMALL LETTER A WITH CARON 01CF;AL # LATIN CAPITAL LETTER I WITH CARON 01D0;AI # LATIN SMALL LETTER I WITH CARON 01D1;AL # LATIN CAPITAL LETTER O WITH CARON 01D2;AI # LATIN SMALL LETTER O WITH CARON 01D3;AL # LATIN CAPITAL LETTER U WITH CARON 01D4;AI # LATIN SMALL LETTER U WITH CARON 01D5;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON 01D6;AI # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON 01D7;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE 01D8;AI # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE 01D9;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON 01DA;AI # LATIN SMALL LETTER U WITH DIAERESIS AND CARON 01DB;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE 01DC;AI # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE 01DD;AL # LATIN SMALL LETTER TURNED E 01DE;AL # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON 01DF;AL # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON 01E0;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON 01E1;AL # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON 01E2;AL # LATIN CAPITAL LETTER AE WITH MACRON 01E3;AL # LATIN SMALL LETTER AE WITH MACRON 01E4;AL # LATIN CAPITAL LETTER G WITH STROKE 01E5;AL # LATIN SMALL LETTER G WITH STROKE 01E6;AL # LATIN CAPITAL LETTER G WITH CARON 01E7;AL # LATIN SMALL LETTER G WITH CARON 01E8;AL # LATIN CAPITAL LETTER K WITH CARON 01E9;AL # LATIN SMALL LETTER K WITH CARON 01EA;AL # LATIN CAPITAL LETTER O WITH OGONEK 01EB;AL # LATIN SMALL LETTER O WITH OGONEK 01EC;AL # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON 01ED;AL # LATIN SMALL LETTER O WITH OGONEK AND MACRON 01EE;AL # LATIN CAPITAL LETTER EZH WITH CARON 01EF;AL # LATIN SMALL LETTER EZH WITH CARON 01F0;AL # LATIN SMALL LETTER J WITH CARON 01F1;AL # LATIN CAPITAL LETTER DZ 01F2;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z 01F3;AL # LATIN SMALL LETTER DZ 01F4;AL # LATIN CAPITAL LETTER G WITH ACUTE 01F5;AL # LATIN SMALL LETTER G WITH ACUTE 01F6;AL # LATIN CAPITAL LETTER HWAIR 01F7;AL # LATIN CAPITAL LETTER WYNN 01F8;AL # LATIN CAPITAL LETTER N WITH GRAVE 01F9;AL # LATIN SMALL LETTER N WITH GRAVE 01FA;AL # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 01FB;AL # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE 01FC;AL # LATIN CAPITAL LETTER AE WITH ACUTE 01FD;AL # LATIN SMALL LETTER AE WITH ACUTE 01FE;AL # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 01FF;AL # LATIN SMALL LETTER O WITH STROKE AND ACUTE 0200;AL # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0201;AL # LATIN SMALL LETTER A WITH DOUBLE GRAVE 0202;AL # LATIN CAPITAL LETTER A WITH INVERTED BREVE 0203;AL # LATIN SMALL LETTER A WITH INVERTED BREVE 0204;AL # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0205;AL # LATIN SMALL LETTER E WITH DOUBLE GRAVE 0206;AL # LATIN CAPITAL LETTER E WITH INVERTED BREVE 0207;AL # LATIN SMALL LETTER E WITH INVERTED BREVE 0208;AL # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 0209;AL # LATIN SMALL LETTER I WITH DOUBLE GRAVE 020A;AL # LATIN CAPITAL LETTER I WITH INVERTED BREVE 020B;AL # LATIN SMALL LETTER I WITH INVERTED BREVE 020C;AL # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 020D;AL # LATIN SMALL LETTER O WITH DOUBLE GRAVE 020E;AL # LATIN CAPITAL LETTER O WITH INVERTED BREVE 020F;AL # LATIN SMALL LETTER O WITH INVERTED BREVE 0210;AL # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0211;AL # LATIN SMALL LETTER R WITH DOUBLE GRAVE 0212;AL # LATIN CAPITAL LETTER R WITH INVERTED BREVE 0213;AL # LATIN SMALL LETTER R WITH INVERTED BREVE 0214;AL # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0215;AL # LATIN SMALL LETTER U WITH DOUBLE GRAVE 0216;AL # LATIN CAPITAL LETTER U WITH INVERTED BREVE 0217;AL # LATIN SMALL LETTER U WITH INVERTED BREVE 0218;AL # LATIN CAPITAL LETTER S WITH COMMA BELOW 0219;AL # LATIN SMALL LETTER S WITH COMMA BELOW 021A;AL # LATIN CAPITAL LETTER T WITH COMMA BELOW 021B;AL # LATIN SMALL LETTER T WITH COMMA BELOW 021C;AL # LATIN CAPITAL LETTER YOGH 021D;AL # LATIN SMALL LETTER YOGH 021E;AL # LATIN CAPITAL LETTER H WITH CARON 021F;AL # LATIN SMALL LETTER H WITH CARON 0220;AL # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 0222;AL # LATIN CAPITAL LETTER OU 0223;AL # LATIN SMALL LETTER OU 0224;AL # LATIN CAPITAL LETTER Z WITH HOOK 0225;AL # LATIN SMALL LETTER Z WITH HOOK 0226;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE 0227;AL # LATIN SMALL LETTER A WITH DOT ABOVE 0228;AL # LATIN CAPITAL LETTER E WITH CEDILLA 0229;AL # LATIN SMALL LETTER E WITH CEDILLA 022A;AL # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 022B;AL # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON 022C;AL # LATIN CAPITAL LETTER O WITH TILDE AND MACRON 022D;AL # LATIN SMALL LETTER O WITH TILDE AND MACRON 022E;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE 022F;AL # LATIN SMALL LETTER O WITH DOT ABOVE 0230;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0231;AL # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON 0232;AL # LATIN CAPITAL LETTER Y WITH MACRON 0233;AL # LATIN SMALL LETTER Y WITH MACRON 0250;AL # LATIN SMALL LETTER TURNED A 0251;AI # LATIN SMALL LETTER ALPHA 0252;AL # LATIN SMALL LETTER TURNED ALPHA 0253;AL # LATIN SMALL LETTER B WITH HOOK 0254;AL # LATIN SMALL LETTER OPEN O 0255;AL # LATIN SMALL LETTER C WITH CURL 0256;AL # LATIN SMALL LETTER D WITH TAIL 0257;AL # LATIN SMALL LETTER D WITH HOOK 0258;AL # LATIN SMALL LETTER REVERSED E 0259;AL # LATIN SMALL LETTER SCHWA 025A;AL # LATIN SMALL LETTER SCHWA WITH HOOK 025B;AL # LATIN SMALL LETTER OPEN E 025C;AL # LATIN SMALL LETTER REVERSED OPEN E 025D;AL # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK 025E;AL # LATIN SMALL LETTER CLOSED REVERSED OPEN E 025F;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE 0260;AL # LATIN SMALL LETTER G WITH HOOK 0261;AI # LATIN SMALL LETTER SCRIPT G 0262;AL # LATIN LETTER SMALL CAPITAL G 0263;AL # LATIN SMALL LETTER GAMMA 0264;AL # LATIN SMALL LETTER RAMS HORN 0265;AL # LATIN SMALL LETTER TURNED H 0266;AL # LATIN SMALL LETTER H WITH HOOK 0267;AL # LATIN SMALL LETTER HENG WITH HOOK 0268;AL # LATIN SMALL LETTER I WITH STROKE 0269;AL # LATIN SMALL LETTER IOTA 026A;AL # LATIN LETTER SMALL CAPITAL I 026B;AL # LATIN SMALL LETTER L WITH MIDDLE TILDE 026C;AL # LATIN SMALL LETTER L WITH BELT 026D;AL # LATIN SMALL LETTER L WITH RETROFLEX HOOK 026E;AL # LATIN SMALL LETTER LEZH 026F;AL # LATIN SMALL LETTER TURNED M 0270;AL # LATIN SMALL LETTER TURNED M WITH LONG LEG 0271;AL # LATIN SMALL LETTER M WITH HOOK 0272;AL # LATIN SMALL LETTER N WITH LEFT HOOK 0273;AL # LATIN SMALL LETTER N WITH RETROFLEX HOOK 0274;AL # LATIN LETTER SMALL CAPITAL N 0275;AL # LATIN SMALL LETTER BARRED O 0276;AL # LATIN LETTER SMALL CAPITAL OE 0277;AL # LATIN SMALL LETTER CLOSED OMEGA 0278;AL # LATIN SMALL LETTER PHI 0279;AL # LATIN SMALL LETTER TURNED R 027A;AL # LATIN SMALL LETTER TURNED R WITH LONG LEG 027B;AL # LATIN SMALL LETTER TURNED R WITH HOOK 027C;AL # LATIN SMALL LETTER R WITH LONG LEG 027D;AL # LATIN SMALL LETTER R WITH TAIL 027E;AL # LATIN SMALL LETTER R WITH FISHHOOK 027F;AL # LATIN SMALL LETTER REVERSED R WITH FISHHOOK 0280;AL # LATIN LETTER SMALL CAPITAL R 0281;AL # LATIN LETTER SMALL CAPITAL INVERTED R 0282;AL # LATIN SMALL LETTER S WITH HOOK 0283;AL # LATIN SMALL LETTER ESH 0284;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK 0285;AL # LATIN SMALL LETTER SQUAT REVERSED ESH 0286;AL # LATIN SMALL LETTER ESH WITH CURL 0287;AL # LATIN SMALL LETTER TURNED T 0288;AL # LATIN SMALL LETTER T WITH RETROFLEX HOOK 0289;AL # LATIN SMALL LETTER U BAR 028A;AL # LATIN SMALL LETTER UPSILON 028B;AL # LATIN SMALL LETTER V WITH HOOK 028C;AL # LATIN SMALL LETTER TURNED V 028D;AL # LATIN SMALL LETTER TURNED W 028E;AL # LATIN SMALL LETTER TURNED Y 028F;AL # LATIN LETTER SMALL CAPITAL Y 0290;AL # LATIN SMALL LETTER Z WITH RETROFLEX HOOK 0291;AL # LATIN SMALL LETTER Z WITH CURL 0292;AL # LATIN SMALL LETTER EZH 0293;AL # LATIN SMALL LETTER EZH WITH CURL 0294;AL # LATIN LETTER GLOTTAL STOP 0295;AL # LATIN LETTER PHARYNGEAL VOICED FRICATIVE 0296;AL # LATIN LETTER INVERTED GLOTTAL STOP 0297;AL # LATIN LETTER STRETCHED C 0298;AL # LATIN LETTER BILABIAL CLICK 0299;AL # LATIN LETTER SMALL CAPITAL B 029A;AL # LATIN SMALL LETTER CLOSED OPEN E 029B;AL # LATIN LETTER SMALL CAPITAL G WITH HOOK 029C;AL # LATIN LETTER SMALL CAPITAL H 029D;AL # LATIN SMALL LETTER J WITH CROSSED-TAIL 029E;AL # LATIN SMALL LETTER TURNED K 029F;AL # LATIN LETTER SMALL CAPITAL L 02A0;AL # LATIN SMALL LETTER Q WITH HOOK 02A1;AL # LATIN LETTER GLOTTAL STOP WITH STROKE 02A2;AL # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE 02A3;AL # LATIN SMALL LETTER DZ DIGRAPH 02A4;AL # LATIN SMALL LETTER DEZH DIGRAPH 02A5;AL # LATIN SMALL LETTER DZ DIGRAPH WITH CURL 02A6;AL # LATIN SMALL LETTER TS DIGRAPH 02A7;AL # LATIN SMALL LETTER TESH DIGRAPH 02A8;AL # LATIN SMALL LETTER TC DIGRAPH WITH CURL 02A9;AL # LATIN SMALL LETTER FENG DIGRAPH 02AA;AL # LATIN SMALL LETTER LS DIGRAPH 02AB;AL # LATIN SMALL LETTER LZ DIGRAPH 02AC;AL # LATIN LETTER BILABIAL PERCUSSIVE 02AD;AL # LATIN LETTER BIDENTAL PERCUSSIVE 02B0;AL # MODIFIER LETTER SMALL H 02B1;AL # MODIFIER LETTER SMALL H WITH HOOK 02B2;AL # MODIFIER LETTER SMALL J 02B3;AL # MODIFIER LETTER SMALL R 02B4;AL # MODIFIER LETTER SMALL TURNED R 02B5;AL # MODIFIER LETTER SMALL TURNED R WITH HOOK 02B6;AL # MODIFIER LETTER SMALL CAPITAL INVERTED R 02B7;AL # MODIFIER LETTER SMALL W 02B8;AL # MODIFIER LETTER SMALL Y 02B9;AL # MODIFIER LETTER PRIME 02BA;AL # MODIFIER LETTER DOUBLE PRIME 02BB;AL # MODIFIER LETTER TURNED COMMA 02BC;AL # MODIFIER LETTER APOSTROPHE 02BD;AL # MODIFIER LETTER REVERSED COMMA 02BE;AL # MODIFIER LETTER RIGHT HALF RING 02BF;AL # MODIFIER LETTER LEFT HALF RING 02C0;AL # MODIFIER LETTER GLOTTAL STOP 02C1;AL # MODIFIER LETTER REVERSED GLOTTAL STOP 02C2;AL # MODIFIER LETTER LEFT ARROWHEAD 02C3;AL # MODIFIER LETTER RIGHT ARROWHEAD 02C4;AL # MODIFIER LETTER UP ARROWHEAD 02C5;AL # MODIFIER LETTER DOWN ARROWHEAD 02C6;AL # MODIFIER LETTER CIRCUMFLEX ACCENT 02C7;AI # CARON 02C8;BB # MODIFIER LETTER VERTICAL LINE 02C9;AI # MODIFIER LETTER MACRON 02CA;AI # MODIFIER LETTER ACUTE ACCENT 02CB;AI # MODIFIER LETTER GRAVE ACCENT 02CC;BB # MODIFIER LETTER LOW VERTICAL LINE 02CD;AI # MODIFIER LETTER LOW MACRON 02CE;AL # MODIFIER LETTER LOW GRAVE ACCENT 02CF;AL # MODIFIER LETTER LOW ACUTE ACCENT 02D0;AI # MODIFIER LETTER TRIANGULAR COLON 02D1;AL # MODIFIER LETTER HALF TRIANGULAR COLON 02D2;AL # MODIFIER LETTER CENTRED RIGHT HALF RING 02D3;AL # MODIFIER LETTER CENTRED LEFT HALF RING 02D4;AL # MODIFIER LETTER UP TACK 02D5;AL # MODIFIER LETTER DOWN TACK 02D6;AL # MODIFIER LETTER PLUS SIGN 02D7;AL # MODIFIER LETTER MINUS SIGN 02D8;AI # BREVE 02D9;AI # DOT ABOVE 02DA;AI # RING ABOVE 02DB;AI # OGONEK 02DC;AL # SMALL TILDE 02DD;AI # DOUBLE ACUTE ACCENT 02DE;AL # MODIFIER LETTER RHOTIC HOOK 02DF;AL # MODIFIER LETTER CROSS ACCENT 02E0;AL # MODIFIER LETTER SMALL GAMMA 02E1;AL # MODIFIER LETTER SMALL L 02E2;AL # MODIFIER LETTER SMALL S 02E3;AL # MODIFIER LETTER SMALL X 02E4;AL # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP 02E5;AL # MODIFIER LETTER EXTRA-HIGH TONE BAR 02E6;AL # MODIFIER LETTER HIGH TONE BAR 02E7;AL # MODIFIER LETTER MID TONE BAR 02E8;AL # MODIFIER LETTER LOW TONE BAR 02E9;AL # MODIFIER LETTER EXTRA-LOW TONE BAR 02EA;AL # MODIFIER LETTER YIN DEPARTING TONE MARK 02EB;AL # MODIFIER LETTER YANG DEPARTING TONE MARK 02EC;AL # MODIFIER LETTER VOICING 02ED;AL # MODIFIER LETTER UNASPIRATED 02EE;AL # MODIFIER LETTER DOUBLE APOSTROPHE 0300;CM # COMBINING GRAVE ACCENT 0301;CM # COMBINING ACUTE ACCENT 0302;CM # COMBINING CIRCUMFLEX ACCENT 0303;CM # COMBINING TILDE 0304;CM # COMBINING MACRON 0305;CM # COMBINING OVERLINE 0306;CM # COMBINING BREVE 0307;CM # COMBINING DOT ABOVE 0308;CM # COMBINING DIAERESIS 0309;CM # COMBINING HOOK ABOVE 030A;CM # COMBINING RING ABOVE 030B;CM # COMBINING DOUBLE ACUTE ACCENT 030C;CM # COMBINING CARON 030D;CM # COMBINING VERTICAL LINE ABOVE 030E;CM # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;CM # COMBINING DOUBLE GRAVE ACCENT 0310;CM # COMBINING CANDRABINDU 0311;CM # COMBINING INVERTED BREVE 0312;CM # COMBINING TURNED COMMA ABOVE 0313;CM # COMBINING COMMA ABOVE 0314;CM # COMBINING REVERSED COMMA ABOVE 0315;CM # COMBINING COMMA ABOVE RIGHT 0316;CM # COMBINING GRAVE ACCENT BELOW 0317;CM # COMBINING ACUTE ACCENT BELOW 0318;CM # COMBINING LEFT TACK BELOW 0319;CM # COMBINING RIGHT TACK BELOW 031A;CM # COMBINING LEFT ANGLE ABOVE 031B;CM # COMBINING HORN 031C;CM # COMBINING LEFT HALF RING BELOW 031D;CM # COMBINING UP TACK BELOW 031E;CM # COMBINING DOWN TACK BELOW 031F;CM # COMBINING PLUS SIGN BELOW 0320;CM # COMBINING MINUS SIGN BELOW 0321;CM # COMBINING PALATALIZED HOOK BELOW 0322;CM # COMBINING RETROFLEX HOOK BELOW 0323;CM # COMBINING DOT BELOW 0324;CM # COMBINING DIAERESIS BELOW 0325;CM # COMBINING RING BELOW 0326;CM # COMBINING COMMA BELOW 0327;CM # COMBINING CEDILLA 0328;CM # COMBINING OGONEK 0329;CM # COMBINING VERTICAL LINE BELOW 032A;CM # COMBINING BRIDGE BELOW 032B;CM # COMBINING INVERTED DOUBLE ARCH BELOW 032C;CM # COMBINING CARON BELOW 032D;CM # COMBINING CIRCUMFLEX ACCENT BELOW 032E;CM # COMBINING BREVE BELOW 032F;CM # COMBINING INVERTED BREVE BELOW 0330;CM # COMBINING TILDE BELOW 0331;CM # COMBINING MACRON BELOW 0332;CM # COMBINING LOW LINE 0333;CM # COMBINING DOUBLE LOW LINE 0334;CM # COMBINING TILDE OVERLAY 0335;CM # COMBINING SHORT STROKE OVERLAY 0336;CM # COMBINING LONG STROKE OVERLAY 0337;CM # COMBINING SHORT SOLIDUS OVERLAY 0338;CM # COMBINING LONG SOLIDUS OVERLAY 0339;CM # COMBINING RIGHT HALF RING BELOW 033A;CM # COMBINING INVERTED BRIDGE BELOW 033B;CM # COMBINING SQUARE BELOW 033C;CM # COMBINING SEAGULL BELOW 033D;CM # COMBINING X ABOVE 033E;CM # COMBINING VERTICAL TILDE 033F;CM # COMBINING DOUBLE OVERLINE 0340;CM # COMBINING GRAVE TONE MARK 0341;CM # COMBINING ACUTE TONE MARK 0342;CM # COMBINING GREEK PERISPOMENI 0343;CM # COMBINING GREEK KORONIS 0344;CM # COMBINING GREEK DIALYTIKA TONOS 0345;CM # COMBINING GREEK YPOGEGRAMMENI 0346;CM # COMBINING BRIDGE ABOVE 0347;CM # COMBINING EQUALS SIGN BELOW 0348;CM # COMBINING DOUBLE VERTICAL LINE BELOW 0349;CM # COMBINING LEFT ANGLE BELOW 034A;CM # COMBINING NOT TILDE ABOVE 034B;CM # COMBINING HOMOTHETIC ABOVE 034C;CM # COMBINING ALMOST EQUAL TO ABOVE 034D;CM # COMBINING LEFT RIGHT ARROW BELOW 034E;CM # COMBINING UPWARDS ARROW BELOW 034F;CM # COMBINING GRAPHEME JOINER 0360;CM # COMBINING DOUBLE TILDE 0361;CM # COMBINING DOUBLE INVERTED BREVE 0362;CM # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;CM # COMBINING LATIN SMALL LETTER A 0364;CM # COMBINING LATIN SMALL LETTER E 0365;CM # COMBINING LATIN SMALL LETTER I 0366;CM # COMBINING LATIN SMALL LETTER O 0367;CM # COMBINING LATIN SMALL LETTER U 0368;CM # COMBINING LATIN SMALL LETTER C 0369;CM # COMBINING LATIN SMALL LETTER D 036A;CM # COMBINING LATIN SMALL LETTER H 036B;CM # COMBINING LATIN SMALL LETTER M 036C;CM # COMBINING LATIN SMALL LETTER R 036D;CM # COMBINING LATIN SMALL LETTER T 036E;CM # COMBINING LATIN SMALL LETTER V 036F;CM # COMBINING LATIN SMALL LETTER X 0374;AL # GREEK NUMERAL SIGN 0375;AL # GREEK LOWER NUMERAL SIGN 037A;AL # GREEK YPOGEGRAMMENI 037E;AL # GREEK QUESTION MARK 0384;AL # GREEK TONOS 0385;AL # GREEK DIALYTIKA TONOS 0386;AL # GREEK CAPITAL LETTER ALPHA WITH TONOS 0387;AL # GREEK ANO TELEIA 0388;AL # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389;AL # GREEK CAPITAL LETTER ETA WITH TONOS 038A;AL # GREEK CAPITAL LETTER IOTA WITH TONOS 038C;AL # GREEK CAPITAL LETTER OMICRON WITH TONOS 038E;AL # GREEK CAPITAL LETTER UPSILON WITH TONOS 038F;AL # GREEK CAPITAL LETTER OMEGA WITH TONOS 0390;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0391;AI # GREEK CAPITAL LETTER ALPHA 0392;AI # GREEK CAPITAL LETTER BETA 0393;AI # GREEK CAPITAL LETTER GAMMA 0394;AI # GREEK CAPITAL LETTER DELTA 0395;AI # GREEK CAPITAL LETTER EPSILON 0396;AI # GREEK CAPITAL LETTER ZETA 0397;AI # GREEK CAPITAL LETTER ETA 0398;AI # GREEK CAPITAL LETTER THETA 0399;AI # GREEK CAPITAL LETTER IOTA 039A;AI # GREEK CAPITAL LETTER KAPPA 039B;AI # GREEK CAPITAL LETTER LAMDA 039C;AI # GREEK CAPITAL LETTER MU 039D;AI # GREEK CAPITAL LETTER NU 039E;AI # GREEK CAPITAL LETTER XI 039F;AI # GREEK CAPITAL LETTER OMICRON 03A0;AI # GREEK CAPITAL LETTER PI 03A1;AI # GREEK CAPITAL LETTER RHO 03A3;AI # GREEK CAPITAL LETTER SIGMA 03A4;AI # GREEK CAPITAL LETTER TAU 03A5;AI # GREEK CAPITAL LETTER UPSILON 03A6;AI # GREEK CAPITAL LETTER PHI 03A7;AI # GREEK CAPITAL LETTER CHI 03A8;AI # GREEK CAPITAL LETTER PSI 03A9;AI # GREEK CAPITAL LETTER OMEGA 03AA;AL # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 03AB;AL # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 03AC;AL # GREEK SMALL LETTER ALPHA WITH TONOS 03AD;AL # GREEK SMALL LETTER EPSILON WITH TONOS 03AE;AL # GREEK SMALL LETTER ETA WITH TONOS 03AF;AL # GREEK SMALL LETTER IOTA WITH TONOS 03B0;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 03B1;AI # GREEK SMALL LETTER ALPHA 03B2;AI # GREEK SMALL LETTER BETA 03B3;AI # GREEK SMALL LETTER GAMMA 03B4;AI # GREEK SMALL LETTER DELTA 03B5;AI # GREEK SMALL LETTER EPSILON 03B6;AI # GREEK SMALL LETTER ZETA 03B7;AI # GREEK SMALL LETTER ETA 03B8;AI # GREEK SMALL LETTER THETA 03B9;AI # GREEK SMALL LETTER IOTA 03BA;AI # GREEK SMALL LETTER KAPPA 03BB;AI # GREEK SMALL LETTER LAMDA 03BC;AI # GREEK SMALL LETTER MU 03BD;AI # GREEK SMALL LETTER NU 03BE;AI # GREEK SMALL LETTER XI 03BF;AI # GREEK SMALL LETTER OMICRON 03C0;AI # GREEK SMALL LETTER PI 03C1;AI # GREEK SMALL LETTER RHO 03C2;AL # GREEK SMALL LETTER FINAL SIGMA 03C3;AI # GREEK SMALL LETTER SIGMA 03C4;AI # GREEK SMALL LETTER TAU 03C5;AI # GREEK SMALL LETTER UPSILON 03C6;AI # GREEK SMALL LETTER PHI 03C7;AI # GREEK SMALL LETTER CHI 03C8;AI # GREEK SMALL LETTER PSI 03C9;AI # GREEK SMALL LETTER OMEGA 03CA;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA 03CB;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA 03CC;AL # GREEK SMALL LETTER OMICRON WITH TONOS 03CD;AL # GREEK SMALL LETTER UPSILON WITH TONOS 03CE;AL # GREEK SMALL LETTER OMEGA WITH TONOS 03D0;AL # GREEK BETA SYMBOL 03D1;AL # GREEK THETA SYMBOL 03D2;AL # GREEK UPSILON WITH HOOK SYMBOL 03D3;AL # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL 03D4;AL # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL 03D5;AL # GREEK PHI SYMBOL 03D6;AL # GREEK PI SYMBOL 03D7;AL # GREEK KAI SYMBOL 03D8;AL # GREEK LETTER ARCHAIC KOPPA 03D9;AL # GREEK SMALL LETTER ARCHAIC KOPPA 03DA;AL # GREEK LETTER STIGMA 03DB;AL # GREEK SMALL LETTER STIGMA 03DC;AL # GREEK LETTER DIGAMMA 03DD;AL # GREEK SMALL LETTER DIGAMMA 03DE;AL # GREEK LETTER KOPPA 03DF;AL # GREEK SMALL LETTER KOPPA 03E0;AL # GREEK LETTER SAMPI 03E1;AL # GREEK SMALL LETTER SAMPI 03E2;AL # COPTIC CAPITAL LETTER SHEI 03E3;AL # COPTIC SMALL LETTER SHEI 03E4;AL # COPTIC CAPITAL LETTER FEI 03E5;AL # COPTIC SMALL LETTER FEI 03E6;AL # COPTIC CAPITAL LETTER KHEI 03E7;AL # COPTIC SMALL LETTER KHEI 03E8;AL # COPTIC CAPITAL LETTER HORI 03E9;AL # COPTIC SMALL LETTER HORI 03EA;AL # COPTIC CAPITAL LETTER GANGIA 03EB;AL # COPTIC SMALL LETTER GANGIA 03EC;AL # COPTIC CAPITAL LETTER SHIMA 03ED;AL # COPTIC SMALL LETTER SHIMA 03EE;AL # COPTIC CAPITAL LETTER DEI 03EF;AL # COPTIC SMALL LETTER DEI 03F0;AL # GREEK KAPPA SYMBOL 03F1;AL # GREEK RHO SYMBOL 03F2;AL # GREEK LUNATE SIGMA SYMBOL 03F3;AL # GREEK LETTER YOT 03F4;AL # GREEK CAPITAL THETA SYMBOL 03F5;AL # GREEK LUNATE EPSILON SYMBOL 03F6;AL # GREEK REVERSED LUNATE EPSILON SYMBOL 0400;AL # CYRILLIC CAPITAL LETTER IE WITH GRAVE 0401;AI # CYRILLIC CAPITAL LETTER IO 0402;AL # CYRILLIC CAPITAL LETTER DJE 0403;AL # CYRILLIC CAPITAL LETTER GJE 0404;AL # CYRILLIC CAPITAL LETTER UKRAINIAN IE 0405;AL # CYRILLIC CAPITAL LETTER DZE 0406;AL # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0407;AL # CYRILLIC CAPITAL LETTER YI 0408;AL # CYRILLIC CAPITAL LETTER JE 0409;AL # CYRILLIC CAPITAL LETTER LJE 040A;AL # CYRILLIC CAPITAL LETTER NJE 040B;AL # CYRILLIC CAPITAL LETTER TSHE 040C;AL # CYRILLIC CAPITAL LETTER KJE 040D;AL # CYRILLIC CAPITAL LETTER I WITH GRAVE 040E;AL # CYRILLIC CAPITAL LETTER SHORT U 040F;AL # CYRILLIC CAPITAL LETTER DZHE 0410;AI # CYRILLIC CAPITAL LETTER A 0411;AI # CYRILLIC CAPITAL LETTER BE 0412;AI # CYRILLIC CAPITAL LETTER VE 0413;AI # CYRILLIC CAPITAL LETTER GHE 0414;AI # CYRILLIC CAPITAL LETTER DE 0415;AI # CYRILLIC CAPITAL LETTER IE 0416;AI # CYRILLIC CAPITAL LETTER ZHE 0417;AI # CYRILLIC CAPITAL LETTER ZE 0418;AI # CYRILLIC CAPITAL LETTER I 0419;AI # CYRILLIC CAPITAL LETTER SHORT I 041A;AI # CYRILLIC CAPITAL LETTER KA 041B;AI # CYRILLIC CAPITAL LETTER EL 041C;AI # CYRILLIC CAPITAL LETTER EM 041D;AI # CYRILLIC CAPITAL LETTER EN 041E;AI # CYRILLIC CAPITAL LETTER O 041F;AI # CYRILLIC CAPITAL LETTER PE 0420;AI # CYRILLIC CAPITAL LETTER ER 0421;AI # CYRILLIC CAPITAL LETTER ES 0422;AI # CYRILLIC CAPITAL LETTER TE 0423;AI # CYRILLIC CAPITAL LETTER U 0424;AI # CYRILLIC CAPITAL LETTER EF 0425;AI # CYRILLIC CAPITAL LETTER HA 0426;AI # CYRILLIC CAPITAL LETTER TSE 0427;AI # CYRILLIC CAPITAL LETTER CHE 0428;AI # CYRILLIC CAPITAL LETTER SHA 0429;AI # CYRILLIC CAPITAL LETTER SHCHA 042A;AI # CYRILLIC CAPITAL LETTER HARD SIGN 042B;AI # CYRILLIC CAPITAL LETTER YERU 042C;AI # CYRILLIC CAPITAL LETTER SOFT SIGN 042D;AI # CYRILLIC CAPITAL LETTER E 042E;AI # CYRILLIC CAPITAL LETTER YU 042F;AI # CYRILLIC CAPITAL LETTER YA 0430;AI # CYRILLIC SMALL LETTER A 0431;AI # CYRILLIC SMALL LETTER BE 0432;AI # CYRILLIC SMALL LETTER VE 0433;AI # CYRILLIC SMALL LETTER GHE 0434;AI # CYRILLIC SMALL LETTER DE 0435;AI # CYRILLIC SMALL LETTER IE 0436;AI # CYRILLIC SMALL LETTER ZHE 0437;AI # CYRILLIC SMALL LETTER ZE 0438;AI # CYRILLIC SMALL LETTER I 0439;AI # CYRILLIC SMALL LETTER SHORT I 043A;AI # CYRILLIC SMALL LETTER KA 043B;AI # CYRILLIC SMALL LETTER EL 043C;AI # CYRILLIC SMALL LETTER EM 043D;AI # CYRILLIC SMALL LETTER EN 043E;AI # CYRILLIC SMALL LETTER O 043F;AI # CYRILLIC SMALL LETTER PE 0440;AI # CYRILLIC SMALL LETTER ER 0441;AI # CYRILLIC SMALL LETTER ES 0442;AI # CYRILLIC SMALL LETTER TE 0443;AI # CYRILLIC SMALL LETTER U 0444;AI # CYRILLIC SMALL LETTER EF 0445;AI # CYRILLIC SMALL LETTER HA 0446;AI # CYRILLIC SMALL LETTER TSE 0447;AI # CYRILLIC SMALL LETTER CHE 0448;AI # CYRILLIC SMALL LETTER SHA 0449;AI # CYRILLIC SMALL LETTER SHCHA 044A;AI # CYRILLIC SMALL LETTER HARD SIGN 044B;AI # CYRILLIC SMALL LETTER YERU 044C;AI # CYRILLIC SMALL LETTER SOFT SIGN 044D;AI # CYRILLIC SMALL LETTER E 044E;AI # CYRILLIC SMALL LETTER YU 044F;AI # CYRILLIC SMALL LETTER YA 0450;AL # CYRILLIC SMALL LETTER IE WITH GRAVE 0451;AI # CYRILLIC SMALL LETTER IO 0452;AL # CYRILLIC SMALL LETTER DJE 0453;AL # CYRILLIC SMALL LETTER GJE 0454;AL # CYRILLIC SMALL LETTER UKRAINIAN IE 0455;AL # CYRILLIC SMALL LETTER DZE 0456;AL # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 0457;AL # CYRILLIC SMALL LETTER YI 0458;AL # CYRILLIC SMALL LETTER JE 0459;AL # CYRILLIC SMALL LETTER LJE 045A;AL # CYRILLIC SMALL LETTER NJE 045B;AL # CYRILLIC SMALL LETTER TSHE 045C;AL # CYRILLIC SMALL LETTER KJE 045D;AL # CYRILLIC SMALL LETTER I WITH GRAVE 045E;AL # CYRILLIC SMALL LETTER SHORT U 045F;AL # CYRILLIC SMALL LETTER DZHE 0460;AL # CYRILLIC CAPITAL LETTER OMEGA 0461;AL # CYRILLIC SMALL LETTER OMEGA 0462;AL # CYRILLIC CAPITAL LETTER YAT 0463;AL # CYRILLIC SMALL LETTER YAT 0464;AL # CYRILLIC CAPITAL LETTER IOTIFIED E 0465;AL # CYRILLIC SMALL LETTER IOTIFIED E 0466;AL # CYRILLIC CAPITAL LETTER LITTLE YUS 0467;AL # CYRILLIC SMALL LETTER LITTLE YUS 0468;AL # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS 0469;AL # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS 046A;AL # CYRILLIC CAPITAL LETTER BIG YUS 046B;AL # CYRILLIC SMALL LETTER BIG YUS 046C;AL # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS 046D;AL # CYRILLIC SMALL LETTER IOTIFIED BIG YUS 046E;AL # CYRILLIC CAPITAL LETTER KSI 046F;AL # CYRILLIC SMALL LETTER KSI 0470;AL # CYRILLIC CAPITAL LETTER PSI 0471;AL # CYRILLIC SMALL LETTER PSI 0472;AL # CYRILLIC CAPITAL LETTER FITA 0473;AL # CYRILLIC SMALL LETTER FITA 0474;AL # CYRILLIC CAPITAL LETTER IZHITSA 0475;AL # CYRILLIC SMALL LETTER IZHITSA 0476;AL # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0477;AL # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0478;AL # CYRILLIC CAPITAL LETTER UK 0479;AL # CYRILLIC SMALL LETTER UK 047A;AL # CYRILLIC CAPITAL LETTER ROUND OMEGA 047B;AL # CYRILLIC SMALL LETTER ROUND OMEGA 047C;AL # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO 047D;AL # CYRILLIC SMALL LETTER OMEGA WITH TITLO 047E;AL # CYRILLIC CAPITAL LETTER OT 047F;AL # CYRILLIC SMALL LETTER OT 0480;AL # CYRILLIC CAPITAL LETTER KOPPA 0481;AL # CYRILLIC SMALL LETTER KOPPA 0482;AL # CYRILLIC THOUSANDS SIGN 0483;CM # COMBINING CYRILLIC TITLO 0484;CM # COMBINING CYRILLIC PALATALIZATION 0485;CM # COMBINING CYRILLIC DASIA PNEUMATA 0486;CM # COMBINING CYRILLIC PSILI PNEUMATA 0488;CM # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;CM # COMBINING CYRILLIC MILLIONS SIGN 048A;AL # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL 048B;AL # CYRILLIC SMALL LETTER SHORT I WITH TAIL 048C;AL # CYRILLIC CAPITAL LETTER SEMISOFT SIGN 048D;AL # CYRILLIC SMALL LETTER SEMISOFT SIGN 048E;AL # CYRILLIC CAPITAL LETTER ER WITH TICK 048F;AL # CYRILLIC SMALL LETTER ER WITH TICK 0490;AL # CYRILLIC CAPITAL LETTER GHE WITH UPTURN 0491;AL # CYRILLIC SMALL LETTER GHE WITH UPTURN 0492;AL # CYRILLIC CAPITAL LETTER GHE WITH STROKE 0493;AL # CYRILLIC SMALL LETTER GHE WITH STROKE 0494;AL # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0495;AL # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK 0496;AL # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER 0497;AL # CYRILLIC SMALL LETTER ZHE WITH DESCENDER 0498;AL # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 0499;AL # CYRILLIC SMALL LETTER ZE WITH DESCENDER 049A;AL # CYRILLIC CAPITAL LETTER KA WITH DESCENDER 049B;AL # CYRILLIC SMALL LETTER KA WITH DESCENDER 049C;AL # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE 049D;AL # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE 049E;AL # CYRILLIC CAPITAL LETTER KA WITH STROKE 049F;AL # CYRILLIC SMALL LETTER KA WITH STROKE 04A0;AL # CYRILLIC CAPITAL LETTER BASHKIR KA 04A1;AL # CYRILLIC SMALL LETTER BASHKIR KA 04A2;AL # CYRILLIC CAPITAL LETTER EN WITH DESCENDER 04A3;AL # CYRILLIC SMALL LETTER EN WITH DESCENDER 04A4;AL # CYRILLIC CAPITAL LIGATURE EN GHE 04A5;AL # CYRILLIC SMALL LIGATURE EN GHE 04A6;AL # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK 04A7;AL # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK 04A8;AL # CYRILLIC CAPITAL LETTER ABKHASIAN HA 04A9;AL # CYRILLIC SMALL LETTER ABKHASIAN HA 04AA;AL # CYRILLIC CAPITAL LETTER ES WITH DESCENDER 04AB;AL # CYRILLIC SMALL LETTER ES WITH DESCENDER 04AC;AL # CYRILLIC CAPITAL LETTER TE WITH DESCENDER 04AD;AL # CYRILLIC SMALL LETTER TE WITH DESCENDER 04AE;AL # CYRILLIC CAPITAL LETTER STRAIGHT U 04AF;AL # CYRILLIC SMALL LETTER STRAIGHT U 04B0;AL # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE 04B1;AL # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE 04B2;AL # CYRILLIC CAPITAL LETTER HA WITH DESCENDER 04B3;AL # CYRILLIC SMALL LETTER HA WITH DESCENDER 04B4;AL # CYRILLIC CAPITAL LIGATURE TE TSE 04B5;AL # CYRILLIC SMALL LIGATURE TE TSE 04B6;AL # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 04B7;AL # CYRILLIC SMALL LETTER CHE WITH DESCENDER 04B8;AL # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE 04B9;AL # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE 04BA;AL # CYRILLIC CAPITAL LETTER SHHA 04BB;AL # CYRILLIC SMALL LETTER SHHA 04BC;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE 04BD;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE 04BE;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER 04BF;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER 04C0;AL # CYRILLIC LETTER PALOCHKA 04C1;AL # CYRILLIC CAPITAL LETTER ZHE WITH BREVE 04C2;AL # CYRILLIC SMALL LETTER ZHE WITH BREVE 04C3;AL # CYRILLIC CAPITAL LETTER KA WITH HOOK 04C4;AL # CYRILLIC SMALL LETTER KA WITH HOOK 04C5;AL # CYRILLIC CAPITAL LETTER EL WITH TAIL 04C6;AL # CYRILLIC SMALL LETTER EL WITH TAIL 04C7;AL # CYRILLIC CAPITAL LETTER EN WITH HOOK 04C8;AL # CYRILLIC SMALL LETTER EN WITH HOOK 04C9;AL # CYRILLIC CAPITAL LETTER EN WITH TAIL 04CA;AL # CYRILLIC SMALL LETTER EN WITH TAIL 04CB;AL # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE 04CC;AL # CYRILLIC SMALL LETTER KHAKASSIAN CHE 04CD;AL # CYRILLIC CAPITAL LETTER EM WITH TAIL 04CE;AL # CYRILLIC SMALL LETTER EM WITH TAIL 04D0;AL # CYRILLIC CAPITAL LETTER A WITH BREVE 04D1;AL # CYRILLIC SMALL LETTER A WITH BREVE 04D2;AL # CYRILLIC CAPITAL LETTER A WITH DIAERESIS 04D3;AL # CYRILLIC SMALL LETTER A WITH DIAERESIS 04D4;AL # CYRILLIC CAPITAL LIGATURE A IE 04D5;AL # CYRILLIC SMALL LIGATURE A IE 04D6;AL # CYRILLIC CAPITAL LETTER IE WITH BREVE 04D7;AL # CYRILLIC SMALL LETTER IE WITH BREVE 04D8;AL # CYRILLIC CAPITAL LETTER SCHWA 04D9;AL # CYRILLIC SMALL LETTER SCHWA 04DA;AL # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS 04DB;AL # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS 04DC;AL # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS 04DD;AL # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS 04DE;AL # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS 04DF;AL # CYRILLIC SMALL LETTER ZE WITH DIAERESIS 04E0;AL # CYRILLIC CAPITAL LETTER ABKHASIAN DZE 04E1;AL # CYRILLIC SMALL LETTER ABKHASIAN DZE 04E2;AL # CYRILLIC CAPITAL LETTER I WITH MACRON 04E3;AL # CYRILLIC SMALL LETTER I WITH MACRON 04E4;AL # CYRILLIC CAPITAL LETTER I WITH DIAERESIS 04E5;AL # CYRILLIC SMALL LETTER I WITH DIAERESIS 04E6;AL # CYRILLIC CAPITAL LETTER O WITH DIAERESIS 04E7;AL # CYRILLIC SMALL LETTER O WITH DIAERESIS 04E8;AL # CYRILLIC CAPITAL LETTER BARRED O 04E9;AL # CYRILLIC SMALL LETTER BARRED O 04EA;AL # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS 04EB;AL # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS 04EC;AL # CYRILLIC CAPITAL LETTER E WITH DIAERESIS 04ED;AL # CYRILLIC SMALL LETTER E WITH DIAERESIS 04EE;AL # CYRILLIC CAPITAL LETTER U WITH MACRON 04EF;AL # CYRILLIC SMALL LETTER U WITH MACRON 04F0;AL # CYRILLIC CAPITAL LETTER U WITH DIAERESIS 04F1;AL # CYRILLIC SMALL LETTER U WITH DIAERESIS 04F2;AL # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE 04F3;AL # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE 04F4;AL # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS 04F5;AL # CYRILLIC SMALL LETTER CHE WITH DIAERESIS 04F8;AL # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS 04F9;AL # CYRILLIC SMALL LETTER YERU WITH DIAERESIS 0500;AL # CYRILLIC CAPITAL LETTER KOMI DE 0501;AL # CYRILLIC SMALL LETTER KOMI DE 0502;AL # CYRILLIC CAPITAL LETTER KOMI DJE 0503;AL # CYRILLIC SMALL LETTER KOMI DJE 0504;AL # CYRILLIC CAPITAL LETTER KOMI ZJE 0505;AL # CYRILLIC SMALL LETTER KOMI ZJE 0506;AL # CYRILLIC CAPITAL LETTER KOMI DZJE 0507;AL # CYRILLIC SMALL LETTER KOMI DZJE 0508;AL # CYRILLIC CAPITAL LETTER KOMI LJE 0509;AL # CYRILLIC SMALL LETTER KOMI LJE 050A;AL # CYRILLIC CAPITAL LETTER KOMI NJE 050B;AL # CYRILLIC SMALL LETTER KOMI NJE 050C;AL # CYRILLIC CAPITAL LETTER KOMI SJE 050D;AL # CYRILLIC SMALL LETTER KOMI SJE 050E;AL # CYRILLIC CAPITAL LETTER KOMI TJE 050F;AL # CYRILLIC SMALL LETTER KOMI TJE 0531;AL # ARMENIAN CAPITAL LETTER AYB 0532;AL # ARMENIAN CAPITAL LETTER BEN 0533;AL # ARMENIAN CAPITAL LETTER GIM 0534;AL # ARMENIAN CAPITAL LETTER DA 0535;AL # ARMENIAN CAPITAL LETTER ECH 0536;AL # ARMENIAN CAPITAL LETTER ZA 0537;AL # ARMENIAN CAPITAL LETTER EH 0538;AL # ARMENIAN CAPITAL LETTER ET 0539;AL # ARMENIAN CAPITAL LETTER TO 053A;AL # ARMENIAN CAPITAL LETTER ZHE 053B;AL # ARMENIAN CAPITAL LETTER INI 053C;AL # ARMENIAN CAPITAL LETTER LIWN 053D;AL # ARMENIAN CAPITAL LETTER XEH 053E;AL # ARMENIAN CAPITAL LETTER CA 053F;AL # ARMENIAN CAPITAL LETTER KEN 0540;AL # ARMENIAN CAPITAL LETTER HO 0541;AL # ARMENIAN CAPITAL LETTER JA 0542;AL # ARMENIAN CAPITAL LETTER GHAD 0543;AL # ARMENIAN CAPITAL LETTER CHEH 0544;AL # ARMENIAN CAPITAL LETTER MEN 0545;AL # ARMENIAN CAPITAL LETTER YI 0546;AL # ARMENIAN CAPITAL LETTER NOW 0547;AL # ARMENIAN CAPITAL LETTER SHA 0548;AL # ARMENIAN CAPITAL LETTER VO 0549;AL # ARMENIAN CAPITAL LETTER CHA 054A;AL # ARMENIAN CAPITAL LETTER PEH 054B;AL # ARMENIAN CAPITAL LETTER JHEH 054C;AL # ARMENIAN CAPITAL LETTER RA 054D;AL # ARMENIAN CAPITAL LETTER SEH 054E;AL # ARMENIAN CAPITAL LETTER VEW 054F;AL # ARMENIAN CAPITAL LETTER TIWN 0550;AL # ARMENIAN CAPITAL LETTER REH 0551;AL # ARMENIAN CAPITAL LETTER CO 0552;AL # ARMENIAN CAPITAL LETTER YIWN 0553;AL # ARMENIAN CAPITAL LETTER PIWR 0554;AL # ARMENIAN CAPITAL LETTER KEH 0555;AL # ARMENIAN CAPITAL LETTER OH 0556;AL # ARMENIAN CAPITAL LETTER FEH 0559;AL # ARMENIAN MODIFIER LETTER LEFT HALF RING 055A;AL # ARMENIAN APOSTROPHE 055B;AL # ARMENIAN EMPHASIS MARK 055C;AL # ARMENIAN EXCLAMATION MARK 055D;AL # ARMENIAN COMMA 055E;AL # ARMENIAN QUESTION MARK 055F;AL # ARMENIAN ABBREVIATION MARK 0561;AL # ARMENIAN SMALL LETTER AYB 0562;AL # ARMENIAN SMALL LETTER BEN 0563;AL # ARMENIAN SMALL LETTER GIM 0564;AL # ARMENIAN SMALL LETTER DA 0565;AL # ARMENIAN SMALL LETTER ECH 0566;AL # ARMENIAN SMALL LETTER ZA 0567;AL # ARMENIAN SMALL LETTER EH 0568;AL # ARMENIAN SMALL LETTER ET 0569;AL # ARMENIAN SMALL LETTER TO 056A;AL # ARMENIAN SMALL LETTER ZHE 056B;AL # ARMENIAN SMALL LETTER INI 056C;AL # ARMENIAN SMALL LETTER LIWN 056D;AL # ARMENIAN SMALL LETTER XEH 056E;AL # ARMENIAN SMALL LETTER CA 056F;AL # ARMENIAN SMALL LETTER KEN 0570;AL # ARMENIAN SMALL LETTER HO 0571;AL # ARMENIAN SMALL LETTER JA 0572;AL # ARMENIAN SMALL LETTER GHAD 0573;AL # ARMENIAN SMALL LETTER CHEH 0574;AL # ARMENIAN SMALL LETTER MEN 0575;AL # ARMENIAN SMALL LETTER YI 0576;AL # ARMENIAN SMALL LETTER NOW 0577;AL # ARMENIAN SMALL LETTER SHA 0578;AL # ARMENIAN SMALL LETTER VO 0579;AL # ARMENIAN SMALL LETTER CHA 057A;AL # ARMENIAN SMALL LETTER PEH 057B;AL # ARMENIAN SMALL LETTER JHEH 057C;AL # ARMENIAN SMALL LETTER RA 057D;AL # ARMENIAN SMALL LETTER SEH 057E;AL # ARMENIAN SMALL LETTER VEW 057F;AL # ARMENIAN SMALL LETTER TIWN 0580;AL # ARMENIAN SMALL LETTER REH 0581;AL # ARMENIAN SMALL LETTER CO 0582;AL # ARMENIAN SMALL LETTER YIWN 0583;AL # ARMENIAN SMALL LETTER PIWR 0584;AL # ARMENIAN SMALL LETTER KEH 0585;AL # ARMENIAN SMALL LETTER OH 0586;AL # ARMENIAN SMALL LETTER FEH 0587;AL # ARMENIAN SMALL LIGATURE ECH YIWN 0589;IS # ARMENIAN FULL STOP 058A;BA # ARMENIAN HYPHEN 0591;CM # HEBREW ACCENT ETNAHTA 0592;CM # HEBREW ACCENT SEGOL 0593;CM # HEBREW ACCENT SHALSHELET 0594;CM # HEBREW ACCENT ZAQEF QATAN 0595;CM # HEBREW ACCENT ZAQEF GADOL 0596;CM # HEBREW ACCENT TIPEHA 0597;CM # HEBREW ACCENT REVIA 0598;CM # HEBREW ACCENT ZARQA 0599;CM # HEBREW ACCENT PASHTA 059A;CM # HEBREW ACCENT YETIV 059B;CM # HEBREW ACCENT TEVIR 059C;CM # HEBREW ACCENT GERESH 059D;CM # HEBREW ACCENT GERESH MUQDAM 059E;CM # HEBREW ACCENT GERSHAYIM 059F;CM # HEBREW ACCENT QARNEY PARA 05A0;CM # HEBREW ACCENT TELISHA GEDOLA 05A1;CM # HEBREW ACCENT PAZER 05A3;CM # HEBREW ACCENT MUNAH 05A4;CM # HEBREW ACCENT MAHAPAKH 05A5;CM # HEBREW ACCENT MERKHA 05A6;CM # HEBREW ACCENT MERKHA KEFULA 05A7;CM # HEBREW ACCENT DARGA 05A8;CM # HEBREW ACCENT QADMA 05A9;CM # HEBREW ACCENT TELISHA QETANA 05AA;CM # HEBREW ACCENT YERAH BEN YOMO 05AB;CM # HEBREW ACCENT OLE 05AC;CM # HEBREW ACCENT ILUY 05AD;CM # HEBREW ACCENT DEHI 05AE;CM # HEBREW ACCENT ZINOR 05AF;CM # HEBREW MARK MASORA CIRCLE 05B0;CM # HEBREW POINT SHEVA 05B1;CM # HEBREW POINT HATAF SEGOL 05B2;CM # HEBREW POINT HATAF PATAH 05B3;CM # HEBREW POINT HATAF QAMATS 05B4;CM # HEBREW POINT HIRIQ 05B5;CM # HEBREW POINT TSERE 05B6;CM # HEBREW POINT SEGOL 05B7;CM # HEBREW POINT PATAH 05B8;CM # HEBREW POINT QAMATS 05B9;CM # HEBREW POINT HOLAM 05BB;CM # HEBREW POINT QUBUTS 05BC;CM # HEBREW POINT DAGESH OR MAPIQ 05BD;CM # HEBREW POINT METEG 05BE;AL # HEBREW PUNCTUATION MAQAF 05BF;CM # HEBREW POINT RAFE 05C0;AL # HEBREW PUNCTUATION PASEQ 05C1;CM # HEBREW POINT SHIN DOT 05C2;CM # HEBREW POINT SIN DOT 05C3;AL # HEBREW PUNCTUATION SOF PASUQ 05C4;CM # HEBREW MARK UPPER DOT 05D0;AL # HEBREW LETTER ALEF 05D1;AL # HEBREW LETTER BET 05D2;AL # HEBREW LETTER GIMEL 05D3;AL # HEBREW LETTER DALET 05D4;AL # HEBREW LETTER HE 05D5;AL # HEBREW LETTER VAV 05D6;AL # HEBREW LETTER ZAYIN 05D7;AL # HEBREW LETTER HET 05D8;AL # HEBREW LETTER TET 05D9;AL # HEBREW LETTER YOD 05DA;AL # HEBREW LETTER FINAL KAF 05DB;AL # HEBREW LETTER KAF 05DC;AL # HEBREW LETTER LAMED 05DD;AL # HEBREW LETTER FINAL MEM 05DE;AL # HEBREW LETTER MEM 05DF;AL # HEBREW LETTER FINAL NUN 05E0;AL # HEBREW LETTER NUN 05E1;AL # HEBREW LETTER SAMEKH 05E2;AL # HEBREW LETTER AYIN 05E3;AL # HEBREW LETTER FINAL PE 05E4;AL # HEBREW LETTER PE 05E5;AL # HEBREW LETTER FINAL TSADI 05E6;AL # HEBREW LETTER TSADI 05E7;AL # HEBREW LETTER QOF 05E8;AL # HEBREW LETTER RESH 05E9;AL # HEBREW LETTER SHIN 05EA;AL # HEBREW LETTER TAV 05F0;AL # HEBREW LIGATURE YIDDISH DOUBLE VAV 05F1;AL # HEBREW LIGATURE YIDDISH VAV YOD 05F2;AL # HEBREW LIGATURE YIDDISH DOUBLE YOD 05F3;AL # HEBREW PUNCTUATION GERESH 05F4;AL # HEBREW PUNCTUATION GERSHAYIM 060C;AL # ARABIC COMMA 061B;AL # ARABIC SEMICOLON 061F;AL # ARABIC QUESTION MARK 0621;AL # ARABIC LETTER HAMZA 0622;AL # ARABIC LETTER ALEF WITH MADDA ABOVE 0623;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE 0624;AL # ARABIC LETTER WAW WITH HAMZA ABOVE 0625;AL # ARABIC LETTER ALEF WITH HAMZA BELOW 0626;AL # ARABIC LETTER YEH WITH HAMZA ABOVE 0627;AL # ARABIC LETTER ALEF 0628;AL # ARABIC LETTER BEH 0629;AL # ARABIC LETTER TEH MARBUTA 062A;AL # ARABIC LETTER TEH 062B;AL # ARABIC LETTER THEH 062C;AL # ARABIC LETTER JEEM 062D;AL # ARABIC LETTER HAH 062E;AL # ARABIC LETTER KHAH 062F;AL # ARABIC LETTER DAL 0630;AL # ARABIC LETTER THAL 0631;AL # ARABIC LETTER REH 0632;AL # ARABIC LETTER ZAIN 0633;AL # ARABIC LETTER SEEN 0634;AL # ARABIC LETTER SHEEN 0635;AL # ARABIC LETTER SAD 0636;AL # ARABIC LETTER DAD 0637;AL # ARABIC LETTER TAH 0638;AL # ARABIC LETTER ZAH 0639;AL # ARABIC LETTER AIN 063A;AL # ARABIC LETTER GHAIN 0640;AL # ARABIC TATWEEL 0641;AL # ARABIC LETTER FEH 0642;AL # ARABIC LETTER QAF 0643;AL # ARABIC LETTER KAF 0644;AL # ARABIC LETTER LAM 0645;AL # ARABIC LETTER MEEM 0646;AL # ARABIC LETTER NOON 0647;AL # ARABIC LETTER HEH 0648;AL # ARABIC LETTER WAW 0649;AL # ARABIC LETTER ALEF MAKSURA 064A;AL # ARABIC LETTER YEH 064B;CM # ARABIC FATHATAN 064C;CM # ARABIC DAMMATAN 064D;CM # ARABIC KASRATAN 064E;CM # ARABIC FATHA 064F;CM # ARABIC DAMMA 0650;CM # ARABIC KASRA 0651;CM # ARABIC SHADDA 0652;CM # ARABIC SUKUN 0653;CM # ARABIC MADDAH ABOVE 0654;CM # ARABIC HAMZA ABOVE 0655;CM # ARABIC HAMZA BELOW 0660;NU # ARABIC-INDIC DIGIT ZERO 0661;NU # ARABIC-INDIC DIGIT ONE 0662;NU # ARABIC-INDIC DIGIT TWO 0663;NU # ARABIC-INDIC DIGIT THREE 0664;NU # ARABIC-INDIC DIGIT FOUR 0665;NU # ARABIC-INDIC DIGIT FIVE 0666;NU # ARABIC-INDIC DIGIT SIX 0667;NU # ARABIC-INDIC DIGIT SEVEN 0668;NU # ARABIC-INDIC DIGIT EIGHT 0669;NU # ARABIC-INDIC DIGIT NINE 066A;AL # ARABIC PERCENT SIGN 066B;AL # ARABIC DECIMAL SEPARATOR 066C;AL # ARABIC THOUSANDS SEPARATOR 066D;AL # ARABIC FIVE POINTED STAR 066E;AL # ARABIC LETTER DOTLESS BEH 066F;AL # ARABIC LETTER DOTLESS QAF 0670;CM # ARABIC LETTER SUPERSCRIPT ALEF 0671;AL # ARABIC LETTER ALEF WASLA 0672;AL # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE 0673;AL # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW 0674;AL # ARABIC LETTER HIGH HAMZA 0675;AL # ARABIC LETTER HIGH HAMZA ALEF 0676;AL # ARABIC LETTER HIGH HAMZA WAW 0677;AL # ARABIC LETTER U WITH HAMZA ABOVE 0678;AL # ARABIC LETTER HIGH HAMZA YEH 0679;AL # ARABIC LETTER TTEH 067A;AL # ARABIC LETTER TTEHEH 067B;AL # ARABIC LETTER BEEH 067C;AL # ARABIC LETTER TEH WITH RING 067D;AL # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS 067E;AL # ARABIC LETTER PEH 067F;AL # ARABIC LETTER TEHEH 0680;AL # ARABIC LETTER BEHEH 0681;AL # ARABIC LETTER HAH WITH HAMZA ABOVE 0682;AL # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE 0683;AL # ARABIC LETTER NYEH 0684;AL # ARABIC LETTER DYEH 0685;AL # ARABIC LETTER HAH WITH THREE DOTS ABOVE 0686;AL # ARABIC LETTER TCHEH 0687;AL # ARABIC LETTER TCHEHEH 0688;AL # ARABIC LETTER DDAL 0689;AL # ARABIC LETTER DAL WITH RING 068A;AL # ARABIC LETTER DAL WITH DOT BELOW 068B;AL # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH 068C;AL # ARABIC LETTER DAHAL 068D;AL # ARABIC LETTER DDAHAL 068E;AL # ARABIC LETTER DUL 068F;AL # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS 0690;AL # ARABIC LETTER DAL WITH FOUR DOTS ABOVE 0691;AL # ARABIC LETTER RREH 0692;AL # ARABIC LETTER REH WITH SMALL V 0693;AL # ARABIC LETTER REH WITH RING 0694;AL # ARABIC LETTER REH WITH DOT BELOW 0695;AL # ARABIC LETTER REH WITH SMALL V BELOW 0696;AL # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE 0697;AL # ARABIC LETTER REH WITH TWO DOTS ABOVE 0698;AL # ARABIC LETTER JEH 0699;AL # ARABIC LETTER REH WITH FOUR DOTS ABOVE 069A;AL # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE 069B;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW 069C;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE 069D;AL # ARABIC LETTER SAD WITH TWO DOTS BELOW 069E;AL # ARABIC LETTER SAD WITH THREE DOTS ABOVE 069F;AL # ARABIC LETTER TAH WITH THREE DOTS ABOVE 06A0;AL # ARABIC LETTER AIN WITH THREE DOTS ABOVE 06A1;AL # ARABIC LETTER DOTLESS FEH 06A2;AL # ARABIC LETTER FEH WITH DOT MOVED BELOW 06A3;AL # ARABIC LETTER FEH WITH DOT BELOW 06A4;AL # ARABIC LETTER VEH 06A5;AL # ARABIC LETTER FEH WITH THREE DOTS BELOW 06A6;AL # ARABIC LETTER PEHEH 06A7;AL # ARABIC LETTER QAF WITH DOT ABOVE 06A8;AL # ARABIC LETTER QAF WITH THREE DOTS ABOVE 06A9;AL # ARABIC LETTER KEHEH 06AA;AL # ARABIC LETTER SWASH KAF 06AB;AL # ARABIC LETTER KAF WITH RING 06AC;AL # ARABIC LETTER KAF WITH DOT ABOVE 06AD;AL # ARABIC LETTER NG 06AE;AL # ARABIC LETTER KAF WITH THREE DOTS BELOW 06AF;AL # ARABIC LETTER GAF 06B0;AL # ARABIC LETTER GAF WITH RING 06B1;AL # ARABIC LETTER NGOEH 06B2;AL # ARABIC LETTER GAF WITH TWO DOTS BELOW 06B3;AL # ARABIC LETTER GUEH 06B4;AL # ARABIC LETTER GAF WITH THREE DOTS ABOVE 06B5;AL # ARABIC LETTER LAM WITH SMALL V 06B6;AL # ARABIC LETTER LAM WITH DOT ABOVE 06B7;AL # ARABIC LETTER LAM WITH THREE DOTS ABOVE 06B8;AL # ARABIC LETTER LAM WITH THREE DOTS BELOW 06B9;AL # ARABIC LETTER NOON WITH DOT BELOW 06BA;AL # ARABIC LETTER NOON GHUNNA 06BB;AL # ARABIC LETTER RNOON 06BC;AL # ARABIC LETTER NOON WITH RING 06BD;AL # ARABIC LETTER NOON WITH THREE DOTS ABOVE 06BE;AL # ARABIC LETTER HEH DOACHASHMEE 06BF;AL # ARABIC LETTER TCHEH WITH DOT ABOVE 06C0;AL # ARABIC LETTER HEH WITH YEH ABOVE 06C1;AL # ARABIC LETTER HEH GOAL 06C2;AL # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE 06C3;AL # ARABIC LETTER TEH MARBUTA GOAL 06C4;AL # ARABIC LETTER WAW WITH RING 06C5;AL # ARABIC LETTER KIRGHIZ OE 06C6;AL # ARABIC LETTER OE 06C7;AL # ARABIC LETTER U 06C8;AL # ARABIC LETTER YU 06C9;AL # ARABIC LETTER KIRGHIZ YU 06CA;AL # ARABIC LETTER WAW WITH TWO DOTS ABOVE 06CB;AL # ARABIC LETTER VE 06CC;AL # ARABIC LETTER FARSI YEH 06CD;AL # ARABIC LETTER YEH WITH TAIL 06CE;AL # ARABIC LETTER YEH WITH SMALL V 06CF;AL # ARABIC LETTER WAW WITH DOT ABOVE 06D0;AL # ARABIC LETTER E 06D1;AL # ARABIC LETTER YEH WITH THREE DOTS BELOW 06D2;AL # ARABIC LETTER YEH BARREE 06D3;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE 06D4;AL # ARABIC FULL STOP 06D5;AL # ARABIC LETTER AE 06D6;CM # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;CM # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;CM # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;CM # ARABIC SMALL HIGH LAM ALEF 06DA;CM # ARABIC SMALL HIGH JEEM 06DB;CM # ARABIC SMALL HIGH THREE DOTS 06DC;CM # ARABIC SMALL HIGH SEEN 06DD;CM # ARABIC END OF AYAH 06DE;CM # ARABIC START OF RUB EL HIZB 06DF;CM # ARABIC SMALL HIGH ROUNDED ZERO 06E0;CM # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;CM # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;CM # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;CM # ARABIC SMALL LOW SEEN 06E4;CM # ARABIC SMALL HIGH MADDA 06E5;AL # ARABIC SMALL WAW 06E6;AL # ARABIC SMALL YEH 06E7;CM # ARABIC SMALL HIGH YEH 06E8;CM # ARABIC SMALL HIGH NOON 06E9;AL # ARABIC PLACE OF SAJDAH 06EA;CM # ARABIC EMPTY CENTRE LOW STOP 06EB;CM # ARABIC EMPTY CENTRE HIGH STOP 06EC;CM # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;CM # ARABIC SMALL LOW MEEM 06F0;NU # EXTENDED ARABIC-INDIC DIGIT ZERO 06F1;NU # EXTENDED ARABIC-INDIC DIGIT ONE 06F2;NU # EXTENDED ARABIC-INDIC DIGIT TWO 06F3;NU # EXTENDED ARABIC-INDIC DIGIT THREE 06F4;NU # EXTENDED ARABIC-INDIC DIGIT FOUR 06F5;NU # EXTENDED ARABIC-INDIC DIGIT FIVE 06F6;NU # EXTENDED ARABIC-INDIC DIGIT SIX 06F7;NU # EXTENDED ARABIC-INDIC DIGIT SEVEN 06F8;NU # EXTENDED ARABIC-INDIC DIGIT EIGHT 06F9;NU # EXTENDED ARABIC-INDIC DIGIT NINE 06FA;AL # ARABIC LETTER SHEEN WITH DOT BELOW 06FB;AL # ARABIC LETTER DAD WITH DOT BELOW 06FC;AL # ARABIC LETTER GHAIN WITH DOT BELOW 06FD;AL # ARABIC SIGN SINDHI AMPERSAND 06FE;AL # ARABIC SIGN SINDHI POSTPOSITION MEN 0700;AL # SYRIAC END OF PARAGRAPH 0701;AL # SYRIAC SUPRALINEAR FULL STOP 0702;AL # SYRIAC SUBLINEAR FULL STOP 0703;AL # SYRIAC SUPRALINEAR COLON 0704;AL # SYRIAC SUBLINEAR COLON 0705;AL # SYRIAC HORIZONTAL COLON 0706;AL # SYRIAC COLON SKEWED LEFT 0707;AL # SYRIAC COLON SKEWED RIGHT 0708;AL # SYRIAC SUPRALINEAR COLON SKEWED LEFT 0709;AL # SYRIAC SUBLINEAR COLON SKEWED RIGHT 070A;AL # SYRIAC CONTRACTION 070B;AL # SYRIAC HARKLEAN OBELUS 070C;AL # SYRIAC HARKLEAN METOBELUS 070D;AL # SYRIAC HARKLEAN ASTERISCUS 070F;CM # SYRIAC ABBREVIATION MARK 0710;AL # SYRIAC LETTER ALAPH 0711;CM # SYRIAC LETTER SUPERSCRIPT ALAPH 0712;AL # SYRIAC LETTER BETH 0713;AL # SYRIAC LETTER GAMAL 0714;AL # SYRIAC LETTER GAMAL GARSHUNI 0715;AL # SYRIAC LETTER DALATH 0716;AL # SYRIAC LETTER DOTLESS DALATH RISH 0717;AL # SYRIAC LETTER HE 0718;AL # SYRIAC LETTER WAW 0719;AL # SYRIAC LETTER ZAIN 071A;AL # SYRIAC LETTER HETH 071B;AL # SYRIAC LETTER TETH 071C;AL # SYRIAC LETTER TETH GARSHUNI 071D;AL # SYRIAC LETTER YUDH 071E;AL # SYRIAC LETTER YUDH HE 071F;AL # SYRIAC LETTER KAPH 0720;AL # SYRIAC LETTER LAMADH 0721;AL # SYRIAC LETTER MIM 0722;AL # SYRIAC LETTER NUN 0723;AL # SYRIAC LETTER SEMKATH 0724;AL # SYRIAC LETTER FINAL SEMKATH 0725;AL # SYRIAC LETTER E 0726;AL # SYRIAC LETTER PE 0727;AL # SYRIAC LETTER REVERSED PE 0728;AL # SYRIAC LETTER SADHE 0729;AL # SYRIAC LETTER QAPH 072A;AL # SYRIAC LETTER RISH 072B;AL # SYRIAC LETTER SHIN 072C;AL # SYRIAC LETTER TAW 0730;CM # SYRIAC PTHAHA ABOVE 0731;CM # SYRIAC PTHAHA BELOW 0732;CM # SYRIAC PTHAHA DOTTED 0733;CM # SYRIAC ZQAPHA ABOVE 0734;CM # SYRIAC ZQAPHA BELOW 0735;CM # SYRIAC ZQAPHA DOTTED 0736;CM # SYRIAC RBASA ABOVE 0737;CM # SYRIAC RBASA BELOW 0738;CM # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;CM # SYRIAC DOTTED ZLAMA ANGULAR 073A;CM # SYRIAC HBASA ABOVE 073B;CM # SYRIAC HBASA BELOW 073C;CM # SYRIAC HBASA-ESASA DOTTED 073D;CM # SYRIAC ESASA ABOVE 073E;CM # SYRIAC ESASA BELOW 073F;CM # SYRIAC RWAHA 0740;CM # SYRIAC FEMININE DOT 0741;CM # SYRIAC QUSHSHAYA 0742;CM # SYRIAC RUKKAKHA 0743;CM # SYRIAC TWO VERTICAL DOTS ABOVE 0744;CM # SYRIAC TWO VERTICAL DOTS BELOW 0745;CM # SYRIAC THREE DOTS ABOVE 0746;CM # SYRIAC THREE DOTS BELOW 0747;CM # SYRIAC OBLIQUE LINE ABOVE 0748;CM # SYRIAC OBLIQUE LINE BELOW 0749;CM # SYRIAC MUSIC 074A;CM # SYRIAC BARREKH 0780;AL # THAANA LETTER HAA 0781;AL # THAANA LETTER SHAVIYANI 0782;AL # THAANA LETTER NOONU 0783;AL # THAANA LETTER RAA 0784;AL # THAANA LETTER BAA 0785;AL # THAANA LETTER LHAVIYANI 0786;AL # THAANA LETTER KAAFU 0787;AL # THAANA LETTER ALIFU 0788;AL # THAANA LETTER VAAVU 0789;AL # THAANA LETTER MEEMU 078A;AL # THAANA LETTER FAAFU 078B;AL # THAANA LETTER DHAALU 078C;AL # THAANA LETTER THAA 078D;AL # THAANA LETTER LAAMU 078E;AL # THAANA LETTER GAAFU 078F;AL # THAANA LETTER GNAVIYANI 0790;AL # THAANA LETTER SEENU 0791;AL # THAANA LETTER DAVIYANI 0792;AL # THAANA LETTER ZAVIYANI 0793;AL # THAANA LETTER TAVIYANI 0794;AL # THAANA LETTER YAA 0795;AL # THAANA LETTER PAVIYANI 0796;AL # THAANA LETTER JAVIYANI 0797;AL # THAANA LETTER CHAVIYANI 0798;AL # THAANA LETTER TTAA 0799;AL # THAANA LETTER HHAA 079A;AL # THAANA LETTER KHAA 079B;AL # THAANA LETTER THAALU 079C;AL # THAANA LETTER ZAA 079D;AL # THAANA LETTER SHEENU 079E;AL # THAANA LETTER SAADHU 079F;AL # THAANA LETTER DAADHU 07A0;AL # THAANA LETTER TO 07A1;AL # THAANA LETTER ZO 07A2;AL # THAANA LETTER AINU 07A3;AL # THAANA LETTER GHAINU 07A4;AL # THAANA LETTER QAAFU 07A5;AL # THAANA LETTER WAAVU 07A6;CM # THAANA ABAFILI 07A7;CM # THAANA AABAAFILI 07A8;CM # THAANA IBIFILI 07A9;CM # THAANA EEBEEFILI 07AA;CM # THAANA UBUFILI 07AB;CM # THAANA OOBOOFILI 07AC;CM # THAANA EBEFILI 07AD;CM # THAANA EYBEYFILI 07AE;CM # THAANA OBOFILI 07AF;CM # THAANA OABOAFILI 07B0;CM # THAANA SUKUN 07B1;AL # THAANA LETTER NAA 0901;CM # DEVANAGARI SIGN CANDRABINDU 0902;CM # DEVANAGARI SIGN ANUSVARA 0903;CM # DEVANAGARI SIGN VISARGA 0905;AL # DEVANAGARI LETTER A 0906;AL # DEVANAGARI LETTER AA 0907;AL # DEVANAGARI LETTER I 0908;AL # DEVANAGARI LETTER II 0909;AL # DEVANAGARI LETTER U 090A;AL # DEVANAGARI LETTER UU 090B;AL # DEVANAGARI LETTER VOCALIC R 090C;AL # DEVANAGARI LETTER VOCALIC L 090D;AL # DEVANAGARI LETTER CANDRA E 090E;AL # DEVANAGARI LETTER SHORT E 090F;AL # DEVANAGARI LETTER E 0910;AL # DEVANAGARI LETTER AI 0911;AL # DEVANAGARI LETTER CANDRA O 0912;AL # DEVANAGARI LETTER SHORT O 0913;AL # DEVANAGARI LETTER O 0914;AL # DEVANAGARI LETTER AU 0915;AL # DEVANAGARI LETTER KA 0916;AL # DEVANAGARI LETTER KHA 0917;AL # DEVANAGARI LETTER GA 0918;AL # DEVANAGARI LETTER GHA 0919;AL # DEVANAGARI LETTER NGA 091A;AL # DEVANAGARI LETTER CA 091B;AL # DEVANAGARI LETTER CHA 091C;AL # DEVANAGARI LETTER JA 091D;AL # DEVANAGARI LETTER JHA 091E;AL # DEVANAGARI LETTER NYA 091F;AL # DEVANAGARI LETTER TTA 0920;AL # DEVANAGARI LETTER TTHA 0921;AL # DEVANAGARI LETTER DDA 0922;AL # DEVANAGARI LETTER DDHA 0923;AL # DEVANAGARI LETTER NNA 0924;AL # DEVANAGARI LETTER TA 0925;AL # DEVANAGARI LETTER THA 0926;AL # DEVANAGARI LETTER DA 0927;AL # DEVANAGARI LETTER DHA 0928;AL # DEVANAGARI LETTER NA 0929;AL # DEVANAGARI LETTER NNNA 092A;AL # DEVANAGARI LETTER PA 092B;AL # DEVANAGARI LETTER PHA 092C;AL # DEVANAGARI LETTER BA 092D;AL # DEVANAGARI LETTER BHA 092E;AL # DEVANAGARI LETTER MA 092F;AL # DEVANAGARI LETTER YA 0930;AL # DEVANAGARI LETTER RA 0931;AL # DEVANAGARI LETTER RRA 0932;AL # DEVANAGARI LETTER LA 0933;AL # DEVANAGARI LETTER LLA 0934;AL # DEVANAGARI LETTER LLLA 0935;AL # DEVANAGARI LETTER VA 0936;AL # DEVANAGARI LETTER SHA 0937;AL # DEVANAGARI LETTER SSA 0938;AL # DEVANAGARI LETTER SA 0939;AL # DEVANAGARI LETTER HA 093C;CM # DEVANAGARI SIGN NUKTA 093D;AL # DEVANAGARI SIGN AVAGRAHA 093E;CM # DEVANAGARI VOWEL SIGN AA 093F;CM # DEVANAGARI VOWEL SIGN I 0940;CM # DEVANAGARI VOWEL SIGN II 0941;CM # DEVANAGARI VOWEL SIGN U 0942;CM # DEVANAGARI VOWEL SIGN UU 0943;CM # DEVANAGARI VOWEL SIGN VOCALIC R 0944;CM # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;CM # DEVANAGARI VOWEL SIGN CANDRA E 0946;CM # DEVANAGARI VOWEL SIGN SHORT E 0947;CM # DEVANAGARI VOWEL SIGN E 0948;CM # DEVANAGARI VOWEL SIGN AI 0949;CM # DEVANAGARI VOWEL SIGN CANDRA O 094A;CM # DEVANAGARI VOWEL SIGN SHORT O 094B;CM # DEVANAGARI VOWEL SIGN O 094C;CM # DEVANAGARI VOWEL SIGN AU 094D;CM # DEVANAGARI SIGN VIRAMA 0950;AL # DEVANAGARI OM 0951;CM # DEVANAGARI STRESS SIGN UDATTA 0952;CM # DEVANAGARI STRESS SIGN ANUDATTA 0953;CM # DEVANAGARI GRAVE ACCENT 0954;CM # DEVANAGARI ACUTE ACCENT 0958;AL # DEVANAGARI LETTER QA 0959;AL # DEVANAGARI LETTER KHHA 095A;AL # DEVANAGARI LETTER GHHA 095B;AL # DEVANAGARI LETTER ZA 095C;AL # DEVANAGARI LETTER DDDHA 095D;AL # DEVANAGARI LETTER RHA 095E;AL # DEVANAGARI LETTER FA 095F;AL # DEVANAGARI LETTER YYA 0960;AL # DEVANAGARI LETTER VOCALIC RR 0961;AL # DEVANAGARI LETTER VOCALIC LL 0962;CM # DEVANAGARI VOWEL SIGN VOCALIC L 0963;CM # DEVANAGARI VOWEL SIGN VOCALIC LL 0964;AL # DEVANAGARI DANDA 0965;AL # DEVANAGARI DOUBLE DANDA 0966;NU # DEVANAGARI DIGIT ZERO 0967;NU # DEVANAGARI DIGIT ONE 0968;NU # DEVANAGARI DIGIT TWO 0969;NU # DEVANAGARI DIGIT THREE 096A;NU # DEVANAGARI DIGIT FOUR 096B;NU # DEVANAGARI DIGIT FIVE 096C;NU # DEVANAGARI DIGIT SIX 096D;NU # DEVANAGARI DIGIT SEVEN 096E;NU # DEVANAGARI DIGIT EIGHT 096F;NU # DEVANAGARI DIGIT NINE 0970;AL # DEVANAGARI ABBREVIATION SIGN 0981;CM # BENGALI SIGN CANDRABINDU 0982;CM # BENGALI SIGN ANUSVARA 0983;CM # BENGALI SIGN VISARGA 0985;AL # BENGALI LETTER A 0986;AL # BENGALI LETTER AA 0987;AL # BENGALI LETTER I 0988;AL # BENGALI LETTER II 0989;AL # BENGALI LETTER U 098A;AL # BENGALI LETTER UU 098B;AL # BENGALI LETTER VOCALIC R 098C;AL # BENGALI LETTER VOCALIC L 098F;AL # BENGALI LETTER E 0990;AL # BENGALI LETTER AI 0993;AL # BENGALI LETTER O 0994;AL # BENGALI LETTER AU 0995;AL # BENGALI LETTER KA 0996;AL # BENGALI LETTER KHA 0997;AL # BENGALI LETTER GA 0998;AL # BENGALI LETTER GHA 0999;AL # BENGALI LETTER NGA 099A;AL # BENGALI LETTER CA 099B;AL # BENGALI LETTER CHA 099C;AL # BENGALI LETTER JA 099D;AL # BENGALI LETTER JHA 099E;AL # BENGALI LETTER NYA 099F;AL # BENGALI LETTER TTA 09A0;AL # BENGALI LETTER TTHA 09A1;AL # BENGALI LETTER DDA 09A2;AL # BENGALI LETTER DDHA 09A3;AL # BENGALI LETTER NNA 09A4;AL # BENGALI LETTER TA 09A5;AL # BENGALI LETTER THA 09A6;AL # BENGALI LETTER DA 09A7;AL # BENGALI LETTER DHA 09A8;AL # BENGALI LETTER NA 09AA;AL # BENGALI LETTER PA 09AB;AL # BENGALI LETTER PHA 09AC;AL # BENGALI LETTER BA 09AD;AL # BENGALI LETTER BHA 09AE;AL # BENGALI LETTER MA 09AF;AL # BENGALI LETTER YA 09B0;AL # BENGALI LETTER RA 09B2;AL # BENGALI LETTER LA 09B6;AL # BENGALI LETTER SHA 09B7;AL # BENGALI LETTER SSA 09B8;AL # BENGALI LETTER SA 09B9;AL # BENGALI LETTER HA 09BC;CM # BENGALI SIGN NUKTA 09BE;CM # BENGALI VOWEL SIGN AA 09BF;CM # BENGALI VOWEL SIGN I 09C0;CM # BENGALI VOWEL SIGN II 09C1;CM # BENGALI VOWEL SIGN U 09C2;CM # BENGALI VOWEL SIGN UU 09C3;CM # BENGALI VOWEL SIGN VOCALIC R 09C4;CM # BENGALI VOWEL SIGN VOCALIC RR 09C7;CM # BENGALI VOWEL SIGN E 09C8;CM # BENGALI VOWEL SIGN AI 09CB;CM # BENGALI VOWEL SIGN O 09CC;CM # BENGALI VOWEL SIGN AU 09CD;CM # BENGALI SIGN VIRAMA 09D7;CM # BENGALI AU LENGTH MARK 09DC;AL # BENGALI LETTER RRA 09DD;AL # BENGALI LETTER RHA 09DF;AL # BENGALI LETTER YYA 09E0;AL # BENGALI LETTER VOCALIC RR 09E1;AL # BENGALI LETTER VOCALIC LL 09E2;CM # BENGALI VOWEL SIGN VOCALIC L 09E3;CM # BENGALI VOWEL SIGN VOCALIC LL 09E6;NU # BENGALI DIGIT ZERO 09E7;NU # BENGALI DIGIT ONE 09E8;NU # BENGALI DIGIT TWO 09E9;NU # BENGALI DIGIT THREE 09EA;NU # BENGALI DIGIT FOUR 09EB;NU # BENGALI DIGIT FIVE 09EC;NU # BENGALI DIGIT SIX 09ED;NU # BENGALI DIGIT SEVEN 09EE;NU # BENGALI DIGIT EIGHT 09EF;NU # BENGALI DIGIT NINE 09F0;AL # BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1;AL # BENGALI LETTER RA WITH LOWER DIAGONAL 09F2;PR # BENGALI RUPEE MARK 09F3;PR # BENGALI RUPEE SIGN 09F4;AL # BENGALI CURRENCY NUMERATOR ONE 09F5;AL # BENGALI CURRENCY NUMERATOR TWO 09F6;AL # BENGALI CURRENCY NUMERATOR THREE 09F7;AL # BENGALI CURRENCY NUMERATOR FOUR 09F8;AL # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR 09F9;AL # BENGALI CURRENCY DENOMINATOR SIXTEEN 09FA;AL # BENGALI ISSHAR 0A02;CM # GURMUKHI SIGN BINDI 0A05;AL # GURMUKHI LETTER A 0A06;AL # GURMUKHI LETTER AA 0A07;AL # GURMUKHI LETTER I 0A08;AL # GURMUKHI LETTER II 0A09;AL # GURMUKHI LETTER U 0A0A;AL # GURMUKHI LETTER UU 0A0F;AL # GURMUKHI LETTER EE 0A10;AL # GURMUKHI LETTER AI 0A13;AL # GURMUKHI LETTER OO 0A14;AL # GURMUKHI LETTER AU 0A15;AL # GURMUKHI LETTER KA 0A16;AL # GURMUKHI LETTER KHA 0A17;AL # GURMUKHI LETTER GA 0A18;AL # GURMUKHI LETTER GHA 0A19;AL # GURMUKHI LETTER NGA 0A1A;AL # GURMUKHI LETTER CA 0A1B;AL # GURMUKHI LETTER CHA 0A1C;AL # GURMUKHI LETTER JA 0A1D;AL # GURMUKHI LETTER JHA 0A1E;AL # GURMUKHI LETTER NYA 0A1F;AL # GURMUKHI LETTER TTA 0A20;AL # GURMUKHI LETTER TTHA 0A21;AL # GURMUKHI LETTER DDA 0A22;AL # GURMUKHI LETTER DDHA 0A23;AL # GURMUKHI LETTER NNA 0A24;AL # GURMUKHI LETTER TA 0A25;AL # GURMUKHI LETTER THA 0A26;AL # GURMUKHI LETTER DA 0A27;AL # GURMUKHI LETTER DHA 0A28;AL # GURMUKHI LETTER NA 0A2A;AL # GURMUKHI LETTER PA 0A2B;AL # GURMUKHI LETTER PHA 0A2C;AL # GURMUKHI LETTER BA 0A2D;AL # GURMUKHI LETTER BHA 0A2E;AL # GURMUKHI LETTER MA 0A2F;AL # GURMUKHI LETTER YA 0A30;AL # GURMUKHI LETTER RA 0A32;AL # GURMUKHI LETTER LA 0A33;AL # GURMUKHI LETTER LLA 0A35;AL # GURMUKHI LETTER VA 0A36;AL # GURMUKHI LETTER SHA 0A38;AL # GURMUKHI LETTER SA 0A39;AL # GURMUKHI LETTER HA 0A3C;CM # GURMUKHI SIGN NUKTA 0A3E;CM # GURMUKHI VOWEL SIGN AA 0A3F;CM # GURMUKHI VOWEL SIGN I 0A40;CM # GURMUKHI VOWEL SIGN II 0A41;CM # GURMUKHI VOWEL SIGN U 0A42;CM # GURMUKHI VOWEL SIGN UU 0A47;CM # GURMUKHI VOWEL SIGN EE 0A48;CM # GURMUKHI VOWEL SIGN AI 0A4B;CM # GURMUKHI VOWEL SIGN OO 0A4C;CM # GURMUKHI VOWEL SIGN AU 0A4D;CM # GURMUKHI SIGN VIRAMA 0A59;AL # GURMUKHI LETTER KHHA 0A5A;AL # GURMUKHI LETTER GHHA 0A5B;AL # GURMUKHI LETTER ZA 0A5C;AL # GURMUKHI LETTER RRA 0A5E;AL # GURMUKHI LETTER FA 0A66;NU # GURMUKHI DIGIT ZERO 0A67;NU # GURMUKHI DIGIT ONE 0A68;NU # GURMUKHI DIGIT TWO 0A69;NU # GURMUKHI DIGIT THREE 0A6A;NU # GURMUKHI DIGIT FOUR 0A6B;NU # GURMUKHI DIGIT FIVE 0A6C;NU # GURMUKHI DIGIT SIX 0A6D;NU # GURMUKHI DIGIT SEVEN 0A6E;NU # GURMUKHI DIGIT EIGHT 0A6F;NU # GURMUKHI DIGIT NINE 0A70;CM # GURMUKHI TIPPI 0A71;CM # GURMUKHI ADDAK 0A72;AL # GURMUKHI IRI 0A73;AL # GURMUKHI URA 0A74;AL # GURMUKHI EK ONKAR 0A81;CM # GUJARATI SIGN CANDRABINDU 0A82;CM # GUJARATI SIGN ANUSVARA 0A83;CM # GUJARATI SIGN VISARGA 0A85;AL # GUJARATI LETTER A 0A86;AL # GUJARATI LETTER AA 0A87;AL # GUJARATI LETTER I 0A88;AL # GUJARATI LETTER II 0A89;AL # GUJARATI LETTER U 0A8A;AL # GUJARATI LETTER UU 0A8B;AL # GUJARATI LETTER VOCALIC R 0A8D;AL # GUJARATI VOWEL CANDRA E 0A8F;AL # GUJARATI LETTER E 0A90;AL # GUJARATI LETTER AI 0A91;AL # GUJARATI VOWEL CANDRA O 0A93;AL # GUJARATI LETTER O 0A94;AL # GUJARATI LETTER AU 0A95;AL # GUJARATI LETTER KA 0A96;AL # GUJARATI LETTER KHA 0A97;AL # GUJARATI LETTER GA 0A98;AL # GUJARATI LETTER GHA 0A99;AL # GUJARATI LETTER NGA 0A9A;AL # GUJARATI LETTER CA 0A9B;AL # GUJARATI LETTER CHA 0A9C;AL # GUJARATI LETTER JA 0A9D;AL # GUJARATI LETTER JHA 0A9E;AL # GUJARATI LETTER NYA 0A9F;AL # GUJARATI LETTER TTA 0AA0;AL # GUJARATI LETTER TTHA 0AA1;AL # GUJARATI LETTER DDA 0AA2;AL # GUJARATI LETTER DDHA 0AA3;AL # GUJARATI LETTER NNA 0AA4;AL # GUJARATI LETTER TA 0AA5;AL # GUJARATI LETTER THA 0AA6;AL # GUJARATI LETTER DA 0AA7;AL # GUJARATI LETTER DHA 0AA8;AL # GUJARATI LETTER NA 0AAA;AL # GUJARATI LETTER PA 0AAB;AL # GUJARATI LETTER PHA 0AAC;AL # GUJARATI LETTER BA 0AAD;AL # GUJARATI LETTER BHA 0AAE;AL # GUJARATI LETTER MA 0AAF;AL # GUJARATI LETTER YA 0AB0;AL # GUJARATI LETTER RA 0AB2;AL # GUJARATI LETTER LA 0AB3;AL # GUJARATI LETTER LLA 0AB5;AL # GUJARATI LETTER VA 0AB6;AL # GUJARATI LETTER SHA 0AB7;AL # GUJARATI LETTER SSA 0AB8;AL # GUJARATI LETTER SA 0AB9;AL # GUJARATI LETTER HA 0ABC;CM # GUJARATI SIGN NUKTA 0ABD;AL # GUJARATI SIGN AVAGRAHA 0ABE;CM # GUJARATI VOWEL SIGN AA 0ABF;CM # GUJARATI VOWEL SIGN I 0AC0;CM # GUJARATI VOWEL SIGN II 0AC1;CM # GUJARATI VOWEL SIGN U 0AC2;CM # GUJARATI VOWEL SIGN UU 0AC3;CM # GUJARATI VOWEL SIGN VOCALIC R 0AC4;CM # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;CM # GUJARATI VOWEL SIGN CANDRA E 0AC7;CM # GUJARATI VOWEL SIGN E 0AC8;CM # GUJARATI VOWEL SIGN AI 0AC9;CM # GUJARATI VOWEL SIGN CANDRA O 0ACB;CM # GUJARATI VOWEL SIGN O 0ACC;CM # GUJARATI VOWEL SIGN AU 0ACD;CM # GUJARATI SIGN VIRAMA 0AD0;AL # GUJARATI OM 0AE0;AL # GUJARATI LETTER VOCALIC RR 0AE6;NU # GUJARATI DIGIT ZERO 0AE7;NU # GUJARATI DIGIT ONE 0AE8;NU # GUJARATI DIGIT TWO 0AE9;NU # GUJARATI DIGIT THREE 0AEA;NU # GUJARATI DIGIT FOUR 0AEB;NU # GUJARATI DIGIT FIVE 0AEC;NU # GUJARATI DIGIT SIX 0AED;NU # GUJARATI DIGIT SEVEN 0AEE;NU # GUJARATI DIGIT EIGHT 0AEF;NU # GUJARATI DIGIT NINE 0B01;CM # ORIYA SIGN CANDRABINDU 0B02;CM # ORIYA SIGN ANUSVARA 0B03;CM # ORIYA SIGN VISARGA 0B05;AL # ORIYA LETTER A 0B06;AL # ORIYA LETTER AA 0B07;AL # ORIYA LETTER I 0B08;AL # ORIYA LETTER II 0B09;AL # ORIYA LETTER U 0B0A;AL # ORIYA LETTER UU 0B0B;AL # ORIYA LETTER VOCALIC R 0B0C;AL # ORIYA LETTER VOCALIC L 0B0F;AL # ORIYA LETTER E 0B10;AL # ORIYA LETTER AI 0B13;AL # ORIYA LETTER O 0B14;AL # ORIYA LETTER AU 0B15;AL # ORIYA LETTER KA 0B16;AL # ORIYA LETTER KHA 0B17;AL # ORIYA LETTER GA 0B18;AL # ORIYA LETTER GHA 0B19;AL # ORIYA LETTER NGA 0B1A;AL # ORIYA LETTER CA 0B1B;AL # ORIYA LETTER CHA 0B1C;AL # ORIYA LETTER JA 0B1D;AL # ORIYA LETTER JHA 0B1E;AL # ORIYA LETTER NYA 0B1F;AL # ORIYA LETTER TTA 0B20;AL # ORIYA LETTER TTHA 0B21;AL # ORIYA LETTER DDA 0B22;AL # ORIYA LETTER DDHA 0B23;AL # ORIYA LETTER NNA 0B24;AL # ORIYA LETTER TA 0B25;AL # ORIYA LETTER THA 0B26;AL # ORIYA LETTER DA 0B27;AL # ORIYA LETTER DHA 0B28;AL # ORIYA LETTER NA 0B2A;AL # ORIYA LETTER PA 0B2B;AL # ORIYA LETTER PHA 0B2C;AL # ORIYA LETTER BA 0B2D;AL # ORIYA LETTER BHA 0B2E;AL # ORIYA LETTER MA 0B2F;AL # ORIYA LETTER YA 0B30;AL # ORIYA LETTER RA 0B32;AL # ORIYA LETTER LA 0B33;AL # ORIYA LETTER LLA 0B36;AL # ORIYA LETTER SHA 0B37;AL # ORIYA LETTER SSA 0B38;AL # ORIYA LETTER SA 0B39;AL # ORIYA LETTER HA 0B3C;CM # ORIYA SIGN NUKTA 0B3D;AL # ORIYA SIGN AVAGRAHA 0B3E;CM # ORIYA VOWEL SIGN AA 0B3F;CM # ORIYA VOWEL SIGN I 0B40;CM # ORIYA VOWEL SIGN II 0B41;CM # ORIYA VOWEL SIGN U 0B42;CM # ORIYA VOWEL SIGN UU 0B43;CM # ORIYA VOWEL SIGN VOCALIC R 0B47;CM # ORIYA VOWEL SIGN E 0B48;CM # ORIYA VOWEL SIGN AI 0B4B;CM # ORIYA VOWEL SIGN O 0B4C;CM # ORIYA VOWEL SIGN AU 0B4D;CM # ORIYA SIGN VIRAMA 0B56;CM # ORIYA AI LENGTH MARK 0B57;CM # ORIYA AU LENGTH MARK 0B5C;AL # ORIYA LETTER RRA 0B5D;AL # ORIYA LETTER RHA 0B5F;AL # ORIYA LETTER YYA 0B60;AL # ORIYA LETTER VOCALIC RR 0B61;AL # ORIYA LETTER VOCALIC LL 0B66;NU # ORIYA DIGIT ZERO 0B67;NU # ORIYA DIGIT ONE 0B68;NU # ORIYA DIGIT TWO 0B69;NU # ORIYA DIGIT THREE 0B6A;NU # ORIYA DIGIT FOUR 0B6B;NU # ORIYA DIGIT FIVE 0B6C;NU # ORIYA DIGIT SIX 0B6D;NU # ORIYA DIGIT SEVEN 0B6E;NU # ORIYA DIGIT EIGHT 0B6F;NU # ORIYA DIGIT NINE 0B70;AL # ORIYA ISSHAR 0B82;CM # TAMIL SIGN ANUSVARA 0B83;AL # TAMIL SIGN VISARGA 0B85;AL # TAMIL LETTER A 0B86;AL # TAMIL LETTER AA 0B87;AL # TAMIL LETTER I 0B88;AL # TAMIL LETTER II 0B89;AL # TAMIL LETTER U 0B8A;AL # TAMIL LETTER UU 0B8E;AL # TAMIL LETTER E 0B8F;AL # TAMIL LETTER EE 0B90;AL # TAMIL LETTER AI 0B92;AL # TAMIL LETTER O 0B93;AL # TAMIL LETTER OO 0B94;AL # TAMIL LETTER AU 0B95;AL # TAMIL LETTER KA 0B99;AL # TAMIL LETTER NGA 0B9A;AL # TAMIL LETTER CA 0B9C;AL # TAMIL LETTER JA 0B9E;AL # TAMIL LETTER NYA 0B9F;AL # TAMIL LETTER TTA 0BA3;AL # TAMIL LETTER NNA 0BA4;AL # TAMIL LETTER TA 0BA8;AL # TAMIL LETTER NA 0BA9;AL # TAMIL LETTER NNNA 0BAA;AL # TAMIL LETTER PA 0BAE;AL # TAMIL LETTER MA 0BAF;AL # TAMIL LETTER YA 0BB0;AL # TAMIL LETTER RA 0BB1;AL # TAMIL LETTER RRA 0BB2;AL # TAMIL LETTER LA 0BB3;AL # TAMIL LETTER LLA 0BB4;AL # TAMIL LETTER LLLA 0BB5;AL # TAMIL LETTER VA 0BB7;AL # TAMIL LETTER SSA 0BB8;AL # TAMIL LETTER SA 0BB9;AL # TAMIL LETTER HA 0BBE;CM # TAMIL VOWEL SIGN AA 0BBF;CM # TAMIL VOWEL SIGN I 0BC0;CM # TAMIL VOWEL SIGN II 0BC1;CM # TAMIL VOWEL SIGN U 0BC2;CM # TAMIL VOWEL SIGN UU 0BC6;CM # TAMIL VOWEL SIGN E 0BC7;CM # TAMIL VOWEL SIGN EE 0BC8;CM # TAMIL VOWEL SIGN AI 0BCA;CM # TAMIL VOWEL SIGN O 0BCB;CM # TAMIL VOWEL SIGN OO 0BCC;CM # TAMIL VOWEL SIGN AU 0BCD;CM # TAMIL SIGN VIRAMA 0BD7;CM # TAMIL AU LENGTH MARK 0BE7;NU # TAMIL DIGIT ONE 0BE8;NU # TAMIL DIGIT TWO 0BE9;NU # TAMIL DIGIT THREE 0BEA;NU # TAMIL DIGIT FOUR 0BEB;NU # TAMIL DIGIT FIVE 0BEC;NU # TAMIL DIGIT SIX 0BED;NU # TAMIL DIGIT SEVEN 0BEE;NU # TAMIL DIGIT EIGHT 0BEF;NU # TAMIL DIGIT NINE 0BF0;AL # TAMIL NUMBER TEN 0BF1;AL # TAMIL NUMBER ONE HUNDRED 0BF2;AL # TAMIL NUMBER ONE THOUSAND 0C01;CM # TELUGU SIGN CANDRABINDU 0C02;CM # TELUGU SIGN ANUSVARA 0C03;CM # TELUGU SIGN VISARGA 0C05;AL # TELUGU LETTER A 0C06;AL # TELUGU LETTER AA 0C07;AL # TELUGU LETTER I 0C08;AL # TELUGU LETTER II 0C09;AL # TELUGU LETTER U 0C0A;AL # TELUGU LETTER UU 0C0B;AL # TELUGU LETTER VOCALIC R 0C0C;AL # TELUGU LETTER VOCALIC L 0C0E;AL # TELUGU LETTER E 0C0F;AL # TELUGU LETTER EE 0C10;AL # TELUGU LETTER AI 0C12;AL # TELUGU LETTER O 0C13;AL # TELUGU LETTER OO 0C14;AL # TELUGU LETTER AU 0C15;AL # TELUGU LETTER KA 0C16;AL # TELUGU LETTER KHA 0C17;AL # TELUGU LETTER GA 0C18;AL # TELUGU LETTER GHA 0C19;AL # TELUGU LETTER NGA 0C1A;AL # TELUGU LETTER CA 0C1B;AL # TELUGU LETTER CHA 0C1C;AL # TELUGU LETTER JA 0C1D;AL # TELUGU LETTER JHA 0C1E;AL # TELUGU LETTER NYA 0C1F;AL # TELUGU LETTER TTA 0C20;AL # TELUGU LETTER TTHA 0C21;AL # TELUGU LETTER DDA 0C22;AL # TELUGU LETTER DDHA 0C23;AL # TELUGU LETTER NNA 0C24;AL # TELUGU LETTER TA 0C25;AL # TELUGU LETTER THA 0C26;AL # TELUGU LETTER DA 0C27;AL # TELUGU LETTER DHA 0C28;AL # TELUGU LETTER NA 0C2A;AL # TELUGU LETTER PA 0C2B;AL # TELUGU LETTER PHA 0C2C;AL # TELUGU LETTER BA 0C2D;AL # TELUGU LETTER BHA 0C2E;AL # TELUGU LETTER MA 0C2F;AL # TELUGU LETTER YA 0C30;AL # TELUGU LETTER RA 0C31;AL # TELUGU LETTER RRA 0C32;AL # TELUGU LETTER LA 0C33;AL # TELUGU LETTER LLA 0C35;AL # TELUGU LETTER VA 0C36;AL # TELUGU LETTER SHA 0C37;AL # TELUGU LETTER SSA 0C38;AL # TELUGU LETTER SA 0C39;AL # TELUGU LETTER HA 0C3E;CM # TELUGU VOWEL SIGN AA 0C3F;CM # TELUGU VOWEL SIGN I 0C40;CM # TELUGU VOWEL SIGN II 0C41;CM # TELUGU VOWEL SIGN U 0C42;CM # TELUGU VOWEL SIGN UU 0C43;CM # TELUGU VOWEL SIGN VOCALIC R 0C44;CM # TELUGU VOWEL SIGN VOCALIC RR 0C46;CM # TELUGU VOWEL SIGN E 0C47;CM # TELUGU VOWEL SIGN EE 0C48;CM # TELUGU VOWEL SIGN AI 0C4A;CM # TELUGU VOWEL SIGN O 0C4B;CM # TELUGU VOWEL SIGN OO 0C4C;CM # TELUGU VOWEL SIGN AU 0C4D;CM # TELUGU SIGN VIRAMA 0C55;CM # TELUGU LENGTH MARK 0C56;CM # TELUGU AI LENGTH MARK 0C60;AL # TELUGU LETTER VOCALIC RR 0C61;AL # TELUGU LETTER VOCALIC LL 0C66;NU # TELUGU DIGIT ZERO 0C67;NU # TELUGU DIGIT ONE 0C68;NU # TELUGU DIGIT TWO 0C69;NU # TELUGU DIGIT THREE 0C6A;NU # TELUGU DIGIT FOUR 0C6B;NU # TELUGU DIGIT FIVE 0C6C;NU # TELUGU DIGIT SIX 0C6D;NU # TELUGU DIGIT SEVEN 0C6E;NU # TELUGU DIGIT EIGHT 0C6F;NU # TELUGU DIGIT NINE 0C82;CM # KANNADA SIGN ANUSVARA 0C83;CM # KANNADA SIGN VISARGA 0C85;AL # KANNADA LETTER A 0C86;AL # KANNADA LETTER AA 0C87;AL # KANNADA LETTER I 0C88;AL # KANNADA LETTER II 0C89;AL # KANNADA LETTER U 0C8A;AL # KANNADA LETTER UU 0C8B;AL # KANNADA LETTER VOCALIC R 0C8C;AL # KANNADA LETTER VOCALIC L 0C8E;AL # KANNADA LETTER E 0C8F;AL # KANNADA LETTER EE 0C90;AL # KANNADA LETTER AI 0C92;AL # KANNADA LETTER O 0C93;AL # KANNADA LETTER OO 0C94;AL # KANNADA LETTER AU 0C95;AL # KANNADA LETTER KA 0C96;AL # KANNADA LETTER KHA 0C97;AL # KANNADA LETTER GA 0C98;AL # KANNADA LETTER GHA 0C99;AL # KANNADA LETTER NGA 0C9A;AL # KANNADA LETTER CA 0C9B;AL # KANNADA LETTER CHA 0C9C;AL # KANNADA LETTER JA 0C9D;AL # KANNADA LETTER JHA 0C9E;AL # KANNADA LETTER NYA 0C9F;AL # KANNADA LETTER TTA 0CA0;AL # KANNADA LETTER TTHA 0CA1;AL # KANNADA LETTER DDA 0CA2;AL # KANNADA LETTER DDHA 0CA3;AL # KANNADA LETTER NNA 0CA4;AL # KANNADA LETTER TA 0CA5;AL # KANNADA LETTER THA 0CA6;AL # KANNADA LETTER DA 0CA7;AL # KANNADA LETTER DHA 0CA8;AL # KANNADA LETTER NA 0CAA;AL # KANNADA LETTER PA 0CAB;AL # KANNADA LETTER PHA 0CAC;AL # KANNADA LETTER BA 0CAD;AL # KANNADA LETTER BHA 0CAE;AL # KANNADA LETTER MA 0CAF;AL # KANNADA LETTER YA 0CB0;AL # KANNADA LETTER RA 0CB1;AL # KANNADA LETTER RRA 0CB2;AL # KANNADA LETTER LA 0CB3;AL # KANNADA LETTER LLA 0CB5;AL # KANNADA LETTER VA 0CB6;AL # KANNADA LETTER SHA 0CB7;AL # KANNADA LETTER SSA 0CB8;AL # KANNADA LETTER SA 0CB9;AL # KANNADA LETTER HA 0CBE;CM # KANNADA VOWEL SIGN AA 0CBF;CM # KANNADA VOWEL SIGN I 0CC0;CM # KANNADA VOWEL SIGN II 0CC1;CM # KANNADA VOWEL SIGN U 0CC2;CM # KANNADA VOWEL SIGN UU 0CC3;CM # KANNADA VOWEL SIGN VOCALIC R 0CC4;CM # KANNADA VOWEL SIGN VOCALIC RR 0CC6;CM # KANNADA VOWEL SIGN E 0CC7;CM # KANNADA VOWEL SIGN EE 0CC8;CM # KANNADA VOWEL SIGN AI 0CCA;CM # KANNADA VOWEL SIGN O 0CCB;CM # KANNADA VOWEL SIGN OO 0CCC;CM # KANNADA VOWEL SIGN AU 0CCD;CM # KANNADA SIGN VIRAMA 0CD5;CM # KANNADA LENGTH MARK 0CD6;CM # KANNADA AI LENGTH MARK 0CDE;AL # KANNADA LETTER FA 0CE0;AL # KANNADA LETTER VOCALIC RR 0CE1;AL # KANNADA LETTER VOCALIC LL 0CE6;NU # KANNADA DIGIT ZERO 0CE7;NU # KANNADA DIGIT ONE 0CE8;NU # KANNADA DIGIT TWO 0CE9;NU # KANNADA DIGIT THREE 0CEA;NU # KANNADA DIGIT FOUR 0CEB;NU # KANNADA DIGIT FIVE 0CEC;NU # KANNADA DIGIT SIX 0CED;NU # KANNADA DIGIT SEVEN 0CEE;NU # KANNADA DIGIT EIGHT 0CEF;NU # KANNADA DIGIT NINE 0D02;CM # MALAYALAM SIGN ANUSVARA 0D03;CM # MALAYALAM SIGN VISARGA 0D05;AL # MALAYALAM LETTER A 0D06;AL # MALAYALAM LETTER AA 0D07;AL # MALAYALAM LETTER I 0D08;AL # MALAYALAM LETTER II 0D09;AL # MALAYALAM LETTER U 0D0A;AL # MALAYALAM LETTER UU 0D0B;AL # MALAYALAM LETTER VOCALIC R 0D0C;AL # MALAYALAM LETTER VOCALIC L 0D0E;AL # MALAYALAM LETTER E 0D0F;AL # MALAYALAM LETTER EE 0D10;AL # MALAYALAM LETTER AI 0D12;AL # MALAYALAM LETTER O 0D13;AL # MALAYALAM LETTER OO 0D14;AL # MALAYALAM LETTER AU 0D15;AL # MALAYALAM LETTER KA 0D16;AL # MALAYALAM LETTER KHA 0D17;AL # MALAYALAM LETTER GA 0D18;AL # MALAYALAM LETTER GHA 0D19;AL # MALAYALAM LETTER NGA 0D1A;AL # MALAYALAM LETTER CA 0D1B;AL # MALAYALAM LETTER CHA 0D1C;AL # MALAYALAM LETTER JA 0D1D;AL # MALAYALAM LETTER JHA 0D1E;AL # MALAYALAM LETTER NYA 0D1F;AL # MALAYALAM LETTER TTA 0D20;AL # MALAYALAM LETTER TTHA 0D21;AL # MALAYALAM LETTER DDA 0D22;AL # MALAYALAM LETTER DDHA 0D23;AL # MALAYALAM LETTER NNA 0D24;AL # MALAYALAM LETTER TA 0D25;AL # MALAYALAM LETTER THA 0D26;AL # MALAYALAM LETTER DA 0D27;AL # MALAYALAM LETTER DHA 0D28;AL # MALAYALAM LETTER NA 0D2A;AL # MALAYALAM LETTER PA 0D2B;AL # MALAYALAM LETTER PHA 0D2C;AL # MALAYALAM LETTER BA 0D2D;AL # MALAYALAM LETTER BHA 0D2E;AL # MALAYALAM LETTER MA 0D2F;AL # MALAYALAM LETTER YA 0D30;AL # MALAYALAM LETTER RA 0D31;AL # MALAYALAM LETTER RRA 0D32;AL # MALAYALAM LETTER LA 0D33;AL # MALAYALAM LETTER LLA 0D34;AL # MALAYALAM LETTER LLLA 0D35;AL # MALAYALAM LETTER VA 0D36;AL # MALAYALAM LETTER SHA 0D37;AL # MALAYALAM LETTER SSA 0D38;AL # MALAYALAM LETTER SA 0D39;AL # MALAYALAM LETTER HA 0D3E;CM # MALAYALAM VOWEL SIGN AA 0D3F;CM # MALAYALAM VOWEL SIGN I 0D40;CM # MALAYALAM VOWEL SIGN II 0D41;CM # MALAYALAM VOWEL SIGN U 0D42;CM # MALAYALAM VOWEL SIGN UU 0D43;CM # MALAYALAM VOWEL SIGN VOCALIC R 0D46;CM # MALAYALAM VOWEL SIGN E 0D47;CM # MALAYALAM VOWEL SIGN EE 0D48;CM # MALAYALAM VOWEL SIGN AI 0D4A;CM # MALAYALAM VOWEL SIGN O 0D4B;CM # MALAYALAM VOWEL SIGN OO 0D4C;CM # MALAYALAM VOWEL SIGN AU 0D4D;CM # MALAYALAM SIGN VIRAMA 0D57;CM # MALAYALAM AU LENGTH MARK 0D60;AL # MALAYALAM LETTER VOCALIC RR 0D61;AL # MALAYALAM LETTER VOCALIC LL 0D66;NU # MALAYALAM DIGIT ZERO 0D67;NU # MALAYALAM DIGIT ONE 0D68;NU # MALAYALAM DIGIT TWO 0D69;NU # MALAYALAM DIGIT THREE 0D6A;NU # MALAYALAM DIGIT FOUR 0D6B;NU # MALAYALAM DIGIT FIVE 0D6C;NU # MALAYALAM DIGIT SIX 0D6D;NU # MALAYALAM DIGIT SEVEN 0D6E;NU # MALAYALAM DIGIT EIGHT 0D6F;NU # MALAYALAM DIGIT NINE 0D82;CM # SINHALA SIGN ANUSVARAYA 0D83;CM # SINHALA SIGN VISARGAYA 0D85;AL # SINHALA LETTER AYANNA 0D86;AL # SINHALA LETTER AAYANNA 0D87;AL # SINHALA LETTER AEYANNA 0D88;AL # SINHALA LETTER AEEYANNA 0D89;AL # SINHALA LETTER IYANNA 0D8A;AL # SINHALA LETTER IIYANNA 0D8B;AL # SINHALA LETTER UYANNA 0D8C;AL # SINHALA LETTER UUYANNA 0D8D;AL # SINHALA LETTER IRUYANNA 0D8E;AL # SINHALA LETTER IRUUYANNA 0D8F;AL # SINHALA LETTER ILUYANNA 0D90;AL # SINHALA LETTER ILUUYANNA 0D91;AL # SINHALA LETTER EYANNA 0D92;AL # SINHALA LETTER EEYANNA 0D93;AL # SINHALA LETTER AIYANNA 0D94;AL # SINHALA LETTER OYANNA 0D95;AL # SINHALA LETTER OOYANNA 0D96;AL # SINHALA LETTER AUYANNA 0D9A;AL # SINHALA LETTER ALPAPRAANA KAYANNA 0D9B;AL # SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C;AL # SINHALA LETTER ALPAPRAANA GAYANNA 0D9D;AL # SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E;AL # SINHALA LETTER KANTAJA NAASIKYAYA 0D9F;AL # SINHALA LETTER SANYAKA GAYANNA 0DA0;AL # SINHALA LETTER ALPAPRAANA CAYANNA 0DA1;AL # SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2;AL # SINHALA LETTER ALPAPRAANA JAYANNA 0DA3;AL # SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4;AL # SINHALA LETTER TAALUJA NAASIKYAYA 0DA5;AL # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6;AL # SINHALA LETTER SANYAKA JAYANNA 0DA7;AL # SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8;AL # SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9;AL # SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA;AL # SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB;AL # SINHALA LETTER MUURDHAJA NAYANNA 0DAC;AL # SINHALA LETTER SANYAKA DDAYANNA 0DAD;AL # SINHALA LETTER ALPAPRAANA TAYANNA 0DAE;AL # SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF;AL # SINHALA LETTER ALPAPRAANA DAYANNA 0DB0;AL # SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1;AL # SINHALA LETTER DANTAJA NAYANNA 0DB3;AL # SINHALA LETTER SANYAKA DAYANNA 0DB4;AL # SINHALA LETTER ALPAPRAANA PAYANNA 0DB5;AL # SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6;AL # SINHALA LETTER ALPAPRAANA BAYANNA 0DB7;AL # SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8;AL # SINHALA LETTER MAYANNA 0DB9;AL # SINHALA LETTER AMBA BAYANNA 0DBA;AL # SINHALA LETTER YAYANNA 0DBB;AL # SINHALA LETTER RAYANNA 0DBD;AL # SINHALA LETTER DANTAJA LAYANNA 0DC0;AL # SINHALA LETTER VAYANNA 0DC1;AL # SINHALA LETTER TAALUJA SAYANNA 0DC2;AL # SINHALA LETTER MUURDHAJA SAYANNA 0DC3;AL # SINHALA LETTER DANTAJA SAYANNA 0DC4;AL # SINHALA LETTER HAYANNA 0DC5;AL # SINHALA LETTER MUURDHAJA LAYANNA 0DC6;AL # SINHALA LETTER FAYANNA 0DCA;CM # SINHALA SIGN AL-LAKUNA 0DCF;CM # SINHALA VOWEL SIGN AELA-PILLA 0DD0;CM # SINHALA VOWEL SIGN KETTI AEDA-PILLA 0DD1;CM # SINHALA VOWEL SIGN DIGA AEDA-PILLA 0DD2;CM # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;CM # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;CM # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;CM # SINHALA VOWEL SIGN DIGA PAA-PILLA 0DD8;CM # SINHALA VOWEL SIGN GAETTA-PILLA 0DD9;CM # SINHALA VOWEL SIGN KOMBUVA 0DDA;CM # SINHALA VOWEL SIGN DIGA KOMBUVA 0DDB;CM # SINHALA VOWEL SIGN KOMBU DEKA 0DDC;CM # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA 0DDD;CM # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA 0DDE;CM # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA 0DDF;CM # SINHALA VOWEL SIGN GAYANUKITTA 0DF2;CM # SINHALA VOWEL SIGN DIGA GAETTA-PILLA 0DF3;CM # SINHALA VOWEL SIGN DIGA GAYANUKITTA 0DF4;AL # SINHALA PUNCTUATION KUNDDALIYA 0E01;SA # THAI CHARACTER KO KAI 0E02;SA # THAI CHARACTER KHO KHAI 0E03;SA # THAI CHARACTER KHO KHUAT 0E04;SA # THAI CHARACTER KHO KHWAI 0E05;SA # THAI CHARACTER KHO KHON 0E06;SA # THAI CHARACTER KHO RAKHANG 0E07;SA # THAI CHARACTER NGO NGU 0E08;SA # THAI CHARACTER CHO CHAN 0E09;SA # THAI CHARACTER CHO CHING 0E0A;SA # THAI CHARACTER CHO CHANG 0E0B;SA # THAI CHARACTER SO SO 0E0C;SA # THAI CHARACTER CHO CHOE 0E0D;SA # THAI CHARACTER YO YING 0E0E;SA # THAI CHARACTER DO CHADA 0E0F;SA # THAI CHARACTER TO PATAK 0E10;SA # THAI CHARACTER THO THAN 0E11;SA # THAI CHARACTER THO NANGMONTHO 0E12;SA # THAI CHARACTER THO PHUTHAO 0E13;SA # THAI CHARACTER NO NEN 0E14;SA # THAI CHARACTER DO DEK 0E15;SA # THAI CHARACTER TO TAO 0E16;SA # THAI CHARACTER THO THUNG 0E17;SA # THAI CHARACTER THO THAHAN 0E18;SA # THAI CHARACTER THO THONG 0E19;SA # THAI CHARACTER NO NU 0E1A;SA # THAI CHARACTER BO BAIMAI 0E1B;SA # THAI CHARACTER PO PLA 0E1C;SA # THAI CHARACTER PHO PHUNG 0E1D;SA # THAI CHARACTER FO FA 0E1E;SA # THAI CHARACTER PHO PHAN 0E1F;SA # THAI CHARACTER FO FAN 0E20;SA # THAI CHARACTER PHO SAMPHAO 0E21;SA # THAI CHARACTER MO MA 0E22;SA # THAI CHARACTER YO YAK 0E23;SA # THAI CHARACTER RO RUA 0E24;SA # THAI CHARACTER RU 0E25;SA # THAI CHARACTER LO LING 0E26;SA # THAI CHARACTER LU 0E27;SA # THAI CHARACTER WO WAEN 0E28;SA # THAI CHARACTER SO SALA 0E29;SA # THAI CHARACTER SO RUSI 0E2A;SA # THAI CHARACTER SO SUA 0E2B;SA # THAI CHARACTER HO HIP 0E2C;SA # THAI CHARACTER LO CHULA 0E2D;SA # THAI CHARACTER O ANG 0E2E;SA # THAI CHARACTER HO NOKHUK 0E2F;SA # THAI CHARACTER PAIYANNOI 0E30;SA # THAI CHARACTER SARA A 0E31;CM # THAI CHARACTER MAI HAN-AKAT 0E32;SA # THAI CHARACTER SARA AA 0E33;SA # THAI CHARACTER SARA AM 0E34;CM # THAI CHARACTER SARA I 0E35;CM # THAI CHARACTER SARA II 0E36;CM # THAI CHARACTER SARA UE 0E37;CM # THAI CHARACTER SARA UEE 0E38;CM # THAI CHARACTER SARA U 0E39;CM # THAI CHARACTER SARA UU 0E3A;CM # THAI CHARACTER PHINTHU 0E3F;PR # THAI CURRENCY SYMBOL BAHT 0E40;SA # THAI CHARACTER SARA E 0E41;SA # THAI CHARACTER SARA AE 0E42;SA # THAI CHARACTER SARA O 0E43;SA # THAI CHARACTER SARA AI MAIMUAN 0E44;SA # THAI CHARACTER SARA AI MAIMALAI 0E45;SA # THAI CHARACTER LAKKHANGYAO 0E46;SA # THAI CHARACTER MAIYAMOK 0E47;CM # THAI CHARACTER MAITAIKHU 0E48;CM # THAI CHARACTER MAI EK 0E49;CM # THAI CHARACTER MAI THO 0E4A;CM # THAI CHARACTER MAI TRI 0E4B;CM # THAI CHARACTER MAI CHATTAWA 0E4C;CM # THAI CHARACTER THANTHAKHAT 0E4D;CM # THAI CHARACTER NIKHAHIT 0E4E;CM # THAI CHARACTER YAMAKKAN 0E4F;AL # THAI CHARACTER FONGMAN 0E50;NU # THAI DIGIT ZERO 0E51;NU # THAI DIGIT ONE 0E52;NU # THAI DIGIT TWO 0E53;NU # THAI DIGIT THREE 0E54;NU # THAI DIGIT FOUR 0E55;NU # THAI DIGIT FIVE 0E56;NU # THAI DIGIT SIX 0E57;NU # THAI DIGIT SEVEN 0E58;NU # THAI DIGIT EIGHT 0E59;NU # THAI DIGIT NINE 0E5A;NS # THAI CHARACTER ANGKHANKHU 0E5B;NS # THAI CHARACTER KHOMUT 0E81;SA # LAO LETTER KO 0E82;SA # LAO LETTER KHO SUNG 0E84;SA # LAO LETTER KHO TAM 0E87;SA # LAO LETTER NGO 0E88;SA # LAO LETTER CO 0E8A;SA # LAO LETTER SO TAM 0E8D;SA # LAO LETTER NYO 0E94;SA # LAO LETTER DO 0E95;SA # LAO LETTER TO 0E96;SA # LAO LETTER THO SUNG 0E97;SA # LAO LETTER THO TAM 0E99;SA # LAO LETTER NO 0E9A;SA # LAO LETTER BO 0E9B;SA # LAO LETTER PO 0E9C;SA # LAO LETTER PHO SUNG 0E9D;SA # LAO LETTER FO TAM 0E9E;SA # LAO LETTER PHO TAM 0E9F;SA # LAO LETTER FO SUNG 0EA1;SA # LAO LETTER MO 0EA2;SA # LAO LETTER YO 0EA3;SA # LAO LETTER LO LING 0EA5;SA # LAO LETTER LO LOOT 0EA7;SA # LAO LETTER WO 0EAA;SA # LAO LETTER SO SUNG 0EAB;SA # LAO LETTER HO SUNG 0EAD;SA # LAO LETTER O 0EAE;SA # LAO LETTER HO TAM 0EAF;SA # LAO ELLIPSIS 0EB0;SA # LAO VOWEL SIGN A 0EB1;CM # LAO VOWEL SIGN MAI KAN 0EB2;SA # LAO VOWEL SIGN AA 0EB3;SA # LAO VOWEL SIGN AM 0EB4;CM # LAO VOWEL SIGN I 0EB5;CM # LAO VOWEL SIGN II 0EB6;CM # LAO VOWEL SIGN Y 0EB7;CM # LAO VOWEL SIGN YY 0EB8;CM # LAO VOWEL SIGN U 0EB9;CM # LAO VOWEL SIGN UU 0EBB;CM # LAO VOWEL SIGN MAI KON 0EBC;CM # LAO SEMIVOWEL SIGN LO 0EBD;SA # LAO SEMIVOWEL SIGN NYO 0EC0;SA # LAO VOWEL SIGN E 0EC1;SA # LAO VOWEL SIGN EI 0EC2;SA # LAO VOWEL SIGN O 0EC3;SA # LAO VOWEL SIGN AY 0EC4;SA # LAO VOWEL SIGN AI 0EC6;SA # LAO KO LA 0EC8;CM # LAO TONE MAI EK 0EC9;CM # LAO TONE MAI THO 0ECA;CM # LAO TONE MAI TI 0ECB;CM # LAO TONE MAI CATAWA 0ECC;CM # LAO CANCELLATION MARK 0ECD;CM # LAO NIGGAHITA 0ED0;NU # LAO DIGIT ZERO 0ED1;NU # LAO DIGIT ONE 0ED2;NU # LAO DIGIT TWO 0ED3;NU # LAO DIGIT THREE 0ED4;NU # LAO DIGIT FOUR 0ED5;NU # LAO DIGIT FIVE 0ED6;NU # LAO DIGIT SIX 0ED7;NU # LAO DIGIT SEVEN 0ED8;NU # LAO DIGIT EIGHT 0ED9;NU # LAO DIGIT NINE 0EDC;SA # LAO HO NO 0EDD;SA # LAO HO MO 0F00;AL # TIBETAN SYLLABLE OM 0F01;AL # TIBETAN MARK GTER YIG MGO TRUNCATED A 0F02;AL # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA 0F03;AL # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA 0F04;AL # TIBETAN MARK INITIAL YIG MGO MDUN MA 0F05;AL # TIBETAN MARK CLOSING YIG MGO SGAB MA 0F06;AL # TIBETAN MARK CARET YIG MGO PHUR SHAD MA 0F07;AL # TIBETAN MARK YIG MGO TSHEG SHAD MA 0F08;AL # TIBETAN MARK SBRUL SHAD 0F09;AL # TIBETAN MARK BSKUR YIG MGO 0F0A;AL # TIBETAN MARK BKA- SHOG YIG MGO 0F0B;BA # TIBETAN MARK INTERSYLLABIC TSHEG 0F0C;GL # TIBETAN MARK DELIMITER TSHEG BSTAR 0F0D;AL # TIBETAN MARK SHAD 0F0E;AL # TIBETAN MARK NYIS SHAD 0F0F;AL # TIBETAN MARK TSHEG SHAD 0F10;AL # TIBETAN MARK NYIS TSHEG SHAD 0F11;AL # TIBETAN MARK RIN CHEN SPUNGS SHAD 0F12;AL # TIBETAN MARK RGYA GRAM SHAD 0F13;AL # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN 0F14;AL # TIBETAN MARK GTER TSHEG 0F15;AL # TIBETAN LOGOTYPE SIGN CHAD RTAGS 0F16;AL # TIBETAN LOGOTYPE SIGN LHAG RTAGS 0F17;AL # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS 0F18;CM # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;CM # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F1A;AL # TIBETAN SIGN RDEL DKAR GCIG 0F1B;AL # TIBETAN SIGN RDEL DKAR GNYIS 0F1C;AL # TIBETAN SIGN RDEL DKAR GSUM 0F1D;AL # TIBETAN SIGN RDEL NAG GCIG 0F1E;AL # TIBETAN SIGN RDEL NAG GNYIS 0F1F;AL # TIBETAN SIGN RDEL DKAR RDEL NAG 0F20;NU # TIBETAN DIGIT ZERO 0F21;NU # TIBETAN DIGIT ONE 0F22;NU # TIBETAN DIGIT TWO 0F23;NU # TIBETAN DIGIT THREE 0F24;NU # TIBETAN DIGIT FOUR 0F25;NU # TIBETAN DIGIT FIVE 0F26;NU # TIBETAN DIGIT SIX 0F27;NU # TIBETAN DIGIT SEVEN 0F28;NU # TIBETAN DIGIT EIGHT 0F29;NU # TIBETAN DIGIT NINE 0F2A;AL # TIBETAN DIGIT HALF ONE 0F2B;AL # TIBETAN DIGIT HALF TWO 0F2C;AL # TIBETAN DIGIT HALF THREE 0F2D;AL # TIBETAN DIGIT HALF FOUR 0F2E;AL # TIBETAN DIGIT HALF FIVE 0F2F;AL # TIBETAN DIGIT HALF SIX 0F30;AL # TIBETAN DIGIT HALF SEVEN 0F31;AL # TIBETAN DIGIT HALF EIGHT 0F32;AL # TIBETAN DIGIT HALF NINE 0F33;AL # TIBETAN DIGIT HALF ZERO 0F34;AL # TIBETAN MARK BSDUS RTAGS 0F35;CM # TIBETAN MARK NGAS BZUNG NYI ZLA 0F36;AL # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN 0F37;CM # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F38;AL # TIBETAN MARK CHE MGO 0F39;CM # TIBETAN MARK TSA -PHRU 0F3A;OP # TIBETAN MARK GUG RTAGS GYON 0F3B;CL # TIBETAN MARK GUG RTAGS GYAS 0F3C;OP # TIBETAN MARK ANG KHANG GYON 0F3D;CL # TIBETAN MARK ANG KHANG GYAS 0F3E;CM # TIBETAN SIGN YAR TSHES 0F3F;CM # TIBETAN SIGN MAR TSHES 0F40;AL # TIBETAN LETTER KA 0F41;AL # TIBETAN LETTER KHA 0F42;AL # TIBETAN LETTER GA 0F43;AL # TIBETAN LETTER GHA 0F44;AL # TIBETAN LETTER NGA 0F45;AL # TIBETAN LETTER CA 0F46;AL # TIBETAN LETTER CHA 0F47;AL # TIBETAN LETTER JA 0F49;AL # TIBETAN LETTER NYA 0F4A;AL # TIBETAN LETTER TTA 0F4B;AL # TIBETAN LETTER TTHA 0F4C;AL # TIBETAN LETTER DDA 0F4D;AL # TIBETAN LETTER DDHA 0F4E;AL # TIBETAN LETTER NNA 0F4F;AL # TIBETAN LETTER TA 0F50;AL # TIBETAN LETTER THA 0F51;AL # TIBETAN LETTER DA 0F52;AL # TIBETAN LETTER DHA 0F53;AL # TIBETAN LETTER NA 0F54;AL # TIBETAN LETTER PA 0F55;AL # TIBETAN LETTER PHA 0F56;AL # TIBETAN LETTER BA 0F57;AL # TIBETAN LETTER BHA 0F58;AL # TIBETAN LETTER MA 0F59;AL # TIBETAN LETTER TSA 0F5A;AL # TIBETAN LETTER TSHA 0F5B;AL # TIBETAN LETTER DZA 0F5C;AL # TIBETAN LETTER DZHA 0F5D;AL # TIBETAN LETTER WA 0F5E;AL # TIBETAN LETTER ZHA 0F5F;AL # TIBETAN LETTER ZA 0F60;AL # TIBETAN LETTER -A 0F61;AL # TIBETAN LETTER YA 0F62;AL # TIBETAN LETTER RA 0F63;AL # TIBETAN LETTER LA 0F64;AL # TIBETAN LETTER SHA 0F65;AL # TIBETAN LETTER SSA 0F66;AL # TIBETAN LETTER SA 0F67;AL # TIBETAN LETTER HA 0F68;AL # TIBETAN LETTER A 0F69;AL # TIBETAN LETTER KSSA 0F6A;AL # TIBETAN LETTER FIXED-FORM RA 0F71;CM # TIBETAN VOWEL SIGN AA 0F72;CM # TIBETAN VOWEL SIGN I 0F73;CM # TIBETAN VOWEL SIGN II 0F74;CM # TIBETAN VOWEL SIGN U 0F75;CM # TIBETAN VOWEL SIGN UU 0F76;CM # TIBETAN VOWEL SIGN VOCALIC R 0F77;CM # TIBETAN VOWEL SIGN VOCALIC RR 0F78;CM # TIBETAN VOWEL SIGN VOCALIC L 0F79;CM # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;CM # TIBETAN VOWEL SIGN E 0F7B;CM # TIBETAN VOWEL SIGN EE 0F7C;CM # TIBETAN VOWEL SIGN O 0F7D;CM # TIBETAN VOWEL SIGN OO 0F7E;CM # TIBETAN SIGN RJES SU NGA RO 0F7F;CM # TIBETAN SIGN RNAM BCAD 0F80;CM # TIBETAN VOWEL SIGN REVERSED I 0F81;CM # TIBETAN VOWEL SIGN REVERSED II 0F82;CM # TIBETAN SIGN NYI ZLA NAA DA 0F83;CM # TIBETAN SIGN SNA LDAN 0F84;CM # TIBETAN MARK HALANTA 0F85;AL # TIBETAN MARK PALUTA 0F86;CM # TIBETAN SIGN LCI RTAGS 0F87;CM # TIBETAN SIGN YANG RTAGS 0F88;AL # TIBETAN SIGN LCE TSA CAN 0F89;AL # TIBETAN SIGN MCHU CAN 0F8A;AL # TIBETAN SIGN GRU CAN RGYINGS 0F8B;AL # TIBETAN SIGN GRU MED RGYINGS 0F90;CM # TIBETAN SUBJOINED LETTER KA 0F91;CM # TIBETAN SUBJOINED LETTER KHA 0F92;CM # TIBETAN SUBJOINED LETTER GA 0F93;CM # TIBETAN SUBJOINED LETTER GHA 0F94;CM # TIBETAN SUBJOINED LETTER NGA 0F95;CM # TIBETAN SUBJOINED LETTER CA 0F96;CM # TIBETAN SUBJOINED LETTER CHA 0F97;CM # TIBETAN SUBJOINED LETTER JA 0F99;CM # TIBETAN SUBJOINED LETTER NYA 0F9A;CM # TIBETAN SUBJOINED LETTER TTA 0F9B;CM # TIBETAN SUBJOINED LETTER TTHA 0F9C;CM # TIBETAN SUBJOINED LETTER DDA 0F9D;CM # TIBETAN SUBJOINED LETTER DDHA 0F9E;CM # TIBETAN SUBJOINED LETTER NNA 0F9F;CM # TIBETAN SUBJOINED LETTER TA 0FA0;CM # TIBETAN SUBJOINED LETTER THA 0FA1;CM # TIBETAN SUBJOINED LETTER DA 0FA2;CM # TIBETAN SUBJOINED LETTER DHA 0FA3;CM # TIBETAN SUBJOINED LETTER NA 0FA4;CM # TIBETAN SUBJOINED LETTER PA 0FA5;CM # TIBETAN SUBJOINED LETTER PHA 0FA6;CM # TIBETAN SUBJOINED LETTER BA 0FA7;CM # TIBETAN SUBJOINED LETTER BHA 0FA8;CM # TIBETAN SUBJOINED LETTER MA 0FA9;CM # TIBETAN SUBJOINED LETTER TSA 0FAA;CM # TIBETAN SUBJOINED LETTER TSHA 0FAB;CM # TIBETAN SUBJOINED LETTER DZA 0FAC;CM # TIBETAN SUBJOINED LETTER DZHA 0FAD;CM # TIBETAN SUBJOINED LETTER WA 0FAE;CM # TIBETAN SUBJOINED LETTER ZHA 0FAF;CM # TIBETAN SUBJOINED LETTER ZA 0FB0;CM # TIBETAN SUBJOINED LETTER -A 0FB1;CM # TIBETAN SUBJOINED LETTER YA 0FB2;CM # TIBETAN SUBJOINED LETTER RA 0FB3;CM # TIBETAN SUBJOINED LETTER LA 0FB4;CM # TIBETAN SUBJOINED LETTER SHA 0FB5;CM # TIBETAN SUBJOINED LETTER SSA 0FB6;CM # TIBETAN SUBJOINED LETTER SA 0FB7;CM # TIBETAN SUBJOINED LETTER HA 0FB8;CM # TIBETAN SUBJOINED LETTER A 0FB9;CM # TIBETAN SUBJOINED LETTER KSSA 0FBA;CM # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;CM # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;CM # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FBE;AL # TIBETAN KU RU KHA 0FBF;AL # TIBETAN KU RU KHA BZHI MIG CAN 0FC0;AL # TIBETAN CANTILLATION SIGN HEAVY BEAT 0FC1;AL # TIBETAN CANTILLATION SIGN LIGHT BEAT 0FC2;AL # TIBETAN CANTILLATION SIGN CANG TE-U 0FC3;AL # TIBETAN CANTILLATION SIGN SBUB -CHAL 0FC4;AL # TIBETAN SYMBOL DRIL BU 0FC5;AL # TIBETAN SYMBOL RDO RJE 0FC6;CM # TIBETAN SYMBOL PADMA GDAN 0FC7;AL # TIBETAN SYMBOL RDO RJE RGYA GRAM 0FC8;AL # TIBETAN SYMBOL PHUR PA 0FC9;AL # TIBETAN SYMBOL NOR BU 0FCA;AL # TIBETAN SYMBOL NOR BU NYIS -KHYIL 0FCB;AL # TIBETAN SYMBOL NOR BU GSUM -KHYIL 0FCC;AL # TIBETAN SYMBOL NOR BU BZHI -KHYIL 0FCF;AL # TIBETAN SIGN RDEL NAG GSUM 1000;SA # MYANMAR LETTER KA 1001;SA # MYANMAR LETTER KHA 1002;SA # MYANMAR LETTER GA 1003;SA # MYANMAR LETTER GHA 1004;SA # MYANMAR LETTER NGA 1005;SA # MYANMAR LETTER CA 1006;SA # MYANMAR LETTER CHA 1007;SA # MYANMAR LETTER JA 1008;SA # MYANMAR LETTER JHA 1009;SA # MYANMAR LETTER NYA 100A;SA # MYANMAR LETTER NNYA 100B;SA # MYANMAR LETTER TTA 100C;SA # MYANMAR LETTER TTHA 100D;SA # MYANMAR LETTER DDA 100E;SA # MYANMAR LETTER DDHA 100F;SA # MYANMAR LETTER NNA 1010;SA # MYANMAR LETTER TA 1011;SA # MYANMAR LETTER THA 1012;SA # MYANMAR LETTER DA 1013;SA # MYANMAR LETTER DHA 1014;SA # MYANMAR LETTER NA 1015;SA # MYANMAR LETTER PA 1016;SA # MYANMAR LETTER PHA 1017;SA # MYANMAR LETTER BA 1018;SA # MYANMAR LETTER BHA 1019;SA # MYANMAR LETTER MA 101A;SA # MYANMAR LETTER YA 101B;SA # MYANMAR LETTER RA 101C;SA # MYANMAR LETTER LA 101D;SA # MYANMAR LETTER WA 101E;SA # MYANMAR LETTER SA 101F;SA # MYANMAR LETTER HA 1020;SA # MYANMAR LETTER LLA 1021;SA # MYANMAR LETTER A 1023;SA # MYANMAR LETTER I 1024;SA # MYANMAR LETTER II 1025;SA # MYANMAR LETTER U 1026;SA # MYANMAR LETTER UU 1027;SA # MYANMAR LETTER E 1029;SA # MYANMAR LETTER O 102A;SA # MYANMAR LETTER AU 102C;CM # MYANMAR VOWEL SIGN AA 102D;CM # MYANMAR VOWEL SIGN I 102E;CM # MYANMAR VOWEL SIGN II 102F;CM # MYANMAR VOWEL SIGN U 1030;CM # MYANMAR VOWEL SIGN UU 1031;CM # MYANMAR VOWEL SIGN E 1032;CM # MYANMAR VOWEL SIGN AI 1036;CM # MYANMAR SIGN ANUSVARA 1037;CM # MYANMAR SIGN DOT BELOW 1038;CM # MYANMAR SIGN VISARGA 1039;CM # MYANMAR SIGN VIRAMA 1040;NU # MYANMAR DIGIT ZERO 1041;NU # MYANMAR DIGIT ONE 1042;NU # MYANMAR DIGIT TWO 1043;NU # MYANMAR DIGIT THREE 1044;NU # MYANMAR DIGIT FOUR 1045;NU # MYANMAR DIGIT FIVE 1046;NU # MYANMAR DIGIT SIX 1047;NU # MYANMAR DIGIT SEVEN 1048;NU # MYANMAR DIGIT EIGHT 1049;NU # MYANMAR DIGIT NINE 104A;AL # MYANMAR SIGN LITTLE SECTION 104B;AL # MYANMAR SIGN SECTION 104C;AL # MYANMAR SYMBOL LOCATIVE 104D;AL # MYANMAR SYMBOL COMPLETED 104E;AL # MYANMAR SYMBOL AFOREMENTIONED 104F;AL # MYANMAR SYMBOL GENITIVE 1050;SA # MYANMAR LETTER SHA 1051;SA # MYANMAR LETTER SSA 1052;SA # MYANMAR LETTER VOCALIC R 1053;SA # MYANMAR LETTER VOCALIC RR 1054;SA # MYANMAR LETTER VOCALIC L 1055;SA # MYANMAR LETTER VOCALIC LL 1056;CM # MYANMAR VOWEL SIGN VOCALIC R 1057;CM # MYANMAR VOWEL SIGN VOCALIC RR 1058;CM # MYANMAR VOWEL SIGN VOCALIC L 1059;CM # MYANMAR VOWEL SIGN VOCALIC LL 10A0;AL # GEORGIAN CAPITAL LETTER AN 10A1;AL # GEORGIAN CAPITAL LETTER BAN 10A2;AL # GEORGIAN CAPITAL LETTER GAN 10A3;AL # GEORGIAN CAPITAL LETTER DON 10A4;AL # GEORGIAN CAPITAL LETTER EN 10A5;AL # GEORGIAN CAPITAL LETTER VIN 10A6;AL # GEORGIAN CAPITAL LETTER ZEN 10A7;AL # GEORGIAN CAPITAL LETTER TAN 10A8;AL # GEORGIAN CAPITAL LETTER IN 10A9;AL # GEORGIAN CAPITAL LETTER KAN 10AA;AL # GEORGIAN CAPITAL LETTER LAS 10AB;AL # GEORGIAN CAPITAL LETTER MAN 10AC;AL # GEORGIAN CAPITAL LETTER NAR 10AD;AL # GEORGIAN CAPITAL LETTER ON 10AE;AL # GEORGIAN CAPITAL LETTER PAR 10AF;AL # GEORGIAN CAPITAL LETTER ZHAR 10B0;AL # GEORGIAN CAPITAL LETTER RAE 10B1;AL # GEORGIAN CAPITAL LETTER SAN 10B2;AL # GEORGIAN CAPITAL LETTER TAR 10B3;AL # GEORGIAN CAPITAL LETTER UN 10B4;AL # GEORGIAN CAPITAL LETTER PHAR 10B5;AL # GEORGIAN CAPITAL LETTER KHAR 10B6;AL # GEORGIAN CAPITAL LETTER GHAN 10B7;AL # GEORGIAN CAPITAL LETTER QAR 10B8;AL # GEORGIAN CAPITAL LETTER SHIN 10B9;AL # GEORGIAN CAPITAL LETTER CHIN 10BA;AL # GEORGIAN CAPITAL LETTER CAN 10BB;AL # GEORGIAN CAPITAL LETTER JIL 10BC;AL # GEORGIAN CAPITAL LETTER CIL 10BD;AL # GEORGIAN CAPITAL LETTER CHAR 10BE;AL # GEORGIAN CAPITAL LETTER XAN 10BF;AL # GEORGIAN CAPITAL LETTER JHAN 10C0;AL # GEORGIAN CAPITAL LETTER HAE 10C1;AL # GEORGIAN CAPITAL LETTER HE 10C2;AL # GEORGIAN CAPITAL LETTER HIE 10C3;AL # GEORGIAN CAPITAL LETTER WE 10C4;AL # GEORGIAN CAPITAL LETTER HAR 10C5;AL # GEORGIAN CAPITAL LETTER HOE 10D0;AL # GEORGIAN LETTER AN 10D1;AL # GEORGIAN LETTER BAN 10D2;AL # GEORGIAN LETTER GAN 10D3;AL # GEORGIAN LETTER DON 10D4;AL # GEORGIAN LETTER EN 10D5;AL # GEORGIAN LETTER VIN 10D6;AL # GEORGIAN LETTER ZEN 10D7;AL # GEORGIAN LETTER TAN 10D8;AL # GEORGIAN LETTER IN 10D9;AL # GEORGIAN LETTER KAN 10DA;AL # GEORGIAN LETTER LAS 10DB;AL # GEORGIAN LETTER MAN 10DC;AL # GEORGIAN LETTER NAR 10DD;AL # GEORGIAN LETTER ON 10DE;AL # GEORGIAN LETTER PAR 10DF;AL # GEORGIAN LETTER ZHAR 10E0;AL # GEORGIAN LETTER RAE 10E1;AL # GEORGIAN LETTER SAN 10E2;AL # GEORGIAN LETTER TAR 10E3;AL # GEORGIAN LETTER UN 10E4;AL # GEORGIAN LETTER PHAR 10E5;AL # GEORGIAN LETTER KHAR 10E6;AL # GEORGIAN LETTER GHAN 10E7;AL # GEORGIAN LETTER QAR 10E8;AL # GEORGIAN LETTER SHIN 10E9;AL # GEORGIAN LETTER CHIN 10EA;AL # GEORGIAN LETTER CAN 10EB;AL # GEORGIAN LETTER JIL 10EC;AL # GEORGIAN LETTER CIL 10ED;AL # GEORGIAN LETTER CHAR 10EE;AL # GEORGIAN LETTER XAN 10EF;AL # GEORGIAN LETTER JHAN 10F0;AL # GEORGIAN LETTER HAE 10F1;AL # GEORGIAN LETTER HE 10F2;AL # GEORGIAN LETTER HIE 10F3;AL # GEORGIAN LETTER WE 10F4;AL # GEORGIAN LETTER HAR 10F5;AL # GEORGIAN LETTER HOE 10F6;AL # GEORGIAN LETTER FI 10F7;AL # GEORGIAN LETTER YN 10F8;AL # GEORGIAN LETTER ELIFI 10FB;AL # GEORGIAN PARAGRAPH SEPARATOR 1100;ID # HANGUL CHOSEONG KIYEOK 1101;ID # HANGUL CHOSEONG SSANGKIYEOK 1102;ID # HANGUL CHOSEONG NIEUN 1103;ID # HANGUL CHOSEONG TIKEUT 1104;ID # HANGUL CHOSEONG SSANGTIKEUT 1105;ID # HANGUL CHOSEONG RIEUL 1106;ID # HANGUL CHOSEONG MIEUM 1107;ID # HANGUL CHOSEONG PIEUP 1108;ID # HANGUL CHOSEONG SSANGPIEUP 1109;ID # HANGUL CHOSEONG SIOS 110A;ID # HANGUL CHOSEONG SSANGSIOS 110B;ID # HANGUL CHOSEONG IEUNG 110C;ID # HANGUL CHOSEONG CIEUC 110D;ID # HANGUL CHOSEONG SSANGCIEUC 110E;ID # HANGUL CHOSEONG CHIEUCH 110F;ID # HANGUL CHOSEONG KHIEUKH 1110;ID # HANGUL CHOSEONG THIEUTH 1111;ID # HANGUL CHOSEONG PHIEUPH 1112;ID # HANGUL CHOSEONG HIEUH 1113;ID # HANGUL CHOSEONG NIEUN-KIYEOK 1114;ID # HANGUL CHOSEONG SSANGNIEUN 1115;ID # HANGUL CHOSEONG NIEUN-TIKEUT 1116;ID # HANGUL CHOSEONG NIEUN-PIEUP 1117;ID # HANGUL CHOSEONG TIKEUT-KIYEOK 1118;ID # HANGUL CHOSEONG RIEUL-NIEUN 1119;ID # HANGUL CHOSEONG SSANGRIEUL 111A;ID # HANGUL CHOSEONG RIEUL-HIEUH 111B;ID # HANGUL CHOSEONG KAPYEOUNRIEUL 111C;ID # HANGUL CHOSEONG MIEUM-PIEUP 111D;ID # HANGUL CHOSEONG KAPYEOUNMIEUM 111E;ID # HANGUL CHOSEONG PIEUP-KIYEOK 111F;ID # HANGUL CHOSEONG PIEUP-NIEUN 1120;ID # HANGUL CHOSEONG PIEUP-TIKEUT 1121;ID # HANGUL CHOSEONG PIEUP-SIOS 1122;ID # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK 1123;ID # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT 1124;ID # HANGUL CHOSEONG PIEUP-SIOS-PIEUP 1125;ID # HANGUL CHOSEONG PIEUP-SSANGSIOS 1126;ID # HANGUL CHOSEONG PIEUP-SIOS-CIEUC 1127;ID # HANGUL CHOSEONG PIEUP-CIEUC 1128;ID # HANGUL CHOSEONG PIEUP-CHIEUCH 1129;ID # HANGUL CHOSEONG PIEUP-THIEUTH 112A;ID # HANGUL CHOSEONG PIEUP-PHIEUPH 112B;ID # HANGUL CHOSEONG KAPYEOUNPIEUP 112C;ID # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP 112D;ID # HANGUL CHOSEONG SIOS-KIYEOK 112E;ID # HANGUL CHOSEONG SIOS-NIEUN 112F;ID # HANGUL CHOSEONG SIOS-TIKEUT 1130;ID # HANGUL CHOSEONG SIOS-RIEUL 1131;ID # HANGUL CHOSEONG SIOS-MIEUM 1132;ID # HANGUL CHOSEONG SIOS-PIEUP 1133;ID # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK 1134;ID # HANGUL CHOSEONG SIOS-SSANGSIOS 1135;ID # HANGUL CHOSEONG SIOS-IEUNG 1136;ID # HANGUL CHOSEONG SIOS-CIEUC 1137;ID # HANGUL CHOSEONG SIOS-CHIEUCH 1138;ID # HANGUL CHOSEONG SIOS-KHIEUKH 1139;ID # HANGUL CHOSEONG SIOS-THIEUTH 113A;ID # HANGUL CHOSEONG SIOS-PHIEUPH 113B;ID # HANGUL CHOSEONG SIOS-HIEUH 113C;ID # HANGUL CHOSEONG CHITUEUMSIOS 113D;ID # HANGUL CHOSEONG CHITUEUMSSANGSIOS 113E;ID # HANGUL CHOSEONG CEONGCHIEUMSIOS 113F;ID # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS 1140;ID # HANGUL CHOSEONG PANSIOS 1141;ID # HANGUL CHOSEONG IEUNG-KIYEOK 1142;ID # HANGUL CHOSEONG IEUNG-TIKEUT 1143;ID # HANGUL CHOSEONG IEUNG-MIEUM 1144;ID # HANGUL CHOSEONG IEUNG-PIEUP 1145;ID # HANGUL CHOSEONG IEUNG-SIOS 1146;ID # HANGUL CHOSEONG IEUNG-PANSIOS 1147;ID # HANGUL CHOSEONG SSANGIEUNG 1148;ID # HANGUL CHOSEONG IEUNG-CIEUC 1149;ID # HANGUL CHOSEONG IEUNG-CHIEUCH 114A;ID # HANGUL CHOSEONG IEUNG-THIEUTH 114B;ID # HANGUL CHOSEONG IEUNG-PHIEUPH 114C;ID # HANGUL CHOSEONG YESIEUNG 114D;ID # HANGUL CHOSEONG CIEUC-IEUNG 114E;ID # HANGUL CHOSEONG CHITUEUMCIEUC 114F;ID # HANGUL CHOSEONG CHITUEUMSSANGCIEUC 1150;ID # HANGUL CHOSEONG CEONGCHIEUMCIEUC 1151;ID # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC 1152;ID # HANGUL CHOSEONG CHIEUCH-KHIEUKH 1153;ID # HANGUL CHOSEONG CHIEUCH-HIEUH 1154;ID # HANGUL CHOSEONG CHITUEUMCHIEUCH 1155;ID # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH 1156;ID # HANGUL CHOSEONG PHIEUPH-PIEUP 1157;ID # HANGUL CHOSEONG KAPYEOUNPHIEUPH 1158;ID # HANGUL CHOSEONG SSANGHIEUH 1159;ID # HANGUL CHOSEONG YEORINHIEUH 115F;ID # HANGUL CHOSEONG FILLER 1160;CM # HANGUL JUNGSEONG FILLER 1161;CM # HANGUL JUNGSEONG A 1162;CM # HANGUL JUNGSEONG AE 1163;CM # HANGUL JUNGSEONG YA 1164;CM # HANGUL JUNGSEONG YAE 1165;CM # HANGUL JUNGSEONG EO 1166;CM # HANGUL JUNGSEONG E 1167;CM # HANGUL JUNGSEONG YEO 1168;CM # HANGUL JUNGSEONG YE 1169;CM # HANGUL JUNGSEONG O 116A;CM # HANGUL JUNGSEONG WA 116B;CM # HANGUL JUNGSEONG WAE 116C;CM # HANGUL JUNGSEONG OE 116D;CM # HANGUL JUNGSEONG YO 116E;CM # HANGUL JUNGSEONG U 116F;CM # HANGUL JUNGSEONG WEO 1170;CM # HANGUL JUNGSEONG WE 1171;CM # HANGUL JUNGSEONG WI 1172;CM # HANGUL JUNGSEONG YU 1173;CM # HANGUL JUNGSEONG EU 1174;CM # HANGUL JUNGSEONG YI 1175;CM # HANGUL JUNGSEONG I 1176;CM # HANGUL JUNGSEONG A-O 1177;CM # HANGUL JUNGSEONG A-U 1178;CM # HANGUL JUNGSEONG YA-O 1179;CM # HANGUL JUNGSEONG YA-YO 117A;CM # HANGUL JUNGSEONG EO-O 117B;CM # HANGUL JUNGSEONG EO-U 117C;CM # HANGUL JUNGSEONG EO-EU 117D;CM # HANGUL JUNGSEONG YEO-O 117E;CM # HANGUL JUNGSEONG YEO-U 117F;CM # HANGUL JUNGSEONG O-EO 1180;CM # HANGUL JUNGSEONG O-E 1181;CM # HANGUL JUNGSEONG O-YE 1182;CM # HANGUL JUNGSEONG O-O 1183;CM # HANGUL JUNGSEONG O-U 1184;CM # HANGUL JUNGSEONG YO-YA 1185;CM # HANGUL JUNGSEONG YO-YAE 1186;CM # HANGUL JUNGSEONG YO-YEO 1187;CM # HANGUL JUNGSEONG YO-O 1188;CM # HANGUL JUNGSEONG YO-I 1189;CM # HANGUL JUNGSEONG U-A 118A;CM # HANGUL JUNGSEONG U-AE 118B;CM # HANGUL JUNGSEONG U-EO-EU 118C;CM # HANGUL JUNGSEONG U-YE 118D;CM # HANGUL JUNGSEONG U-U 118E;CM # HANGUL JUNGSEONG YU-A 118F;CM # HANGUL JUNGSEONG YU-EO 1190;CM # HANGUL JUNGSEONG YU-E 1191;CM # HANGUL JUNGSEONG YU-YEO 1192;CM # HANGUL JUNGSEONG YU-YE 1193;CM # HANGUL JUNGSEONG YU-U 1194;CM # HANGUL JUNGSEONG YU-I 1195;CM # HANGUL JUNGSEONG EU-U 1196;CM # HANGUL JUNGSEONG EU-EU 1197;CM # HANGUL JUNGSEONG YI-U 1198;CM # HANGUL JUNGSEONG I-A 1199;CM # HANGUL JUNGSEONG I-YA 119A;CM # HANGUL JUNGSEONG I-O 119B;CM # HANGUL JUNGSEONG I-U 119C;CM # HANGUL JUNGSEONG I-EU 119D;CM # HANGUL JUNGSEONG I-ARAEA 119E;CM # HANGUL JUNGSEONG ARAEA 119F;CM # HANGUL JUNGSEONG ARAEA-EO 11A0;CM # HANGUL JUNGSEONG ARAEA-U 11A1;CM # HANGUL JUNGSEONG ARAEA-I 11A2;CM # HANGUL JUNGSEONG SSANGARAEA 11A8;CM # HANGUL JONGSEONG KIYEOK 11A9;CM # HANGUL JONGSEONG SSANGKIYEOK 11AA;CM # HANGUL JONGSEONG KIYEOK-SIOS 11AB;CM # HANGUL JONGSEONG NIEUN 11AC;CM # HANGUL JONGSEONG NIEUN-CIEUC 11AD;CM # HANGUL JONGSEONG NIEUN-HIEUH 11AE;CM # HANGUL JONGSEONG TIKEUT 11AF;CM # HANGUL JONGSEONG RIEUL 11B0;CM # HANGUL JONGSEONG RIEUL-KIYEOK 11B1;CM # HANGUL JONGSEONG RIEUL-MIEUM 11B2;CM # HANGUL JONGSEONG RIEUL-PIEUP 11B3;CM # HANGUL JONGSEONG RIEUL-SIOS 11B4;CM # HANGUL JONGSEONG RIEUL-THIEUTH 11B5;CM # HANGUL JONGSEONG RIEUL-PHIEUPH 11B6;CM # HANGUL JONGSEONG RIEUL-HIEUH 11B7;CM # HANGUL JONGSEONG MIEUM 11B8;CM # HANGUL JONGSEONG PIEUP 11B9;CM # HANGUL JONGSEONG PIEUP-SIOS 11BA;CM # HANGUL JONGSEONG SIOS 11BB;CM # HANGUL JONGSEONG SSANGSIOS 11BC;CM # HANGUL JONGSEONG IEUNG 11BD;CM # HANGUL JONGSEONG CIEUC 11BE;CM # HANGUL JONGSEONG CHIEUCH 11BF;CM # HANGUL JONGSEONG KHIEUKH 11C0;CM # HANGUL JONGSEONG THIEUTH 11C1;CM # HANGUL JONGSEONG PHIEUPH 11C2;CM # HANGUL JONGSEONG HIEUH 11C3;CM # HANGUL JONGSEONG KIYEOK-RIEUL 11C4;CM # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK 11C5;CM # HANGUL JONGSEONG NIEUN-KIYEOK 11C6;CM # HANGUL JONGSEONG NIEUN-TIKEUT 11C7;CM # HANGUL JONGSEONG NIEUN-SIOS 11C8;CM # HANGUL JONGSEONG NIEUN-PANSIOS 11C9;CM # HANGUL JONGSEONG NIEUN-THIEUTH 11CA;CM # HANGUL JONGSEONG TIKEUT-KIYEOK 11CB;CM # HANGUL JONGSEONG TIKEUT-RIEUL 11CC;CM # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS 11CD;CM # HANGUL JONGSEONG RIEUL-NIEUN 11CE;CM # HANGUL JONGSEONG RIEUL-TIKEUT 11CF;CM # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH 11D0;CM # HANGUL JONGSEONG SSANGRIEUL 11D1;CM # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK 11D2;CM # HANGUL JONGSEONG RIEUL-MIEUM-SIOS 11D3;CM # HANGUL JONGSEONG RIEUL-PIEUP-SIOS 11D4;CM # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH 11D5;CM # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP 11D6;CM # HANGUL JONGSEONG RIEUL-SSANGSIOS 11D7;CM # HANGUL JONGSEONG RIEUL-PANSIOS 11D8;CM # HANGUL JONGSEONG RIEUL-KHIEUKH 11D9;CM # HANGUL JONGSEONG RIEUL-YEORINHIEUH 11DA;CM # HANGUL JONGSEONG MIEUM-KIYEOK 11DB;CM # HANGUL JONGSEONG MIEUM-RIEUL 11DC;CM # HANGUL JONGSEONG MIEUM-PIEUP 11DD;CM # HANGUL JONGSEONG MIEUM-SIOS 11DE;CM # HANGUL JONGSEONG MIEUM-SSANGSIOS 11DF;CM # HANGUL JONGSEONG MIEUM-PANSIOS 11E0;CM # HANGUL JONGSEONG MIEUM-CHIEUCH 11E1;CM # HANGUL JONGSEONG MIEUM-HIEUH 11E2;CM # HANGUL JONGSEONG KAPYEOUNMIEUM 11E3;CM # HANGUL JONGSEONG PIEUP-RIEUL 11E4;CM # HANGUL JONGSEONG PIEUP-PHIEUPH 11E5;CM # HANGUL JONGSEONG PIEUP-HIEUH 11E6;CM # HANGUL JONGSEONG KAPYEOUNPIEUP 11E7;CM # HANGUL JONGSEONG SIOS-KIYEOK 11E8;CM # HANGUL JONGSEONG SIOS-TIKEUT 11E9;CM # HANGUL JONGSEONG SIOS-RIEUL 11EA;CM # HANGUL JONGSEONG SIOS-PIEUP 11EB;CM # HANGUL JONGSEONG PANSIOS 11EC;CM # HANGUL JONGSEONG IEUNG-KIYEOK 11ED;CM # HANGUL JONGSEONG IEUNG-SSANGKIYEOK 11EE;CM # HANGUL JONGSEONG SSANGIEUNG 11EF;CM # HANGUL JONGSEONG IEUNG-KHIEUKH 11F0;CM # HANGUL JONGSEONG YESIEUNG 11F1;CM # HANGUL JONGSEONG YESIEUNG-SIOS 11F2;CM # HANGUL JONGSEONG YESIEUNG-PANSIOS 11F3;CM # HANGUL JONGSEONG PHIEUPH-PIEUP 11F4;CM # HANGUL JONGSEONG KAPYEOUNPHIEUPH 11F5;CM # HANGUL JONGSEONG HIEUH-NIEUN 11F6;CM # HANGUL JONGSEONG HIEUH-RIEUL 11F7;CM # HANGUL JONGSEONG HIEUH-MIEUM 11F8;CM # HANGUL JONGSEONG HIEUH-PIEUP 11F9;CM # HANGUL JONGSEONG YEORINHIEUH 1200;AL # ETHIOPIC SYLLABLE HA 1201;AL # ETHIOPIC SYLLABLE HU 1202;AL # ETHIOPIC SYLLABLE HI 1203;AL # ETHIOPIC SYLLABLE HAA 1204;AL # ETHIOPIC SYLLABLE HEE 1205;AL # ETHIOPIC SYLLABLE HE 1206;AL # ETHIOPIC SYLLABLE HO 1208;AL # ETHIOPIC SYLLABLE LA 1209;AL # ETHIOPIC SYLLABLE LU 120A;AL # ETHIOPIC SYLLABLE LI 120B;AL # ETHIOPIC SYLLABLE LAA 120C;AL # ETHIOPIC SYLLABLE LEE 120D;AL # ETHIOPIC SYLLABLE LE 120E;AL # ETHIOPIC SYLLABLE LO 120F;AL # ETHIOPIC SYLLABLE LWA 1210;AL # ETHIOPIC SYLLABLE HHA 1211;AL # ETHIOPIC SYLLABLE HHU 1212;AL # ETHIOPIC SYLLABLE HHI 1213;AL # ETHIOPIC SYLLABLE HHAA 1214;AL # ETHIOPIC SYLLABLE HHEE 1215;AL # ETHIOPIC SYLLABLE HHE 1216;AL # ETHIOPIC SYLLABLE HHO 1217;AL # ETHIOPIC SYLLABLE HHWA 1218;AL # ETHIOPIC SYLLABLE MA 1219;AL # ETHIOPIC SYLLABLE MU 121A;AL # ETHIOPIC SYLLABLE MI 121B;AL # ETHIOPIC SYLLABLE MAA 121C;AL # ETHIOPIC SYLLABLE MEE 121D;AL # ETHIOPIC SYLLABLE ME 121E;AL # ETHIOPIC SYLLABLE MO 121F;AL # ETHIOPIC SYLLABLE MWA 1220;AL # ETHIOPIC SYLLABLE SZA 1221;AL # ETHIOPIC SYLLABLE SZU 1222;AL # ETHIOPIC SYLLABLE SZI 1223;AL # ETHIOPIC SYLLABLE SZAA 1224;AL # ETHIOPIC SYLLABLE SZEE 1225;AL # ETHIOPIC SYLLABLE SZE 1226;AL # ETHIOPIC SYLLABLE SZO 1227;AL # ETHIOPIC SYLLABLE SZWA 1228;AL # ETHIOPIC SYLLABLE RA 1229;AL # ETHIOPIC SYLLABLE RU 122A;AL # ETHIOPIC SYLLABLE RI 122B;AL # ETHIOPIC SYLLABLE RAA 122C;AL # ETHIOPIC SYLLABLE REE 122D;AL # ETHIOPIC SYLLABLE RE 122E;AL # ETHIOPIC SYLLABLE RO 122F;AL # ETHIOPIC SYLLABLE RWA 1230;AL # ETHIOPIC SYLLABLE SA 1231;AL # ETHIOPIC SYLLABLE SU 1232;AL # ETHIOPIC SYLLABLE SI 1233;AL # ETHIOPIC SYLLABLE SAA 1234;AL # ETHIOPIC SYLLABLE SEE 1235;AL # ETHIOPIC SYLLABLE SE 1236;AL # ETHIOPIC SYLLABLE SO 1237;AL # ETHIOPIC SYLLABLE SWA 1238;AL # ETHIOPIC SYLLABLE SHA 1239;AL # ETHIOPIC SYLLABLE SHU 123A;AL # ETHIOPIC SYLLABLE SHI 123B;AL # ETHIOPIC SYLLABLE SHAA 123C;AL # ETHIOPIC SYLLABLE SHEE 123D;AL # ETHIOPIC SYLLABLE SHE 123E;AL # ETHIOPIC SYLLABLE SHO 123F;AL # ETHIOPIC SYLLABLE SHWA 1240;AL # ETHIOPIC SYLLABLE QA 1241;AL # ETHIOPIC SYLLABLE QU 1242;AL # ETHIOPIC SYLLABLE QI 1243;AL # ETHIOPIC SYLLABLE QAA 1244;AL # ETHIOPIC SYLLABLE QEE 1245;AL # ETHIOPIC SYLLABLE QE 1246;AL # ETHIOPIC SYLLABLE QO 1248;AL # ETHIOPIC SYLLABLE QWA 124A;AL # ETHIOPIC SYLLABLE QWI 124B;AL # ETHIOPIC SYLLABLE QWAA 124C;AL # ETHIOPIC SYLLABLE QWEE 124D;AL # ETHIOPIC SYLLABLE QWE 1250;AL # ETHIOPIC SYLLABLE QHA 1251;AL # ETHIOPIC SYLLABLE QHU 1252;AL # ETHIOPIC SYLLABLE QHI 1253;AL # ETHIOPIC SYLLABLE QHAA 1254;AL # ETHIOPIC SYLLABLE QHEE 1255;AL # ETHIOPIC SYLLABLE QHE 1256;AL # ETHIOPIC SYLLABLE QHO 1258;AL # ETHIOPIC SYLLABLE QHWA 125A;AL # ETHIOPIC SYLLABLE QHWI 125B;AL # ETHIOPIC SYLLABLE QHWAA 125C;AL # ETHIOPIC SYLLABLE QHWEE 125D;AL # ETHIOPIC SYLLABLE QHWE 1260;AL # ETHIOPIC SYLLABLE BA 1261;AL # ETHIOPIC SYLLABLE BU 1262;AL # ETHIOPIC SYLLABLE BI 1263;AL # ETHIOPIC SYLLABLE BAA 1264;AL # ETHIOPIC SYLLABLE BEE 1265;AL # ETHIOPIC SYLLABLE BE 1266;AL # ETHIOPIC SYLLABLE BO 1267;AL # ETHIOPIC SYLLABLE BWA 1268;AL # ETHIOPIC SYLLABLE VA 1269;AL # ETHIOPIC SYLLABLE VU 126A;AL # ETHIOPIC SYLLABLE VI 126B;AL # ETHIOPIC SYLLABLE VAA 126C;AL # ETHIOPIC SYLLABLE VEE 126D;AL # ETHIOPIC SYLLABLE VE 126E;AL # ETHIOPIC SYLLABLE VO 126F;AL # ETHIOPIC SYLLABLE VWA 1270;AL # ETHIOPIC SYLLABLE TA 1271;AL # ETHIOPIC SYLLABLE TU 1272;AL # ETHIOPIC SYLLABLE TI 1273;AL # ETHIOPIC SYLLABLE TAA 1274;AL # ETHIOPIC SYLLABLE TEE 1275;AL # ETHIOPIC SYLLABLE TE 1276;AL # ETHIOPIC SYLLABLE TO 1277;AL # ETHIOPIC SYLLABLE TWA 1278;AL # ETHIOPIC SYLLABLE CA 1279;AL # ETHIOPIC SYLLABLE CU 127A;AL # ETHIOPIC SYLLABLE CI 127B;AL # ETHIOPIC SYLLABLE CAA 127C;AL # ETHIOPIC SYLLABLE CEE 127D;AL # ETHIOPIC SYLLABLE CE 127E;AL # ETHIOPIC SYLLABLE CO 127F;AL # ETHIOPIC SYLLABLE CWA 1280;AL # ETHIOPIC SYLLABLE XA 1281;AL # ETHIOPIC SYLLABLE XU 1282;AL # ETHIOPIC SYLLABLE XI 1283;AL # ETHIOPIC SYLLABLE XAA 1284;AL # ETHIOPIC SYLLABLE XEE 1285;AL # ETHIOPIC SYLLABLE XE 1286;AL # ETHIOPIC SYLLABLE XO 1288;AL # ETHIOPIC SYLLABLE XWA 128A;AL # ETHIOPIC SYLLABLE XWI 128B;AL # ETHIOPIC SYLLABLE XWAA 128C;AL # ETHIOPIC SYLLABLE XWEE 128D;AL # ETHIOPIC SYLLABLE XWE 1290;AL # ETHIOPIC SYLLABLE NA 1291;AL # ETHIOPIC SYLLABLE NU 1292;AL # ETHIOPIC SYLLABLE NI 1293;AL # ETHIOPIC SYLLABLE NAA 1294;AL # ETHIOPIC SYLLABLE NEE 1295;AL # ETHIOPIC SYLLABLE NE 1296;AL # ETHIOPIC SYLLABLE NO 1297;AL # ETHIOPIC SYLLABLE NWA 1298;AL # ETHIOPIC SYLLABLE NYA 1299;AL # ETHIOPIC SYLLABLE NYU 129A;AL # ETHIOPIC SYLLABLE NYI 129B;AL # ETHIOPIC SYLLABLE NYAA 129C;AL # ETHIOPIC SYLLABLE NYEE 129D;AL # ETHIOPIC SYLLABLE NYE 129E;AL # ETHIOPIC SYLLABLE NYO 129F;AL # ETHIOPIC SYLLABLE NYWA 12A0;AL # ETHIOPIC SYLLABLE GLOTTAL A 12A1;AL # ETHIOPIC SYLLABLE GLOTTAL U 12A2;AL # ETHIOPIC SYLLABLE GLOTTAL I 12A3;AL # ETHIOPIC SYLLABLE GLOTTAL AA 12A4;AL # ETHIOPIC SYLLABLE GLOTTAL EE 12A5;AL # ETHIOPIC SYLLABLE GLOTTAL E 12A6;AL # ETHIOPIC SYLLABLE GLOTTAL O 12A7;AL # ETHIOPIC SYLLABLE GLOTTAL WA 12A8;AL # ETHIOPIC SYLLABLE KA 12A9;AL # ETHIOPIC SYLLABLE KU 12AA;AL # ETHIOPIC SYLLABLE KI 12AB;AL # ETHIOPIC SYLLABLE KAA 12AC;AL # ETHIOPIC SYLLABLE KEE 12AD;AL # ETHIOPIC SYLLABLE KE 12AE;AL # ETHIOPIC SYLLABLE KO 12B0;AL # ETHIOPIC SYLLABLE KWA 12B2;AL # ETHIOPIC SYLLABLE KWI 12B3;AL # ETHIOPIC SYLLABLE KWAA 12B4;AL # ETHIOPIC SYLLABLE KWEE 12B5;AL # ETHIOPIC SYLLABLE KWE 12B8;AL # ETHIOPIC SYLLABLE KXA 12B9;AL # ETHIOPIC SYLLABLE KXU 12BA;AL # ETHIOPIC SYLLABLE KXI 12BB;AL # ETHIOPIC SYLLABLE KXAA 12BC;AL # ETHIOPIC SYLLABLE KXEE 12BD;AL # ETHIOPIC SYLLABLE KXE 12BE;AL # ETHIOPIC SYLLABLE KXO 12C0;AL # ETHIOPIC SYLLABLE KXWA 12C2;AL # ETHIOPIC SYLLABLE KXWI 12C3;AL # ETHIOPIC SYLLABLE KXWAA 12C4;AL # ETHIOPIC SYLLABLE KXWEE 12C5;AL # ETHIOPIC SYLLABLE KXWE 12C8;AL # ETHIOPIC SYLLABLE WA 12C9;AL # ETHIOPIC SYLLABLE WU 12CA;AL # ETHIOPIC SYLLABLE WI 12CB;AL # ETHIOPIC SYLLABLE WAA 12CC;AL # ETHIOPIC SYLLABLE WEE 12CD;AL # ETHIOPIC SYLLABLE WE 12CE;AL # ETHIOPIC SYLLABLE WO 12D0;AL # ETHIOPIC SYLLABLE PHARYNGEAL A 12D1;AL # ETHIOPIC SYLLABLE PHARYNGEAL U 12D2;AL # ETHIOPIC SYLLABLE PHARYNGEAL I 12D3;AL # ETHIOPIC SYLLABLE PHARYNGEAL AA 12D4;AL # ETHIOPIC SYLLABLE PHARYNGEAL EE 12D5;AL # ETHIOPIC SYLLABLE PHARYNGEAL E 12D6;AL # ETHIOPIC SYLLABLE PHARYNGEAL O 12D8;AL # ETHIOPIC SYLLABLE ZA 12D9;AL # ETHIOPIC SYLLABLE ZU 12DA;AL # ETHIOPIC SYLLABLE ZI 12DB;AL # ETHIOPIC SYLLABLE ZAA 12DC;AL # ETHIOPIC SYLLABLE ZEE 12DD;AL # ETHIOPIC SYLLABLE ZE 12DE;AL # ETHIOPIC SYLLABLE ZO 12DF;AL # ETHIOPIC SYLLABLE ZWA 12E0;AL # ETHIOPIC SYLLABLE ZHA 12E1;AL # ETHIOPIC SYLLABLE ZHU 12E2;AL # ETHIOPIC SYLLABLE ZHI 12E3;AL # ETHIOPIC SYLLABLE ZHAA 12E4;AL # ETHIOPIC SYLLABLE ZHEE 12E5;AL # ETHIOPIC SYLLABLE ZHE 12E6;AL # ETHIOPIC SYLLABLE ZHO 12E7;AL # ETHIOPIC SYLLABLE ZHWA 12E8;AL # ETHIOPIC SYLLABLE YA 12E9;AL # ETHIOPIC SYLLABLE YU 12EA;AL # ETHIOPIC SYLLABLE YI 12EB;AL # ETHIOPIC SYLLABLE YAA 12EC;AL # ETHIOPIC SYLLABLE YEE 12ED;AL # ETHIOPIC SYLLABLE YE 12EE;AL # ETHIOPIC SYLLABLE YO 12F0;AL # ETHIOPIC SYLLABLE DA 12F1;AL # ETHIOPIC SYLLABLE DU 12F2;AL # ETHIOPIC SYLLABLE DI 12F3;AL # ETHIOPIC SYLLABLE DAA 12F4;AL # ETHIOPIC SYLLABLE DEE 12F5;AL # ETHIOPIC SYLLABLE DE 12F6;AL # ETHIOPIC SYLLABLE DO 12F7;AL # ETHIOPIC SYLLABLE DWA 12F8;AL # ETHIOPIC SYLLABLE DDA 12F9;AL # ETHIOPIC SYLLABLE DDU 12FA;AL # ETHIOPIC SYLLABLE DDI 12FB;AL # ETHIOPIC SYLLABLE DDAA 12FC;AL # ETHIOPIC SYLLABLE DDEE 12FD;AL # ETHIOPIC SYLLABLE DDE 12FE;AL # ETHIOPIC SYLLABLE DDO 12FF;AL # ETHIOPIC SYLLABLE DDWA 1300;AL # ETHIOPIC SYLLABLE JA 1301;AL # ETHIOPIC SYLLABLE JU 1302;AL # ETHIOPIC SYLLABLE JI 1303;AL # ETHIOPIC SYLLABLE JAA 1304;AL # ETHIOPIC SYLLABLE JEE 1305;AL # ETHIOPIC SYLLABLE JE 1306;AL # ETHIOPIC SYLLABLE JO 1307;AL # ETHIOPIC SYLLABLE JWA 1308;AL # ETHIOPIC SYLLABLE GA 1309;AL # ETHIOPIC SYLLABLE GU 130A;AL # ETHIOPIC SYLLABLE GI 130B;AL # ETHIOPIC SYLLABLE GAA 130C;AL # ETHIOPIC SYLLABLE GEE 130D;AL # ETHIOPIC SYLLABLE GE 130E;AL # ETHIOPIC SYLLABLE GO 1310;AL # ETHIOPIC SYLLABLE GWA 1312;AL # ETHIOPIC SYLLABLE GWI 1313;AL # ETHIOPIC SYLLABLE GWAA 1314;AL # ETHIOPIC SYLLABLE GWEE 1315;AL # ETHIOPIC SYLLABLE GWE 1318;AL # ETHIOPIC SYLLABLE GGA 1319;AL # ETHIOPIC SYLLABLE GGU 131A;AL # ETHIOPIC SYLLABLE GGI 131B;AL # ETHIOPIC SYLLABLE GGAA 131C;AL # ETHIOPIC SYLLABLE GGEE 131D;AL # ETHIOPIC SYLLABLE GGE 131E;AL # ETHIOPIC SYLLABLE GGO 1320;AL # ETHIOPIC SYLLABLE THA 1321;AL # ETHIOPIC SYLLABLE THU 1322;AL # ETHIOPIC SYLLABLE THI 1323;AL # ETHIOPIC SYLLABLE THAA 1324;AL # ETHIOPIC SYLLABLE THEE 1325;AL # ETHIOPIC SYLLABLE THE 1326;AL # ETHIOPIC SYLLABLE THO 1327;AL # ETHIOPIC SYLLABLE THWA 1328;AL # ETHIOPIC SYLLABLE CHA 1329;AL # ETHIOPIC SYLLABLE CHU 132A;AL # ETHIOPIC SYLLABLE CHI 132B;AL # ETHIOPIC SYLLABLE CHAA 132C;AL # ETHIOPIC SYLLABLE CHEE 132D;AL # ETHIOPIC SYLLABLE CHE 132E;AL # ETHIOPIC SYLLABLE CHO 132F;AL # ETHIOPIC SYLLABLE CHWA 1330;AL # ETHIOPIC SYLLABLE PHA 1331;AL # ETHIOPIC SYLLABLE PHU 1332;AL # ETHIOPIC SYLLABLE PHI 1333;AL # ETHIOPIC SYLLABLE PHAA 1334;AL # ETHIOPIC SYLLABLE PHEE 1335;AL # ETHIOPIC SYLLABLE PHE 1336;AL # ETHIOPIC SYLLABLE PHO 1337;AL # ETHIOPIC SYLLABLE PHWA 1338;AL # ETHIOPIC SYLLABLE TSA 1339;AL # ETHIOPIC SYLLABLE TSU 133A;AL # ETHIOPIC SYLLABLE TSI 133B;AL # ETHIOPIC SYLLABLE TSAA 133C;AL # ETHIOPIC SYLLABLE TSEE 133D;AL # ETHIOPIC SYLLABLE TSE 133E;AL # ETHIOPIC SYLLABLE TSO 133F;AL # ETHIOPIC SYLLABLE TSWA 1340;AL # ETHIOPIC SYLLABLE TZA 1341;AL # ETHIOPIC SYLLABLE TZU 1342;AL # ETHIOPIC SYLLABLE TZI 1343;AL # ETHIOPIC SYLLABLE TZAA 1344;AL # ETHIOPIC SYLLABLE TZEE 1345;AL # ETHIOPIC SYLLABLE TZE 1346;AL # ETHIOPIC SYLLABLE TZO 1348;AL # ETHIOPIC SYLLABLE FA 1349;AL # ETHIOPIC SYLLABLE FU 134A;AL # ETHIOPIC SYLLABLE FI 134B;AL # ETHIOPIC SYLLABLE FAA 134C;AL # ETHIOPIC SYLLABLE FEE 134D;AL # ETHIOPIC SYLLABLE FE 134E;AL # ETHIOPIC SYLLABLE FO 134F;AL # ETHIOPIC SYLLABLE FWA 1350;AL # ETHIOPIC SYLLABLE PA 1351;AL # ETHIOPIC SYLLABLE PU 1352;AL # ETHIOPIC SYLLABLE PI 1353;AL # ETHIOPIC SYLLABLE PAA 1354;AL # ETHIOPIC SYLLABLE PEE 1355;AL # ETHIOPIC SYLLABLE PE 1356;AL # ETHIOPIC SYLLABLE PO 1357;AL # ETHIOPIC SYLLABLE PWA 1358;AL # ETHIOPIC SYLLABLE RYA 1359;AL # ETHIOPIC SYLLABLE MYA 135A;AL # ETHIOPIC SYLLABLE FYA 1361;BA # ETHIOPIC WORDSPACE 1362;AL # ETHIOPIC FULL STOP 1363;AL # ETHIOPIC COMMA 1364;AL # ETHIOPIC SEMICOLON 1365;AL # ETHIOPIC COLON 1366;AL # ETHIOPIC PREFACE COLON 1367;AL # ETHIOPIC QUESTION MARK 1368;AL # ETHIOPIC PARAGRAPH SEPARATOR 1369;NU # ETHIOPIC DIGIT ONE 136A;NU # ETHIOPIC DIGIT TWO 136B;NU # ETHIOPIC DIGIT THREE 136C;NU # ETHIOPIC DIGIT FOUR 136D;NU # ETHIOPIC DIGIT FIVE 136E;NU # ETHIOPIC DIGIT SIX 136F;NU # ETHIOPIC DIGIT SEVEN 1370;NU # ETHIOPIC DIGIT EIGHT 1371;NU # ETHIOPIC DIGIT NINE 1372;AL # ETHIOPIC NUMBER TEN 1373;AL # ETHIOPIC NUMBER TWENTY 1374;AL # ETHIOPIC NUMBER THIRTY 1375;AL # ETHIOPIC NUMBER FORTY 1376;AL # ETHIOPIC NUMBER FIFTY 1377;AL # ETHIOPIC NUMBER SIXTY 1378;AL # ETHIOPIC NUMBER SEVENTY 1379;AL # ETHIOPIC NUMBER EIGHTY 137A;AL # ETHIOPIC NUMBER NINETY 137B;AL # ETHIOPIC NUMBER HUNDRED 137C;AL # ETHIOPIC NUMBER TEN THOUSAND 13A0;AL # CHEROKEE LETTER A 13A1;AL # CHEROKEE LETTER E 13A2;AL # CHEROKEE LETTER I 13A3;AL # CHEROKEE LETTER O 13A4;AL # CHEROKEE LETTER U 13A5;AL # CHEROKEE LETTER V 13A6;AL # CHEROKEE LETTER GA 13A7;AL # CHEROKEE LETTER KA 13A8;AL # CHEROKEE LETTER GE 13A9;AL # CHEROKEE LETTER GI 13AA;AL # CHEROKEE LETTER GO 13AB;AL # CHEROKEE LETTER GU 13AC;AL # CHEROKEE LETTER GV 13AD;AL # CHEROKEE LETTER HA 13AE;AL # CHEROKEE LETTER HE 13AF;AL # CHEROKEE LETTER HI 13B0;AL # CHEROKEE LETTER HO 13B1;AL # CHEROKEE LETTER HU 13B2;AL # CHEROKEE LETTER HV 13B3;AL # CHEROKEE LETTER LA 13B4;AL # CHEROKEE LETTER LE 13B5;AL # CHEROKEE LETTER LI 13B6;AL # CHEROKEE LETTER LO 13B7;AL # CHEROKEE LETTER LU 13B8;AL # CHEROKEE LETTER LV 13B9;AL # CHEROKEE LETTER MA 13BA;AL # CHEROKEE LETTER ME 13BB;AL # CHEROKEE LETTER MI 13BC;AL # CHEROKEE LETTER MO 13BD;AL # CHEROKEE LETTER MU 13BE;AL # CHEROKEE LETTER NA 13BF;AL # CHEROKEE LETTER HNA 13C0;AL # CHEROKEE LETTER NAH 13C1;AL # CHEROKEE LETTER NE 13C2;AL # CHEROKEE LETTER NI 13C3;AL # CHEROKEE LETTER NO 13C4;AL # CHEROKEE LETTER NU 13C5;AL # CHEROKEE LETTER NV 13C6;AL # CHEROKEE LETTER QUA 13C7;AL # CHEROKEE LETTER QUE 13C8;AL # CHEROKEE LETTER QUI 13C9;AL # CHEROKEE LETTER QUO 13CA;AL # CHEROKEE LETTER QUU 13CB;AL # CHEROKEE LETTER QUV 13CC;AL # CHEROKEE LETTER SA 13CD;AL # CHEROKEE LETTER S 13CE;AL # CHEROKEE LETTER SE 13CF;AL # CHEROKEE LETTER SI 13D0;AL # CHEROKEE LETTER SO 13D1;AL # CHEROKEE LETTER SU 13D2;AL # CHEROKEE LETTER SV 13D3;AL # CHEROKEE LETTER DA 13D4;AL # CHEROKEE LETTER TA 13D5;AL # CHEROKEE LETTER DE 13D6;AL # CHEROKEE LETTER TE 13D7;AL # CHEROKEE LETTER DI 13D8;AL # CHEROKEE LETTER TI 13D9;AL # CHEROKEE LETTER DO 13DA;AL # CHEROKEE LETTER DU 13DB;AL # CHEROKEE LETTER DV 13DC;AL # CHEROKEE LETTER DLA 13DD;AL # CHEROKEE LETTER TLA 13DE;AL # CHEROKEE LETTER TLE 13DF;AL # CHEROKEE LETTER TLI 13E0;AL # CHEROKEE LETTER TLO 13E1;AL # CHEROKEE LETTER TLU 13E2;AL # CHEROKEE LETTER TLV 13E3;AL # CHEROKEE LETTER TSA 13E4;AL # CHEROKEE LETTER TSE 13E5;AL # CHEROKEE LETTER TSI 13E6;AL # CHEROKEE LETTER TSO 13E7;AL # CHEROKEE LETTER TSU 13E8;AL # CHEROKEE LETTER TSV 13E9;AL # CHEROKEE LETTER WA 13EA;AL # CHEROKEE LETTER WE 13EB;AL # CHEROKEE LETTER WI 13EC;AL # CHEROKEE LETTER WO 13ED;AL # CHEROKEE LETTER WU 13EE;AL # CHEROKEE LETTER WV 13EF;AL # CHEROKEE LETTER YA 13F0;AL # CHEROKEE LETTER YE 13F1;AL # CHEROKEE LETTER YI 13F2;AL # CHEROKEE LETTER YO 13F3;AL # CHEROKEE LETTER YU 13F4;AL # CHEROKEE LETTER YV 1401;AL # CANADIAN SYLLABICS E 1402;AL # CANADIAN SYLLABICS AAI 1403;AL # CANADIAN SYLLABICS I 1404;AL # CANADIAN SYLLABICS II 1405;AL # CANADIAN SYLLABICS O 1406;AL # CANADIAN SYLLABICS OO 1407;AL # CANADIAN SYLLABICS Y-CREE OO 1408;AL # CANADIAN SYLLABICS CARRIER EE 1409;AL # CANADIAN SYLLABICS CARRIER I 140A;AL # CANADIAN SYLLABICS A 140B;AL # CANADIAN SYLLABICS AA 140C;AL # CANADIAN SYLLABICS WE 140D;AL # CANADIAN SYLLABICS WEST-CREE WE 140E;AL # CANADIAN SYLLABICS WI 140F;AL # CANADIAN SYLLABICS WEST-CREE WI 1410;AL # CANADIAN SYLLABICS WII 1411;AL # CANADIAN SYLLABICS WEST-CREE WII 1412;AL # CANADIAN SYLLABICS WO 1413;AL # CANADIAN SYLLABICS WEST-CREE WO 1414;AL # CANADIAN SYLLABICS WOO 1415;AL # CANADIAN SYLLABICS WEST-CREE WOO 1416;AL # CANADIAN SYLLABICS NASKAPI WOO 1417;AL # CANADIAN SYLLABICS WA 1418;AL # CANADIAN SYLLABICS WEST-CREE WA 1419;AL # CANADIAN SYLLABICS WAA 141A;AL # CANADIAN SYLLABICS WEST-CREE WAA 141B;AL # CANADIAN SYLLABICS NASKAPI WAA 141C;AL # CANADIAN SYLLABICS AI 141D;AL # CANADIAN SYLLABICS Y-CREE W 141E;AL # CANADIAN SYLLABICS GLOTTAL STOP 141F;AL # CANADIAN SYLLABICS FINAL ACUTE 1420;AL # CANADIAN SYLLABICS FINAL GRAVE 1421;AL # CANADIAN SYLLABICS FINAL BOTTOM HALF RING 1422;AL # CANADIAN SYLLABICS FINAL TOP HALF RING 1423;AL # CANADIAN SYLLABICS FINAL RIGHT HALF RING 1424;AL # CANADIAN SYLLABICS FINAL RING 1425;AL # CANADIAN SYLLABICS FINAL DOUBLE ACUTE 1426;AL # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES 1427;AL # CANADIAN SYLLABICS FINAL MIDDLE DOT 1428;AL # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE 1429;AL # CANADIAN SYLLABICS FINAL PLUS 142A;AL # CANADIAN SYLLABICS FINAL DOWN TACK 142B;AL # CANADIAN SYLLABICS EN 142C;AL # CANADIAN SYLLABICS IN 142D;AL # CANADIAN SYLLABICS ON 142E;AL # CANADIAN SYLLABICS AN 142F;AL # CANADIAN SYLLABICS PE 1430;AL # CANADIAN SYLLABICS PAAI 1431;AL # CANADIAN SYLLABICS PI 1432;AL # CANADIAN SYLLABICS PII 1433;AL # CANADIAN SYLLABICS PO 1434;AL # CANADIAN SYLLABICS POO 1435;AL # CANADIAN SYLLABICS Y-CREE POO 1436;AL # CANADIAN SYLLABICS CARRIER HEE 1437;AL # CANADIAN SYLLABICS CARRIER HI 1438;AL # CANADIAN SYLLABICS PA 1439;AL # CANADIAN SYLLABICS PAA 143A;AL # CANADIAN SYLLABICS PWE 143B;AL # CANADIAN SYLLABICS WEST-CREE PWE 143C;AL # CANADIAN SYLLABICS PWI 143D;AL # CANADIAN SYLLABICS WEST-CREE PWI 143E;AL # CANADIAN SYLLABICS PWII 143F;AL # CANADIAN SYLLABICS WEST-CREE PWII 1440;AL # CANADIAN SYLLABICS PWO 1441;AL # CANADIAN SYLLABICS WEST-CREE PWO 1442;AL # CANADIAN SYLLABICS PWOO 1443;AL # CANADIAN SYLLABICS WEST-CREE PWOO 1444;AL # CANADIAN SYLLABICS PWA 1445;AL # CANADIAN SYLLABICS WEST-CREE PWA 1446;AL # CANADIAN SYLLABICS PWAA 1447;AL # CANADIAN SYLLABICS WEST-CREE PWAA 1448;AL # CANADIAN SYLLABICS Y-CREE PWAA 1449;AL # CANADIAN SYLLABICS P 144A;AL # CANADIAN SYLLABICS WEST-CREE P 144B;AL # CANADIAN SYLLABICS CARRIER H 144C;AL # CANADIAN SYLLABICS TE 144D;AL # CANADIAN SYLLABICS TAAI 144E;AL # CANADIAN SYLLABICS TI 144F;AL # CANADIAN SYLLABICS TII 1450;AL # CANADIAN SYLLABICS TO 1451;AL # CANADIAN SYLLABICS TOO 1452;AL # CANADIAN SYLLABICS Y-CREE TOO 1453;AL # CANADIAN SYLLABICS CARRIER DEE 1454;AL # CANADIAN SYLLABICS CARRIER DI 1455;AL # CANADIAN SYLLABICS TA 1456;AL # CANADIAN SYLLABICS TAA 1457;AL # CANADIAN SYLLABICS TWE 1458;AL # CANADIAN SYLLABICS WEST-CREE TWE 1459;AL # CANADIAN SYLLABICS TWI 145A;AL # CANADIAN SYLLABICS WEST-CREE TWI 145B;AL # CANADIAN SYLLABICS TWII 145C;AL # CANADIAN SYLLABICS WEST-CREE TWII 145D;AL # CANADIAN SYLLABICS TWO 145E;AL # CANADIAN SYLLABICS WEST-CREE TWO 145F;AL # CANADIAN SYLLABICS TWOO 1460;AL # CANADIAN SYLLABICS WEST-CREE TWOO 1461;AL # CANADIAN SYLLABICS TWA 1462;AL # CANADIAN SYLLABICS WEST-CREE TWA 1463;AL # CANADIAN SYLLABICS TWAA 1464;AL # CANADIAN SYLLABICS WEST-CREE TWAA 1465;AL # CANADIAN SYLLABICS NASKAPI TWAA 1466;AL # CANADIAN SYLLABICS T 1467;AL # CANADIAN SYLLABICS TTE 1468;AL # CANADIAN SYLLABICS TTI 1469;AL # CANADIAN SYLLABICS TTO 146A;AL # CANADIAN SYLLABICS TTA 146B;AL # CANADIAN SYLLABICS KE 146C;AL # CANADIAN SYLLABICS KAAI 146D;AL # CANADIAN SYLLABICS KI 146E;AL # CANADIAN SYLLABICS KII 146F;AL # CANADIAN SYLLABICS KO 1470;AL # CANADIAN SYLLABICS KOO 1471;AL # CANADIAN SYLLABICS Y-CREE KOO 1472;AL # CANADIAN SYLLABICS KA 1473;AL # CANADIAN SYLLABICS KAA 1474;AL # CANADIAN SYLLABICS KWE 1475;AL # CANADIAN SYLLABICS WEST-CREE KWE 1476;AL # CANADIAN SYLLABICS KWI 1477;AL # CANADIAN SYLLABICS WEST-CREE KWI 1478;AL # CANADIAN SYLLABICS KWII 1479;AL # CANADIAN SYLLABICS WEST-CREE KWII 147A;AL # CANADIAN SYLLABICS KWO 147B;AL # CANADIAN SYLLABICS WEST-CREE KWO 147C;AL # CANADIAN SYLLABICS KWOO 147D;AL # CANADIAN SYLLABICS WEST-CREE KWOO 147E;AL # CANADIAN SYLLABICS KWA 147F;AL # CANADIAN SYLLABICS WEST-CREE KWA 1480;AL # CANADIAN SYLLABICS KWAA 1481;AL # CANADIAN SYLLABICS WEST-CREE KWAA 1482;AL # CANADIAN SYLLABICS NASKAPI KWAA 1483;AL # CANADIAN SYLLABICS K 1484;AL # CANADIAN SYLLABICS KW 1485;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KEH 1486;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KIH 1487;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KOH 1488;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KAH 1489;AL # CANADIAN SYLLABICS CE 148A;AL # CANADIAN SYLLABICS CAAI 148B;AL # CANADIAN SYLLABICS CI 148C;AL # CANADIAN SYLLABICS CII 148D;AL # CANADIAN SYLLABICS CO 148E;AL # CANADIAN SYLLABICS COO 148F;AL # CANADIAN SYLLABICS Y-CREE COO 1490;AL # CANADIAN SYLLABICS CA 1491;AL # CANADIAN SYLLABICS CAA 1492;AL # CANADIAN SYLLABICS CWE 1493;AL # CANADIAN SYLLABICS WEST-CREE CWE 1494;AL # CANADIAN SYLLABICS CWI 1495;AL # CANADIAN SYLLABICS WEST-CREE CWI 1496;AL # CANADIAN SYLLABICS CWII 1497;AL # CANADIAN SYLLABICS WEST-CREE CWII 1498;AL # CANADIAN SYLLABICS CWO 1499;AL # CANADIAN SYLLABICS WEST-CREE CWO 149A;AL # CANADIAN SYLLABICS CWOO 149B;AL # CANADIAN SYLLABICS WEST-CREE CWOO 149C;AL # CANADIAN SYLLABICS CWA 149D;AL # CANADIAN SYLLABICS WEST-CREE CWA 149E;AL # CANADIAN SYLLABICS CWAA 149F;AL # CANADIAN SYLLABICS WEST-CREE CWAA 14A0;AL # CANADIAN SYLLABICS NASKAPI CWAA 14A1;AL # CANADIAN SYLLABICS C 14A2;AL # CANADIAN SYLLABICS SAYISI TH 14A3;AL # CANADIAN SYLLABICS ME 14A4;AL # CANADIAN SYLLABICS MAAI 14A5;AL # CANADIAN SYLLABICS MI 14A6;AL # CANADIAN SYLLABICS MII 14A7;AL # CANADIAN SYLLABICS MO 14A8;AL # CANADIAN SYLLABICS MOO 14A9;AL # CANADIAN SYLLABICS Y-CREE MOO 14AA;AL # CANADIAN SYLLABICS MA 14AB;AL # CANADIAN SYLLABICS MAA 14AC;AL # CANADIAN SYLLABICS MWE 14AD;AL # CANADIAN SYLLABICS WEST-CREE MWE 14AE;AL # CANADIAN SYLLABICS MWI 14AF;AL # CANADIAN SYLLABICS WEST-CREE MWI 14B0;AL # CANADIAN SYLLABICS MWII 14B1;AL # CANADIAN SYLLABICS WEST-CREE MWII 14B2;AL # CANADIAN SYLLABICS MWO 14B3;AL # CANADIAN SYLLABICS WEST-CREE MWO 14B4;AL # CANADIAN SYLLABICS MWOO 14B5;AL # CANADIAN SYLLABICS WEST-CREE MWOO 14B6;AL # CANADIAN SYLLABICS MWA 14B7;AL # CANADIAN SYLLABICS WEST-CREE MWA 14B8;AL # CANADIAN SYLLABICS MWAA 14B9;AL # CANADIAN SYLLABICS WEST-CREE MWAA 14BA;AL # CANADIAN SYLLABICS NASKAPI MWAA 14BB;AL # CANADIAN SYLLABICS M 14BC;AL # CANADIAN SYLLABICS WEST-CREE M 14BD;AL # CANADIAN SYLLABICS MH 14BE;AL # CANADIAN SYLLABICS ATHAPASCAN M 14BF;AL # CANADIAN SYLLABICS SAYISI M 14C0;AL # CANADIAN SYLLABICS NE 14C1;AL # CANADIAN SYLLABICS NAAI 14C2;AL # CANADIAN SYLLABICS NI 14C3;AL # CANADIAN SYLLABICS NII 14C4;AL # CANADIAN SYLLABICS NO 14C5;AL # CANADIAN SYLLABICS NOO 14C6;AL # CANADIAN SYLLABICS Y-CREE NOO 14C7;AL # CANADIAN SYLLABICS NA 14C8;AL # CANADIAN SYLLABICS NAA 14C9;AL # CANADIAN SYLLABICS NWE 14CA;AL # CANADIAN SYLLABICS WEST-CREE NWE 14CB;AL # CANADIAN SYLLABICS NWA 14CC;AL # CANADIAN SYLLABICS WEST-CREE NWA 14CD;AL # CANADIAN SYLLABICS NWAA 14CE;AL # CANADIAN SYLLABICS WEST-CREE NWAA 14CF;AL # CANADIAN SYLLABICS NASKAPI NWAA 14D0;AL # CANADIAN SYLLABICS N 14D1;AL # CANADIAN SYLLABICS CARRIER NG 14D2;AL # CANADIAN SYLLABICS NH 14D3;AL # CANADIAN SYLLABICS LE 14D4;AL # CANADIAN SYLLABICS LAAI 14D5;AL # CANADIAN SYLLABICS LI 14D6;AL # CANADIAN SYLLABICS LII 14D7;AL # CANADIAN SYLLABICS LO 14D8;AL # CANADIAN SYLLABICS LOO 14D9;AL # CANADIAN SYLLABICS Y-CREE LOO 14DA;AL # CANADIAN SYLLABICS LA 14DB;AL # CANADIAN SYLLABICS LAA 14DC;AL # CANADIAN SYLLABICS LWE 14DD;AL # CANADIAN SYLLABICS WEST-CREE LWE 14DE;AL # CANADIAN SYLLABICS LWI 14DF;AL # CANADIAN SYLLABICS WEST-CREE LWI 14E0;AL # CANADIAN SYLLABICS LWII 14E1;AL # CANADIAN SYLLABICS WEST-CREE LWII 14E2;AL # CANADIAN SYLLABICS LWO 14E3;AL # CANADIAN SYLLABICS WEST-CREE LWO 14E4;AL # CANADIAN SYLLABICS LWOO 14E5;AL # CANADIAN SYLLABICS WEST-CREE LWOO 14E6;AL # CANADIAN SYLLABICS LWA 14E7;AL # CANADIAN SYLLABICS WEST-CREE LWA 14E8;AL # CANADIAN SYLLABICS LWAA 14E9;AL # CANADIAN SYLLABICS WEST-CREE LWAA 14EA;AL # CANADIAN SYLLABICS L 14EB;AL # CANADIAN SYLLABICS WEST-CREE L 14EC;AL # CANADIAN SYLLABICS MEDIAL L 14ED;AL # CANADIAN SYLLABICS SE 14EE;AL # CANADIAN SYLLABICS SAAI 14EF;AL # CANADIAN SYLLABICS SI 14F0;AL # CANADIAN SYLLABICS SII 14F1;AL # CANADIAN SYLLABICS SO 14F2;AL # CANADIAN SYLLABICS SOO 14F3;AL # CANADIAN SYLLABICS Y-CREE SOO 14F4;AL # CANADIAN SYLLABICS SA 14F5;AL # CANADIAN SYLLABICS SAA 14F6;AL # CANADIAN SYLLABICS SWE 14F7;AL # CANADIAN SYLLABICS WEST-CREE SWE 14F8;AL # CANADIAN SYLLABICS SWI 14F9;AL # CANADIAN SYLLABICS WEST-CREE SWI 14FA;AL # CANADIAN SYLLABICS SWII 14FB;AL # CANADIAN SYLLABICS WEST-CREE SWII 14FC;AL # CANADIAN SYLLABICS SWO 14FD;AL # CANADIAN SYLLABICS WEST-CREE SWO 14FE;AL # CANADIAN SYLLABICS SWOO 14FF;AL # CANADIAN SYLLABICS WEST-CREE SWOO 1500;AL # CANADIAN SYLLABICS SWA 1501;AL # CANADIAN SYLLABICS WEST-CREE SWA 1502;AL # CANADIAN SYLLABICS SWAA 1503;AL # CANADIAN SYLLABICS WEST-CREE SWAA 1504;AL # CANADIAN SYLLABICS NASKAPI SWAA 1505;AL # CANADIAN SYLLABICS S 1506;AL # CANADIAN SYLLABICS ATHAPASCAN S 1507;AL # CANADIAN SYLLABICS SW 1508;AL # CANADIAN SYLLABICS BLACKFOOT S 1509;AL # CANADIAN SYLLABICS MOOSE-CREE SK 150A;AL # CANADIAN SYLLABICS NASKAPI SKW 150B;AL # CANADIAN SYLLABICS NASKAPI S-W 150C;AL # CANADIAN SYLLABICS NASKAPI SPWA 150D;AL # CANADIAN SYLLABICS NASKAPI STWA 150E;AL # CANADIAN SYLLABICS NASKAPI SKWA 150F;AL # CANADIAN SYLLABICS NASKAPI SCWA 1510;AL # CANADIAN SYLLABICS SHE 1511;AL # CANADIAN SYLLABICS SHI 1512;AL # CANADIAN SYLLABICS SHII 1513;AL # CANADIAN SYLLABICS SHO 1514;AL # CANADIAN SYLLABICS SHOO 1515;AL # CANADIAN SYLLABICS SHA 1516;AL # CANADIAN SYLLABICS SHAA 1517;AL # CANADIAN SYLLABICS SHWE 1518;AL # CANADIAN SYLLABICS WEST-CREE SHWE 1519;AL # CANADIAN SYLLABICS SHWI 151A;AL # CANADIAN SYLLABICS WEST-CREE SHWI 151B;AL # CANADIAN SYLLABICS SHWII 151C;AL # CANADIAN SYLLABICS WEST-CREE SHWII 151D;AL # CANADIAN SYLLABICS SHWO 151E;AL # CANADIAN SYLLABICS WEST-CREE SHWO 151F;AL # CANADIAN SYLLABICS SHWOO 1520;AL # CANADIAN SYLLABICS WEST-CREE SHWOO 1521;AL # CANADIAN SYLLABICS SHWA 1522;AL # CANADIAN SYLLABICS WEST-CREE SHWA 1523;AL # CANADIAN SYLLABICS SHWAA 1524;AL # CANADIAN SYLLABICS WEST-CREE SHWAA 1525;AL # CANADIAN SYLLABICS SH 1526;AL # CANADIAN SYLLABICS YE 1527;AL # CANADIAN SYLLABICS YAAI 1528;AL # CANADIAN SYLLABICS YI 1529;AL # CANADIAN SYLLABICS YII 152A;AL # CANADIAN SYLLABICS YO 152B;AL # CANADIAN SYLLABICS YOO 152C;AL # CANADIAN SYLLABICS Y-CREE YOO 152D;AL # CANADIAN SYLLABICS YA 152E;AL # CANADIAN SYLLABICS YAA 152F;AL # CANADIAN SYLLABICS YWE 1530;AL # CANADIAN SYLLABICS WEST-CREE YWE 1531;AL # CANADIAN SYLLABICS YWI 1532;AL # CANADIAN SYLLABICS WEST-CREE YWI 1533;AL # CANADIAN SYLLABICS YWII 1534;AL # CANADIAN SYLLABICS WEST-CREE YWII 1535;AL # CANADIAN SYLLABICS YWO 1536;AL # CANADIAN SYLLABICS WEST-CREE YWO 1537;AL # CANADIAN SYLLABICS YWOO 1538;AL # CANADIAN SYLLABICS WEST-CREE YWOO 1539;AL # CANADIAN SYLLABICS YWA 153A;AL # CANADIAN SYLLABICS WEST-CREE YWA 153B;AL # CANADIAN SYLLABICS YWAA 153C;AL # CANADIAN SYLLABICS WEST-CREE YWAA 153D;AL # CANADIAN SYLLABICS NASKAPI YWAA 153E;AL # CANADIAN SYLLABICS Y 153F;AL # CANADIAN SYLLABICS BIBLE-CREE Y 1540;AL # CANADIAN SYLLABICS WEST-CREE Y 1541;AL # CANADIAN SYLLABICS SAYISI YI 1542;AL # CANADIAN SYLLABICS RE 1543;AL # CANADIAN SYLLABICS R-CREE RE 1544;AL # CANADIAN SYLLABICS WEST-CREE LE 1545;AL # CANADIAN SYLLABICS RAAI 1546;AL # CANADIAN SYLLABICS RI 1547;AL # CANADIAN SYLLABICS RII 1548;AL # CANADIAN SYLLABICS RO 1549;AL # CANADIAN SYLLABICS ROO 154A;AL # CANADIAN SYLLABICS WEST-CREE LO 154B;AL # CANADIAN SYLLABICS RA 154C;AL # CANADIAN SYLLABICS RAA 154D;AL # CANADIAN SYLLABICS WEST-CREE LA 154E;AL # CANADIAN SYLLABICS RWAA 154F;AL # CANADIAN SYLLABICS WEST-CREE RWAA 1550;AL # CANADIAN SYLLABICS R 1551;AL # CANADIAN SYLLABICS WEST-CREE R 1552;AL # CANADIAN SYLLABICS MEDIAL R 1553;AL # CANADIAN SYLLABICS FE 1554;AL # CANADIAN SYLLABICS FAAI 1555;AL # CANADIAN SYLLABICS FI 1556;AL # CANADIAN SYLLABICS FII 1557;AL # CANADIAN SYLLABICS FO 1558;AL # CANADIAN SYLLABICS FOO 1559;AL # CANADIAN SYLLABICS FA 155A;AL # CANADIAN SYLLABICS FAA 155B;AL # CANADIAN SYLLABICS FWAA 155C;AL # CANADIAN SYLLABICS WEST-CREE FWAA 155D;AL # CANADIAN SYLLABICS F 155E;AL # CANADIAN SYLLABICS THE 155F;AL # CANADIAN SYLLABICS N-CREE THE 1560;AL # CANADIAN SYLLABICS THI 1561;AL # CANADIAN SYLLABICS N-CREE THI 1562;AL # CANADIAN SYLLABICS THII 1563;AL # CANADIAN SYLLABICS N-CREE THII 1564;AL # CANADIAN SYLLABICS THO 1565;AL # CANADIAN SYLLABICS THOO 1566;AL # CANADIAN SYLLABICS THA 1567;AL # CANADIAN SYLLABICS THAA 1568;AL # CANADIAN SYLLABICS THWAA 1569;AL # CANADIAN SYLLABICS WEST-CREE THWAA 156A;AL # CANADIAN SYLLABICS TH 156B;AL # CANADIAN SYLLABICS TTHE 156C;AL # CANADIAN SYLLABICS TTHI 156D;AL # CANADIAN SYLLABICS TTHO 156E;AL # CANADIAN SYLLABICS TTHA 156F;AL # CANADIAN SYLLABICS TTH 1570;AL # CANADIAN SYLLABICS TYE 1571;AL # CANADIAN SYLLABICS TYI 1572;AL # CANADIAN SYLLABICS TYO 1573;AL # CANADIAN SYLLABICS TYA 1574;AL # CANADIAN SYLLABICS NUNAVIK HE 1575;AL # CANADIAN SYLLABICS NUNAVIK HI 1576;AL # CANADIAN SYLLABICS NUNAVIK HII 1577;AL # CANADIAN SYLLABICS NUNAVIK HO 1578;AL # CANADIAN SYLLABICS NUNAVIK HOO 1579;AL # CANADIAN SYLLABICS NUNAVIK HA 157A;AL # CANADIAN SYLLABICS NUNAVIK HAA 157B;AL # CANADIAN SYLLABICS NUNAVIK H 157C;AL # CANADIAN SYLLABICS NUNAVUT H 157D;AL # CANADIAN SYLLABICS HK 157E;AL # CANADIAN SYLLABICS QAAI 157F;AL # CANADIAN SYLLABICS QI 1580;AL # CANADIAN SYLLABICS QII 1581;AL # CANADIAN SYLLABICS QO 1582;AL # CANADIAN SYLLABICS QOO 1583;AL # CANADIAN SYLLABICS QA 1584;AL # CANADIAN SYLLABICS QAA 1585;AL # CANADIAN SYLLABICS Q 1586;AL # CANADIAN SYLLABICS TLHE 1587;AL # CANADIAN SYLLABICS TLHI 1588;AL # CANADIAN SYLLABICS TLHO 1589;AL # CANADIAN SYLLABICS TLHA 158A;AL # CANADIAN SYLLABICS WEST-CREE RE 158B;AL # CANADIAN SYLLABICS WEST-CREE RI 158C;AL # CANADIAN SYLLABICS WEST-CREE RO 158D;AL # CANADIAN SYLLABICS WEST-CREE RA 158E;AL # CANADIAN SYLLABICS NGAAI 158F;AL # CANADIAN SYLLABICS NGI 1590;AL # CANADIAN SYLLABICS NGII 1591;AL # CANADIAN SYLLABICS NGO 1592;AL # CANADIAN SYLLABICS NGOO 1593;AL # CANADIAN SYLLABICS NGA 1594;AL # CANADIAN SYLLABICS NGAA 1595;AL # CANADIAN SYLLABICS NG 1596;AL # CANADIAN SYLLABICS NNG 1597;AL # CANADIAN SYLLABICS SAYISI SHE 1598;AL # CANADIAN SYLLABICS SAYISI SHI 1599;AL # CANADIAN SYLLABICS SAYISI SHO 159A;AL # CANADIAN SYLLABICS SAYISI SHA 159B;AL # CANADIAN SYLLABICS WOODS-CREE THE 159C;AL # CANADIAN SYLLABICS WOODS-CREE THI 159D;AL # CANADIAN SYLLABICS WOODS-CREE THO 159E;AL # CANADIAN SYLLABICS WOODS-CREE THA 159F;AL # CANADIAN SYLLABICS WOODS-CREE TH 15A0;AL # CANADIAN SYLLABICS LHI 15A1;AL # CANADIAN SYLLABICS LHII 15A2;AL # CANADIAN SYLLABICS LHO 15A3;AL # CANADIAN SYLLABICS LHOO 15A4;AL # CANADIAN SYLLABICS LHA 15A5;AL # CANADIAN SYLLABICS LHAA 15A6;AL # CANADIAN SYLLABICS LH 15A7;AL # CANADIAN SYLLABICS TH-CREE THE 15A8;AL # CANADIAN SYLLABICS TH-CREE THI 15A9;AL # CANADIAN SYLLABICS TH-CREE THII 15AA;AL # CANADIAN SYLLABICS TH-CREE THO 15AB;AL # CANADIAN SYLLABICS TH-CREE THOO 15AC;AL # CANADIAN SYLLABICS TH-CREE THA 15AD;AL # CANADIAN SYLLABICS TH-CREE THAA 15AE;AL # CANADIAN SYLLABICS TH-CREE TH 15AF;AL # CANADIAN SYLLABICS AIVILIK B 15B0;AL # CANADIAN SYLLABICS BLACKFOOT E 15B1;AL # CANADIAN SYLLABICS BLACKFOOT I 15B2;AL # CANADIAN SYLLABICS BLACKFOOT O 15B3;AL # CANADIAN SYLLABICS BLACKFOOT A 15B4;AL # CANADIAN SYLLABICS BLACKFOOT WE 15B5;AL # CANADIAN SYLLABICS BLACKFOOT WI 15B6;AL # CANADIAN SYLLABICS BLACKFOOT WO 15B7;AL # CANADIAN SYLLABICS BLACKFOOT WA 15B8;AL # CANADIAN SYLLABICS BLACKFOOT NE 15B9;AL # CANADIAN SYLLABICS BLACKFOOT NI 15BA;AL # CANADIAN SYLLABICS BLACKFOOT NO 15BB;AL # CANADIAN SYLLABICS BLACKFOOT NA 15BC;AL # CANADIAN SYLLABICS BLACKFOOT KE 15BD;AL # CANADIAN SYLLABICS BLACKFOOT KI 15BE;AL # CANADIAN SYLLABICS BLACKFOOT KO 15BF;AL # CANADIAN SYLLABICS BLACKFOOT KA 15C0;AL # CANADIAN SYLLABICS SAYISI HE 15C1;AL # CANADIAN SYLLABICS SAYISI HI 15C2;AL # CANADIAN SYLLABICS SAYISI HO 15C3;AL # CANADIAN SYLLABICS SAYISI HA 15C4;AL # CANADIAN SYLLABICS CARRIER GHU 15C5;AL # CANADIAN SYLLABICS CARRIER GHO 15C6;AL # CANADIAN SYLLABICS CARRIER GHE 15C7;AL # CANADIAN SYLLABICS CARRIER GHEE 15C8;AL # CANADIAN SYLLABICS CARRIER GHI 15C9;AL # CANADIAN SYLLABICS CARRIER GHA 15CA;AL # CANADIAN SYLLABICS CARRIER RU 15CB;AL # CANADIAN SYLLABICS CARRIER RO 15CC;AL # CANADIAN SYLLABICS CARRIER RE 15CD;AL # CANADIAN SYLLABICS CARRIER REE 15CE;AL # CANADIAN SYLLABICS CARRIER RI 15CF;AL # CANADIAN SYLLABICS CARRIER RA 15D0;AL # CANADIAN SYLLABICS CARRIER WU 15D1;AL # CANADIAN SYLLABICS CARRIER WO 15D2;AL # CANADIAN SYLLABICS CARRIER WE 15D3;AL # CANADIAN SYLLABICS CARRIER WEE 15D4;AL # CANADIAN SYLLABICS CARRIER WI 15D5;AL # CANADIAN SYLLABICS CARRIER WA 15D6;AL # CANADIAN SYLLABICS CARRIER HWU 15D7;AL # CANADIAN SYLLABICS CARRIER HWO 15D8;AL # CANADIAN SYLLABICS CARRIER HWE 15D9;AL # CANADIAN SYLLABICS CARRIER HWEE 15DA;AL # CANADIAN SYLLABICS CARRIER HWI 15DB;AL # CANADIAN SYLLABICS CARRIER HWA 15DC;AL # CANADIAN SYLLABICS CARRIER THU 15DD;AL # CANADIAN SYLLABICS CARRIER THO 15DE;AL # CANADIAN SYLLABICS CARRIER THE 15DF;AL # CANADIAN SYLLABICS CARRIER THEE 15E0;AL # CANADIAN SYLLABICS CARRIER THI 15E1;AL # CANADIAN SYLLABICS CARRIER THA 15E2;AL # CANADIAN SYLLABICS CARRIER TTU 15E3;AL # CANADIAN SYLLABICS CARRIER TTO 15E4;AL # CANADIAN SYLLABICS CARRIER TTE 15E5;AL # CANADIAN SYLLABICS CARRIER TTEE 15E6;AL # CANADIAN SYLLABICS CARRIER TTI 15E7;AL # CANADIAN SYLLABICS CARRIER TTA 15E8;AL # CANADIAN SYLLABICS CARRIER PU 15E9;AL # CANADIAN SYLLABICS CARRIER PO 15EA;AL # CANADIAN SYLLABICS CARRIER PE 15EB;AL # CANADIAN SYLLABICS CARRIER PEE 15EC;AL # CANADIAN SYLLABICS CARRIER PI 15ED;AL # CANADIAN SYLLABICS CARRIER PA 15EE;AL # CANADIAN SYLLABICS CARRIER P 15EF;AL # CANADIAN SYLLABICS CARRIER GU 15F0;AL # CANADIAN SYLLABICS CARRIER GO 15F1;AL # CANADIAN SYLLABICS CARRIER GE 15F2;AL # CANADIAN SYLLABICS CARRIER GEE 15F3;AL # CANADIAN SYLLABICS CARRIER GI 15F4;AL # CANADIAN SYLLABICS CARRIER GA 15F5;AL # CANADIAN SYLLABICS CARRIER KHU 15F6;AL # CANADIAN SYLLABICS CARRIER KHO 15F7;AL # CANADIAN SYLLABICS CARRIER KHE 15F8;AL # CANADIAN SYLLABICS CARRIER KHEE 15F9;AL # CANADIAN SYLLABICS CARRIER KHI 15FA;AL # CANADIAN SYLLABICS CARRIER KHA 15FB;AL # CANADIAN SYLLABICS CARRIER KKU 15FC;AL # CANADIAN SYLLABICS CARRIER KKO 15FD;AL # CANADIAN SYLLABICS CARRIER KKE 15FE;AL # CANADIAN SYLLABICS CARRIER KKEE 15FF;AL # CANADIAN SYLLABICS CARRIER KKI 1600;AL # CANADIAN SYLLABICS CARRIER KKA 1601;AL # CANADIAN SYLLABICS CARRIER KK 1602;AL # CANADIAN SYLLABICS CARRIER NU 1603;AL # CANADIAN SYLLABICS CARRIER NO 1604;AL # CANADIAN SYLLABICS CARRIER NE 1605;AL # CANADIAN SYLLABICS CARRIER NEE 1606;AL # CANADIAN SYLLABICS CARRIER NI 1607;AL # CANADIAN SYLLABICS CARRIER NA 1608;AL # CANADIAN SYLLABICS CARRIER MU 1609;AL # CANADIAN SYLLABICS CARRIER MO 160A;AL # CANADIAN SYLLABICS CARRIER ME 160B;AL # CANADIAN SYLLABICS CARRIER MEE 160C;AL # CANADIAN SYLLABICS CARRIER MI 160D;AL # CANADIAN SYLLABICS CARRIER MA 160E;AL # CANADIAN SYLLABICS CARRIER YU 160F;AL # CANADIAN SYLLABICS CARRIER YO 1610;AL # CANADIAN SYLLABICS CARRIER YE 1611;AL # CANADIAN SYLLABICS CARRIER YEE 1612;AL # CANADIAN SYLLABICS CARRIER YI 1613;AL # CANADIAN SYLLABICS CARRIER YA 1614;AL # CANADIAN SYLLABICS CARRIER JU 1615;AL # CANADIAN SYLLABICS SAYISI JU 1616;AL # CANADIAN SYLLABICS CARRIER JO 1617;AL # CANADIAN SYLLABICS CARRIER JE 1618;AL # CANADIAN SYLLABICS CARRIER JEE 1619;AL # CANADIAN SYLLABICS CARRIER JI 161A;AL # CANADIAN SYLLABICS SAYISI JI 161B;AL # CANADIAN SYLLABICS CARRIER JA 161C;AL # CANADIAN SYLLABICS CARRIER JJU 161D;AL # CANADIAN SYLLABICS CARRIER JJO 161E;AL # CANADIAN SYLLABICS CARRIER JJE 161F;AL # CANADIAN SYLLABICS CARRIER JJEE 1620;AL # CANADIAN SYLLABICS CARRIER JJI 1621;AL # CANADIAN SYLLABICS CARRIER JJA 1622;AL # CANADIAN SYLLABICS CARRIER LU 1623;AL # CANADIAN SYLLABICS CARRIER LO 1624;AL # CANADIAN SYLLABICS CARRIER LE 1625;AL # CANADIAN SYLLABICS CARRIER LEE 1626;AL # CANADIAN SYLLABICS CARRIER LI 1627;AL # CANADIAN SYLLABICS CARRIER LA 1628;AL # CANADIAN SYLLABICS CARRIER DLU 1629;AL # CANADIAN SYLLABICS CARRIER DLO 162A;AL # CANADIAN SYLLABICS CARRIER DLE 162B;AL # CANADIAN SYLLABICS CARRIER DLEE 162C;AL # CANADIAN SYLLABICS CARRIER DLI 162D;AL # CANADIAN SYLLABICS CARRIER DLA 162E;AL # CANADIAN SYLLABICS CARRIER LHU 162F;AL # CANADIAN SYLLABICS CARRIER LHO 1630;AL # CANADIAN SYLLABICS CARRIER LHE 1631;AL # CANADIAN SYLLABICS CARRIER LHEE 1632;AL # CANADIAN SYLLABICS CARRIER LHI 1633;AL # CANADIAN SYLLABICS CARRIER LHA 1634;AL # CANADIAN SYLLABICS CARRIER TLHU 1635;AL # CANADIAN SYLLABICS CARRIER TLHO 1636;AL # CANADIAN SYLLABICS CARRIER TLHE 1637;AL # CANADIAN SYLLABICS CARRIER TLHEE 1638;AL # CANADIAN SYLLABICS CARRIER TLHI 1639;AL # CANADIAN SYLLABICS CARRIER TLHA 163A;AL # CANADIAN SYLLABICS CARRIER TLU 163B;AL # CANADIAN SYLLABICS CARRIER TLO 163C;AL # CANADIAN SYLLABICS CARRIER TLE 163D;AL # CANADIAN SYLLABICS CARRIER TLEE 163E;AL # CANADIAN SYLLABICS CARRIER TLI 163F;AL # CANADIAN SYLLABICS CARRIER TLA 1640;AL # CANADIAN SYLLABICS CARRIER ZU 1641;AL # CANADIAN SYLLABICS CARRIER ZO 1642;AL # CANADIAN SYLLABICS CARRIER ZE 1643;AL # CANADIAN SYLLABICS CARRIER ZEE 1644;AL # CANADIAN SYLLABICS CARRIER ZI 1645;AL # CANADIAN SYLLABICS CARRIER ZA 1646;AL # CANADIAN SYLLABICS CARRIER Z 1647;AL # CANADIAN SYLLABICS CARRIER INITIAL Z 1648;AL # CANADIAN SYLLABICS CARRIER DZU 1649;AL # CANADIAN SYLLABICS CARRIER DZO 164A;AL # CANADIAN SYLLABICS CARRIER DZE 164B;AL # CANADIAN SYLLABICS CARRIER DZEE 164C;AL # CANADIAN SYLLABICS CARRIER DZI 164D;AL # CANADIAN SYLLABICS CARRIER DZA 164E;AL # CANADIAN SYLLABICS CARRIER SU 164F;AL # CANADIAN SYLLABICS CARRIER SO 1650;AL # CANADIAN SYLLABICS CARRIER SE 1651;AL # CANADIAN SYLLABICS CARRIER SEE 1652;AL # CANADIAN SYLLABICS CARRIER SI 1653;AL # CANADIAN SYLLABICS CARRIER SA 1654;AL # CANADIAN SYLLABICS CARRIER SHU 1655;AL # CANADIAN SYLLABICS CARRIER SHO 1656;AL # CANADIAN SYLLABICS CARRIER SHE 1657;AL # CANADIAN SYLLABICS CARRIER SHEE 1658;AL # CANADIAN SYLLABICS CARRIER SHI 1659;AL # CANADIAN SYLLABICS CARRIER SHA 165A;AL # CANADIAN SYLLABICS CARRIER SH 165B;AL # CANADIAN SYLLABICS CARRIER TSU 165C;AL # CANADIAN SYLLABICS CARRIER TSO 165D;AL # CANADIAN SYLLABICS CARRIER TSE 165E;AL # CANADIAN SYLLABICS CARRIER TSEE 165F;AL # CANADIAN SYLLABICS CARRIER TSI 1660;AL # CANADIAN SYLLABICS CARRIER TSA 1661;AL # CANADIAN SYLLABICS CARRIER CHU 1662;AL # CANADIAN SYLLABICS CARRIER CHO 1663;AL # CANADIAN SYLLABICS CARRIER CHE 1664;AL # CANADIAN SYLLABICS CARRIER CHEE 1665;AL # CANADIAN SYLLABICS CARRIER CHI 1666;AL # CANADIAN SYLLABICS CARRIER CHA 1667;AL # CANADIAN SYLLABICS CARRIER TTSU 1668;AL # CANADIAN SYLLABICS CARRIER TTSO 1669;AL # CANADIAN SYLLABICS CARRIER TTSE 166A;AL # CANADIAN SYLLABICS CARRIER TTSEE 166B;AL # CANADIAN SYLLABICS CARRIER TTSI 166C;AL # CANADIAN SYLLABICS CARRIER TTSA 166D;AL # CANADIAN SYLLABICS CHI SIGN 166E;AL # CANADIAN SYLLABICS FULL STOP 166F;AL # CANADIAN SYLLABICS QAI 1670;AL # CANADIAN SYLLABICS NGAI 1671;AL # CANADIAN SYLLABICS NNGI 1672;AL # CANADIAN SYLLABICS NNGII 1673;AL # CANADIAN SYLLABICS NNGO 1674;AL # CANADIAN SYLLABICS NNGOO 1675;AL # CANADIAN SYLLABICS NNGA 1676;AL # CANADIAN SYLLABICS NNGAA 1680;BA # OGHAM SPACE MARK 1681;AL # OGHAM LETTER BEITH 1682;AL # OGHAM LETTER LUIS 1683;AL # OGHAM LETTER FEARN 1684;AL # OGHAM LETTER SAIL 1685;AL # OGHAM LETTER NION 1686;AL # OGHAM LETTER UATH 1687;AL # OGHAM LETTER DAIR 1688;AL # OGHAM LETTER TINNE 1689;AL # OGHAM LETTER COLL 168A;AL # OGHAM LETTER CEIRT 168B;AL # OGHAM LETTER MUIN 168C;AL # OGHAM LETTER GORT 168D;AL # OGHAM LETTER NGEADAL 168E;AL # OGHAM LETTER STRAIF 168F;AL # OGHAM LETTER RUIS 1690;AL # OGHAM LETTER AILM 1691;AL # OGHAM LETTER ONN 1692;AL # OGHAM LETTER UR 1693;AL # OGHAM LETTER EADHADH 1694;AL # OGHAM LETTER IODHADH 1695;AL # OGHAM LETTER EABHADH 1696;AL # OGHAM LETTER OR 1697;AL # OGHAM LETTER UILLEANN 1698;AL # OGHAM LETTER IFIN 1699;AL # OGHAM LETTER EAMHANCHOLL 169A;AL # OGHAM LETTER PEITH 169B;OP # OGHAM FEATHER MARK 169C;CL # OGHAM REVERSED FEATHER MARK 16A0;AL # RUNIC LETTER FEHU FEOH FE F 16A1;AL # RUNIC LETTER V 16A2;AL # RUNIC LETTER URUZ UR U 16A3;AL # RUNIC LETTER YR 16A4;AL # RUNIC LETTER Y 16A5;AL # RUNIC LETTER W 16A6;AL # RUNIC LETTER THURISAZ THURS THORN 16A7;AL # RUNIC LETTER ETH 16A8;AL # RUNIC LETTER ANSUZ A 16A9;AL # RUNIC LETTER OS O 16AA;AL # RUNIC LETTER AC A 16AB;AL # RUNIC LETTER AESC 16AC;AL # RUNIC LETTER LONG-BRANCH-OSS O 16AD;AL # RUNIC LETTER SHORT-TWIG-OSS O 16AE;AL # RUNIC LETTER O 16AF;AL # RUNIC LETTER OE 16B0;AL # RUNIC LETTER ON 16B1;AL # RUNIC LETTER RAIDO RAD REID R 16B2;AL # RUNIC LETTER KAUNA 16B3;AL # RUNIC LETTER CEN 16B4;AL # RUNIC LETTER KAUN K 16B5;AL # RUNIC LETTER G 16B6;AL # RUNIC LETTER ENG 16B7;AL # RUNIC LETTER GEBO GYFU G 16B8;AL # RUNIC LETTER GAR 16B9;AL # RUNIC LETTER WUNJO WYNN W 16BA;AL # RUNIC LETTER HAGLAZ H 16BB;AL # RUNIC LETTER HAEGL H 16BC;AL # RUNIC LETTER LONG-BRANCH-HAGALL H 16BD;AL # RUNIC LETTER SHORT-TWIG-HAGALL H 16BE;AL # RUNIC LETTER NAUDIZ NYD NAUD N 16BF;AL # RUNIC LETTER SHORT-TWIG-NAUD N 16C0;AL # RUNIC LETTER DOTTED-N 16C1;AL # RUNIC LETTER ISAZ IS ISS I 16C2;AL # RUNIC LETTER E 16C3;AL # RUNIC LETTER JERAN J 16C4;AL # RUNIC LETTER GER 16C5;AL # RUNIC LETTER LONG-BRANCH-AR AE 16C6;AL # RUNIC LETTER SHORT-TWIG-AR A 16C7;AL # RUNIC LETTER IWAZ EOH 16C8;AL # RUNIC LETTER PERTHO PEORTH P 16C9;AL # RUNIC LETTER ALGIZ EOLHX 16CA;AL # RUNIC LETTER SOWILO S 16CB;AL # RUNIC LETTER SIGEL LONG-BRANCH-SOL S 16CC;AL # RUNIC LETTER SHORT-TWIG-SOL S 16CD;AL # RUNIC LETTER C 16CE;AL # RUNIC LETTER Z 16CF;AL # RUNIC LETTER TIWAZ TIR TYR T 16D0;AL # RUNIC LETTER SHORT-TWIG-TYR T 16D1;AL # RUNIC LETTER D 16D2;AL # RUNIC LETTER BERKANAN BEORC BJARKAN B 16D3;AL # RUNIC LETTER SHORT-TWIG-BJARKAN B 16D4;AL # RUNIC LETTER DOTTED-P 16D5;AL # RUNIC LETTER OPEN-P 16D6;AL # RUNIC LETTER EHWAZ EH E 16D7;AL # RUNIC LETTER MANNAZ MAN M 16D8;AL # RUNIC LETTER LONG-BRANCH-MADR M 16D9;AL # RUNIC LETTER SHORT-TWIG-MADR M 16DA;AL # RUNIC LETTER LAUKAZ LAGU LOGR L 16DB;AL # RUNIC LETTER DOTTED-L 16DC;AL # RUNIC LETTER INGWAZ 16DD;AL # RUNIC LETTER ING 16DE;AL # RUNIC LETTER DAGAZ DAEG D 16DF;AL # RUNIC LETTER OTHALAN ETHEL O 16E0;AL # RUNIC LETTER EAR 16E1;AL # RUNIC LETTER IOR 16E2;AL # RUNIC LETTER CWEORTH 16E3;AL # RUNIC LETTER CALC 16E4;AL # RUNIC LETTER CEALC 16E5;AL # RUNIC LETTER STAN 16E6;AL # RUNIC LETTER LONG-BRANCH-YR 16E7;AL # RUNIC LETTER SHORT-TWIG-YR 16E8;AL # RUNIC LETTER ICELANDIC-YR 16E9;AL # RUNIC LETTER Q 16EA;AL # RUNIC LETTER X 16EB;AL # RUNIC SINGLE PUNCTUATION 16EC;AL # RUNIC MULTIPLE PUNCTUATION 16ED;AL # RUNIC CROSS PUNCTUATION 16EE;AL # RUNIC ARLAUG SYMBOL 16EF;AL # RUNIC TVIMADUR SYMBOL 16F0;AL # RUNIC BELGTHOR SYMBOL 1700;AL # TAGALOG LETTER A 1701;AL # TAGALOG LETTER I 1702;AL # TAGALOG LETTER U 1703;AL # TAGALOG LETTER KA 1704;AL # TAGALOG LETTER GA 1705;AL # TAGALOG LETTER NGA 1706;AL # TAGALOG LETTER TA 1707;AL # TAGALOG LETTER DA 1708;AL # TAGALOG LETTER NA 1709;AL # TAGALOG LETTER PA 170A;AL # TAGALOG LETTER BA 170B;AL # TAGALOG LETTER MA 170C;AL # TAGALOG LETTER YA 170E;AL # TAGALOG LETTER LA 170F;AL # TAGALOG LETTER WA 1710;AL # TAGALOG LETTER SA 1711;AL # TAGALOG LETTER HA 1712;CM # TAGALOG VOWEL SIGN I 1713;CM # TAGALOG VOWEL SIGN U 1714;CM # TAGALOG SIGN VIRAMA 1720;AL # HANUNOO LETTER A 1721;AL # HANUNOO LETTER I 1722;AL # HANUNOO LETTER U 1723;AL # HANUNOO LETTER KA 1724;AL # HANUNOO LETTER GA 1725;AL # HANUNOO LETTER NGA 1726;AL # HANUNOO LETTER TA 1727;AL # HANUNOO LETTER DA 1728;AL # HANUNOO LETTER NA 1729;AL # HANUNOO LETTER PA 172A;AL # HANUNOO LETTER BA 172B;AL # HANUNOO LETTER MA 172C;AL # HANUNOO LETTER YA 172D;AL # HANUNOO LETTER RA 172E;AL # HANUNOO LETTER LA 172F;AL # HANUNOO LETTER WA 1730;AL # HANUNOO LETTER SA 1731;AL # HANUNOO LETTER HA 1732;CM # HANUNOO VOWEL SIGN I 1733;CM # HANUNOO VOWEL SIGN U 1734;CM # HANUNOO SIGN PAMUDPOD 1735;AL # PHILIPPINE SINGLE PUNCTUATION 1736;AL # PHILIPPINE DOUBLE PUNCTUATION 1740;AL # BUHID LETTER A 1741;AL # BUHID LETTER I 1742;AL # BUHID LETTER U 1743;AL # BUHID LETTER KA 1744;AL # BUHID LETTER GA 1745;AL # BUHID LETTER NGA 1746;AL # BUHID LETTER TA 1747;AL # BUHID LETTER DA 1748;AL # BUHID LETTER NA 1749;AL # BUHID LETTER PA 174A;AL # BUHID LETTER BA 174B;AL # BUHID LETTER MA 174C;AL # BUHID LETTER YA 174D;AL # BUHID LETTER RA 174E;AL # BUHID LETTER LA 174F;AL # BUHID LETTER WA 1750;AL # BUHID LETTER SA 1751;AL # BUHID LETTER HA 1752;CM # BUHID VOWEL SIGN I 1753;CM # BUHID VOWEL SIGN U 1760;AL # TAGBANWA LETTER A 1761;AL # TAGBANWA LETTER I 1762;AL # TAGBANWA LETTER U 1763;AL # TAGBANWA LETTER KA 1764;AL # TAGBANWA LETTER GA 1765;AL # TAGBANWA LETTER NGA 1766;AL # TAGBANWA LETTER TA 1767;AL # TAGBANWA LETTER DA 1768;AL # TAGBANWA LETTER NA 1769;AL # TAGBANWA LETTER PA 176A;AL # TAGBANWA LETTER BA 176B;AL # TAGBANWA LETTER MA 176C;AL # TAGBANWA LETTER YA 176E;AL # TAGBANWA LETTER LA 176F;AL # TAGBANWA LETTER WA 1770;AL # TAGBANWA LETTER SA 1772;CM # TAGBANWA VOWEL SIGN I 1773;CM # TAGBANWA VOWEL SIGN U 1780;SA # KHMER LETTER KA 1781;SA # KHMER LETTER KHA 1782;SA # KHMER LETTER KO 1783;SA # KHMER LETTER KHO 1784;SA # KHMER LETTER NGO 1785;SA # KHMER LETTER CA 1786;SA # KHMER LETTER CHA 1787;SA # KHMER LETTER CO 1788;SA # KHMER LETTER CHO 1789;SA # KHMER LETTER NYO 178A;SA # KHMER LETTER DA 178B;SA # KHMER LETTER TTHA 178C;SA # KHMER LETTER DO 178D;SA # KHMER LETTER TTHO 178E;SA # KHMER LETTER NNO 178F;SA # KHMER LETTER TA 1790;SA # KHMER LETTER THA 1791;SA # KHMER LETTER TO 1792;SA # KHMER LETTER THO 1793;SA # KHMER LETTER NO 1794;SA # KHMER LETTER BA 1795;SA # KHMER LETTER PHA 1796;SA # KHMER LETTER PO 1797;SA # KHMER LETTER PHO 1798;SA # KHMER LETTER MO 1799;SA # KHMER LETTER YO 179A;SA # KHMER LETTER RO 179B;SA # KHMER LETTER LO 179C;SA # KHMER LETTER VO 179D;SA # KHMER LETTER SHA 179E;SA # KHMER LETTER SSO 179F;SA # KHMER LETTER SA 17A0;SA # KHMER LETTER HA 17A1;SA # KHMER LETTER LA 17A2;SA # KHMER LETTER QA 17A3;SA # KHMER INDEPENDENT VOWEL QAQ 17A4;SA # KHMER INDEPENDENT VOWEL QAA 17A5;SA # KHMER INDEPENDENT VOWEL QI 17A6;SA # KHMER INDEPENDENT VOWEL QII 17A7;SA # KHMER INDEPENDENT VOWEL QU 17A8;SA # KHMER INDEPENDENT VOWEL QUK 17A9;SA # KHMER INDEPENDENT VOWEL QUU 17AA;SA # KHMER INDEPENDENT VOWEL QUUV 17AB;SA # KHMER INDEPENDENT VOWEL RY 17AC;SA # KHMER INDEPENDENT VOWEL RYY 17AD;SA # KHMER INDEPENDENT VOWEL LY 17AE;SA # KHMER INDEPENDENT VOWEL LYY 17AF;SA # KHMER INDEPENDENT VOWEL QE 17B0;SA # KHMER INDEPENDENT VOWEL QAI 17B1;SA # KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2;SA # KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3;SA # KHMER INDEPENDENT VOWEL QAU 17B4;CM # KHMER VOWEL INHERENT AQ 17B5;CM # KHMER VOWEL INHERENT AA 17B6;CM # KHMER VOWEL SIGN AA 17B7;CM # KHMER VOWEL SIGN I 17B8;CM # KHMER VOWEL SIGN II 17B9;CM # KHMER VOWEL SIGN Y 17BA;CM # KHMER VOWEL SIGN YY 17BB;CM # KHMER VOWEL SIGN U 17BC;CM # KHMER VOWEL SIGN UU 17BD;CM # KHMER VOWEL SIGN UA 17BE;CM # KHMER VOWEL SIGN OE 17BF;CM # KHMER VOWEL SIGN YA 17C0;CM # KHMER VOWEL SIGN IE 17C1;CM # KHMER VOWEL SIGN E 17C2;CM # KHMER VOWEL SIGN AE 17C3;CM # KHMER VOWEL SIGN AI 17C4;CM # KHMER VOWEL SIGN OO 17C5;CM # KHMER VOWEL SIGN AU 17C6;CM # KHMER SIGN NIKAHIT 17C7;CM # KHMER SIGN REAHMUK 17C8;CM # KHMER SIGN YUUKALEAPINTU 17C9;CM # KHMER SIGN MUUSIKATOAN 17CA;CM # KHMER SIGN TRIISAP 17CB;CM # KHMER SIGN BANTOC 17CC;CM # KHMER SIGN ROBAT 17CD;CM # KHMER SIGN TOANDAKHIAT 17CE;CM # KHMER SIGN KAKABAT 17CF;CM # KHMER SIGN AHSDA 17D0;CM # KHMER SIGN SAMYOK SANNYA 17D1;CM # KHMER SIGN VIRIAM 17D2;CM # KHMER SIGN COENG 17D3;CM # KHMER SIGN BATHAMASAT 17D4;NS # KHMER SIGN KHAN 17D5;BA # KHMER SIGN BARIYOOSAN 17D6;NS # KHMER SIGN CAMNUC PII KUUH 17D7;NS # KHMER SIGN LEK TOO 17D8;NS # KHMER SIGN BEYYAL 17D9;NS # KHMER SIGN PHNAEK MUAN 17DA;NS # KHMER SIGN KOOMUUT 17DB;PR # KHMER CURRENCY SYMBOL RIEL 17DC;AL # KHMER SIGN AVAKRAHASANYA 17E0;NU # KHMER DIGIT ZERO 17E1;NU # KHMER DIGIT ONE 17E2;NU # KHMER DIGIT TWO 17E3;NU # KHMER DIGIT THREE 17E4;NU # KHMER DIGIT FOUR 17E5;NU # KHMER DIGIT FIVE 17E6;NU # KHMER DIGIT SIX 17E7;NU # KHMER DIGIT SEVEN 17E8;NU # KHMER DIGIT EIGHT 17E9;NU # KHMER DIGIT NINE 1800;AL # MONGOLIAN BIRGA 1801;AL # MONGOLIAN ELLIPSIS 1802;AL # MONGOLIAN COMMA 1803;AL # MONGOLIAN FULL STOP 1804;AL # MONGOLIAN COLON 1805;AL # MONGOLIAN FOUR DOTS 1806;BB # MONGOLIAN TODO SOFT HYPHEN 1807;AL # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER 1808;AL # MONGOLIAN MANCHU COMMA 1809;AL # MONGOLIAN MANCHU FULL STOP 180A;AL # MONGOLIAN NIRUGU 180B;CM # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;CM # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;CM # MONGOLIAN FREE VARIATION SELECTOR THREE 180E;CM # MONGOLIAN VOWEL SEPARATOR 1810;NU # MONGOLIAN DIGIT ZERO 1811;NU # MONGOLIAN DIGIT ONE 1812;NU # MONGOLIAN DIGIT TWO 1813;NU # MONGOLIAN DIGIT THREE 1814;NU # MONGOLIAN DIGIT FOUR 1815;NU # MONGOLIAN DIGIT FIVE 1816;NU # MONGOLIAN DIGIT SIX 1817;NU # MONGOLIAN DIGIT SEVEN 1818;NU # MONGOLIAN DIGIT EIGHT 1819;NU # MONGOLIAN DIGIT NINE 1820;AL # MONGOLIAN LETTER A 1821;AL # MONGOLIAN LETTER E 1822;AL # MONGOLIAN LETTER I 1823;AL # MONGOLIAN LETTER O 1824;AL # MONGOLIAN LETTER U 1825;AL # MONGOLIAN LETTER OE 1826;AL # MONGOLIAN LETTER UE 1827;AL # MONGOLIAN LETTER EE 1828;AL # MONGOLIAN LETTER NA 1829;AL # MONGOLIAN LETTER ANG 182A;AL # MONGOLIAN LETTER BA 182B;AL # MONGOLIAN LETTER PA 182C;AL # MONGOLIAN LETTER QA 182D;AL # MONGOLIAN LETTER GA 182E;AL # MONGOLIAN LETTER MA 182F;AL # MONGOLIAN LETTER LA 1830;AL # MONGOLIAN LETTER SA 1831;AL # MONGOLIAN LETTER SHA 1832;AL # MONGOLIAN LETTER TA 1833;AL # MONGOLIAN LETTER DA 1834;AL # MONGOLIAN LETTER CHA 1835;AL # MONGOLIAN LETTER JA 1836;AL # MONGOLIAN LETTER YA 1837;AL # MONGOLIAN LETTER RA 1838;AL # MONGOLIAN LETTER WA 1839;AL # MONGOLIAN LETTER FA 183A;AL # MONGOLIAN LETTER KA 183B;AL # MONGOLIAN LETTER KHA 183C;AL # MONGOLIAN LETTER TSA 183D;AL # MONGOLIAN LETTER ZA 183E;AL # MONGOLIAN LETTER HAA 183F;AL # MONGOLIAN LETTER ZRA 1840;AL # MONGOLIAN LETTER LHA 1841;AL # MONGOLIAN LETTER ZHI 1842;AL # MONGOLIAN LETTER CHI 1843;AL # MONGOLIAN LETTER TODO LONG VOWEL SIGN 1844;AL # MONGOLIAN LETTER TODO E 1845;AL # MONGOLIAN LETTER TODO I 1846;AL # MONGOLIAN LETTER TODO O 1847;AL # MONGOLIAN LETTER TODO U 1848;AL # MONGOLIAN LETTER TODO OE 1849;AL # MONGOLIAN LETTER TODO UE 184A;AL # MONGOLIAN LETTER TODO ANG 184B;AL # MONGOLIAN LETTER TODO BA 184C;AL # MONGOLIAN LETTER TODO PA 184D;AL # MONGOLIAN LETTER TODO QA 184E;AL # MONGOLIAN LETTER TODO GA 184F;AL # MONGOLIAN LETTER TODO MA 1850;AL # MONGOLIAN LETTER TODO TA 1851;AL # MONGOLIAN LETTER TODO DA 1852;AL # MONGOLIAN LETTER TODO CHA 1853;AL # MONGOLIAN LETTER TODO JA 1854;AL # MONGOLIAN LETTER TODO TSA 1855;AL # MONGOLIAN LETTER TODO YA 1856;AL # MONGOLIAN LETTER TODO WA 1857;AL # MONGOLIAN LETTER TODO KA 1858;AL # MONGOLIAN LETTER TODO GAA 1859;AL # MONGOLIAN LETTER TODO HAA 185A;AL # MONGOLIAN LETTER TODO JIA 185B;AL # MONGOLIAN LETTER TODO NIA 185C;AL # MONGOLIAN LETTER TODO DZA 185D;AL # MONGOLIAN LETTER SIBE E 185E;AL # MONGOLIAN LETTER SIBE I 185F;AL # MONGOLIAN LETTER SIBE IY 1860;AL # MONGOLIAN LETTER SIBE UE 1861;AL # MONGOLIAN LETTER SIBE U 1862;AL # MONGOLIAN LETTER SIBE ANG 1863;AL # MONGOLIAN LETTER SIBE KA 1864;AL # MONGOLIAN LETTER SIBE GA 1865;AL # MONGOLIAN LETTER SIBE HA 1866;AL # MONGOLIAN LETTER SIBE PA 1867;AL # MONGOLIAN LETTER SIBE SHA 1868;AL # MONGOLIAN LETTER SIBE TA 1869;AL # MONGOLIAN LETTER SIBE DA 186A;AL # MONGOLIAN LETTER SIBE JA 186B;AL # MONGOLIAN LETTER SIBE FA 186C;AL # MONGOLIAN LETTER SIBE GAA 186D;AL # MONGOLIAN LETTER SIBE HAA 186E;AL # MONGOLIAN LETTER SIBE TSA 186F;AL # MONGOLIAN LETTER SIBE ZA 1870;AL # MONGOLIAN LETTER SIBE RAA 1871;AL # MONGOLIAN LETTER SIBE CHA 1872;AL # MONGOLIAN LETTER SIBE ZHA 1873;AL # MONGOLIAN LETTER MANCHU I 1874;AL # MONGOLIAN LETTER MANCHU KA 1875;AL # MONGOLIAN LETTER MANCHU RA 1876;AL # MONGOLIAN LETTER MANCHU FA 1877;AL # MONGOLIAN LETTER MANCHU ZHA 1880;AL # MONGOLIAN LETTER ALI GALI ANUSVARA ONE 1881;AL # MONGOLIAN LETTER ALI GALI VISARGA ONE 1882;AL # MONGOLIAN LETTER ALI GALI DAMARU 1883;AL # MONGOLIAN LETTER ALI GALI UBADAMA 1884;AL # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA 1885;AL # MONGOLIAN LETTER ALI GALI BALUDA 1886;AL # MONGOLIAN LETTER ALI GALI THREE BALUDA 1887;AL # MONGOLIAN LETTER ALI GALI A 1888;AL # MONGOLIAN LETTER ALI GALI I 1889;AL # MONGOLIAN LETTER ALI GALI KA 188A;AL # MONGOLIAN LETTER ALI GALI NGA 188B;AL # MONGOLIAN LETTER ALI GALI CA 188C;AL # MONGOLIAN LETTER ALI GALI TTA 188D;AL # MONGOLIAN LETTER ALI GALI TTHA 188E;AL # MONGOLIAN LETTER ALI GALI DDA 188F;AL # MONGOLIAN LETTER ALI GALI NNA 1890;AL # MONGOLIAN LETTER ALI GALI TA 1891;AL # MONGOLIAN LETTER ALI GALI DA 1892;AL # MONGOLIAN LETTER ALI GALI PA 1893;AL # MONGOLIAN LETTER ALI GALI PHA 1894;AL # MONGOLIAN LETTER ALI GALI SSA 1895;AL # MONGOLIAN LETTER ALI GALI ZHA 1896;AL # MONGOLIAN LETTER ALI GALI ZA 1897;AL # MONGOLIAN LETTER ALI GALI AH 1898;AL # MONGOLIAN LETTER TODO ALI GALI TA 1899;AL # MONGOLIAN LETTER TODO ALI GALI ZHA 189A;AL # MONGOLIAN LETTER MANCHU ALI GALI GHA 189B;AL # MONGOLIAN LETTER MANCHU ALI GALI NGA 189C;AL # MONGOLIAN LETTER MANCHU ALI GALI CA 189D;AL # MONGOLIAN LETTER MANCHU ALI GALI JHA 189E;AL # MONGOLIAN LETTER MANCHU ALI GALI TTA 189F;AL # MONGOLIAN LETTER MANCHU ALI GALI DDHA 18A0;AL # MONGOLIAN LETTER MANCHU ALI GALI TA 18A1;AL # MONGOLIAN LETTER MANCHU ALI GALI DHA 18A2;AL # MONGOLIAN LETTER MANCHU ALI GALI SSA 18A3;AL # MONGOLIAN LETTER MANCHU ALI GALI CYA 18A4;AL # MONGOLIAN LETTER MANCHU ALI GALI ZHA 18A5;AL # MONGOLIAN LETTER MANCHU ALI GALI ZA 18A6;AL # MONGOLIAN LETTER ALI GALI HALF U 18A7;AL # MONGOLIAN LETTER ALI GALI HALF YA 18A8;AL # MONGOLIAN LETTER MANCHU ALI GALI BHA 18A9;CM # MONGOLIAN LETTER ALI GALI DAGALGA 1E00;AL # LATIN CAPITAL LETTER A WITH RING BELOW 1E01;AL # LATIN SMALL LETTER A WITH RING BELOW 1E02;AL # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E03;AL # LATIN SMALL LETTER B WITH DOT ABOVE 1E04;AL # LATIN CAPITAL LETTER B WITH DOT BELOW 1E05;AL # LATIN SMALL LETTER B WITH DOT BELOW 1E06;AL # LATIN CAPITAL LETTER B WITH LINE BELOW 1E07;AL # LATIN SMALL LETTER B WITH LINE BELOW 1E08;AL # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 1E09;AL # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE 1E0A;AL # LATIN CAPITAL LETTER D WITH DOT ABOVE 1E0B;AL # LATIN SMALL LETTER D WITH DOT ABOVE 1E0C;AL # LATIN CAPITAL LETTER D WITH DOT BELOW 1E0D;AL # LATIN SMALL LETTER D WITH DOT BELOW 1E0E;AL # LATIN CAPITAL LETTER D WITH LINE BELOW 1E0F;AL # LATIN SMALL LETTER D WITH LINE BELOW 1E10;AL # LATIN CAPITAL LETTER D WITH CEDILLA 1E11;AL # LATIN SMALL LETTER D WITH CEDILLA 1E12;AL # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW 1E13;AL # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW 1E14;AL # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 1E15;AL # LATIN SMALL LETTER E WITH MACRON AND GRAVE 1E16;AL # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 1E17;AL # LATIN SMALL LETTER E WITH MACRON AND ACUTE 1E18;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW 1E19;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW 1E1A;AL # LATIN CAPITAL LETTER E WITH TILDE BELOW 1E1B;AL # LATIN SMALL LETTER E WITH TILDE BELOW 1E1C;AL # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 1E1D;AL # LATIN SMALL LETTER E WITH CEDILLA AND BREVE 1E1E;AL # LATIN CAPITAL LETTER F WITH DOT ABOVE 1E1F;AL # LATIN SMALL LETTER F WITH DOT ABOVE 1E20;AL # LATIN CAPITAL LETTER G WITH MACRON 1E21;AL # LATIN SMALL LETTER G WITH MACRON 1E22;AL # LATIN CAPITAL LETTER H WITH DOT ABOVE 1E23;AL # LATIN SMALL LETTER H WITH DOT ABOVE 1E24;AL # LATIN CAPITAL LETTER H WITH DOT BELOW 1E25;AL # LATIN SMALL LETTER H WITH DOT BELOW 1E26;AL # LATIN CAPITAL LETTER H WITH DIAERESIS 1E27;AL # LATIN SMALL LETTER H WITH DIAERESIS 1E28;AL # LATIN CAPITAL LETTER H WITH CEDILLA 1E29;AL # LATIN SMALL LETTER H WITH CEDILLA 1E2A;AL # LATIN CAPITAL LETTER H WITH BREVE BELOW 1E2B;AL # LATIN SMALL LETTER H WITH BREVE BELOW 1E2C;AL # LATIN CAPITAL LETTER I WITH TILDE BELOW 1E2D;AL # LATIN SMALL LETTER I WITH TILDE BELOW 1E2E;AL # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 1E2F;AL # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE 1E30;AL # LATIN CAPITAL LETTER K WITH ACUTE 1E31;AL # LATIN SMALL LETTER K WITH ACUTE 1E32;AL # LATIN CAPITAL LETTER K WITH DOT BELOW 1E33;AL # LATIN SMALL LETTER K WITH DOT BELOW 1E34;AL # LATIN CAPITAL LETTER K WITH LINE BELOW 1E35;AL # LATIN SMALL LETTER K WITH LINE BELOW 1E36;AL # LATIN CAPITAL LETTER L WITH DOT BELOW 1E37;AL # LATIN SMALL LETTER L WITH DOT BELOW 1E38;AL # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON 1E39;AL # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON 1E3A;AL # LATIN CAPITAL LETTER L WITH LINE BELOW 1E3B;AL # LATIN SMALL LETTER L WITH LINE BELOW 1E3C;AL # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW 1E3D;AL # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW 1E3E;AL # LATIN CAPITAL LETTER M WITH ACUTE 1E3F;AL # LATIN SMALL LETTER M WITH ACUTE 1E40;AL # LATIN CAPITAL LETTER M WITH DOT ABOVE 1E41;AL # LATIN SMALL LETTER M WITH DOT ABOVE 1E42;AL # LATIN CAPITAL LETTER M WITH DOT BELOW 1E43;AL # LATIN SMALL LETTER M WITH DOT BELOW 1E44;AL # LATIN CAPITAL LETTER N WITH DOT ABOVE 1E45;AL # LATIN SMALL LETTER N WITH DOT ABOVE 1E46;AL # LATIN CAPITAL LETTER N WITH DOT BELOW 1E47;AL # LATIN SMALL LETTER N WITH DOT BELOW 1E48;AL # LATIN CAPITAL LETTER N WITH LINE BELOW 1E49;AL # LATIN SMALL LETTER N WITH LINE BELOW 1E4A;AL # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW 1E4B;AL # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW 1E4C;AL # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 1E4D;AL # LATIN SMALL LETTER O WITH TILDE AND ACUTE 1E4E;AL # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 1E4F;AL # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS 1E50;AL # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 1E51;AL # LATIN SMALL LETTER O WITH MACRON AND GRAVE 1E52;AL # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 1E53;AL # LATIN SMALL LETTER O WITH MACRON AND ACUTE 1E54;AL # LATIN CAPITAL LETTER P WITH ACUTE 1E55;AL # LATIN SMALL LETTER P WITH ACUTE 1E56;AL # LATIN CAPITAL LETTER P WITH DOT ABOVE 1E57;AL # LATIN SMALL LETTER P WITH DOT ABOVE 1E58;AL # LATIN CAPITAL LETTER R WITH DOT ABOVE 1E59;AL # LATIN SMALL LETTER R WITH DOT ABOVE 1E5A;AL # LATIN CAPITAL LETTER R WITH DOT BELOW 1E5B;AL # LATIN SMALL LETTER R WITH DOT BELOW 1E5C;AL # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON 1E5D;AL # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON 1E5E;AL # LATIN CAPITAL LETTER R WITH LINE BELOW 1E5F;AL # LATIN SMALL LETTER R WITH LINE BELOW 1E60;AL # LATIN CAPITAL LETTER S WITH DOT ABOVE 1E61;AL # LATIN SMALL LETTER S WITH DOT ABOVE 1E62;AL # LATIN CAPITAL LETTER S WITH DOT BELOW 1E63;AL # LATIN SMALL LETTER S WITH DOT BELOW 1E64;AL # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 1E65;AL # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE 1E66;AL # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 1E67;AL # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE 1E68;AL # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 1E69;AL # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE 1E6A;AL # LATIN CAPITAL LETTER T WITH DOT ABOVE 1E6B;AL # LATIN SMALL LETTER T WITH DOT ABOVE 1E6C;AL # LATIN CAPITAL LETTER T WITH DOT BELOW 1E6D;AL # LATIN SMALL LETTER T WITH DOT BELOW 1E6E;AL # LATIN CAPITAL LETTER T WITH LINE BELOW 1E6F;AL # LATIN SMALL LETTER T WITH LINE BELOW 1E70;AL # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW 1E71;AL # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW 1E72;AL # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW 1E73;AL # LATIN SMALL LETTER U WITH DIAERESIS BELOW 1E74;AL # LATIN CAPITAL LETTER U WITH TILDE BELOW 1E75;AL # LATIN SMALL LETTER U WITH TILDE BELOW 1E76;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW 1E77;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW 1E78;AL # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 1E79;AL # LATIN SMALL LETTER U WITH TILDE AND ACUTE 1E7A;AL # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 1E7B;AL # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS 1E7C;AL # LATIN CAPITAL LETTER V WITH TILDE 1E7D;AL # LATIN SMALL LETTER V WITH TILDE 1E7E;AL # LATIN CAPITAL LETTER V WITH DOT BELOW 1E7F;AL # LATIN SMALL LETTER V WITH DOT BELOW 1E80;AL # LATIN CAPITAL LETTER W WITH GRAVE 1E81;AL # LATIN SMALL LETTER W WITH GRAVE 1E82;AL # LATIN CAPITAL LETTER W WITH ACUTE 1E83;AL # LATIN SMALL LETTER W WITH ACUTE 1E84;AL # LATIN CAPITAL LETTER W WITH DIAERESIS 1E85;AL # LATIN SMALL LETTER W WITH DIAERESIS 1E86;AL # LATIN CAPITAL LETTER W WITH DOT ABOVE 1E87;AL # LATIN SMALL LETTER W WITH DOT ABOVE 1E88;AL # LATIN CAPITAL LETTER W WITH DOT BELOW 1E89;AL # LATIN SMALL LETTER W WITH DOT BELOW 1E8A;AL # LATIN CAPITAL LETTER X WITH DOT ABOVE 1E8B;AL # LATIN SMALL LETTER X WITH DOT ABOVE 1E8C;AL # LATIN CAPITAL LETTER X WITH DIAERESIS 1E8D;AL # LATIN SMALL LETTER X WITH DIAERESIS 1E8E;AL # LATIN CAPITAL LETTER Y WITH DOT ABOVE 1E8F;AL # LATIN SMALL LETTER Y WITH DOT ABOVE 1E90;AL # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX 1E91;AL # LATIN SMALL LETTER Z WITH CIRCUMFLEX 1E92;AL # LATIN CAPITAL LETTER Z WITH DOT BELOW 1E93;AL # LATIN SMALL LETTER Z WITH DOT BELOW 1E94;AL # LATIN CAPITAL LETTER Z WITH LINE BELOW 1E95;AL # LATIN SMALL LETTER Z WITH LINE BELOW 1E96;AL # LATIN SMALL LETTER H WITH LINE BELOW 1E97;AL # LATIN SMALL LETTER T WITH DIAERESIS 1E98;AL # LATIN SMALL LETTER W WITH RING ABOVE 1E99;AL # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A;AL # LATIN SMALL LETTER A WITH RIGHT HALF RING 1E9B;AL # LATIN SMALL LETTER LONG S WITH DOT ABOVE 1EA0;AL # LATIN CAPITAL LETTER A WITH DOT BELOW 1EA1;AL # LATIN SMALL LETTER A WITH DOT BELOW 1EA2;AL # LATIN CAPITAL LETTER A WITH HOOK ABOVE 1EA3;AL # LATIN SMALL LETTER A WITH HOOK ABOVE 1EA4;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA5;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA6;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA7;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA8;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EA9;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EAA;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 1EAB;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE 1EAC;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAD;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAE;AL # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 1EAF;AL # LATIN SMALL LETTER A WITH BREVE AND ACUTE 1EB0;AL # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 1EB1;AL # LATIN SMALL LETTER A WITH BREVE AND GRAVE 1EB2;AL # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 1EB3;AL # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE 1EB4;AL # LATIN CAPITAL LETTER A WITH BREVE AND TILDE 1EB5;AL # LATIN SMALL LETTER A WITH BREVE AND TILDE 1EB6;AL # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 1EB7;AL # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW 1EB8;AL # LATIN CAPITAL LETTER E WITH DOT BELOW 1EB9;AL # LATIN SMALL LETTER E WITH DOT BELOW 1EBA;AL # LATIN CAPITAL LETTER E WITH HOOK ABOVE 1EBB;AL # LATIN SMALL LETTER E WITH HOOK ABOVE 1EBC;AL # LATIN CAPITAL LETTER E WITH TILDE 1EBD;AL # LATIN SMALL LETTER E WITH TILDE 1EBE;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 1EBF;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE 1EC0;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC1;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC2;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC3;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC4;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 1EC5;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE 1EC6;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC7;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC8;AL # LATIN CAPITAL LETTER I WITH HOOK ABOVE 1EC9;AL # LATIN SMALL LETTER I WITH HOOK ABOVE 1ECA;AL # LATIN CAPITAL LETTER I WITH DOT BELOW 1ECB;AL # LATIN SMALL LETTER I WITH DOT BELOW 1ECC;AL # LATIN CAPITAL LETTER O WITH DOT BELOW 1ECD;AL # LATIN SMALL LETTER O WITH DOT BELOW 1ECE;AL # LATIN CAPITAL LETTER O WITH HOOK ABOVE 1ECF;AL # LATIN SMALL LETTER O WITH HOOK ABOVE 1ED0;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED1;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED2;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED3;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED5;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED6;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 1ED7;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE 1ED8;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1ED9;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1EDA;AL # LATIN CAPITAL LETTER O WITH HORN AND ACUTE 1EDB;AL # LATIN SMALL LETTER O WITH HORN AND ACUTE 1EDC;AL # LATIN CAPITAL LETTER O WITH HORN AND GRAVE 1EDD;AL # LATIN SMALL LETTER O WITH HORN AND GRAVE 1EDE;AL # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 1EDF;AL # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE 1EE0;AL # LATIN CAPITAL LETTER O WITH HORN AND TILDE 1EE1;AL # LATIN SMALL LETTER O WITH HORN AND TILDE 1EE2;AL # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 1EE3;AL # LATIN SMALL LETTER O WITH HORN AND DOT BELOW 1EE4;AL # LATIN CAPITAL LETTER U WITH DOT BELOW 1EE5;AL # LATIN SMALL LETTER U WITH DOT BELOW 1EE6;AL # LATIN CAPITAL LETTER U WITH HOOK ABOVE 1EE7;AL # LATIN SMALL LETTER U WITH HOOK ABOVE 1EE8;AL # LATIN CAPITAL LETTER U WITH HORN AND ACUTE 1EE9;AL # LATIN SMALL LETTER U WITH HORN AND ACUTE 1EEA;AL # LATIN CAPITAL LETTER U WITH HORN AND GRAVE 1EEB;AL # LATIN SMALL LETTER U WITH HORN AND GRAVE 1EEC;AL # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 1EED;AL # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE 1EEE;AL # LATIN CAPITAL LETTER U WITH HORN AND TILDE 1EEF;AL # LATIN SMALL LETTER U WITH HORN AND TILDE 1EF0;AL # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 1EF1;AL # LATIN SMALL LETTER U WITH HORN AND DOT BELOW 1EF2;AL # LATIN CAPITAL LETTER Y WITH GRAVE 1EF3;AL # LATIN SMALL LETTER Y WITH GRAVE 1EF4;AL # LATIN CAPITAL LETTER Y WITH DOT BELOW 1EF5;AL # LATIN SMALL LETTER Y WITH DOT BELOW 1EF6;AL # LATIN CAPITAL LETTER Y WITH HOOK ABOVE 1EF7;AL # LATIN SMALL LETTER Y WITH HOOK ABOVE 1EF8;AL # LATIN CAPITAL LETTER Y WITH TILDE 1EF9;AL # LATIN SMALL LETTER Y WITH TILDE 1F00;AL # GREEK SMALL LETTER ALPHA WITH PSILI 1F01;AL # GREEK SMALL LETTER ALPHA WITH DASIA 1F02;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA 1F03;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA 1F04;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA 1F05;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA 1F06;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F07;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F08;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI 1F09;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA 1F0A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 1F0B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 1F0C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 1F0D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 1F0E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F0F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F10;AL # GREEK SMALL LETTER EPSILON WITH PSILI 1F11;AL # GREEK SMALL LETTER EPSILON WITH DASIA 1F12;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA 1F13;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA 1F14;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA 1F15;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA 1F18;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI 1F19;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA 1F1A;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 1F1B;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 1F1C;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 1F1D;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 1F20;AL # GREEK SMALL LETTER ETA WITH PSILI 1F21;AL # GREEK SMALL LETTER ETA WITH DASIA 1F22;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA 1F23;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA 1F24;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA 1F25;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA 1F26;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI 1F27;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI 1F28;AL # GREEK CAPITAL LETTER ETA WITH PSILI 1F29;AL # GREEK CAPITAL LETTER ETA WITH DASIA 1F2A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 1F2B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 1F2C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 1F2D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 1F2E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 1F2F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 1F30;AL # GREEK SMALL LETTER IOTA WITH PSILI 1F31;AL # GREEK SMALL LETTER IOTA WITH DASIA 1F32;AL # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA 1F33;AL # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA 1F34;AL # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA 1F35;AL # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA 1F36;AL # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI 1F37;AL # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI 1F38;AL # GREEK CAPITAL LETTER IOTA WITH PSILI 1F39;AL # GREEK CAPITAL LETTER IOTA WITH DASIA 1F3A;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 1F3B;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 1F3C;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 1F3D;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 1F3E;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 1F3F;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 1F40;AL # GREEK SMALL LETTER OMICRON WITH PSILI 1F41;AL # GREEK SMALL LETTER OMICRON WITH DASIA 1F42;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA 1F43;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA 1F44;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA 1F45;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA 1F48;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI 1F49;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA 1F4A;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 1F4B;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 1F4C;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 1F4D;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 1F50;AL # GREEK SMALL LETTER UPSILON WITH PSILI 1F51;AL # GREEK SMALL LETTER UPSILON WITH DASIA 1F52;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F53;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA 1F54;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F55;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA 1F56;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1F57;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F59;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA 1F5B;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 1F5D;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 1F5F;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F60;AL # GREEK SMALL LETTER OMEGA WITH PSILI 1F61;AL # GREEK SMALL LETTER OMEGA WITH DASIA 1F62;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA 1F63;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA 1F64;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA 1F65;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA 1F66;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F67;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F68;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI 1F69;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA 1F6A;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 1F6B;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 1F6C;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 1F6D;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 1F6E;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F6F;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F70;AL # GREEK SMALL LETTER ALPHA WITH VARIA 1F71;AL # GREEK SMALL LETTER ALPHA WITH OXIA 1F72;AL # GREEK SMALL LETTER EPSILON WITH VARIA 1F73;AL # GREEK SMALL LETTER EPSILON WITH OXIA 1F74;AL # GREEK SMALL LETTER ETA WITH VARIA 1F75;AL # GREEK SMALL LETTER ETA WITH OXIA 1F76;AL # GREEK SMALL LETTER IOTA WITH VARIA 1F77;AL # GREEK SMALL LETTER IOTA WITH OXIA 1F78;AL # GREEK SMALL LETTER OMICRON WITH VARIA 1F79;AL # GREEK SMALL LETTER OMICRON WITH OXIA 1F7A;AL # GREEK SMALL LETTER UPSILON WITH VARIA 1F7B;AL # GREEK SMALL LETTER UPSILON WITH OXIA 1F7C;AL # GREEK SMALL LETTER OMEGA WITH VARIA 1F7D;AL # GREEK SMALL LETTER OMEGA WITH OXIA 1F80;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90;AL # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91;AL # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB0;AL # GREEK SMALL LETTER ALPHA WITH VRACHY 1FB1;AL # GREEK SMALL LETTER ALPHA WITH MACRON 1FB2;AL # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB3;AL # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FB4;AL # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FB6;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FB7;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FB8;AL # GREEK CAPITAL LETTER ALPHA WITH VRACHY 1FB9;AL # GREEK CAPITAL LETTER ALPHA WITH MACRON 1FBA;AL # GREEK CAPITAL LETTER ALPHA WITH VARIA 1FBB;AL # GREEK CAPITAL LETTER ALPHA WITH OXIA 1FBC;AL # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBD;AL # GREEK KORONIS 1FBE;AL # GREEK PROSGEGRAMMENI 1FBF;AL # GREEK PSILI 1FC0;AL # GREEK PERISPOMENI 1FC1;AL # GREEK DIALYTIKA AND PERISPOMENI 1FC2;AL # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC3;AL # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FC4;AL # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FC6;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FC7;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC8;AL # GREEK CAPITAL LETTER EPSILON WITH VARIA 1FC9;AL # GREEK CAPITAL LETTER EPSILON WITH OXIA 1FCA;AL # GREEK CAPITAL LETTER ETA WITH VARIA 1FCB;AL # GREEK CAPITAL LETTER ETA WITH OXIA 1FCC;AL # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FCD;AL # GREEK PSILI AND VARIA 1FCE;AL # GREEK PSILI AND OXIA 1FCF;AL # GREEK PSILI AND PERISPOMENI 1FD0;AL # GREEK SMALL LETTER IOTA WITH VRACHY 1FD1;AL # GREEK SMALL LETTER IOTA WITH MACRON 1FD2;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6;AL # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FD8;AL # GREEK CAPITAL LETTER IOTA WITH VRACHY 1FD9;AL # GREEK CAPITAL LETTER IOTA WITH MACRON 1FDA;AL # GREEK CAPITAL LETTER IOTA WITH VARIA 1FDB;AL # GREEK CAPITAL LETTER IOTA WITH OXIA 1FDD;AL # GREEK DASIA AND VARIA 1FDE;AL # GREEK DASIA AND OXIA 1FDF;AL # GREEK DASIA AND PERISPOMENI 1FE0;AL # GREEK SMALL LETTER UPSILON WITH VRACHY 1FE1;AL # GREEK SMALL LETTER UPSILON WITH MACRON 1FE2;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4;AL # GREEK SMALL LETTER RHO WITH PSILI 1FE5;AL # GREEK SMALL LETTER RHO WITH DASIA 1FE6;AL # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FE8;AL # GREEK CAPITAL LETTER UPSILON WITH VRACHY 1FE9;AL # GREEK CAPITAL LETTER UPSILON WITH MACRON 1FEA;AL # GREEK CAPITAL LETTER UPSILON WITH VARIA 1FEB;AL # GREEK CAPITAL LETTER UPSILON WITH OXIA 1FEC;AL # GREEK CAPITAL LETTER RHO WITH DASIA 1FED;AL # GREEK DIALYTIKA AND VARIA 1FEE;AL # GREEK DIALYTIKA AND OXIA 1FEF;AL # GREEK VARIA 1FF2;AL # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF3;AL # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FF4;AL # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FF6;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI 1FF7;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF8;AL # GREEK CAPITAL LETTER OMICRON WITH VARIA 1FF9;AL # GREEK CAPITAL LETTER OMICRON WITH OXIA 1FFA;AL # GREEK CAPITAL LETTER OMEGA WITH VARIA 1FFB;AL # GREEK CAPITAL LETTER OMEGA WITH OXIA 1FFC;AL # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 1FFD;AL # GREEK OXIA 1FFE;AL # GREEK DASIA 2000;BA # EN QUAD 2001;BA # EM QUAD 2002;BA # EN SPACE 2003;BA # EM SPACE 2004;BA # THREE-PER-EM SPACE 2005;BA # FOUR-PER-EM SPACE 2006;BA # SIX-PER-EM SPACE 2007;GL # FIGURE SPACE 2008;BA # PUNCTUATION SPACE 2009;BA # THIN SPACE 200A;BA # HAIR SPACE 200B;ZW # ZERO WIDTH SPACE 200C;CM # ZERO WIDTH NON-JOINER 200D;CM # ZERO WIDTH JOINER 200E;CM # LEFT-TO-RIGHT MARK 200F;CM # RIGHT-TO-LEFT MARK 2010;BA # HYPHEN 2011;GL # NON-BREAKING HYPHEN 2012;BA # FIGURE DASH 2013;BA # EN DASH 2014;B2 # EM DASH 2015;AI # HORIZONTAL BAR 2016;AI # DOUBLE VERTICAL LINE 2017;AL # DOUBLE LOW LINE 2018;QU # LEFT SINGLE QUOTATION MARK 2019;QU # RIGHT SINGLE QUOTATION MARK 201A;OP # SINGLE LOW-9 QUOTATION MARK 201B;QU # SINGLE HIGH-REVERSED-9 QUOTATION MARK 201C;QU # LEFT DOUBLE QUOTATION MARK 201D;QU # RIGHT DOUBLE QUOTATION MARK 201E;OP # DOUBLE LOW-9 QUOTATION MARK 201F;QU # DOUBLE HIGH-REVERSED-9 QUOTATION MARK 2020;AI # DAGGER 2021;AI # DOUBLE DAGGER 2022;AL # BULLET 2023;AL # TRIANGULAR BULLET 2024;IN # ONE DOT LEADER 2025;IN # TWO DOT LEADER 2026;IN # HORIZONTAL ELLIPSIS 2027;BA # HYPHENATION POINT 2028;BK # LINE SEPARATOR 2029;BK # PARAGRAPH SEPARATOR 202A;CM # LEFT-TO-RIGHT EMBEDDING 202B;CM # RIGHT-TO-LEFT EMBEDDING 202C;CM # POP DIRECTIONAL FORMATTING 202D;CM # LEFT-TO-RIGHT OVERRIDE 202E;CM # RIGHT-TO-LEFT OVERRIDE 202F;GL # NARROW NO-BREAK SPACE 2030;PO # PER MILLE SIGN 2031;PO # PER TEN THOUSAND SIGN 2032;PO # PRIME 2033;PO # DOUBLE PRIME 2034;PO # TRIPLE PRIME 2035;PO # REVERSED PRIME 2036;PO # REVERSED DOUBLE PRIME 2037;PO # REVERSED TRIPLE PRIME 2038;AL # CARET 2039;QU # SINGLE LEFT-POINTING ANGLE QUOTATION MARK 203A;QU # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 203B;AI # REFERENCE MARK 203C;NS # DOUBLE EXCLAMATION MARK 203D;AL # INTERROBANG 203E;AL # OVERLINE 203F;AL # UNDERTIE 2040;AL # CHARACTER TIE 2041;AL # CARET INSERTION POINT 2042;AL # ASTERISM 2043;AL # HYPHEN BULLET 2044;NS # FRACTION SLASH 2045;OP # LEFT SQUARE BRACKET WITH QUILL 2046;CL # RIGHT SQUARE BRACKET WITH QUILL 2047;AL # DOUBLE QUESTION MARK 2048;AL # QUESTION EXCLAMATION MARK 2049;AL # EXCLAMATION QUESTION MARK 204A;AL # TIRONIAN SIGN ET 204B;AL # REVERSED PILCROW SIGN 204C;AL # BLACK LEFTWARDS BULLET 204D;AL # BLACK RIGHTWARDS BULLET 204E;AL # LOW ASTERISK 204F;AL # REVERSED SEMICOLON 2050;AL # CLOSE UP 2051;AL # TWO ASTERISKS ALIGNED VERTICALLY 2052;AL # COMMERCIAL MINUS SIGN 2057;AL # QUADRUPLE PRIME 205F;BA # MEDIUM MATHEMATICAL SPACE 2060;GL # WORD JOINER 2061;AL # FUNCTION APPLICATION 2062;AL # INVISIBLE TIMES 2063;AL # INVISIBLE SEPARATOR 206A;CM # INHIBIT SYMMETRIC SWAPPING 206B;CM # ACTIVATE SYMMETRIC SWAPPING 206C;CM # INHIBIT ARABIC FORM SHAPING 206D;CM # ACTIVATE ARABIC FORM SHAPING 206E;CM # NATIONAL DIGIT SHAPES 206F;CM # NOMINAL DIGIT SHAPES 2070;AL # SUPERSCRIPT ZERO 2071;AL # SUPERSCRIPT LATIN SMALL LETTER I 2074;AI # SUPERSCRIPT FOUR 2075;AL # SUPERSCRIPT FIVE 2076;AL # SUPERSCRIPT SIX 2077;AL # SUPERSCRIPT SEVEN 2078;AL # SUPERSCRIPT EIGHT 2079;AL # SUPERSCRIPT NINE 207A;AL # SUPERSCRIPT PLUS SIGN 207B;AL # SUPERSCRIPT MINUS 207C;AL # SUPERSCRIPT EQUALS SIGN 207D;OP # SUPERSCRIPT LEFT PARENTHESIS 207E;CL # SUPERSCRIPT RIGHT PARENTHESIS 207F;AI # SUPERSCRIPT LATIN SMALL LETTER N 2080;AL # SUBSCRIPT ZERO 2081;AI # SUBSCRIPT ONE 2082;AI # SUBSCRIPT TWO 2083;AI # SUBSCRIPT THREE 2084;AI # SUBSCRIPT FOUR 2085;AL # SUBSCRIPT FIVE 2086;AL # SUBSCRIPT SIX 2087;AL # SUBSCRIPT SEVEN 2088;AL # SUBSCRIPT EIGHT 2089;AL # SUBSCRIPT NINE 208A;AL # SUBSCRIPT PLUS SIGN 208B;AL # SUBSCRIPT MINUS 208C;AL # SUBSCRIPT EQUALS SIGN 208D;OP # SUBSCRIPT LEFT PARENTHESIS 208E;CL # SUBSCRIPT RIGHT PARENTHESIS 20A0;PR # EURO-CURRENCY SIGN 20A1;PR # COLON SIGN 20A2;PR # CRUZEIRO SIGN 20A3;PR # FRENCH FRANC SIGN 20A4;PR # LIRA SIGN 20A5;PR # MILL SIGN 20A6;PR # NAIRA SIGN 20A7;PO # PESETA SIGN 20A8;PR # RUPEE SIGN 20A9;PR # WON SIGN 20AA;PR # NEW SHEQEL SIGN 20AB;PR # DONG SIGN 20AC;PR # EURO SIGN 20AD;PR # KIP SIGN 20AE;PR # TUGRIK SIGN 20AF;PR # DRACHMA SIGN 20B0;PR # GERMAN PENNY SIGN 20B1;PR # PESO SIGN 20D0;CM # COMBINING LEFT HARPOON ABOVE 20D1;CM # COMBINING RIGHT HARPOON ABOVE 20D2;CM # COMBINING LONG VERTICAL LINE OVERLAY 20D3;CM # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;CM # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;CM # COMBINING CLOCKWISE ARROW ABOVE 20D6;CM # COMBINING LEFT ARROW ABOVE 20D7;CM # COMBINING RIGHT ARROW ABOVE 20D8;CM # COMBINING RING OVERLAY 20D9;CM # COMBINING CLOCKWISE RING OVERLAY 20DA;CM # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;CM # COMBINING THREE DOTS ABOVE 20DC;CM # COMBINING FOUR DOTS ABOVE 20DD;CM # COMBINING ENCLOSING CIRCLE 20DE;CM # COMBINING ENCLOSING SQUARE 20DF;CM # COMBINING ENCLOSING DIAMOND 20E0;CM # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;CM # COMBINING LEFT RIGHT ARROW ABOVE 20E2;CM # COMBINING ENCLOSING SCREEN 20E3;CM # COMBINING ENCLOSING KEYCAP 20E4;CM # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;CM # COMBINING REVERSE SOLIDUS OVERLAY 20E6;CM # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;CM # COMBINING ANNUITY SYMBOL 20E8;CM # COMBINING TRIPLE UNDERDOT 20E9;CM # COMBINING WIDE BRIDGE ABOVE 20EA;CM # COMBINING LEFTWARDS ARROW OVERLAY 2100;AL # ACCOUNT OF 2101;AL # ADDRESSED TO THE SUBJECT 2102;AL # DOUBLE-STRUCK CAPITAL C 2103;PO # DEGREE CELSIUS 2104;AL # CENTRE LINE SYMBOL 2105;AI # CARE OF 2106;AL # CADA UNA 2107;AL # EULER CONSTANT 2108;AL # SCRUPLE 2109;PO # DEGREE FAHRENHEIT 210A;AL # SCRIPT SMALL G 210B;AL # SCRIPT CAPITAL H 210C;AL # BLACK-LETTER CAPITAL H 210D;AL # DOUBLE-STRUCK CAPITAL H 210E;AL # PLANCK CONSTANT 210F;AL # PLANCK CONSTANT OVER TWO PI 2110;AL # SCRIPT CAPITAL I 2111;AL # BLACK-LETTER CAPITAL I 2112;AL # SCRIPT CAPITAL L 2113;AI # SCRIPT SMALL L 2114;AL # L B BAR SYMBOL 2115;AL # DOUBLE-STRUCK CAPITAL N 2116;PR # NUMERO SIGN 2117;AL # SOUND RECORDING COPYRIGHT 2118;AL # SCRIPT CAPITAL P 2119;AL # DOUBLE-STRUCK CAPITAL P 211A;AL # DOUBLE-STRUCK CAPITAL Q 211B;AL # SCRIPT CAPITAL R 211C;AL # BLACK-LETTER CAPITAL R 211D;AL # DOUBLE-STRUCK CAPITAL R 211E;AL # PRESCRIPTION TAKE 211F;AL # RESPONSE 2120;AL # SERVICE MARK 2121;AI # TELEPHONE SIGN 2122;AI # TRADE MARK SIGN 2123;AL # VERSICLE 2124;AL # DOUBLE-STRUCK CAPITAL Z 2125;AL # OUNCE SIGN 2126;PO # OHM SIGN 2127;AL # INVERTED OHM SIGN 2128;AL # BLACK-LETTER CAPITAL Z 2129;AL # TURNED GREEK SMALL LETTER IOTA 212A;AL # KELVIN SIGN 212B;AI # ANGSTROM SIGN 212C;AL # SCRIPT CAPITAL B 212D;AL # BLACK-LETTER CAPITAL C 212E;AL # ESTIMATED SYMBOL 212F;AL # SCRIPT SMALL E 2130;AL # SCRIPT CAPITAL E 2131;AL # SCRIPT CAPITAL F 2132;AL # TURNED CAPITAL F 2133;AL # SCRIPT CAPITAL M 2134;AL # SCRIPT SMALL O 2135;AL # ALEF SYMBOL 2136;AL # BET SYMBOL 2137;AL # GIMEL SYMBOL 2138;AL # DALET SYMBOL 2139;AL # INFORMATION SOURCE 213A;AL # ROTATED CAPITAL Q 213D;AL # DOUBLE-STRUCK SMALL GAMMA 213E;AL # DOUBLE-STRUCK CAPITAL GAMMA 213F;AL # DOUBLE-STRUCK CAPITAL PI 2140;AI # DOUBLE-STRUCK N-ARY SUMMATION 2141;AL # TURNED SANS-SERIF CAPITAL G 2142;AL # TURNED SANS-SERIF CAPITAL L 2143;AL # REVERSED SANS-SERIF CAPITAL L 2144;AL # TURNED SANS-SERIF CAPITAL Y 2145;AL # DOUBLE-STRUCK ITALIC CAPITAL D 2146;AL # DOUBLE-STRUCK ITALIC SMALL D 2147;AL # DOUBLE-STRUCK ITALIC SMALL E 2148;AL # DOUBLE-STRUCK ITALIC SMALL I 2149;AL # DOUBLE-STRUCK ITALIC SMALL J 214A;AL # PROPERTY LINE 214B;AL # TURNED AMPERSAND 2153;AL # VULGAR FRACTION ONE THIRD 2154;AI # VULGAR FRACTION TWO THIRDS 2155;AI # VULGAR FRACTION ONE FIFTH 2156;AL # VULGAR FRACTION TWO FIFTHS 2157;AL # VULGAR FRACTION THREE FIFTHS 2158;AL # VULGAR FRACTION FOUR FIFTHS 2159;AL # VULGAR FRACTION ONE SIXTH 215A;AL # VULGAR FRACTION FIVE SIXTHS 215B;AI # VULGAR FRACTION ONE EIGHTH 215C;AL # VULGAR FRACTION THREE EIGHTHS 215D;AL # VULGAR FRACTION FIVE EIGHTHS 215E;AI # VULGAR FRACTION SEVEN EIGHTHS 215F;AL # FRACTION NUMERATOR ONE 2160;AI # ROMAN NUMERAL ONE 2161;AI # ROMAN NUMERAL TWO 2162;AI # ROMAN NUMERAL THREE 2163;AI # ROMAN NUMERAL FOUR 2164;AI # ROMAN NUMERAL FIVE 2165;AI # ROMAN NUMERAL SIX 2166;AI # ROMAN NUMERAL SEVEN 2167;AI # ROMAN NUMERAL EIGHT 2168;AI # ROMAN NUMERAL NINE 2169;AI # ROMAN NUMERAL TEN 216A;AI # ROMAN NUMERAL ELEVEN 216B;AI # ROMAN NUMERAL TWELVE 216C;AL # ROMAN NUMERAL FIFTY 216D;AL # ROMAN NUMERAL ONE HUNDRED 216E;AL # ROMAN NUMERAL FIVE HUNDRED 216F;AL # ROMAN NUMERAL ONE THOUSAND 2170;AI # SMALL ROMAN NUMERAL ONE 2171;AI # SMALL ROMAN NUMERAL TWO 2172;AI # SMALL ROMAN NUMERAL THREE 2173;AI # SMALL ROMAN NUMERAL FOUR 2174;AI # SMALL ROMAN NUMERAL FIVE 2175;AI # SMALL ROMAN NUMERAL SIX 2176;AI # SMALL ROMAN NUMERAL SEVEN 2177;AI # SMALL ROMAN NUMERAL EIGHT 2178;AI # SMALL ROMAN NUMERAL NINE 2179;AI # SMALL ROMAN NUMERAL TEN 217A;AL # SMALL ROMAN NUMERAL ELEVEN 217B;AL # SMALL ROMAN NUMERAL TWELVE 217C;AL # SMALL ROMAN NUMERAL FIFTY 217D;AL # SMALL ROMAN NUMERAL ONE HUNDRED 217E;AL # SMALL ROMAN NUMERAL FIVE HUNDRED 217F;AL # SMALL ROMAN NUMERAL ONE THOUSAND 2180;AL # ROMAN NUMERAL ONE THOUSAND C D 2181;AL # ROMAN NUMERAL FIVE THOUSAND 2182;AL # ROMAN NUMERAL TEN THOUSAND 2183;AL # ROMAN NUMERAL REVERSED ONE HUNDRED 2190;AI # LEFTWARDS ARROW 2191;AI # UPWARDS ARROW 2192;AI # RIGHTWARDS ARROW 2193;AI # DOWNWARDS ARROW 2194;AI # LEFT RIGHT ARROW 2195;AI # UP DOWN ARROW 2196;AI # NORTH WEST ARROW 2197;AI # NORTH EAST ARROW 2198;AI # SOUTH EAST ARROW 2199;AI # SOUTH WEST ARROW 219A;AL # LEFTWARDS ARROW WITH STROKE 219B;AL # RIGHTWARDS ARROW WITH STROKE 219C;AL # LEFTWARDS WAVE ARROW 219D;AL # RIGHTWARDS WAVE ARROW 219E;AL # LEFTWARDS TWO HEADED ARROW 219F;AL # UPWARDS TWO HEADED ARROW 21A0;AL # RIGHTWARDS TWO HEADED ARROW 21A1;AL # DOWNWARDS TWO HEADED ARROW 21A2;AL # LEFTWARDS ARROW WITH TAIL 21A3;AL # RIGHTWARDS ARROW WITH TAIL 21A4;AL # LEFTWARDS ARROW FROM BAR 21A5;AL # UPWARDS ARROW FROM BAR 21A6;AL # RIGHTWARDS ARROW FROM BAR 21A7;AL # DOWNWARDS ARROW FROM BAR 21A8;AL # UP DOWN ARROW WITH BASE 21A9;AL # LEFTWARDS ARROW WITH HOOK 21AA;AL # RIGHTWARDS ARROW WITH HOOK 21AB;AL # LEFTWARDS ARROW WITH LOOP 21AC;AL # RIGHTWARDS ARROW WITH LOOP 21AD;AL # LEFT RIGHT WAVE ARROW 21AE;AL # LEFT RIGHT ARROW WITH STROKE 21AF;AL # DOWNWARDS ZIGZAG ARROW 21B0;AL # UPWARDS ARROW WITH TIP LEFTWARDS 21B1;AL # UPWARDS ARROW WITH TIP RIGHTWARDS 21B2;AL # DOWNWARDS ARROW WITH TIP LEFTWARDS 21B3;AL # DOWNWARDS ARROW WITH TIP RIGHTWARDS 21B4;AL # RIGHTWARDS ARROW WITH CORNER DOWNWARDS 21B5;AL # DOWNWARDS ARROW WITH CORNER LEFTWARDS 21B6;AL # ANTICLOCKWISE TOP SEMICIRCLE ARROW 21B7;AL # CLOCKWISE TOP SEMICIRCLE ARROW 21B8;AL # NORTH WEST ARROW TO LONG BAR 21B9;AL # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR 21BA;AL # ANTICLOCKWISE OPEN CIRCLE ARROW 21BB;AL # CLOCKWISE OPEN CIRCLE ARROW 21BC;AL # LEFTWARDS HARPOON WITH BARB UPWARDS 21BD;AL # LEFTWARDS HARPOON WITH BARB DOWNWARDS 21BE;AL # UPWARDS HARPOON WITH BARB RIGHTWARDS 21BF;AL # UPWARDS HARPOON WITH BARB LEFTWARDS 21C0;AL # RIGHTWARDS HARPOON WITH BARB UPWARDS 21C1;AL # RIGHTWARDS HARPOON WITH BARB DOWNWARDS 21C2;AL # DOWNWARDS HARPOON WITH BARB RIGHTWARDS 21C3;AL # DOWNWARDS HARPOON WITH BARB LEFTWARDS 21C4;AL # RIGHTWARDS ARROW OVER LEFTWARDS ARROW 21C5;AL # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW 21C6;AL # LEFTWARDS ARROW OVER RIGHTWARDS ARROW 21C7;AL # LEFTWARDS PAIRED ARROWS 21C8;AL # UPWARDS PAIRED ARROWS 21C9;AL # RIGHTWARDS PAIRED ARROWS 21CA;AL # DOWNWARDS PAIRED ARROWS 21CB;AL # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON 21CC;AL # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON 21CD;AL # LEFTWARDS DOUBLE ARROW WITH STROKE 21CE;AL # LEFT RIGHT DOUBLE ARROW WITH STROKE 21CF;AL # RIGHTWARDS DOUBLE ARROW WITH STROKE 21D0;AL # LEFTWARDS DOUBLE ARROW 21D1;AL # UPWARDS DOUBLE ARROW 21D2;AI # RIGHTWARDS DOUBLE ARROW 21D3;AL # DOWNWARDS DOUBLE ARROW 21D4;AI # LEFT RIGHT DOUBLE ARROW 21D5;AL # UP DOWN DOUBLE ARROW 21D6;AL # NORTH WEST DOUBLE ARROW 21D7;AL # NORTH EAST DOUBLE ARROW 21D8;AL # SOUTH EAST DOUBLE ARROW 21D9;AL # SOUTH WEST DOUBLE ARROW 21DA;AL # LEFTWARDS TRIPLE ARROW 21DB;AL # RIGHTWARDS TRIPLE ARROW 21DC;AL # LEFTWARDS SQUIGGLE ARROW 21DD;AL # RIGHTWARDS SQUIGGLE ARROW 21DE;AL # UPWARDS ARROW WITH DOUBLE STROKE 21DF;AL # DOWNWARDS ARROW WITH DOUBLE STROKE 21E0;AL # LEFTWARDS DASHED ARROW 21E1;AL # UPWARDS DASHED ARROW 21E2;AL # RIGHTWARDS DASHED ARROW 21E3;AL # DOWNWARDS DASHED ARROW 21E4;AL # LEFTWARDS ARROW TO BAR 21E5;AL # RIGHTWARDS ARROW TO BAR 21E6;AL # LEFTWARDS WHITE ARROW 21E7;AL # UPWARDS WHITE ARROW 21E8;AL # RIGHTWARDS WHITE ARROW 21E9;AL # DOWNWARDS WHITE ARROW 21EA;AL # UPWARDS WHITE ARROW FROM BAR 21EB;AL # UPWARDS WHITE ARROW ON PEDESTAL 21EC;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR 21ED;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR 21EE;AL # UPWARDS WHITE DOUBLE ARROW 21EF;AL # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL 21F0;AL # RIGHTWARDS WHITE ARROW FROM WALL 21F1;AL # NORTH WEST ARROW TO CORNER 21F2;AL # SOUTH EAST ARROW TO CORNER 21F3;AL # UP DOWN WHITE ARROW 21F4;AL # RIGHT ARROW WITH SMALL CIRCLE 21F5;AL # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW 21F6;AL # THREE RIGHTWARDS ARROWS 21F7;AL # LEFTWARDS ARROW WITH VERTICAL STROKE 21F8;AL # RIGHTWARDS ARROW WITH VERTICAL STROKE 21F9;AL # LEFT RIGHT ARROW WITH VERTICAL STROKE 21FA;AL # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE 21FB;AL # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE 21FC;AL # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE 21FD;AL # LEFTWARDS OPEN-HEADED ARROW 21FE;AL # RIGHTWARDS OPEN-HEADED ARROW 21FF;AL # LEFT RIGHT OPEN-HEADED ARROW 2200;AI # FOR ALL 2201;AL # COMPLEMENT 2202;AI # PARTIAL DIFFERENTIAL 2203;AI # THERE EXISTS 2204;AL # THERE DOES NOT EXIST 2205;AL # EMPTY SET 2206;AL # INCREMENT 2207;AI # NABLA 2208;AI # ELEMENT OF 2209;AL # NOT AN ELEMENT OF 220A;AL # SMALL ELEMENT OF 220B;AI # CONTAINS AS MEMBER 220C;AL # DOES NOT CONTAIN AS MEMBER 220D;AL # SMALL CONTAINS AS MEMBER 220E;AL # END OF PROOF 220F;AI # N-ARY PRODUCT 2210;AL # N-ARY COPRODUCT 2211;AI # N-ARY SUMMATION 2212;PR # MINUS SIGN 2213;PR # MINUS-OR-PLUS SIGN 2214;AL # DOT PLUS 2215;AI # DIVISION SLASH 2216;AL # SET MINUS 2217;AL # ASTERISK OPERATOR 2218;AL # RING OPERATOR 2219;AL # BULLET OPERATOR 221A;AI # SQUARE ROOT 221B;AL # CUBE ROOT 221C;AL # FOURTH ROOT 221D;AI # PROPORTIONAL TO 221E;AI # INFINITY 221F;AI # RIGHT ANGLE 2220;AI # ANGLE 2221;AL # MEASURED ANGLE 2222;AL # SPHERICAL ANGLE 2223;AI # DIVIDES 2224;AL # DOES NOT DIVIDE 2225;AI # PARALLEL TO 2226;AL # NOT PARALLEL TO 2227;AI # LOGICAL AND 2228;AI # LOGICAL OR 2229;AI # INTERSECTION 222A;AI # UNION 222B;AI # INTEGRAL 222C;AI # DOUBLE INTEGRAL 222D;AL # TRIPLE INTEGRAL 222E;AI # CONTOUR INTEGRAL 222F;AL # SURFACE INTEGRAL 2230;AL # VOLUME INTEGRAL 2231;AL # CLOCKWISE INTEGRAL 2232;AL # CLOCKWISE CONTOUR INTEGRAL 2233;AL # ANTICLOCKWISE CONTOUR INTEGRAL 2234;AI # THEREFORE 2235;AI # BECAUSE 2236;AI # RATIO 2237;AI # PROPORTION 2238;AL # DOT MINUS 2239;AL # EXCESS 223A;AL # GEOMETRIC PROPORTION 223B;AL # HOMOTHETIC 223C;AI # TILDE OPERATOR 223D;AI # REVERSED TILDE 223E;AL # INVERTED LAZY S 223F;AL # SINE WAVE 2240;AL # WREATH PRODUCT 2241;AL # NOT TILDE 2242;AL # MINUS TILDE 2243;AL # ASYMPTOTICALLY EQUAL TO 2244;AL # NOT ASYMPTOTICALLY EQUAL TO 2245;AL # APPROXIMATELY EQUAL TO 2246;AL # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO 2247;AL # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO 2248;AI # ALMOST EQUAL TO 2249;AL # NOT ALMOST EQUAL TO 224A;AL # ALMOST EQUAL OR EQUAL TO 224B;AL # TRIPLE TILDE 224C;AI # ALL EQUAL TO 224D;AL # EQUIVALENT TO 224E;AL # GEOMETRICALLY EQUIVALENT TO 224F;AL # DIFFERENCE BETWEEN 2250;AL # APPROACHES THE LIMIT 2251;AL # GEOMETRICALLY EQUAL TO 2252;AI # APPROXIMATELY EQUAL TO OR THE IMAGE OF 2253;AL # IMAGE OF OR APPROXIMATELY EQUAL TO 2254;AL # COLON EQUALS 2255;AL # EQUALS COLON 2256;AL # RING IN EQUAL TO 2257;AL # RING EQUAL TO 2258;AL # CORRESPONDS TO 2259;AL # ESTIMATES 225A;AL # EQUIANGULAR TO 225B;AL # STAR EQUALS 225C;AL # DELTA EQUAL TO 225D;AL # EQUAL TO BY DEFINITION 225E;AL # MEASURED BY 225F;AL # QUESTIONED EQUAL TO 2260;AI # NOT EQUAL TO 2261;AI # IDENTICAL TO 2262;AL # NOT IDENTICAL TO 2263;AL # STRICTLY EQUIVALENT TO 2264;AI # LESS-THAN OR EQUAL TO 2265;AI # GREATER-THAN OR EQUAL TO 2266;AI # LESS-THAN OVER EQUAL TO 2267;AI # GREATER-THAN OVER EQUAL TO 2268;AL # LESS-THAN BUT NOT EQUAL TO 2269;AL # GREATER-THAN BUT NOT EQUAL TO 226A;AI # MUCH LESS-THAN 226B;AI # MUCH GREATER-THAN 226C;AL # BETWEEN 226D;AL # NOT EQUIVALENT TO 226E;AI # NOT LESS-THAN 226F;AI # NOT GREATER-THAN 2270;AL # NEITHER LESS-THAN NOR EQUAL TO 2271;AL # NEITHER GREATER-THAN NOR EQUAL TO 2272;AL # LESS-THAN OR EQUIVALENT TO 2273;AL # GREATER-THAN OR EQUIVALENT TO 2274;AL # NEITHER LESS-THAN NOR EQUIVALENT TO 2275;AL # NEITHER GREATER-THAN NOR EQUIVALENT TO 2276;AL # LESS-THAN OR GREATER-THAN 2277;AL # GREATER-THAN OR LESS-THAN 2278;AL # NEITHER LESS-THAN NOR GREATER-THAN 2279;AL # NEITHER GREATER-THAN NOR LESS-THAN 227A;AL # PRECEDES 227B;AL # SUCCEEDS 227C;AL # PRECEDES OR EQUAL TO 227D;AL # SUCCEEDS OR EQUAL TO 227E;AL # PRECEDES OR EQUIVALENT TO 227F;AL # SUCCEEDS OR EQUIVALENT TO 2280;AL # DOES NOT PRECEDE 2281;AL # DOES NOT SUCCEED 2282;AI # SUBSET OF 2283;AI # SUPERSET OF 2284;AL # NOT A SUBSET OF 2285;AL # NOT A SUPERSET OF 2286;AI # SUBSET OF OR EQUAL TO 2287;AI # SUPERSET OF OR EQUAL TO 2288;AL # NEITHER A SUBSET OF NOR EQUAL TO 2289;AL # NEITHER A SUPERSET OF NOR EQUAL TO 228A;AL # SUBSET OF WITH NOT EQUAL TO 228B;AL # SUPERSET OF WITH NOT EQUAL TO 228C;AL # MULTISET 228D;AL # MULTISET MULTIPLICATION 228E;AL # MULTISET UNION 228F;AL # SQUARE IMAGE OF 2290;AL # SQUARE ORIGINAL OF 2291;AL # SQUARE IMAGE OF OR EQUAL TO 2292;AL # SQUARE ORIGINAL OF OR EQUAL TO 2293;AL # SQUARE CAP 2294;AL # SQUARE CUP 2295;AI # CIRCLED PLUS 2296;AL # CIRCLED MINUS 2297;AL # CIRCLED TIMES 2298;AL # CIRCLED DIVISION SLASH 2299;AI # CIRCLED DOT OPERATOR 229A;AL # CIRCLED RING OPERATOR 229B;AL # CIRCLED ASTERISK OPERATOR 229C;AL # CIRCLED EQUALS 229D;AL # CIRCLED DASH 229E;AL # SQUARED PLUS 229F;AL # SQUARED MINUS 22A0;AL # SQUARED TIMES 22A1;AL # SQUARED DOT OPERATOR 22A2;AL # RIGHT TACK 22A3;AL # LEFT TACK 22A4;AL # DOWN TACK 22A5;AI # UP TACK 22A6;AL # ASSERTION 22A7;AL # MODELS 22A8;AL # TRUE 22A9;AL # FORCES 22AA;AL # TRIPLE VERTICAL BAR RIGHT TURNSTILE 22AB;AL # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE 22AC;AL # DOES NOT PROVE 22AD;AL # NOT TRUE 22AE;AL # DOES NOT FORCE 22AF;AL # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE 22B0;AL # PRECEDES UNDER RELATION 22B1;AL # SUCCEEDS UNDER RELATION 22B2;AL # NORMAL SUBGROUP OF 22B3;AL # CONTAINS AS NORMAL SUBGROUP 22B4;AL # NORMAL SUBGROUP OF OR EQUAL TO 22B5;AL # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO 22B6;AL # ORIGINAL OF 22B7;AL # IMAGE OF 22B8;AL # MULTIMAP 22B9;AL # HERMITIAN CONJUGATE MATRIX 22BA;AL # INTERCALATE 22BB;AL # XOR 22BC;AL # NAND 22BD;AL # NOR 22BE;AL # RIGHT ANGLE WITH ARC 22BF;AI # RIGHT TRIANGLE 22C0;AL # N-ARY LOGICAL AND 22C1;AL # N-ARY LOGICAL OR 22C2;AL # N-ARY INTERSECTION 22C3;AL # N-ARY UNION 22C4;AL # DIAMOND OPERATOR 22C5;AL # DOT OPERATOR 22C6;AL # STAR OPERATOR 22C7;AL # DIVISION TIMES 22C8;AL # BOWTIE 22C9;AL # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT 22CA;AL # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT 22CB;AL # LEFT SEMIDIRECT PRODUCT 22CC;AL # RIGHT SEMIDIRECT PRODUCT 22CD;AL # REVERSED TILDE EQUALS 22CE;AL # CURLY LOGICAL OR 22CF;AL # CURLY LOGICAL AND 22D0;AL # DOUBLE SUBSET 22D1;AL # DOUBLE SUPERSET 22D2;AL # DOUBLE INTERSECTION 22D3;AL # DOUBLE UNION 22D4;AL # PITCHFORK 22D5;AL # EQUAL AND PARALLEL TO 22D6;AL # LESS-THAN WITH DOT 22D7;AL # GREATER-THAN WITH DOT 22D8;AL # VERY MUCH LESS-THAN 22D9;AL # VERY MUCH GREATER-THAN 22DA;AL # LESS-THAN EQUAL TO OR GREATER-THAN 22DB;AL # GREATER-THAN EQUAL TO OR LESS-THAN 22DC;AL # EQUAL TO OR LESS-THAN 22DD;AL # EQUAL TO OR GREATER-THAN 22DE;AL # EQUAL TO OR PRECEDES 22DF;AL # EQUAL TO OR SUCCEEDS 22E0;AL # DOES NOT PRECEDE OR EQUAL 22E1;AL # DOES NOT SUCCEED OR EQUAL 22E2;AL # NOT SQUARE IMAGE OF OR EQUAL TO 22E3;AL # NOT SQUARE ORIGINAL OF OR EQUAL TO 22E4;AL # SQUARE IMAGE OF OR NOT EQUAL TO 22E5;AL # SQUARE ORIGINAL OF OR NOT EQUAL TO 22E6;AL # LESS-THAN BUT NOT EQUIVALENT TO 22E7;AL # GREATER-THAN BUT NOT EQUIVALENT TO 22E8;AL # PRECEDES BUT NOT EQUIVALENT TO 22E9;AL # SUCCEEDS BUT NOT EQUIVALENT TO 22EA;AL # NOT NORMAL SUBGROUP OF 22EB;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP 22EC;AL # NOT NORMAL SUBGROUP OF OR EQUAL TO 22ED;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL 22EE;AL # VERTICAL ELLIPSIS 22EF;AL # MIDLINE HORIZONTAL ELLIPSIS 22F0;AL # UP RIGHT DIAGONAL ELLIPSIS 22F1;AL # DOWN RIGHT DIAGONAL ELLIPSIS 22F2;AL # ELEMENT OF WITH LONG HORIZONTAL STROKE 22F3;AL # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F4;AL # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F5;AL # ELEMENT OF WITH DOT ABOVE 22F6;AL # ELEMENT OF WITH OVERBAR 22F7;AL # SMALL ELEMENT OF WITH OVERBAR 22F8;AL # ELEMENT OF WITH UNDERBAR 22F9;AL # ELEMENT OF WITH TWO HORIZONTAL STROKES 22FA;AL # CONTAINS WITH LONG HORIZONTAL STROKE 22FB;AL # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FC;AL # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FD;AL # CONTAINS WITH OVERBAR 22FE;AL # SMALL CONTAINS WITH OVERBAR 22FF;AL # Z NOTATION BAG MEMBERSHIP 2300;AL # DIAMETER SIGN 2301;AL # ELECTRIC ARROW 2302;AL # HOUSE 2303;AL # UP ARROWHEAD 2304;AL # DOWN ARROWHEAD 2305;AL # PROJECTIVE 2306;AL # PERSPECTIVE 2307;AL # WAVY LINE 2308;AL # LEFT CEILING 2309;AL # RIGHT CEILING 230A;AL # LEFT FLOOR 230B;AL # RIGHT FLOOR 230C;AL # BOTTOM RIGHT CROP 230D;AL # BOTTOM LEFT CROP 230E;AL # TOP RIGHT CROP 230F;AL # TOP LEFT CROP 2310;AL # REVERSED NOT SIGN 2311;AL # SQUARE LOZENGE 2312;AI # ARC 2313;AL # SEGMENT 2314;AL # SECTOR 2315;AL # TELEPHONE RECORDER 2316;AL # POSITION INDICATOR 2317;AL # VIEWDATA SQUARE 2318;AL # PLACE OF INTEREST SIGN 2319;AL # TURNED NOT SIGN 231A;AL # WATCH 231B;AL # HOURGLASS 231C;AL # TOP LEFT CORNER 231D;AL # TOP RIGHT CORNER 231E;AL # BOTTOM LEFT CORNER 231F;AL # BOTTOM RIGHT CORNER 2320;AL # TOP HALF INTEGRAL 2321;AL # BOTTOM HALF INTEGRAL 2322;AL # FROWN 2323;AL # SMILE 2324;AL # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS 2325;AL # OPTION KEY 2326;AL # ERASE TO THE RIGHT 2327;AL # X IN A RECTANGLE BOX 2328;AL # KEYBOARD 2329;OP # LEFT-POINTING ANGLE BRACKET 232A;CL # RIGHT-POINTING ANGLE BRACKET 232B;AL # ERASE TO THE LEFT 232C;AL # BENZENE RING 232D;AL # CYLINDRICITY 232E;AL # ALL AROUND-PROFILE 232F;AL # SYMMETRY 2330;AL # TOTAL RUNOUT 2331;AL # DIMENSION ORIGIN 2332;AL # CONICAL TAPER 2333;AL # SLOPE 2334;AL # COUNTERBORE 2335;AL # COUNTERSINK 2336;AL # APL FUNCTIONAL SYMBOL I-BEAM 2337;AL # APL FUNCTIONAL SYMBOL SQUISH QUAD 2338;AL # APL FUNCTIONAL SYMBOL QUAD EQUAL 2339;AL # APL FUNCTIONAL SYMBOL QUAD DIVIDE 233A;AL # APL FUNCTIONAL SYMBOL QUAD DIAMOND 233B;AL # APL FUNCTIONAL SYMBOL QUAD JOT 233C;AL # APL FUNCTIONAL SYMBOL QUAD CIRCLE 233D;AL # APL FUNCTIONAL SYMBOL CIRCLE STILE 233E;AL # APL FUNCTIONAL SYMBOL CIRCLE JOT 233F;AL # APL FUNCTIONAL SYMBOL SLASH BAR 2340;AL # APL FUNCTIONAL SYMBOL BACKSLASH BAR 2341;AL # APL FUNCTIONAL SYMBOL QUAD SLASH 2342;AL # APL FUNCTIONAL SYMBOL QUAD BACKSLASH 2343;AL # APL FUNCTIONAL SYMBOL QUAD LESS-THAN 2344;AL # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN 2345;AL # APL FUNCTIONAL SYMBOL LEFTWARDS VANE 2346;AL # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE 2347;AL # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW 2348;AL # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW 2349;AL # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH 234A;AL # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR 234B;AL # APL FUNCTIONAL SYMBOL DELTA STILE 234C;AL # APL FUNCTIONAL SYMBOL QUAD DOWN CARET 234D;AL # APL FUNCTIONAL SYMBOL QUAD DELTA 234E;AL # APL FUNCTIONAL SYMBOL DOWN TACK JOT 234F;AL # APL FUNCTIONAL SYMBOL UPWARDS VANE 2350;AL # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW 2351;AL # APL FUNCTIONAL SYMBOL UP TACK OVERBAR 2352;AL # APL FUNCTIONAL SYMBOL DEL STILE 2353;AL # APL FUNCTIONAL SYMBOL QUAD UP CARET 2354;AL # APL FUNCTIONAL SYMBOL QUAD DEL 2355;AL # APL FUNCTIONAL SYMBOL UP TACK JOT 2356;AL # APL FUNCTIONAL SYMBOL DOWNWARDS VANE 2357;AL # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW 2358;AL # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR 2359;AL # APL FUNCTIONAL SYMBOL DELTA UNDERBAR 235A;AL # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR 235B;AL # APL FUNCTIONAL SYMBOL JOT UNDERBAR 235C;AL # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR 235D;AL # APL FUNCTIONAL SYMBOL UP SHOE JOT 235E;AL # APL FUNCTIONAL SYMBOL QUOTE QUAD 235F;AL # APL FUNCTIONAL SYMBOL CIRCLE STAR 2360;AL # APL FUNCTIONAL SYMBOL QUAD COLON 2361;AL # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS 2362;AL # APL FUNCTIONAL SYMBOL DEL DIAERESIS 2363;AL # APL FUNCTIONAL SYMBOL STAR DIAERESIS 2364;AL # APL FUNCTIONAL SYMBOL JOT DIAERESIS 2365;AL # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS 2366;AL # APL FUNCTIONAL SYMBOL DOWN SHOE STILE 2367;AL # APL FUNCTIONAL SYMBOL LEFT SHOE STILE 2368;AL # APL FUNCTIONAL SYMBOL TILDE DIAERESIS 2369;AL # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS 236A;AL # APL FUNCTIONAL SYMBOL COMMA BAR 236B;AL # APL FUNCTIONAL SYMBOL DEL TILDE 236C;AL # APL FUNCTIONAL SYMBOL ZILDE 236D;AL # APL FUNCTIONAL SYMBOL STILE TILDE 236E;AL # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR 236F;AL # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL 2370;AL # APL FUNCTIONAL SYMBOL QUAD QUESTION 2371;AL # APL FUNCTIONAL SYMBOL DOWN CARET TILDE 2372;AL # APL FUNCTIONAL SYMBOL UP CARET TILDE 2373;AL # APL FUNCTIONAL SYMBOL IOTA 2374;AL # APL FUNCTIONAL SYMBOL RHO 2375;AL # APL FUNCTIONAL SYMBOL OMEGA 2376;AL # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR 2377;AL # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR 2378;AL # APL FUNCTIONAL SYMBOL IOTA UNDERBAR 2379;AL # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR 237A;AL # APL FUNCTIONAL SYMBOL ALPHA 237B;AL # NOT CHECK MARK 237C;AL # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW 237D;AL # SHOULDERED OPEN BOX 237E;AL # BELL SYMBOL 237F;AL # VERTICAL LINE WITH MIDDLE DOT 2380;AL # INSERTION SYMBOL 2381;AL # CONTINUOUS UNDERLINE SYMBOL 2382;AL # DISCONTINUOUS UNDERLINE SYMBOL 2383;AL # EMPHASIS SYMBOL 2384;AL # COMPOSITION SYMBOL 2385;AL # WHITE SQUARE WITH CENTRE VERTICAL LINE 2386;AL # ENTER SYMBOL 2387;AL # ALTERNATIVE KEY SYMBOL 2388;AL # HELM SYMBOL 2389;AL # CIRCLED HORIZONTAL BAR WITH NOTCH 238A;AL # CIRCLED TRIANGLE DOWN 238B;AL # BROKEN CIRCLE WITH NORTHWEST ARROW 238C;AL # UNDO SYMBOL 238D;AL # MONOSTABLE SYMBOL 238E;AL # HYSTERESIS SYMBOL 238F;AL # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL 2390;AL # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL 2391;AL # PASSIVE-PULL-DOWN-OUTPUT SYMBOL 2392;AL # PASSIVE-PULL-UP-OUTPUT SYMBOL 2393;AL # DIRECT CURRENT SYMBOL FORM TWO 2394;AL # SOFTWARE-FUNCTION SYMBOL 2395;AL # APL FUNCTIONAL SYMBOL QUAD 2396;AL # DECIMAL SEPARATOR KEY SYMBOL 2397;AL # PREVIOUS PAGE 2398;AL # NEXT PAGE 2399;AL # PRINT SCREEN SYMBOL 239A;AL # CLEAR SCREEN SYMBOL 239B;AL # LEFT PARENTHESIS UPPER HOOK 239C;AL # LEFT PARENTHESIS EXTENSION 239D;AL # LEFT PARENTHESIS LOWER HOOK 239E;AL # RIGHT PARENTHESIS UPPER HOOK 239F;AL # RIGHT PARENTHESIS EXTENSION 23A0;AL # RIGHT PARENTHESIS LOWER HOOK 23A1;AL # LEFT SQUARE BRACKET UPPER CORNER 23A2;AL # LEFT SQUARE BRACKET EXTENSION 23A3;AL # LEFT SQUARE BRACKET LOWER CORNER 23A4;AL # RIGHT SQUARE BRACKET UPPER CORNER 23A5;AL # RIGHT SQUARE BRACKET EXTENSION 23A6;AL # RIGHT SQUARE BRACKET LOWER CORNER 23A7;AL # LEFT CURLY BRACKET UPPER HOOK 23A8;AL # LEFT CURLY BRACKET MIDDLE PIECE 23A9;AL # LEFT CURLY BRACKET LOWER HOOK 23AA;AL # CURLY BRACKET EXTENSION 23AB;AL # RIGHT CURLY BRACKET UPPER HOOK 23AC;AL # RIGHT CURLY BRACKET MIDDLE PIECE 23AD;AL # RIGHT CURLY BRACKET LOWER HOOK 23AE;AL # INTEGRAL EXTENSION 23AF;AL # HORIZONTAL LINE EXTENSION 23B0;AL # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION 23B1;AL # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION 23B2;AL # SUMMATION TOP 23B3;AL # SUMMATION BOTTOM 23B4;OP # TOP SQUARE BRACKET 23B5;CL # BOTTOM SQUARE BRACKET 23B6;QU # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET 23B7;AL # RADICAL SYMBOL BOTTOM 23B8;AL # LEFT VERTICAL BOX LINE 23B9;AL # RIGHT VERTICAL BOX LINE 23BA;AL # HORIZONTAL SCAN LINE-1 23BB;AL # HORIZONTAL SCAN LINE-3 23BC;AL # HORIZONTAL SCAN LINE-7 23BD;AL # HORIZONTAL SCAN LINE-9 23BE;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT 23BF;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT 23C0;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE 23C1;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE 23C2;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE 23C3;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE 23C4;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE 23C5;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE 23C6;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE 23C7;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE 23C8;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE 23C9;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL 23CA;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL 23CB;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT 23CC;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT 23CD;AL # SQUARE FOOT 23CE;AL # RETURN SYMBOL 2400;AL # SYMBOL FOR NULL 2401;AL # SYMBOL FOR START OF HEADING 2402;AL # SYMBOL FOR START OF TEXT 2403;AL # SYMBOL FOR END OF TEXT 2404;AL # SYMBOL FOR END OF TRANSMISSION 2405;AL # SYMBOL FOR ENQUIRY 2406;AL # SYMBOL FOR ACKNOWLEDGE 2407;AL # SYMBOL FOR BELL 2408;AL # SYMBOL FOR BACKSPACE 2409;AL # SYMBOL FOR HORIZONTAL TABULATION 240A;AL # SYMBOL FOR LINE FEED 240B;AL # SYMBOL FOR VERTICAL TABULATION 240C;AL # SYMBOL FOR FORM FEED 240D;AL # SYMBOL FOR CARRIAGE RETURN 240E;AL # SYMBOL FOR SHIFT OUT 240F;AL # SYMBOL FOR SHIFT IN 2410;AL # SYMBOL FOR DATA LINK ESCAPE 2411;AL # SYMBOL FOR DEVICE CONTROL ONE 2412;AL # SYMBOL FOR DEVICE CONTROL TWO 2413;AL # SYMBOL FOR DEVICE CONTROL THREE 2414;AL # SYMBOL FOR DEVICE CONTROL FOUR 2415;AL # SYMBOL FOR NEGATIVE ACKNOWLEDGE 2416;AL # SYMBOL FOR SYNCHRONOUS IDLE 2417;AL # SYMBOL FOR END OF TRANSMISSION BLOCK 2418;AL # SYMBOL FOR CANCEL 2419;AL # SYMBOL FOR END OF MEDIUM 241A;AL # SYMBOL FOR SUBSTITUTE 241B;AL # SYMBOL FOR ESCAPE 241C;AL # SYMBOL FOR FILE SEPARATOR 241D;AL # SYMBOL FOR GROUP SEPARATOR 241E;AL # SYMBOL FOR RECORD SEPARATOR 241F;AL # SYMBOL FOR UNIT SEPARATOR 2420;AL # SYMBOL FOR SPACE 2421;AL # SYMBOL FOR DELETE 2422;AL # BLANK SYMBOL 2423;AL # OPEN BOX 2424;AL # SYMBOL FOR NEWLINE 2425;AL # SYMBOL FOR DELETE FORM TWO 2426;AL # SYMBOL FOR SUBSTITUTE FORM TWO 2440;AL # OCR HOOK 2441;AL # OCR CHAIR 2442;AL # OCR FORK 2443;AL # OCR INVERTED FORK 2444;AL # OCR BELT BUCKLE 2445;AL # OCR BOW TIE 2446;AL # OCR BRANCH BANK IDENTIFICATION 2447;AL # OCR AMOUNT OF CHECK 2448;AL # OCR DASH 2449;AL # OCR CUSTOMER ACCOUNT NUMBER 244A;AL # OCR DOUBLE BACKSLASH 2460;AI # CIRCLED DIGIT ONE 2461;AI # CIRCLED DIGIT TWO 2462;AI # CIRCLED DIGIT THREE 2463;AI # CIRCLED DIGIT FOUR 2464;AI # CIRCLED DIGIT FIVE 2465;AI # CIRCLED DIGIT SIX 2466;AI # CIRCLED DIGIT SEVEN 2467;AI # CIRCLED DIGIT EIGHT 2468;AI # CIRCLED DIGIT NINE 2469;AI # CIRCLED NUMBER TEN 246A;AI # CIRCLED NUMBER ELEVEN 246B;AI # CIRCLED NUMBER TWELVE 246C;AI # CIRCLED NUMBER THIRTEEN 246D;AI # CIRCLED NUMBER FOURTEEN 246E;AI # CIRCLED NUMBER FIFTEEN 246F;AI # CIRCLED NUMBER SIXTEEN 2470;AI # CIRCLED NUMBER SEVENTEEN 2471;AI # CIRCLED NUMBER EIGHTEEN 2472;AI # CIRCLED NUMBER NINETEEN 2473;AI # CIRCLED NUMBER TWENTY 2474;AI # PARENTHESIZED DIGIT ONE 2475;AI # PARENTHESIZED DIGIT TWO 2476;AI # PARENTHESIZED DIGIT THREE 2477;AI # PARENTHESIZED DIGIT FOUR 2478;AI # PARENTHESIZED DIGIT FIVE 2479;AI # PARENTHESIZED DIGIT SIX 247A;AI # PARENTHESIZED DIGIT SEVEN 247B;AI # PARENTHESIZED DIGIT EIGHT 247C;AI # PARENTHESIZED DIGIT NINE 247D;AI # PARENTHESIZED NUMBER TEN 247E;AI # PARENTHESIZED NUMBER ELEVEN 247F;AI # PARENTHESIZED NUMBER TWELVE 2480;AI # PARENTHESIZED NUMBER THIRTEEN 2481;AI # PARENTHESIZED NUMBER FOURTEEN 2482;AI # PARENTHESIZED NUMBER FIFTEEN 2483;AI # PARENTHESIZED NUMBER SIXTEEN 2484;AI # PARENTHESIZED NUMBER SEVENTEEN 2485;AI # PARENTHESIZED NUMBER EIGHTEEN 2486;AI # PARENTHESIZED NUMBER NINETEEN 2487;AI # PARENTHESIZED NUMBER TWENTY 2488;AI # DIGIT ONE FULL STOP 2489;AI # DIGIT TWO FULL STOP 248A;AI # DIGIT THREE FULL STOP 248B;AI # DIGIT FOUR FULL STOP 248C;AI # DIGIT FIVE FULL STOP 248D;AI # DIGIT SIX FULL STOP 248E;AI # DIGIT SEVEN FULL STOP 248F;AI # DIGIT EIGHT FULL STOP 2490;AI # DIGIT NINE FULL STOP 2491;AI # NUMBER TEN FULL STOP 2492;AI # NUMBER ELEVEN FULL STOP 2493;AI # NUMBER TWELVE FULL STOP 2494;AI # NUMBER THIRTEEN FULL STOP 2495;AI # NUMBER FOURTEEN FULL STOP 2496;AI # NUMBER FIFTEEN FULL STOP 2497;AI # NUMBER SIXTEEN FULL STOP 2498;AI # NUMBER SEVENTEEN FULL STOP 2499;AI # NUMBER EIGHTEEN FULL STOP 249A;AI # NUMBER NINETEEN FULL STOP 249B;AI # NUMBER TWENTY FULL STOP 249C;AI # PARENTHESIZED LATIN SMALL LETTER A 249D;AI # PARENTHESIZED LATIN SMALL LETTER B 249E;AI # PARENTHESIZED LATIN SMALL LETTER C 249F;AI # PARENTHESIZED LATIN SMALL LETTER D 24A0;AI # PARENTHESIZED LATIN SMALL LETTER E 24A1;AI # PARENTHESIZED LATIN SMALL LETTER F 24A2;AI # PARENTHESIZED LATIN SMALL LETTER G 24A3;AI # PARENTHESIZED LATIN SMALL LETTER H 24A4;AI # PARENTHESIZED LATIN SMALL LETTER I 24A5;AI # PARENTHESIZED LATIN SMALL LETTER J 24A6;AI # PARENTHESIZED LATIN SMALL LETTER K 24A7;AI # PARENTHESIZED LATIN SMALL LETTER L 24A8;AI # PARENTHESIZED LATIN SMALL LETTER M 24A9;AI # PARENTHESIZED LATIN SMALL LETTER N 24AA;AI # PARENTHESIZED LATIN SMALL LETTER O 24AB;AI # PARENTHESIZED LATIN SMALL LETTER P 24AC;AI # PARENTHESIZED LATIN SMALL LETTER Q 24AD;AI # PARENTHESIZED LATIN SMALL LETTER R 24AE;AI # PARENTHESIZED LATIN SMALL LETTER S 24AF;AI # PARENTHESIZED LATIN SMALL LETTER T 24B0;AI # PARENTHESIZED LATIN SMALL LETTER U 24B1;AI # PARENTHESIZED LATIN SMALL LETTER V 24B2;AI # PARENTHESIZED LATIN SMALL LETTER W 24B3;AI # PARENTHESIZED LATIN SMALL LETTER X 24B4;AI # PARENTHESIZED LATIN SMALL LETTER Y 24B5;AI # PARENTHESIZED LATIN SMALL LETTER Z 24B6;AI # CIRCLED LATIN CAPITAL LETTER A 24B7;AI # CIRCLED LATIN CAPITAL LETTER B 24B8;AI # CIRCLED LATIN CAPITAL LETTER C 24B9;AI # CIRCLED LATIN CAPITAL LETTER D 24BA;AI # CIRCLED LATIN CAPITAL LETTER E 24BB;AI # CIRCLED LATIN CAPITAL LETTER F 24BC;AI # CIRCLED LATIN CAPITAL LETTER G 24BD;AI # CIRCLED LATIN CAPITAL LETTER H 24BE;AI # CIRCLED LATIN CAPITAL LETTER I 24BF;AI # CIRCLED LATIN CAPITAL LETTER J 24C0;AL # CIRCLED LATIN CAPITAL LETTER K 24C1;AL # CIRCLED LATIN CAPITAL LETTER L 24C2;AL # CIRCLED LATIN CAPITAL LETTER M 24C3;AL # CIRCLED LATIN CAPITAL LETTER N 24C4;AL # CIRCLED LATIN CAPITAL LETTER O 24C5;AL # CIRCLED LATIN CAPITAL LETTER P 24C6;AL # CIRCLED LATIN CAPITAL LETTER Q 24C7;AL # CIRCLED LATIN CAPITAL LETTER R 24C8;AL # CIRCLED LATIN CAPITAL LETTER S 24C9;AL # CIRCLED LATIN CAPITAL LETTER T 24CA;AL # CIRCLED LATIN CAPITAL LETTER U 24CB;AL # CIRCLED LATIN CAPITAL LETTER V 24CC;AL # CIRCLED LATIN CAPITAL LETTER W 24CD;AL # CIRCLED LATIN CAPITAL LETTER X 24CE;AL # CIRCLED LATIN CAPITAL LETTER Y 24CF;AL # CIRCLED LATIN CAPITAL LETTER Z 24D0;AI # CIRCLED LATIN SMALL LETTER A 24D1;AI # CIRCLED LATIN SMALL LETTER B 24D2;AI # CIRCLED LATIN SMALL LETTER C 24D3;AI # CIRCLED LATIN SMALL LETTER D 24D4;AI # CIRCLED LATIN SMALL LETTER E 24D5;AI # CIRCLED LATIN SMALL LETTER F 24D6;AI # CIRCLED LATIN SMALL LETTER G 24D7;AI # CIRCLED LATIN SMALL LETTER H 24D8;AI # CIRCLED LATIN SMALL LETTER I 24D9;AI # CIRCLED LATIN SMALL LETTER J 24DA;AI # CIRCLED LATIN SMALL LETTER K 24DB;AI # CIRCLED LATIN SMALL LETTER L 24DC;AI # CIRCLED LATIN SMALL LETTER M 24DD;AI # CIRCLED LATIN SMALL LETTER N 24DE;AI # CIRCLED LATIN SMALL LETTER O 24DF;AI # CIRCLED LATIN SMALL LETTER P 24E0;AI # CIRCLED LATIN SMALL LETTER Q 24E1;AI # CIRCLED LATIN SMALL LETTER R 24E2;AI # CIRCLED LATIN SMALL LETTER S 24E3;AI # CIRCLED LATIN SMALL LETTER T 24E4;AI # CIRCLED LATIN SMALL LETTER U 24E5;AI # CIRCLED LATIN SMALL LETTER V 24E6;AI # CIRCLED LATIN SMALL LETTER W 24E7;AI # CIRCLED LATIN SMALL LETTER X 24E8;AI # CIRCLED LATIN SMALL LETTER Y 24E9;AI # CIRCLED LATIN SMALL LETTER Z 24EA;AL # CIRCLED DIGIT ZERO 24EB;AI # NEGATIVE CIRCLED NUMBER ELEVEN 24EC;AI # NEGATIVE CIRCLED NUMBER TWELVE 24ED;AI # NEGATIVE CIRCLED NUMBER THIRTEEN 24EE;AI # NEGATIVE CIRCLED NUMBER FOURTEEN 24EF;AI # NEGATIVE CIRCLED NUMBER FIFTEEN 24F0;AI # NEGATIVE CIRCLED NUMBER SIXTEEN 24F1;AI # NEGATIVE CIRCLED NUMBER SEVENTEEN 24F2;AI # NEGATIVE CIRCLED NUMBER EIGHTEEN 24F3;AI # NEGATIVE CIRCLED NUMBER NINETEEN 24F4;AI # NEGATIVE CIRCLED NUMBER TWENTY 24F5;AI # DOUBLE CIRCLED DIGIT ONE 24F6;AI # DOUBLE CIRCLED DIGIT TWO 24F7;AI # DOUBLE CIRCLED DIGIT THREE 24F8;AI # DOUBLE CIRCLED DIGIT FOUR 24F9;AI # DOUBLE CIRCLED DIGIT FIVE 24FA;AI # DOUBLE CIRCLED DIGIT SIX 24FB;AI # DOUBLE CIRCLED DIGIT SEVEN 24FC;AI # DOUBLE CIRCLED DIGIT EIGHT 24FD;AI # DOUBLE CIRCLED DIGIT NINE 24FE;AI # DOUBLE CIRCLED NUMBER TEN 2500;AI # BOX DRAWINGS LIGHT HORIZONTAL 2501;AI # BOX DRAWINGS HEAVY HORIZONTAL 2502;AI # BOX DRAWINGS LIGHT VERTICAL 2503;AI # BOX DRAWINGS HEAVY VERTICAL 2504;AI # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL 2505;AI # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL 2506;AI # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL 2507;AI # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL 2508;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL 2509;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL 250A;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL 250B;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL 250C;AI # BOX DRAWINGS LIGHT DOWN AND RIGHT 250D;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY 250E;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT 250F;AI # BOX DRAWINGS HEAVY DOWN AND RIGHT 2510;AI # BOX DRAWINGS LIGHT DOWN AND LEFT 2511;AI # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY 2512;AI # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT 2513;AI # BOX DRAWINGS HEAVY DOWN AND LEFT 2514;AI # BOX DRAWINGS LIGHT UP AND RIGHT 2515;AI # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY 2516;AI # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT 2517;AI # BOX DRAWINGS HEAVY UP AND RIGHT 2518;AI # BOX DRAWINGS LIGHT UP AND LEFT 2519;AI # BOX DRAWINGS UP LIGHT AND LEFT HEAVY 251A;AI # BOX DRAWINGS UP HEAVY AND LEFT LIGHT 251B;AI # BOX DRAWINGS HEAVY UP AND LEFT 251C;AI # BOX DRAWINGS LIGHT VERTICAL AND RIGHT 251D;AI # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY 251E;AI # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT 251F;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT 2520;AI # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT 2521;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY 2522;AI # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY 2523;AI # BOX DRAWINGS HEAVY VERTICAL AND RIGHT 2524;AI # BOX DRAWINGS LIGHT VERTICAL AND LEFT 2525;AI # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY 2526;AI # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT 2527;AI # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT 2528;AI # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT 2529;AI # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY 252A;AI # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY 252B;AI # BOX DRAWINGS HEAVY VERTICAL AND LEFT 252C;AI # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 252D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT 252E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT 252F;AI # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY 2530;AI # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT 2531;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY 2532;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY 2533;AI # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL 2534;AI # BOX DRAWINGS LIGHT UP AND HORIZONTAL 2535;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT 2536;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT 2537;AI # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY 2538;AI # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT 2539;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY 253A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY 253B;AI # BOX DRAWINGS HEAVY UP AND HORIZONTAL 253C;AI # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 253D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT 253E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT 253F;AI # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY 2540;AI # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT 2541;AI # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT 2542;AI # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT 2543;AI # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT 2544;AI # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT 2545;AI # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT 2546;AI # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT 2547;AI # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY 2548;AI # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY 2549;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY 254A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY 254B;AI # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL 254C;AL # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL 254D;AL # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL 254E;AL # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL 254F;AL # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL 2550;AI # BOX DRAWINGS DOUBLE HORIZONTAL 2551;AI # BOX DRAWINGS DOUBLE VERTICAL 2552;AI # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE 2553;AI # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE 2554;AI # BOX DRAWINGS DOUBLE DOWN AND RIGHT 2555;AI # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 2556;AI # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE 2557;AI # BOX DRAWINGS DOUBLE DOWN AND LEFT 2558;AI # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE 2559;AI # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE 255A;AI # BOX DRAWINGS DOUBLE UP AND RIGHT 255B;AI # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 255C;AI # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE 255D;AI # BOX DRAWINGS DOUBLE UP AND LEFT 255E;AI # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE 255F;AI # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE 2560;AI # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT 2561;AI # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE 2562;AI # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE 2563;AI # BOX DRAWINGS DOUBLE VERTICAL AND LEFT 2564;AI # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE 2565;AI # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE 2566;AI # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL 2567;AI # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE 2568;AI # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE 2569;AI # BOX DRAWINGS DOUBLE UP AND HORIZONTAL 256A;AI # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE 256B;AI # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE 256C;AI # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL 256D;AI # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT 256E;AI # BOX DRAWINGS LIGHT ARC DOWN AND LEFT 256F;AI # BOX DRAWINGS LIGHT ARC UP AND LEFT 2570;AI # BOX DRAWINGS LIGHT ARC UP AND RIGHT 2571;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT 2572;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT 2573;AI # BOX DRAWINGS LIGHT DIAGONAL CROSS 2574;AI # BOX DRAWINGS LIGHT LEFT 2575;AL # BOX DRAWINGS LIGHT UP 2576;AL # BOX DRAWINGS LIGHT RIGHT 2577;AL # BOX DRAWINGS LIGHT DOWN 2578;AL # BOX DRAWINGS HEAVY LEFT 2579;AL # BOX DRAWINGS HEAVY UP 257A;AL # BOX DRAWINGS HEAVY RIGHT 257B;AL # BOX DRAWINGS HEAVY DOWN 257C;AL # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT 257D;AL # BOX DRAWINGS LIGHT UP AND HEAVY DOWN 257E;AL # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT 257F;AL # BOX DRAWINGS HEAVY UP AND LIGHT DOWN 2580;AI # UPPER HALF BLOCK 2581;AI # LOWER ONE EIGHTH BLOCK 2582;AI # LOWER ONE QUARTER BLOCK 2583;AI # LOWER THREE EIGHTHS BLOCK 2584;AI # LOWER HALF BLOCK 2585;AI # LOWER FIVE EIGHTHS BLOCK 2586;AI # LOWER THREE QUARTERS BLOCK 2587;AI # LOWER SEVEN EIGHTHS BLOCK 2588;AI # FULL BLOCK 2589;AI # LEFT SEVEN EIGHTHS BLOCK 258A;AI # LEFT THREE QUARTERS BLOCK 258B;AI # LEFT FIVE EIGHTHS BLOCK 258C;AI # LEFT HALF BLOCK 258D;AI # LEFT THREE EIGHTHS BLOCK 258E;AI # LEFT ONE QUARTER BLOCK 258F;AI # LEFT ONE EIGHTH BLOCK 2590;AL # RIGHT HALF BLOCK 2591;AL # LIGHT SHADE 2592;AI # MEDIUM SHADE 2593;AI # DARK SHADE 2594;AI # UPPER ONE EIGHTH BLOCK 2595;AI # RIGHT ONE EIGHTH BLOCK 2596;AL # QUADRANT LOWER LEFT 2597;AL # QUADRANT LOWER RIGHT 2598;AL # QUADRANT UPPER LEFT 2599;AL # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT 259A;AL # QUADRANT UPPER LEFT AND LOWER RIGHT 259B;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT 259C;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT 259D;AL # QUADRANT UPPER RIGHT 259E;AL # QUADRANT UPPER RIGHT AND LOWER LEFT 259F;AL # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT 25A0;AI # BLACK SQUARE 25A1;AI # WHITE SQUARE 25A2;AL # WHITE SQUARE WITH ROUNDED CORNERS 25A3;AI # WHITE SQUARE CONTAINING BLACK SMALL SQUARE 25A4;AI # SQUARE WITH HORIZONTAL FILL 25A5;AI # SQUARE WITH VERTICAL FILL 25A6;AI # SQUARE WITH ORTHOGONAL CROSSHATCH FILL 25A7;AI # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL 25A8;AI # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL 25A9;AI # SQUARE WITH DIAGONAL CROSSHATCH FILL 25AA;AL # BLACK SMALL SQUARE 25AB;AL # WHITE SMALL SQUARE 25AC;AL # BLACK RECTANGLE 25AD;AL # WHITE RECTANGLE 25AE;AL # BLACK VERTICAL RECTANGLE 25AF;AL # WHITE VERTICAL RECTANGLE 25B0;AL # BLACK PARALLELOGRAM 25B1;AL # WHITE PARALLELOGRAM 25B2;AI # BLACK UP-POINTING TRIANGLE 25B3;AI # WHITE UP-POINTING TRIANGLE 25B4;AL # BLACK UP-POINTING SMALL TRIANGLE 25B5;AL # WHITE UP-POINTING SMALL TRIANGLE 25B6;AI # BLACK RIGHT-POINTING TRIANGLE 25B7;AI # WHITE RIGHT-POINTING TRIANGLE 25B8;AL # BLACK RIGHT-POINTING SMALL TRIANGLE 25B9;AL # WHITE RIGHT-POINTING SMALL TRIANGLE 25BA;AL # BLACK RIGHT-POINTING POINTER 25BB;AL # WHITE RIGHT-POINTING POINTER 25BC;AI # BLACK DOWN-POINTING TRIANGLE 25BD;AI # WHITE DOWN-POINTING TRIANGLE 25BE;AL # BLACK DOWN-POINTING SMALL TRIANGLE 25BF;AL # WHITE DOWN-POINTING SMALL TRIANGLE 25C0;AI # BLACK LEFT-POINTING TRIANGLE 25C1;AI # WHITE LEFT-POINTING TRIANGLE 25C2;AL # BLACK LEFT-POINTING SMALL TRIANGLE 25C3;AL # WHITE LEFT-POINTING SMALL TRIANGLE 25C4;AL # BLACK LEFT-POINTING POINTER 25C5;AL # WHITE LEFT-POINTING POINTER 25C6;AI # BLACK DIAMOND 25C7;AI # WHITE DIAMOND 25C8;AI # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND 25C9;AL # FISHEYE 25CA;AL # LOZENGE 25CB;AI # WHITE CIRCLE 25CC;AL # DOTTED CIRCLE 25CD;AL # CIRCLE WITH VERTICAL FILL 25CE;AI # BULLSEYE 25CF;AI # BLACK CIRCLE 25D0;AI # CIRCLE WITH LEFT HALF BLACK 25D1;AI # CIRCLE WITH RIGHT HALF BLACK 25D2;AL # CIRCLE WITH LOWER HALF BLACK 25D3;AL # CIRCLE WITH UPPER HALF BLACK 25D4;AL # CIRCLE WITH UPPER RIGHT QUADRANT BLACK 25D5;AL # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK 25D6;AL # LEFT HALF BLACK CIRCLE 25D7;AL # RIGHT HALF BLACK CIRCLE 25D8;AL # INVERSE BULLET 25D9;AL # INVERSE WHITE CIRCLE 25DA;AL # UPPER HALF INVERSE WHITE CIRCLE 25DB;AL # LOWER HALF INVERSE WHITE CIRCLE 25DC;AL # UPPER LEFT QUADRANT CIRCULAR ARC 25DD;AL # UPPER RIGHT QUADRANT CIRCULAR ARC 25DE;AL # LOWER RIGHT QUADRANT CIRCULAR ARC 25DF;AL # LOWER LEFT QUADRANT CIRCULAR ARC 25E0;AL # UPPER HALF CIRCLE 25E1;AL # LOWER HALF CIRCLE 25E2;AI # BLACK LOWER RIGHT TRIANGLE 25E3;AI # BLACK LOWER LEFT TRIANGLE 25E4;AI # BLACK UPPER LEFT TRIANGLE 25E5;AI # BLACK UPPER RIGHT TRIANGLE 25E6;AL # WHITE BULLET 25E7;AL # SQUARE WITH LEFT HALF BLACK 25E8;AL # SQUARE WITH RIGHT HALF BLACK 25E9;AL # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK 25EA;AL # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK 25EB;AL # WHITE SQUARE WITH VERTICAL BISECTING LINE 25EC;AL # WHITE UP-POINTING TRIANGLE WITH DOT 25ED;AL # UP-POINTING TRIANGLE WITH LEFT HALF BLACK 25EE;AL # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK 25EF;AI # LARGE CIRCLE 25F0;AL # WHITE SQUARE WITH UPPER LEFT QUADRANT 25F1;AL # WHITE SQUARE WITH LOWER LEFT QUADRANT 25F2;AL # WHITE SQUARE WITH LOWER RIGHT QUADRANT 25F3;AL # WHITE SQUARE WITH UPPER RIGHT QUADRANT 25F4;AL # WHITE CIRCLE WITH UPPER LEFT QUADRANT 25F5;AL # WHITE CIRCLE WITH LOWER LEFT QUADRANT 25F6;AL # WHITE CIRCLE WITH LOWER RIGHT QUADRANT 25F7;AL # WHITE CIRCLE WITH UPPER RIGHT QUADRANT 25F8;AL # UPPER LEFT TRIANGLE 25F9;AL # UPPER RIGHT TRIANGLE 25FA;AL # LOWER LEFT TRIANGLE 25FB;AL # WHITE MEDIUM SQUARE 25FC;AL # BLACK MEDIUM SQUARE 25FD;AL # WHITE MEDIUM SMALL SQUARE 25FE;AL # BLACK MEDIUM SMALL SQUARE 25FF;AL # LOWER RIGHT TRIANGLE 2600;AL # BLACK SUN WITH RAYS 2601;AL # CLOUD 2602;AL # UMBRELLA 2603;AL # SNOWMAN 2604;AL # COMET 2605;AI # BLACK STAR 2606;AI # WHITE STAR 2607;AL # LIGHTNING 2608;AL # THUNDERSTORM 2609;AI # SUN 260A;AL # ASCENDING NODE 260B;AL # DESCENDING NODE 260C;AL # CONJUNCTION 260D;AL # OPPOSITION 260E;AI # BLACK TELEPHONE 260F;AI # WHITE TELEPHONE 2610;AL # BALLOT BOX 2611;AL # BALLOT BOX WITH CHECK 2612;AL # BALLOT BOX WITH X 2613;AL # SALTIRE 2616;AI # WHITE SHOGI PIECE 2617;AI # BLACK SHOGI PIECE 2619;AL # REVERSED ROTATED FLORAL HEART BULLET 261A;AL # BLACK LEFT POINTING INDEX 261B;AL # BLACK RIGHT POINTING INDEX 261C;AI # WHITE LEFT POINTING INDEX 261D;AL # WHITE UP POINTING INDEX 261E;AI # WHITE RIGHT POINTING INDEX 261F;AL # WHITE DOWN POINTING INDEX 2620;AL # SKULL AND CROSSBONES 2621;AL # CAUTION SIGN 2622;AL # RADIOACTIVE SIGN 2623;AL # BIOHAZARD SIGN 2624;AL # CADUCEUS 2625;AL # ANKH 2626;AL # ORTHODOX CROSS 2627;AL # CHI RHO 2628;AL # CROSS OF LORRAINE 2629;AL # CROSS OF JERUSALEM 262A;AL # STAR AND CRESCENT 262B;AL # FARSI SYMBOL 262C;AL # ADI SHAKTI 262D;AL # HAMMER AND SICKLE 262E;AL # PEACE SYMBOL 262F;AL # YIN YANG 2630;AL # TRIGRAM FOR HEAVEN 2631;AL # TRIGRAM FOR LAKE 2632;AL # TRIGRAM FOR FIRE 2633;AL # TRIGRAM FOR THUNDER 2634;AL # TRIGRAM FOR WIND 2635;AL # TRIGRAM FOR WATER 2636;AL # TRIGRAM FOR MOUNTAIN 2637;AL # TRIGRAM FOR EARTH 2638;AL # WHEEL OF DHARMA 2639;AL # WHITE FROWNING FACE 263A;AL # WHITE SMILING FACE 263B;AL # BLACK SMILING FACE 263C;AL # WHITE SUN WITH RAYS 263D;AL # FIRST QUARTER MOON 263E;AL # LAST QUARTER MOON 263F;AL # MERCURY 2640;AI # FEMALE SIGN 2641;AL # EARTH 2642;AI # MALE SIGN 2643;AL # JUPITER 2644;AL # SATURN 2645;AL # URANUS 2646;AL # NEPTUNE 2647;AL # PLUTO 2648;AL # ARIES 2649;AL # TAURUS 264A;AL # GEMINI 264B;AL # CANCER 264C;AL # LEO 264D;AL # VIRGO 264E;AL # LIBRA 264F;AL # SCORPIUS 2650;AL # SAGITTARIUS 2651;AL # CAPRICORN 2652;AL # AQUARIUS 2653;AL # PISCES 2654;AL # WHITE CHESS KING 2655;AL # WHITE CHESS QUEEN 2656;AL # WHITE CHESS ROOK 2657;AL # WHITE CHESS BISHOP 2658;AL # WHITE CHESS KNIGHT 2659;AL # WHITE CHESS PAWN 265A;AL # BLACK CHESS KING 265B;AL # BLACK CHESS QUEEN 265C;AL # BLACK CHESS ROOK 265D;AL # BLACK CHESS BISHOP 265E;AL # BLACK CHESS KNIGHT 265F;AL # BLACK CHESS PAWN 2660;AI # BLACK SPADE SUIT 2661;AI # WHITE HEART SUIT 2662;AL # WHITE DIAMOND SUIT 2663;AI # BLACK CLUB SUIT 2664;AI # WHITE SPADE SUIT 2665;AI # BLACK HEART SUIT 2666;AL # BLACK DIAMOND SUIT 2667;AI # WHITE CLUB SUIT 2668;AI # HOT SPRINGS 2669;AI # QUARTER NOTE 266A;AI # EIGHTH NOTE 266B;AL # BEAMED EIGHTH NOTES 266C;AI # BEAMED SIXTEENTH NOTES 266D;AI # MUSIC FLAT SIGN 266E;AL # MUSIC NATURAL SIGN 266F;AI # MUSIC SHARP SIGN 2670;AL # WEST SYRIAC CROSS 2671;AL # EAST SYRIAC CROSS 2672;AL # UNIVERSAL RECYCLING SYMBOL 2673;AL # RECYCLING SYMBOL FOR TYPE-1 PLASTICS 2674;AL # RECYCLING SYMBOL FOR TYPE-2 PLASTICS 2675;AL # RECYCLING SYMBOL FOR TYPE-3 PLASTICS 2676;AL # RECYCLING SYMBOL FOR TYPE-4 PLASTICS 2677;AL # RECYCLING SYMBOL FOR TYPE-5 PLASTICS 2678;AL # RECYCLING SYMBOL FOR TYPE-6 PLASTICS 2679;AL # RECYCLING SYMBOL FOR TYPE-7 PLASTICS 267A;AL # RECYCLING SYMBOL FOR GENERIC MATERIALS 267B;AL # BLACK UNIVERSAL RECYCLING SYMBOL 267C;AL # RECYCLED PAPER SYMBOL 267D;AL # PARTIALLY-RECYCLED PAPER SYMBOL 2680;AL # DIE FACE-1 2681;AL # DIE FACE-2 2682;AL # DIE FACE-3 2683;AL # DIE FACE-4 2684;AL # DIE FACE-5 2685;AL # DIE FACE-6 2686;AL # WHITE CIRCLE WITH DOT RIGHT 2687;AL # WHITE CIRCLE WITH TWO DOTS 2688;AL # BLACK CIRCLE WITH WHITE DOT RIGHT 2689;AL # BLACK CIRCLE WITH TWO WHITE DOTS 2701;AL # UPPER BLADE SCISSORS 2702;AL # BLACK SCISSORS 2703;AL # LOWER BLADE SCISSORS 2704;AL # WHITE SCISSORS 2706;AL # TELEPHONE LOCATION SIGN 2707;AL # TAPE DRIVE 2708;AL # AIRPLANE 2709;AL # ENVELOPE 270C;AL # VICTORY HAND 270D;AL # WRITING HAND 270E;AL # LOWER RIGHT PENCIL 270F;AL # PENCIL 2710;AL # UPPER RIGHT PENCIL 2711;AL # WHITE NIB 2712;AL # BLACK NIB 2713;AL # CHECK MARK 2714;AL # HEAVY CHECK MARK 2715;AL # MULTIPLICATION X 2716;AL # HEAVY MULTIPLICATION X 2717;AL # BALLOT X 2718;AL # HEAVY BALLOT X 2719;AL # OUTLINED GREEK CROSS 271A;AL # HEAVY GREEK CROSS 271B;AL # OPEN CENTRE CROSS 271C;AL # HEAVY OPEN CENTRE CROSS 271D;AL # LATIN CROSS 271E;AL # SHADOWED WHITE LATIN CROSS 271F;AL # OUTLINED LATIN CROSS 2720;AL # MALTESE CROSS 2721;AL # STAR OF DAVID 2722;AL # FOUR TEARDROP-SPOKED ASTERISK 2723;AL # FOUR BALLOON-SPOKED ASTERISK 2724;AL # HEAVY FOUR BALLOON-SPOKED ASTERISK 2725;AL # FOUR CLUB-SPOKED ASTERISK 2726;AL # BLACK FOUR POINTED STAR 2727;AL # WHITE FOUR POINTED STAR 2729;AL # STRESS OUTLINED WHITE STAR 272A;AL # CIRCLED WHITE STAR 272B;AL # OPEN CENTRE BLACK STAR 272C;AL # BLACK CENTRE WHITE STAR 272D;AL # OUTLINED BLACK STAR 272E;AL # HEAVY OUTLINED BLACK STAR 272F;AL # PINWHEEL STAR 2730;AL # SHADOWED WHITE STAR 2731;AL # HEAVY ASTERISK 2732;AL # OPEN CENTRE ASTERISK 2733;AL # EIGHT SPOKED ASTERISK 2734;AL # EIGHT POINTED BLACK STAR 2735;AL # EIGHT POINTED PINWHEEL STAR 2736;AL # SIX POINTED BLACK STAR 2737;AL # EIGHT POINTED RECTILINEAR BLACK STAR 2738;AL # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR 2739;AL # TWELVE POINTED BLACK STAR 273A;AL # SIXTEEN POINTED ASTERISK 273B;AL # TEARDROP-SPOKED ASTERISK 273C;AL # OPEN CENTRE TEARDROP-SPOKED ASTERISK 273D;AL # HEAVY TEARDROP-SPOKED ASTERISK 273E;AL # SIX PETALLED BLACK AND WHITE FLORETTE 273F;AL # BLACK FLORETTE 2740;AL # WHITE FLORETTE 2741;AL # EIGHT PETALLED OUTLINED BLACK FLORETTE 2742;AL # CIRCLED OPEN CENTRE EIGHT POINTED STAR 2743;AL # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK 2744;AL # SNOWFLAKE 2745;AL # TIGHT TRIFOLIATE SNOWFLAKE 2746;AL # HEAVY CHEVRON SNOWFLAKE 2747;AL # SPARKLE 2748;AL # HEAVY SPARKLE 2749;AL # BALLOON-SPOKED ASTERISK 274A;AL # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK 274B;AL # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK 274D;AL # SHADOWED WHITE CIRCLE 274F;AL # LOWER RIGHT DROP-SHADOWED WHITE SQUARE 2750;AL # UPPER RIGHT DROP-SHADOWED WHITE SQUARE 2751;AL # LOWER RIGHT SHADOWED WHITE SQUARE 2752;AL # UPPER RIGHT SHADOWED WHITE SQUARE 2756;AL # BLACK DIAMOND MINUS WHITE X 2758;AL # LIGHT VERTICAL BAR 2759;AL # MEDIUM VERTICAL BAR 275A;AL # HEAVY VERTICAL BAR 275B;QU # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT 275C;QU # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT 275D;QU # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT 275E;QU # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT 2761;AL # CURVED STEM PARAGRAPH SIGN ORNAMENT 2762;EX # HEAVY EXCLAMATION MARK ORNAMENT 2763;EX # HEAVY HEART EXCLAMATION MARK ORNAMENT 2764;AL # HEAVY BLACK HEART 2765;AL # ROTATED HEAVY BLACK HEART BULLET 2766;AL # FLORAL HEART 2767;AL # ROTATED FLORAL HEART BULLET 2768;OP # MEDIUM LEFT PARENTHESIS ORNAMENT 2769;CL # MEDIUM RIGHT PARENTHESIS ORNAMENT 276A;OP # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT 276B;CL # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT 276C;OP # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT 276D;CL # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT 276E;OP # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT 276F;CL # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT 2770;OP # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT 2771;CL # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT 2772;OP # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT 2773;CL # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT 2774;OP # MEDIUM LEFT CURLY BRACKET ORNAMENT 2775;CL # MEDIUM RIGHT CURLY BRACKET ORNAMENT 2776;AL # DINGBAT NEGATIVE CIRCLED DIGIT ONE 2777;AL # DINGBAT NEGATIVE CIRCLED DIGIT TWO 2778;AL # DINGBAT NEGATIVE CIRCLED DIGIT THREE 2779;AL # DINGBAT NEGATIVE CIRCLED DIGIT FOUR 277A;AL # DINGBAT NEGATIVE CIRCLED DIGIT FIVE 277B;AL # DINGBAT NEGATIVE CIRCLED DIGIT SIX 277C;AL # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN 277D;AL # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT 277E;AL # DINGBAT NEGATIVE CIRCLED DIGIT NINE 277F;AL # DINGBAT NEGATIVE CIRCLED NUMBER TEN 2780;AL # DINGBAT CIRCLED SANS-SERIF DIGIT ONE 2781;AL # DINGBAT CIRCLED SANS-SERIF DIGIT TWO 2782;AL # DINGBAT CIRCLED SANS-SERIF DIGIT THREE 2783;AL # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR 2784;AL # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE 2785;AL # DINGBAT CIRCLED SANS-SERIF DIGIT SIX 2786;AL # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN 2787;AL # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT 2788;AL # DINGBAT CIRCLED SANS-SERIF DIGIT NINE 2789;AL # DINGBAT CIRCLED SANS-SERIF NUMBER TEN 278A;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE 278B;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO 278C;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE 278D;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR 278E;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE 278F;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX 2790;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN 2791;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT 2792;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE 2793;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN 2794;AL # HEAVY WIDE-HEADED RIGHTWARDS ARROW 2798;AL # HEAVY SOUTH EAST ARROW 2799;AL # HEAVY RIGHTWARDS ARROW 279A;AL # HEAVY NORTH EAST ARROW 279B;AL # DRAFTING POINT RIGHTWARDS ARROW 279C;AL # HEAVY ROUND-TIPPED RIGHTWARDS ARROW 279D;AL # TRIANGLE-HEADED RIGHTWARDS ARROW 279E;AL # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW 279F;AL # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW 27A0;AL # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW 27A1;AL # BLACK RIGHTWARDS ARROW 27A2;AL # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD 27A3;AL # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD 27A4;AL # BLACK RIGHTWARDS ARROWHEAD 27A5;AL # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW 27A6;AL # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW 27A7;AL # SQUAT BLACK RIGHTWARDS ARROW 27A8;AL # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW 27A9;AL # RIGHT-SHADED WHITE RIGHTWARDS ARROW 27AA;AL # LEFT-SHADED WHITE RIGHTWARDS ARROW 27AB;AL # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW 27AC;AL # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW 27AD;AL # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27AE;AL # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27AF;AL # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27B1;AL # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27B2;AL # CIRCLED HEAVY WHITE RIGHTWARDS ARROW 27B3;AL # WHITE-FEATHERED RIGHTWARDS ARROW 27B4;AL # BLACK-FEATHERED SOUTH EAST ARROW 27B5;AL # BLACK-FEATHERED RIGHTWARDS ARROW 27B6;AL # BLACK-FEATHERED NORTH EAST ARROW 27B7;AL # HEAVY BLACK-FEATHERED SOUTH EAST ARROW 27B8;AL # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW 27B9;AL # HEAVY BLACK-FEATHERED NORTH EAST ARROW 27BA;AL # TEARDROP-BARBED RIGHTWARDS ARROW 27BB;AL # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW 27BC;AL # WEDGE-TAILED RIGHTWARDS ARROW 27BD;AL # HEAVY WEDGE-TAILED RIGHTWARDS ARROW 27BE;AL # OPEN-OUTLINED RIGHTWARDS ARROW 27D0;AL # WHITE DIAMOND WITH CENTRED DOT 27D1;AL # AND WITH DOT 27D2;AL # ELEMENT OF OPENING UPWARDS 27D3;AL # LOWER RIGHT CORNER WITH DOT 27D4;AL # UPPER LEFT CORNER WITH DOT 27D5;AL # LEFT OUTER JOIN 27D6;AL # RIGHT OUTER JOIN 27D7;AL # FULL OUTER JOIN 27D8;AL # LARGE UP TACK 27D9;AL # LARGE DOWN TACK 27DA;AL # LEFT AND RIGHT DOUBLE TURNSTILE 27DB;AL # LEFT AND RIGHT TACK 27DC;AL # LEFT MULTIMAP 27DD;AL # LONG RIGHT TACK 27DE;AL # LONG LEFT TACK 27DF;AL # UP TACK WITH CIRCLE ABOVE 27E0;AL # LOZENGE DIVIDED BY HORIZONTAL RULE 27E1;AL # WHITE CONCAVE-SIDED DIAMOND 27E2;AL # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK 27E3;AL # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK 27E4;AL # WHITE SQUARE WITH LEFTWARDS TICK 27E5;AL # WHITE SQUARE WITH RIGHTWARDS TICK 27E6;OP # MATHEMATICAL LEFT WHITE SQUARE BRACKET 27E7;CL # MATHEMATICAL RIGHT WHITE SQUARE BRACKET 27E8;OP # MATHEMATICAL LEFT ANGLE BRACKET 27E9;CL # MATHEMATICAL RIGHT ANGLE BRACKET 27EA;OP # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET 27EB;CL # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET 27F0;AL # UPWARDS QUADRUPLE ARROW 27F1;AL # DOWNWARDS QUADRUPLE ARROW 27F2;AL # ANTICLOCKWISE GAPPED CIRCLE ARROW 27F3;AL # CLOCKWISE GAPPED CIRCLE ARROW 27F4;AL # RIGHT ARROW WITH CIRCLED PLUS 27F5;AL # LONG LEFTWARDS ARROW 27F6;AL # LONG RIGHTWARDS ARROW 27F7;AL # LONG LEFT RIGHT ARROW 27F8;AL # LONG LEFTWARDS DOUBLE ARROW 27F9;AL # LONG RIGHTWARDS DOUBLE ARROW 27FA;AL # LONG LEFT RIGHT DOUBLE ARROW 27FB;AL # LONG LEFTWARDS ARROW FROM BAR 27FC;AL # LONG RIGHTWARDS ARROW FROM BAR 27FD;AL # LONG LEFTWARDS DOUBLE ARROW FROM BAR 27FE;AL # LONG RIGHTWARDS DOUBLE ARROW FROM BAR 27FF;AL # LONG RIGHTWARDS SQUIGGLE ARROW 2800;AL # BRAILLE PATTERN BLANK 2801;AL # BRAILLE PATTERN DOTS-1 2802;AL # BRAILLE PATTERN DOTS-2 2803;AL # BRAILLE PATTERN DOTS-12 2804;AL # BRAILLE PATTERN DOTS-3 2805;AL # BRAILLE PATTERN DOTS-13 2806;AL # BRAILLE PATTERN DOTS-23 2807;AL # BRAILLE PATTERN DOTS-123 2808;AL # BRAILLE PATTERN DOTS-4 2809;AL # BRAILLE PATTERN DOTS-14 280A;AL # BRAILLE PATTERN DOTS-24 280B;AL # BRAILLE PATTERN DOTS-124 280C;AL # BRAILLE PATTERN DOTS-34 280D;AL # BRAILLE PATTERN DOTS-134 280E;AL # BRAILLE PATTERN DOTS-234 280F;AL # BRAILLE PATTERN DOTS-1234 2810;AL # BRAILLE PATTERN DOTS-5 2811;AL # BRAILLE PATTERN DOTS-15 2812;AL # BRAILLE PATTERN DOTS-25 2813;AL # BRAILLE PATTERN DOTS-125 2814;AL # BRAILLE PATTERN DOTS-35 2815;AL # BRAILLE PATTERN DOTS-135 2816;AL # BRAILLE PATTERN DOTS-235 2817;AL # BRAILLE PATTERN DOTS-1235 2818;AL # BRAILLE PATTERN DOTS-45 2819;AL # BRAILLE PATTERN DOTS-145 281A;AL # BRAILLE PATTERN DOTS-245 281B;AL # BRAILLE PATTERN DOTS-1245 281C;AL # BRAILLE PATTERN DOTS-345 281D;AL # BRAILLE PATTERN DOTS-1345 281E;AL # BRAILLE PATTERN DOTS-2345 281F;AL # BRAILLE PATTERN DOTS-12345 2820;AL # BRAILLE PATTERN DOTS-6 2821;AL # BRAILLE PATTERN DOTS-16 2822;AL # BRAILLE PATTERN DOTS-26 2823;AL # BRAILLE PATTERN DOTS-126 2824;AL # BRAILLE PATTERN DOTS-36 2825;AL # BRAILLE PATTERN DOTS-136 2826;AL # BRAILLE PATTERN DOTS-236 2827;AL # BRAILLE PATTERN DOTS-1236 2828;AL # BRAILLE PATTERN DOTS-46 2829;AL # BRAILLE PATTERN DOTS-146 282A;AL # BRAILLE PATTERN DOTS-246 282B;AL # BRAILLE PATTERN DOTS-1246 282C;AL # BRAILLE PATTERN DOTS-346 282D;AL # BRAILLE PATTERN DOTS-1346 282E;AL # BRAILLE PATTERN DOTS-2346 282F;AL # BRAILLE PATTERN DOTS-12346 2830;AL # BRAILLE PATTERN DOTS-56 2831;AL # BRAILLE PATTERN DOTS-156 2832;AL # BRAILLE PATTERN DOTS-256 2833;AL # BRAILLE PATTERN DOTS-1256 2834;AL # BRAILLE PATTERN DOTS-356 2835;AL # BRAILLE PATTERN DOTS-1356 2836;AL # BRAILLE PATTERN DOTS-2356 2837;AL # BRAILLE PATTERN DOTS-12356 2838;AL # BRAILLE PATTERN DOTS-456 2839;AL # BRAILLE PATTERN DOTS-1456 283A;AL # BRAILLE PATTERN DOTS-2456 283B;AL # BRAILLE PATTERN DOTS-12456 283C;AL # BRAILLE PATTERN DOTS-3456 283D;AL # BRAILLE PATTERN DOTS-13456 283E;AL # BRAILLE PATTERN DOTS-23456 283F;AL # BRAILLE PATTERN DOTS-123456 2840;AL # BRAILLE PATTERN DOTS-7 2841;AL # BRAILLE PATTERN DOTS-17 2842;AL # BRAILLE PATTERN DOTS-27 2843;AL # BRAILLE PATTERN DOTS-127 2844;AL # BRAILLE PATTERN DOTS-37 2845;AL # BRAILLE PATTERN DOTS-137 2846;AL # BRAILLE PATTERN DOTS-237 2847;AL # BRAILLE PATTERN DOTS-1237 2848;AL # BRAILLE PATTERN DOTS-47 2849;AL # BRAILLE PATTERN DOTS-147 284A;AL # BRAILLE PATTERN DOTS-247 284B;AL # BRAILLE PATTERN DOTS-1247 284C;AL # BRAILLE PATTERN DOTS-347 284D;AL # BRAILLE PATTERN DOTS-1347 284E;AL # BRAILLE PATTERN DOTS-2347 284F;AL # BRAILLE PATTERN DOTS-12347 2850;AL # BRAILLE PATTERN DOTS-57 2851;AL # BRAILLE PATTERN DOTS-157 2852;AL # BRAILLE PATTERN DOTS-257 2853;AL # BRAILLE PATTERN DOTS-1257 2854;AL # BRAILLE PATTERN DOTS-357 2855;AL # BRAILLE PATTERN DOTS-1357 2856;AL # BRAILLE PATTERN DOTS-2357 2857;AL # BRAILLE PATTERN DOTS-12357 2858;AL # BRAILLE PATTERN DOTS-457 2859;AL # BRAILLE PATTERN DOTS-1457 285A;AL # BRAILLE PATTERN DOTS-2457 285B;AL # BRAILLE PATTERN DOTS-12457 285C;AL # BRAILLE PATTERN DOTS-3457 285D;AL # BRAILLE PATTERN DOTS-13457 285E;AL # BRAILLE PATTERN DOTS-23457 285F;AL # BRAILLE PATTERN DOTS-123457 2860;AL # BRAILLE PATTERN DOTS-67 2861;AL # BRAILLE PATTERN DOTS-167 2862;AL # BRAILLE PATTERN DOTS-267 2863;AL # BRAILLE PATTERN DOTS-1267 2864;AL # BRAILLE PATTERN DOTS-367 2865;AL # BRAILLE PATTERN DOTS-1367 2866;AL # BRAILLE PATTERN DOTS-2367 2867;AL # BRAILLE PATTERN DOTS-12367 2868;AL # BRAILLE PATTERN DOTS-467 2869;AL # BRAILLE PATTERN DOTS-1467 286A;AL # BRAILLE PATTERN DOTS-2467 286B;AL # BRAILLE PATTERN DOTS-12467 286C;AL # BRAILLE PATTERN DOTS-3467 286D;AL # BRAILLE PATTERN DOTS-13467 286E;AL # BRAILLE PATTERN DOTS-23467 286F;AL # BRAILLE PATTERN DOTS-123467 2870;AL # BRAILLE PATTERN DOTS-567 2871;AL # BRAILLE PATTERN DOTS-1567 2872;AL # BRAILLE PATTERN DOTS-2567 2873;AL # BRAILLE PATTERN DOTS-12567 2874;AL # BRAILLE PATTERN DOTS-3567 2875;AL # BRAILLE PATTERN DOTS-13567 2876;AL # BRAILLE PATTERN DOTS-23567 2877;AL # BRAILLE PATTERN DOTS-123567 2878;AL # BRAILLE PATTERN DOTS-4567 2879;AL # BRAILLE PATTERN DOTS-14567 287A;AL # BRAILLE PATTERN DOTS-24567 287B;AL # BRAILLE PATTERN DOTS-124567 287C;AL # BRAILLE PATTERN DOTS-34567 287D;AL # BRAILLE PATTERN DOTS-134567 287E;AL # BRAILLE PATTERN DOTS-234567 287F;AL # BRAILLE PATTERN DOTS-1234567 2880;AL # BRAILLE PATTERN DOTS-8 2881;AL # BRAILLE PATTERN DOTS-18 2882;AL # BRAILLE PATTERN DOTS-28 2883;AL # BRAILLE PATTERN DOTS-128 2884;AL # BRAILLE PATTERN DOTS-38 2885;AL # BRAILLE PATTERN DOTS-138 2886;AL # BRAILLE PATTERN DOTS-238 2887;AL # BRAILLE PATTERN DOTS-1238 2888;AL # BRAILLE PATTERN DOTS-48 2889;AL # BRAILLE PATTERN DOTS-148 288A;AL # BRAILLE PATTERN DOTS-248 288B;AL # BRAILLE PATTERN DOTS-1248 288C;AL # BRAILLE PATTERN DOTS-348 288D;AL # BRAILLE PATTERN DOTS-1348 288E;AL # BRAILLE PATTERN DOTS-2348 288F;AL # BRAILLE PATTERN DOTS-12348 2890;AL # BRAILLE PATTERN DOTS-58 2891;AL # BRAILLE PATTERN DOTS-158 2892;AL # BRAILLE PATTERN DOTS-258 2893;AL # BRAILLE PATTERN DOTS-1258 2894;AL # BRAILLE PATTERN DOTS-358 2895;AL # BRAILLE PATTERN DOTS-1358 2896;AL # BRAILLE PATTERN DOTS-2358 2897;AL # BRAILLE PATTERN DOTS-12358 2898;AL # BRAILLE PATTERN DOTS-458 2899;AL # BRAILLE PATTERN DOTS-1458 289A;AL # BRAILLE PATTERN DOTS-2458 289B;AL # BRAILLE PATTERN DOTS-12458 289C;AL # BRAILLE PATTERN DOTS-3458 289D;AL # BRAILLE PATTERN DOTS-13458 289E;AL # BRAILLE PATTERN DOTS-23458 289F;AL # BRAILLE PATTERN DOTS-123458 28A0;AL # BRAILLE PATTERN DOTS-68 28A1;AL # BRAILLE PATTERN DOTS-168 28A2;AL # BRAILLE PATTERN DOTS-268 28A3;AL # BRAILLE PATTERN DOTS-1268 28A4;AL # BRAILLE PATTERN DOTS-368 28A5;AL # BRAILLE PATTERN DOTS-1368 28A6;AL # BRAILLE PATTERN DOTS-2368 28A7;AL # BRAILLE PATTERN DOTS-12368 28A8;AL # BRAILLE PATTERN DOTS-468 28A9;AL # BRAILLE PATTERN DOTS-1468 28AA;AL # BRAILLE PATTERN DOTS-2468 28AB;AL # BRAILLE PATTERN DOTS-12468 28AC;AL # BRAILLE PATTERN DOTS-3468 28AD;AL # BRAILLE PATTERN DOTS-13468 28AE;AL # BRAILLE PATTERN DOTS-23468 28AF;AL # BRAILLE PATTERN DOTS-123468 28B0;AL # BRAILLE PATTERN DOTS-568 28B1;AL # BRAILLE PATTERN DOTS-1568 28B2;AL # BRAILLE PATTERN DOTS-2568 28B3;AL # BRAILLE PATTERN DOTS-12568 28B4;AL # BRAILLE PATTERN DOTS-3568 28B5;AL # BRAILLE PATTERN DOTS-13568 28B6;AL # BRAILLE PATTERN DOTS-23568 28B7;AL # BRAILLE PATTERN DOTS-123568 28B8;AL # BRAILLE PATTERN DOTS-4568 28B9;AL # BRAILLE PATTERN DOTS-14568 28BA;AL # BRAILLE PATTERN DOTS-24568 28BB;AL # BRAILLE PATTERN DOTS-124568 28BC;AL # BRAILLE PATTERN DOTS-34568 28BD;AL # BRAILLE PATTERN DOTS-134568 28BE;AL # BRAILLE PATTERN DOTS-234568 28BF;AL # BRAILLE PATTERN DOTS-1234568 28C0;AL # BRAILLE PATTERN DOTS-78 28C1;AL # BRAILLE PATTERN DOTS-178 28C2;AL # BRAILLE PATTERN DOTS-278 28C3;AL # BRAILLE PATTERN DOTS-1278 28C4;AL # BRAILLE PATTERN DOTS-378 28C5;AL # BRAILLE PATTERN DOTS-1378 28C6;AL # BRAILLE PATTERN DOTS-2378 28C7;AL # BRAILLE PATTERN DOTS-12378 28C8;AL # BRAILLE PATTERN DOTS-478 28C9;AL # BRAILLE PATTERN DOTS-1478 28CA;AL # BRAILLE PATTERN DOTS-2478 28CB;AL # BRAILLE PATTERN DOTS-12478 28CC;AL # BRAILLE PATTERN DOTS-3478 28CD;AL # BRAILLE PATTERN DOTS-13478 28CE;AL # BRAILLE PATTERN DOTS-23478 28CF;AL # BRAILLE PATTERN DOTS-123478 28D0;AL # BRAILLE PATTERN DOTS-578 28D1;AL # BRAILLE PATTERN DOTS-1578 28D2;AL # BRAILLE PATTERN DOTS-2578 28D3;AL # BRAILLE PATTERN DOTS-12578 28D4;AL # BRAILLE PATTERN DOTS-3578 28D5;AL # BRAILLE PATTERN DOTS-13578 28D6;AL # BRAILLE PATTERN DOTS-23578 28D7;AL # BRAILLE PATTERN DOTS-123578 28D8;AL # BRAILLE PATTERN DOTS-4578 28D9;AL # BRAILLE PATTERN DOTS-14578 28DA;AL # BRAILLE PATTERN DOTS-24578 28DB;AL # BRAILLE PATTERN DOTS-124578 28DC;AL # BRAILLE PATTERN DOTS-34578 28DD;AL # BRAILLE PATTERN DOTS-134578 28DE;AL # BRAILLE PATTERN DOTS-234578 28DF;AL # BRAILLE PATTERN DOTS-1234578 28E0;AL # BRAILLE PATTERN DOTS-678 28E1;AL # BRAILLE PATTERN DOTS-1678 28E2;AL # BRAILLE PATTERN DOTS-2678 28E3;AL # BRAILLE PATTERN DOTS-12678 28E4;AL # BRAILLE PATTERN DOTS-3678 28E5;AL # BRAILLE PATTERN DOTS-13678 28E6;AL # BRAILLE PATTERN DOTS-23678 28E7;AL # BRAILLE PATTERN DOTS-123678 28E8;AL # BRAILLE PATTERN DOTS-4678 28E9;AL # BRAILLE PATTERN DOTS-14678 28EA;AL # BRAILLE PATTERN DOTS-24678 28EB;AL # BRAILLE PATTERN DOTS-124678 28EC;AL # BRAILLE PATTERN DOTS-34678 28ED;AL # BRAILLE PATTERN DOTS-134678 28EE;AL # BRAILLE PATTERN DOTS-234678 28EF;AL # BRAILLE PATTERN DOTS-1234678 28F0;AL # BRAILLE PATTERN DOTS-5678 28F1;AL # BRAILLE PATTERN DOTS-15678 28F2;AL # BRAILLE PATTERN DOTS-25678 28F3;AL # BRAILLE PATTERN DOTS-125678 28F4;AL # BRAILLE PATTERN DOTS-35678 28F5;AL # BRAILLE PATTERN DOTS-135678 28F6;AL # BRAILLE PATTERN DOTS-235678 28F7;AL # BRAILLE PATTERN DOTS-1235678 28F8;AL # BRAILLE PATTERN DOTS-45678 28F9;AL # BRAILLE PATTERN DOTS-145678 28FA;AL # BRAILLE PATTERN DOTS-245678 28FB;AL # BRAILLE PATTERN DOTS-1245678 28FC;AL # BRAILLE PATTERN DOTS-345678 28FD;AL # BRAILLE PATTERN DOTS-1345678 28FE;AL # BRAILLE PATTERN DOTS-2345678 28FF;AL # BRAILLE PATTERN DOTS-12345678 2900;AL # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE 2901;AL # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE 2902;AL # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE 2903;AL # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE 2904;AL # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE 2905;AL # RIGHTWARDS TWO-HEADED ARROW FROM BAR 2906;AL # LEFTWARDS DOUBLE ARROW FROM BAR 2907;AL # RIGHTWARDS DOUBLE ARROW FROM BAR 2908;AL # DOWNWARDS ARROW WITH HORIZONTAL STROKE 2909;AL # UPWARDS ARROW WITH HORIZONTAL STROKE 290A;AL # UPWARDS TRIPLE ARROW 290B;AL # DOWNWARDS TRIPLE ARROW 290C;AL # LEFTWARDS DOUBLE DASH ARROW 290D;AL # RIGHTWARDS DOUBLE DASH ARROW 290E;AL # LEFTWARDS TRIPLE DASH ARROW 290F;AL # RIGHTWARDS TRIPLE DASH ARROW 2910;AL # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW 2911;AL # RIGHTWARDS ARROW WITH DOTTED STEM 2912;AL # UPWARDS ARROW TO BAR 2913;AL # DOWNWARDS ARROW TO BAR 2914;AL # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE 2915;AL # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE 2916;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL 2917;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE 2918;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE 2919;AL # LEFTWARDS ARROW-TAIL 291A;AL # RIGHTWARDS ARROW-TAIL 291B;AL # LEFTWARDS DOUBLE ARROW-TAIL 291C;AL # RIGHTWARDS DOUBLE ARROW-TAIL 291D;AL # LEFTWARDS ARROW TO BLACK DIAMOND 291E;AL # RIGHTWARDS ARROW TO BLACK DIAMOND 291F;AL # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND 2920;AL # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND 2921;AL # NORTH WEST AND SOUTH EAST ARROW 2922;AL # NORTH EAST AND SOUTH WEST ARROW 2923;AL # NORTH WEST ARROW WITH HOOK 2924;AL # NORTH EAST ARROW WITH HOOK 2925;AL # SOUTH EAST ARROW WITH HOOK 2926;AL # SOUTH WEST ARROW WITH HOOK 2927;AL # NORTH WEST ARROW AND NORTH EAST ARROW 2928;AL # NORTH EAST ARROW AND SOUTH EAST ARROW 2929;AL # SOUTH EAST ARROW AND SOUTH WEST ARROW 292A;AL # SOUTH WEST ARROW AND NORTH WEST ARROW 292B;AL # RISING DIAGONAL CROSSING FALLING DIAGONAL 292C;AL # FALLING DIAGONAL CROSSING RISING DIAGONAL 292D;AL # SOUTH EAST ARROW CROSSING NORTH EAST ARROW 292E;AL # NORTH EAST ARROW CROSSING SOUTH EAST ARROW 292F;AL # FALLING DIAGONAL CROSSING NORTH EAST ARROW 2930;AL # RISING DIAGONAL CROSSING SOUTH EAST ARROW 2931;AL # NORTH EAST ARROW CROSSING NORTH WEST ARROW 2932;AL # NORTH WEST ARROW CROSSING NORTH EAST ARROW 2933;AL # WAVE ARROW POINTING DIRECTLY RIGHT 2934;AL # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS 2935;AL # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS 2936;AL # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS 2937;AL # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS 2938;AL # RIGHT-SIDE ARC CLOCKWISE ARROW 2939;AL # LEFT-SIDE ARC ANTICLOCKWISE ARROW 293A;AL # TOP ARC ANTICLOCKWISE ARROW 293B;AL # BOTTOM ARC ANTICLOCKWISE ARROW 293C;AL # TOP ARC CLOCKWISE ARROW WITH MINUS 293D;AL # TOP ARC ANTICLOCKWISE ARROW WITH PLUS 293E;AL # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW 293F;AL # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW 2940;AL # ANTICLOCKWISE CLOSED CIRCLE ARROW 2941;AL # CLOCKWISE CLOSED CIRCLE ARROW 2942;AL # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW 2943;AL # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW 2944;AL # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW 2945;AL # RIGHTWARDS ARROW WITH PLUS BELOW 2946;AL # LEFTWARDS ARROW WITH PLUS BELOW 2947;AL # RIGHTWARDS ARROW THROUGH X 2948;AL # LEFT RIGHT ARROW THROUGH SMALL CIRCLE 2949;AL # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE 294A;AL # LEFT BARB UP RIGHT BARB DOWN HARPOON 294B;AL # LEFT BARB DOWN RIGHT BARB UP HARPOON 294C;AL # UP BARB RIGHT DOWN BARB LEFT HARPOON 294D;AL # UP BARB LEFT DOWN BARB RIGHT HARPOON 294E;AL # LEFT BARB UP RIGHT BARB UP HARPOON 294F;AL # UP BARB RIGHT DOWN BARB RIGHT HARPOON 2950;AL # LEFT BARB DOWN RIGHT BARB DOWN HARPOON 2951;AL # UP BARB LEFT DOWN BARB LEFT HARPOON 2952;AL # LEFTWARDS HARPOON WITH BARB UP TO BAR 2953;AL # RIGHTWARDS HARPOON WITH BARB UP TO BAR 2954;AL # UPWARDS HARPOON WITH BARB RIGHT TO BAR 2955;AL # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR 2956;AL # LEFTWARDS HARPOON WITH BARB DOWN TO BAR 2957;AL # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR 2958;AL # UPWARDS HARPOON WITH BARB LEFT TO BAR 2959;AL # DOWNWARDS HARPOON WITH BARB LEFT TO BAR 295A;AL # LEFTWARDS HARPOON WITH BARB UP FROM BAR 295B;AL # RIGHTWARDS HARPOON WITH BARB UP FROM BAR 295C;AL # UPWARDS HARPOON WITH BARB RIGHT FROM BAR 295D;AL # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR 295E;AL # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR 295F;AL # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR 2960;AL # UPWARDS HARPOON WITH BARB LEFT FROM BAR 2961;AL # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR 2962;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN 2963;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT 2964;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN 2965;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT 2966;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP 2967;AL # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN 2968;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP 2969;AL # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN 296A;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH 296B;AL # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH 296C;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH 296D;AL # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH 296E;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT 296F;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT 2970;AL # RIGHT DOUBLE ARROW WITH ROUNDED HEAD 2971;AL # EQUALS SIGN ABOVE RIGHTWARDS ARROW 2972;AL # TILDE OPERATOR ABOVE RIGHTWARDS ARROW 2973;AL # LEFTWARDS ARROW ABOVE TILDE OPERATOR 2974;AL # RIGHTWARDS ARROW ABOVE TILDE OPERATOR 2975;AL # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO 2976;AL # LESS-THAN ABOVE LEFTWARDS ARROW 2977;AL # LEFTWARDS ARROW THROUGH LESS-THAN 2978;AL # GREATER-THAN ABOVE RIGHTWARDS ARROW 2979;AL # SUBSET ABOVE RIGHTWARDS ARROW 297A;AL # LEFTWARDS ARROW THROUGH SUBSET 297B;AL # SUPERSET ABOVE LEFTWARDS ARROW 297C;AL # LEFT FISH TAIL 297D;AL # RIGHT FISH TAIL 297E;AL # UP FISH TAIL 297F;AL # DOWN FISH TAIL 2980;AL # TRIPLE VERTICAL BAR DELIMITER 2981;AL # Z NOTATION SPOT 2982;AL # Z NOTATION TYPE COLON 2983;OP # LEFT WHITE CURLY BRACKET 2984;CL # RIGHT WHITE CURLY BRACKET 2985;OP # LEFT WHITE PARENTHESIS 2986;CL # RIGHT WHITE PARENTHESIS 2987;OP # Z NOTATION LEFT IMAGE BRACKET 2988;CL # Z NOTATION RIGHT IMAGE BRACKET 2989;OP # Z NOTATION LEFT BINDING BRACKET 298A;CL # Z NOTATION RIGHT BINDING BRACKET 298B;OP # LEFT SQUARE BRACKET WITH UNDERBAR 298C;CL # RIGHT SQUARE BRACKET WITH UNDERBAR 298D;OP # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER 298E;CL # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 298F;OP # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 2990;CL # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER 2991;OP # LEFT ANGLE BRACKET WITH DOT 2992;CL # RIGHT ANGLE BRACKET WITH DOT 2993;OP # LEFT ARC LESS-THAN BRACKET 2994;CL # RIGHT ARC GREATER-THAN BRACKET 2995;OP # DOUBLE LEFT ARC GREATER-THAN BRACKET 2996;CL # DOUBLE RIGHT ARC LESS-THAN BRACKET 2997;OP # LEFT BLACK TORTOISE SHELL BRACKET 2998;CL # RIGHT BLACK TORTOISE SHELL BRACKET 2999;AL # DOTTED FENCE 299A;AL # VERTICAL ZIGZAG LINE 299B;AL # MEASURED ANGLE OPENING LEFT 299C;AL # RIGHT ANGLE VARIANT WITH SQUARE 299D;AL # MEASURED RIGHT ANGLE WITH DOT 299E;AL # ANGLE WITH S INSIDE 299F;AL # ACUTE ANGLE 29A0;AL # SPHERICAL ANGLE OPENING LEFT 29A1;AL # SPHERICAL ANGLE OPENING UP 29A2;AL # TURNED ANGLE 29A3;AL # REVERSED ANGLE 29A4;AL # ANGLE WITH UNDERBAR 29A5;AL # REVERSED ANGLE WITH UNDERBAR 29A6;AL # OBLIQUE ANGLE OPENING UP 29A7;AL # OBLIQUE ANGLE OPENING DOWN 29A8;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT 29A9;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT 29AA;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT 29AB;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT 29AC;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP 29AD;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP 29AE;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN 29AF;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN 29B0;AL # REVERSED EMPTY SET 29B1;AL # EMPTY SET WITH OVERBAR 29B2;AL # EMPTY SET WITH SMALL CIRCLE ABOVE 29B3;AL # EMPTY SET WITH RIGHT ARROW ABOVE 29B4;AL # EMPTY SET WITH LEFT ARROW ABOVE 29B5;AL # CIRCLE WITH HORIZONTAL BAR 29B6;AL # CIRCLED VERTICAL BAR 29B7;AL # CIRCLED PARALLEL 29B8;AL # CIRCLED REVERSE SOLIDUS 29B9;AL # CIRCLED PERPENDICULAR 29BA;AL # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR 29BB;AL # CIRCLE WITH SUPERIMPOSED X 29BC;AL # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN 29BD;AL # UP ARROW THROUGH CIRCLE 29BE;AL # CIRCLED WHITE BULLET 29BF;AL # CIRCLED BULLET 29C0;AL # CIRCLED LESS-THAN 29C1;AL # CIRCLED GREATER-THAN 29C2;AL # CIRCLE WITH SMALL CIRCLE TO THE RIGHT 29C3;AL # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT 29C4;AL # SQUARED RISING DIAGONAL SLASH 29C5;AL # SQUARED FALLING DIAGONAL SLASH 29C6;AL # SQUARED ASTERISK 29C7;AL # SQUARED SMALL CIRCLE 29C8;AL # SQUARED SQUARE 29C9;AL # TWO JOINED SQUARES 29CA;AL # TRIANGLE WITH DOT ABOVE 29CB;AL # TRIANGLE WITH UNDERBAR 29CC;AL # S IN TRIANGLE 29CD;AL # TRIANGLE WITH SERIFS AT BOTTOM 29CE;AL # RIGHT TRIANGLE ABOVE LEFT TRIANGLE 29CF;AL # LEFT TRIANGLE BESIDE VERTICAL BAR 29D0;AL # VERTICAL BAR BESIDE RIGHT TRIANGLE 29D1;AL # BOWTIE WITH LEFT HALF BLACK 29D2;AL # BOWTIE WITH RIGHT HALF BLACK 29D3;AL # BLACK BOWTIE 29D4;AL # TIMES WITH LEFT HALF BLACK 29D5;AL # TIMES WITH RIGHT HALF BLACK 29D6;AL # WHITE HOURGLASS 29D7;AL # BLACK HOURGLASS 29D8;OP # LEFT WIGGLY FENCE 29D9;CL # RIGHT WIGGLY FENCE 29DA;OP # LEFT DOUBLE WIGGLY FENCE 29DB;CL # RIGHT DOUBLE WIGGLY FENCE 29DC;AL # INCOMPLETE INFINITY 29DD;AL # TIE OVER INFINITY 29DE;AL # INFINITY NEGATED WITH VERTICAL BAR 29DF;AL # DOUBLE-ENDED MULTIMAP 29E0;AL # SQUARE WITH CONTOURED OUTLINE 29E1;AL # INCREASES AS 29E2;AL # SHUFFLE PRODUCT 29E3;AL # EQUALS SIGN AND SLANTED PARALLEL 29E4;AL # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE 29E5;AL # IDENTICAL TO AND SLANTED PARALLEL 29E6;AL # GLEICH STARK 29E7;AL # THERMODYNAMIC 29E8;AL # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK 29E9;AL # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK 29EA;AL # BLACK DIAMOND WITH DOWN ARROW 29EB;AL # BLACK LOZENGE 29EC;AL # WHITE CIRCLE WITH DOWN ARROW 29ED;AL # BLACK CIRCLE WITH DOWN ARROW 29EE;AL # ERROR-BARRED WHITE SQUARE 29EF;AL # ERROR-BARRED BLACK SQUARE 29F0;AL # ERROR-BARRED WHITE DIAMOND 29F1;AL # ERROR-BARRED BLACK DIAMOND 29F2;AL # ERROR-BARRED WHITE CIRCLE 29F3;AL # ERROR-BARRED BLACK CIRCLE 29F4;AL # RULE-DELAYED 29F5;AL # REVERSE SOLIDUS OPERATOR 29F6;AL # SOLIDUS WITH OVERBAR 29F7;AL # REVERSE SOLIDUS WITH HORIZONTAL STROKE 29F8;AL # BIG SOLIDUS 29F9;AL # BIG REVERSE SOLIDUS 29FA;AL # DOUBLE PLUS 29FB;AL # TRIPLE PLUS 29FC;OP # LEFT-POINTING CURVED ANGLE BRACKET 29FD;CL # RIGHT-POINTING CURVED ANGLE BRACKET 29FE;AL # TINY 29FF;AL # MINY 2A00;AL # N-ARY CIRCLED DOT OPERATOR 2A01;AL # N-ARY CIRCLED PLUS OPERATOR 2A02;AL # N-ARY CIRCLED TIMES OPERATOR 2A03;AL # N-ARY UNION OPERATOR WITH DOT 2A04;AL # N-ARY UNION OPERATOR WITH PLUS 2A05;AL # N-ARY SQUARE INTERSECTION OPERATOR 2A06;AL # N-ARY SQUARE UNION OPERATOR 2A07;AL # TWO LOGICAL AND OPERATOR 2A08;AL # TWO LOGICAL OR OPERATOR 2A09;AL # N-ARY TIMES OPERATOR 2A0A;AL # MODULO TWO SUM 2A0B;AL # SUMMATION WITH INTEGRAL 2A0C;AL # QUADRUPLE INTEGRAL OPERATOR 2A0D;AL # FINITE PART INTEGRAL 2A0E;AL # INTEGRAL WITH DOUBLE STROKE 2A0F;AL # INTEGRAL AVERAGE WITH SLASH 2A10;AL # CIRCULATION FUNCTION 2A11;AL # ANTICLOCKWISE INTEGRATION 2A12;AL # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE 2A13;AL # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE 2A14;AL # LINE INTEGRATION NOT INCLUDING THE POLE 2A15;AL # INTEGRAL AROUND A POINT OPERATOR 2A16;AL # QUATERNION INTEGRAL OPERATOR 2A17;AL # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK 2A18;AL # INTEGRAL WITH TIMES SIGN 2A19;AL # INTEGRAL WITH INTERSECTION 2A1A;AL # INTEGRAL WITH UNION 2A1B;AL # INTEGRAL WITH OVERBAR 2A1C;AL # INTEGRAL WITH UNDERBAR 2A1D;AL # JOIN 2A1E;AL # LARGE LEFT TRIANGLE OPERATOR 2A1F;AL # Z NOTATION SCHEMA COMPOSITION 2A20;AL # Z NOTATION SCHEMA PIPING 2A21;AL # Z NOTATION SCHEMA PROJECTION 2A22;AL # PLUS SIGN WITH SMALL CIRCLE ABOVE 2A23;AL # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE 2A24;AL # PLUS SIGN WITH TILDE ABOVE 2A25;AL # PLUS SIGN WITH DOT BELOW 2A26;AL # PLUS SIGN WITH TILDE BELOW 2A27;AL # PLUS SIGN WITH SUBSCRIPT TWO 2A28;AL # PLUS SIGN WITH BLACK TRIANGLE 2A29;AL # MINUS SIGN WITH COMMA ABOVE 2A2A;AL # MINUS SIGN WITH DOT BELOW 2A2B;AL # MINUS SIGN WITH FALLING DOTS 2A2C;AL # MINUS SIGN WITH RISING DOTS 2A2D;AL # PLUS SIGN IN LEFT HALF CIRCLE 2A2E;AL # PLUS SIGN IN RIGHT HALF CIRCLE 2A2F;AL # VECTOR OR CROSS PRODUCT 2A30;AL # MULTIPLICATION SIGN WITH DOT ABOVE 2A31;AL # MULTIPLICATION SIGN WITH UNDERBAR 2A32;AL # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED 2A33;AL # SMASH PRODUCT 2A34;AL # MULTIPLICATION SIGN IN LEFT HALF CIRCLE 2A35;AL # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE 2A36;AL # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT 2A37;AL # MULTIPLICATION SIGN IN DOUBLE CIRCLE 2A38;AL # CIRCLED DIVISION SIGN 2A39;AL # PLUS SIGN IN TRIANGLE 2A3A;AL # MINUS SIGN IN TRIANGLE 2A3B;AL # MULTIPLICATION SIGN IN TRIANGLE 2A3C;AL # INTERIOR PRODUCT 2A3D;AL # RIGHTHAND INTERIOR PRODUCT 2A3E;AL # Z NOTATION RELATIONAL COMPOSITION 2A3F;AL # AMALGAMATION OR COPRODUCT 2A40;AL # INTERSECTION WITH DOT 2A41;AL # UNION WITH MINUS SIGN 2A42;AL # UNION WITH OVERBAR 2A43;AL # INTERSECTION WITH OVERBAR 2A44;AL # INTERSECTION WITH LOGICAL AND 2A45;AL # UNION WITH LOGICAL OR 2A46;AL # UNION ABOVE INTERSECTION 2A47;AL # INTERSECTION ABOVE UNION 2A48;AL # UNION ABOVE BAR ABOVE INTERSECTION 2A49;AL # INTERSECTION ABOVE BAR ABOVE UNION 2A4A;AL # UNION BESIDE AND JOINED WITH UNION 2A4B;AL # INTERSECTION BESIDE AND JOINED WITH INTERSECTION 2A4C;AL # CLOSED UNION WITH SERIFS 2A4D;AL # CLOSED INTERSECTION WITH SERIFS 2A4E;AL # DOUBLE SQUARE INTERSECTION 2A4F;AL # DOUBLE SQUARE UNION 2A50;AL # CLOSED UNION WITH SERIFS AND SMASH PRODUCT 2A51;AL # LOGICAL AND WITH DOT ABOVE 2A52;AL # LOGICAL OR WITH DOT ABOVE 2A53;AL # DOUBLE LOGICAL AND 2A54;AL # DOUBLE LOGICAL OR 2A55;AL # TWO INTERSECTING LOGICAL AND 2A56;AL # TWO INTERSECTING LOGICAL OR 2A57;AL # SLOPING LARGE OR 2A58;AL # SLOPING LARGE AND 2A59;AL # LOGICAL OR OVERLAPPING LOGICAL AND 2A5A;AL # LOGICAL AND WITH MIDDLE STEM 2A5B;AL # LOGICAL OR WITH MIDDLE STEM 2A5C;AL # LOGICAL AND WITH HORIZONTAL DASH 2A5D;AL # LOGICAL OR WITH HORIZONTAL DASH 2A5E;AL # LOGICAL AND WITH DOUBLE OVERBAR 2A5F;AL # LOGICAL AND WITH UNDERBAR 2A60;AL # LOGICAL AND WITH DOUBLE UNDERBAR 2A61;AL # SMALL VEE WITH UNDERBAR 2A62;AL # LOGICAL OR WITH DOUBLE OVERBAR 2A63;AL # LOGICAL OR WITH DOUBLE UNDERBAR 2A64;AL # Z NOTATION DOMAIN ANTIRESTRICTION 2A65;AL # Z NOTATION RANGE ANTIRESTRICTION 2A66;AL # EQUALS SIGN WITH DOT BELOW 2A67;AL # IDENTICAL WITH DOT ABOVE 2A68;AL # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE 2A69;AL # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE 2A6A;AL # TILDE OPERATOR WITH DOT ABOVE 2A6B;AL # TILDE OPERATOR WITH RISING DOTS 2A6C;AL # SIMILAR MINUS SIMILAR 2A6D;AL # CONGRUENT WITH DOT ABOVE 2A6E;AL # EQUALS WITH ASTERISK 2A6F;AL # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT 2A70;AL # APPROXIMATELY EQUAL OR EQUAL TO 2A71;AL # EQUALS SIGN ABOVE PLUS SIGN 2A72;AL # PLUS SIGN ABOVE EQUALS SIGN 2A73;AL # EQUALS SIGN ABOVE TILDE OPERATOR 2A74;AL # DOUBLE COLON EQUAL 2A75;AL # TWO CONSECUTIVE EQUALS SIGNS 2A76;AL # THREE CONSECUTIVE EQUALS SIGNS 2A77;AL # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW 2A78;AL # EQUIVALENT WITH FOUR DOTS ABOVE 2A79;AL # LESS-THAN WITH CIRCLE INSIDE 2A7A;AL # GREATER-THAN WITH CIRCLE INSIDE 2A7B;AL # LESS-THAN WITH QUESTION MARK ABOVE 2A7C;AL # GREATER-THAN WITH QUESTION MARK ABOVE 2A7D;AL # LESS-THAN OR SLANTED EQUAL TO 2A7E;AL # GREATER-THAN OR SLANTED EQUAL TO 2A7F;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A80;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A81;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A82;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A83;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT 2A84;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT 2A85;AL # LESS-THAN OR APPROXIMATE 2A86;AL # GREATER-THAN OR APPROXIMATE 2A87;AL # LESS-THAN AND SINGLE-LINE NOT EQUAL TO 2A88;AL # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO 2A89;AL # LESS-THAN AND NOT APPROXIMATE 2A8A;AL # GREATER-THAN AND NOT APPROXIMATE 2A8B;AL # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN 2A8C;AL # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN 2A8D;AL # LESS-THAN ABOVE SIMILAR OR EQUAL 2A8E;AL # GREATER-THAN ABOVE SIMILAR OR EQUAL 2A8F;AL # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN 2A90;AL # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN 2A91;AL # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL 2A92;AL # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL 2A93;AL # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL 2A94;AL # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL 2A95;AL # SLANTED EQUAL TO OR LESS-THAN 2A96;AL # SLANTED EQUAL TO OR GREATER-THAN 2A97;AL # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE 2A98;AL # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE 2A99;AL # DOUBLE-LINE EQUAL TO OR LESS-THAN 2A9A;AL # DOUBLE-LINE EQUAL TO OR GREATER-THAN 2A9B;AL # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN 2A9C;AL # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN 2A9D;AL # SIMILAR OR LESS-THAN 2A9E;AL # SIMILAR OR GREATER-THAN 2A9F;AL # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN 2AA0;AL # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN 2AA1;AL # DOUBLE NESTED LESS-THAN 2AA2;AL # DOUBLE NESTED GREATER-THAN 2AA3;AL # DOUBLE NESTED LESS-THAN WITH UNDERBAR 2AA4;AL # GREATER-THAN OVERLAPPING LESS-THAN 2AA5;AL # GREATER-THAN BESIDE LESS-THAN 2AA6;AL # LESS-THAN CLOSED BY CURVE 2AA7;AL # GREATER-THAN CLOSED BY CURVE 2AA8;AL # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AA9;AL # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AAA;AL # SMALLER THAN 2AAB;AL # LARGER THAN 2AAC;AL # SMALLER THAN OR EQUAL TO 2AAD;AL # LARGER THAN OR EQUAL TO 2AAE;AL # EQUALS SIGN WITH BUMPY ABOVE 2AAF;AL # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN 2AB0;AL # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN 2AB1;AL # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO 2AB2;AL # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO 2AB3;AL # PRECEDES ABOVE EQUALS SIGN 2AB4;AL # SUCCEEDS ABOVE EQUALS SIGN 2AB5;AL # PRECEDES ABOVE NOT EQUAL TO 2AB6;AL # SUCCEEDS ABOVE NOT EQUAL TO 2AB7;AL # PRECEDES ABOVE ALMOST EQUAL TO 2AB8;AL # SUCCEEDS ABOVE ALMOST EQUAL TO 2AB9;AL # PRECEDES ABOVE NOT ALMOST EQUAL TO 2ABA;AL # SUCCEEDS ABOVE NOT ALMOST EQUAL TO 2ABB;AL # DOUBLE PRECEDES 2ABC;AL # DOUBLE SUCCEEDS 2ABD;AL # SUBSET WITH DOT 2ABE;AL # SUPERSET WITH DOT 2ABF;AL # SUBSET WITH PLUS SIGN BELOW 2AC0;AL # SUPERSET WITH PLUS SIGN BELOW 2AC1;AL # SUBSET WITH MULTIPLICATION SIGN BELOW 2AC2;AL # SUPERSET WITH MULTIPLICATION SIGN BELOW 2AC3;AL # SUBSET OF OR EQUAL TO WITH DOT ABOVE 2AC4;AL # SUPERSET OF OR EQUAL TO WITH DOT ABOVE 2AC5;AL # SUBSET OF ABOVE EQUALS SIGN 2AC6;AL # SUPERSET OF ABOVE EQUALS SIGN 2AC7;AL # SUBSET OF ABOVE TILDE OPERATOR 2AC8;AL # SUPERSET OF ABOVE TILDE OPERATOR 2AC9;AL # SUBSET OF ABOVE ALMOST EQUAL TO 2ACA;AL # SUPERSET OF ABOVE ALMOST EQUAL TO 2ACB;AL # SUBSET OF ABOVE NOT EQUAL TO 2ACC;AL # SUPERSET OF ABOVE NOT EQUAL TO 2ACD;AL # SQUARE LEFT OPEN BOX OPERATOR 2ACE;AL # SQUARE RIGHT OPEN BOX OPERATOR 2ACF;AL # CLOSED SUBSET 2AD0;AL # CLOSED SUPERSET 2AD1;AL # CLOSED SUBSET OR EQUAL TO 2AD2;AL # CLOSED SUPERSET OR EQUAL TO 2AD3;AL # SUBSET ABOVE SUPERSET 2AD4;AL # SUPERSET ABOVE SUBSET 2AD5;AL # SUBSET ABOVE SUBSET 2AD6;AL # SUPERSET ABOVE SUPERSET 2AD7;AL # SUPERSET BESIDE SUBSET 2AD8;AL # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET 2AD9;AL # ELEMENT OF OPENING DOWNWARDS 2ADA;AL # PITCHFORK WITH TEE TOP 2ADB;AL # TRANSVERSAL INTERSECTION 2ADC;AL # FORKING 2ADD;AL # NONFORKING 2ADE;AL # SHORT LEFT TACK 2ADF;AL # SHORT DOWN TACK 2AE0;AL # SHORT UP TACK 2AE1;AL # PERPENDICULAR WITH S 2AE2;AL # VERTICAL BAR TRIPLE RIGHT TURNSTILE 2AE3;AL # DOUBLE VERTICAL BAR LEFT TURNSTILE 2AE4;AL # VERTICAL BAR DOUBLE LEFT TURNSTILE 2AE5;AL # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE 2AE6;AL # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL 2AE7;AL # SHORT DOWN TACK WITH OVERBAR 2AE8;AL # SHORT UP TACK WITH UNDERBAR 2AE9;AL # SHORT UP TACK ABOVE SHORT DOWN TACK 2AEA;AL # DOUBLE DOWN TACK 2AEB;AL # DOUBLE UP TACK 2AEC;AL # DOUBLE STROKE NOT SIGN 2AED;AL # REVERSED DOUBLE STROKE NOT SIGN 2AEE;AL # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH 2AEF;AL # VERTICAL LINE WITH CIRCLE ABOVE 2AF0;AL # VERTICAL LINE WITH CIRCLE BELOW 2AF1;AL # DOWN TACK WITH CIRCLE BELOW 2AF2;AL # PARALLEL WITH HORIZONTAL STROKE 2AF3;AL # PARALLEL WITH TILDE OPERATOR 2AF4;AL # TRIPLE VERTICAL BAR BINARY RELATION 2AF5;AL # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE 2AF6;AL # TRIPLE COLON OPERATOR 2AF7;AL # TRIPLE NESTED LESS-THAN 2AF8;AL # TRIPLE NESTED GREATER-THAN 2AF9;AL # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO 2AFA;AL # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO 2AFB;AL # TRIPLE SOLIDUS BINARY RELATION 2AFC;AL # LARGE TRIPLE VERTICAL BAR OPERATOR 2AFD;AL # DOUBLE SOLIDUS OPERATOR 2AFE;AL # WHITE VERTICAL BAR 2AFF;AL # N-ARY WHITE VERTICAL BAR 2E80;ID # CJK RADICAL REPEAT 2E81;ID # CJK RADICAL CLIFF 2E82;ID # CJK RADICAL SECOND ONE 2E83;ID # CJK RADICAL SECOND TWO 2E84;ID # CJK RADICAL SECOND THREE 2E85;ID # CJK RADICAL PERSON 2E86;ID # CJK RADICAL BOX 2E87;ID # CJK RADICAL TABLE 2E88;ID # CJK RADICAL KNIFE ONE 2E89;ID # CJK RADICAL KNIFE TWO 2E8A;ID # CJK RADICAL DIVINATION 2E8B;ID # CJK RADICAL SEAL 2E8C;ID # CJK RADICAL SMALL ONE 2E8D;ID # CJK RADICAL SMALL TWO 2E8E;ID # CJK RADICAL LAME ONE 2E8F;ID # CJK RADICAL LAME TWO 2E90;ID # CJK RADICAL LAME THREE 2E91;ID # CJK RADICAL LAME FOUR 2E92;ID # CJK RADICAL SNAKE 2E93;ID # CJK RADICAL THREAD 2E94;ID # CJK RADICAL SNOUT ONE 2E95;ID # CJK RADICAL SNOUT TWO 2E96;ID # CJK RADICAL HEART ONE 2E97;ID # CJK RADICAL HEART TWO 2E98;ID # CJK RADICAL HAND 2E99;ID # CJK RADICAL RAP 2E9B;ID # CJK RADICAL CHOKE 2E9C;ID # CJK RADICAL SUN 2E9D;ID # CJK RADICAL MOON 2E9E;ID # CJK RADICAL DEATH 2E9F;ID # CJK RADICAL MOTHER 2EA0;ID # CJK RADICAL CIVILIAN 2EA1;ID # CJK RADICAL WATER ONE 2EA2;ID # CJK RADICAL WATER TWO 2EA3;ID # CJK RADICAL FIRE 2EA4;ID # CJK RADICAL PAW ONE 2EA5;ID # CJK RADICAL PAW TWO 2EA6;ID # CJK RADICAL SIMPLIFIED HALF TREE TRUNK 2EA7;ID # CJK RADICAL COW 2EA8;ID # CJK RADICAL DOG 2EA9;ID # CJK RADICAL JADE 2EAA;ID # CJK RADICAL BOLT OF CLOTH 2EAB;ID # CJK RADICAL EYE 2EAC;ID # CJK RADICAL SPIRIT ONE 2EAD;ID # CJK RADICAL SPIRIT TWO 2EAE;ID # CJK RADICAL BAMBOO 2EAF;ID # CJK RADICAL SILK 2EB0;ID # CJK RADICAL C-SIMPLIFIED SILK 2EB1;ID # CJK RADICAL NET ONE 2EB2;ID # CJK RADICAL NET TWO 2EB3;ID # CJK RADICAL NET THREE 2EB4;ID # CJK RADICAL NET FOUR 2EB5;ID # CJK RADICAL MESH 2EB6;ID # CJK RADICAL SHEEP 2EB7;ID # CJK RADICAL RAM 2EB8;ID # CJK RADICAL EWE 2EB9;ID # CJK RADICAL OLD 2EBA;ID # CJK RADICAL BRUSH ONE 2EBB;ID # CJK RADICAL BRUSH TWO 2EBC;ID # CJK RADICAL MEAT 2EBD;ID # CJK RADICAL MORTAR 2EBE;ID # CJK RADICAL GRASS ONE 2EBF;ID # CJK RADICAL GRASS TWO 2EC0;ID # CJK RADICAL GRASS THREE 2EC1;ID # CJK RADICAL TIGER 2EC2;ID # CJK RADICAL CLOTHES 2EC3;ID # CJK RADICAL WEST ONE 2EC4;ID # CJK RADICAL WEST TWO 2EC5;ID # CJK RADICAL C-SIMPLIFIED SEE 2EC6;ID # CJK RADICAL SIMPLIFIED HORN 2EC7;ID # CJK RADICAL HORN 2EC8;ID # CJK RADICAL C-SIMPLIFIED SPEECH 2EC9;ID # CJK RADICAL C-SIMPLIFIED SHELL 2ECA;ID # CJK RADICAL FOOT 2ECB;ID # CJK RADICAL C-SIMPLIFIED CART 2ECC;ID # CJK RADICAL SIMPLIFIED WALK 2ECD;ID # CJK RADICAL WALK ONE 2ECE;ID # CJK RADICAL WALK TWO 2ECF;ID # CJK RADICAL CITY 2ED0;ID # CJK RADICAL C-SIMPLIFIED GOLD 2ED1;ID # CJK RADICAL LONG ONE 2ED2;ID # CJK RADICAL LONG TWO 2ED3;ID # CJK RADICAL C-SIMPLIFIED LONG 2ED4;ID # CJK RADICAL C-SIMPLIFIED GATE 2ED5;ID # CJK RADICAL MOUND ONE 2ED6;ID # CJK RADICAL MOUND TWO 2ED7;ID # CJK RADICAL RAIN 2ED8;ID # CJK RADICAL BLUE 2ED9;ID # CJK RADICAL C-SIMPLIFIED TANNED LEATHER 2EDA;ID # CJK RADICAL C-SIMPLIFIED LEAF 2EDB;ID # CJK RADICAL C-SIMPLIFIED WIND 2EDC;ID # CJK RADICAL C-SIMPLIFIED FLY 2EDD;ID # CJK RADICAL EAT ONE 2EDE;ID # CJK RADICAL EAT TWO 2EDF;ID # CJK RADICAL EAT THREE 2EE0;ID # CJK RADICAL C-SIMPLIFIED EAT 2EE1;ID # CJK RADICAL HEAD 2EE2;ID # CJK RADICAL C-SIMPLIFIED HORSE 2EE3;ID # CJK RADICAL BONE 2EE4;ID # CJK RADICAL GHOST 2EE5;ID # CJK RADICAL C-SIMPLIFIED FISH 2EE6;ID # CJK RADICAL C-SIMPLIFIED BIRD 2EE7;ID # CJK RADICAL C-SIMPLIFIED SALT 2EE8;ID # CJK RADICAL SIMPLIFIED WHEAT 2EE9;ID # CJK RADICAL SIMPLIFIED YELLOW 2EEA;ID # CJK RADICAL C-SIMPLIFIED FROG 2EEB;ID # CJK RADICAL J-SIMPLIFIED EVEN 2EEC;ID # CJK RADICAL C-SIMPLIFIED EVEN 2EED;ID # CJK RADICAL J-SIMPLIFIED TOOTH 2EEE;ID # CJK RADICAL C-SIMPLIFIED TOOTH 2EEF;ID # CJK RADICAL J-SIMPLIFIED DRAGON 2EF0;ID # CJK RADICAL C-SIMPLIFIED DRAGON 2EF1;ID # CJK RADICAL TURTLE 2EF2;ID # CJK RADICAL J-SIMPLIFIED TURTLE 2EF3;ID # CJK RADICAL C-SIMPLIFIED TURTLE 2F00;ID # KANGXI RADICAL ONE 2F01;ID # KANGXI RADICAL LINE 2F02;ID # KANGXI RADICAL DOT 2F03;ID # KANGXI RADICAL SLASH 2F04;ID # KANGXI RADICAL SECOND 2F05;ID # KANGXI RADICAL HOOK 2F06;ID # KANGXI RADICAL TWO 2F07;ID # KANGXI RADICAL LID 2F08;ID # KANGXI RADICAL MAN 2F09;ID # KANGXI RADICAL LEGS 2F0A;ID # KANGXI RADICAL ENTER 2F0B;ID # KANGXI RADICAL EIGHT 2F0C;ID # KANGXI RADICAL DOWN BOX 2F0D;ID # KANGXI RADICAL COVER 2F0E;ID # KANGXI RADICAL ICE 2F0F;ID # KANGXI RADICAL TABLE 2F10;ID # KANGXI RADICAL OPEN BOX 2F11;ID # KANGXI RADICAL KNIFE 2F12;ID # KANGXI RADICAL POWER 2F13;ID # KANGXI RADICAL WRAP 2F14;ID # KANGXI RADICAL SPOON 2F15;ID # KANGXI RADICAL RIGHT OPEN BOX 2F16;ID # KANGXI RADICAL HIDING ENCLOSURE 2F17;ID # KANGXI RADICAL TEN 2F18;ID # KANGXI RADICAL DIVINATION 2F19;ID # KANGXI RADICAL SEAL 2F1A;ID # KANGXI RADICAL CLIFF 2F1B;ID # KANGXI RADICAL PRIVATE 2F1C;ID # KANGXI RADICAL AGAIN 2F1D;ID # KANGXI RADICAL MOUTH 2F1E;ID # KANGXI RADICAL ENCLOSURE 2F1F;ID # KANGXI RADICAL EARTH 2F20;ID # KANGXI RADICAL SCHOLAR 2F21;ID # KANGXI RADICAL GO 2F22;ID # KANGXI RADICAL GO SLOWLY 2F23;ID # KANGXI RADICAL EVENING 2F24;ID # KANGXI RADICAL BIG 2F25;ID # KANGXI RADICAL WOMAN 2F26;ID # KANGXI RADICAL CHILD 2F27;ID # KANGXI RADICAL ROOF 2F28;ID # KANGXI RADICAL INCH 2F29;ID # KANGXI RADICAL SMALL 2F2A;ID # KANGXI RADICAL LAME 2F2B;ID # KANGXI RADICAL CORPSE 2F2C;ID # KANGXI RADICAL SPROUT 2F2D;ID # KANGXI RADICAL MOUNTAIN 2F2E;ID # KANGXI RADICAL RIVER 2F2F;ID # KANGXI RADICAL WORK 2F30;ID # KANGXI RADICAL ONESELF 2F31;ID # KANGXI RADICAL TURBAN 2F32;ID # KANGXI RADICAL DRY 2F33;ID # KANGXI RADICAL SHORT THREAD 2F34;ID # KANGXI RADICAL DOTTED CLIFF 2F35;ID # KANGXI RADICAL LONG STRIDE 2F36;ID # KANGXI RADICAL TWO HANDS 2F37;ID # KANGXI RADICAL SHOOT 2F38;ID # KANGXI RADICAL BOW 2F39;ID # KANGXI RADICAL SNOUT 2F3A;ID # KANGXI RADICAL BRISTLE 2F3B;ID # KANGXI RADICAL STEP 2F3C;ID # KANGXI RADICAL HEART 2F3D;ID # KANGXI RADICAL HALBERD 2F3E;ID # KANGXI RADICAL DOOR 2F3F;ID # KANGXI RADICAL HAND 2F40;ID # KANGXI RADICAL BRANCH 2F41;ID # KANGXI RADICAL RAP 2F42;ID # KANGXI RADICAL SCRIPT 2F43;ID # KANGXI RADICAL DIPPER 2F44;ID # KANGXI RADICAL AXE 2F45;ID # KANGXI RADICAL SQUARE 2F46;ID # KANGXI RADICAL NOT 2F47;ID # KANGXI RADICAL SUN 2F48;ID # KANGXI RADICAL SAY 2F49;ID # KANGXI RADICAL MOON 2F4A;ID # KANGXI RADICAL TREE 2F4B;ID # KANGXI RADICAL LACK 2F4C;ID # KANGXI RADICAL STOP 2F4D;ID # KANGXI RADICAL DEATH 2F4E;ID # KANGXI RADICAL WEAPON 2F4F;ID # KANGXI RADICAL DO NOT 2F50;ID # KANGXI RADICAL COMPARE 2F51;ID # KANGXI RADICAL FUR 2F52;ID # KANGXI RADICAL CLAN 2F53;ID # KANGXI RADICAL STEAM 2F54;ID # KANGXI RADICAL WATER 2F55;ID # KANGXI RADICAL FIRE 2F56;ID # KANGXI RADICAL CLAW 2F57;ID # KANGXI RADICAL FATHER 2F58;ID # KANGXI RADICAL DOUBLE X 2F59;ID # KANGXI RADICAL HALF TREE TRUNK 2F5A;ID # KANGXI RADICAL SLICE 2F5B;ID # KANGXI RADICAL FANG 2F5C;ID # KANGXI RADICAL COW 2F5D;ID # KANGXI RADICAL DOG 2F5E;ID # KANGXI RADICAL PROFOUND 2F5F;ID # KANGXI RADICAL JADE 2F60;ID # KANGXI RADICAL MELON 2F61;ID # KANGXI RADICAL TILE 2F62;ID # KANGXI RADICAL SWEET 2F63;ID # KANGXI RADICAL LIFE 2F64;ID # KANGXI RADICAL USE 2F65;ID # KANGXI RADICAL FIELD 2F66;ID # KANGXI RADICAL BOLT OF CLOTH 2F67;ID # KANGXI RADICAL SICKNESS 2F68;ID # KANGXI RADICAL DOTTED TENT 2F69;ID # KANGXI RADICAL WHITE 2F6A;ID # KANGXI RADICAL SKIN 2F6B;ID # KANGXI RADICAL DISH 2F6C;ID # KANGXI RADICAL EYE 2F6D;ID # KANGXI RADICAL SPEAR 2F6E;ID # KANGXI RADICAL ARROW 2F6F;ID # KANGXI RADICAL STONE 2F70;ID # KANGXI RADICAL SPIRIT 2F71;ID # KANGXI RADICAL TRACK 2F72;ID # KANGXI RADICAL GRAIN 2F73;ID # KANGXI RADICAL CAVE 2F74;ID # KANGXI RADICAL STAND 2F75;ID # KANGXI RADICAL BAMBOO 2F76;ID # KANGXI RADICAL RICE 2F77;ID # KANGXI RADICAL SILK 2F78;ID # KANGXI RADICAL JAR 2F79;ID # KANGXI RADICAL NET 2F7A;ID # KANGXI RADICAL SHEEP 2F7B;ID # KANGXI RADICAL FEATHER 2F7C;ID # KANGXI RADICAL OLD 2F7D;ID # KANGXI RADICAL AND 2F7E;ID # KANGXI RADICAL PLOW 2F7F;ID # KANGXI RADICAL EAR 2F80;ID # KANGXI RADICAL BRUSH 2F81;ID # KANGXI RADICAL MEAT 2F82;ID # KANGXI RADICAL MINISTER 2F83;ID # KANGXI RADICAL SELF 2F84;ID # KANGXI RADICAL ARRIVE 2F85;ID # KANGXI RADICAL MORTAR 2F86;ID # KANGXI RADICAL TONGUE 2F87;ID # KANGXI RADICAL OPPOSE 2F88;ID # KANGXI RADICAL BOAT 2F89;ID # KANGXI RADICAL STOPPING 2F8A;ID # KANGXI RADICAL COLOR 2F8B;ID # KANGXI RADICAL GRASS 2F8C;ID # KANGXI RADICAL TIGER 2F8D;ID # KANGXI RADICAL INSECT 2F8E;ID # KANGXI RADICAL BLOOD 2F8F;ID # KANGXI RADICAL WALK ENCLOSURE 2F90;ID # KANGXI RADICAL CLOTHES 2F91;ID # KANGXI RADICAL WEST 2F92;ID # KANGXI RADICAL SEE 2F93;ID # KANGXI RADICAL HORN 2F94;ID # KANGXI RADICAL SPEECH 2F95;ID # KANGXI RADICAL VALLEY 2F96;ID # KANGXI RADICAL BEAN 2F97;ID # KANGXI RADICAL PIG 2F98;ID # KANGXI RADICAL BADGER 2F99;ID # KANGXI RADICAL SHELL 2F9A;ID # KANGXI RADICAL RED 2F9B;ID # KANGXI RADICAL RUN 2F9C;ID # KANGXI RADICAL FOOT 2F9D;ID # KANGXI RADICAL BODY 2F9E;ID # KANGXI RADICAL CART 2F9F;ID # KANGXI RADICAL BITTER 2FA0;ID # KANGXI RADICAL MORNING 2FA1;ID # KANGXI RADICAL WALK 2FA2;ID # KANGXI RADICAL CITY 2FA3;ID # KANGXI RADICAL WINE 2FA4;ID # KANGXI RADICAL DISTINGUISH 2FA5;ID # KANGXI RADICAL VILLAGE 2FA6;ID # KANGXI RADICAL GOLD 2FA7;ID # KANGXI RADICAL LONG 2FA8;ID # KANGXI RADICAL GATE 2FA9;ID # KANGXI RADICAL MOUND 2FAA;ID # KANGXI RADICAL SLAVE 2FAB;ID # KANGXI RADICAL SHORT TAILED BIRD 2FAC;ID # KANGXI RADICAL RAIN 2FAD;ID # KANGXI RADICAL BLUE 2FAE;ID # KANGXI RADICAL WRONG 2FAF;ID # KANGXI RADICAL FACE 2FB0;ID # KANGXI RADICAL LEATHER 2FB1;ID # KANGXI RADICAL TANNED LEATHER 2FB2;ID # KANGXI RADICAL LEEK 2FB3;ID # KANGXI RADICAL SOUND 2FB4;ID # KANGXI RADICAL LEAF 2FB5;ID # KANGXI RADICAL WIND 2FB6;ID # KANGXI RADICAL FLY 2FB7;ID # KANGXI RADICAL EAT 2FB8;ID # KANGXI RADICAL HEAD 2FB9;ID # KANGXI RADICAL FRAGRANT 2FBA;ID # KANGXI RADICAL HORSE 2FBB;ID # KANGXI RADICAL BONE 2FBC;ID # KANGXI RADICAL TALL 2FBD;ID # KANGXI RADICAL HAIR 2FBE;ID # KANGXI RADICAL FIGHT 2FBF;ID # KANGXI RADICAL SACRIFICIAL WINE 2FC0;ID # KANGXI RADICAL CAULDRON 2FC1;ID # KANGXI RADICAL GHOST 2FC2;ID # KANGXI RADICAL FISH 2FC3;ID # KANGXI RADICAL BIRD 2FC4;ID # KANGXI RADICAL SALT 2FC5;ID # KANGXI RADICAL DEER 2FC6;ID # KANGXI RADICAL WHEAT 2FC7;ID # KANGXI RADICAL HEMP 2FC8;ID # KANGXI RADICAL YELLOW 2FC9;ID # KANGXI RADICAL MILLET 2FCA;ID # KANGXI RADICAL BLACK 2FCB;ID # KANGXI RADICAL EMBROIDERY 2FCC;ID # KANGXI RADICAL FROG 2FCD;ID # KANGXI RADICAL TRIPOD 2FCE;ID # KANGXI RADICAL DRUM 2FCF;ID # KANGXI RADICAL RAT 2FD0;ID # KANGXI RADICAL NOSE 2FD1;ID # KANGXI RADICAL EVEN 2FD2;ID # KANGXI RADICAL TOOTH 2FD3;ID # KANGXI RADICAL DRAGON 2FD4;ID # KANGXI RADICAL TURTLE 2FD5;ID # KANGXI RADICAL FLUTE 2FF0;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT 2FF1;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW 2FF2;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT 2FF3;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW 2FF4;ID # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND 2FF5;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE 2FF6;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW 2FF7;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT 2FF8;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT 2FF9;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT 2FFA;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT 2FFB;ID # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID 3000;ID # IDEOGRAPHIC SPACE 3001;CL # IDEOGRAPHIC COMMA 3002;CL # IDEOGRAPHIC FULL STOP 3003;ID # DITTO MARK 3004;ID # JAPANESE INDUSTRIAL STANDARD SYMBOL 3005;NS # IDEOGRAPHIC ITERATION MARK 3006;ID # IDEOGRAPHIC CLOSING MARK 3007;ID # IDEOGRAPHIC NUMBER ZERO 3008;OP # LEFT ANGLE BRACKET 3009;CL # RIGHT ANGLE BRACKET 300A;OP # LEFT DOUBLE ANGLE BRACKET 300B;CL # RIGHT DOUBLE ANGLE BRACKET 300C;OP # LEFT CORNER BRACKET 300D;CL # RIGHT CORNER BRACKET 300E;OP # LEFT WHITE CORNER BRACKET 300F;CL # RIGHT WHITE CORNER BRACKET 3010;OP # LEFT BLACK LENTICULAR BRACKET 3011;CL # RIGHT BLACK LENTICULAR BRACKET 3012;ID # POSTAL MARK 3013;ID # GETA MARK 3014;OP # LEFT TORTOISE SHELL BRACKET 3015;CL # RIGHT TORTOISE SHELL BRACKET 3016;OP # LEFT WHITE LENTICULAR BRACKET 3017;CL # RIGHT WHITE LENTICULAR BRACKET 3018;OP # LEFT WHITE TORTOISE SHELL BRACKET 3019;CL # RIGHT WHITE TORTOISE SHELL BRACKET 301A;OP # LEFT WHITE SQUARE BRACKET 301B;CL # RIGHT WHITE SQUARE BRACKET 301C;NS # WAVE DASH 301D;OP # REVERSED DOUBLE PRIME QUOTATION MARK 301E;CL # DOUBLE PRIME QUOTATION MARK 301F;CL # LOW DOUBLE PRIME QUOTATION MARK 3020;ID # POSTAL MARK FACE 3021;ID # HANGZHOU NUMERAL ONE 3022;ID # HANGZHOU NUMERAL TWO 3023;ID # HANGZHOU NUMERAL THREE 3024;ID # HANGZHOU NUMERAL FOUR 3025;ID # HANGZHOU NUMERAL FIVE 3026;ID # HANGZHOU NUMERAL SIX 3027;ID # HANGZHOU NUMERAL SEVEN 3028;ID # HANGZHOU NUMERAL EIGHT 3029;ID # HANGZHOU NUMERAL NINE 302A;CM # IDEOGRAPHIC LEVEL TONE MARK 302B;CM # IDEOGRAPHIC RISING TONE MARK 302C;CM # IDEOGRAPHIC DEPARTING TONE MARK 302D;CM # IDEOGRAPHIC ENTERING TONE MARK 302E;CM # HANGUL SINGLE DOT TONE MARK 302F;CM # HANGUL DOUBLE DOT TONE MARK 3030;ID # WAVY DASH 3031;ID # VERTICAL KANA REPEAT MARK 3032;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK 3033;ID # VERTICAL KANA REPEAT MARK UPPER HALF 3034;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF 3035;ID # VERTICAL KANA REPEAT MARK LOWER HALF 3036;ID # CIRCLED POSTAL MARK 3037;ID # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL 3038;ID # HANGZHOU NUMERAL TEN 3039;ID # HANGZHOU NUMERAL TWENTY 303A;ID # HANGZHOU NUMERAL THIRTY 303B;NS # VERTICAL IDEOGRAPHIC ITERATION MARK 303C;NS # MASU MARK 303D;ID # PART ALTERNATION MARK 303E;ID # IDEOGRAPHIC VARIATION INDICATOR 303F;ID # IDEOGRAPHIC HALF FILL SPACE 3041;NS # HIRAGANA LETTER SMALL A 3042;ID # HIRAGANA LETTER A 3043;NS # HIRAGANA LETTER SMALL I 3044;ID # HIRAGANA LETTER I 3045;NS # HIRAGANA LETTER SMALL U 3046;ID # HIRAGANA LETTER U 3047;NS # HIRAGANA LETTER SMALL E 3048;ID # HIRAGANA LETTER E 3049;NS # HIRAGANA LETTER SMALL O 304A;ID # HIRAGANA LETTER O 304B;ID # HIRAGANA LETTER KA 304C;ID # HIRAGANA LETTER GA 304D;ID # HIRAGANA LETTER KI 304E;ID # HIRAGANA LETTER GI 304F;ID # HIRAGANA LETTER KU 3050;ID # HIRAGANA LETTER GU 3051;ID # HIRAGANA LETTER KE 3052;ID # HIRAGANA LETTER GE 3053;ID # HIRAGANA LETTER KO 3054;ID # HIRAGANA LETTER GO 3055;ID # HIRAGANA LETTER SA 3056;ID # HIRAGANA LETTER ZA 3057;ID # HIRAGANA LETTER SI 3058;ID # HIRAGANA LETTER ZI 3059;ID # HIRAGANA LETTER SU 305A;ID # HIRAGANA LETTER ZU 305B;ID # HIRAGANA LETTER SE 305C;ID # HIRAGANA LETTER ZE 305D;ID # HIRAGANA LETTER SO 305E;ID # HIRAGANA LETTER ZO 305F;ID # HIRAGANA LETTER TA 3060;ID # HIRAGANA LETTER DA 3061;ID # HIRAGANA LETTER TI 3062;ID # HIRAGANA LETTER DI 3063;NS # HIRAGANA LETTER SMALL TU 3064;ID # HIRAGANA LETTER TU 3065;ID # HIRAGANA LETTER DU 3066;ID # HIRAGANA LETTER TE 3067;ID # HIRAGANA LETTER DE 3068;ID # HIRAGANA LETTER TO 3069;ID # HIRAGANA LETTER DO 306A;ID # HIRAGANA LETTER NA 306B;ID # HIRAGANA LETTER NI 306C;ID # HIRAGANA LETTER NU 306D;ID # HIRAGANA LETTER NE 306E;ID # HIRAGANA LETTER NO 306F;ID # HIRAGANA LETTER HA 3070;ID # HIRAGANA LETTER BA 3071;ID # HIRAGANA LETTER PA 3072;ID # HIRAGANA LETTER HI 3073;ID # HIRAGANA LETTER BI 3074;ID # HIRAGANA LETTER PI 3075;ID # HIRAGANA LETTER HU 3076;ID # HIRAGANA LETTER BU 3077;ID # HIRAGANA LETTER PU 3078;ID # HIRAGANA LETTER HE 3079;ID # HIRAGANA LETTER BE 307A;ID # HIRAGANA LETTER PE 307B;ID # HIRAGANA LETTER HO 307C;ID # HIRAGANA LETTER BO 307D;ID # HIRAGANA LETTER PO 307E;ID # HIRAGANA LETTER MA 307F;ID # HIRAGANA LETTER MI 3080;ID # HIRAGANA LETTER MU 3081;ID # HIRAGANA LETTER ME 3082;ID # HIRAGANA LETTER MO 3083;NS # HIRAGANA LETTER SMALL YA 3084;ID # HIRAGANA LETTER YA 3085;NS # HIRAGANA LETTER SMALL YU 3086;ID # HIRAGANA LETTER YU 3087;NS # HIRAGANA LETTER SMALL YO 3088;ID # HIRAGANA LETTER YO 3089;ID # HIRAGANA LETTER RA 308A;ID # HIRAGANA LETTER RI 308B;ID # HIRAGANA LETTER RU 308C;ID # HIRAGANA LETTER RE 308D;ID # HIRAGANA LETTER RO 308E;NS # HIRAGANA LETTER SMALL WA 308F;ID # HIRAGANA LETTER WA 3090;ID # HIRAGANA LETTER WI 3091;ID # HIRAGANA LETTER WE 3092;ID # HIRAGANA LETTER WO 3093;ID # HIRAGANA LETTER N 3094;ID # HIRAGANA LETTER VU 3095;NS # HIRAGANA LETTER SMALL KA 3096;NS # HIRAGANA LETTER SMALL KE 3099;CM # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;CM # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 309B;NS # KATAKANA-HIRAGANA VOICED SOUND MARK 309C;NS # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 309D;NS # HIRAGANA ITERATION MARK 309E;NS # HIRAGANA VOICED ITERATION MARK 309F;ID # HIRAGANA DIGRAPH YORI 30A0;NS # KATAKANA-HIRAGANA DOUBLE HYPHEN 30A1;NS # KATAKANA LETTER SMALL A 30A2;ID # KATAKANA LETTER A 30A3;NS # KATAKANA LETTER SMALL I 30A4;ID # KATAKANA LETTER I 30A5;NS # KATAKANA LETTER SMALL U 30A6;ID # KATAKANA LETTER U 30A7;NS # KATAKANA LETTER SMALL E 30A8;ID # KATAKANA LETTER E 30A9;NS # KATAKANA LETTER SMALL O 30AA;ID # KATAKANA LETTER O 30AB;ID # KATAKANA LETTER KA 30AC;ID # KATAKANA LETTER GA 30AD;ID # KATAKANA LETTER KI 30AE;ID # KATAKANA LETTER GI 30AF;ID # KATAKANA LETTER KU 30B0;ID # KATAKANA LETTER GU 30B1;ID # KATAKANA LETTER KE 30B2;ID # KATAKANA LETTER GE 30B3;ID # KATAKANA LETTER KO 30B4;ID # KATAKANA LETTER GO 30B5;ID # KATAKANA LETTER SA 30B6;ID # KATAKANA LETTER ZA 30B7;ID # KATAKANA LETTER SI 30B8;ID # KATAKANA LETTER ZI 30B9;ID # KATAKANA LETTER SU 30BA;ID # KATAKANA LETTER ZU 30BB;ID # KATAKANA LETTER SE 30BC;ID # KATAKANA LETTER ZE 30BD;ID # KATAKANA LETTER SO 30BE;ID # KATAKANA LETTER ZO 30BF;ID # KATAKANA LETTER TA 30C0;ID # KATAKANA LETTER DA 30C1;ID # KATAKANA LETTER TI 30C2;ID # KATAKANA LETTER DI 30C3;NS # KATAKANA LETTER SMALL TU 30C4;ID # KATAKANA LETTER TU 30C5;ID # KATAKANA LETTER DU 30C6;ID # KATAKANA LETTER TE 30C7;ID # KATAKANA LETTER DE 30C8;ID # KATAKANA LETTER TO 30C9;ID # KATAKANA LETTER DO 30CA;ID # KATAKANA LETTER NA 30CB;ID # KATAKANA LETTER NI 30CC;ID # KATAKANA LETTER NU 30CD;ID # KATAKANA LETTER NE 30CE;ID # KATAKANA LETTER NO 30CF;ID # KATAKANA LETTER HA 30D0;ID # KATAKANA LETTER BA 30D1;ID # KATAKANA LETTER PA 30D2;ID # KATAKANA LETTER HI 30D3;ID # KATAKANA LETTER BI 30D4;ID # KATAKANA LETTER PI 30D5;ID # KATAKANA LETTER HU 30D6;ID # KATAKANA LETTER BU 30D7;ID # KATAKANA LETTER PU 30D8;ID # KATAKANA LETTER HE 30D9;ID # KATAKANA LETTER BE 30DA;ID # KATAKANA LETTER PE 30DB;ID # KATAKANA LETTER HO 30DC;ID # KATAKANA LETTER BO 30DD;ID # KATAKANA LETTER PO 30DE;ID # KATAKANA LETTER MA 30DF;ID # KATAKANA LETTER MI 30E0;ID # KATAKANA LETTER MU 30E1;ID # KATAKANA LETTER ME 30E2;ID # KATAKANA LETTER MO 30E3;NS # KATAKANA LETTER SMALL YA 30E4;ID # KATAKANA LETTER YA 30E5;NS # KATAKANA LETTER SMALL YU 30E6;ID # KATAKANA LETTER YU 30E7;NS # KATAKANA LETTER SMALL YO 30E8;ID # KATAKANA LETTER YO 30E9;ID # KATAKANA LETTER RA 30EA;ID # KATAKANA LETTER RI 30EB;ID # KATAKANA LETTER RU 30EC;ID # KATAKANA LETTER RE 30ED;ID # KATAKANA LETTER RO 30EE;NS # KATAKANA LETTER SMALL WA 30EF;ID # KATAKANA LETTER WA 30F0;ID # KATAKANA LETTER WI 30F1;ID # KATAKANA LETTER WE 30F2;ID # KATAKANA LETTER WO 30F3;ID # KATAKANA LETTER N 30F4;ID # KATAKANA LETTER VU 30F5;NS # KATAKANA LETTER SMALL KA 30F6;NS # KATAKANA LETTER SMALL KE 30F7;ID # KATAKANA LETTER VA 30F8;ID # KATAKANA LETTER VI 30F9;ID # KATAKANA LETTER VE 30FA;ID # KATAKANA LETTER VO 30FB;NS # KATAKANA MIDDLE DOT 30FC;ID # KATAKANA-HIRAGANA PROLONGED SOUND MARK 30FD;NS # KATAKANA ITERATION MARK 30FE;ID # KATAKANA VOICED ITERATION MARK 30FF;ID # KATAKANA DIGRAPH KOTO 3105;ID # BOPOMOFO LETTER B 3106;ID # BOPOMOFO LETTER P 3107;ID # BOPOMOFO LETTER M 3108;ID # BOPOMOFO LETTER F 3109;ID # BOPOMOFO LETTER D 310A;ID # BOPOMOFO LETTER T 310B;ID # BOPOMOFO LETTER N 310C;ID # BOPOMOFO LETTER L 310D;ID # BOPOMOFO LETTER G 310E;ID # BOPOMOFO LETTER K 310F;ID # BOPOMOFO LETTER H 3110;ID # BOPOMOFO LETTER J 3111;ID # BOPOMOFO LETTER Q 3112;ID # BOPOMOFO LETTER X 3113;ID # BOPOMOFO LETTER ZH 3114;ID # BOPOMOFO LETTER CH 3115;ID # BOPOMOFO LETTER SH 3116;ID # BOPOMOFO LETTER R 3117;ID # BOPOMOFO LETTER Z 3118;ID # BOPOMOFO LETTER C 3119;ID # BOPOMOFO LETTER S 311A;ID # BOPOMOFO LETTER A 311B;ID # BOPOMOFO LETTER O 311C;ID # BOPOMOFO LETTER E 311D;ID # BOPOMOFO LETTER EH 311E;ID # BOPOMOFO LETTER AI 311F;ID # BOPOMOFO LETTER EI 3120;ID # BOPOMOFO LETTER AU 3121;ID # BOPOMOFO LETTER OU 3122;ID # BOPOMOFO LETTER AN 3123;ID # BOPOMOFO LETTER EN 3124;ID # BOPOMOFO LETTER ANG 3125;ID # BOPOMOFO LETTER ENG 3126;ID # BOPOMOFO LETTER ER 3127;ID # BOPOMOFO LETTER I 3128;ID # BOPOMOFO LETTER U 3129;ID # BOPOMOFO LETTER IU 312A;ID # BOPOMOFO LETTER V 312B;ID # BOPOMOFO LETTER NG 312C;ID # BOPOMOFO LETTER GN 3131;ID # HANGUL LETTER KIYEOK 3132;ID # HANGUL LETTER SSANGKIYEOK 3133;ID # HANGUL LETTER KIYEOK-SIOS 3134;ID # HANGUL LETTER NIEUN 3135;ID # HANGUL LETTER NIEUN-CIEUC 3136;ID # HANGUL LETTER NIEUN-HIEUH 3137;ID # HANGUL LETTER TIKEUT 3138;ID # HANGUL LETTER SSANGTIKEUT 3139;ID # HANGUL LETTER RIEUL 313A;ID # HANGUL LETTER RIEUL-KIYEOK 313B;ID # HANGUL LETTER RIEUL-MIEUM 313C;ID # HANGUL LETTER RIEUL-PIEUP 313D;ID # HANGUL LETTER RIEUL-SIOS 313E;ID # HANGUL LETTER RIEUL-THIEUTH 313F;ID # HANGUL LETTER RIEUL-PHIEUPH 3140;ID # HANGUL LETTER RIEUL-HIEUH 3141;ID # HANGUL LETTER MIEUM 3142;ID # HANGUL LETTER PIEUP 3143;ID # HANGUL LETTER SSANGPIEUP 3144;ID # HANGUL LETTER PIEUP-SIOS 3145;ID # HANGUL LETTER SIOS 3146;ID # HANGUL LETTER SSANGSIOS 3147;ID # HANGUL LETTER IEUNG 3148;ID # HANGUL LETTER CIEUC 3149;ID # HANGUL LETTER SSANGCIEUC 314A;ID # HANGUL LETTER CHIEUCH 314B;ID # HANGUL LETTER KHIEUKH 314C;ID # HANGUL LETTER THIEUTH 314D;ID # HANGUL LETTER PHIEUPH 314E;ID # HANGUL LETTER HIEUH 314F;ID # HANGUL LETTER A 3150;ID # HANGUL LETTER AE 3151;ID # HANGUL LETTER YA 3152;ID # HANGUL LETTER YAE 3153;ID # HANGUL LETTER EO 3154;ID # HANGUL LETTER E 3155;ID # HANGUL LETTER YEO 3156;ID # HANGUL LETTER YE 3157;ID # HANGUL LETTER O 3158;ID # HANGUL LETTER WA 3159;ID # HANGUL LETTER WAE 315A;ID # HANGUL LETTER OE 315B;ID # HANGUL LETTER YO 315C;ID # HANGUL LETTER U 315D;ID # HANGUL LETTER WEO 315E;ID # HANGUL LETTER WE 315F;ID # HANGUL LETTER WI 3160;ID # HANGUL LETTER YU 3161;ID # HANGUL LETTER EU 3162;ID # HANGUL LETTER YI 3163;ID # HANGUL LETTER I 3164;ID # HANGUL FILLER 3165;ID # HANGUL LETTER SSANGNIEUN 3166;ID # HANGUL LETTER NIEUN-TIKEUT 3167;ID # HANGUL LETTER NIEUN-SIOS 3168;ID # HANGUL LETTER NIEUN-PANSIOS 3169;ID # HANGUL LETTER RIEUL-KIYEOK-SIOS 316A;ID # HANGUL LETTER RIEUL-TIKEUT 316B;ID # HANGUL LETTER RIEUL-PIEUP-SIOS 316C;ID # HANGUL LETTER RIEUL-PANSIOS 316D;ID # HANGUL LETTER RIEUL-YEORINHIEUH 316E;ID # HANGUL LETTER MIEUM-PIEUP 316F;ID # HANGUL LETTER MIEUM-SIOS 3170;ID # HANGUL LETTER MIEUM-PANSIOS 3171;ID # HANGUL LETTER KAPYEOUNMIEUM 3172;ID # HANGUL LETTER PIEUP-KIYEOK 3173;ID # HANGUL LETTER PIEUP-TIKEUT 3174;ID # HANGUL LETTER PIEUP-SIOS-KIYEOK 3175;ID # HANGUL LETTER PIEUP-SIOS-TIKEUT 3176;ID # HANGUL LETTER PIEUP-CIEUC 3177;ID # HANGUL LETTER PIEUP-THIEUTH 3178;ID # HANGUL LETTER KAPYEOUNPIEUP 3179;ID # HANGUL LETTER KAPYEOUNSSANGPIEUP 317A;ID # HANGUL LETTER SIOS-KIYEOK 317B;ID # HANGUL LETTER SIOS-NIEUN 317C;ID # HANGUL LETTER SIOS-TIKEUT 317D;ID # HANGUL LETTER SIOS-PIEUP 317E;ID # HANGUL LETTER SIOS-CIEUC 317F;ID # HANGUL LETTER PANSIOS 3180;ID # HANGUL LETTER SSANGIEUNG 3181;ID # HANGUL LETTER YESIEUNG 3182;ID # HANGUL LETTER YESIEUNG-SIOS 3183;ID # HANGUL LETTER YESIEUNG-PANSIOS 3184;ID # HANGUL LETTER KAPYEOUNPHIEUPH 3185;ID # HANGUL LETTER SSANGHIEUH 3186;ID # HANGUL LETTER YEORINHIEUH 3187;ID # HANGUL LETTER YO-YA 3188;ID # HANGUL LETTER YO-YAE 3189;ID # HANGUL LETTER YO-I 318A;ID # HANGUL LETTER YU-YEO 318B;ID # HANGUL LETTER YU-YE 318C;ID # HANGUL LETTER YU-I 318D;ID # HANGUL LETTER ARAEA 318E;ID # HANGUL LETTER ARAEAE 3190;ID # IDEOGRAPHIC ANNOTATION LINKING MARK 3191;ID # IDEOGRAPHIC ANNOTATION REVERSE MARK 3192;ID # IDEOGRAPHIC ANNOTATION ONE MARK 3193;ID # IDEOGRAPHIC ANNOTATION TWO MARK 3194;ID # IDEOGRAPHIC ANNOTATION THREE MARK 3195;ID # IDEOGRAPHIC ANNOTATION FOUR MARK 3196;ID # IDEOGRAPHIC ANNOTATION TOP MARK 3197;ID # IDEOGRAPHIC ANNOTATION MIDDLE MARK 3198;ID # IDEOGRAPHIC ANNOTATION BOTTOM MARK 3199;ID # IDEOGRAPHIC ANNOTATION FIRST MARK 319A;ID # IDEOGRAPHIC ANNOTATION SECOND MARK 319B;ID # IDEOGRAPHIC ANNOTATION THIRD MARK 319C;ID # IDEOGRAPHIC ANNOTATION FOURTH MARK 319D;ID # IDEOGRAPHIC ANNOTATION HEAVEN MARK 319E;ID # IDEOGRAPHIC ANNOTATION EARTH MARK 319F;ID # IDEOGRAPHIC ANNOTATION MAN MARK 31A0;ID # BOPOMOFO LETTER BU 31A1;ID # BOPOMOFO LETTER ZI 31A2;ID # BOPOMOFO LETTER JI 31A3;ID # BOPOMOFO LETTER GU 31A4;ID # BOPOMOFO LETTER EE 31A5;ID # BOPOMOFO LETTER ENN 31A6;ID # BOPOMOFO LETTER OO 31A7;ID # BOPOMOFO LETTER ONN 31A8;ID # BOPOMOFO LETTER IR 31A9;ID # BOPOMOFO LETTER ANN 31AA;ID # BOPOMOFO LETTER INN 31AB;ID # BOPOMOFO LETTER UNN 31AC;ID # BOPOMOFO LETTER IM 31AD;ID # BOPOMOFO LETTER NGG 31AE;ID # BOPOMOFO LETTER AINN 31AF;ID # BOPOMOFO LETTER AUNN 31B0;ID # BOPOMOFO LETTER AM 31B1;ID # BOPOMOFO LETTER OM 31B2;ID # BOPOMOFO LETTER ONG 31B3;ID # BOPOMOFO LETTER INNN 31B4;ID # BOPOMOFO FINAL LETTER P 31B5;ID # BOPOMOFO FINAL LETTER T 31B6;ID # BOPOMOFO FINAL LETTER K 31B7;ID # BOPOMOFO FINAL LETTER H 31F0;NS # KATAKANA LETTER SMALL KU 31F1;NS # KATAKANA LETTER SMALL SI 31F2;NS # KATAKANA LETTER SMALL SU 31F3;NS # KATAKANA LETTER SMALL TO 31F4;NS # KATAKANA LETTER SMALL NU 31F5;NS # KATAKANA LETTER SMALL HA 31F6;NS # KATAKANA LETTER SMALL HI 31F7;NS # KATAKANA LETTER SMALL HU 31F8;NS # KATAKANA LETTER SMALL HE 31F9;NS # KATAKANA LETTER SMALL HO 31FA;NS # KATAKANA LETTER SMALL MU 31FB;NS # KATAKANA LETTER SMALL RA 31FC;NS # KATAKANA LETTER SMALL RI 31FD;NS # KATAKANA LETTER SMALL RU 31FE;NS # KATAKANA LETTER SMALL RE 31FF;NS # KATAKANA LETTER SMALL RO 3200;ID # PARENTHESIZED HANGUL KIYEOK 3201;ID # PARENTHESIZED HANGUL NIEUN 3202;ID # PARENTHESIZED HANGUL TIKEUT 3203;ID # PARENTHESIZED HANGUL RIEUL 3204;ID # PARENTHESIZED HANGUL MIEUM 3205;ID # PARENTHESIZED HANGUL PIEUP 3206;ID # PARENTHESIZED HANGUL SIOS 3207;ID # PARENTHESIZED HANGUL IEUNG 3208;ID # PARENTHESIZED HANGUL CIEUC 3209;ID # PARENTHESIZED HANGUL CHIEUCH 320A;ID # PARENTHESIZED HANGUL KHIEUKH 320B;ID # PARENTHESIZED HANGUL THIEUTH 320C;ID # PARENTHESIZED HANGUL PHIEUPH 320D;ID # PARENTHESIZED HANGUL HIEUH 320E;ID # PARENTHESIZED HANGUL KIYEOK A 320F;ID # PARENTHESIZED HANGUL NIEUN A 3210;ID # PARENTHESIZED HANGUL TIKEUT A 3211;ID # PARENTHESIZED HANGUL RIEUL A 3212;ID # PARENTHESIZED HANGUL MIEUM A 3213;ID # PARENTHESIZED HANGUL PIEUP A 3214;ID # PARENTHESIZED HANGUL SIOS A 3215;ID # PARENTHESIZED HANGUL IEUNG A 3216;ID # PARENTHESIZED HANGUL CIEUC A 3217;ID # PARENTHESIZED HANGUL CHIEUCH A 3218;ID # PARENTHESIZED HANGUL KHIEUKH A 3219;ID # PARENTHESIZED HANGUL THIEUTH A 321A;ID # PARENTHESIZED HANGUL PHIEUPH A 321B;ID # PARENTHESIZED HANGUL HIEUH A 321C;ID # PARENTHESIZED HANGUL CIEUC U 3220;ID # PARENTHESIZED IDEOGRAPH ONE 3221;ID # PARENTHESIZED IDEOGRAPH TWO 3222;ID # PARENTHESIZED IDEOGRAPH THREE 3223;ID # PARENTHESIZED IDEOGRAPH FOUR 3224;ID # PARENTHESIZED IDEOGRAPH FIVE 3225;ID # PARENTHESIZED IDEOGRAPH SIX 3226;ID # PARENTHESIZED IDEOGRAPH SEVEN 3227;ID # PARENTHESIZED IDEOGRAPH EIGHT 3228;ID # PARENTHESIZED IDEOGRAPH NINE 3229;ID # PARENTHESIZED IDEOGRAPH TEN 322A;ID # PARENTHESIZED IDEOGRAPH MOON 322B;ID # PARENTHESIZED IDEOGRAPH FIRE 322C;ID # PARENTHESIZED IDEOGRAPH WATER 322D;ID # PARENTHESIZED IDEOGRAPH WOOD 322E;ID # PARENTHESIZED IDEOGRAPH METAL 322F;ID # PARENTHESIZED IDEOGRAPH EARTH 3230;ID # PARENTHESIZED IDEOGRAPH SUN 3231;ID # PARENTHESIZED IDEOGRAPH STOCK 3232;ID # PARENTHESIZED IDEOGRAPH HAVE 3233;ID # PARENTHESIZED IDEOGRAPH SOCIETY 3234;ID # PARENTHESIZED IDEOGRAPH NAME 3235;ID # PARENTHESIZED IDEOGRAPH SPECIAL 3236;ID # PARENTHESIZED IDEOGRAPH FINANCIAL 3237;ID # PARENTHESIZED IDEOGRAPH CONGRATULATION 3238;ID # PARENTHESIZED IDEOGRAPH LABOR 3239;ID # PARENTHESIZED IDEOGRAPH REPRESENT 323A;ID # PARENTHESIZED IDEOGRAPH CALL 323B;ID # PARENTHESIZED IDEOGRAPH STUDY 323C;ID # PARENTHESIZED IDEOGRAPH SUPERVISE 323D;ID # PARENTHESIZED IDEOGRAPH ENTERPRISE 323E;ID # PARENTHESIZED IDEOGRAPH RESOURCE 323F;ID # PARENTHESIZED IDEOGRAPH ALLIANCE 3240;ID # PARENTHESIZED IDEOGRAPH FESTIVAL 3241;ID # PARENTHESIZED IDEOGRAPH REST 3242;ID # PARENTHESIZED IDEOGRAPH SELF 3243;ID # PARENTHESIZED IDEOGRAPH REACH 3251;ID # CIRCLED NUMBER TWENTY ONE 3252;ID # CIRCLED NUMBER TWENTY TWO 3253;ID # CIRCLED NUMBER TWENTY THREE 3254;ID # CIRCLED NUMBER TWENTY FOUR 3255;ID # CIRCLED NUMBER TWENTY FIVE 3256;ID # CIRCLED NUMBER TWENTY SIX 3257;ID # CIRCLED NUMBER TWENTY SEVEN 3258;ID # CIRCLED NUMBER TWENTY EIGHT 3259;ID # CIRCLED NUMBER TWENTY NINE 325A;ID # CIRCLED NUMBER THIRTY 325B;ID # CIRCLED NUMBER THIRTY ONE 325C;ID # CIRCLED NUMBER THIRTY TWO 325D;ID # CIRCLED NUMBER THIRTY THREE 325E;ID # CIRCLED NUMBER THIRTY FOUR 325F;ID # CIRCLED NUMBER THIRTY FIVE 3260;ID # CIRCLED HANGUL KIYEOK 3261;ID # CIRCLED HANGUL NIEUN 3262;ID # CIRCLED HANGUL TIKEUT 3263;ID # CIRCLED HANGUL RIEUL 3264;ID # CIRCLED HANGUL MIEUM 3265;ID # CIRCLED HANGUL PIEUP 3266;ID # CIRCLED HANGUL SIOS 3267;ID # CIRCLED HANGUL IEUNG 3268;ID # CIRCLED HANGUL CIEUC 3269;ID # CIRCLED HANGUL CHIEUCH 326A;ID # CIRCLED HANGUL KHIEUKH 326B;ID # CIRCLED HANGUL THIEUTH 326C;ID # CIRCLED HANGUL PHIEUPH 326D;ID # CIRCLED HANGUL HIEUH 326E;ID # CIRCLED HANGUL KIYEOK A 326F;ID # CIRCLED HANGUL NIEUN A 3270;ID # CIRCLED HANGUL TIKEUT A 3271;ID # CIRCLED HANGUL RIEUL A 3272;ID # CIRCLED HANGUL MIEUM A 3273;ID # CIRCLED HANGUL PIEUP A 3274;ID # CIRCLED HANGUL SIOS A 3275;ID # CIRCLED HANGUL IEUNG A 3276;ID # CIRCLED HANGUL CIEUC A 3277;ID # CIRCLED HANGUL CHIEUCH A 3278;ID # CIRCLED HANGUL KHIEUKH A 3279;ID # CIRCLED HANGUL THIEUTH A 327A;ID # CIRCLED HANGUL PHIEUPH A 327B;ID # CIRCLED HANGUL HIEUH A 327F;ID # KOREAN STANDARD SYMBOL 3280;ID # CIRCLED IDEOGRAPH ONE 3281;ID # CIRCLED IDEOGRAPH TWO 3282;ID # CIRCLED IDEOGRAPH THREE 3283;ID # CIRCLED IDEOGRAPH FOUR 3284;ID # CIRCLED IDEOGRAPH FIVE 3285;ID # CIRCLED IDEOGRAPH SIX 3286;ID # CIRCLED IDEOGRAPH SEVEN 3287;ID # CIRCLED IDEOGRAPH EIGHT 3288;ID # CIRCLED IDEOGRAPH NINE 3289;ID # CIRCLED IDEOGRAPH TEN 328A;ID # CIRCLED IDEOGRAPH MOON 328B;ID # CIRCLED IDEOGRAPH FIRE 328C;ID # CIRCLED IDEOGRAPH WATER 328D;ID # CIRCLED IDEOGRAPH WOOD 328E;ID # CIRCLED IDEOGRAPH METAL 328F;ID # CIRCLED IDEOGRAPH EARTH 3290;ID # CIRCLED IDEOGRAPH SUN 3291;ID # CIRCLED IDEOGRAPH STOCK 3292;ID # CIRCLED IDEOGRAPH HAVE 3293;ID # CIRCLED IDEOGRAPH SOCIETY 3294;ID # CIRCLED IDEOGRAPH NAME 3295;ID # CIRCLED IDEOGRAPH SPECIAL 3296;ID # CIRCLED IDEOGRAPH FINANCIAL 3297;ID # CIRCLED IDEOGRAPH CONGRATULATION 3298;ID # CIRCLED IDEOGRAPH LABOR 3299;ID # CIRCLED IDEOGRAPH SECRET 329A;ID # CIRCLED IDEOGRAPH MALE 329B;ID # CIRCLED IDEOGRAPH FEMALE 329C;ID # CIRCLED IDEOGRAPH SUITABLE 329D;ID # CIRCLED IDEOGRAPH EXCELLENT 329E;ID # CIRCLED IDEOGRAPH PRINT 329F;ID # CIRCLED IDEOGRAPH ATTENTION 32A0;ID # CIRCLED IDEOGRAPH ITEM 32A1;ID # CIRCLED IDEOGRAPH REST 32A2;ID # CIRCLED IDEOGRAPH COPY 32A3;ID # CIRCLED IDEOGRAPH CORRECT 32A4;ID # CIRCLED IDEOGRAPH HIGH 32A5;ID # CIRCLED IDEOGRAPH CENTRE 32A6;ID # CIRCLED IDEOGRAPH LOW 32A7;ID # CIRCLED IDEOGRAPH LEFT 32A8;ID # CIRCLED IDEOGRAPH RIGHT 32A9;ID # CIRCLED IDEOGRAPH MEDICINE 32AA;ID # CIRCLED IDEOGRAPH RELIGION 32AB;ID # CIRCLED IDEOGRAPH STUDY 32AC;ID # CIRCLED IDEOGRAPH SUPERVISE 32AD;ID # CIRCLED IDEOGRAPH ENTERPRISE 32AE;ID # CIRCLED IDEOGRAPH RESOURCE 32AF;ID # CIRCLED IDEOGRAPH ALLIANCE 32B0;ID # CIRCLED IDEOGRAPH NIGHT 32B1;ID # CIRCLED NUMBER THIRTY SIX 32B2;ID # CIRCLED NUMBER THIRTY SEVEN 32B3;ID # CIRCLED NUMBER THIRTY EIGHT 32B4;ID # CIRCLED NUMBER THIRTY NINE 32B5;ID # CIRCLED NUMBER FORTY 32B6;ID # CIRCLED NUMBER FORTY ONE 32B7;ID # CIRCLED NUMBER FORTY TWO 32B8;ID # CIRCLED NUMBER FORTY THREE 32B9;ID # CIRCLED NUMBER FORTY FOUR 32BA;ID # CIRCLED NUMBER FORTY FIVE 32BB;ID # CIRCLED NUMBER FORTY SIX 32BC;ID # CIRCLED NUMBER FORTY SEVEN 32BD;ID # CIRCLED NUMBER FORTY EIGHT 32BE;ID # CIRCLED NUMBER FORTY NINE 32BF;ID # CIRCLED NUMBER FIFTY 32C0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY 32C1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY 32C2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH 32C3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL 32C4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY 32C5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE 32C6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY 32C7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST 32C8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER 32C9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER 32CA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER 32CB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER 32D0;ID # CIRCLED KATAKANA A 32D1;ID # CIRCLED KATAKANA I 32D2;ID # CIRCLED KATAKANA U 32D3;ID # CIRCLED KATAKANA E 32D4;ID # CIRCLED KATAKANA O 32D5;ID # CIRCLED KATAKANA KA 32D6;ID # CIRCLED KATAKANA KI 32D7;ID # CIRCLED KATAKANA KU 32D8;ID # CIRCLED KATAKANA KE 32D9;ID # CIRCLED KATAKANA KO 32DA;ID # CIRCLED KATAKANA SA 32DB;ID # CIRCLED KATAKANA SI 32DC;ID # CIRCLED KATAKANA SU 32DD;ID # CIRCLED KATAKANA SE 32DE;ID # CIRCLED KATAKANA SO 32DF;ID # CIRCLED KATAKANA TA 32E0;ID # CIRCLED KATAKANA TI 32E1;ID # CIRCLED KATAKANA TU 32E2;ID # CIRCLED KATAKANA TE 32E3;ID # CIRCLED KATAKANA TO 32E4;ID # CIRCLED KATAKANA NA 32E5;ID # CIRCLED KATAKANA NI 32E6;ID # CIRCLED KATAKANA NU 32E7;ID # CIRCLED KATAKANA NE 32E8;ID # CIRCLED KATAKANA NO 32E9;ID # CIRCLED KATAKANA HA 32EA;ID # CIRCLED KATAKANA HI 32EB;ID # CIRCLED KATAKANA HU 32EC;ID # CIRCLED KATAKANA HE 32ED;ID # CIRCLED KATAKANA HO 32EE;ID # CIRCLED KATAKANA MA 32EF;ID # CIRCLED KATAKANA MI 32F0;ID # CIRCLED KATAKANA MU 32F1;ID # CIRCLED KATAKANA ME 32F2;ID # CIRCLED KATAKANA MO 32F3;ID # CIRCLED KATAKANA YA 32F4;ID # CIRCLED KATAKANA YU 32F5;ID # CIRCLED KATAKANA YO 32F6;ID # CIRCLED KATAKANA RA 32F7;ID # CIRCLED KATAKANA RI 32F8;ID # CIRCLED KATAKANA RU 32F9;ID # CIRCLED KATAKANA RE 32FA;ID # CIRCLED KATAKANA RO 32FB;ID # CIRCLED KATAKANA WA 32FC;ID # CIRCLED KATAKANA WI 32FD;ID # CIRCLED KATAKANA WE 32FE;ID # CIRCLED KATAKANA WO 3300;ID # SQUARE APAATO 3301;ID # SQUARE ARUHUA 3302;ID # SQUARE ANPEA 3303;ID # SQUARE AARU 3304;ID # SQUARE ININGU 3305;ID # SQUARE INTI 3306;ID # SQUARE UON 3307;ID # SQUARE ESUKUUDO 3308;ID # SQUARE EEKAA 3309;ID # SQUARE ONSU 330A;ID # SQUARE OOMU 330B;ID # SQUARE KAIRI 330C;ID # SQUARE KARATTO 330D;ID # SQUARE KARORII 330E;ID # SQUARE GARON 330F;ID # SQUARE GANMA 3310;ID # SQUARE GIGA 3311;ID # SQUARE GINII 3312;ID # SQUARE KYURII 3313;ID # SQUARE GIRUDAA 3314;ID # SQUARE KIRO 3315;ID # SQUARE KIROGURAMU 3316;ID # SQUARE KIROMEETORU 3317;ID # SQUARE KIROWATTO 3318;ID # SQUARE GURAMU 3319;ID # SQUARE GURAMUTON 331A;ID # SQUARE KURUZEIRO 331B;ID # SQUARE KUROONE 331C;ID # SQUARE KEESU 331D;ID # SQUARE KORUNA 331E;ID # SQUARE KOOPO 331F;ID # SQUARE SAIKURU 3320;ID # SQUARE SANTIIMU 3321;ID # SQUARE SIRINGU 3322;ID # SQUARE SENTI 3323;ID # SQUARE SENTO 3324;ID # SQUARE DAASU 3325;ID # SQUARE DESI 3326;ID # SQUARE DORU 3327;ID # SQUARE TON 3328;ID # SQUARE NANO 3329;ID # SQUARE NOTTO 332A;ID # SQUARE HAITU 332B;ID # SQUARE PAASENTO 332C;ID # SQUARE PAATU 332D;ID # SQUARE BAARERU 332E;ID # SQUARE PIASUTORU 332F;ID # SQUARE PIKURU 3330;ID # SQUARE PIKO 3331;ID # SQUARE BIRU 3332;ID # SQUARE HUARADDO 3333;ID # SQUARE HUIITO 3334;ID # SQUARE BUSSYERU 3335;ID # SQUARE HURAN 3336;ID # SQUARE HEKUTAARU 3337;ID # SQUARE PESO 3338;ID # SQUARE PENIHI 3339;ID # SQUARE HERUTU 333A;ID # SQUARE PENSU 333B;ID # SQUARE PEEZI 333C;ID # SQUARE BEETA 333D;ID # SQUARE POINTO 333E;ID # SQUARE BORUTO 333F;ID # SQUARE HON 3340;ID # SQUARE PONDO 3341;ID # SQUARE HOORU 3342;ID # SQUARE HOON 3343;ID # SQUARE MAIKURO 3344;ID # SQUARE MAIRU 3345;ID # SQUARE MAHHA 3346;ID # SQUARE MARUKU 3347;ID # SQUARE MANSYON 3348;ID # SQUARE MIKURON 3349;ID # SQUARE MIRI 334A;ID # SQUARE MIRIBAARU 334B;ID # SQUARE MEGA 334C;ID # SQUARE MEGATON 334D;ID # SQUARE MEETORU 334E;ID # SQUARE YAADO 334F;ID # SQUARE YAARU 3350;ID # SQUARE YUAN 3351;ID # SQUARE RITTORU 3352;ID # SQUARE RIRA 3353;ID # SQUARE RUPII 3354;ID # SQUARE RUUBURU 3355;ID # SQUARE REMU 3356;ID # SQUARE RENTOGEN 3357;ID # SQUARE WATTO 3358;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO 3359;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE 335A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO 335B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE 335C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR 335D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE 335E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX 335F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN 3360;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT 3361;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE 3362;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN 3363;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN 3364;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE 3365;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN 3366;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN 3367;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN 3368;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN 3369;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN 336A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN 336B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN 336C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY 336D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE 336E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO 336F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE 3370;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR 3371;ID # SQUARE HPA 3372;ID # SQUARE DA 3373;ID # SQUARE AU 3374;ID # SQUARE BAR 3375;ID # SQUARE OV 3376;ID # SQUARE PC 337B;ID # SQUARE ERA NAME HEISEI 337C;ID # SQUARE ERA NAME SYOUWA 337D;ID # SQUARE ERA NAME TAISYOU 337E;ID # SQUARE ERA NAME MEIZI 337F;ID # SQUARE CORPORATION 3380;ID # SQUARE PA AMPS 3381;ID # SQUARE NA 3382;ID # SQUARE MU A 3383;ID # SQUARE MA 3384;ID # SQUARE KA 3385;ID # SQUARE KB 3386;ID # SQUARE MB 3387;ID # SQUARE GB 3388;ID # SQUARE CAL 3389;ID # SQUARE KCAL 338A;ID # SQUARE PF 338B;ID # SQUARE NF 338C;ID # SQUARE MU F 338D;ID # SQUARE MU G 338E;ID # SQUARE MG 338F;ID # SQUARE KG 3390;ID # SQUARE HZ 3391;ID # SQUARE KHZ 3392;ID # SQUARE MHZ 3393;ID # SQUARE GHZ 3394;ID # SQUARE THZ 3395;ID # SQUARE MU L 3396;ID # SQUARE ML 3397;ID # SQUARE DL 3398;ID # SQUARE KL 3399;ID # SQUARE FM 339A;ID # SQUARE NM 339B;ID # SQUARE MU M 339C;ID # SQUARE MM 339D;ID # SQUARE CM 339E;ID # SQUARE KM 339F;ID # SQUARE MM SQUARED 33A0;ID # SQUARE CM SQUARED 33A1;ID # SQUARE M SQUARED 33A2;ID # SQUARE KM SQUARED 33A3;ID # SQUARE MM CUBED 33A4;ID # SQUARE CM CUBED 33A5;ID # SQUARE M CUBED 33A6;ID # SQUARE KM CUBED 33A7;ID # SQUARE M OVER S 33A8;ID # SQUARE M OVER S SQUARED 33A9;ID # SQUARE PA 33AA;ID # SQUARE KPA 33AB;ID # SQUARE MPA 33AC;ID # SQUARE GPA 33AD;ID # SQUARE RAD 33AE;ID # SQUARE RAD OVER S 33AF;ID # SQUARE RAD OVER S SQUARED 33B0;ID # SQUARE PS 33B1;ID # SQUARE NS 33B2;ID # SQUARE MU S 33B3;ID # SQUARE MS 33B4;ID # SQUARE PV 33B5;ID # SQUARE NV 33B6;ID # SQUARE MU V 33B7;ID # SQUARE MV 33B8;ID # SQUARE KV 33B9;ID # SQUARE MV MEGA 33BA;ID # SQUARE PW 33BB;ID # SQUARE NW 33BC;ID # SQUARE MU W 33BD;ID # SQUARE MW 33BE;ID # SQUARE KW 33BF;ID # SQUARE MW MEGA 33C0;ID # SQUARE K OHM 33C1;ID # SQUARE M OHM 33C2;ID # SQUARE AM 33C3;ID # SQUARE BQ 33C4;ID # SQUARE CC 33C5;ID # SQUARE CD 33C6;ID # SQUARE C OVER KG 33C7;ID # SQUARE CO 33C8;ID # SQUARE DB 33C9;ID # SQUARE GY 33CA;ID # SQUARE HA 33CB;ID # SQUARE HP 33CC;ID # SQUARE IN 33CD;ID # SQUARE KK 33CE;ID # SQUARE KM CAPITAL 33CF;ID # SQUARE KT 33D0;ID # SQUARE LM 33D1;ID # SQUARE LN 33D2;ID # SQUARE LOG 33D3;ID # SQUARE LX 33D4;ID # SQUARE MB SMALL 33D5;ID # SQUARE MIL 33D6;ID # SQUARE MOL 33D7;ID # SQUARE PH 33D8;ID # SQUARE PM 33D9;ID # SQUARE PPM 33DA;ID # SQUARE PR 33DB;ID # SQUARE SR 33DC;ID # SQUARE SV 33DD;ID # SQUARE WB 33E0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE 33E1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO 33E2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE 33E3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR 33E4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE 33E5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX 33E6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN 33E7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT 33E8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE 33E9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN 33EA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN 33EB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE 33EC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN 33ED;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN 33EE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN 33EF;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN 33F0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN 33F1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN 33F2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN 33F3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY 33F4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE 33F5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO 33F6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE 33F7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR 33F8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE 33F9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX 33FA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN 33FB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT 33FC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE 33FD;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY 33FE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE 3400..4DB5;ID # .. 4E00..9FA5;ID # .. A000;ID # YI SYLLABLE IT A001;ID # YI SYLLABLE IX A002;ID # YI SYLLABLE I A003;ID # YI SYLLABLE IP A004;ID # YI SYLLABLE IET A005;ID # YI SYLLABLE IEX A006;ID # YI SYLLABLE IE A007;ID # YI SYLLABLE IEP A008;ID # YI SYLLABLE AT A009;ID # YI SYLLABLE AX A00A;ID # YI SYLLABLE A A00B;ID # YI SYLLABLE AP A00C;ID # YI SYLLABLE UOX A00D;ID # YI SYLLABLE UO A00E;ID # YI SYLLABLE UOP A00F;ID # YI SYLLABLE OT A010;ID # YI SYLLABLE OX A011;ID # YI SYLLABLE O A012;ID # YI SYLLABLE OP A013;ID # YI SYLLABLE EX A014;ID # YI SYLLABLE E A015;ID # YI SYLLABLE WU A016;ID # YI SYLLABLE BIT A017;ID # YI SYLLABLE BIX A018;ID # YI SYLLABLE BI A019;ID # YI SYLLABLE BIP A01A;ID # YI SYLLABLE BIET A01B;ID # YI SYLLABLE BIEX A01C;ID # YI SYLLABLE BIE A01D;ID # YI SYLLABLE BIEP A01E;ID # YI SYLLABLE BAT A01F;ID # YI SYLLABLE BAX A020;ID # YI SYLLABLE BA A021;ID # YI SYLLABLE BAP A022;ID # YI SYLLABLE BUOX A023;ID # YI SYLLABLE BUO A024;ID # YI SYLLABLE BUOP A025;ID # YI SYLLABLE BOT A026;ID # YI SYLLABLE BOX A027;ID # YI SYLLABLE BO A028;ID # YI SYLLABLE BOP A029;ID # YI SYLLABLE BEX A02A;ID # YI SYLLABLE BE A02B;ID # YI SYLLABLE BEP A02C;ID # YI SYLLABLE BUT A02D;ID # YI SYLLABLE BUX A02E;ID # YI SYLLABLE BU A02F;ID # YI SYLLABLE BUP A030;ID # YI SYLLABLE BURX A031;ID # YI SYLLABLE BUR A032;ID # YI SYLLABLE BYT A033;ID # YI SYLLABLE BYX A034;ID # YI SYLLABLE BY A035;ID # YI SYLLABLE BYP A036;ID # YI SYLLABLE BYRX A037;ID # YI SYLLABLE BYR A038;ID # YI SYLLABLE PIT A039;ID # YI SYLLABLE PIX A03A;ID # YI SYLLABLE PI A03B;ID # YI SYLLABLE PIP A03C;ID # YI SYLLABLE PIEX A03D;ID # YI SYLLABLE PIE A03E;ID # YI SYLLABLE PIEP A03F;ID # YI SYLLABLE PAT A040;ID # YI SYLLABLE PAX A041;ID # YI SYLLABLE PA A042;ID # YI SYLLABLE PAP A043;ID # YI SYLLABLE PUOX A044;ID # YI SYLLABLE PUO A045;ID # YI SYLLABLE PUOP A046;ID # YI SYLLABLE POT A047;ID # YI SYLLABLE POX A048;ID # YI SYLLABLE PO A049;ID # YI SYLLABLE POP A04A;ID # YI SYLLABLE PUT A04B;ID # YI SYLLABLE PUX A04C;ID # YI SYLLABLE PU A04D;ID # YI SYLLABLE PUP A04E;ID # YI SYLLABLE PURX A04F;ID # YI SYLLABLE PUR A050;ID # YI SYLLABLE PYT A051;ID # YI SYLLABLE PYX A052;ID # YI SYLLABLE PY A053;ID # YI SYLLABLE PYP A054;ID # YI SYLLABLE PYRX A055;ID # YI SYLLABLE PYR A056;ID # YI SYLLABLE BBIT A057;ID # YI SYLLABLE BBIX A058;ID # YI SYLLABLE BBI A059;ID # YI SYLLABLE BBIP A05A;ID # YI SYLLABLE BBIET A05B;ID # YI SYLLABLE BBIEX A05C;ID # YI SYLLABLE BBIE A05D;ID # YI SYLLABLE BBIEP A05E;ID # YI SYLLABLE BBAT A05F;ID # YI SYLLABLE BBAX A060;ID # YI SYLLABLE BBA A061;ID # YI SYLLABLE BBAP A062;ID # YI SYLLABLE BBUOX A063;ID # YI SYLLABLE BBUO A064;ID # YI SYLLABLE BBUOP A065;ID # YI SYLLABLE BBOT A066;ID # YI SYLLABLE BBOX A067;ID # YI SYLLABLE BBO A068;ID # YI SYLLABLE BBOP A069;ID # YI SYLLABLE BBEX A06A;ID # YI SYLLABLE BBE A06B;ID # YI SYLLABLE BBEP A06C;ID # YI SYLLABLE BBUT A06D;ID # YI SYLLABLE BBUX A06E;ID # YI SYLLABLE BBU A06F;ID # YI SYLLABLE BBUP A070;ID # YI SYLLABLE BBURX A071;ID # YI SYLLABLE BBUR A072;ID # YI SYLLABLE BBYT A073;ID # YI SYLLABLE BBYX A074;ID # YI SYLLABLE BBY A075;ID # YI SYLLABLE BBYP A076;ID # YI SYLLABLE NBIT A077;ID # YI SYLLABLE NBIX A078;ID # YI SYLLABLE NBI A079;ID # YI SYLLABLE NBIP A07A;ID # YI SYLLABLE NBIEX A07B;ID # YI SYLLABLE NBIE A07C;ID # YI SYLLABLE NBIEP A07D;ID # YI SYLLABLE NBAT A07E;ID # YI SYLLABLE NBAX A07F;ID # YI SYLLABLE NBA A080;ID # YI SYLLABLE NBAP A081;ID # YI SYLLABLE NBOT A082;ID # YI SYLLABLE NBOX A083;ID # YI SYLLABLE NBO A084;ID # YI SYLLABLE NBOP A085;ID # YI SYLLABLE NBUT A086;ID # YI SYLLABLE NBUX A087;ID # YI SYLLABLE NBU A088;ID # YI SYLLABLE NBUP A089;ID # YI SYLLABLE NBURX A08A;ID # YI SYLLABLE NBUR A08B;ID # YI SYLLABLE NBYT A08C;ID # YI SYLLABLE NBYX A08D;ID # YI SYLLABLE NBY A08E;ID # YI SYLLABLE NBYP A08F;ID # YI SYLLABLE NBYRX A090;ID # YI SYLLABLE NBYR A091;ID # YI SYLLABLE HMIT A092;ID # YI SYLLABLE HMIX A093;ID # YI SYLLABLE HMI A094;ID # YI SYLLABLE HMIP A095;ID # YI SYLLABLE HMIEX A096;ID # YI SYLLABLE HMIE A097;ID # YI SYLLABLE HMIEP A098;ID # YI SYLLABLE HMAT A099;ID # YI SYLLABLE HMAX A09A;ID # YI SYLLABLE HMA A09B;ID # YI SYLLABLE HMAP A09C;ID # YI SYLLABLE HMUOX A09D;ID # YI SYLLABLE HMUO A09E;ID # YI SYLLABLE HMUOP A09F;ID # YI SYLLABLE HMOT A0A0;ID # YI SYLLABLE HMOX A0A1;ID # YI SYLLABLE HMO A0A2;ID # YI SYLLABLE HMOP A0A3;ID # YI SYLLABLE HMUT A0A4;ID # YI SYLLABLE HMUX A0A5;ID # YI SYLLABLE HMU A0A6;ID # YI SYLLABLE HMUP A0A7;ID # YI SYLLABLE HMURX A0A8;ID # YI SYLLABLE HMUR A0A9;ID # YI SYLLABLE HMYX A0AA;ID # YI SYLLABLE HMY A0AB;ID # YI SYLLABLE HMYP A0AC;ID # YI SYLLABLE HMYRX A0AD;ID # YI SYLLABLE HMYR A0AE;ID # YI SYLLABLE MIT A0AF;ID # YI SYLLABLE MIX A0B0;ID # YI SYLLABLE MI A0B1;ID # YI SYLLABLE MIP A0B2;ID # YI SYLLABLE MIEX A0B3;ID # YI SYLLABLE MIE A0B4;ID # YI SYLLABLE MIEP A0B5;ID # YI SYLLABLE MAT A0B6;ID # YI SYLLABLE MAX A0B7;ID # YI SYLLABLE MA A0B8;ID # YI SYLLABLE MAP A0B9;ID # YI SYLLABLE MUOT A0BA;ID # YI SYLLABLE MUOX A0BB;ID # YI SYLLABLE MUO A0BC;ID # YI SYLLABLE MUOP A0BD;ID # YI SYLLABLE MOT A0BE;ID # YI SYLLABLE MOX A0BF;ID # YI SYLLABLE MO A0C0;ID # YI SYLLABLE MOP A0C1;ID # YI SYLLABLE MEX A0C2;ID # YI SYLLABLE ME A0C3;ID # YI SYLLABLE MUT A0C4;ID # YI SYLLABLE MUX A0C5;ID # YI SYLLABLE MU A0C6;ID # YI SYLLABLE MUP A0C7;ID # YI SYLLABLE MURX A0C8;ID # YI SYLLABLE MUR A0C9;ID # YI SYLLABLE MYT A0CA;ID # YI SYLLABLE MYX A0CB;ID # YI SYLLABLE MY A0CC;ID # YI SYLLABLE MYP A0CD;ID # YI SYLLABLE FIT A0CE;ID # YI SYLLABLE FIX A0CF;ID # YI SYLLABLE FI A0D0;ID # YI SYLLABLE FIP A0D1;ID # YI SYLLABLE FAT A0D2;ID # YI SYLLABLE FAX A0D3;ID # YI SYLLABLE FA A0D4;ID # YI SYLLABLE FAP A0D5;ID # YI SYLLABLE FOX A0D6;ID # YI SYLLABLE FO A0D7;ID # YI SYLLABLE FOP A0D8;ID # YI SYLLABLE FUT A0D9;ID # YI SYLLABLE FUX A0DA;ID # YI SYLLABLE FU A0DB;ID # YI SYLLABLE FUP A0DC;ID # YI SYLLABLE FURX A0DD;ID # YI SYLLABLE FUR A0DE;ID # YI SYLLABLE FYT A0DF;ID # YI SYLLABLE FYX A0E0;ID # YI SYLLABLE FY A0E1;ID # YI SYLLABLE FYP A0E2;ID # YI SYLLABLE VIT A0E3;ID # YI SYLLABLE VIX A0E4;ID # YI SYLLABLE VI A0E5;ID # YI SYLLABLE VIP A0E6;ID # YI SYLLABLE VIET A0E7;ID # YI SYLLABLE VIEX A0E8;ID # YI SYLLABLE VIE A0E9;ID # YI SYLLABLE VIEP A0EA;ID # YI SYLLABLE VAT A0EB;ID # YI SYLLABLE VAX A0EC;ID # YI SYLLABLE VA A0ED;ID # YI SYLLABLE VAP A0EE;ID # YI SYLLABLE VOT A0EF;ID # YI SYLLABLE VOX A0F0;ID # YI SYLLABLE VO A0F1;ID # YI SYLLABLE VOP A0F2;ID # YI SYLLABLE VEX A0F3;ID # YI SYLLABLE VEP A0F4;ID # YI SYLLABLE VUT A0F5;ID # YI SYLLABLE VUX A0F6;ID # YI SYLLABLE VU A0F7;ID # YI SYLLABLE VUP A0F8;ID # YI SYLLABLE VURX A0F9;ID # YI SYLLABLE VUR A0FA;ID # YI SYLLABLE VYT A0FB;ID # YI SYLLABLE VYX A0FC;ID # YI SYLLABLE VY A0FD;ID # YI SYLLABLE VYP A0FE;ID # YI SYLLABLE VYRX A0FF;ID # YI SYLLABLE VYR A100;ID # YI SYLLABLE DIT A101;ID # YI SYLLABLE DIX A102;ID # YI SYLLABLE DI A103;ID # YI SYLLABLE DIP A104;ID # YI SYLLABLE DIEX A105;ID # YI SYLLABLE DIE A106;ID # YI SYLLABLE DIEP A107;ID # YI SYLLABLE DAT A108;ID # YI SYLLABLE DAX A109;ID # YI SYLLABLE DA A10A;ID # YI SYLLABLE DAP A10B;ID # YI SYLLABLE DUOX A10C;ID # YI SYLLABLE DUO A10D;ID # YI SYLLABLE DOT A10E;ID # YI SYLLABLE DOX A10F;ID # YI SYLLABLE DO A110;ID # YI SYLLABLE DOP A111;ID # YI SYLLABLE DEX A112;ID # YI SYLLABLE DE A113;ID # YI SYLLABLE DEP A114;ID # YI SYLLABLE DUT A115;ID # YI SYLLABLE DUX A116;ID # YI SYLLABLE DU A117;ID # YI SYLLABLE DUP A118;ID # YI SYLLABLE DURX A119;ID # YI SYLLABLE DUR A11A;ID # YI SYLLABLE TIT A11B;ID # YI SYLLABLE TIX A11C;ID # YI SYLLABLE TI A11D;ID # YI SYLLABLE TIP A11E;ID # YI SYLLABLE TIEX A11F;ID # YI SYLLABLE TIE A120;ID # YI SYLLABLE TIEP A121;ID # YI SYLLABLE TAT A122;ID # YI SYLLABLE TAX A123;ID # YI SYLLABLE TA A124;ID # YI SYLLABLE TAP A125;ID # YI SYLLABLE TUOT A126;ID # YI SYLLABLE TUOX A127;ID # YI SYLLABLE TUO A128;ID # YI SYLLABLE TUOP A129;ID # YI SYLLABLE TOT A12A;ID # YI SYLLABLE TOX A12B;ID # YI SYLLABLE TO A12C;ID # YI SYLLABLE TOP A12D;ID # YI SYLLABLE TEX A12E;ID # YI SYLLABLE TE A12F;ID # YI SYLLABLE TEP A130;ID # YI SYLLABLE TUT A131;ID # YI SYLLABLE TUX A132;ID # YI SYLLABLE TU A133;ID # YI SYLLABLE TUP A134;ID # YI SYLLABLE TURX A135;ID # YI SYLLABLE TUR A136;ID # YI SYLLABLE DDIT A137;ID # YI SYLLABLE DDIX A138;ID # YI SYLLABLE DDI A139;ID # YI SYLLABLE DDIP A13A;ID # YI SYLLABLE DDIEX A13B;ID # YI SYLLABLE DDIE A13C;ID # YI SYLLABLE DDIEP A13D;ID # YI SYLLABLE DDAT A13E;ID # YI SYLLABLE DDAX A13F;ID # YI SYLLABLE DDA A140;ID # YI SYLLABLE DDAP A141;ID # YI SYLLABLE DDUOX A142;ID # YI SYLLABLE DDUO A143;ID # YI SYLLABLE DDUOP A144;ID # YI SYLLABLE DDOT A145;ID # YI SYLLABLE DDOX A146;ID # YI SYLLABLE DDO A147;ID # YI SYLLABLE DDOP A148;ID # YI SYLLABLE DDEX A149;ID # YI SYLLABLE DDE A14A;ID # YI SYLLABLE DDEP A14B;ID # YI SYLLABLE DDUT A14C;ID # YI SYLLABLE DDUX A14D;ID # YI SYLLABLE DDU A14E;ID # YI SYLLABLE DDUP A14F;ID # YI SYLLABLE DDURX A150;ID # YI SYLLABLE DDUR A151;ID # YI SYLLABLE NDIT A152;ID # YI SYLLABLE NDIX A153;ID # YI SYLLABLE NDI A154;ID # YI SYLLABLE NDIP A155;ID # YI SYLLABLE NDIEX A156;ID # YI SYLLABLE NDIE A157;ID # YI SYLLABLE NDAT A158;ID # YI SYLLABLE NDAX A159;ID # YI SYLLABLE NDA A15A;ID # YI SYLLABLE NDAP A15B;ID # YI SYLLABLE NDOT A15C;ID # YI SYLLABLE NDOX A15D;ID # YI SYLLABLE NDO A15E;ID # YI SYLLABLE NDOP A15F;ID # YI SYLLABLE NDEX A160;ID # YI SYLLABLE NDE A161;ID # YI SYLLABLE NDEP A162;ID # YI SYLLABLE NDUT A163;ID # YI SYLLABLE NDUX A164;ID # YI SYLLABLE NDU A165;ID # YI SYLLABLE NDUP A166;ID # YI SYLLABLE NDURX A167;ID # YI SYLLABLE NDUR A168;ID # YI SYLLABLE HNIT A169;ID # YI SYLLABLE HNIX A16A;ID # YI SYLLABLE HNI A16B;ID # YI SYLLABLE HNIP A16C;ID # YI SYLLABLE HNIET A16D;ID # YI SYLLABLE HNIEX A16E;ID # YI SYLLABLE HNIE A16F;ID # YI SYLLABLE HNIEP A170;ID # YI SYLLABLE HNAT A171;ID # YI SYLLABLE HNAX A172;ID # YI SYLLABLE HNA A173;ID # YI SYLLABLE HNAP A174;ID # YI SYLLABLE HNUOX A175;ID # YI SYLLABLE HNUO A176;ID # YI SYLLABLE HNOT A177;ID # YI SYLLABLE HNOX A178;ID # YI SYLLABLE HNOP A179;ID # YI SYLLABLE HNEX A17A;ID # YI SYLLABLE HNE A17B;ID # YI SYLLABLE HNEP A17C;ID # YI SYLLABLE HNUT A17D;ID # YI SYLLABLE NIT A17E;ID # YI SYLLABLE NIX A17F;ID # YI SYLLABLE NI A180;ID # YI SYLLABLE NIP A181;ID # YI SYLLABLE NIEX A182;ID # YI SYLLABLE NIE A183;ID # YI SYLLABLE NIEP A184;ID # YI SYLLABLE NAX A185;ID # YI SYLLABLE NA A186;ID # YI SYLLABLE NAP A187;ID # YI SYLLABLE NUOX A188;ID # YI SYLLABLE NUO A189;ID # YI SYLLABLE NUOP A18A;ID # YI SYLLABLE NOT A18B;ID # YI SYLLABLE NOX A18C;ID # YI SYLLABLE NO A18D;ID # YI SYLLABLE NOP A18E;ID # YI SYLLABLE NEX A18F;ID # YI SYLLABLE NE A190;ID # YI SYLLABLE NEP A191;ID # YI SYLLABLE NUT A192;ID # YI SYLLABLE NUX A193;ID # YI SYLLABLE NU A194;ID # YI SYLLABLE NUP A195;ID # YI SYLLABLE NURX A196;ID # YI SYLLABLE NUR A197;ID # YI SYLLABLE HLIT A198;ID # YI SYLLABLE HLIX A199;ID # YI SYLLABLE HLI A19A;ID # YI SYLLABLE HLIP A19B;ID # YI SYLLABLE HLIEX A19C;ID # YI SYLLABLE HLIE A19D;ID # YI SYLLABLE HLIEP A19E;ID # YI SYLLABLE HLAT A19F;ID # YI SYLLABLE HLAX A1A0;ID # YI SYLLABLE HLA A1A1;ID # YI SYLLABLE HLAP A1A2;ID # YI SYLLABLE HLUOX A1A3;ID # YI SYLLABLE HLUO A1A4;ID # YI SYLLABLE HLUOP A1A5;ID # YI SYLLABLE HLOX A1A6;ID # YI SYLLABLE HLO A1A7;ID # YI SYLLABLE HLOP A1A8;ID # YI SYLLABLE HLEX A1A9;ID # YI SYLLABLE HLE A1AA;ID # YI SYLLABLE HLEP A1AB;ID # YI SYLLABLE HLUT A1AC;ID # YI SYLLABLE HLUX A1AD;ID # YI SYLLABLE HLU A1AE;ID # YI SYLLABLE HLUP A1AF;ID # YI SYLLABLE HLURX A1B0;ID # YI SYLLABLE HLUR A1B1;ID # YI SYLLABLE HLYT A1B2;ID # YI SYLLABLE HLYX A1B3;ID # YI SYLLABLE HLY A1B4;ID # YI SYLLABLE HLYP A1B5;ID # YI SYLLABLE HLYRX A1B6;ID # YI SYLLABLE HLYR A1B7;ID # YI SYLLABLE LIT A1B8;ID # YI SYLLABLE LIX A1B9;ID # YI SYLLABLE LI A1BA;ID # YI SYLLABLE LIP A1BB;ID # YI SYLLABLE LIET A1BC;ID # YI SYLLABLE LIEX A1BD;ID # YI SYLLABLE LIE A1BE;ID # YI SYLLABLE LIEP A1BF;ID # YI SYLLABLE LAT A1C0;ID # YI SYLLABLE LAX A1C1;ID # YI SYLLABLE LA A1C2;ID # YI SYLLABLE LAP A1C3;ID # YI SYLLABLE LUOT A1C4;ID # YI SYLLABLE LUOX A1C5;ID # YI SYLLABLE LUO A1C6;ID # YI SYLLABLE LUOP A1C7;ID # YI SYLLABLE LOT A1C8;ID # YI SYLLABLE LOX A1C9;ID # YI SYLLABLE LO A1CA;ID # YI SYLLABLE LOP A1CB;ID # YI SYLLABLE LEX A1CC;ID # YI SYLLABLE LE A1CD;ID # YI SYLLABLE LEP A1CE;ID # YI SYLLABLE LUT A1CF;ID # YI SYLLABLE LUX A1D0;ID # YI SYLLABLE LU A1D1;ID # YI SYLLABLE LUP A1D2;ID # YI SYLLABLE LURX A1D3;ID # YI SYLLABLE LUR A1D4;ID # YI SYLLABLE LYT A1D5;ID # YI SYLLABLE LYX A1D6;ID # YI SYLLABLE LY A1D7;ID # YI SYLLABLE LYP A1D8;ID # YI SYLLABLE LYRX A1D9;ID # YI SYLLABLE LYR A1DA;ID # YI SYLLABLE GIT A1DB;ID # YI SYLLABLE GIX A1DC;ID # YI SYLLABLE GI A1DD;ID # YI SYLLABLE GIP A1DE;ID # YI SYLLABLE GIET A1DF;ID # YI SYLLABLE GIEX A1E0;ID # YI SYLLABLE GIE A1E1;ID # YI SYLLABLE GIEP A1E2;ID # YI SYLLABLE GAT A1E3;ID # YI SYLLABLE GAX A1E4;ID # YI SYLLABLE GA A1E5;ID # YI SYLLABLE GAP A1E6;ID # YI SYLLABLE GUOT A1E7;ID # YI SYLLABLE GUOX A1E8;ID # YI SYLLABLE GUO A1E9;ID # YI SYLLABLE GUOP A1EA;ID # YI SYLLABLE GOT A1EB;ID # YI SYLLABLE GOX A1EC;ID # YI SYLLABLE GO A1ED;ID # YI SYLLABLE GOP A1EE;ID # YI SYLLABLE GET A1EF;ID # YI SYLLABLE GEX A1F0;ID # YI SYLLABLE GE A1F1;ID # YI SYLLABLE GEP A1F2;ID # YI SYLLABLE GUT A1F3;ID # YI SYLLABLE GUX A1F4;ID # YI SYLLABLE GU A1F5;ID # YI SYLLABLE GUP A1F6;ID # YI SYLLABLE GURX A1F7;ID # YI SYLLABLE GUR A1F8;ID # YI SYLLABLE KIT A1F9;ID # YI SYLLABLE KIX A1FA;ID # YI SYLLABLE KI A1FB;ID # YI SYLLABLE KIP A1FC;ID # YI SYLLABLE KIEX A1FD;ID # YI SYLLABLE KIE A1FE;ID # YI SYLLABLE KIEP A1FF;ID # YI SYLLABLE KAT A200;ID # YI SYLLABLE KAX A201;ID # YI SYLLABLE KA A202;ID # YI SYLLABLE KAP A203;ID # YI SYLLABLE KUOX A204;ID # YI SYLLABLE KUO A205;ID # YI SYLLABLE KUOP A206;ID # YI SYLLABLE KOT A207;ID # YI SYLLABLE KOX A208;ID # YI SYLLABLE KO A209;ID # YI SYLLABLE KOP A20A;ID # YI SYLLABLE KET A20B;ID # YI SYLLABLE KEX A20C;ID # YI SYLLABLE KE A20D;ID # YI SYLLABLE KEP A20E;ID # YI SYLLABLE KUT A20F;ID # YI SYLLABLE KUX A210;ID # YI SYLLABLE KU A211;ID # YI SYLLABLE KUP A212;ID # YI SYLLABLE KURX A213;ID # YI SYLLABLE KUR A214;ID # YI SYLLABLE GGIT A215;ID # YI SYLLABLE GGIX A216;ID # YI SYLLABLE GGI A217;ID # YI SYLLABLE GGIEX A218;ID # YI SYLLABLE GGIE A219;ID # YI SYLLABLE GGIEP A21A;ID # YI SYLLABLE GGAT A21B;ID # YI SYLLABLE GGAX A21C;ID # YI SYLLABLE GGA A21D;ID # YI SYLLABLE GGAP A21E;ID # YI SYLLABLE GGUOT A21F;ID # YI SYLLABLE GGUOX A220;ID # YI SYLLABLE GGUO A221;ID # YI SYLLABLE GGUOP A222;ID # YI SYLLABLE GGOT A223;ID # YI SYLLABLE GGOX A224;ID # YI SYLLABLE GGO A225;ID # YI SYLLABLE GGOP A226;ID # YI SYLLABLE GGET A227;ID # YI SYLLABLE GGEX A228;ID # YI SYLLABLE GGE A229;ID # YI SYLLABLE GGEP A22A;ID # YI SYLLABLE GGUT A22B;ID # YI SYLLABLE GGUX A22C;ID # YI SYLLABLE GGU A22D;ID # YI SYLLABLE GGUP A22E;ID # YI SYLLABLE GGURX A22F;ID # YI SYLLABLE GGUR A230;ID # YI SYLLABLE MGIEX A231;ID # YI SYLLABLE MGIE A232;ID # YI SYLLABLE MGAT A233;ID # YI SYLLABLE MGAX A234;ID # YI SYLLABLE MGA A235;ID # YI SYLLABLE MGAP A236;ID # YI SYLLABLE MGUOX A237;ID # YI SYLLABLE MGUO A238;ID # YI SYLLABLE MGUOP A239;ID # YI SYLLABLE MGOT A23A;ID # YI SYLLABLE MGOX A23B;ID # YI SYLLABLE MGO A23C;ID # YI SYLLABLE MGOP A23D;ID # YI SYLLABLE MGEX A23E;ID # YI SYLLABLE MGE A23F;ID # YI SYLLABLE MGEP A240;ID # YI SYLLABLE MGUT A241;ID # YI SYLLABLE MGUX A242;ID # YI SYLLABLE MGU A243;ID # YI SYLLABLE MGUP A244;ID # YI SYLLABLE MGURX A245;ID # YI SYLLABLE MGUR A246;ID # YI SYLLABLE HXIT A247;ID # YI SYLLABLE HXIX A248;ID # YI SYLLABLE HXI A249;ID # YI SYLLABLE HXIP A24A;ID # YI SYLLABLE HXIET A24B;ID # YI SYLLABLE HXIEX A24C;ID # YI SYLLABLE HXIE A24D;ID # YI SYLLABLE HXIEP A24E;ID # YI SYLLABLE HXAT A24F;ID # YI SYLLABLE HXAX A250;ID # YI SYLLABLE HXA A251;ID # YI SYLLABLE HXAP A252;ID # YI SYLLABLE HXUOT A253;ID # YI SYLLABLE HXUOX A254;ID # YI SYLLABLE HXUO A255;ID # YI SYLLABLE HXUOP A256;ID # YI SYLLABLE HXOT A257;ID # YI SYLLABLE HXOX A258;ID # YI SYLLABLE HXO A259;ID # YI SYLLABLE HXOP A25A;ID # YI SYLLABLE HXEX A25B;ID # YI SYLLABLE HXE A25C;ID # YI SYLLABLE HXEP A25D;ID # YI SYLLABLE NGIEX A25E;ID # YI SYLLABLE NGIE A25F;ID # YI SYLLABLE NGIEP A260;ID # YI SYLLABLE NGAT A261;ID # YI SYLLABLE NGAX A262;ID # YI SYLLABLE NGA A263;ID # YI SYLLABLE NGAP A264;ID # YI SYLLABLE NGUOT A265;ID # YI SYLLABLE NGUOX A266;ID # YI SYLLABLE NGUO A267;ID # YI SYLLABLE NGOT A268;ID # YI SYLLABLE NGOX A269;ID # YI SYLLABLE NGO A26A;ID # YI SYLLABLE NGOP A26B;ID # YI SYLLABLE NGEX A26C;ID # YI SYLLABLE NGE A26D;ID # YI SYLLABLE NGEP A26E;ID # YI SYLLABLE HIT A26F;ID # YI SYLLABLE HIEX A270;ID # YI SYLLABLE HIE A271;ID # YI SYLLABLE HAT A272;ID # YI SYLLABLE HAX A273;ID # YI SYLLABLE HA A274;ID # YI SYLLABLE HAP A275;ID # YI SYLLABLE HUOT A276;ID # YI SYLLABLE HUOX A277;ID # YI SYLLABLE HUO A278;ID # YI SYLLABLE HUOP A279;ID # YI SYLLABLE HOT A27A;ID # YI SYLLABLE HOX A27B;ID # YI SYLLABLE HO A27C;ID # YI SYLLABLE HOP A27D;ID # YI SYLLABLE HEX A27E;ID # YI SYLLABLE HE A27F;ID # YI SYLLABLE HEP A280;ID # YI SYLLABLE WAT A281;ID # YI SYLLABLE WAX A282;ID # YI SYLLABLE WA A283;ID # YI SYLLABLE WAP A284;ID # YI SYLLABLE WUOX A285;ID # YI SYLLABLE WUO A286;ID # YI SYLLABLE WUOP A287;ID # YI SYLLABLE WOX A288;ID # YI SYLLABLE WO A289;ID # YI SYLLABLE WOP A28A;ID # YI SYLLABLE WEX A28B;ID # YI SYLLABLE WE A28C;ID # YI SYLLABLE WEP A28D;ID # YI SYLLABLE ZIT A28E;ID # YI SYLLABLE ZIX A28F;ID # YI SYLLABLE ZI A290;ID # YI SYLLABLE ZIP A291;ID # YI SYLLABLE ZIEX A292;ID # YI SYLLABLE ZIE A293;ID # YI SYLLABLE ZIEP A294;ID # YI SYLLABLE ZAT A295;ID # YI SYLLABLE ZAX A296;ID # YI SYLLABLE ZA A297;ID # YI SYLLABLE ZAP A298;ID # YI SYLLABLE ZUOX A299;ID # YI SYLLABLE ZUO A29A;ID # YI SYLLABLE ZUOP A29B;ID # YI SYLLABLE ZOT A29C;ID # YI SYLLABLE ZOX A29D;ID # YI SYLLABLE ZO A29E;ID # YI SYLLABLE ZOP A29F;ID # YI SYLLABLE ZEX A2A0;ID # YI SYLLABLE ZE A2A1;ID # YI SYLLABLE ZEP A2A2;ID # YI SYLLABLE ZUT A2A3;ID # YI SYLLABLE ZUX A2A4;ID # YI SYLLABLE ZU A2A5;ID # YI SYLLABLE ZUP A2A6;ID # YI SYLLABLE ZURX A2A7;ID # YI SYLLABLE ZUR A2A8;ID # YI SYLLABLE ZYT A2A9;ID # YI SYLLABLE ZYX A2AA;ID # YI SYLLABLE ZY A2AB;ID # YI SYLLABLE ZYP A2AC;ID # YI SYLLABLE ZYRX A2AD;ID # YI SYLLABLE ZYR A2AE;ID # YI SYLLABLE CIT A2AF;ID # YI SYLLABLE CIX A2B0;ID # YI SYLLABLE CI A2B1;ID # YI SYLLABLE CIP A2B2;ID # YI SYLLABLE CIET A2B3;ID # YI SYLLABLE CIEX A2B4;ID # YI SYLLABLE CIE A2B5;ID # YI SYLLABLE CIEP A2B6;ID # YI SYLLABLE CAT A2B7;ID # YI SYLLABLE CAX A2B8;ID # YI SYLLABLE CA A2B9;ID # YI SYLLABLE CAP A2BA;ID # YI SYLLABLE CUOX A2BB;ID # YI SYLLABLE CUO A2BC;ID # YI SYLLABLE CUOP A2BD;ID # YI SYLLABLE COT A2BE;ID # YI SYLLABLE COX A2BF;ID # YI SYLLABLE CO A2C0;ID # YI SYLLABLE COP A2C1;ID # YI SYLLABLE CEX A2C2;ID # YI SYLLABLE CE A2C3;ID # YI SYLLABLE CEP A2C4;ID # YI SYLLABLE CUT A2C5;ID # YI SYLLABLE CUX A2C6;ID # YI SYLLABLE CU A2C7;ID # YI SYLLABLE CUP A2C8;ID # YI SYLLABLE CURX A2C9;ID # YI SYLLABLE CUR A2CA;ID # YI SYLLABLE CYT A2CB;ID # YI SYLLABLE CYX A2CC;ID # YI SYLLABLE CY A2CD;ID # YI SYLLABLE CYP A2CE;ID # YI SYLLABLE CYRX A2CF;ID # YI SYLLABLE CYR A2D0;ID # YI SYLLABLE ZZIT A2D1;ID # YI SYLLABLE ZZIX A2D2;ID # YI SYLLABLE ZZI A2D3;ID # YI SYLLABLE ZZIP A2D4;ID # YI SYLLABLE ZZIET A2D5;ID # YI SYLLABLE ZZIEX A2D6;ID # YI SYLLABLE ZZIE A2D7;ID # YI SYLLABLE ZZIEP A2D8;ID # YI SYLLABLE ZZAT A2D9;ID # YI SYLLABLE ZZAX A2DA;ID # YI SYLLABLE ZZA A2DB;ID # YI SYLLABLE ZZAP A2DC;ID # YI SYLLABLE ZZOX A2DD;ID # YI SYLLABLE ZZO A2DE;ID # YI SYLLABLE ZZOP A2DF;ID # YI SYLLABLE ZZEX A2E0;ID # YI SYLLABLE ZZE A2E1;ID # YI SYLLABLE ZZEP A2E2;ID # YI SYLLABLE ZZUX A2E3;ID # YI SYLLABLE ZZU A2E4;ID # YI SYLLABLE ZZUP A2E5;ID # YI SYLLABLE ZZURX A2E6;ID # YI SYLLABLE ZZUR A2E7;ID # YI SYLLABLE ZZYT A2E8;ID # YI SYLLABLE ZZYX A2E9;ID # YI SYLLABLE ZZY A2EA;ID # YI SYLLABLE ZZYP A2EB;ID # YI SYLLABLE ZZYRX A2EC;ID # YI SYLLABLE ZZYR A2ED;ID # YI SYLLABLE NZIT A2EE;ID # YI SYLLABLE NZIX A2EF;ID # YI SYLLABLE NZI A2F0;ID # YI SYLLABLE NZIP A2F1;ID # YI SYLLABLE NZIEX A2F2;ID # YI SYLLABLE NZIE A2F3;ID # YI SYLLABLE NZIEP A2F4;ID # YI SYLLABLE NZAT A2F5;ID # YI SYLLABLE NZAX A2F6;ID # YI SYLLABLE NZA A2F7;ID # YI SYLLABLE NZAP A2F8;ID # YI SYLLABLE NZUOX A2F9;ID # YI SYLLABLE NZUO A2FA;ID # YI SYLLABLE NZOX A2FB;ID # YI SYLLABLE NZOP A2FC;ID # YI SYLLABLE NZEX A2FD;ID # YI SYLLABLE NZE A2FE;ID # YI SYLLABLE NZUX A2FF;ID # YI SYLLABLE NZU A300;ID # YI SYLLABLE NZUP A301;ID # YI SYLLABLE NZURX A302;ID # YI SYLLABLE NZUR A303;ID # YI SYLLABLE NZYT A304;ID # YI SYLLABLE NZYX A305;ID # YI SYLLABLE NZY A306;ID # YI SYLLABLE NZYP A307;ID # YI SYLLABLE NZYRX A308;ID # YI SYLLABLE NZYR A309;ID # YI SYLLABLE SIT A30A;ID # YI SYLLABLE SIX A30B;ID # YI SYLLABLE SI A30C;ID # YI SYLLABLE SIP A30D;ID # YI SYLLABLE SIEX A30E;ID # YI SYLLABLE SIE A30F;ID # YI SYLLABLE SIEP A310;ID # YI SYLLABLE SAT A311;ID # YI SYLLABLE SAX A312;ID # YI SYLLABLE SA A313;ID # YI SYLLABLE SAP A314;ID # YI SYLLABLE SUOX A315;ID # YI SYLLABLE SUO A316;ID # YI SYLLABLE SUOP A317;ID # YI SYLLABLE SOT A318;ID # YI SYLLABLE SOX A319;ID # YI SYLLABLE SO A31A;ID # YI SYLLABLE SOP A31B;ID # YI SYLLABLE SEX A31C;ID # YI SYLLABLE SE A31D;ID # YI SYLLABLE SEP A31E;ID # YI SYLLABLE SUT A31F;ID # YI SYLLABLE SUX A320;ID # YI SYLLABLE SU A321;ID # YI SYLLABLE SUP A322;ID # YI SYLLABLE SURX A323;ID # YI SYLLABLE SUR A324;ID # YI SYLLABLE SYT A325;ID # YI SYLLABLE SYX A326;ID # YI SYLLABLE SY A327;ID # YI SYLLABLE SYP A328;ID # YI SYLLABLE SYRX A329;ID # YI SYLLABLE SYR A32A;ID # YI SYLLABLE SSIT A32B;ID # YI SYLLABLE SSIX A32C;ID # YI SYLLABLE SSI A32D;ID # YI SYLLABLE SSIP A32E;ID # YI SYLLABLE SSIEX A32F;ID # YI SYLLABLE SSIE A330;ID # YI SYLLABLE SSIEP A331;ID # YI SYLLABLE SSAT A332;ID # YI SYLLABLE SSAX A333;ID # YI SYLLABLE SSA A334;ID # YI SYLLABLE SSAP A335;ID # YI SYLLABLE SSOT A336;ID # YI SYLLABLE SSOX A337;ID # YI SYLLABLE SSO A338;ID # YI SYLLABLE SSOP A339;ID # YI SYLLABLE SSEX A33A;ID # YI SYLLABLE SSE A33B;ID # YI SYLLABLE SSEP A33C;ID # YI SYLLABLE SSUT A33D;ID # YI SYLLABLE SSUX A33E;ID # YI SYLLABLE SSU A33F;ID # YI SYLLABLE SSUP A340;ID # YI SYLLABLE SSYT A341;ID # YI SYLLABLE SSYX A342;ID # YI SYLLABLE SSY A343;ID # YI SYLLABLE SSYP A344;ID # YI SYLLABLE SSYRX A345;ID # YI SYLLABLE SSYR A346;ID # YI SYLLABLE ZHAT A347;ID # YI SYLLABLE ZHAX A348;ID # YI SYLLABLE ZHA A349;ID # YI SYLLABLE ZHAP A34A;ID # YI SYLLABLE ZHUOX A34B;ID # YI SYLLABLE ZHUO A34C;ID # YI SYLLABLE ZHUOP A34D;ID # YI SYLLABLE ZHOT A34E;ID # YI SYLLABLE ZHOX A34F;ID # YI SYLLABLE ZHO A350;ID # YI SYLLABLE ZHOP A351;ID # YI SYLLABLE ZHET A352;ID # YI SYLLABLE ZHEX A353;ID # YI SYLLABLE ZHE A354;ID # YI SYLLABLE ZHEP A355;ID # YI SYLLABLE ZHUT A356;ID # YI SYLLABLE ZHUX A357;ID # YI SYLLABLE ZHU A358;ID # YI SYLLABLE ZHUP A359;ID # YI SYLLABLE ZHURX A35A;ID # YI SYLLABLE ZHUR A35B;ID # YI SYLLABLE ZHYT A35C;ID # YI SYLLABLE ZHYX A35D;ID # YI SYLLABLE ZHY A35E;ID # YI SYLLABLE ZHYP A35F;ID # YI SYLLABLE ZHYRX A360;ID # YI SYLLABLE ZHYR A361;ID # YI SYLLABLE CHAT A362;ID # YI SYLLABLE CHAX A363;ID # YI SYLLABLE CHA A364;ID # YI SYLLABLE CHAP A365;ID # YI SYLLABLE CHUOT A366;ID # YI SYLLABLE CHUOX A367;ID # YI SYLLABLE CHUO A368;ID # YI SYLLABLE CHUOP A369;ID # YI SYLLABLE CHOT A36A;ID # YI SYLLABLE CHOX A36B;ID # YI SYLLABLE CHO A36C;ID # YI SYLLABLE CHOP A36D;ID # YI SYLLABLE CHET A36E;ID # YI SYLLABLE CHEX A36F;ID # YI SYLLABLE CHE A370;ID # YI SYLLABLE CHEP A371;ID # YI SYLLABLE CHUX A372;ID # YI SYLLABLE CHU A373;ID # YI SYLLABLE CHUP A374;ID # YI SYLLABLE CHURX A375;ID # YI SYLLABLE CHUR A376;ID # YI SYLLABLE CHYT A377;ID # YI SYLLABLE CHYX A378;ID # YI SYLLABLE CHY A379;ID # YI SYLLABLE CHYP A37A;ID # YI SYLLABLE CHYRX A37B;ID # YI SYLLABLE CHYR A37C;ID # YI SYLLABLE RRAX A37D;ID # YI SYLLABLE RRA A37E;ID # YI SYLLABLE RRUOX A37F;ID # YI SYLLABLE RRUO A380;ID # YI SYLLABLE RROT A381;ID # YI SYLLABLE RROX A382;ID # YI SYLLABLE RRO A383;ID # YI SYLLABLE RROP A384;ID # YI SYLLABLE RRET A385;ID # YI SYLLABLE RREX A386;ID # YI SYLLABLE RRE A387;ID # YI SYLLABLE RREP A388;ID # YI SYLLABLE RRUT A389;ID # YI SYLLABLE RRUX A38A;ID # YI SYLLABLE RRU A38B;ID # YI SYLLABLE RRUP A38C;ID # YI SYLLABLE RRURX A38D;ID # YI SYLLABLE RRUR A38E;ID # YI SYLLABLE RRYT A38F;ID # YI SYLLABLE RRYX A390;ID # YI SYLLABLE RRY A391;ID # YI SYLLABLE RRYP A392;ID # YI SYLLABLE RRYRX A393;ID # YI SYLLABLE RRYR A394;ID # YI SYLLABLE NRAT A395;ID # YI SYLLABLE NRAX A396;ID # YI SYLLABLE NRA A397;ID # YI SYLLABLE NRAP A398;ID # YI SYLLABLE NROX A399;ID # YI SYLLABLE NRO A39A;ID # YI SYLLABLE NROP A39B;ID # YI SYLLABLE NRET A39C;ID # YI SYLLABLE NREX A39D;ID # YI SYLLABLE NRE A39E;ID # YI SYLLABLE NREP A39F;ID # YI SYLLABLE NRUT A3A0;ID # YI SYLLABLE NRUX A3A1;ID # YI SYLLABLE NRU A3A2;ID # YI SYLLABLE NRUP A3A3;ID # YI SYLLABLE NRURX A3A4;ID # YI SYLLABLE NRUR A3A5;ID # YI SYLLABLE NRYT A3A6;ID # YI SYLLABLE NRYX A3A7;ID # YI SYLLABLE NRY A3A8;ID # YI SYLLABLE NRYP A3A9;ID # YI SYLLABLE NRYRX A3AA;ID # YI SYLLABLE NRYR A3AB;ID # YI SYLLABLE SHAT A3AC;ID # YI SYLLABLE SHAX A3AD;ID # YI SYLLABLE SHA A3AE;ID # YI SYLLABLE SHAP A3AF;ID # YI SYLLABLE SHUOX A3B0;ID # YI SYLLABLE SHUO A3B1;ID # YI SYLLABLE SHUOP A3B2;ID # YI SYLLABLE SHOT A3B3;ID # YI SYLLABLE SHOX A3B4;ID # YI SYLLABLE SHO A3B5;ID # YI SYLLABLE SHOP A3B6;ID # YI SYLLABLE SHET A3B7;ID # YI SYLLABLE SHEX A3B8;ID # YI SYLLABLE SHE A3B9;ID # YI SYLLABLE SHEP A3BA;ID # YI SYLLABLE SHUT A3BB;ID # YI SYLLABLE SHUX A3BC;ID # YI SYLLABLE SHU A3BD;ID # YI SYLLABLE SHUP A3BE;ID # YI SYLLABLE SHURX A3BF;ID # YI SYLLABLE SHUR A3C0;ID # YI SYLLABLE SHYT A3C1;ID # YI SYLLABLE SHYX A3C2;ID # YI SYLLABLE SHY A3C3;ID # YI SYLLABLE SHYP A3C4;ID # YI SYLLABLE SHYRX A3C5;ID # YI SYLLABLE SHYR A3C6;ID # YI SYLLABLE RAT A3C7;ID # YI SYLLABLE RAX A3C8;ID # YI SYLLABLE RA A3C9;ID # YI SYLLABLE RAP A3CA;ID # YI SYLLABLE RUOX A3CB;ID # YI SYLLABLE RUO A3CC;ID # YI SYLLABLE RUOP A3CD;ID # YI SYLLABLE ROT A3CE;ID # YI SYLLABLE ROX A3CF;ID # YI SYLLABLE RO A3D0;ID # YI SYLLABLE ROP A3D1;ID # YI SYLLABLE REX A3D2;ID # YI SYLLABLE RE A3D3;ID # YI SYLLABLE REP A3D4;ID # YI SYLLABLE RUT A3D5;ID # YI SYLLABLE RUX A3D6;ID # YI SYLLABLE RU A3D7;ID # YI SYLLABLE RUP A3D8;ID # YI SYLLABLE RURX A3D9;ID # YI SYLLABLE RUR A3DA;ID # YI SYLLABLE RYT A3DB;ID # YI SYLLABLE RYX A3DC;ID # YI SYLLABLE RY A3DD;ID # YI SYLLABLE RYP A3DE;ID # YI SYLLABLE RYRX A3DF;ID # YI SYLLABLE RYR A3E0;ID # YI SYLLABLE JIT A3E1;ID # YI SYLLABLE JIX A3E2;ID # YI SYLLABLE JI A3E3;ID # YI SYLLABLE JIP A3E4;ID # YI SYLLABLE JIET A3E5;ID # YI SYLLABLE JIEX A3E6;ID # YI SYLLABLE JIE A3E7;ID # YI SYLLABLE JIEP A3E8;ID # YI SYLLABLE JUOT A3E9;ID # YI SYLLABLE JUOX A3EA;ID # YI SYLLABLE JUO A3EB;ID # YI SYLLABLE JUOP A3EC;ID # YI SYLLABLE JOT A3ED;ID # YI SYLLABLE JOX A3EE;ID # YI SYLLABLE JO A3EF;ID # YI SYLLABLE JOP A3F0;ID # YI SYLLABLE JUT A3F1;ID # YI SYLLABLE JUX A3F2;ID # YI SYLLABLE JU A3F3;ID # YI SYLLABLE JUP A3F4;ID # YI SYLLABLE JURX A3F5;ID # YI SYLLABLE JUR A3F6;ID # YI SYLLABLE JYT A3F7;ID # YI SYLLABLE JYX A3F8;ID # YI SYLLABLE JY A3F9;ID # YI SYLLABLE JYP A3FA;ID # YI SYLLABLE JYRX A3FB;ID # YI SYLLABLE JYR A3FC;ID # YI SYLLABLE QIT A3FD;ID # YI SYLLABLE QIX A3FE;ID # YI SYLLABLE QI A3FF;ID # YI SYLLABLE QIP A400;ID # YI SYLLABLE QIET A401;ID # YI SYLLABLE QIEX A402;ID # YI SYLLABLE QIE A403;ID # YI SYLLABLE QIEP A404;ID # YI SYLLABLE QUOT A405;ID # YI SYLLABLE QUOX A406;ID # YI SYLLABLE QUO A407;ID # YI SYLLABLE QUOP A408;ID # YI SYLLABLE QOT A409;ID # YI SYLLABLE QOX A40A;ID # YI SYLLABLE QO A40B;ID # YI SYLLABLE QOP A40C;ID # YI SYLLABLE QUT A40D;ID # YI SYLLABLE QUX A40E;ID # YI SYLLABLE QU A40F;ID # YI SYLLABLE QUP A410;ID # YI SYLLABLE QURX A411;ID # YI SYLLABLE QUR A412;ID # YI SYLLABLE QYT A413;ID # YI SYLLABLE QYX A414;ID # YI SYLLABLE QY A415;ID # YI SYLLABLE QYP A416;ID # YI SYLLABLE QYRX A417;ID # YI SYLLABLE QYR A418;ID # YI SYLLABLE JJIT A419;ID # YI SYLLABLE JJIX A41A;ID # YI SYLLABLE JJI A41B;ID # YI SYLLABLE JJIP A41C;ID # YI SYLLABLE JJIET A41D;ID # YI SYLLABLE JJIEX A41E;ID # YI SYLLABLE JJIE A41F;ID # YI SYLLABLE JJIEP A420;ID # YI SYLLABLE JJUOX A421;ID # YI SYLLABLE JJUO A422;ID # YI SYLLABLE JJUOP A423;ID # YI SYLLABLE JJOT A424;ID # YI SYLLABLE JJOX A425;ID # YI SYLLABLE JJO A426;ID # YI SYLLABLE JJOP A427;ID # YI SYLLABLE JJUT A428;ID # YI SYLLABLE JJUX A429;ID # YI SYLLABLE JJU A42A;ID # YI SYLLABLE JJUP A42B;ID # YI SYLLABLE JJURX A42C;ID # YI SYLLABLE JJUR A42D;ID # YI SYLLABLE JJYT A42E;ID # YI SYLLABLE JJYX A42F;ID # YI SYLLABLE JJY A430;ID # YI SYLLABLE JJYP A431;ID # YI SYLLABLE NJIT A432;ID # YI SYLLABLE NJIX A433;ID # YI SYLLABLE NJI A434;ID # YI SYLLABLE NJIP A435;ID # YI SYLLABLE NJIET A436;ID # YI SYLLABLE NJIEX A437;ID # YI SYLLABLE NJIE A438;ID # YI SYLLABLE NJIEP A439;ID # YI SYLLABLE NJUOX A43A;ID # YI SYLLABLE NJUO A43B;ID # YI SYLLABLE NJOT A43C;ID # YI SYLLABLE NJOX A43D;ID # YI SYLLABLE NJO A43E;ID # YI SYLLABLE NJOP A43F;ID # YI SYLLABLE NJUX A440;ID # YI SYLLABLE NJU A441;ID # YI SYLLABLE NJUP A442;ID # YI SYLLABLE NJURX A443;ID # YI SYLLABLE NJUR A444;ID # YI SYLLABLE NJYT A445;ID # YI SYLLABLE NJYX A446;ID # YI SYLLABLE NJY A447;ID # YI SYLLABLE NJYP A448;ID # YI SYLLABLE NJYRX A449;ID # YI SYLLABLE NJYR A44A;ID # YI SYLLABLE NYIT A44B;ID # YI SYLLABLE NYIX A44C;ID # YI SYLLABLE NYI A44D;ID # YI SYLLABLE NYIP A44E;ID # YI SYLLABLE NYIET A44F;ID # YI SYLLABLE NYIEX A450;ID # YI SYLLABLE NYIE A451;ID # YI SYLLABLE NYIEP A452;ID # YI SYLLABLE NYUOX A453;ID # YI SYLLABLE NYUO A454;ID # YI SYLLABLE NYUOP A455;ID # YI SYLLABLE NYOT A456;ID # YI SYLLABLE NYOX A457;ID # YI SYLLABLE NYO A458;ID # YI SYLLABLE NYOP A459;ID # YI SYLLABLE NYUT A45A;ID # YI SYLLABLE NYUX A45B;ID # YI SYLLABLE NYU A45C;ID # YI SYLLABLE NYUP A45D;ID # YI SYLLABLE XIT A45E;ID # YI SYLLABLE XIX A45F;ID # YI SYLLABLE XI A460;ID # YI SYLLABLE XIP A461;ID # YI SYLLABLE XIET A462;ID # YI SYLLABLE XIEX A463;ID # YI SYLLABLE XIE A464;ID # YI SYLLABLE XIEP A465;ID # YI SYLLABLE XUOX A466;ID # YI SYLLABLE XUO A467;ID # YI SYLLABLE XOT A468;ID # YI SYLLABLE XOX A469;ID # YI SYLLABLE XO A46A;ID # YI SYLLABLE XOP A46B;ID # YI SYLLABLE XYT A46C;ID # YI SYLLABLE XYX A46D;ID # YI SYLLABLE XY A46E;ID # YI SYLLABLE XYP A46F;ID # YI SYLLABLE XYRX A470;ID # YI SYLLABLE XYR A471;ID # YI SYLLABLE YIT A472;ID # YI SYLLABLE YIX A473;ID # YI SYLLABLE YI A474;ID # YI SYLLABLE YIP A475;ID # YI SYLLABLE YIET A476;ID # YI SYLLABLE YIEX A477;ID # YI SYLLABLE YIE A478;ID # YI SYLLABLE YIEP A479;ID # YI SYLLABLE YUOT A47A;ID # YI SYLLABLE YUOX A47B;ID # YI SYLLABLE YUO A47C;ID # YI SYLLABLE YUOP A47D;ID # YI SYLLABLE YOT A47E;ID # YI SYLLABLE YOX A47F;ID # YI SYLLABLE YO A480;ID # YI SYLLABLE YOP A481;ID # YI SYLLABLE YUT A482;ID # YI SYLLABLE YUX A483;ID # YI SYLLABLE YU A484;ID # YI SYLLABLE YUP A485;ID # YI SYLLABLE YURX A486;ID # YI SYLLABLE YUR A487;ID # YI SYLLABLE YYT A488;ID # YI SYLLABLE YYX A489;ID # YI SYLLABLE YY A48A;ID # YI SYLLABLE YYP A48B;ID # YI SYLLABLE YYRX A48C;ID # YI SYLLABLE YYR A490;ID # YI RADICAL QOT A491;ID # YI RADICAL LI A492;ID # YI RADICAL KIT A493;ID # YI RADICAL NYIP A494;ID # YI RADICAL CYP A495;ID # YI RADICAL SSI A496;ID # YI RADICAL GGOP A497;ID # YI RADICAL GEP A498;ID # YI RADICAL MI A499;ID # YI RADICAL HXIT A49A;ID # YI RADICAL LYR A49B;ID # YI RADICAL BBUT A49C;ID # YI RADICAL MOP A49D;ID # YI RADICAL YO A49E;ID # YI RADICAL PUT A49F;ID # YI RADICAL HXUO A4A0;ID # YI RADICAL TAT A4A1;ID # YI RADICAL GA A4A2;ID # YI RADICAL ZUP A4A3;ID # YI RADICAL CYT A4A4;ID # YI RADICAL DDUR A4A5;ID # YI RADICAL BUR A4A6;ID # YI RADICAL GGUO A4A7;ID # YI RADICAL NYOP A4A8;ID # YI RADICAL TU A4A9;ID # YI RADICAL OP A4AA;ID # YI RADICAL JJUT A4AB;ID # YI RADICAL ZOT A4AC;ID # YI RADICAL PYT A4AD;ID # YI RADICAL HMO A4AE;ID # YI RADICAL YIT A4AF;ID # YI RADICAL VUR A4B0;ID # YI RADICAL SHY A4B1;ID # YI RADICAL VEP A4B2;ID # YI RADICAL ZA A4B3;ID # YI RADICAL JO A4B4;ID # YI RADICAL NZUP A4B5;ID # YI RADICAL JJY A4B6;ID # YI RADICAL GOT A4B7;ID # YI RADICAL JJIE A4B8;ID # YI RADICAL WO A4B9;ID # YI RADICAL DU A4BA;ID # YI RADICAL SHUR A4BB;ID # YI RADICAL LIE A4BC;ID # YI RADICAL CY A4BD;ID # YI RADICAL CUOP A4BE;ID # YI RADICAL CIP A4BF;ID # YI RADICAL HXOP A4C0;ID # YI RADICAL SHAT A4C1;ID # YI RADICAL ZUR A4C2;ID # YI RADICAL SHOP A4C3;ID # YI RADICAL CHE A4C4;ID # YI RADICAL ZZIET A4C5;ID # YI RADICAL NBIE A4C6;ID # YI RADICAL KE AC00..D7A3;ID # .. D800..DB7F;SG # .. DB80..DBFF;SG # .. DC00..DFFF;SG # .. E000..F8FF;XX # .. F900;ID # CJK COMPATIBILITY IDEOGRAPH-F900 F901;ID # CJK COMPATIBILITY IDEOGRAPH-F901 F902;ID # CJK COMPATIBILITY IDEOGRAPH-F902 F903;ID # CJK COMPATIBILITY IDEOGRAPH-F903 F904;ID # CJK COMPATIBILITY IDEOGRAPH-F904 F905;ID # CJK COMPATIBILITY IDEOGRAPH-F905 F906;ID # CJK COMPATIBILITY IDEOGRAPH-F906 F907;ID # CJK COMPATIBILITY IDEOGRAPH-F907 F908;ID # CJK COMPATIBILITY IDEOGRAPH-F908 F909;ID # CJK COMPATIBILITY IDEOGRAPH-F909 F90A;ID # CJK COMPATIBILITY IDEOGRAPH-F90A F90B;ID # CJK COMPATIBILITY IDEOGRAPH-F90B F90C;ID # CJK COMPATIBILITY IDEOGRAPH-F90C F90D;ID # CJK COMPATIBILITY IDEOGRAPH-F90D F90E;ID # CJK COMPATIBILITY IDEOGRAPH-F90E F90F;ID # CJK COMPATIBILITY IDEOGRAPH-F90F F910;ID # CJK COMPATIBILITY IDEOGRAPH-F910 F911;ID # CJK COMPATIBILITY IDEOGRAPH-F911 F912;ID # CJK COMPATIBILITY IDEOGRAPH-F912 F913;ID # CJK COMPATIBILITY IDEOGRAPH-F913 F914;ID # CJK COMPATIBILITY IDEOGRAPH-F914 F915;ID # CJK COMPATIBILITY IDEOGRAPH-F915 F916;ID # CJK COMPATIBILITY IDEOGRAPH-F916 F917;ID # CJK COMPATIBILITY IDEOGRAPH-F917 F918;ID # CJK COMPATIBILITY IDEOGRAPH-F918 F919;ID # CJK COMPATIBILITY IDEOGRAPH-F919 F91A;ID # CJK COMPATIBILITY IDEOGRAPH-F91A F91B;ID # CJK COMPATIBILITY IDEOGRAPH-F91B F91C;ID # CJK COMPATIBILITY IDEOGRAPH-F91C F91D;ID # CJK COMPATIBILITY IDEOGRAPH-F91D F91E;ID # CJK COMPATIBILITY IDEOGRAPH-F91E F91F;ID # CJK COMPATIBILITY IDEOGRAPH-F91F F920;ID # CJK COMPATIBILITY IDEOGRAPH-F920 F921;ID # CJK COMPATIBILITY IDEOGRAPH-F921 F922;ID # CJK COMPATIBILITY IDEOGRAPH-F922 F923;ID # CJK COMPATIBILITY IDEOGRAPH-F923 F924;ID # CJK COMPATIBILITY IDEOGRAPH-F924 F925;ID # CJK COMPATIBILITY IDEOGRAPH-F925 F926;ID # CJK COMPATIBILITY IDEOGRAPH-F926 F927;ID # CJK COMPATIBILITY IDEOGRAPH-F927 F928;ID # CJK COMPATIBILITY IDEOGRAPH-F928 F929;ID # CJK COMPATIBILITY IDEOGRAPH-F929 F92A;ID # CJK COMPATIBILITY IDEOGRAPH-F92A F92B;ID # CJK COMPATIBILITY IDEOGRAPH-F92B F92C;ID # CJK COMPATIBILITY IDEOGRAPH-F92C F92D;ID # CJK COMPATIBILITY IDEOGRAPH-F92D F92E;ID # CJK COMPATIBILITY IDEOGRAPH-F92E F92F;ID # CJK COMPATIBILITY IDEOGRAPH-F92F F930;ID # CJK COMPATIBILITY IDEOGRAPH-F930 F931;ID # CJK COMPATIBILITY IDEOGRAPH-F931 F932;ID # CJK COMPATIBILITY IDEOGRAPH-F932 F933;ID # CJK COMPATIBILITY IDEOGRAPH-F933 F934;ID # CJK COMPATIBILITY IDEOGRAPH-F934 F935;ID # CJK COMPATIBILITY IDEOGRAPH-F935 F936;ID # CJK COMPATIBILITY IDEOGRAPH-F936 F937;ID # CJK COMPATIBILITY IDEOGRAPH-F937 F938;ID # CJK COMPATIBILITY IDEOGRAPH-F938 F939;ID # CJK COMPATIBILITY IDEOGRAPH-F939 F93A;ID # CJK COMPATIBILITY IDEOGRAPH-F93A F93B;ID # CJK COMPATIBILITY IDEOGRAPH-F93B F93C;ID # CJK COMPATIBILITY IDEOGRAPH-F93C F93D;ID # CJK COMPATIBILITY IDEOGRAPH-F93D F93E;ID # CJK COMPATIBILITY IDEOGRAPH-F93E F93F;ID # CJK COMPATIBILITY IDEOGRAPH-F93F F940;ID # CJK COMPATIBILITY IDEOGRAPH-F940 F941;ID # CJK COMPATIBILITY IDEOGRAPH-F941 F942;ID # CJK COMPATIBILITY IDEOGRAPH-F942 F943;ID # CJK COMPATIBILITY IDEOGRAPH-F943 F944;ID # CJK COMPATIBILITY IDEOGRAPH-F944 F945;ID # CJK COMPATIBILITY IDEOGRAPH-F945 F946;ID # CJK COMPATIBILITY IDEOGRAPH-F946 F947;ID # CJK COMPATIBILITY IDEOGRAPH-F947 F948;ID # CJK COMPATIBILITY IDEOGRAPH-F948 F949;ID # CJK COMPATIBILITY IDEOGRAPH-F949 F94A;ID # CJK COMPATIBILITY IDEOGRAPH-F94A F94B;ID # CJK COMPATIBILITY IDEOGRAPH-F94B F94C;ID # CJK COMPATIBILITY IDEOGRAPH-F94C F94D;ID # CJK COMPATIBILITY IDEOGRAPH-F94D F94E;ID # CJK COMPATIBILITY IDEOGRAPH-F94E F94F;ID # CJK COMPATIBILITY IDEOGRAPH-F94F F950;ID # CJK COMPATIBILITY IDEOGRAPH-F950 F951;ID # CJK COMPATIBILITY IDEOGRAPH-F951 F952;ID # CJK COMPATIBILITY IDEOGRAPH-F952 F953;ID # CJK COMPATIBILITY IDEOGRAPH-F953 F954;ID # CJK COMPATIBILITY IDEOGRAPH-F954 F955;ID # CJK COMPATIBILITY IDEOGRAPH-F955 F956;ID # CJK COMPATIBILITY IDEOGRAPH-F956 F957;ID # CJK COMPATIBILITY IDEOGRAPH-F957 F958;ID # CJK COMPATIBILITY IDEOGRAPH-F958 F959;ID # CJK COMPATIBILITY IDEOGRAPH-F959 F95A;ID # CJK COMPATIBILITY IDEOGRAPH-F95A F95B;ID # CJK COMPATIBILITY IDEOGRAPH-F95B F95C;ID # CJK COMPATIBILITY IDEOGRAPH-F95C F95D;ID # CJK COMPATIBILITY IDEOGRAPH-F95D F95E;ID # CJK COMPATIBILITY IDEOGRAPH-F95E F95F;ID # CJK COMPATIBILITY IDEOGRAPH-F95F F960;ID # CJK COMPATIBILITY IDEOGRAPH-F960 F961;ID # CJK COMPATIBILITY IDEOGRAPH-F961 F962;ID # CJK COMPATIBILITY IDEOGRAPH-F962 F963;ID # CJK COMPATIBILITY IDEOGRAPH-F963 F964;ID # CJK COMPATIBILITY IDEOGRAPH-F964 F965;ID # CJK COMPATIBILITY IDEOGRAPH-F965 F966;ID # CJK COMPATIBILITY IDEOGRAPH-F966 F967;ID # CJK COMPATIBILITY IDEOGRAPH-F967 F968;ID # CJK COMPATIBILITY IDEOGRAPH-F968 F969;ID # CJK COMPATIBILITY IDEOGRAPH-F969 F96A;ID # CJK COMPATIBILITY IDEOGRAPH-F96A F96B;ID # CJK COMPATIBILITY IDEOGRAPH-F96B F96C;ID # CJK COMPATIBILITY IDEOGRAPH-F96C F96D;ID # CJK COMPATIBILITY IDEOGRAPH-F96D F96E;ID # CJK COMPATIBILITY IDEOGRAPH-F96E F96F;ID # CJK COMPATIBILITY IDEOGRAPH-F96F F970;ID # CJK COMPATIBILITY IDEOGRAPH-F970 F971;ID # CJK COMPATIBILITY IDEOGRAPH-F971 F972;ID # CJK COMPATIBILITY IDEOGRAPH-F972 F973;ID # CJK COMPATIBILITY IDEOGRAPH-F973 F974;ID # CJK COMPATIBILITY IDEOGRAPH-F974 F975;ID # CJK COMPATIBILITY IDEOGRAPH-F975 F976;ID # CJK COMPATIBILITY IDEOGRAPH-F976 F977;ID # CJK COMPATIBILITY IDEOGRAPH-F977 F978;ID # CJK COMPATIBILITY IDEOGRAPH-F978 F979;ID # CJK COMPATIBILITY IDEOGRAPH-F979 F97A;ID # CJK COMPATIBILITY IDEOGRAPH-F97A F97B;ID # CJK COMPATIBILITY IDEOGRAPH-F97B F97C;ID # CJK COMPATIBILITY IDEOGRAPH-F97C F97D;ID # CJK COMPATIBILITY IDEOGRAPH-F97D F97E;ID # CJK COMPATIBILITY IDEOGRAPH-F97E F97F;ID # CJK COMPATIBILITY IDEOGRAPH-F97F F980;ID # CJK COMPATIBILITY IDEOGRAPH-F980 F981;ID # CJK COMPATIBILITY IDEOGRAPH-F981 F982;ID # CJK COMPATIBILITY IDEOGRAPH-F982 F983;ID # CJK COMPATIBILITY IDEOGRAPH-F983 F984;ID # CJK COMPATIBILITY IDEOGRAPH-F984 F985;ID # CJK COMPATIBILITY IDEOGRAPH-F985 F986;ID # CJK COMPATIBILITY IDEOGRAPH-F986 F987;ID # CJK COMPATIBILITY IDEOGRAPH-F987 F988;ID # CJK COMPATIBILITY IDEOGRAPH-F988 F989;ID # CJK COMPATIBILITY IDEOGRAPH-F989 F98A;ID # CJK COMPATIBILITY IDEOGRAPH-F98A F98B;ID # CJK COMPATIBILITY IDEOGRAPH-F98B F98C;ID # CJK COMPATIBILITY IDEOGRAPH-F98C F98D;ID # CJK COMPATIBILITY IDEOGRAPH-F98D F98E;ID # CJK COMPATIBILITY IDEOGRAPH-F98E F98F;ID # CJK COMPATIBILITY IDEOGRAPH-F98F F990;ID # CJK COMPATIBILITY IDEOGRAPH-F990 F991;ID # CJK COMPATIBILITY IDEOGRAPH-F991 F992;ID # CJK COMPATIBILITY IDEOGRAPH-F992 F993;ID # CJK COMPATIBILITY IDEOGRAPH-F993 F994;ID # CJK COMPATIBILITY IDEOGRAPH-F994 F995;ID # CJK COMPATIBILITY IDEOGRAPH-F995 F996;ID # CJK COMPATIBILITY IDEOGRAPH-F996 F997;ID # CJK COMPATIBILITY IDEOGRAPH-F997 F998;ID # CJK COMPATIBILITY IDEOGRAPH-F998 F999;ID # CJK COMPATIBILITY IDEOGRAPH-F999 F99A;ID # CJK COMPATIBILITY IDEOGRAPH-F99A F99B;ID # CJK COMPATIBILITY IDEOGRAPH-F99B F99C;ID # CJK COMPATIBILITY IDEOGRAPH-F99C F99D;ID # CJK COMPATIBILITY IDEOGRAPH-F99D F99E;ID # CJK COMPATIBILITY IDEOGRAPH-F99E F99F;ID # CJK COMPATIBILITY IDEOGRAPH-F99F F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-F9A0 F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-F9A1 F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-F9A2 F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-F9A3 F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-F9A4 F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-F9A5 F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-F9A6 F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-F9A7 F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-F9A8 F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-F9A9 F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-F9AA F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-F9AB F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-F9AC F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-F9AD F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-F9AE F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-F9AF F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-F9B0 F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-F9B1 F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-F9B2 F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-F9B3 F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-F9B4 F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-F9B5 F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-F9B6 F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-F9B7 F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-F9B8 F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-F9B9 F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-F9BA F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-F9BB F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-F9BC F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-F9BD F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-F9BE F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-F9BF F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-F9C0 F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-F9C1 F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-F9C2 F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-F9C3 F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-F9C4 F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-F9C5 F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-F9C6 F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-F9C7 F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-F9C8 F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-F9C9 F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-F9CA F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-F9CB F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-F9CC F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-F9CD F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-F9CE F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-F9CF F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-F9D0 F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-F9D1 F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-F9D2 F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-F9D3 F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-F9D4 F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-F9D5 F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-F9D6 F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-F9D7 F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-F9D8 F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-F9D9 F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-F9DA F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-F9DB F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-F9DC F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-F9DD F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-F9DE F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-F9DF F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-F9E0 F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-F9E1 F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-F9E2 F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-F9E3 F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-F9E4 F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-F9E5 F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-F9E6 F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-F9E7 F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-F9E8 F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-F9E9 F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-F9EA F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-F9EB F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-F9EC F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-F9ED F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-F9EE F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-F9EF F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-F9F0 F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-F9F1 F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-F9F2 F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-F9F3 F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-F9F4 F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-F9F5 F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-F9F6 F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-F9F7 F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-F9F8 F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-F9F9 F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-F9FA F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-F9FB F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-F9FC F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-F9FD F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-F9FE F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-F9FF FA00;ID # CJK COMPATIBILITY IDEOGRAPH-FA00 FA01;ID # CJK COMPATIBILITY IDEOGRAPH-FA01 FA02;ID # CJK COMPATIBILITY IDEOGRAPH-FA02 FA03;ID # CJK COMPATIBILITY IDEOGRAPH-FA03 FA04;ID # CJK COMPATIBILITY IDEOGRAPH-FA04 FA05;ID # CJK COMPATIBILITY IDEOGRAPH-FA05 FA06;ID # CJK COMPATIBILITY IDEOGRAPH-FA06 FA07;ID # CJK COMPATIBILITY IDEOGRAPH-FA07 FA08;ID # CJK COMPATIBILITY IDEOGRAPH-FA08 FA09;ID # CJK COMPATIBILITY IDEOGRAPH-FA09 FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-FA0A FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-FA0B FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-FA0C FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-FA0D FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-FA0E FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-FA0F FA10;ID # CJK COMPATIBILITY IDEOGRAPH-FA10 FA11;ID # CJK COMPATIBILITY IDEOGRAPH-FA11 FA12;ID # CJK COMPATIBILITY IDEOGRAPH-FA12 FA13;ID # CJK COMPATIBILITY IDEOGRAPH-FA13 FA14;ID # CJK COMPATIBILITY IDEOGRAPH-FA14 FA15;ID # CJK COMPATIBILITY IDEOGRAPH-FA15 FA16;ID # CJK COMPATIBILITY IDEOGRAPH-FA16 FA17;ID # CJK COMPATIBILITY IDEOGRAPH-FA17 FA18;ID # CJK COMPATIBILITY IDEOGRAPH-FA18 FA19;ID # CJK COMPATIBILITY IDEOGRAPH-FA19 FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-FA1A FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-FA1B FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-FA1C FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-FA1D FA1E;ID # CJK COMPATIBILITY IDEOGRAPH-FA1E FA1F;ID # CJK COMPATIBILITY IDEOGRAPH-FA1F FA20;ID # CJK COMPATIBILITY IDEOGRAPH-FA20 FA21;ID # CJK COMPATIBILITY IDEOGRAPH-FA21 FA22;ID # CJK COMPATIBILITY IDEOGRAPH-FA22 FA23;ID # CJK COMPATIBILITY IDEOGRAPH-FA23 FA24;ID # CJK COMPATIBILITY IDEOGRAPH-FA24 FA25;ID # CJK COMPATIBILITY IDEOGRAPH-FA25 FA26;ID # CJK COMPATIBILITY IDEOGRAPH-FA26 FA27;ID # CJK COMPATIBILITY IDEOGRAPH-FA27 FA28;ID # CJK COMPATIBILITY IDEOGRAPH-FA28 FA29;ID # CJK COMPATIBILITY IDEOGRAPH-FA29 FA2A;ID # CJK COMPATIBILITY IDEOGRAPH-FA2A FA2B;ID # CJK COMPATIBILITY IDEOGRAPH-FA2B FA2C;ID # CJK COMPATIBILITY IDEOGRAPH-FA2C FA2D;ID # CJK COMPATIBILITY IDEOGRAPH-FA2D FA30;ID # CJK COMPATIBILITY IDEOGRAPH-FA30 FA31;ID # CJK COMPATIBILITY IDEOGRAPH-FA31 FA32;ID # CJK COMPATIBILITY IDEOGRAPH-FA32 FA33;ID # CJK COMPATIBILITY IDEOGRAPH-FA33 FA34;ID # CJK COMPATIBILITY IDEOGRAPH-FA34 FA35;ID # CJK COMPATIBILITY IDEOGRAPH-FA35 FA36;ID # CJK COMPATIBILITY IDEOGRAPH-FA36 FA37;ID # CJK COMPATIBILITY IDEOGRAPH-FA37 FA38;ID # CJK COMPATIBILITY IDEOGRAPH-FA38 FA39;ID # CJK COMPATIBILITY IDEOGRAPH-FA39 FA3A;ID # CJK COMPATIBILITY IDEOGRAPH-FA3A FA3B;ID # CJK COMPATIBILITY IDEOGRAPH-FA3B FA3C;ID # CJK COMPATIBILITY IDEOGRAPH-FA3C FA3D;ID # CJK COMPATIBILITY IDEOGRAPH-FA3D FA3E;ID # CJK COMPATIBILITY IDEOGRAPH-FA3E FA3F;ID # CJK COMPATIBILITY IDEOGRAPH-FA3F FA40;ID # CJK COMPATIBILITY IDEOGRAPH-FA40 FA41;ID # CJK COMPATIBILITY IDEOGRAPH-FA41 FA42;ID # CJK COMPATIBILITY IDEOGRAPH-FA42 FA43;ID # CJK COMPATIBILITY IDEOGRAPH-FA43 FA44;ID # CJK COMPATIBILITY IDEOGRAPH-FA44 FA45;ID # CJK COMPATIBILITY IDEOGRAPH-FA45 FA46;ID # CJK COMPATIBILITY IDEOGRAPH-FA46 FA47;ID # CJK COMPATIBILITY IDEOGRAPH-FA47 FA48;ID # CJK COMPATIBILITY IDEOGRAPH-FA48 FA49;ID # CJK COMPATIBILITY IDEOGRAPH-FA49 FA4A;ID # CJK COMPATIBILITY IDEOGRAPH-FA4A FA4B;ID # CJK COMPATIBILITY IDEOGRAPH-FA4B FA4C;ID # CJK COMPATIBILITY IDEOGRAPH-FA4C FA4D;ID # CJK COMPATIBILITY IDEOGRAPH-FA4D FA4E;ID # CJK COMPATIBILITY IDEOGRAPH-FA4E FA4F;ID # CJK COMPATIBILITY IDEOGRAPH-FA4F FA50;ID # CJK COMPATIBILITY IDEOGRAPH-FA50 FA51;ID # CJK COMPATIBILITY IDEOGRAPH-FA51 FA52;ID # CJK COMPATIBILITY IDEOGRAPH-FA52 FA53;ID # CJK COMPATIBILITY IDEOGRAPH-FA53 FA54;ID # CJK COMPATIBILITY IDEOGRAPH-FA54 FA55;ID # CJK COMPATIBILITY IDEOGRAPH-FA55 FA56;ID # CJK COMPATIBILITY IDEOGRAPH-FA56 FA57;ID # CJK COMPATIBILITY IDEOGRAPH-FA57 FA58;ID # CJK COMPATIBILITY IDEOGRAPH-FA58 FA59;ID # CJK COMPATIBILITY IDEOGRAPH-FA59 FA5A;ID # CJK COMPATIBILITY IDEOGRAPH-FA5A FA5B;ID # CJK COMPATIBILITY IDEOGRAPH-FA5B FA5C;ID # CJK COMPATIBILITY IDEOGRAPH-FA5C FA5D;ID # CJK COMPATIBILITY IDEOGRAPH-FA5D FA5E;ID # CJK COMPATIBILITY IDEOGRAPH-FA5E FA5F;ID # CJK COMPATIBILITY IDEOGRAPH-FA5F FA60;ID # CJK COMPATIBILITY IDEOGRAPH-FA60 FA61;ID # CJK COMPATIBILITY IDEOGRAPH-FA61 FA62;ID # CJK COMPATIBILITY IDEOGRAPH-FA62 FA63;ID # CJK COMPATIBILITY IDEOGRAPH-FA63 FA64;ID # CJK COMPATIBILITY IDEOGRAPH-FA64 FA65;ID # CJK COMPATIBILITY IDEOGRAPH-FA65 FA66;ID # CJK COMPATIBILITY IDEOGRAPH-FA66 FA67;ID # CJK COMPATIBILITY IDEOGRAPH-FA67 FA68;ID # CJK COMPATIBILITY IDEOGRAPH-FA68 FA69;ID # CJK COMPATIBILITY IDEOGRAPH-FA69 FA6A;ID # CJK COMPATIBILITY IDEOGRAPH-FA6A FB00;AL # LATIN SMALL LIGATURE FF FB01;AL # LATIN SMALL LIGATURE FI FB02;AL # LATIN SMALL LIGATURE FL FB03;AL # LATIN SMALL LIGATURE FFI FB04;AL # LATIN SMALL LIGATURE FFL FB05;AL # LATIN SMALL LIGATURE LONG S T FB06;AL # LATIN SMALL LIGATURE ST FB13;AL # ARMENIAN SMALL LIGATURE MEN NOW FB14;AL # ARMENIAN SMALL LIGATURE MEN ECH FB15;AL # ARMENIAN SMALL LIGATURE MEN INI FB16;AL # ARMENIAN SMALL LIGATURE VEW NOW FB17;AL # ARMENIAN SMALL LIGATURE MEN XEH FB1D;AL # HEBREW LETTER YOD WITH HIRIQ FB1E;CM # HEBREW POINT JUDEO-SPANISH VARIKA FB1F;AL # HEBREW LIGATURE YIDDISH YOD YOD PATAH FB20;AL # HEBREW LETTER ALTERNATIVE AYIN FB21;AL # HEBREW LETTER WIDE ALEF FB22;AL # HEBREW LETTER WIDE DALET FB23;AL # HEBREW LETTER WIDE HE FB24;AL # HEBREW LETTER WIDE KAF FB25;AL # HEBREW LETTER WIDE LAMED FB26;AL # HEBREW LETTER WIDE FINAL MEM FB27;AL # HEBREW LETTER WIDE RESH FB28;AL # HEBREW LETTER WIDE TAV FB29;AL # HEBREW LETTER ALTERNATIVE PLUS SIGN FB2A;AL # HEBREW LETTER SHIN WITH SHIN DOT FB2B;AL # HEBREW LETTER SHIN WITH SIN DOT FB2C;AL # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT FB2D;AL # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT FB2E;AL # HEBREW LETTER ALEF WITH PATAH FB2F;AL # HEBREW LETTER ALEF WITH QAMATS FB30;AL # HEBREW LETTER ALEF WITH MAPIQ FB31;AL # HEBREW LETTER BET WITH DAGESH FB32;AL # HEBREW LETTER GIMEL WITH DAGESH FB33;AL # HEBREW LETTER DALET WITH DAGESH FB34;AL # HEBREW LETTER HE WITH MAPIQ FB35;AL # HEBREW LETTER VAV WITH DAGESH FB36;AL # HEBREW LETTER ZAYIN WITH DAGESH FB38;AL # HEBREW LETTER TET WITH DAGESH FB39;AL # HEBREW LETTER YOD WITH DAGESH FB3A;AL # HEBREW LETTER FINAL KAF WITH DAGESH FB3B;AL # HEBREW LETTER KAF WITH DAGESH FB3C;AL # HEBREW LETTER LAMED WITH DAGESH FB3E;AL # HEBREW LETTER MEM WITH DAGESH FB40;AL # HEBREW LETTER NUN WITH DAGESH FB41;AL # HEBREW LETTER SAMEKH WITH DAGESH FB43;AL # HEBREW LETTER FINAL PE WITH DAGESH FB44;AL # HEBREW LETTER PE WITH DAGESH FB46;AL # HEBREW LETTER TSADI WITH DAGESH FB47;AL # HEBREW LETTER QOF WITH DAGESH FB48;AL # HEBREW LETTER RESH WITH DAGESH FB49;AL # HEBREW LETTER SHIN WITH DAGESH FB4A;AL # HEBREW LETTER TAV WITH DAGESH FB4B;AL # HEBREW LETTER VAV WITH HOLAM FB4C;AL # HEBREW LETTER BET WITH RAFE FB4D;AL # HEBREW LETTER KAF WITH RAFE FB4E;AL # HEBREW LETTER PE WITH RAFE FB4F;AL # HEBREW LIGATURE ALEF LAMED FB50;AL # ARABIC LETTER ALEF WASLA ISOLATED FORM FB51;AL # ARABIC LETTER ALEF WASLA FINAL FORM FB52;AL # ARABIC LETTER BEEH ISOLATED FORM FB53;AL # ARABIC LETTER BEEH FINAL FORM FB54;AL # ARABIC LETTER BEEH INITIAL FORM FB55;AL # ARABIC LETTER BEEH MEDIAL FORM FB56;AL # ARABIC LETTER PEH ISOLATED FORM FB57;AL # ARABIC LETTER PEH FINAL FORM FB58;AL # ARABIC LETTER PEH INITIAL FORM FB59;AL # ARABIC LETTER PEH MEDIAL FORM FB5A;AL # ARABIC LETTER BEHEH ISOLATED FORM FB5B;AL # ARABIC LETTER BEHEH FINAL FORM FB5C;AL # ARABIC LETTER BEHEH INITIAL FORM FB5D;AL # ARABIC LETTER BEHEH MEDIAL FORM FB5E;AL # ARABIC LETTER TTEHEH ISOLATED FORM FB5F;AL # ARABIC LETTER TTEHEH FINAL FORM FB60;AL # ARABIC LETTER TTEHEH INITIAL FORM FB61;AL # ARABIC LETTER TTEHEH MEDIAL FORM FB62;AL # ARABIC LETTER TEHEH ISOLATED FORM FB63;AL # ARABIC LETTER TEHEH FINAL FORM FB64;AL # ARABIC LETTER TEHEH INITIAL FORM FB65;AL # ARABIC LETTER TEHEH MEDIAL FORM FB66;AL # ARABIC LETTER TTEH ISOLATED FORM FB67;AL # ARABIC LETTER TTEH FINAL FORM FB68;AL # ARABIC LETTER TTEH INITIAL FORM FB69;AL # ARABIC LETTER TTEH MEDIAL FORM FB6A;AL # ARABIC LETTER VEH ISOLATED FORM FB6B;AL # ARABIC LETTER VEH FINAL FORM FB6C;AL # ARABIC LETTER VEH INITIAL FORM FB6D;AL # ARABIC LETTER VEH MEDIAL FORM FB6E;AL # ARABIC LETTER PEHEH ISOLATED FORM FB6F;AL # ARABIC LETTER PEHEH FINAL FORM FB70;AL # ARABIC LETTER PEHEH INITIAL FORM FB71;AL # ARABIC LETTER PEHEH MEDIAL FORM FB72;AL # ARABIC LETTER DYEH ISOLATED FORM FB73;AL # ARABIC LETTER DYEH FINAL FORM FB74;AL # ARABIC LETTER DYEH INITIAL FORM FB75;AL # ARABIC LETTER DYEH MEDIAL FORM FB76;AL # ARABIC LETTER NYEH ISOLATED FORM FB77;AL # ARABIC LETTER NYEH FINAL FORM FB78;AL # ARABIC LETTER NYEH INITIAL FORM FB79;AL # ARABIC LETTER NYEH MEDIAL FORM FB7A;AL # ARABIC LETTER TCHEH ISOLATED FORM FB7B;AL # ARABIC LETTER TCHEH FINAL FORM FB7C;AL # ARABIC LETTER TCHEH INITIAL FORM FB7D;AL # ARABIC LETTER TCHEH MEDIAL FORM FB7E;AL # ARABIC LETTER TCHEHEH ISOLATED FORM FB7F;AL # ARABIC LETTER TCHEHEH FINAL FORM FB80;AL # ARABIC LETTER TCHEHEH INITIAL FORM FB81;AL # ARABIC LETTER TCHEHEH MEDIAL FORM FB82;AL # ARABIC LETTER DDAHAL ISOLATED FORM FB83;AL # ARABIC LETTER DDAHAL FINAL FORM FB84;AL # ARABIC LETTER DAHAL ISOLATED FORM FB85;AL # ARABIC LETTER DAHAL FINAL FORM FB86;AL # ARABIC LETTER DUL ISOLATED FORM FB87;AL # ARABIC LETTER DUL FINAL FORM FB88;AL # ARABIC LETTER DDAL ISOLATED FORM FB89;AL # ARABIC LETTER DDAL FINAL FORM FB8A;AL # ARABIC LETTER JEH ISOLATED FORM FB8B;AL # ARABIC LETTER JEH FINAL FORM FB8C;AL # ARABIC LETTER RREH ISOLATED FORM FB8D;AL # ARABIC LETTER RREH FINAL FORM FB8E;AL # ARABIC LETTER KEHEH ISOLATED FORM FB8F;AL # ARABIC LETTER KEHEH FINAL FORM FB90;AL # ARABIC LETTER KEHEH INITIAL FORM FB91;AL # ARABIC LETTER KEHEH MEDIAL FORM FB92;AL # ARABIC LETTER GAF ISOLATED FORM FB93;AL # ARABIC LETTER GAF FINAL FORM FB94;AL # ARABIC LETTER GAF INITIAL FORM FB95;AL # ARABIC LETTER GAF MEDIAL FORM FB96;AL # ARABIC LETTER GUEH ISOLATED FORM FB97;AL # ARABIC LETTER GUEH FINAL FORM FB98;AL # ARABIC LETTER GUEH INITIAL FORM FB99;AL # ARABIC LETTER GUEH MEDIAL FORM FB9A;AL # ARABIC LETTER NGOEH ISOLATED FORM FB9B;AL # ARABIC LETTER NGOEH FINAL FORM FB9C;AL # ARABIC LETTER NGOEH INITIAL FORM FB9D;AL # ARABIC LETTER NGOEH MEDIAL FORM FB9E;AL # ARABIC LETTER NOON GHUNNA ISOLATED FORM FB9F;AL # ARABIC LETTER NOON GHUNNA FINAL FORM FBA0;AL # ARABIC LETTER RNOON ISOLATED FORM FBA1;AL # ARABIC LETTER RNOON FINAL FORM FBA2;AL # ARABIC LETTER RNOON INITIAL FORM FBA3;AL # ARABIC LETTER RNOON MEDIAL FORM FBA4;AL # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM FBA5;AL # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM FBA6;AL # ARABIC LETTER HEH GOAL ISOLATED FORM FBA7;AL # ARABIC LETTER HEH GOAL FINAL FORM FBA8;AL # ARABIC LETTER HEH GOAL INITIAL FORM FBA9;AL # ARABIC LETTER HEH GOAL MEDIAL FORM FBAA;AL # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM FBAB;AL # ARABIC LETTER HEH DOACHASHMEE FINAL FORM FBAC;AL # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM FBAD;AL # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM FBAE;AL # ARABIC LETTER YEH BARREE ISOLATED FORM FBAF;AL # ARABIC LETTER YEH BARREE FINAL FORM FBB0;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM FBB1;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM FBD3;AL # ARABIC LETTER NG ISOLATED FORM FBD4;AL # ARABIC LETTER NG FINAL FORM FBD5;AL # ARABIC LETTER NG INITIAL FORM FBD6;AL # ARABIC LETTER NG MEDIAL FORM FBD7;AL # ARABIC LETTER U ISOLATED FORM FBD8;AL # ARABIC LETTER U FINAL FORM FBD9;AL # ARABIC LETTER OE ISOLATED FORM FBDA;AL # ARABIC LETTER OE FINAL FORM FBDB;AL # ARABIC LETTER YU ISOLATED FORM FBDC;AL # ARABIC LETTER YU FINAL FORM FBDD;AL # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM FBDE;AL # ARABIC LETTER VE ISOLATED FORM FBDF;AL # ARABIC LETTER VE FINAL FORM FBE0;AL # ARABIC LETTER KIRGHIZ OE ISOLATED FORM FBE1;AL # ARABIC LETTER KIRGHIZ OE FINAL FORM FBE2;AL # ARABIC LETTER KIRGHIZ YU ISOLATED FORM FBE3;AL # ARABIC LETTER KIRGHIZ YU FINAL FORM FBE4;AL # ARABIC LETTER E ISOLATED FORM FBE5;AL # ARABIC LETTER E FINAL FORM FBE6;AL # ARABIC LETTER E INITIAL FORM FBE7;AL # ARABIC LETTER E MEDIAL FORM FBE8;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM FBE9;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM FBEA;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM FBEB;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM FBEC;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM FBED;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM FBEE;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM FBEF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM FBF0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM FBF1;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM FBF2;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM FBF3;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM FBF4;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM FBF5;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM FBF6;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM FBF7;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM FBF8;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM FBF9;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM FBFA;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM FBFB;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM FBFC;AL # ARABIC LETTER FARSI YEH ISOLATED FORM FBFD;AL # ARABIC LETTER FARSI YEH FINAL FORM FBFE;AL # ARABIC LETTER FARSI YEH INITIAL FORM FBFF;AL # ARABIC LETTER FARSI YEH MEDIAL FORM FC00;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM FC01;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM FC02;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM FC03;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM FC04;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM FC05;AL # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM FC06;AL # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM FC07;AL # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM FC08;AL # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM FC09;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM FC0A;AL # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM FC0B;AL # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM FC0C;AL # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM FC0D;AL # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM FC0E;AL # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM FC0F;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM FC10;AL # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM FC11;AL # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM FC12;AL # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM FC13;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM FC14;AL # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM FC15;AL # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM FC16;AL # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM FC17;AL # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM FC18;AL # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM FC19;AL # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM FC1A;AL # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM FC1B;AL # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM FC1C;AL # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM FC1D;AL # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM FC1E;AL # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM FC1F;AL # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM FC20;AL # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM FC21;AL # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM FC22;AL # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM FC23;AL # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM FC24;AL # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM FC25;AL # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM FC26;AL # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM FC27;AL # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM FC28;AL # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM FC29;AL # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM FC2A;AL # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM FC2B;AL # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM FC2C;AL # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM FC2D;AL # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM FC2E;AL # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM FC2F;AL # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM FC30;AL # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM FC31;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM FC32;AL # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM FC33;AL # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM FC34;AL # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM FC35;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM FC36;AL # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM FC37;AL # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM FC38;AL # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM FC39;AL # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM FC3A;AL # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM FC3B;AL # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM FC3C;AL # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM FC3D;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM FC3E;AL # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM FC3F;AL # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM FC40;AL # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM FC41;AL # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM FC42;AL # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM FC43;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM FC44;AL # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM FC45;AL # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM FC46;AL # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM FC47;AL # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM FC48;AL # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM FC49;AL # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM FC4A;AL # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM FC4B;AL # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM FC4C;AL # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM FC4D;AL # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM FC4E;AL # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM FC4F;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM FC50;AL # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM FC51;AL # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM FC52;AL # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM FC53;AL # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM FC54;AL # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM FC55;AL # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM FC56;AL # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM FC57;AL # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM FC58;AL # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM FC59;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM FC5A;AL # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM FC5B;AL # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM FC5C;AL # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM FC5D;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM FC5E;AL # ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM FC5F;AL # ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM FC60;AL # ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM FC61;AL # ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM FC62;AL # ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM FC63;AL # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM FC64;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM FC65;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM FC66;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM FC67;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM FC68;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM FC69;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM FC6A;AL # ARABIC LIGATURE BEH WITH REH FINAL FORM FC6B;AL # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM FC6C;AL # ARABIC LIGATURE BEH WITH MEEM FINAL FORM FC6D;AL # ARABIC LIGATURE BEH WITH NOON FINAL FORM FC6E;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM FC6F;AL # ARABIC LIGATURE BEH WITH YEH FINAL FORM FC70;AL # ARABIC LIGATURE TEH WITH REH FINAL FORM FC71;AL # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM FC72;AL # ARABIC LIGATURE TEH WITH MEEM FINAL FORM FC73;AL # ARABIC LIGATURE TEH WITH NOON FINAL FORM FC74;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM FC75;AL # ARABIC LIGATURE TEH WITH YEH FINAL FORM FC76;AL # ARABIC LIGATURE THEH WITH REH FINAL FORM FC77;AL # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM FC78;AL # ARABIC LIGATURE THEH WITH MEEM FINAL FORM FC79;AL # ARABIC LIGATURE THEH WITH NOON FINAL FORM FC7A;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM FC7B;AL # ARABIC LIGATURE THEH WITH YEH FINAL FORM FC7C;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM FC7D;AL # ARABIC LIGATURE FEH WITH YEH FINAL FORM FC7E;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM FC7F;AL # ARABIC LIGATURE QAF WITH YEH FINAL FORM FC80;AL # ARABIC LIGATURE KAF WITH ALEF FINAL FORM FC81;AL # ARABIC LIGATURE KAF WITH LAM FINAL FORM FC82;AL # ARABIC LIGATURE KAF WITH MEEM FINAL FORM FC83;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM FC84;AL # ARABIC LIGATURE KAF WITH YEH FINAL FORM FC85;AL # ARABIC LIGATURE LAM WITH MEEM FINAL FORM FC86;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM FC87;AL # ARABIC LIGATURE LAM WITH YEH FINAL FORM FC88;AL # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM FC89;AL # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM FC8A;AL # ARABIC LIGATURE NOON WITH REH FINAL FORM FC8B;AL # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM FC8C;AL # ARABIC LIGATURE NOON WITH MEEM FINAL FORM FC8D;AL # ARABIC LIGATURE NOON WITH NOON FINAL FORM FC8E;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM FC8F;AL # ARABIC LIGATURE NOON WITH YEH FINAL FORM FC90;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM FC91;AL # ARABIC LIGATURE YEH WITH REH FINAL FORM FC92;AL # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM FC93;AL # ARABIC LIGATURE YEH WITH MEEM FINAL FORM FC94;AL # ARABIC LIGATURE YEH WITH NOON FINAL FORM FC95;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM FC96;AL # ARABIC LIGATURE YEH WITH YEH FINAL FORM FC97;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM FC98;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM FC99;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM FC9A;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM FC9B;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM FC9C;AL # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM FC9D;AL # ARABIC LIGATURE BEH WITH HAH INITIAL FORM FC9E;AL # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM FC9F;AL # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM FCA0;AL # ARABIC LIGATURE BEH WITH HEH INITIAL FORM FCA1;AL # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM FCA2;AL # ARABIC LIGATURE TEH WITH HAH INITIAL FORM FCA3;AL # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM FCA4;AL # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM FCA5;AL # ARABIC LIGATURE TEH WITH HEH INITIAL FORM FCA6;AL # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM FCA7;AL # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM FCA8;AL # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM FCA9;AL # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM FCAA;AL # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM FCAB;AL # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM FCAC;AL # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM FCAD;AL # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM FCAE;AL # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM FCAF;AL # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM FCB0;AL # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM FCB1;AL # ARABIC LIGATURE SAD WITH HAH INITIAL FORM FCB2;AL # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM FCB3;AL # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM FCB4;AL # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM FCB5;AL # ARABIC LIGATURE DAD WITH HAH INITIAL FORM FCB6;AL # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM FCB7;AL # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM FCB8;AL # ARABIC LIGATURE TAH WITH HAH INITIAL FORM FCB9;AL # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM FCBA;AL # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM FCBB;AL # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM FCBC;AL # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM FCBD;AL # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM FCBE;AL # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM FCBF;AL # ARABIC LIGATURE FEH WITH HAH INITIAL FORM FCC0;AL # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM FCC1;AL # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM FCC2;AL # ARABIC LIGATURE QAF WITH HAH INITIAL FORM FCC3;AL # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM FCC4;AL # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM FCC5;AL # ARABIC LIGATURE KAF WITH HAH INITIAL FORM FCC6;AL # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM FCC7;AL # ARABIC LIGATURE KAF WITH LAM INITIAL FORM FCC8;AL # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM FCC9;AL # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM FCCA;AL # ARABIC LIGATURE LAM WITH HAH INITIAL FORM FCCB;AL # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM FCCC;AL # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM FCCD;AL # ARABIC LIGATURE LAM WITH HEH INITIAL FORM FCCE;AL # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM FCCF;AL # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM FCD0;AL # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM FCD1;AL # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM FCD2;AL # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM FCD3;AL # ARABIC LIGATURE NOON WITH HAH INITIAL FORM FCD4;AL # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM FCD5;AL # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM FCD6;AL # ARABIC LIGATURE NOON WITH HEH INITIAL FORM FCD7;AL # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM FCD8;AL # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM FCD9;AL # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM FCDA;AL # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM FCDB;AL # ARABIC LIGATURE YEH WITH HAH INITIAL FORM FCDC;AL # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM FCDD;AL # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM FCDE;AL # ARABIC LIGATURE YEH WITH HEH INITIAL FORM FCDF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM FCE0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM FCE1;AL # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM FCE2;AL # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM FCE3;AL # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM FCE4;AL # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM FCE5;AL # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM FCE6;AL # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM FCE7;AL # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM FCE8;AL # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM FCE9;AL # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM FCEA;AL # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM FCEB;AL # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM FCEC;AL # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM FCED;AL # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM FCEE;AL # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM FCEF;AL # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM FCF0;AL # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM FCF1;AL # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM FCF2;AL # ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM FCF3;AL # ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM FCF4;AL # ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM FCF5;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM FCF6;AL # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM FCF7;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM FCF8;AL # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM FCF9;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM FCFA;AL # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM FCFB;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM FCFC;AL # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM FCFD;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM FCFE;AL # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM FCFF;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM FD00;AL # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM FD01;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM FD02;AL # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM FD03;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM FD04;AL # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM FD05;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM FD06;AL # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM FD07;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM FD08;AL # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM FD09;AL # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM FD0A;AL # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM FD0B;AL # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM FD0C;AL # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM FD0D;AL # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM FD0E;AL # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM FD0F;AL # ARABIC LIGATURE SAD WITH REH ISOLATED FORM FD10;AL # ARABIC LIGATURE DAD WITH REH ISOLATED FORM FD11;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM FD12;AL # ARABIC LIGATURE TAH WITH YEH FINAL FORM FD13;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM FD14;AL # ARABIC LIGATURE AIN WITH YEH FINAL FORM FD15;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM FD16;AL # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM FD17;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM FD18;AL # ARABIC LIGATURE SEEN WITH YEH FINAL FORM FD19;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM FD1A;AL # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM FD1B;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM FD1C;AL # ARABIC LIGATURE HAH WITH YEH FINAL FORM FD1D;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM FD1E;AL # ARABIC LIGATURE JEEM WITH YEH FINAL FORM FD1F;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM FD20;AL # ARABIC LIGATURE KHAH WITH YEH FINAL FORM FD21;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM FD22;AL # ARABIC LIGATURE SAD WITH YEH FINAL FORM FD23;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM FD24;AL # ARABIC LIGATURE DAD WITH YEH FINAL FORM FD25;AL # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM FD26;AL # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM FD27;AL # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM FD28;AL # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM FD29;AL # ARABIC LIGATURE SHEEN WITH REH FINAL FORM FD2A;AL # ARABIC LIGATURE SEEN WITH REH FINAL FORM FD2B;AL # ARABIC LIGATURE SAD WITH REH FINAL FORM FD2C;AL # ARABIC LIGATURE DAD WITH REH FINAL FORM FD2D;AL # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM FD2E;AL # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM FD2F;AL # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM FD30;AL # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM FD31;AL # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM FD32;AL # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM FD33;AL # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM FD34;AL # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM FD35;AL # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM FD36;AL # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM FD37;AL # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM FD38;AL # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM FD39;AL # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM FD3A;AL # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM FD3B;AL # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM FD3C;AL # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM FD3D;AL # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM FD3E;OP # ORNATE LEFT PARENTHESIS FD3F;CL # ORNATE RIGHT PARENTHESIS FD50;AL # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM FD51;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM FD52;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM FD53;AL # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM FD54;AL # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM FD55;AL # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM FD56;AL # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM FD57;AL # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM FD58;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM FD59;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM FD5A;AL # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM FD5B;AL # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM FD5C;AL # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM FD5D;AL # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM FD5E;AL # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM FD5F;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM FD60;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM FD61;AL # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM FD62;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM FD63;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM FD64;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM FD65;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM FD66;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM FD67;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM FD68;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM FD69;AL # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM FD6A;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM FD6B;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM FD6C;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM FD6D;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM FD6E;AL # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM FD6F;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM FD70;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM FD71;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM FD72;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM FD73;AL # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM FD74;AL # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM FD75;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM FD76;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM FD77;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM FD78;AL # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM FD79;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM FD7A;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM FD7B;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM FD7C;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM FD7D;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM FD7E;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM FD7F;AL # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM FD80;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM FD81;AL # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM FD82;AL # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM FD83;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM FD84;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM FD85;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM FD86;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM FD87;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM FD88;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM FD89;AL # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM FD8A;AL # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM FD8B;AL # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM FD8C;AL # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM FD8D;AL # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM FD8E;AL # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM FD8F;AL # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM FD92;AL # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM FD93;AL # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM FD94;AL # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM FD95;AL # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM FD96;AL # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM FD97;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM FD98;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM FD99;AL # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM FD9A;AL # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM FD9B;AL # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM FD9C;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM FD9D;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM FD9E;AL # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM FD9F;AL # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM FDA0;AL # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM FDA1;AL # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM FDA2;AL # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM FDA3;AL # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM FDA4;AL # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM FDA5;AL # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM FDA6;AL # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM FDA7;AL # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM FDA8;AL # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM FDA9;AL # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM FDAA;AL # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM FDAB;AL # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM FDAC;AL # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM FDAD;AL # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM FDAE;AL # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM FDAF;AL # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM FDB0;AL # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM FDB1;AL # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM FDB2;AL # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM FDB3;AL # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM FDB4;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM FDB5;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM FDB6;AL # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM FDB7;AL # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM FDB8;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM FDB9;AL # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM FDBA;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM FDBB;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM FDBC;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM FDBD;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM FDBE;AL # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM FDBF;AL # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM FDC0;AL # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM FDC1;AL # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM FDC2;AL # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM FDC3;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM FDC4;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM FDC5;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM FDC6;AL # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM FDC7;AL # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM FDF0;AL # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM FDF1;AL # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM FDF2;AL # ARABIC LIGATURE ALLAH ISOLATED FORM FDF3;AL # ARABIC LIGATURE AKBAR ISOLATED FORM FDF4;AL # ARABIC LIGATURE MOHAMMAD ISOLATED FORM FDF5;AL # ARABIC LIGATURE SALAM ISOLATED FORM FDF6;AL # ARABIC LIGATURE RASOUL ISOLATED FORM FDF7;AL # ARABIC LIGATURE ALAYHE ISOLATED FORM FDF8;AL # ARABIC LIGATURE WASALLAM ISOLATED FORM FDF9;AL # ARABIC LIGATURE SALLA ISOLATED FORM FDFA;AL # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM FDFB;AL # ARABIC LIGATURE JALLAJALALOUHOU FDFC;PO # RIAL SIGN FE00;CM # VARIATION SELECTOR-1 FE01;CM # VARIATION SELECTOR-2 FE02;CM # VARIATION SELECTOR-3 FE03;CM # VARIATION SELECTOR-4 FE04;CM # VARIATION SELECTOR-5 FE05;CM # VARIATION SELECTOR-6 FE06;CM # VARIATION SELECTOR-7 FE07;CM # VARIATION SELECTOR-8 FE08;CM # VARIATION SELECTOR-9 FE09;CM # VARIATION SELECTOR-10 FE0A;CM # VARIATION SELECTOR-11 FE0B;CM # VARIATION SELECTOR-12 FE0C;CM # VARIATION SELECTOR-13 FE0D;CM # VARIATION SELECTOR-14 FE0E;CM # VARIATION SELECTOR-15 FE0F;CM # VARIATION SELECTOR-16 FE20;CM # COMBINING LIGATURE LEFT HALF FE21;CM # COMBINING LIGATURE RIGHT HALF FE22;CM # COMBINING DOUBLE TILDE LEFT HALF FE23;CM # COMBINING DOUBLE TILDE RIGHT HALF FE30;ID # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER FE31;ID # PRESENTATION FORM FOR VERTICAL EM DASH FE32;ID # PRESENTATION FORM FOR VERTICAL EN DASH FE33;ID # PRESENTATION FORM FOR VERTICAL LOW LINE FE34;ID # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE FE35;OP # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS FE36;CL # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS FE37;OP # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET FE38;CL # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET FE39;OP # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET FE3A;CL # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET FE3B;OP # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET FE3C;CL # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET FE3D;OP # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET FE3E;CL # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET FE3F;OP # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET FE40;CL # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET FE41;OP # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET FE42;CL # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET FE43;OP # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET FE44;CL # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET FE45;ID # SESAME DOT FE46;ID # WHITE SESAME DOT FE49;ID # DASHED OVERLINE FE4A;ID # CENTRELINE OVERLINE FE4B;ID # WAVY OVERLINE FE4C;ID # DOUBLE WAVY OVERLINE FE4D;ID # DASHED LOW LINE FE4E;ID # CENTRELINE LOW LINE FE4F;ID # WAVY LOW LINE FE50;CL # SMALL COMMA FE51;ID # SMALL IDEOGRAPHIC COMMA FE52;CL # SMALL FULL STOP FE54;NS # SMALL SEMICOLON FE55;NS # SMALL COLON FE56;EX # SMALL QUESTION MARK FE57;EX # SMALL EXCLAMATION MARK FE58;ID # SMALL EM DASH FE59;OP # SMALL LEFT PARENTHESIS FE5A;CL # SMALL RIGHT PARENTHESIS FE5B;OP # SMALL LEFT CURLY BRACKET FE5C;CL # SMALL RIGHT CURLY BRACKET FE5D;OP # SMALL LEFT TORTOISE SHELL BRACKET FE5E;CL # SMALL RIGHT TORTOISE SHELL BRACKET FE5F;ID # SMALL NUMBER SIGN FE60;ID # SMALL AMPERSAND FE61;ID # SMALL ASTERISK FE62;ID # SMALL PLUS SIGN FE63;ID # SMALL HYPHEN-MINUS FE64;ID # SMALL LESS-THAN SIGN FE65;ID # SMALL GREATER-THAN SIGN FE66;ID # SMALL EQUALS SIGN FE68;ID # SMALL REVERSE SOLIDUS FE69;PR # SMALL DOLLAR SIGN FE6A;PO # SMALL PERCENT SIGN FE6B;ID # SMALL COMMERCIAL AT FE70;AL # ARABIC FATHATAN ISOLATED FORM FE71;AL # ARABIC TATWEEL WITH FATHATAN ABOVE FE72;AL # ARABIC DAMMATAN ISOLATED FORM FE73;AL # ARABIC TAIL FRAGMENT FE74;AL # ARABIC KASRATAN ISOLATED FORM FE76;AL # ARABIC FATHA ISOLATED FORM FE77;AL # ARABIC FATHA MEDIAL FORM FE78;AL # ARABIC DAMMA ISOLATED FORM FE79;AL # ARABIC DAMMA MEDIAL FORM FE7A;AL # ARABIC KASRA ISOLATED FORM FE7B;AL # ARABIC KASRA MEDIAL FORM FE7C;AL # ARABIC SHADDA ISOLATED FORM FE7D;AL # ARABIC SHADDA MEDIAL FORM FE7E;AL # ARABIC SUKUN ISOLATED FORM FE7F;AL # ARABIC SUKUN MEDIAL FORM FE80;AL # ARABIC LETTER HAMZA ISOLATED FORM FE81;AL # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM FE82;AL # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM FE83;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM FE84;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM FE85;AL # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM FE86;AL # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM FE87;AL # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM FE88;AL # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM FE89;AL # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM FE8A;AL # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM FE8B;AL # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM FE8C;AL # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM FE8D;AL # ARABIC LETTER ALEF ISOLATED FORM FE8E;AL # ARABIC LETTER ALEF FINAL FORM FE8F;AL # ARABIC LETTER BEH ISOLATED FORM FE90;AL # ARABIC LETTER BEH FINAL FORM FE91;AL # ARABIC LETTER BEH INITIAL FORM FE92;AL # ARABIC LETTER BEH MEDIAL FORM FE93;AL # ARABIC LETTER TEH MARBUTA ISOLATED FORM FE94;AL # ARABIC LETTER TEH MARBUTA FINAL FORM FE95;AL # ARABIC LETTER TEH ISOLATED FORM FE96;AL # ARABIC LETTER TEH FINAL FORM FE97;AL # ARABIC LETTER TEH INITIAL FORM FE98;AL # ARABIC LETTER TEH MEDIAL FORM FE99;AL # ARABIC LETTER THEH ISOLATED FORM FE9A;AL # ARABIC LETTER THEH FINAL FORM FE9B;AL # ARABIC LETTER THEH INITIAL FORM FE9C;AL # ARABIC LETTER THEH MEDIAL FORM FE9D;AL # ARABIC LETTER JEEM ISOLATED FORM FE9E;AL # ARABIC LETTER JEEM FINAL FORM FE9F;AL # ARABIC LETTER JEEM INITIAL FORM FEA0;AL # ARABIC LETTER JEEM MEDIAL FORM FEA1;AL # ARABIC LETTER HAH ISOLATED FORM FEA2;AL # ARABIC LETTER HAH FINAL FORM FEA3;AL # ARABIC LETTER HAH INITIAL FORM FEA4;AL # ARABIC LETTER HAH MEDIAL FORM FEA5;AL # ARABIC LETTER KHAH ISOLATED FORM FEA6;AL # ARABIC LETTER KHAH FINAL FORM FEA7;AL # ARABIC LETTER KHAH INITIAL FORM FEA8;AL # ARABIC LETTER KHAH MEDIAL FORM FEA9;AL # ARABIC LETTER DAL ISOLATED FORM FEAA;AL # ARABIC LETTER DAL FINAL FORM FEAB;AL # ARABIC LETTER THAL ISOLATED FORM FEAC;AL # ARABIC LETTER THAL FINAL FORM FEAD;AL # ARABIC LETTER REH ISOLATED FORM FEAE;AL # ARABIC LETTER REH FINAL FORM FEAF;AL # ARABIC LETTER ZAIN ISOLATED FORM FEB0;AL # ARABIC LETTER ZAIN FINAL FORM FEB1;AL # ARABIC LETTER SEEN ISOLATED FORM FEB2;AL # ARABIC LETTER SEEN FINAL FORM FEB3;AL # ARABIC LETTER SEEN INITIAL FORM FEB4;AL # ARABIC LETTER SEEN MEDIAL FORM FEB5;AL # ARABIC LETTER SHEEN ISOLATED FORM FEB6;AL # ARABIC LETTER SHEEN FINAL FORM FEB7;AL # ARABIC LETTER SHEEN INITIAL FORM FEB8;AL # ARABIC LETTER SHEEN MEDIAL FORM FEB9;AL # ARABIC LETTER SAD ISOLATED FORM FEBA;AL # ARABIC LETTER SAD FINAL FORM FEBB;AL # ARABIC LETTER SAD INITIAL FORM FEBC;AL # ARABIC LETTER SAD MEDIAL FORM FEBD;AL # ARABIC LETTER DAD ISOLATED FORM FEBE;AL # ARABIC LETTER DAD FINAL FORM FEBF;AL # ARABIC LETTER DAD INITIAL FORM FEC0;AL # ARABIC LETTER DAD MEDIAL FORM FEC1;AL # ARABIC LETTER TAH ISOLATED FORM FEC2;AL # ARABIC LETTER TAH FINAL FORM FEC3;AL # ARABIC LETTER TAH INITIAL FORM FEC4;AL # ARABIC LETTER TAH MEDIAL FORM FEC5;AL # ARABIC LETTER ZAH ISOLATED FORM FEC6;AL # ARABIC LETTER ZAH FINAL FORM FEC7;AL # ARABIC LETTER ZAH INITIAL FORM FEC8;AL # ARABIC LETTER ZAH MEDIAL FORM FEC9;AL # ARABIC LETTER AIN ISOLATED FORM FECA;AL # ARABIC LETTER AIN FINAL FORM FECB;AL # ARABIC LETTER AIN INITIAL FORM FECC;AL # ARABIC LETTER AIN MEDIAL FORM FECD;AL # ARABIC LETTER GHAIN ISOLATED FORM FECE;AL # ARABIC LETTER GHAIN FINAL FORM FECF;AL # ARABIC LETTER GHAIN INITIAL FORM FED0;AL # ARABIC LETTER GHAIN MEDIAL FORM FED1;AL # ARABIC LETTER FEH ISOLATED FORM FED2;AL # ARABIC LETTER FEH FINAL FORM FED3;AL # ARABIC LETTER FEH INITIAL FORM FED4;AL # ARABIC LETTER FEH MEDIAL FORM FED5;AL # ARABIC LETTER QAF ISOLATED FORM FED6;AL # ARABIC LETTER QAF FINAL FORM FED7;AL # ARABIC LETTER QAF INITIAL FORM FED8;AL # ARABIC LETTER QAF MEDIAL FORM FED9;AL # ARABIC LETTER KAF ISOLATED FORM FEDA;AL # ARABIC LETTER KAF FINAL FORM FEDB;AL # ARABIC LETTER KAF INITIAL FORM FEDC;AL # ARABIC LETTER KAF MEDIAL FORM FEDD;AL # ARABIC LETTER LAM ISOLATED FORM FEDE;AL # ARABIC LETTER LAM FINAL FORM FEDF;AL # ARABIC LETTER LAM INITIAL FORM FEE0;AL # ARABIC LETTER LAM MEDIAL FORM FEE1;AL # ARABIC LETTER MEEM ISOLATED FORM FEE2;AL # ARABIC LETTER MEEM FINAL FORM FEE3;AL # ARABIC LETTER MEEM INITIAL FORM FEE4;AL # ARABIC LETTER MEEM MEDIAL FORM FEE5;AL # ARABIC LETTER NOON ISOLATED FORM FEE6;AL # ARABIC LETTER NOON FINAL FORM FEE7;AL # ARABIC LETTER NOON INITIAL FORM FEE8;AL # ARABIC LETTER NOON MEDIAL FORM FEE9;AL # ARABIC LETTER HEH ISOLATED FORM FEEA;AL # ARABIC LETTER HEH FINAL FORM FEEB;AL # ARABIC LETTER HEH INITIAL FORM FEEC;AL # ARABIC LETTER HEH MEDIAL FORM FEED;AL # ARABIC LETTER WAW ISOLATED FORM FEEE;AL # ARABIC LETTER WAW FINAL FORM FEEF;AL # ARABIC LETTER ALEF MAKSURA ISOLATED FORM FEF0;AL # ARABIC LETTER ALEF MAKSURA FINAL FORM FEF1;AL # ARABIC LETTER YEH ISOLATED FORM FEF2;AL # ARABIC LETTER YEH FINAL FORM FEF3;AL # ARABIC LETTER YEH INITIAL FORM FEF4;AL # ARABIC LETTER YEH MEDIAL FORM FEF5;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM FEF6;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM FEF7;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM FEF8;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM FEF9;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM FEFA;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM FEFB;AL # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM FEFC;AL # ARABIC LIGATURE LAM WITH ALEF FINAL FORM FEFF;GL # ZERO WIDTH NO-BREAK SPACE FF01;EX # FULLWIDTH EXCLAMATION MARK FF02;ID # FULLWIDTH QUOTATION MARK FF03;ID # FULLWIDTH NUMBER SIGN FF04;PR # FULLWIDTH DOLLAR SIGN FF05;PO # FULLWIDTH PERCENT SIGN FF06;ID # FULLWIDTH AMPERSAND FF07;ID # FULLWIDTH APOSTROPHE FF08;OP # FULLWIDTH LEFT PARENTHESIS FF09;CL # FULLWIDTH RIGHT PARENTHESIS FF0A;ID # FULLWIDTH ASTERISK FF0B;ID # FULLWIDTH PLUS SIGN FF0C;CL # FULLWIDTH COMMA FF0D;ID # FULLWIDTH HYPHEN-MINUS FF0E;CL # FULLWIDTH FULL STOP FF0F;ID # FULLWIDTH SOLIDUS FF10;ID # FULLWIDTH DIGIT ZERO FF11;ID # FULLWIDTH DIGIT ONE FF12;ID # FULLWIDTH DIGIT TWO FF13;ID # FULLWIDTH DIGIT THREE FF14;ID # FULLWIDTH DIGIT FOUR FF15;ID # FULLWIDTH DIGIT FIVE FF16;ID # FULLWIDTH DIGIT SIX FF17;ID # FULLWIDTH DIGIT SEVEN FF18;ID # FULLWIDTH DIGIT EIGHT FF19;ID # FULLWIDTH DIGIT NINE FF1A;NS # FULLWIDTH COLON FF1B;NS # FULLWIDTH SEMICOLON FF1C;ID # FULLWIDTH LESS-THAN SIGN FF1D;ID # FULLWIDTH EQUALS SIGN FF1E;ID # FULLWIDTH GREATER-THAN SIGN FF1F;EX # FULLWIDTH QUESTION MARK FF20;ID # FULLWIDTH COMMERCIAL AT FF21;ID # FULLWIDTH LATIN CAPITAL LETTER A FF22;ID # FULLWIDTH LATIN CAPITAL LETTER B FF23;ID # FULLWIDTH LATIN CAPITAL LETTER C FF24;ID # FULLWIDTH LATIN CAPITAL LETTER D FF25;ID # FULLWIDTH LATIN CAPITAL LETTER E FF26;ID # FULLWIDTH LATIN CAPITAL LETTER F FF27;ID # FULLWIDTH LATIN CAPITAL LETTER G FF28;ID # FULLWIDTH LATIN CAPITAL LETTER H FF29;ID # FULLWIDTH LATIN CAPITAL LETTER I FF2A;ID # FULLWIDTH LATIN CAPITAL LETTER J FF2B;ID # FULLWIDTH LATIN CAPITAL LETTER K FF2C;ID # FULLWIDTH LATIN CAPITAL LETTER L FF2D;ID # FULLWIDTH LATIN CAPITAL LETTER M FF2E;ID # FULLWIDTH LATIN CAPITAL LETTER N FF2F;ID # FULLWIDTH LATIN CAPITAL LETTER O FF30;ID # FULLWIDTH LATIN CAPITAL LETTER P FF31;ID # FULLWIDTH LATIN CAPITAL LETTER Q FF32;ID # FULLWIDTH LATIN CAPITAL LETTER R FF33;ID # FULLWIDTH LATIN CAPITAL LETTER S FF34;ID # FULLWIDTH LATIN CAPITAL LETTER T FF35;ID # FULLWIDTH LATIN CAPITAL LETTER U FF36;ID # FULLWIDTH LATIN CAPITAL LETTER V FF37;ID # FULLWIDTH LATIN CAPITAL LETTER W FF38;ID # FULLWIDTH LATIN CAPITAL LETTER X FF39;ID # FULLWIDTH LATIN CAPITAL LETTER Y FF3A;ID # FULLWIDTH LATIN CAPITAL LETTER Z FF3B;OP # FULLWIDTH LEFT SQUARE BRACKET FF3C;ID # FULLWIDTH REVERSE SOLIDUS FF3D;CL # FULLWIDTH RIGHT SQUARE BRACKET FF3E;ID # FULLWIDTH CIRCUMFLEX ACCENT FF3F;ID # FULLWIDTH LOW LINE FF40;ID # FULLWIDTH GRAVE ACCENT FF41;ID # FULLWIDTH LATIN SMALL LETTER A FF42;ID # FULLWIDTH LATIN SMALL LETTER B FF43;ID # FULLWIDTH LATIN SMALL LETTER C FF44;ID # FULLWIDTH LATIN SMALL LETTER D FF45;ID # FULLWIDTH LATIN SMALL LETTER E FF46;ID # FULLWIDTH LATIN SMALL LETTER F FF47;ID # FULLWIDTH LATIN SMALL LETTER G FF48;ID # FULLWIDTH LATIN SMALL LETTER H FF49;ID # FULLWIDTH LATIN SMALL LETTER I FF4A;ID # FULLWIDTH LATIN SMALL LETTER J FF4B;ID # FULLWIDTH LATIN SMALL LETTER K FF4C;ID # FULLWIDTH LATIN SMALL LETTER L FF4D;ID # FULLWIDTH LATIN SMALL LETTER M FF4E;ID # FULLWIDTH LATIN SMALL LETTER N FF4F;ID # FULLWIDTH LATIN SMALL LETTER O FF50;ID # FULLWIDTH LATIN SMALL LETTER P FF51;ID # FULLWIDTH LATIN SMALL LETTER Q FF52;ID # FULLWIDTH LATIN SMALL LETTER R FF53;ID # FULLWIDTH LATIN SMALL LETTER S FF54;ID # FULLWIDTH LATIN SMALL LETTER T FF55;ID # FULLWIDTH LATIN SMALL LETTER U FF56;ID # FULLWIDTH LATIN SMALL LETTER V FF57;ID # FULLWIDTH LATIN SMALL LETTER W FF58;ID # FULLWIDTH LATIN SMALL LETTER X FF59;ID # FULLWIDTH LATIN SMALL LETTER Y FF5A;ID # FULLWIDTH LATIN SMALL LETTER Z FF5B;OP # FULLWIDTH LEFT CURLY BRACKET FF5C;ID # FULLWIDTH VERTICAL LINE FF5D;CL # FULLWIDTH RIGHT CURLY BRACKET FF5E;ID # FULLWIDTH TILDE FF5F;OP # FULLWIDTH LEFT WHITE PARENTHESIS FF60;CL # FULLWIDTH RIGHT WHITE PARENTHESIS FF61;CL # HALFWIDTH IDEOGRAPHIC FULL STOP FF62;OP # HALFWIDTH LEFT CORNER BRACKET FF63;CL # HALFWIDTH RIGHT CORNER BRACKET FF64;CL # HALFWIDTH IDEOGRAPHIC COMMA FF65;NS # HALFWIDTH KATAKANA MIDDLE DOT FF66;AL # HALFWIDTH KATAKANA LETTER WO FF67;NS # HALFWIDTH KATAKANA LETTER SMALL A FF68;NS # HALFWIDTH KATAKANA LETTER SMALL I FF69;NS # HALFWIDTH KATAKANA LETTER SMALL U FF6A;NS # HALFWIDTH KATAKANA LETTER SMALL E FF6B;NS # HALFWIDTH KATAKANA LETTER SMALL O FF6C;NS # HALFWIDTH KATAKANA LETTER SMALL YA FF6D;NS # HALFWIDTH KATAKANA LETTER SMALL YU FF6E;NS # HALFWIDTH KATAKANA LETTER SMALL YO FF6F;NS # HALFWIDTH KATAKANA LETTER SMALL TU FF70;NS # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK FF71;AL # HALFWIDTH KATAKANA LETTER A FF72;AL # HALFWIDTH KATAKANA LETTER I FF73;AL # HALFWIDTH KATAKANA LETTER U FF74;AL # HALFWIDTH KATAKANA LETTER E FF75;AL # HALFWIDTH KATAKANA LETTER O FF76;AL # HALFWIDTH KATAKANA LETTER KA FF77;AL # HALFWIDTH KATAKANA LETTER KI FF78;AL # HALFWIDTH KATAKANA LETTER KU FF79;AL # HALFWIDTH KATAKANA LETTER KE FF7A;AL # HALFWIDTH KATAKANA LETTER KO FF7B;AL # HALFWIDTH KATAKANA LETTER SA FF7C;AL # HALFWIDTH KATAKANA LETTER SI FF7D;AL # HALFWIDTH KATAKANA LETTER SU FF7E;AL # HALFWIDTH KATAKANA LETTER SE FF7F;AL # HALFWIDTH KATAKANA LETTER SO FF80;AL # HALFWIDTH KATAKANA LETTER TA FF81;AL # HALFWIDTH KATAKANA LETTER TI FF82;AL # HALFWIDTH KATAKANA LETTER TU FF83;AL # HALFWIDTH KATAKANA LETTER TE FF84;AL # HALFWIDTH KATAKANA LETTER TO FF85;AL # HALFWIDTH KATAKANA LETTER NA FF86;AL # HALFWIDTH KATAKANA LETTER NI FF87;AL # HALFWIDTH KATAKANA LETTER NU FF88;AL # HALFWIDTH KATAKANA LETTER NE FF89;AL # HALFWIDTH KATAKANA LETTER NO FF8A;AL # HALFWIDTH KATAKANA LETTER HA FF8B;AL # HALFWIDTH KATAKANA LETTER HI FF8C;AL # HALFWIDTH KATAKANA LETTER HU FF8D;AL # HALFWIDTH KATAKANA LETTER HE FF8E;AL # HALFWIDTH KATAKANA LETTER HO FF8F;AL # HALFWIDTH KATAKANA LETTER MA FF90;AL # HALFWIDTH KATAKANA LETTER MI FF91;AL # HALFWIDTH KATAKANA LETTER MU FF92;AL # HALFWIDTH KATAKANA LETTER ME FF93;AL # HALFWIDTH KATAKANA LETTER MO FF94;AL # HALFWIDTH KATAKANA LETTER YA FF95;AL # HALFWIDTH KATAKANA LETTER YU FF96;AL # HALFWIDTH KATAKANA LETTER YO FF97;AL # HALFWIDTH KATAKANA LETTER RA FF98;AL # HALFWIDTH KATAKANA LETTER RI FF99;AL # HALFWIDTH KATAKANA LETTER RU FF9A;AL # HALFWIDTH KATAKANA LETTER RE FF9B;AL # HALFWIDTH KATAKANA LETTER RO FF9C;AL # HALFWIDTH KATAKANA LETTER WA FF9D;AL # HALFWIDTH KATAKANA LETTER N FF9E;NS # HALFWIDTH KATAKANA VOICED SOUND MARK FF9F;NS # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK FFA0;AL # HALFWIDTH HANGUL FILLER FFA1;AL # HALFWIDTH HANGUL LETTER KIYEOK FFA2;AL # HALFWIDTH HANGUL LETTER SSANGKIYEOK FFA3;AL # HALFWIDTH HANGUL LETTER KIYEOK-SIOS FFA4;AL # HALFWIDTH HANGUL LETTER NIEUN FFA5;AL # HALFWIDTH HANGUL LETTER NIEUN-CIEUC FFA6;AL # HALFWIDTH HANGUL LETTER NIEUN-HIEUH FFA7;AL # HALFWIDTH HANGUL LETTER TIKEUT FFA8;AL # HALFWIDTH HANGUL LETTER SSANGTIKEUT FFA9;AL # HALFWIDTH HANGUL LETTER RIEUL FFAA;AL # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK FFAB;AL # HALFWIDTH HANGUL LETTER RIEUL-MIEUM FFAC;AL # HALFWIDTH HANGUL LETTER RIEUL-PIEUP FFAD;AL # HALFWIDTH HANGUL LETTER RIEUL-SIOS FFAE;AL # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH FFAF;AL # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH FFB0;AL # HALFWIDTH HANGUL LETTER RIEUL-HIEUH FFB1;AL # HALFWIDTH HANGUL LETTER MIEUM FFB2;AL # HALFWIDTH HANGUL LETTER PIEUP FFB3;AL # HALFWIDTH HANGUL LETTER SSANGPIEUP FFB4;AL # HALFWIDTH HANGUL LETTER PIEUP-SIOS FFB5;AL # HALFWIDTH HANGUL LETTER SIOS FFB6;AL # HALFWIDTH HANGUL LETTER SSANGSIOS FFB7;AL # HALFWIDTH HANGUL LETTER IEUNG FFB8;AL # HALFWIDTH HANGUL LETTER CIEUC FFB9;AL # HALFWIDTH HANGUL LETTER SSANGCIEUC FFBA;AL # HALFWIDTH HANGUL LETTER CHIEUCH FFBB;AL # HALFWIDTH HANGUL LETTER KHIEUKH FFBC;AL # HALFWIDTH HANGUL LETTER THIEUTH FFBD;AL # HALFWIDTH HANGUL LETTER PHIEUPH FFBE;AL # HALFWIDTH HANGUL LETTER HIEUH FFC2;AL # HALFWIDTH HANGUL LETTER A FFC3;AL # HALFWIDTH HANGUL LETTER AE FFC4;AL # HALFWIDTH HANGUL LETTER YA FFC5;AL # HALFWIDTH HANGUL LETTER YAE FFC6;AL # HALFWIDTH HANGUL LETTER EO FFC7;AL # HALFWIDTH HANGUL LETTER E FFCA;AL # HALFWIDTH HANGUL LETTER YEO FFCB;AL # HALFWIDTH HANGUL LETTER YE FFCC;AL # HALFWIDTH HANGUL LETTER O FFCD;AL # HALFWIDTH HANGUL LETTER WA FFCE;AL # HALFWIDTH HANGUL LETTER WAE FFCF;AL # HALFWIDTH HANGUL LETTER OE FFD2;AL # HALFWIDTH HANGUL LETTER YO FFD3;AL # HALFWIDTH HANGUL LETTER U FFD4;AL # HALFWIDTH HANGUL LETTER WEO FFD5;AL # HALFWIDTH HANGUL LETTER WE FFD6;AL # HALFWIDTH HANGUL LETTER WI FFD7;AL # HALFWIDTH HANGUL LETTER YU FFDA;AL # HALFWIDTH HANGUL LETTER EU FFDB;AL # HALFWIDTH HANGUL LETTER YI FFDC;AL # HALFWIDTH HANGUL LETTER I FFE0;PO # FULLWIDTH CENT SIGN FFE1;PR # FULLWIDTH POUND SIGN FFE2;ID # FULLWIDTH NOT SIGN FFE3;ID # FULLWIDTH MACRON FFE4;ID # FULLWIDTH BROKEN BAR FFE5;PR # FULLWIDTH YEN SIGN FFE6;PR # FULLWIDTH WON SIGN FFE8;AL # HALFWIDTH FORMS LIGHT VERTICAL FFE9;AL # HALFWIDTH LEFTWARDS ARROW FFEA;AL # HALFWIDTH UPWARDS ARROW FFEB;AL # HALFWIDTH RIGHTWARDS ARROW FFEC;AL # HALFWIDTH DOWNWARDS ARROW FFED;AL # HALFWIDTH BLACK SQUARE FFEE;AL # HALFWIDTH WHITE CIRCLE FFF9;CM # INTERLINEAR ANNOTATION ANCHOR FFFA;CM # INTERLINEAR ANNOTATION SEPARATOR FFFB;CM # INTERLINEAR ANNOTATION TERMINATOR FFFC;CB # OBJECT REPLACEMENT CHARACTER FFFD;AI # REPLACEMENT CHARACTER 10300;AL # OLD ITALIC LETTER A 10301;AL # OLD ITALIC LETTER BE 10302;AL # OLD ITALIC LETTER KE 10303;AL # OLD ITALIC LETTER DE 10304;AL # OLD ITALIC LETTER E 10305;AL # OLD ITALIC LETTER VE 10306;AL # OLD ITALIC LETTER ZE 10307;AL # OLD ITALIC LETTER HE 10308;AL # OLD ITALIC LETTER THE 10309;AL # OLD ITALIC LETTER I 1030A;AL # OLD ITALIC LETTER KA 1030B;AL # OLD ITALIC LETTER EL 1030C;AL # OLD ITALIC LETTER EM 1030D;AL # OLD ITALIC LETTER EN 1030E;AL # OLD ITALIC LETTER ESH 1030F;AL # OLD ITALIC LETTER O 10310;AL # OLD ITALIC LETTER PE 10311;AL # OLD ITALIC LETTER SHE 10312;AL # OLD ITALIC LETTER KU 10313;AL # OLD ITALIC LETTER ER 10314;AL # OLD ITALIC LETTER ES 10315;AL # OLD ITALIC LETTER TE 10316;AL # OLD ITALIC LETTER U 10317;AL # OLD ITALIC LETTER EKS 10318;AL # OLD ITALIC LETTER PHE 10319;AL # OLD ITALIC LETTER KHE 1031A;AL # OLD ITALIC LETTER EF 1031B;AL # OLD ITALIC LETTER ERS 1031C;AL # OLD ITALIC LETTER CHE 1031D;AL # OLD ITALIC LETTER II 1031E;AL # OLD ITALIC LETTER UU 10320;AL # OLD ITALIC NUMERAL ONE 10321;AL # OLD ITALIC NUMERAL FIVE 10322;AL # OLD ITALIC NUMERAL TEN 10323;AL # OLD ITALIC NUMERAL FIFTY 10330;AL # GOTHIC LETTER AHSA 10331;AL # GOTHIC LETTER BAIRKAN 10332;AL # GOTHIC LETTER GIBA 10333;AL # GOTHIC LETTER DAGS 10334;AL # GOTHIC LETTER AIHVUS 10335;AL # GOTHIC LETTER QAIRTHRA 10336;AL # GOTHIC LETTER IUJA 10337;AL # GOTHIC LETTER HAGL 10338;AL # GOTHIC LETTER THIUTH 10339;AL # GOTHIC LETTER EIS 1033A;AL # GOTHIC LETTER KUSMA 1033B;AL # GOTHIC LETTER LAGUS 1033C;AL # GOTHIC LETTER MANNA 1033D;AL # GOTHIC LETTER NAUTHS 1033E;AL # GOTHIC LETTER JER 1033F;AL # GOTHIC LETTER URUS 10340;AL # GOTHIC LETTER PAIRTHRA 10341;AL # GOTHIC LETTER NINETY 10342;AL # GOTHIC LETTER RAIDA 10343;AL # GOTHIC LETTER SAUIL 10344;AL # GOTHIC LETTER TEIWS 10345;AL # GOTHIC LETTER WINJA 10346;AL # GOTHIC LETTER FAIHU 10347;AL # GOTHIC LETTER IGGWS 10348;AL # GOTHIC LETTER HWAIR 10349;AL # GOTHIC LETTER OTHAL 1034A;AL # GOTHIC LETTER NINE HUNDRED 10400;AL # DESERET CAPITAL LETTER LONG I 10401;AL # DESERET CAPITAL LETTER LONG E 10402;AL # DESERET CAPITAL LETTER LONG A 10403;AL # DESERET CAPITAL LETTER LONG AH 10404;AL # DESERET CAPITAL LETTER LONG O 10405;AL # DESERET CAPITAL LETTER LONG OO 10406;AL # DESERET CAPITAL LETTER SHORT I 10407;AL # DESERET CAPITAL LETTER SHORT E 10408;AL # DESERET CAPITAL LETTER SHORT A 10409;AL # DESERET CAPITAL LETTER SHORT AH 1040A;AL # DESERET CAPITAL LETTER SHORT O 1040B;AL # DESERET CAPITAL LETTER SHORT OO 1040C;AL # DESERET CAPITAL LETTER AY 1040D;AL # DESERET CAPITAL LETTER OW 1040E;AL # DESERET CAPITAL LETTER WU 1040F;AL # DESERET CAPITAL LETTER YEE 10410;AL # DESERET CAPITAL LETTER H 10411;AL # DESERET CAPITAL LETTER PEE 10412;AL # DESERET CAPITAL LETTER BEE 10413;AL # DESERET CAPITAL LETTER TEE 10414;AL # DESERET CAPITAL LETTER DEE 10415;AL # DESERET CAPITAL LETTER CHEE 10416;AL # DESERET CAPITAL LETTER JEE 10417;AL # DESERET CAPITAL LETTER KAY 10418;AL # DESERET CAPITAL LETTER GAY 10419;AL # DESERET CAPITAL LETTER EF 1041A;AL # DESERET CAPITAL LETTER VEE 1041B;AL # DESERET CAPITAL LETTER ETH 1041C;AL # DESERET CAPITAL LETTER THEE 1041D;AL # DESERET CAPITAL LETTER ES 1041E;AL # DESERET CAPITAL LETTER ZEE 1041F;AL # DESERET CAPITAL LETTER ESH 10420;AL # DESERET CAPITAL LETTER ZHEE 10421;AL # DESERET CAPITAL LETTER ER 10422;AL # DESERET CAPITAL LETTER EL 10423;AL # DESERET CAPITAL LETTER EM 10424;AL # DESERET CAPITAL LETTER EN 10425;AL # DESERET CAPITAL LETTER ENG 10428;AL # DESERET SMALL LETTER LONG I 10429;AL # DESERET SMALL LETTER LONG E 1042A;AL # DESERET SMALL LETTER LONG A 1042B;AL # DESERET SMALL LETTER LONG AH 1042C;AL # DESERET SMALL LETTER LONG O 1042D;AL # DESERET SMALL LETTER LONG OO 1042E;AL # DESERET SMALL LETTER SHORT I 1042F;AL # DESERET SMALL LETTER SHORT E 10430;AL # DESERET SMALL LETTER SHORT A 10431;AL # DESERET SMALL LETTER SHORT AH 10432;AL # DESERET SMALL LETTER SHORT O 10433;AL # DESERET SMALL LETTER SHORT OO 10434;AL # DESERET SMALL LETTER AY 10435;AL # DESERET SMALL LETTER OW 10436;AL # DESERET SMALL LETTER WU 10437;AL # DESERET SMALL LETTER YEE 10438;AL # DESERET SMALL LETTER H 10439;AL # DESERET SMALL LETTER PEE 1043A;AL # DESERET SMALL LETTER BEE 1043B;AL # DESERET SMALL LETTER TEE 1043C;AL # DESERET SMALL LETTER DEE 1043D;AL # DESERET SMALL LETTER CHEE 1043E;AL # DESERET SMALL LETTER JEE 1043F;AL # DESERET SMALL LETTER KAY 10440;AL # DESERET SMALL LETTER GAY 10441;AL # DESERET SMALL LETTER EF 10442;AL # DESERET SMALL LETTER VEE 10443;AL # DESERET SMALL LETTER ETH 10444;AL # DESERET SMALL LETTER THEE 10445;AL # DESERET SMALL LETTER ES 10446;AL # DESERET SMALL LETTER ZEE 10447;AL # DESERET SMALL LETTER ESH 10448;AL # DESERET SMALL LETTER ZHEE 10449;AL # DESERET SMALL LETTER ER 1044A;AL # DESERET SMALL LETTER EL 1044B;AL # DESERET SMALL LETTER EM 1044C;AL # DESERET SMALL LETTER EN 1044D;AL # DESERET SMALL LETTER ENG 1D000;AL # BYZANTINE MUSICAL SYMBOL PSILI 1D001;AL # BYZANTINE MUSICAL SYMBOL DASEIA 1D002;AL # BYZANTINE MUSICAL SYMBOL PERISPOMENI 1D003;AL # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON 1D004;AL # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI 1D005;AL # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON 1D006;AL # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI 1D007;AL # BYZANTINE MUSICAL SYMBOL KATHISTI 1D008;AL # BYZANTINE MUSICAL SYMBOL SYRMATIKI 1D009;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI 1D00A;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS 1D00B;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI 1D00C;AL # BYZANTINE MUSICAL SYMBOL KREMASTI 1D00D;AL # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON 1D00E;AL # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON 1D00F;AL # BYZANTINE MUSICAL SYMBOL TELEIA 1D010;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA 1D011;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS 1D012;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI 1D013;AL # BYZANTINE MUSICAL SYMBOL SYNEVMA 1D014;AL # BYZANTINE MUSICAL SYMBOL THITA 1D015;AL # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION 1D016;AL # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION 1D017;AL # BYZANTINE MUSICAL SYMBOL PSILON 1D018;AL # BYZANTINE MUSICAL SYMBOL CHAMILON 1D019;AL # BYZANTINE MUSICAL SYMBOL VATHY 1D01A;AL # BYZANTINE MUSICAL SYMBOL ISON ARCHAION 1D01B;AL # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION 1D01C;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION 1D01D;AL # BYZANTINE MUSICAL SYMBOL SAXIMATA 1D01E;AL # BYZANTINE MUSICAL SYMBOL PARICHON 1D01F;AL # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA 1D020;AL # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION 1D021;AL # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION 1D022;AL # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION 1D023;AL # BYZANTINE MUSICAL SYMBOL APOTHEMA 1D024;AL # BYZANTINE MUSICAL SYMBOL KLASMA 1D025;AL # BYZANTINE MUSICAL SYMBOL REVMA 1D026;AL # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION 1D027;AL # BYZANTINE MUSICAL SYMBOL TINAGMA 1D028;AL # BYZANTINE MUSICAL SYMBOL ANATRICHISMA 1D029;AL # BYZANTINE MUSICAL SYMBOL SEISMA 1D02A;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION 1D02B;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU 1D02C;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION 1D02D;AL # BYZANTINE MUSICAL SYMBOL THEMA 1D02E;AL # BYZANTINE MUSICAL SYMBOL LEMOI 1D02F;AL # BYZANTINE MUSICAL SYMBOL DYO 1D030;AL # BYZANTINE MUSICAL SYMBOL TRIA 1D031;AL # BYZANTINE MUSICAL SYMBOL TESSERA 1D032;AL # BYZANTINE MUSICAL SYMBOL KRATIMATA 1D033;AL # BYZANTINE MUSICAL SYMBOL APESO EXO NEO 1D034;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION 1D035;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORA 1D036;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION 1D037;AL # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON 1D038;AL # BYZANTINE MUSICAL SYMBOL PELASTON 1D039;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON 1D03A;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA 1D03B;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION 1D03C;AL # BYZANTINE MUSICAL SYMBOL RAPISMA 1D03D;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION 1D03E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION 1D03F;AL # BYZANTINE MUSICAL SYMBOL ICHADIN 1D040;AL # BYZANTINE MUSICAL SYMBOL NANA 1D041;AL # BYZANTINE MUSICAL SYMBOL PETASMA 1D042;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO 1D043;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO 1D044;AL # BYZANTINE MUSICAL SYMBOL STRAGGISMATA 1D045;AL # BYZANTINE MUSICAL SYMBOL GRONTHISMATA 1D046;AL # BYZANTINE MUSICAL SYMBOL ISON NEO 1D047;AL # BYZANTINE MUSICAL SYMBOL OLIGON NEO 1D048;AL # BYZANTINE MUSICAL SYMBOL OXEIA NEO 1D049;AL # BYZANTINE MUSICAL SYMBOL PETASTI 1D04A;AL # BYZANTINE MUSICAL SYMBOL KOUFISMA 1D04B;AL # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA 1D04C;AL # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA 1D04D;AL # BYZANTINE MUSICAL SYMBOL PELASTON NEO 1D04E;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO 1D04F;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO 1D050;AL # BYZANTINE MUSICAL SYMBOL YPSILI 1D051;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO 1D052;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO 1D053;AL # BYZANTINE MUSICAL SYMBOL YPORROI 1D054;AL # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON 1D055;AL # BYZANTINE MUSICAL SYMBOL ELAFRON 1D056;AL # BYZANTINE MUSICAL SYMBOL CHAMILI 1D057;AL # BYZANTINE MUSICAL SYMBOL MIKRON ISON 1D058;AL # BYZANTINE MUSICAL SYMBOL VAREIA NEO 1D059;AL # BYZANTINE MUSICAL SYMBOL PIASMA NEO 1D05A;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO 1D05B;AL # BYZANTINE MUSICAL SYMBOL OMALON 1D05C;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOMA 1D05D;AL # BYZANTINE MUSICAL SYMBOL LYGISMA 1D05E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO 1D05F;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO 1D060;AL # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA 1D061;AL # BYZANTINE MUSICAL SYMBOL KYLISMA 1D062;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA 1D063;AL # BYZANTINE MUSICAL SYMBOL TROMIKON NEO 1D064;AL # BYZANTINE MUSICAL SYMBOL EKSTREPTON 1D065;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO 1D066;AL # BYZANTINE MUSICAL SYMBOL SYRMA 1D067;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO 1D068;AL # BYZANTINE MUSICAL SYMBOL EPEGERMA 1D069;AL # BYZANTINE MUSICAL SYMBOL SEISMA NEO 1D06A;AL # BYZANTINE MUSICAL SYMBOL XIRON KLASMA 1D06B;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON 1D06C;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA 1D06D;AL # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA 1D06E;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA 1D06F;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA 1D070;AL # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA 1D071;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA 1D072;AL # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON 1D073;AL # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON 1D074;AL # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON 1D075;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO 1D076;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO 1D077;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO 1D078;AL # BYZANTINE MUSICAL SYMBOL THEMA APLOUN 1D079;AL # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES 1D07A;AL # BYZANTINE MUSICAL SYMBOL KATAVASMA 1D07B;AL # BYZANTINE MUSICAL SYMBOL ENDOFONON 1D07C;AL # BYZANTINE MUSICAL SYMBOL YFEN KATO 1D07D;AL # BYZANTINE MUSICAL SYMBOL YFEN ANO 1D07E;AL # BYZANTINE MUSICAL SYMBOL STAVROS 1D07F;AL # BYZANTINE MUSICAL SYMBOL KLASMA ANO 1D080;AL # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION 1D081;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION 1D082;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO 1D083;AL # BYZANTINE MUSICAL SYMBOL KRATIMA NEO 1D084;AL # BYZANTINE MUSICAL SYMBOL APODERMA NEO 1D085;AL # BYZANTINE MUSICAL SYMBOL APLI 1D086;AL # BYZANTINE MUSICAL SYMBOL DIPLI 1D087;AL # BYZANTINE MUSICAL SYMBOL TRIPLI 1D088;AL # BYZANTINE MUSICAL SYMBOL TETRAPLI 1D089;AL # BYZANTINE MUSICAL SYMBOL KORONIS 1D08A;AL # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU 1D08B;AL # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON 1D08C;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON 1D08D;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON 1D08E;AL # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU 1D08F;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO 1D090;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA 1D091;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA 1D092;AL # BYZANTINE MUSICAL SYMBOL DIGORGON 1D093;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO 1D094;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO 1D095;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA 1D096;AL # BYZANTINE MUSICAL SYMBOL TRIGORGON 1D097;AL # BYZANTINE MUSICAL SYMBOL ARGON 1D098;AL # BYZANTINE MUSICAL SYMBOL IMIDIARGON 1D099;AL # BYZANTINE MUSICAL SYMBOL DIARGON 1D09A;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI 1D09B;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI 1D09C;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGI 1D09D;AL # BYZANTINE MUSICAL SYMBOL AGOGI METRIA 1D09E;AL # BYZANTINE MUSICAL SYMBOL AGOGI MESI 1D09F;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGI 1D0A0;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI 1D0A1;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI 1D0A2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS 1D0A3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS 1D0A4;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS 1D0A5;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS 1D0A6;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS 1D0A7;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS 1D0A8;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS 1D0A9;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS 1D0AA;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS 1D0AB;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS 1D0AC;AL # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS 1D0AD;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS 1D0AE;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS 1D0AF;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS 1D0B0;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS 1D0B1;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS 1D0B2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS 1D0B3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS 1D0B4;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN 1D0B5;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN 1D0B6;AL # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU 1D0B7;AL # BYZANTINE MUSICAL SYMBOL IMIFONON 1D0B8;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORON 1D0B9;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU 1D0BA;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA 1D0BB;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA 1D0BC;AL # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS 1D0BD;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI 1D0BE;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI 1D0BF;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE 1D0C0;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO 1D0C1;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO 1D0C2;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO 1D0C3;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS 1D0C4;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS 1D0C5;AL # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS 1D0C6;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI 1D0C7;AL # BYZANTINE MUSICAL SYMBOL FTHORA NENANO 1D0C8;AL # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS 1D0C9;AL # BYZANTINE MUSICAL SYMBOL CHROA KLITON 1D0CA;AL # BYZANTINE MUSICAL SYMBOL CHROA SPATHI 1D0CB;AL # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION 1D0CC;AL # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA 1D0CD;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION 1D0CE;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION 1D0CF;AL # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION 1D0D0;AL # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA 1D0D1;AL # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA 1D0D2;AL # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA 1D0D3;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA 1D0D4;AL # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA 1D0D5;AL # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA 1D0D6;AL # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA 1D0D7;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA 1D0D8;AL # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS 1D0D9;AL # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS 1D0DA;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI 1D0DB;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI 1D0DC;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI 1D0DD;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS 1D0DE;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS 1D0DF;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU 1D0E0;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU 1D0E1;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU 1D0E2;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS 1D0E3;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU 1D0E4;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU 1D0E5;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU 1D0E6;AL # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG 1D0E7;AL # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU 1D0E8;AL # BYZANTINE MUSICAL SYMBOL STIGMA 1D0E9;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO PA 1D0EA;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU 1D0EB;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO GA 1D0EC;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO DI 1D0ED;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO KE 1D0EE;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO 1D0EF;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO NI 1D0F0;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO 1D0F1;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO 1D0F2;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO 1D0F3;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO 1D0F4;AL # BYZANTINE MUSICAL SYMBOL KLASMA KATO 1D0F5;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO 1D100;AL # MUSICAL SYMBOL SINGLE BARLINE 1D101;AL # MUSICAL SYMBOL DOUBLE BARLINE 1D102;AL # MUSICAL SYMBOL FINAL BARLINE 1D103;AL # MUSICAL SYMBOL REVERSE FINAL BARLINE 1D104;AL # MUSICAL SYMBOL DASHED BARLINE 1D105;AL # MUSICAL SYMBOL SHORT BARLINE 1D106;AL # MUSICAL SYMBOL LEFT REPEAT SIGN 1D107;AL # MUSICAL SYMBOL RIGHT REPEAT SIGN 1D108;AL # MUSICAL SYMBOL REPEAT DOTS 1D109;AL # MUSICAL SYMBOL DAL SEGNO 1D10A;AL # MUSICAL SYMBOL DA CAPO 1D10B;AL # MUSICAL SYMBOL SEGNO 1D10C;AL # MUSICAL SYMBOL CODA 1D10D;AL # MUSICAL SYMBOL REPEATED FIGURE-1 1D10E;AL # MUSICAL SYMBOL REPEATED FIGURE-2 1D10F;AL # MUSICAL SYMBOL REPEATED FIGURE-3 1D110;AL # MUSICAL SYMBOL FERMATA 1D111;AL # MUSICAL SYMBOL FERMATA BELOW 1D112;AL # MUSICAL SYMBOL BREATH MARK 1D113;AL # MUSICAL SYMBOL CAESURA 1D114;AL # MUSICAL SYMBOL BRACE 1D115;AL # MUSICAL SYMBOL BRACKET 1D116;AL # MUSICAL SYMBOL ONE-LINE STAFF 1D117;AL # MUSICAL SYMBOL TWO-LINE STAFF 1D118;AL # MUSICAL SYMBOL THREE-LINE STAFF 1D119;AL # MUSICAL SYMBOL FOUR-LINE STAFF 1D11A;AL # MUSICAL SYMBOL FIVE-LINE STAFF 1D11B;AL # MUSICAL SYMBOL SIX-LINE STAFF 1D11C;AL # MUSICAL SYMBOL SIX-STRING FRETBOARD 1D11D;AL # MUSICAL SYMBOL FOUR-STRING FRETBOARD 1D11E;AL # MUSICAL SYMBOL G CLEF 1D11F;AL # MUSICAL SYMBOL G CLEF OTTAVA ALTA 1D120;AL # MUSICAL SYMBOL G CLEF OTTAVA BASSA 1D121;AL # MUSICAL SYMBOL C CLEF 1D122;AL # MUSICAL SYMBOL F CLEF 1D123;AL # MUSICAL SYMBOL F CLEF OTTAVA ALTA 1D124;AL # MUSICAL SYMBOL F CLEF OTTAVA BASSA 1D125;AL # MUSICAL SYMBOL DRUM CLEF-1 1D126;AL # MUSICAL SYMBOL DRUM CLEF-2 1D12A;AL # MUSICAL SYMBOL DOUBLE SHARP 1D12B;AL # MUSICAL SYMBOL DOUBLE FLAT 1D12C;AL # MUSICAL SYMBOL FLAT UP 1D12D;AL # MUSICAL SYMBOL FLAT DOWN 1D12E;AL # MUSICAL SYMBOL NATURAL UP 1D12F;AL # MUSICAL SYMBOL NATURAL DOWN 1D130;AL # MUSICAL SYMBOL SHARP UP 1D131;AL # MUSICAL SYMBOL SHARP DOWN 1D132;AL # MUSICAL SYMBOL QUARTER TONE SHARP 1D133;AL # MUSICAL SYMBOL QUARTER TONE FLAT 1D134;AL # MUSICAL SYMBOL COMMON TIME 1D135;AL # MUSICAL SYMBOL CUT TIME 1D136;AL # MUSICAL SYMBOL OTTAVA ALTA 1D137;AL # MUSICAL SYMBOL OTTAVA BASSA 1D138;AL # MUSICAL SYMBOL QUINDICESIMA ALTA 1D139;AL # MUSICAL SYMBOL QUINDICESIMA BASSA 1D13A;AL # MUSICAL SYMBOL MULTI REST 1D13B;AL # MUSICAL SYMBOL WHOLE REST 1D13C;AL # MUSICAL SYMBOL HALF REST 1D13D;AL # MUSICAL SYMBOL QUARTER REST 1D13E;AL # MUSICAL SYMBOL EIGHTH REST 1D13F;AL # MUSICAL SYMBOL SIXTEENTH REST 1D140;AL # MUSICAL SYMBOL THIRTY-SECOND REST 1D141;AL # MUSICAL SYMBOL SIXTY-FOURTH REST 1D142;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST 1D143;AL # MUSICAL SYMBOL X NOTEHEAD 1D144;AL # MUSICAL SYMBOL PLUS NOTEHEAD 1D145;AL # MUSICAL SYMBOL CIRCLE X NOTEHEAD 1D146;AL # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE 1D147;AL # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK 1D148;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE 1D149;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK 1D14A;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE 1D14B;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK 1D14C;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE 1D14D;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK 1D14E;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE 1D14F;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK 1D150;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE 1D151;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK 1D152;AL # MUSICAL SYMBOL MOON NOTEHEAD WHITE 1D153;AL # MUSICAL SYMBOL MOON NOTEHEAD BLACK 1D154;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE 1D155;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK 1D156;AL # MUSICAL SYMBOL PARENTHESIS NOTEHEAD 1D157;AL # MUSICAL SYMBOL VOID NOTEHEAD 1D158;AL # MUSICAL SYMBOL NOTEHEAD BLACK 1D159;AL # MUSICAL SYMBOL NULL NOTEHEAD 1D15A;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE 1D15B;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK 1D15C;AL # MUSICAL SYMBOL BREVE 1D15D;AL # MUSICAL SYMBOL WHOLE NOTE 1D15E;AL # MUSICAL SYMBOL HALF NOTE 1D15F;AL # MUSICAL SYMBOL QUARTER NOTE 1D160;AL # MUSICAL SYMBOL EIGHTH NOTE 1D161;AL # MUSICAL SYMBOL SIXTEENTH NOTE 1D162;AL # MUSICAL SYMBOL THIRTY-SECOND NOTE 1D163;AL # MUSICAL SYMBOL SIXTY-FOURTH NOTE 1D164;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE 1D165;CM # MUSICAL SYMBOL COMBINING STEM 1D166;CM # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM 1D167;CM # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;CM # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;CM # MUSICAL SYMBOL COMBINING TREMOLO-3 1D16A;AL # MUSICAL SYMBOL FINGERED TREMOLO-1 1D16B;AL # MUSICAL SYMBOL FINGERED TREMOLO-2 1D16C;AL # MUSICAL SYMBOL FINGERED TREMOLO-3 1D16D;CM # MUSICAL SYMBOL COMBINING AUGMENTATION DOT 1D16E;CM # MUSICAL SYMBOL COMBINING FLAG-1 1D16F;CM # MUSICAL SYMBOL COMBINING FLAG-2 1D170;CM # MUSICAL SYMBOL COMBINING FLAG-3 1D171;CM # MUSICAL SYMBOL COMBINING FLAG-4 1D172;CM # MUSICAL SYMBOL COMBINING FLAG-5 1D173;CM # MUSICAL SYMBOL BEGIN BEAM 1D174;CM # MUSICAL SYMBOL END BEAM 1D175;CM # MUSICAL SYMBOL BEGIN TIE 1D176;CM # MUSICAL SYMBOL END TIE 1D177;CM # MUSICAL SYMBOL BEGIN SLUR 1D178;CM # MUSICAL SYMBOL END SLUR 1D179;CM # MUSICAL SYMBOL BEGIN PHRASE 1D17A;CM # MUSICAL SYMBOL END PHRASE 1D17B;CM # MUSICAL SYMBOL COMBINING ACCENT 1D17C;CM # MUSICAL SYMBOL COMBINING STACCATO 1D17D;CM # MUSICAL SYMBOL COMBINING TENUTO 1D17E;CM # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;CM # MUSICAL SYMBOL COMBINING MARCATO 1D180;CM # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;CM # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;CM # MUSICAL SYMBOL COMBINING LOURE 1D183;AL # MUSICAL SYMBOL ARPEGGIATO UP 1D184;AL # MUSICAL SYMBOL ARPEGGIATO DOWN 1D185;CM # MUSICAL SYMBOL COMBINING DOIT 1D186;CM # MUSICAL SYMBOL COMBINING RIP 1D187;CM # MUSICAL SYMBOL COMBINING FLIP 1D188;CM # MUSICAL SYMBOL COMBINING SMEAR 1D189;CM # MUSICAL SYMBOL COMBINING BEND 1D18A;CM # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;CM # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D18C;AL # MUSICAL SYMBOL RINFORZANDO 1D18D;AL # MUSICAL SYMBOL SUBITO 1D18E;AL # MUSICAL SYMBOL Z 1D18F;AL # MUSICAL SYMBOL PIANO 1D190;AL # MUSICAL SYMBOL MEZZO 1D191;AL # MUSICAL SYMBOL FORTE 1D192;AL # MUSICAL SYMBOL CRESCENDO 1D193;AL # MUSICAL SYMBOL DECRESCENDO 1D194;AL # MUSICAL SYMBOL GRACE NOTE SLASH 1D195;AL # MUSICAL SYMBOL GRACE NOTE NO SLASH 1D196;AL # MUSICAL SYMBOL TR 1D197;AL # MUSICAL SYMBOL TURN 1D198;AL # MUSICAL SYMBOL INVERTED TURN 1D199;AL # MUSICAL SYMBOL TURN SLASH 1D19A;AL # MUSICAL SYMBOL TURN UP 1D19B;AL # MUSICAL SYMBOL ORNAMENT STROKE-1 1D19C;AL # MUSICAL SYMBOL ORNAMENT STROKE-2 1D19D;AL # MUSICAL SYMBOL ORNAMENT STROKE-3 1D19E;AL # MUSICAL SYMBOL ORNAMENT STROKE-4 1D19F;AL # MUSICAL SYMBOL ORNAMENT STROKE-5 1D1A0;AL # MUSICAL SYMBOL ORNAMENT STROKE-6 1D1A1;AL # MUSICAL SYMBOL ORNAMENT STROKE-7 1D1A2;AL # MUSICAL SYMBOL ORNAMENT STROKE-8 1D1A3;AL # MUSICAL SYMBOL ORNAMENT STROKE-9 1D1A4;AL # MUSICAL SYMBOL ORNAMENT STROKE-10 1D1A5;AL # MUSICAL SYMBOL ORNAMENT STROKE-11 1D1A6;AL # MUSICAL SYMBOL HAUPTSTIMME 1D1A7;AL # MUSICAL SYMBOL NEBENSTIMME 1D1A8;AL # MUSICAL SYMBOL END OF STIMME 1D1A9;AL # MUSICAL SYMBOL DEGREE SLASH 1D1AA;CM # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;CM # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;CM # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;CM # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D1AE;AL # MUSICAL SYMBOL PEDAL MARK 1D1AF;AL # MUSICAL SYMBOL PEDAL UP MARK 1D1B0;AL # MUSICAL SYMBOL HALF PEDAL MARK 1D1B1;AL # MUSICAL SYMBOL GLISSANDO UP 1D1B2;AL # MUSICAL SYMBOL GLISSANDO DOWN 1D1B3;AL # MUSICAL SYMBOL WITH FINGERNAILS 1D1B4;AL # MUSICAL SYMBOL DAMP 1D1B5;AL # MUSICAL SYMBOL DAMP ALL 1D1B6;AL # MUSICAL SYMBOL MAXIMA 1D1B7;AL # MUSICAL SYMBOL LONGA 1D1B8;AL # MUSICAL SYMBOL BREVIS 1D1B9;AL # MUSICAL SYMBOL SEMIBREVIS WHITE 1D1BA;AL # MUSICAL SYMBOL SEMIBREVIS BLACK 1D1BB;AL # MUSICAL SYMBOL MINIMA 1D1BC;AL # MUSICAL SYMBOL MINIMA BLACK 1D1BD;AL # MUSICAL SYMBOL SEMIMINIMA WHITE 1D1BE;AL # MUSICAL SYMBOL SEMIMINIMA BLACK 1D1BF;AL # MUSICAL SYMBOL FUSA WHITE 1D1C0;AL # MUSICAL SYMBOL FUSA BLACK 1D1C1;AL # MUSICAL SYMBOL LONGA PERFECTA REST 1D1C2;AL # MUSICAL SYMBOL LONGA IMPERFECTA REST 1D1C3;AL # MUSICAL SYMBOL BREVIS REST 1D1C4;AL # MUSICAL SYMBOL SEMIBREVIS REST 1D1C5;AL # MUSICAL SYMBOL MINIMA REST 1D1C6;AL # MUSICAL SYMBOL SEMIMINIMA REST 1D1C7;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA 1D1C8;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA 1D1C9;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1 1D1CA;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA 1D1CB;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA 1D1CC;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1 1D1CD;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2 1D1CE;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3 1D1CF;AL # MUSICAL SYMBOL CROIX 1D1D0;AL # MUSICAL SYMBOL GREGORIAN C CLEF 1D1D1;AL # MUSICAL SYMBOL GREGORIAN F CLEF 1D1D2;AL # MUSICAL SYMBOL SQUARE B 1D1D3;AL # MUSICAL SYMBOL VIRGA 1D1D4;AL # MUSICAL SYMBOL PODATUS 1D1D5;AL # MUSICAL SYMBOL CLIVIS 1D1D6;AL # MUSICAL SYMBOL SCANDICUS 1D1D7;AL # MUSICAL SYMBOL CLIMACUS 1D1D8;AL # MUSICAL SYMBOL TORCULUS 1D1D9;AL # MUSICAL SYMBOL PORRECTUS 1D1DA;AL # MUSICAL SYMBOL PORRECTUS FLEXUS 1D1DB;AL # MUSICAL SYMBOL SCANDICUS FLEXUS 1D1DC;AL # MUSICAL SYMBOL TORCULUS RESUPINUS 1D1DD;AL # MUSICAL SYMBOL PES SUBPUNCTIS 1D400;AL # MATHEMATICAL BOLD CAPITAL A 1D401;AL # MATHEMATICAL BOLD CAPITAL B 1D402;AL # MATHEMATICAL BOLD CAPITAL C 1D403;AL # MATHEMATICAL BOLD CAPITAL D 1D404;AL # MATHEMATICAL BOLD CAPITAL E 1D405;AL # MATHEMATICAL BOLD CAPITAL F 1D406;AL # MATHEMATICAL BOLD CAPITAL G 1D407;AL # MATHEMATICAL BOLD CAPITAL H 1D408;AL # MATHEMATICAL BOLD CAPITAL I 1D409;AL # MATHEMATICAL BOLD CAPITAL J 1D40A;AL # MATHEMATICAL BOLD CAPITAL K 1D40B;AL # MATHEMATICAL BOLD CAPITAL L 1D40C;AL # MATHEMATICAL BOLD CAPITAL M 1D40D;AL # MATHEMATICAL BOLD CAPITAL N 1D40E;AL # MATHEMATICAL BOLD CAPITAL O 1D40F;AL # MATHEMATICAL BOLD CAPITAL P 1D410;AL # MATHEMATICAL BOLD CAPITAL Q 1D411;AL # MATHEMATICAL BOLD CAPITAL R 1D412;AL # MATHEMATICAL BOLD CAPITAL S 1D413;AL # MATHEMATICAL BOLD CAPITAL T 1D414;AL # MATHEMATICAL BOLD CAPITAL U 1D415;AL # MATHEMATICAL BOLD CAPITAL V 1D416;AL # MATHEMATICAL BOLD CAPITAL W 1D417;AL # MATHEMATICAL BOLD CAPITAL X 1D418;AL # MATHEMATICAL BOLD CAPITAL Y 1D419;AL # MATHEMATICAL BOLD CAPITAL Z 1D41A;AL # MATHEMATICAL BOLD SMALL A 1D41B;AL # MATHEMATICAL BOLD SMALL B 1D41C;AL # MATHEMATICAL BOLD SMALL C 1D41D;AL # MATHEMATICAL BOLD SMALL D 1D41E;AL # MATHEMATICAL BOLD SMALL E 1D41F;AL # MATHEMATICAL BOLD SMALL F 1D420;AL # MATHEMATICAL BOLD SMALL G 1D421;AL # MATHEMATICAL BOLD SMALL H 1D422;AL # MATHEMATICAL BOLD SMALL I 1D423;AL # MATHEMATICAL BOLD SMALL J 1D424;AL # MATHEMATICAL BOLD SMALL K 1D425;AL # MATHEMATICAL BOLD SMALL L 1D426;AL # MATHEMATICAL BOLD SMALL M 1D427;AL # MATHEMATICAL BOLD SMALL N 1D428;AL # MATHEMATICAL BOLD SMALL O 1D429;AL # MATHEMATICAL BOLD SMALL P 1D42A;AL # MATHEMATICAL BOLD SMALL Q 1D42B;AL # MATHEMATICAL BOLD SMALL R 1D42C;AL # MATHEMATICAL BOLD SMALL S 1D42D;AL # MATHEMATICAL BOLD SMALL T 1D42E;AL # MATHEMATICAL BOLD SMALL U 1D42F;AL # MATHEMATICAL BOLD SMALL V 1D430;AL # MATHEMATICAL BOLD SMALL W 1D431;AL # MATHEMATICAL BOLD SMALL X 1D432;AL # MATHEMATICAL BOLD SMALL Y 1D433;AL # MATHEMATICAL BOLD SMALL Z 1D434;AL # MATHEMATICAL ITALIC CAPITAL A 1D435;AL # MATHEMATICAL ITALIC CAPITAL B 1D436;AL # MATHEMATICAL ITALIC CAPITAL C 1D437;AL # MATHEMATICAL ITALIC CAPITAL D 1D438;AL # MATHEMATICAL ITALIC CAPITAL E 1D439;AL # MATHEMATICAL ITALIC CAPITAL F 1D43A;AL # MATHEMATICAL ITALIC CAPITAL G 1D43B;AL # MATHEMATICAL ITALIC CAPITAL H 1D43C;AL # MATHEMATICAL ITALIC CAPITAL I 1D43D;AL # MATHEMATICAL ITALIC CAPITAL J 1D43E;AL # MATHEMATICAL ITALIC CAPITAL K 1D43F;AL # MATHEMATICAL ITALIC CAPITAL L 1D440;AL # MATHEMATICAL ITALIC CAPITAL M 1D441;AL # MATHEMATICAL ITALIC CAPITAL N 1D442;AL # MATHEMATICAL ITALIC CAPITAL O 1D443;AL # MATHEMATICAL ITALIC CAPITAL P 1D444;AL # MATHEMATICAL ITALIC CAPITAL Q 1D445;AL # MATHEMATICAL ITALIC CAPITAL R 1D446;AL # MATHEMATICAL ITALIC CAPITAL S 1D447;AL # MATHEMATICAL ITALIC CAPITAL T 1D448;AL # MATHEMATICAL ITALIC CAPITAL U 1D449;AL # MATHEMATICAL ITALIC CAPITAL V 1D44A;AL # MATHEMATICAL ITALIC CAPITAL W 1D44B;AL # MATHEMATICAL ITALIC CAPITAL X 1D44C;AL # MATHEMATICAL ITALIC CAPITAL Y 1D44D;AL # MATHEMATICAL ITALIC CAPITAL Z 1D44E;AL # MATHEMATICAL ITALIC SMALL A 1D44F;AL # MATHEMATICAL ITALIC SMALL B 1D450;AL # MATHEMATICAL ITALIC SMALL C 1D451;AL # MATHEMATICAL ITALIC SMALL D 1D452;AL # MATHEMATICAL ITALIC SMALL E 1D453;AL # MATHEMATICAL ITALIC SMALL F 1D454;AL # MATHEMATICAL ITALIC SMALL G 1D456;AL # MATHEMATICAL ITALIC SMALL I 1D457;AL # MATHEMATICAL ITALIC SMALL J 1D458;AL # MATHEMATICAL ITALIC SMALL K 1D459;AL # MATHEMATICAL ITALIC SMALL L 1D45A;AL # MATHEMATICAL ITALIC SMALL M 1D45B;AL # MATHEMATICAL ITALIC SMALL N 1D45C;AL # MATHEMATICAL ITALIC SMALL O 1D45D;AL # MATHEMATICAL ITALIC SMALL P 1D45E;AL # MATHEMATICAL ITALIC SMALL Q 1D45F;AL # MATHEMATICAL ITALIC SMALL R 1D460;AL # MATHEMATICAL ITALIC SMALL S 1D461;AL # MATHEMATICAL ITALIC SMALL T 1D462;AL # MATHEMATICAL ITALIC SMALL U 1D463;AL # MATHEMATICAL ITALIC SMALL V 1D464;AL # MATHEMATICAL ITALIC SMALL W 1D465;AL # MATHEMATICAL ITALIC SMALL X 1D466;AL # MATHEMATICAL ITALIC SMALL Y 1D467;AL # MATHEMATICAL ITALIC SMALL Z 1D468;AL # MATHEMATICAL BOLD ITALIC CAPITAL A 1D469;AL # MATHEMATICAL BOLD ITALIC CAPITAL B 1D46A;AL # MATHEMATICAL BOLD ITALIC CAPITAL C 1D46B;AL # MATHEMATICAL BOLD ITALIC CAPITAL D 1D46C;AL # MATHEMATICAL BOLD ITALIC CAPITAL E 1D46D;AL # MATHEMATICAL BOLD ITALIC CAPITAL F 1D46E;AL # MATHEMATICAL BOLD ITALIC CAPITAL G 1D46F;AL # MATHEMATICAL BOLD ITALIC CAPITAL H 1D470;AL # MATHEMATICAL BOLD ITALIC CAPITAL I 1D471;AL # MATHEMATICAL BOLD ITALIC CAPITAL J 1D472;AL # MATHEMATICAL BOLD ITALIC CAPITAL K 1D473;AL # MATHEMATICAL BOLD ITALIC CAPITAL L 1D474;AL # MATHEMATICAL BOLD ITALIC CAPITAL M 1D475;AL # MATHEMATICAL BOLD ITALIC CAPITAL N 1D476;AL # MATHEMATICAL BOLD ITALIC CAPITAL O 1D477;AL # MATHEMATICAL BOLD ITALIC CAPITAL P 1D478;AL # MATHEMATICAL BOLD ITALIC CAPITAL Q 1D479;AL # MATHEMATICAL BOLD ITALIC CAPITAL R 1D47A;AL # MATHEMATICAL BOLD ITALIC CAPITAL S 1D47B;AL # MATHEMATICAL BOLD ITALIC CAPITAL T 1D47C;AL # MATHEMATICAL BOLD ITALIC CAPITAL U 1D47D;AL # MATHEMATICAL BOLD ITALIC CAPITAL V 1D47E;AL # MATHEMATICAL BOLD ITALIC CAPITAL W 1D47F;AL # MATHEMATICAL BOLD ITALIC CAPITAL X 1D480;AL # MATHEMATICAL BOLD ITALIC CAPITAL Y 1D481;AL # MATHEMATICAL BOLD ITALIC CAPITAL Z 1D482;AL # MATHEMATICAL BOLD ITALIC SMALL A 1D483;AL # MATHEMATICAL BOLD ITALIC SMALL B 1D484;AL # MATHEMATICAL BOLD ITALIC SMALL C 1D485;AL # MATHEMATICAL BOLD ITALIC SMALL D 1D486;AL # MATHEMATICAL BOLD ITALIC SMALL E 1D487;AL # MATHEMATICAL BOLD ITALIC SMALL F 1D488;AL # MATHEMATICAL BOLD ITALIC SMALL G 1D489;AL # MATHEMATICAL BOLD ITALIC SMALL H 1D48A;AL # MATHEMATICAL BOLD ITALIC SMALL I 1D48B;AL # MATHEMATICAL BOLD ITALIC SMALL J 1D48C;AL # MATHEMATICAL BOLD ITALIC SMALL K 1D48D;AL # MATHEMATICAL BOLD ITALIC SMALL L 1D48E;AL # MATHEMATICAL BOLD ITALIC SMALL M 1D48F;AL # MATHEMATICAL BOLD ITALIC SMALL N 1D490;AL # MATHEMATICAL BOLD ITALIC SMALL O 1D491;AL # MATHEMATICAL BOLD ITALIC SMALL P 1D492;AL # MATHEMATICAL BOLD ITALIC SMALL Q 1D493;AL # MATHEMATICAL BOLD ITALIC SMALL R 1D494;AL # MATHEMATICAL BOLD ITALIC SMALL S 1D495;AL # MATHEMATICAL BOLD ITALIC SMALL T 1D496;AL # MATHEMATICAL BOLD ITALIC SMALL U 1D497;AL # MATHEMATICAL BOLD ITALIC SMALL V 1D498;AL # MATHEMATICAL BOLD ITALIC SMALL W 1D499;AL # MATHEMATICAL BOLD ITALIC SMALL X 1D49A;AL # MATHEMATICAL BOLD ITALIC SMALL Y 1D49B;AL # MATHEMATICAL BOLD ITALIC SMALL Z 1D49C;AL # MATHEMATICAL SCRIPT CAPITAL A 1D49E;AL # MATHEMATICAL SCRIPT CAPITAL C 1D49F;AL # MATHEMATICAL SCRIPT CAPITAL D 1D4A2;AL # MATHEMATICAL SCRIPT CAPITAL G 1D4A5;AL # MATHEMATICAL SCRIPT CAPITAL J 1D4A6;AL # MATHEMATICAL SCRIPT CAPITAL K 1D4A9;AL # MATHEMATICAL SCRIPT CAPITAL N 1D4AA;AL # MATHEMATICAL SCRIPT CAPITAL O 1D4AB;AL # MATHEMATICAL SCRIPT CAPITAL P 1D4AC;AL # MATHEMATICAL SCRIPT CAPITAL Q 1D4AE;AL # MATHEMATICAL SCRIPT CAPITAL S 1D4AF;AL # MATHEMATICAL SCRIPT CAPITAL T 1D4B0;AL # MATHEMATICAL SCRIPT CAPITAL U 1D4B1;AL # MATHEMATICAL SCRIPT CAPITAL V 1D4B2;AL # MATHEMATICAL SCRIPT CAPITAL W 1D4B3;AL # MATHEMATICAL SCRIPT CAPITAL X 1D4B4;AL # MATHEMATICAL SCRIPT CAPITAL Y 1D4B5;AL # MATHEMATICAL SCRIPT CAPITAL Z 1D4B6;AL # MATHEMATICAL SCRIPT SMALL A 1D4B7;AL # MATHEMATICAL SCRIPT SMALL B 1D4B8;AL # MATHEMATICAL SCRIPT SMALL C 1D4B9;AL # MATHEMATICAL SCRIPT SMALL D 1D4BB;AL # MATHEMATICAL SCRIPT SMALL F 1D4BD;AL # MATHEMATICAL SCRIPT SMALL H 1D4BE;AL # MATHEMATICAL SCRIPT SMALL I 1D4BF;AL # MATHEMATICAL SCRIPT SMALL J 1D4C0;AL # MATHEMATICAL SCRIPT SMALL K 1D4C2;AL # MATHEMATICAL SCRIPT SMALL M 1D4C3;AL # MATHEMATICAL SCRIPT SMALL N 1D4C5;AL # MATHEMATICAL SCRIPT SMALL P 1D4C6;AL # MATHEMATICAL SCRIPT SMALL Q 1D4C7;AL # MATHEMATICAL SCRIPT SMALL R 1D4C8;AL # MATHEMATICAL SCRIPT SMALL S 1D4C9;AL # MATHEMATICAL SCRIPT SMALL T 1D4CA;AL # MATHEMATICAL SCRIPT SMALL U 1D4CB;AL # MATHEMATICAL SCRIPT SMALL V 1D4CC;AL # MATHEMATICAL SCRIPT SMALL W 1D4CD;AL # MATHEMATICAL SCRIPT SMALL X 1D4CE;AL # MATHEMATICAL SCRIPT SMALL Y 1D4CF;AL # MATHEMATICAL SCRIPT SMALL Z 1D4D0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL A 1D4D1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL B 1D4D2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL C 1D4D3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL D 1D4D4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL E 1D4D5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL F 1D4D6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL G 1D4D7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL H 1D4D8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL I 1D4D9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL J 1D4DA;AL # MATHEMATICAL BOLD SCRIPT CAPITAL K 1D4DB;AL # MATHEMATICAL BOLD SCRIPT CAPITAL L 1D4DC;AL # MATHEMATICAL BOLD SCRIPT CAPITAL M 1D4DD;AL # MATHEMATICAL BOLD SCRIPT CAPITAL N 1D4DE;AL # MATHEMATICAL BOLD SCRIPT CAPITAL O 1D4DF;AL # MATHEMATICAL BOLD SCRIPT CAPITAL P 1D4E0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Q 1D4E1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL R 1D4E2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL S 1D4E3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL T 1D4E4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL U 1D4E5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL V 1D4E6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL W 1D4E7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL X 1D4E8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Y 1D4E9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Z 1D4EA;AL # MATHEMATICAL BOLD SCRIPT SMALL A 1D4EB;AL # MATHEMATICAL BOLD SCRIPT SMALL B 1D4EC;AL # MATHEMATICAL BOLD SCRIPT SMALL C 1D4ED;AL # MATHEMATICAL BOLD SCRIPT SMALL D 1D4EE;AL # MATHEMATICAL BOLD SCRIPT SMALL E 1D4EF;AL # MATHEMATICAL BOLD SCRIPT SMALL F 1D4F0;AL # MATHEMATICAL BOLD SCRIPT SMALL G 1D4F1;AL # MATHEMATICAL BOLD SCRIPT SMALL H 1D4F2;AL # MATHEMATICAL BOLD SCRIPT SMALL I 1D4F3;AL # MATHEMATICAL BOLD SCRIPT SMALL J 1D4F4;AL # MATHEMATICAL BOLD SCRIPT SMALL K 1D4F5;AL # MATHEMATICAL BOLD SCRIPT SMALL L 1D4F6;AL # MATHEMATICAL BOLD SCRIPT SMALL M 1D4F7;AL # MATHEMATICAL BOLD SCRIPT SMALL N 1D4F8;AL # MATHEMATICAL BOLD SCRIPT SMALL O 1D4F9;AL # MATHEMATICAL BOLD SCRIPT SMALL P 1D4FA;AL # MATHEMATICAL BOLD SCRIPT SMALL Q 1D4FB;AL # MATHEMATICAL BOLD SCRIPT SMALL R 1D4FC;AL # MATHEMATICAL BOLD SCRIPT SMALL S 1D4FD;AL # MATHEMATICAL BOLD SCRIPT SMALL T 1D4FE;AL # MATHEMATICAL BOLD SCRIPT SMALL U 1D4FF;AL # MATHEMATICAL BOLD SCRIPT SMALL V 1D500;AL # MATHEMATICAL BOLD SCRIPT SMALL W 1D501;AL # MATHEMATICAL BOLD SCRIPT SMALL X 1D502;AL # MATHEMATICAL BOLD SCRIPT SMALL Y 1D503;AL # MATHEMATICAL BOLD SCRIPT SMALL Z 1D504;AL # MATHEMATICAL FRAKTUR CAPITAL A 1D505;AL # MATHEMATICAL FRAKTUR CAPITAL B 1D507;AL # MATHEMATICAL FRAKTUR CAPITAL D 1D508;AL # MATHEMATICAL FRAKTUR CAPITAL E 1D509;AL # MATHEMATICAL FRAKTUR CAPITAL F 1D50A;AL # MATHEMATICAL FRAKTUR CAPITAL G 1D50D;AL # MATHEMATICAL FRAKTUR CAPITAL J 1D50E;AL # MATHEMATICAL FRAKTUR CAPITAL K 1D50F;AL # MATHEMATICAL FRAKTUR CAPITAL L 1D510;AL # MATHEMATICAL FRAKTUR CAPITAL M 1D511;AL # MATHEMATICAL FRAKTUR CAPITAL N 1D512;AL # MATHEMATICAL FRAKTUR CAPITAL O 1D513;AL # MATHEMATICAL FRAKTUR CAPITAL P 1D514;AL # MATHEMATICAL FRAKTUR CAPITAL Q 1D516;AL # MATHEMATICAL FRAKTUR CAPITAL S 1D517;AL # MATHEMATICAL FRAKTUR CAPITAL T 1D518;AL # MATHEMATICAL FRAKTUR CAPITAL U 1D519;AL # MATHEMATICAL FRAKTUR CAPITAL V 1D51A;AL # MATHEMATICAL FRAKTUR CAPITAL W 1D51B;AL # MATHEMATICAL FRAKTUR CAPITAL X 1D51C;AL # MATHEMATICAL FRAKTUR CAPITAL Y 1D51E;AL # MATHEMATICAL FRAKTUR SMALL A 1D51F;AL # MATHEMATICAL FRAKTUR SMALL B 1D520;AL # MATHEMATICAL FRAKTUR SMALL C 1D521;AL # MATHEMATICAL FRAKTUR SMALL D 1D522;AL # MATHEMATICAL FRAKTUR SMALL E 1D523;AL # MATHEMATICAL FRAKTUR SMALL F 1D524;AL # MATHEMATICAL FRAKTUR SMALL G 1D525;AL # MATHEMATICAL FRAKTUR SMALL H 1D526;AL # MATHEMATICAL FRAKTUR SMALL I 1D527;AL # MATHEMATICAL FRAKTUR SMALL J 1D528;AL # MATHEMATICAL FRAKTUR SMALL K 1D529;AL # MATHEMATICAL FRAKTUR SMALL L 1D52A;AL # MATHEMATICAL FRAKTUR SMALL M 1D52B;AL # MATHEMATICAL FRAKTUR SMALL N 1D52C;AL # MATHEMATICAL FRAKTUR SMALL O 1D52D;AL # MATHEMATICAL FRAKTUR SMALL P 1D52E;AL # MATHEMATICAL FRAKTUR SMALL Q 1D52F;AL # MATHEMATICAL FRAKTUR SMALL R 1D530;AL # MATHEMATICAL FRAKTUR SMALL S 1D531;AL # MATHEMATICAL FRAKTUR SMALL T 1D532;AL # MATHEMATICAL FRAKTUR SMALL U 1D533;AL # MATHEMATICAL FRAKTUR SMALL V 1D534;AL # MATHEMATICAL FRAKTUR SMALL W 1D535;AL # MATHEMATICAL FRAKTUR SMALL X 1D536;AL # MATHEMATICAL FRAKTUR SMALL Y 1D537;AL # MATHEMATICAL FRAKTUR SMALL Z 1D538;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL A 1D539;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL B 1D53B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL D 1D53C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL E 1D53D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL F 1D53E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL G 1D540;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL I 1D541;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL J 1D542;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL K 1D543;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL L 1D544;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL M 1D546;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL O 1D54A;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL S 1D54B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL T 1D54C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL U 1D54D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL V 1D54E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL W 1D54F;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL X 1D550;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y 1D552;AL # MATHEMATICAL DOUBLE-STRUCK SMALL A 1D553;AL # MATHEMATICAL DOUBLE-STRUCK SMALL B 1D554;AL # MATHEMATICAL DOUBLE-STRUCK SMALL C 1D555;AL # MATHEMATICAL DOUBLE-STRUCK SMALL D 1D556;AL # MATHEMATICAL DOUBLE-STRUCK SMALL E 1D557;AL # MATHEMATICAL DOUBLE-STRUCK SMALL F 1D558;AL # MATHEMATICAL DOUBLE-STRUCK SMALL G 1D559;AL # MATHEMATICAL DOUBLE-STRUCK SMALL H 1D55A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL I 1D55B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL J 1D55C;AL # MATHEMATICAL DOUBLE-STRUCK SMALL K 1D55D;AL # MATHEMATICAL DOUBLE-STRUCK SMALL L 1D55E;AL # MATHEMATICAL DOUBLE-STRUCK SMALL M 1D55F;AL # MATHEMATICAL DOUBLE-STRUCK SMALL N 1D560;AL # MATHEMATICAL DOUBLE-STRUCK SMALL O 1D561;AL # MATHEMATICAL DOUBLE-STRUCK SMALL P 1D562;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Q 1D563;AL # MATHEMATICAL DOUBLE-STRUCK SMALL R 1D564;AL # MATHEMATICAL DOUBLE-STRUCK SMALL S 1D565;AL # MATHEMATICAL DOUBLE-STRUCK SMALL T 1D566;AL # MATHEMATICAL DOUBLE-STRUCK SMALL U 1D567;AL # MATHEMATICAL DOUBLE-STRUCK SMALL V 1D568;AL # MATHEMATICAL DOUBLE-STRUCK SMALL W 1D569;AL # MATHEMATICAL DOUBLE-STRUCK SMALL X 1D56A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Y 1D56B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Z 1D56C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL A 1D56D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL B 1D56E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL C 1D56F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL D 1D570;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL E 1D571;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL F 1D572;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL G 1D573;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL H 1D574;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL I 1D575;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL J 1D576;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL K 1D577;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL L 1D578;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL M 1D579;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL N 1D57A;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL O 1D57B;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL P 1D57C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Q 1D57D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL R 1D57E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL S 1D57F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL T 1D580;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL U 1D581;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL V 1D582;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL W 1D583;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL X 1D584;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Y 1D585;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Z 1D586;AL # MATHEMATICAL BOLD FRAKTUR SMALL A 1D587;AL # MATHEMATICAL BOLD FRAKTUR SMALL B 1D588;AL # MATHEMATICAL BOLD FRAKTUR SMALL C 1D589;AL # MATHEMATICAL BOLD FRAKTUR SMALL D 1D58A;AL # MATHEMATICAL BOLD FRAKTUR SMALL E 1D58B;AL # MATHEMATICAL BOLD FRAKTUR SMALL F 1D58C;AL # MATHEMATICAL BOLD FRAKTUR SMALL G 1D58D;AL # MATHEMATICAL BOLD FRAKTUR SMALL H 1D58E;AL # MATHEMATICAL BOLD FRAKTUR SMALL I 1D58F;AL # MATHEMATICAL BOLD FRAKTUR SMALL J 1D590;AL # MATHEMATICAL BOLD FRAKTUR SMALL K 1D591;AL # MATHEMATICAL BOLD FRAKTUR SMALL L 1D592;AL # MATHEMATICAL BOLD FRAKTUR SMALL M 1D593;AL # MATHEMATICAL BOLD FRAKTUR SMALL N 1D594;AL # MATHEMATICAL BOLD FRAKTUR SMALL O 1D595;AL # MATHEMATICAL BOLD FRAKTUR SMALL P 1D596;AL # MATHEMATICAL BOLD FRAKTUR SMALL Q 1D597;AL # MATHEMATICAL BOLD FRAKTUR SMALL R 1D598;AL # MATHEMATICAL BOLD FRAKTUR SMALL S 1D599;AL # MATHEMATICAL BOLD FRAKTUR SMALL T 1D59A;AL # MATHEMATICAL BOLD FRAKTUR SMALL U 1D59B;AL # MATHEMATICAL BOLD FRAKTUR SMALL V 1D59C;AL # MATHEMATICAL BOLD FRAKTUR SMALL W 1D59D;AL # MATHEMATICAL BOLD FRAKTUR SMALL X 1D59E;AL # MATHEMATICAL BOLD FRAKTUR SMALL Y 1D59F;AL # MATHEMATICAL BOLD FRAKTUR SMALL Z 1D5A0;AL # MATHEMATICAL SANS-SERIF CAPITAL A 1D5A1;AL # MATHEMATICAL SANS-SERIF CAPITAL B 1D5A2;AL # MATHEMATICAL SANS-SERIF CAPITAL C 1D5A3;AL # MATHEMATICAL SANS-SERIF CAPITAL D 1D5A4;AL # MATHEMATICAL SANS-SERIF CAPITAL E 1D5A5;AL # MATHEMATICAL SANS-SERIF CAPITAL F 1D5A6;AL # MATHEMATICAL SANS-SERIF CAPITAL G 1D5A7;AL # MATHEMATICAL SANS-SERIF CAPITAL H 1D5A8;AL # MATHEMATICAL SANS-SERIF CAPITAL I 1D5A9;AL # MATHEMATICAL SANS-SERIF CAPITAL J 1D5AA;AL # MATHEMATICAL SANS-SERIF CAPITAL K 1D5AB;AL # MATHEMATICAL SANS-SERIF CAPITAL L 1D5AC;AL # MATHEMATICAL SANS-SERIF CAPITAL M 1D5AD;AL # MATHEMATICAL SANS-SERIF CAPITAL N 1D5AE;AL # MATHEMATICAL SANS-SERIF CAPITAL O 1D5AF;AL # MATHEMATICAL SANS-SERIF CAPITAL P 1D5B0;AL # MATHEMATICAL SANS-SERIF CAPITAL Q 1D5B1;AL # MATHEMATICAL SANS-SERIF CAPITAL R 1D5B2;AL # MATHEMATICAL SANS-SERIF CAPITAL S 1D5B3;AL # MATHEMATICAL SANS-SERIF CAPITAL T 1D5B4;AL # MATHEMATICAL SANS-SERIF CAPITAL U 1D5B5;AL # MATHEMATICAL SANS-SERIF CAPITAL V 1D5B6;AL # MATHEMATICAL SANS-SERIF CAPITAL W 1D5B7;AL # MATHEMATICAL SANS-SERIF CAPITAL X 1D5B8;AL # MATHEMATICAL SANS-SERIF CAPITAL Y 1D5B9;AL # MATHEMATICAL SANS-SERIF CAPITAL Z 1D5BA;AL # MATHEMATICAL SANS-SERIF SMALL A 1D5BB;AL # MATHEMATICAL SANS-SERIF SMALL B 1D5BC;AL # MATHEMATICAL SANS-SERIF SMALL C 1D5BD;AL # MATHEMATICAL SANS-SERIF SMALL D 1D5BE;AL # MATHEMATICAL SANS-SERIF SMALL E 1D5BF;AL # MATHEMATICAL SANS-SERIF SMALL F 1D5C0;AL # MATHEMATICAL SANS-SERIF SMALL G 1D5C1;AL # MATHEMATICAL SANS-SERIF SMALL H 1D5C2;AL # MATHEMATICAL SANS-SERIF SMALL I 1D5C3;AL # MATHEMATICAL SANS-SERIF SMALL J 1D5C4;AL # MATHEMATICAL SANS-SERIF SMALL K 1D5C5;AL # MATHEMATICAL SANS-SERIF SMALL L 1D5C6;AL # MATHEMATICAL SANS-SERIF SMALL M 1D5C7;AL # MATHEMATICAL SANS-SERIF SMALL N 1D5C8;AL # MATHEMATICAL SANS-SERIF SMALL O 1D5C9;AL # MATHEMATICAL SANS-SERIF SMALL P 1D5CA;AL # MATHEMATICAL SANS-SERIF SMALL Q 1D5CB;AL # MATHEMATICAL SANS-SERIF SMALL R 1D5CC;AL # MATHEMATICAL SANS-SERIF SMALL S 1D5CD;AL # MATHEMATICAL SANS-SERIF SMALL T 1D5CE;AL # MATHEMATICAL SANS-SERIF SMALL U 1D5CF;AL # MATHEMATICAL SANS-SERIF SMALL V 1D5D0;AL # MATHEMATICAL SANS-SERIF SMALL W 1D5D1;AL # MATHEMATICAL SANS-SERIF SMALL X 1D5D2;AL # MATHEMATICAL SANS-SERIF SMALL Y 1D5D3;AL # MATHEMATICAL SANS-SERIF SMALL Z 1D5D4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL A 1D5D5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL B 1D5D6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL C 1D5D7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL D 1D5D8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL E 1D5D9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL F 1D5DA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL G 1D5DB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL H 1D5DC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL I 1D5DD;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL J 1D5DE;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL K 1D5DF;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL L 1D5E0;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL M 1D5E1;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL N 1D5E2;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL O 1D5E3;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL P 1D5E4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q 1D5E5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL R 1D5E6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL S 1D5E7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL T 1D5E8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL U 1D5E9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL V 1D5EA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL W 1D5EB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL X 1D5EC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y 1D5ED;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z 1D5EE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL A 1D5EF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL B 1D5F0;AL # MATHEMATICAL SANS-SERIF BOLD SMALL C 1D5F1;AL # MATHEMATICAL SANS-SERIF BOLD SMALL D 1D5F2;AL # MATHEMATICAL SANS-SERIF BOLD SMALL E 1D5F3;AL # MATHEMATICAL SANS-SERIF BOLD SMALL F 1D5F4;AL # MATHEMATICAL SANS-SERIF BOLD SMALL G 1D5F5;AL # MATHEMATICAL SANS-SERIF BOLD SMALL H 1D5F6;AL # MATHEMATICAL SANS-SERIF BOLD SMALL I 1D5F7;AL # MATHEMATICAL SANS-SERIF BOLD SMALL J 1D5F8;AL # MATHEMATICAL SANS-SERIF BOLD SMALL K 1D5F9;AL # MATHEMATICAL SANS-SERIF BOLD SMALL L 1D5FA;AL # MATHEMATICAL SANS-SERIF BOLD SMALL M 1D5FB;AL # MATHEMATICAL SANS-SERIF BOLD SMALL N 1D5FC;AL # MATHEMATICAL SANS-SERIF BOLD SMALL O 1D5FD;AL # MATHEMATICAL SANS-SERIF BOLD SMALL P 1D5FE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Q 1D5FF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL R 1D600;AL # MATHEMATICAL SANS-SERIF BOLD SMALL S 1D601;AL # MATHEMATICAL SANS-SERIF BOLD SMALL T 1D602;AL # MATHEMATICAL SANS-SERIF BOLD SMALL U 1D603;AL # MATHEMATICAL SANS-SERIF BOLD SMALL V 1D604;AL # MATHEMATICAL SANS-SERIF BOLD SMALL W 1D605;AL # MATHEMATICAL SANS-SERIF BOLD SMALL X 1D606;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Y 1D607;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Z 1D608;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A 1D609;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B 1D60A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C 1D60B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D 1D60C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E 1D60D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F 1D60E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G 1D60F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H 1D610;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I 1D611;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J 1D612;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K 1D613;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L 1D614;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M 1D615;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N 1D616;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O 1D617;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P 1D618;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q 1D619;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R 1D61A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S 1D61B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T 1D61C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U 1D61D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V 1D61E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W 1D61F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X 1D620;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y 1D621;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z 1D622;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL A 1D623;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL B 1D624;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL C 1D625;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL D 1D626;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL E 1D627;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL F 1D628;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL G 1D629;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL H 1D62A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL I 1D62B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL J 1D62C;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL K 1D62D;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL L 1D62E;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL M 1D62F;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL N 1D630;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL O 1D631;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL P 1D632;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Q 1D633;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL R 1D634;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL S 1D635;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL T 1D636;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL U 1D637;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL V 1D638;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL W 1D639;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL X 1D63A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Y 1D63B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Z 1D63C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A 1D63D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B 1D63E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C 1D63F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D 1D640;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E 1D641;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F 1D642;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G 1D643;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H 1D644;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I 1D645;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J 1D646;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K 1D647;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L 1D648;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M 1D649;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N 1D64A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O 1D64B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P 1D64C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q 1D64D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R 1D64E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S 1D64F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T 1D650;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U 1D651;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V 1D652;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W 1D653;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X 1D654;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y 1D655;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z 1D656;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A 1D657;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B 1D658;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C 1D659;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D 1D65A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E 1D65B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F 1D65C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G 1D65D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H 1D65E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I 1D65F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J 1D660;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K 1D661;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L 1D662;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M 1D663;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N 1D664;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O 1D665;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P 1D666;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q 1D667;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R 1D668;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S 1D669;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T 1D66A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U 1D66B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V 1D66C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W 1D66D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X 1D66E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y 1D66F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z 1D670;AL # MATHEMATICAL MONOSPACE CAPITAL A 1D671;AL # MATHEMATICAL MONOSPACE CAPITAL B 1D672;AL # MATHEMATICAL MONOSPACE CAPITAL C 1D673;AL # MATHEMATICAL MONOSPACE CAPITAL D 1D674;AL # MATHEMATICAL MONOSPACE CAPITAL E 1D675;AL # MATHEMATICAL MONOSPACE CAPITAL F 1D676;AL # MATHEMATICAL MONOSPACE CAPITAL G 1D677;AL # MATHEMATICAL MONOSPACE CAPITAL H 1D678;AL # MATHEMATICAL MONOSPACE CAPITAL I 1D679;AL # MATHEMATICAL MONOSPACE CAPITAL J 1D67A;AL # MATHEMATICAL MONOSPACE CAPITAL K 1D67B;AL # MATHEMATICAL MONOSPACE CAPITAL L 1D67C;AL # MATHEMATICAL MONOSPACE CAPITAL M 1D67D;AL # MATHEMATICAL MONOSPACE CAPITAL N 1D67E;AL # MATHEMATICAL MONOSPACE CAPITAL O 1D67F;AL # MATHEMATICAL MONOSPACE CAPITAL P 1D680;AL # MATHEMATICAL MONOSPACE CAPITAL Q 1D681;AL # MATHEMATICAL MONOSPACE CAPITAL R 1D682;AL # MATHEMATICAL MONOSPACE CAPITAL S 1D683;AL # MATHEMATICAL MONOSPACE CAPITAL T 1D684;AL # MATHEMATICAL MONOSPACE CAPITAL U 1D685;AL # MATHEMATICAL MONOSPACE CAPITAL V 1D686;AL # MATHEMATICAL MONOSPACE CAPITAL W 1D687;AL # MATHEMATICAL MONOSPACE CAPITAL X 1D688;AL # MATHEMATICAL MONOSPACE CAPITAL Y 1D689;AL # MATHEMATICAL MONOSPACE CAPITAL Z 1D68A;AL # MATHEMATICAL MONOSPACE SMALL A 1D68B;AL # MATHEMATICAL MONOSPACE SMALL B 1D68C;AL # MATHEMATICAL MONOSPACE SMALL C 1D68D;AL # MATHEMATICAL MONOSPACE SMALL D 1D68E;AL # MATHEMATICAL MONOSPACE SMALL E 1D68F;AL # MATHEMATICAL MONOSPACE SMALL F 1D690;AL # MATHEMATICAL MONOSPACE SMALL G 1D691;AL # MATHEMATICAL MONOSPACE SMALL H 1D692;AL # MATHEMATICAL MONOSPACE SMALL I 1D693;AL # MATHEMATICAL MONOSPACE SMALL J 1D694;AL # MATHEMATICAL MONOSPACE SMALL K 1D695;AL # MATHEMATICAL MONOSPACE SMALL L 1D696;AL # MATHEMATICAL MONOSPACE SMALL M 1D697;AL # MATHEMATICAL MONOSPACE SMALL N 1D698;AL # MATHEMATICAL MONOSPACE SMALL O 1D699;AL # MATHEMATICAL MONOSPACE SMALL P 1D69A;AL # MATHEMATICAL MONOSPACE SMALL Q 1D69B;AL # MATHEMATICAL MONOSPACE SMALL R 1D69C;AL # MATHEMATICAL MONOSPACE SMALL S 1D69D;AL # MATHEMATICAL MONOSPACE SMALL T 1D69E;AL # MATHEMATICAL MONOSPACE SMALL U 1D69F;AL # MATHEMATICAL MONOSPACE SMALL V 1D6A0;AL # MATHEMATICAL MONOSPACE SMALL W 1D6A1;AL # MATHEMATICAL MONOSPACE SMALL X 1D6A2;AL # MATHEMATICAL MONOSPACE SMALL Y 1D6A3;AL # MATHEMATICAL MONOSPACE SMALL Z 1D6A8;AL # MATHEMATICAL BOLD CAPITAL ALPHA 1D6A9;AL # MATHEMATICAL BOLD CAPITAL BETA 1D6AA;AL # MATHEMATICAL BOLD CAPITAL GAMMA 1D6AB;AL # MATHEMATICAL BOLD CAPITAL DELTA 1D6AC;AL # MATHEMATICAL BOLD CAPITAL EPSILON 1D6AD;AL # MATHEMATICAL BOLD CAPITAL ZETA 1D6AE;AL # MATHEMATICAL BOLD CAPITAL ETA 1D6AF;AL # MATHEMATICAL BOLD CAPITAL THETA 1D6B0;AL # MATHEMATICAL BOLD CAPITAL IOTA 1D6B1;AL # MATHEMATICAL BOLD CAPITAL KAPPA 1D6B2;AL # MATHEMATICAL BOLD CAPITAL LAMDA 1D6B3;AL # MATHEMATICAL BOLD CAPITAL MU 1D6B4;AL # MATHEMATICAL BOLD CAPITAL NU 1D6B5;AL # MATHEMATICAL BOLD CAPITAL XI 1D6B6;AL # MATHEMATICAL BOLD CAPITAL OMICRON 1D6B7;AL # MATHEMATICAL BOLD CAPITAL PI 1D6B8;AL # MATHEMATICAL BOLD CAPITAL RHO 1D6B9;AL # MATHEMATICAL BOLD CAPITAL THETA SYMBOL 1D6BA;AL # MATHEMATICAL BOLD CAPITAL SIGMA 1D6BB;AL # MATHEMATICAL BOLD CAPITAL TAU 1D6BC;AL # MATHEMATICAL BOLD CAPITAL UPSILON 1D6BD;AL # MATHEMATICAL BOLD CAPITAL PHI 1D6BE;AL # MATHEMATICAL BOLD CAPITAL CHI 1D6BF;AL # MATHEMATICAL BOLD CAPITAL PSI 1D6C0;AL # MATHEMATICAL BOLD CAPITAL OMEGA 1D6C1;AL # MATHEMATICAL BOLD NABLA 1D6C2;AL # MATHEMATICAL BOLD SMALL ALPHA 1D6C3;AL # MATHEMATICAL BOLD SMALL BETA 1D6C4;AL # MATHEMATICAL BOLD SMALL GAMMA 1D6C5;AL # MATHEMATICAL BOLD SMALL DELTA 1D6C6;AL # MATHEMATICAL BOLD SMALL EPSILON 1D6C7;AL # MATHEMATICAL BOLD SMALL ZETA 1D6C8;AL # MATHEMATICAL BOLD SMALL ETA 1D6C9;AL # MATHEMATICAL BOLD SMALL THETA 1D6CA;AL # MATHEMATICAL BOLD SMALL IOTA 1D6CB;AL # MATHEMATICAL BOLD SMALL KAPPA 1D6CC;AL # MATHEMATICAL BOLD SMALL LAMDA 1D6CD;AL # MATHEMATICAL BOLD SMALL MU 1D6CE;AL # MATHEMATICAL BOLD SMALL NU 1D6CF;AL # MATHEMATICAL BOLD SMALL XI 1D6D0;AL # MATHEMATICAL BOLD SMALL OMICRON 1D6D1;AL # MATHEMATICAL BOLD SMALL PI 1D6D2;AL # MATHEMATICAL BOLD SMALL RHO 1D6D3;AL # MATHEMATICAL BOLD SMALL FINAL SIGMA 1D6D4;AL # MATHEMATICAL BOLD SMALL SIGMA 1D6D5;AL # MATHEMATICAL BOLD SMALL TAU 1D6D6;AL # MATHEMATICAL BOLD SMALL UPSILON 1D6D7;AL # MATHEMATICAL BOLD SMALL PHI 1D6D8;AL # MATHEMATICAL BOLD SMALL CHI 1D6D9;AL # MATHEMATICAL BOLD SMALL PSI 1D6DA;AL # MATHEMATICAL BOLD SMALL OMEGA 1D6DB;AL # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL 1D6DC;AL # MATHEMATICAL BOLD EPSILON SYMBOL 1D6DD;AL # MATHEMATICAL BOLD THETA SYMBOL 1D6DE;AL # MATHEMATICAL BOLD KAPPA SYMBOL 1D6DF;AL # MATHEMATICAL BOLD PHI SYMBOL 1D6E0;AL # MATHEMATICAL BOLD RHO SYMBOL 1D6E1;AL # MATHEMATICAL BOLD PI SYMBOL 1D6E2;AL # MATHEMATICAL ITALIC CAPITAL ALPHA 1D6E3;AL # MATHEMATICAL ITALIC CAPITAL BETA 1D6E4;AL # MATHEMATICAL ITALIC CAPITAL GAMMA 1D6E5;AL # MATHEMATICAL ITALIC CAPITAL DELTA 1D6E6;AL # MATHEMATICAL ITALIC CAPITAL EPSILON 1D6E7;AL # MATHEMATICAL ITALIC CAPITAL ZETA 1D6E8;AL # MATHEMATICAL ITALIC CAPITAL ETA 1D6E9;AL # MATHEMATICAL ITALIC CAPITAL THETA 1D6EA;AL # MATHEMATICAL ITALIC CAPITAL IOTA 1D6EB;AL # MATHEMATICAL ITALIC CAPITAL KAPPA 1D6EC;AL # MATHEMATICAL ITALIC CAPITAL LAMDA 1D6ED;AL # MATHEMATICAL ITALIC CAPITAL MU 1D6EE;AL # MATHEMATICAL ITALIC CAPITAL NU 1D6EF;AL # MATHEMATICAL ITALIC CAPITAL XI 1D6F0;AL # MATHEMATICAL ITALIC CAPITAL OMICRON 1D6F1;AL # MATHEMATICAL ITALIC CAPITAL PI 1D6F2;AL # MATHEMATICAL ITALIC CAPITAL RHO 1D6F3;AL # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL 1D6F4;AL # MATHEMATICAL ITALIC CAPITAL SIGMA 1D6F5;AL # MATHEMATICAL ITALIC CAPITAL TAU 1D6F6;AL # MATHEMATICAL ITALIC CAPITAL UPSILON 1D6F7;AL # MATHEMATICAL ITALIC CAPITAL PHI 1D6F8;AL # MATHEMATICAL ITALIC CAPITAL CHI 1D6F9;AL # MATHEMATICAL ITALIC CAPITAL PSI 1D6FA;AL # MATHEMATICAL ITALIC CAPITAL OMEGA 1D6FB;AL # MATHEMATICAL ITALIC NABLA 1D6FC;AL # MATHEMATICAL ITALIC SMALL ALPHA 1D6FD;AL # MATHEMATICAL ITALIC SMALL BETA 1D6FE;AL # MATHEMATICAL ITALIC SMALL GAMMA 1D6FF;AL # MATHEMATICAL ITALIC SMALL DELTA 1D700;AL # MATHEMATICAL ITALIC SMALL EPSILON 1D701;AL # MATHEMATICAL ITALIC SMALL ZETA 1D702;AL # MATHEMATICAL ITALIC SMALL ETA 1D703;AL # MATHEMATICAL ITALIC SMALL THETA 1D704;AL # MATHEMATICAL ITALIC SMALL IOTA 1D705;AL # MATHEMATICAL ITALIC SMALL KAPPA 1D706;AL # MATHEMATICAL ITALIC SMALL LAMDA 1D707;AL # MATHEMATICAL ITALIC SMALL MU 1D708;AL # MATHEMATICAL ITALIC SMALL NU 1D709;AL # MATHEMATICAL ITALIC SMALL XI 1D70A;AL # MATHEMATICAL ITALIC SMALL OMICRON 1D70B;AL # MATHEMATICAL ITALIC SMALL PI 1D70C;AL # MATHEMATICAL ITALIC SMALL RHO 1D70D;AL # MATHEMATICAL ITALIC SMALL FINAL SIGMA 1D70E;AL # MATHEMATICAL ITALIC SMALL SIGMA 1D70F;AL # MATHEMATICAL ITALIC SMALL TAU 1D710;AL # MATHEMATICAL ITALIC SMALL UPSILON 1D711;AL # MATHEMATICAL ITALIC SMALL PHI 1D712;AL # MATHEMATICAL ITALIC SMALL CHI 1D713;AL # MATHEMATICAL ITALIC SMALL PSI 1D714;AL # MATHEMATICAL ITALIC SMALL OMEGA 1D715;AL # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL 1D716;AL # MATHEMATICAL ITALIC EPSILON SYMBOL 1D717;AL # MATHEMATICAL ITALIC THETA SYMBOL 1D718;AL # MATHEMATICAL ITALIC KAPPA SYMBOL 1D719;AL # MATHEMATICAL ITALIC PHI SYMBOL 1D71A;AL # MATHEMATICAL ITALIC RHO SYMBOL 1D71B;AL # MATHEMATICAL ITALIC PI SYMBOL 1D71C;AL # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA 1D71D;AL # MATHEMATICAL BOLD ITALIC CAPITAL BETA 1D71E;AL # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA 1D71F;AL # MATHEMATICAL BOLD ITALIC CAPITAL DELTA 1D720;AL # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON 1D721;AL # MATHEMATICAL BOLD ITALIC CAPITAL ZETA 1D722;AL # MATHEMATICAL BOLD ITALIC CAPITAL ETA 1D723;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA 1D724;AL # MATHEMATICAL BOLD ITALIC CAPITAL IOTA 1D725;AL # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA 1D726;AL # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA 1D727;AL # MATHEMATICAL BOLD ITALIC CAPITAL MU 1D728;AL # MATHEMATICAL BOLD ITALIC CAPITAL NU 1D729;AL # MATHEMATICAL BOLD ITALIC CAPITAL XI 1D72A;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON 1D72B;AL # MATHEMATICAL BOLD ITALIC CAPITAL PI 1D72C;AL # MATHEMATICAL BOLD ITALIC CAPITAL RHO 1D72D;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL 1D72E;AL # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA 1D72F;AL # MATHEMATICAL BOLD ITALIC CAPITAL TAU 1D730;AL # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON 1D731;AL # MATHEMATICAL BOLD ITALIC CAPITAL PHI 1D732;AL # MATHEMATICAL BOLD ITALIC CAPITAL CHI 1D733;AL # MATHEMATICAL BOLD ITALIC CAPITAL PSI 1D734;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA 1D735;AL # MATHEMATICAL BOLD ITALIC NABLA 1D736;AL # MATHEMATICAL BOLD ITALIC SMALL ALPHA 1D737;AL # MATHEMATICAL BOLD ITALIC SMALL BETA 1D738;AL # MATHEMATICAL BOLD ITALIC SMALL GAMMA 1D739;AL # MATHEMATICAL BOLD ITALIC SMALL DELTA 1D73A;AL # MATHEMATICAL BOLD ITALIC SMALL EPSILON 1D73B;AL # MATHEMATICAL BOLD ITALIC SMALL ZETA 1D73C;AL # MATHEMATICAL BOLD ITALIC SMALL ETA 1D73D;AL # MATHEMATICAL BOLD ITALIC SMALL THETA 1D73E;AL # MATHEMATICAL BOLD ITALIC SMALL IOTA 1D73F;AL # MATHEMATICAL BOLD ITALIC SMALL KAPPA 1D740;AL # MATHEMATICAL BOLD ITALIC SMALL LAMDA 1D741;AL # MATHEMATICAL BOLD ITALIC SMALL MU 1D742;AL # MATHEMATICAL BOLD ITALIC SMALL NU 1D743;AL # MATHEMATICAL BOLD ITALIC SMALL XI 1D744;AL # MATHEMATICAL BOLD ITALIC SMALL OMICRON 1D745;AL # MATHEMATICAL BOLD ITALIC SMALL PI 1D746;AL # MATHEMATICAL BOLD ITALIC SMALL RHO 1D747;AL # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA 1D748;AL # MATHEMATICAL BOLD ITALIC SMALL SIGMA 1D749;AL # MATHEMATICAL BOLD ITALIC SMALL TAU 1D74A;AL # MATHEMATICAL BOLD ITALIC SMALL UPSILON 1D74B;AL # MATHEMATICAL BOLD ITALIC SMALL PHI 1D74C;AL # MATHEMATICAL BOLD ITALIC SMALL CHI 1D74D;AL # MATHEMATICAL BOLD ITALIC SMALL PSI 1D74E;AL # MATHEMATICAL BOLD ITALIC SMALL OMEGA 1D74F;AL # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL 1D750;AL # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL 1D751;AL # MATHEMATICAL BOLD ITALIC THETA SYMBOL 1D752;AL # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL 1D753;AL # MATHEMATICAL BOLD ITALIC PHI SYMBOL 1D754;AL # MATHEMATICAL BOLD ITALIC RHO SYMBOL 1D755;AL # MATHEMATICAL BOLD ITALIC PI SYMBOL 1D756;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA 1D757;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA 1D758;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA 1D759;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA 1D75A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON 1D75B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA 1D75C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA 1D75D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA 1D75E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA 1D75F;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA 1D760;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA 1D761;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU 1D762;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU 1D763;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI 1D764;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON 1D765;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI 1D766;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO 1D767;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL 1D768;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA 1D769;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU 1D76A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON 1D76B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI 1D76C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI 1D76D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI 1D76E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA 1D76F;AL # MATHEMATICAL SANS-SERIF BOLD NABLA 1D770;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA 1D771;AL # MATHEMATICAL SANS-SERIF BOLD SMALL BETA 1D772;AL # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA 1D773;AL # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA 1D774;AL # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON 1D775;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA 1D776;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ETA 1D777;AL # MATHEMATICAL SANS-SERIF BOLD SMALL THETA 1D778;AL # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA 1D779;AL # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA 1D77A;AL # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA 1D77B;AL # MATHEMATICAL SANS-SERIF BOLD SMALL MU 1D77C;AL # MATHEMATICAL SANS-SERIF BOLD SMALL NU 1D77D;AL # MATHEMATICAL SANS-SERIF BOLD SMALL XI 1D77E;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON 1D77F;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PI 1D780;AL # MATHEMATICAL SANS-SERIF BOLD SMALL RHO 1D781;AL # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA 1D782;AL # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA 1D783;AL # MATHEMATICAL SANS-SERIF BOLD SMALL TAU 1D784;AL # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON 1D785;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PHI 1D786;AL # MATHEMATICAL SANS-SERIF BOLD SMALL CHI 1D787;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PSI 1D788;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA 1D789;AL # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL 1D78A;AL # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL 1D78B;AL # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL 1D78C;AL # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL 1D78D;AL # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL 1D78E;AL # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL 1D78F;AL # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL 1D790;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA 1D791;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA 1D792;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA 1D793;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA 1D794;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON 1D795;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA 1D796;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA 1D797;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA 1D798;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA 1D799;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA 1D79A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA 1D79B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU 1D79C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU 1D79D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI 1D79E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON 1D79F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI 1D7A0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO 1D7A1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL 1D7A2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA 1D7A3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU 1D7A4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON 1D7A5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI 1D7A6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI 1D7A7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI 1D7A8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA 1D7A9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA 1D7AA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA 1D7AB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA 1D7AC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA 1D7AD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA 1D7AE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON 1D7AF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA 1D7B0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA 1D7B1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA 1D7B2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA 1D7B3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA 1D7B4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA 1D7B5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU 1D7B6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU 1D7B7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI 1D7B8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON 1D7B9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI 1D7BA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO 1D7BB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA 1D7BC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA 1D7BD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU 1D7BE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON 1D7BF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI 1D7C0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI 1D7C1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI 1D7C2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA 1D7C3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL 1D7C4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL 1D7C5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL 1D7C6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL 1D7C7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL 1D7C8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL 1D7C9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL 1D7CE;NU # MATHEMATICAL BOLD DIGIT ZERO 1D7CF;NU # MATHEMATICAL BOLD DIGIT ONE 1D7D0;NU # MATHEMATICAL BOLD DIGIT TWO 1D7D1;NU # MATHEMATICAL BOLD DIGIT THREE 1D7D2;NU # MATHEMATICAL BOLD DIGIT FOUR 1D7D3;NU # MATHEMATICAL BOLD DIGIT FIVE 1D7D4;NU # MATHEMATICAL BOLD DIGIT SIX 1D7D5;NU # MATHEMATICAL BOLD DIGIT SEVEN 1D7D6;NU # MATHEMATICAL BOLD DIGIT EIGHT 1D7D7;NU # MATHEMATICAL BOLD DIGIT NINE 1D7D8;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO 1D7D9;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE 1D7DA;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO 1D7DB;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE 1D7DC;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR 1D7DD;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE 1D7DE;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX 1D7DF;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN 1D7E0;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT 1D7E1;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE 1D7E2;NU # MATHEMATICAL SANS-SERIF DIGIT ZERO 1D7E3;NU # MATHEMATICAL SANS-SERIF DIGIT ONE 1D7E4;NU # MATHEMATICAL SANS-SERIF DIGIT TWO 1D7E5;NU # MATHEMATICAL SANS-SERIF DIGIT THREE 1D7E6;NU # MATHEMATICAL SANS-SERIF DIGIT FOUR 1D7E7;NU # MATHEMATICAL SANS-SERIF DIGIT FIVE 1D7E8;NU # MATHEMATICAL SANS-SERIF DIGIT SIX 1D7E9;NU # MATHEMATICAL SANS-SERIF DIGIT SEVEN 1D7EA;NU # MATHEMATICAL SANS-SERIF DIGIT EIGHT 1D7EB;NU # MATHEMATICAL SANS-SERIF DIGIT NINE 1D7EC;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO 1D7ED;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE 1D7EE;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO 1D7EF;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE 1D7F0;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR 1D7F1;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE 1D7F2;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX 1D7F3;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN 1D7F4;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT 1D7F5;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE 1D7F6;NU # MATHEMATICAL MONOSPACE DIGIT ZERO 1D7F7;NU # MATHEMATICAL MONOSPACE DIGIT ONE 1D7F8;NU # MATHEMATICAL MONOSPACE DIGIT TWO 1D7F9;NU # MATHEMATICAL MONOSPACE DIGIT THREE 1D7FA;NU # MATHEMATICAL MONOSPACE DIGIT FOUR 1D7FB;NU # MATHEMATICAL MONOSPACE DIGIT FIVE 1D7FC;NU # MATHEMATICAL MONOSPACE DIGIT SIX 1D7FD;NU # MATHEMATICAL MONOSPACE DIGIT SEVEN 1D7FE;NU # MATHEMATICAL MONOSPACE DIGIT EIGHT 1D7FF;NU # MATHEMATICAL MONOSPACE DIGIT NINE 20000..2A6D6;ID # .. 2F800;ID # CJK COMPATIBILITY IDEOGRAPH-2F800 2F801;ID # CJK COMPATIBILITY IDEOGRAPH-2F801 2F802;ID # CJK COMPATIBILITY IDEOGRAPH-2F802 2F803;ID # CJK COMPATIBILITY IDEOGRAPH-2F803 2F804;ID # CJK COMPATIBILITY IDEOGRAPH-2F804 2F805;ID # CJK COMPATIBILITY IDEOGRAPH-2F805 2F806;ID # CJK COMPATIBILITY IDEOGRAPH-2F806 2F807;ID # CJK COMPATIBILITY IDEOGRAPH-2F807 2F808;ID # CJK COMPATIBILITY IDEOGRAPH-2F808 2F809;ID # CJK COMPATIBILITY IDEOGRAPH-2F809 2F80A;ID # CJK COMPATIBILITY IDEOGRAPH-2F80A 2F80B;ID # CJK COMPATIBILITY IDEOGRAPH-2F80B 2F80C;ID # CJK COMPATIBILITY IDEOGRAPH-2F80C 2F80D;ID # CJK COMPATIBILITY IDEOGRAPH-2F80D 2F80E;ID # CJK COMPATIBILITY IDEOGRAPH-2F80E 2F80F;ID # CJK COMPATIBILITY IDEOGRAPH-2F80F 2F810;ID # CJK COMPATIBILITY IDEOGRAPH-2F810 2F811;ID # CJK COMPATIBILITY IDEOGRAPH-2F811 2F812;ID # CJK COMPATIBILITY IDEOGRAPH-2F812 2F813;ID # CJK COMPATIBILITY IDEOGRAPH-2F813 2F814;ID # CJK COMPATIBILITY IDEOGRAPH-2F814 2F815;ID # CJK COMPATIBILITY IDEOGRAPH-2F815 2F816;ID # CJK COMPATIBILITY IDEOGRAPH-2F816 2F817;ID # CJK COMPATIBILITY IDEOGRAPH-2F817 2F818;ID # CJK COMPATIBILITY IDEOGRAPH-2F818 2F819;ID # CJK COMPATIBILITY IDEOGRAPH-2F819 2F81A;ID # CJK COMPATIBILITY IDEOGRAPH-2F81A 2F81B;ID # CJK COMPATIBILITY IDEOGRAPH-2F81B 2F81C;ID # CJK COMPATIBILITY IDEOGRAPH-2F81C 2F81D;ID # CJK COMPATIBILITY IDEOGRAPH-2F81D 2F81E;ID # CJK COMPATIBILITY IDEOGRAPH-2F81E 2F81F;ID # CJK COMPATIBILITY IDEOGRAPH-2F81F 2F820;ID # CJK COMPATIBILITY IDEOGRAPH-2F820 2F821;ID # CJK COMPATIBILITY IDEOGRAPH-2F821 2F822;ID # CJK COMPATIBILITY IDEOGRAPH-2F822 2F823;ID # CJK COMPATIBILITY IDEOGRAPH-2F823 2F824;ID # CJK COMPATIBILITY IDEOGRAPH-2F824 2F825;ID # CJK COMPATIBILITY IDEOGRAPH-2F825 2F826;ID # CJK COMPATIBILITY IDEOGRAPH-2F826 2F827;ID # CJK COMPATIBILITY IDEOGRAPH-2F827 2F828;ID # CJK COMPATIBILITY IDEOGRAPH-2F828 2F829;ID # CJK COMPATIBILITY IDEOGRAPH-2F829 2F82A;ID # CJK COMPATIBILITY IDEOGRAPH-2F82A 2F82B;ID # CJK COMPATIBILITY IDEOGRAPH-2F82B 2F82C;ID # CJK COMPATIBILITY IDEOGRAPH-2F82C 2F82D;ID # CJK COMPATIBILITY IDEOGRAPH-2F82D 2F82E;ID # CJK COMPATIBILITY IDEOGRAPH-2F82E 2F82F;ID # CJK COMPATIBILITY IDEOGRAPH-2F82F 2F830;ID # CJK COMPATIBILITY IDEOGRAPH-2F830 2F831;ID # CJK COMPATIBILITY IDEOGRAPH-2F831 2F832;ID # CJK COMPATIBILITY IDEOGRAPH-2F832 2F833;ID # CJK COMPATIBILITY IDEOGRAPH-2F833 2F834;ID # CJK COMPATIBILITY IDEOGRAPH-2F834 2F835;ID # CJK COMPATIBILITY IDEOGRAPH-2F835 2F836;ID # CJK COMPATIBILITY IDEOGRAPH-2F836 2F837;ID # CJK COMPATIBILITY IDEOGRAPH-2F837 2F838;ID # CJK COMPATIBILITY IDEOGRAPH-2F838 2F839;ID # CJK COMPATIBILITY IDEOGRAPH-2F839 2F83A;ID # CJK COMPATIBILITY IDEOGRAPH-2F83A 2F83B;ID # CJK COMPATIBILITY IDEOGRAPH-2F83B 2F83C;ID # CJK COMPATIBILITY IDEOGRAPH-2F83C 2F83D;ID # CJK COMPATIBILITY IDEOGRAPH-2F83D 2F83E;ID # CJK COMPATIBILITY IDEOGRAPH-2F83E 2F83F;ID # CJK COMPATIBILITY IDEOGRAPH-2F83F 2F840;ID # CJK COMPATIBILITY IDEOGRAPH-2F840 2F841;ID # CJK COMPATIBILITY IDEOGRAPH-2F841 2F842;ID # CJK COMPATIBILITY IDEOGRAPH-2F842 2F843;ID # CJK COMPATIBILITY IDEOGRAPH-2F843 2F844;ID # CJK COMPATIBILITY IDEOGRAPH-2F844 2F845;ID # CJK COMPATIBILITY IDEOGRAPH-2F845 2F846;ID # CJK COMPATIBILITY IDEOGRAPH-2F846 2F847;ID # CJK COMPATIBILITY IDEOGRAPH-2F847 2F848;ID # CJK COMPATIBILITY IDEOGRAPH-2F848 2F849;ID # CJK COMPATIBILITY IDEOGRAPH-2F849 2F84A;ID # CJK COMPATIBILITY IDEOGRAPH-2F84A 2F84B;ID # CJK COMPATIBILITY IDEOGRAPH-2F84B 2F84C;ID # CJK COMPATIBILITY IDEOGRAPH-2F84C 2F84D;ID # CJK COMPATIBILITY IDEOGRAPH-2F84D 2F84E;ID # CJK COMPATIBILITY IDEOGRAPH-2F84E 2F84F;ID # CJK COMPATIBILITY IDEOGRAPH-2F84F 2F850;ID # CJK COMPATIBILITY IDEOGRAPH-2F850 2F851;ID # CJK COMPATIBILITY IDEOGRAPH-2F851 2F852;ID # CJK COMPATIBILITY IDEOGRAPH-2F852 2F853;ID # CJK COMPATIBILITY IDEOGRAPH-2F853 2F854;ID # CJK COMPATIBILITY IDEOGRAPH-2F854 2F855;ID # CJK COMPATIBILITY IDEOGRAPH-2F855 2F856;ID # CJK COMPATIBILITY IDEOGRAPH-2F856 2F857;ID # CJK COMPATIBILITY IDEOGRAPH-2F857 2F858;ID # CJK COMPATIBILITY IDEOGRAPH-2F858 2F859;ID # CJK COMPATIBILITY IDEOGRAPH-2F859 2F85A;ID # CJK COMPATIBILITY IDEOGRAPH-2F85A 2F85B;ID # CJK COMPATIBILITY IDEOGRAPH-2F85B 2F85C;ID # CJK COMPATIBILITY IDEOGRAPH-2F85C 2F85D;ID # CJK COMPATIBILITY IDEOGRAPH-2F85D 2F85E;ID # CJK COMPATIBILITY IDEOGRAPH-2F85E 2F85F;ID # CJK COMPATIBILITY IDEOGRAPH-2F85F 2F860;ID # CJK COMPATIBILITY IDEOGRAPH-2F860 2F861;ID # CJK COMPATIBILITY IDEOGRAPH-2F861 2F862;ID # CJK COMPATIBILITY IDEOGRAPH-2F862 2F863;ID # CJK COMPATIBILITY IDEOGRAPH-2F863 2F864;ID # CJK COMPATIBILITY IDEOGRAPH-2F864 2F865;ID # CJK COMPATIBILITY IDEOGRAPH-2F865 2F866;ID # CJK COMPATIBILITY IDEOGRAPH-2F866 2F867;ID # CJK COMPATIBILITY IDEOGRAPH-2F867 2F868;ID # CJK COMPATIBILITY IDEOGRAPH-2F868 2F869;ID # CJK COMPATIBILITY IDEOGRAPH-2F869 2F86A;ID # CJK COMPATIBILITY IDEOGRAPH-2F86A 2F86B;ID # CJK COMPATIBILITY IDEOGRAPH-2F86B 2F86C;ID # CJK COMPATIBILITY IDEOGRAPH-2F86C 2F86D;ID # CJK COMPATIBILITY IDEOGRAPH-2F86D 2F86E;ID # CJK COMPATIBILITY IDEOGRAPH-2F86E 2F86F;ID # CJK COMPATIBILITY IDEOGRAPH-2F86F 2F870;ID # CJK COMPATIBILITY IDEOGRAPH-2F870 2F871;ID # CJK COMPATIBILITY IDEOGRAPH-2F871 2F872;ID # CJK COMPATIBILITY IDEOGRAPH-2F872 2F873;ID # CJK COMPATIBILITY IDEOGRAPH-2F873 2F874;ID # CJK COMPATIBILITY IDEOGRAPH-2F874 2F875;ID # CJK COMPATIBILITY IDEOGRAPH-2F875 2F876;ID # CJK COMPATIBILITY IDEOGRAPH-2F876 2F877;ID # CJK COMPATIBILITY IDEOGRAPH-2F877 2F878;ID # CJK COMPATIBILITY IDEOGRAPH-2F878 2F879;ID # CJK COMPATIBILITY IDEOGRAPH-2F879 2F87A;ID # CJK COMPATIBILITY IDEOGRAPH-2F87A 2F87B;ID # CJK COMPATIBILITY IDEOGRAPH-2F87B 2F87C;ID # CJK COMPATIBILITY IDEOGRAPH-2F87C 2F87D;ID # CJK COMPATIBILITY IDEOGRAPH-2F87D 2F87E;ID # CJK COMPATIBILITY IDEOGRAPH-2F87E 2F87F;ID # CJK COMPATIBILITY IDEOGRAPH-2F87F 2F880;ID # CJK COMPATIBILITY IDEOGRAPH-2F880 2F881;ID # CJK COMPATIBILITY IDEOGRAPH-2F881 2F882;ID # CJK COMPATIBILITY IDEOGRAPH-2F882 2F883;ID # CJK COMPATIBILITY IDEOGRAPH-2F883 2F884;ID # CJK COMPATIBILITY IDEOGRAPH-2F884 2F885;ID # CJK COMPATIBILITY IDEOGRAPH-2F885 2F886;ID # CJK COMPATIBILITY IDEOGRAPH-2F886 2F887;ID # CJK COMPATIBILITY IDEOGRAPH-2F887 2F888;ID # CJK COMPATIBILITY IDEOGRAPH-2F888 2F889;ID # CJK COMPATIBILITY IDEOGRAPH-2F889 2F88A;ID # CJK COMPATIBILITY IDEOGRAPH-2F88A 2F88B;ID # CJK COMPATIBILITY IDEOGRAPH-2F88B 2F88C;ID # CJK COMPATIBILITY IDEOGRAPH-2F88C 2F88D;ID # CJK COMPATIBILITY IDEOGRAPH-2F88D 2F88E;ID # CJK COMPATIBILITY IDEOGRAPH-2F88E 2F88F;ID # CJK COMPATIBILITY IDEOGRAPH-2F88F 2F890;ID # CJK COMPATIBILITY IDEOGRAPH-2F890 2F891;ID # CJK COMPATIBILITY IDEOGRAPH-2F891 2F892;ID # CJK COMPATIBILITY IDEOGRAPH-2F892 2F893;ID # CJK COMPATIBILITY IDEOGRAPH-2F893 2F894;ID # CJK COMPATIBILITY IDEOGRAPH-2F894 2F895;ID # CJK COMPATIBILITY IDEOGRAPH-2F895 2F896;ID # CJK COMPATIBILITY IDEOGRAPH-2F896 2F897;ID # CJK COMPATIBILITY IDEOGRAPH-2F897 2F898;ID # CJK COMPATIBILITY IDEOGRAPH-2F898 2F899;ID # CJK COMPATIBILITY IDEOGRAPH-2F899 2F89A;ID # CJK COMPATIBILITY IDEOGRAPH-2F89A 2F89B;ID # CJK COMPATIBILITY IDEOGRAPH-2F89B 2F89C;ID # CJK COMPATIBILITY IDEOGRAPH-2F89C 2F89D;ID # CJK COMPATIBILITY IDEOGRAPH-2F89D 2F89E;ID # CJK COMPATIBILITY IDEOGRAPH-2F89E 2F89F;ID # CJK COMPATIBILITY IDEOGRAPH-2F89F 2F8A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A0 2F8A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A1 2F8A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A2 2F8A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A3 2F8A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A4 2F8A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A5 2F8A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A6 2F8A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A7 2F8A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A8 2F8A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A9 2F8AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AA 2F8AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AB 2F8AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AC 2F8AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AD 2F8AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AE 2F8AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AF 2F8B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B0 2F8B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B1 2F8B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B2 2F8B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B3 2F8B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B4 2F8B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B5 2F8B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B6 2F8B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B7 2F8B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B8 2F8B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B9 2F8BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BA 2F8BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BB 2F8BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BC 2F8BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BD 2F8BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BE 2F8BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BF 2F8C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C0 2F8C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C1 2F8C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C2 2F8C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C3 2F8C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C4 2F8C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C5 2F8C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C6 2F8C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C7 2F8C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C8 2F8C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C9 2F8CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CA 2F8CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CB 2F8CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CC 2F8CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CD 2F8CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CE 2F8CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CF 2F8D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D0 2F8D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D1 2F8D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D2 2F8D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D3 2F8D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D4 2F8D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D5 2F8D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D6 2F8D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D7 2F8D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D8 2F8D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D9 2F8DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DA 2F8DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DB 2F8DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DC 2F8DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DD 2F8DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DE 2F8DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DF 2F8E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E0 2F8E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E1 2F8E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E2 2F8E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E3 2F8E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E4 2F8E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E5 2F8E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E6 2F8E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E7 2F8E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E8 2F8E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E9 2F8EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EA 2F8EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EB 2F8EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EC 2F8ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F8ED 2F8EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EE 2F8EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EF 2F8F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F0 2F8F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F1 2F8F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F2 2F8F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F3 2F8F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F4 2F8F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F5 2F8F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F6 2F8F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F7 2F8F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F8 2F8F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F9 2F8FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FA 2F8FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FB 2F8FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FC 2F8FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FD 2F8FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FE 2F8FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FF 2F900;ID # CJK COMPATIBILITY IDEOGRAPH-2F900 2F901;ID # CJK COMPATIBILITY IDEOGRAPH-2F901 2F902;ID # CJK COMPATIBILITY IDEOGRAPH-2F902 2F903;ID # CJK COMPATIBILITY IDEOGRAPH-2F903 2F904;ID # CJK COMPATIBILITY IDEOGRAPH-2F904 2F905;ID # CJK COMPATIBILITY IDEOGRAPH-2F905 2F906;ID # CJK COMPATIBILITY IDEOGRAPH-2F906 2F907;ID # CJK COMPATIBILITY IDEOGRAPH-2F907 2F908;ID # CJK COMPATIBILITY IDEOGRAPH-2F908 2F909;ID # CJK COMPATIBILITY IDEOGRAPH-2F909 2F90A;ID # CJK COMPATIBILITY IDEOGRAPH-2F90A 2F90B;ID # CJK COMPATIBILITY IDEOGRAPH-2F90B 2F90C;ID # CJK COMPATIBILITY IDEOGRAPH-2F90C 2F90D;ID # CJK COMPATIBILITY IDEOGRAPH-2F90D 2F90E;ID # CJK COMPATIBILITY IDEOGRAPH-2F90E 2F90F;ID # CJK COMPATIBILITY IDEOGRAPH-2F90F 2F910;ID # CJK COMPATIBILITY IDEOGRAPH-2F910 2F911;ID # CJK COMPATIBILITY IDEOGRAPH-2F911 2F912;ID # CJK COMPATIBILITY IDEOGRAPH-2F912 2F913;ID # CJK COMPATIBILITY IDEOGRAPH-2F913 2F914;ID # CJK COMPATIBILITY IDEOGRAPH-2F914 2F915;ID # CJK COMPATIBILITY IDEOGRAPH-2F915 2F916;ID # CJK COMPATIBILITY IDEOGRAPH-2F916 2F917;ID # CJK COMPATIBILITY IDEOGRAPH-2F917 2F918;ID # CJK COMPATIBILITY IDEOGRAPH-2F918 2F919;ID # CJK COMPATIBILITY IDEOGRAPH-2F919 2F91A;ID # CJK COMPATIBILITY IDEOGRAPH-2F91A 2F91B;ID # CJK COMPATIBILITY IDEOGRAPH-2F91B 2F91C;ID # CJK COMPATIBILITY IDEOGRAPH-2F91C 2F91D;ID # CJK COMPATIBILITY IDEOGRAPH-2F91D 2F91E;ID # CJK COMPATIBILITY IDEOGRAPH-2F91E 2F91F;ID # CJK COMPATIBILITY IDEOGRAPH-2F91F 2F920;ID # CJK COMPATIBILITY IDEOGRAPH-2F920 2F921;ID # CJK COMPATIBILITY IDEOGRAPH-2F921 2F922;ID # CJK COMPATIBILITY IDEOGRAPH-2F922 2F923;ID # CJK COMPATIBILITY IDEOGRAPH-2F923 2F924;ID # CJK COMPATIBILITY IDEOGRAPH-2F924 2F925;ID # CJK COMPATIBILITY IDEOGRAPH-2F925 2F926;ID # CJK COMPATIBILITY IDEOGRAPH-2F926 2F927;ID # CJK COMPATIBILITY IDEOGRAPH-2F927 2F928;ID # CJK COMPATIBILITY IDEOGRAPH-2F928 2F929;ID # CJK COMPATIBILITY IDEOGRAPH-2F929 2F92A;ID # CJK COMPATIBILITY IDEOGRAPH-2F92A 2F92B;ID # CJK COMPATIBILITY IDEOGRAPH-2F92B 2F92C;ID # CJK COMPATIBILITY IDEOGRAPH-2F92C 2F92D;ID # CJK COMPATIBILITY IDEOGRAPH-2F92D 2F92E;ID # CJK COMPATIBILITY IDEOGRAPH-2F92E 2F92F;ID # CJK COMPATIBILITY IDEOGRAPH-2F92F 2F930;ID # CJK COMPATIBILITY IDEOGRAPH-2F930 2F931;ID # CJK COMPATIBILITY IDEOGRAPH-2F931 2F932;ID # CJK COMPATIBILITY IDEOGRAPH-2F932 2F933;ID # CJK COMPATIBILITY IDEOGRAPH-2F933 2F934;ID # CJK COMPATIBILITY IDEOGRAPH-2F934 2F935;ID # CJK COMPATIBILITY IDEOGRAPH-2F935 2F936;ID # CJK COMPATIBILITY IDEOGRAPH-2F936 2F937;ID # CJK COMPATIBILITY IDEOGRAPH-2F937 2F938;ID # CJK COMPATIBILITY IDEOGRAPH-2F938 2F939;ID # CJK COMPATIBILITY IDEOGRAPH-2F939 2F93A;ID # CJK COMPATIBILITY IDEOGRAPH-2F93A 2F93B;ID # CJK COMPATIBILITY IDEOGRAPH-2F93B 2F93C;ID # CJK COMPATIBILITY IDEOGRAPH-2F93C 2F93D;ID # CJK COMPATIBILITY IDEOGRAPH-2F93D 2F93E;ID # CJK COMPATIBILITY IDEOGRAPH-2F93E 2F93F;ID # CJK COMPATIBILITY IDEOGRAPH-2F93F 2F940;ID # CJK COMPATIBILITY IDEOGRAPH-2F940 2F941;ID # CJK COMPATIBILITY IDEOGRAPH-2F941 2F942;ID # CJK COMPATIBILITY IDEOGRAPH-2F942 2F943;ID # CJK COMPATIBILITY IDEOGRAPH-2F943 2F944;ID # CJK COMPATIBILITY IDEOGRAPH-2F944 2F945;ID # CJK COMPATIBILITY IDEOGRAPH-2F945 2F946;ID # CJK COMPATIBILITY IDEOGRAPH-2F946 2F947;ID # CJK COMPATIBILITY IDEOGRAPH-2F947 2F948;ID # CJK COMPATIBILITY IDEOGRAPH-2F948 2F949;ID # CJK COMPATIBILITY IDEOGRAPH-2F949 2F94A;ID # CJK COMPATIBILITY IDEOGRAPH-2F94A 2F94B;ID # CJK COMPATIBILITY IDEOGRAPH-2F94B 2F94C;ID # CJK COMPATIBILITY IDEOGRAPH-2F94C 2F94D;ID # CJK COMPATIBILITY IDEOGRAPH-2F94D 2F94E;ID # CJK COMPATIBILITY IDEOGRAPH-2F94E 2F94F;ID # CJK COMPATIBILITY IDEOGRAPH-2F94F 2F950;ID # CJK COMPATIBILITY IDEOGRAPH-2F950 2F951;ID # CJK COMPATIBILITY IDEOGRAPH-2F951 2F952;ID # CJK COMPATIBILITY IDEOGRAPH-2F952 2F953;ID # CJK COMPATIBILITY IDEOGRAPH-2F953 2F954;ID # CJK COMPATIBILITY IDEOGRAPH-2F954 2F955;ID # CJK COMPATIBILITY IDEOGRAPH-2F955 2F956;ID # CJK COMPATIBILITY IDEOGRAPH-2F956 2F957;ID # CJK COMPATIBILITY IDEOGRAPH-2F957 2F958;ID # CJK COMPATIBILITY IDEOGRAPH-2F958 2F959;ID # CJK COMPATIBILITY IDEOGRAPH-2F959 2F95A;ID # CJK COMPATIBILITY IDEOGRAPH-2F95A 2F95B;ID # CJK COMPATIBILITY IDEOGRAPH-2F95B 2F95C;ID # CJK COMPATIBILITY IDEOGRAPH-2F95C 2F95D;ID # CJK COMPATIBILITY IDEOGRAPH-2F95D 2F95E;ID # CJK COMPATIBILITY IDEOGRAPH-2F95E 2F95F;ID # CJK COMPATIBILITY IDEOGRAPH-2F95F 2F960;ID # CJK COMPATIBILITY IDEOGRAPH-2F960 2F961;ID # CJK COMPATIBILITY IDEOGRAPH-2F961 2F962;ID # CJK COMPATIBILITY IDEOGRAPH-2F962 2F963;ID # CJK COMPATIBILITY IDEOGRAPH-2F963 2F964;ID # CJK COMPATIBILITY IDEOGRAPH-2F964 2F965;ID # CJK COMPATIBILITY IDEOGRAPH-2F965 2F966;ID # CJK COMPATIBILITY IDEOGRAPH-2F966 2F967;ID # CJK COMPATIBILITY IDEOGRAPH-2F967 2F968;ID # CJK COMPATIBILITY IDEOGRAPH-2F968 2F969;ID # CJK COMPATIBILITY IDEOGRAPH-2F969 2F96A;ID # CJK COMPATIBILITY IDEOGRAPH-2F96A 2F96B;ID # CJK COMPATIBILITY IDEOGRAPH-2F96B 2F96C;ID # CJK COMPATIBILITY IDEOGRAPH-2F96C 2F96D;ID # CJK COMPATIBILITY IDEOGRAPH-2F96D 2F96E;ID # CJK COMPATIBILITY IDEOGRAPH-2F96E 2F96F;ID # CJK COMPATIBILITY IDEOGRAPH-2F96F 2F970;ID # CJK COMPATIBILITY IDEOGRAPH-2F970 2F971;ID # CJK COMPATIBILITY IDEOGRAPH-2F971 2F972;ID # CJK COMPATIBILITY IDEOGRAPH-2F972 2F973;ID # CJK COMPATIBILITY IDEOGRAPH-2F973 2F974;ID # CJK COMPATIBILITY IDEOGRAPH-2F974 2F975;ID # CJK COMPATIBILITY IDEOGRAPH-2F975 2F976;ID # CJK COMPATIBILITY IDEOGRAPH-2F976 2F977;ID # CJK COMPATIBILITY IDEOGRAPH-2F977 2F978;ID # CJK COMPATIBILITY IDEOGRAPH-2F978 2F979;ID # CJK COMPATIBILITY IDEOGRAPH-2F979 2F97A;ID # CJK COMPATIBILITY IDEOGRAPH-2F97A 2F97B;ID # CJK COMPATIBILITY IDEOGRAPH-2F97B 2F97C;ID # CJK COMPATIBILITY IDEOGRAPH-2F97C 2F97D;ID # CJK COMPATIBILITY IDEOGRAPH-2F97D 2F97E;ID # CJK COMPATIBILITY IDEOGRAPH-2F97E 2F97F;ID # CJK COMPATIBILITY IDEOGRAPH-2F97F 2F980;ID # CJK COMPATIBILITY IDEOGRAPH-2F980 2F981;ID # CJK COMPATIBILITY IDEOGRAPH-2F981 2F982;ID # CJK COMPATIBILITY IDEOGRAPH-2F982 2F983;ID # CJK COMPATIBILITY IDEOGRAPH-2F983 2F984;ID # CJK COMPATIBILITY IDEOGRAPH-2F984 2F985;ID # CJK COMPATIBILITY IDEOGRAPH-2F985 2F986;ID # CJK COMPATIBILITY IDEOGRAPH-2F986 2F987;ID # CJK COMPATIBILITY IDEOGRAPH-2F987 2F988;ID # CJK COMPATIBILITY IDEOGRAPH-2F988 2F989;ID # CJK COMPATIBILITY IDEOGRAPH-2F989 2F98A;ID # CJK COMPATIBILITY IDEOGRAPH-2F98A 2F98B;ID # CJK COMPATIBILITY IDEOGRAPH-2F98B 2F98C;ID # CJK COMPATIBILITY IDEOGRAPH-2F98C 2F98D;ID # CJK COMPATIBILITY IDEOGRAPH-2F98D 2F98E;ID # CJK COMPATIBILITY IDEOGRAPH-2F98E 2F98F;ID # CJK COMPATIBILITY IDEOGRAPH-2F98F 2F990;ID # CJK COMPATIBILITY IDEOGRAPH-2F990 2F991;ID # CJK COMPATIBILITY IDEOGRAPH-2F991 2F992;ID # CJK COMPATIBILITY IDEOGRAPH-2F992 2F993;ID # CJK COMPATIBILITY IDEOGRAPH-2F993 2F994;ID # CJK COMPATIBILITY IDEOGRAPH-2F994 2F995;ID # CJK COMPATIBILITY IDEOGRAPH-2F995 2F996;ID # CJK COMPATIBILITY IDEOGRAPH-2F996 2F997;ID # CJK COMPATIBILITY IDEOGRAPH-2F997 2F998;ID # CJK COMPATIBILITY IDEOGRAPH-2F998 2F999;ID # CJK COMPATIBILITY IDEOGRAPH-2F999 2F99A;ID # CJK COMPATIBILITY IDEOGRAPH-2F99A 2F99B;ID # CJK COMPATIBILITY IDEOGRAPH-2F99B 2F99C;ID # CJK COMPATIBILITY IDEOGRAPH-2F99C 2F99D;ID # CJK COMPATIBILITY IDEOGRAPH-2F99D 2F99E;ID # CJK COMPATIBILITY IDEOGRAPH-2F99E 2F99F;ID # CJK COMPATIBILITY IDEOGRAPH-2F99F 2F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A0 2F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A1 2F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A2 2F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A3 2F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A4 2F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A5 2F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A6 2F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A7 2F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A8 2F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A9 2F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AA 2F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AB 2F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AC 2F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AD 2F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AE 2F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AF 2F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B0 2F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B1 2F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B2 2F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B3 2F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B4 2F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B5 2F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B6 2F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B7 2F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B8 2F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B9 2F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BA 2F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BB 2F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BC 2F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BD 2F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BE 2F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BF 2F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C0 2F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C1 2F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C2 2F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C3 2F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C4 2F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C5 2F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C6 2F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C7 2F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C8 2F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C9 2F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CA 2F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CB 2F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CC 2F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CD 2F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CE 2F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CF 2F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D0 2F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D1 2F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D2 2F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D3 2F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D4 2F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D5 2F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D6 2F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D7 2F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D8 2F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D9 2F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DA 2F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DB 2F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DC 2F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DD 2F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DE 2F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DF 2F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E0 2F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E1 2F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E2 2F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E3 2F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E4 2F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E5 2F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E6 2F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E7 2F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E8 2F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E9 2F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EA 2F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EB 2F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EC 2F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F9ED 2F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EE 2F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EF 2F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F0 2F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F1 2F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F2 2F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F3 2F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F4 2F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F5 2F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F6 2F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F7 2F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F8 2F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F9 2F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FA 2F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FB 2F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FC 2F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FD 2F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FE 2F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FF 2FA00;ID # CJK COMPATIBILITY IDEOGRAPH-2FA00 2FA01;ID # CJK COMPATIBILITY IDEOGRAPH-2FA01 2FA02;ID # CJK COMPATIBILITY IDEOGRAPH-2FA02 2FA03;ID # CJK COMPATIBILITY IDEOGRAPH-2FA03 2FA04;ID # CJK COMPATIBILITY IDEOGRAPH-2FA04 2FA05;ID # CJK COMPATIBILITY IDEOGRAPH-2FA05 2FA06;ID # CJK COMPATIBILITY IDEOGRAPH-2FA06 2FA07;ID # CJK COMPATIBILITY IDEOGRAPH-2FA07 2FA08;ID # CJK COMPATIBILITY IDEOGRAPH-2FA08 2FA09;ID # CJK COMPATIBILITY IDEOGRAPH-2FA09 2FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0A 2FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0B 2FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0C 2FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0D 2FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0E 2FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0F 2FA10;ID # CJK COMPATIBILITY IDEOGRAPH-2FA10 2FA11;ID # CJK COMPATIBILITY IDEOGRAPH-2FA11 2FA12;ID # CJK COMPATIBILITY IDEOGRAPH-2FA12 2FA13;ID # CJK COMPATIBILITY IDEOGRAPH-2FA13 2FA14;ID # CJK COMPATIBILITY IDEOGRAPH-2FA14 2FA15;ID # CJK COMPATIBILITY IDEOGRAPH-2FA15 2FA16;ID # CJK COMPATIBILITY IDEOGRAPH-2FA16 2FA17;ID # CJK COMPATIBILITY IDEOGRAPH-2FA17 2FA18;ID # CJK COMPATIBILITY IDEOGRAPH-2FA18 2FA19;ID # CJK COMPATIBILITY IDEOGRAPH-2FA19 2FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1A 2FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1B 2FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1C 2FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1D E0001;CM # LANGUAGE TAG E0020;CM # TAG SPACE E0021;CM # TAG EXCLAMATION MARK E0022;CM # TAG QUOTATION MARK E0023;CM # TAG NUMBER SIGN E0024;CM # TAG DOLLAR SIGN E0025;CM # TAG PERCENT SIGN E0026;CM # TAG AMPERSAND E0027;CM # TAG APOSTROPHE E0028;CM # TAG LEFT PARENTHESIS E0029;CM # TAG RIGHT PARENTHESIS E002A;CM # TAG ASTERISK E002B;CM # TAG PLUS SIGN E002C;CM # TAG COMMA E002D;CM # TAG HYPHEN-MINUS E002E;CM # TAG FULL STOP E002F;CM # TAG SOLIDUS E0030;CM # TAG DIGIT ZERO E0031;CM # TAG DIGIT ONE E0032;CM # TAG DIGIT TWO E0033;CM # TAG DIGIT THREE E0034;CM # TAG DIGIT FOUR E0035;CM # TAG DIGIT FIVE E0036;CM # TAG DIGIT SIX E0037;CM # TAG DIGIT SEVEN E0038;CM # TAG DIGIT EIGHT E0039;CM # TAG DIGIT NINE E003A;CM # TAG COLON E003B;CM # TAG SEMICOLON E003C;CM # TAG LESS-THAN SIGN E003D;CM # TAG EQUALS SIGN E003E;CM # TAG GREATER-THAN SIGN E003F;CM # TAG QUESTION MARK E0040;CM # TAG COMMERCIAL AT E0041;CM # TAG LATIN CAPITAL LETTER A E0042;CM # TAG LATIN CAPITAL LETTER B E0043;CM # TAG LATIN CAPITAL LETTER C E0044;CM # TAG LATIN CAPITAL LETTER D E0045;CM # TAG LATIN CAPITAL LETTER E E0046;CM # TAG LATIN CAPITAL LETTER F E0047;CM # TAG LATIN CAPITAL LETTER G E0048;CM # TAG LATIN CAPITAL LETTER H E0049;CM # TAG LATIN CAPITAL LETTER I E004A;CM # TAG LATIN CAPITAL LETTER J E004B;CM # TAG LATIN CAPITAL LETTER K E004C;CM # TAG LATIN CAPITAL LETTER L E004D;CM # TAG LATIN CAPITAL LETTER M E004E;CM # TAG LATIN CAPITAL LETTER N E004F;CM # TAG LATIN CAPITAL LETTER O E0050;CM # TAG LATIN CAPITAL LETTER P E0051;CM # TAG LATIN CAPITAL LETTER Q E0052;CM # TAG LATIN CAPITAL LETTER R E0053;CM # TAG LATIN CAPITAL LETTER S E0054;CM # TAG LATIN CAPITAL LETTER T E0055;CM # TAG LATIN CAPITAL LETTER U E0056;CM # TAG LATIN CAPITAL LETTER V E0057;CM # TAG LATIN CAPITAL LETTER W E0058;CM # TAG LATIN CAPITAL LETTER X E0059;CM # TAG LATIN CAPITAL LETTER Y E005A;CM # TAG LATIN CAPITAL LETTER Z E005B;CM # TAG LEFT SQUARE BRACKET E005C;CM # TAG REVERSE SOLIDUS E005D;CM # TAG RIGHT SQUARE BRACKET E005E;CM # TAG CIRCUMFLEX ACCENT E005F;CM # TAG LOW LINE E0060;CM # TAG GRAVE ACCENT E0061;CM # TAG LATIN SMALL LETTER A E0062;CM # TAG LATIN SMALL LETTER B E0063;CM # TAG LATIN SMALL LETTER C E0064;CM # TAG LATIN SMALL LETTER D E0065;CM # TAG LATIN SMALL LETTER E E0066;CM # TAG LATIN SMALL LETTER F E0067;CM # TAG LATIN SMALL LETTER G E0068;CM # TAG LATIN SMALL LETTER H E0069;CM # TAG LATIN SMALL LETTER I E006A;CM # TAG LATIN SMALL LETTER J E006B;CM # TAG LATIN SMALL LETTER K E006C;CM # TAG LATIN SMALL LETTER L E006D;CM # TAG LATIN SMALL LETTER M E006E;CM # TAG LATIN SMALL LETTER N E006F;CM # TAG LATIN SMALL LETTER O E0070;CM # TAG LATIN SMALL LETTER P E0071;CM # TAG LATIN SMALL LETTER Q E0072;CM # TAG LATIN SMALL LETTER R E0073;CM # TAG LATIN SMALL LETTER S E0074;CM # TAG LATIN SMALL LETTER T E0075;CM # TAG LATIN SMALL LETTER U E0076;CM # TAG LATIN SMALL LETTER V E0077;CM # TAG LATIN SMALL LETTER W E0078;CM # TAG LATIN SMALL LETTER X E0079;CM # TAG LATIN SMALL LETTER Y E007A;CM # TAG LATIN SMALL LETTER Z E007B;CM # TAG LEFT CURLY BRACKET E007C;CM # TAG VERTICAL LINE E007D;CM # TAG RIGHT CURLY BRACKET E007E;CM # TAG TILDE E007F;CM # CANCEL TAG F0000..FFFFD;XX # .. 100000..10FFFD;XX # .. libidn-1.38/doc/specifications/COPYING.UCD0000644000000000000000000000603314053001337015010 00000000000000License below is copied from , last updated 7 July 2004, and claims to apply to all Unicode versions. According to a post on emacs-devel, , RMS believe it is a free license: This is a free license, and even compatible with the GPL (if that ever matters). Yes, we can use it now. EXHIBIT 1 UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE Unicode Data Files include all data files under the directories http://www.unicode.org/Public/ and http://www.unicode.org/reports/. Unicode Software includes any source code under the directories http://www.unicode.org/Public/ and http://www.unicode.org/reports/. NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. COPYRIGHT AND PERMISSION NOTICE Copyright © 1991-2004 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and associated documentation (the "Data Files") or Unicode software and associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear in all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified. THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. libidn-1.38/doc/specifications/CaseFolding-3.2.0.txt0000644000000000000000000014164714053001337016733 00000000000000# CaseFolding-3.2.0.txt # Date: 2002-03-22,20:54:33 GMT [MD] # # Case Folding Properties # # This file is a supplement to the UnicodeData file. # It provides a case folding mapping generated from the Unicode Character Database. # If all characters are mapped according to the full mapping below, then # case differences (according to UnicodeData.txt and SpecialCasing.txt) # are eliminated. # # The data supports both implementations that require simple case foldings # (where string lengths don't change), and implementations that allow full case folding # (where string lengths may grow). Note that where they can be supported, the # full case foldings are superior: for example, they allow "MASSE" and "Maße" to match. # # NOTE: case folding does not preserve normalization formats! # # For information on case folding, see # UTR #21 Case Mappings, at http://www.unicode.org/unicode/reports/tr21/ # # ================================================================================ # Format # ================================================================================ # The entries in this file are in the following machine-readable format: # # ; ; ; # # # The status field is: # C: common case folding, common mappings shared by both simple and full mappings. # F: full case folding, mappings that cause strings to grow in length. Multiple characters are separated by spaces. # S: simple case folding, mappings to single characters where different from F. # T: special case for uppercase I and dotted uppercase I # - For non-Turkic languages, this mapping is normally not used. # - For Turkic languages (tr, az), this mapping can be used instead of the normal mapping for these characters. # # Usage: # A. To do a simple case folding, use the mappings with status C + S. # B. To do a full case folding, use the mappings with status C + F. # # The mappings with status T can be used or omitted depending on the desired case-folding # behavior. (The default option is to exclude them.) # # ================================================================= 0041; C; 0061; # LATIN CAPITAL LETTER A 0042; C; 0062; # LATIN CAPITAL LETTER B 0043; C; 0063; # LATIN CAPITAL LETTER C 0044; C; 0064; # LATIN CAPITAL LETTER D 0045; C; 0065; # LATIN CAPITAL LETTER E 0046; C; 0066; # LATIN CAPITAL LETTER F 0047; C; 0067; # LATIN CAPITAL LETTER G 0048; C; 0068; # LATIN CAPITAL LETTER H 0049; C; 0069; # LATIN CAPITAL LETTER I 0049; T; 0131; # LATIN CAPITAL LETTER I 004A; C; 006A; # LATIN CAPITAL LETTER J 004B; C; 006B; # LATIN CAPITAL LETTER K 004C; C; 006C; # LATIN CAPITAL LETTER L 004D; C; 006D; # LATIN CAPITAL LETTER M 004E; C; 006E; # LATIN CAPITAL LETTER N 004F; C; 006F; # LATIN CAPITAL LETTER O 0050; C; 0070; # LATIN CAPITAL LETTER P 0051; C; 0071; # LATIN CAPITAL LETTER Q 0052; C; 0072; # LATIN CAPITAL LETTER R 0053; C; 0073; # LATIN CAPITAL LETTER S 0054; C; 0074; # LATIN CAPITAL LETTER T 0055; C; 0075; # LATIN CAPITAL LETTER U 0056; C; 0076; # LATIN CAPITAL LETTER V 0057; C; 0077; # LATIN CAPITAL LETTER W 0058; C; 0078; # LATIN CAPITAL LETTER X 0059; C; 0079; # LATIN CAPITAL LETTER Y 005A; C; 007A; # LATIN CAPITAL LETTER Z 00B5; C; 03BC; # MICRO SIGN 00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE 00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE 00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE 00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE 00C6; C; 00E6; # LATIN CAPITAL LETTER AE 00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA 00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE 00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE 00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS 00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE 00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE 00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS 00D0; C; 00F0; # LATIN CAPITAL LETTER ETH 00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE 00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE 00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE 00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE 00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS 00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE 00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE 00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE 00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS 00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE 00DE; C; 00FE; # LATIN CAPITAL LETTER THORN 00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S 0100; C; 0101; # LATIN CAPITAL LETTER A WITH MACRON 0102; C; 0103; # LATIN CAPITAL LETTER A WITH BREVE 0104; C; 0105; # LATIN CAPITAL LETTER A WITH OGONEK 0106; C; 0107; # LATIN CAPITAL LETTER C WITH ACUTE 0108; C; 0109; # LATIN CAPITAL LETTER C WITH CIRCUMFLEX 010A; C; 010B; # LATIN CAPITAL LETTER C WITH DOT ABOVE 010C; C; 010D; # LATIN CAPITAL LETTER C WITH CARON 010E; C; 010F; # LATIN CAPITAL LETTER D WITH CARON 0110; C; 0111; # LATIN CAPITAL LETTER D WITH STROKE 0112; C; 0113; # LATIN CAPITAL LETTER E WITH MACRON 0114; C; 0115; # LATIN CAPITAL LETTER E WITH BREVE 0116; C; 0117; # LATIN CAPITAL LETTER E WITH DOT ABOVE 0118; C; 0119; # LATIN CAPITAL LETTER E WITH OGONEK 011A; C; 011B; # LATIN CAPITAL LETTER E WITH CARON 011C; C; 011D; # LATIN CAPITAL LETTER G WITH CIRCUMFLEX 011E; C; 011F; # LATIN CAPITAL LETTER G WITH BREVE 0120; C; 0121; # LATIN CAPITAL LETTER G WITH DOT ABOVE 0122; C; 0123; # LATIN CAPITAL LETTER G WITH CEDILLA 0124; C; 0125; # LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0126; C; 0127; # LATIN CAPITAL LETTER H WITH STROKE 0128; C; 0129; # LATIN CAPITAL LETTER I WITH TILDE 012A; C; 012B; # LATIN CAPITAL LETTER I WITH MACRON 012C; C; 012D; # LATIN CAPITAL LETTER I WITH BREVE 012E; C; 012F; # LATIN CAPITAL LETTER I WITH OGONEK 0130; F; 0069 0307; # LATIN CAPITAL LETTER I WITH DOT ABOVE 0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE 0132; C; 0133; # LATIN CAPITAL LIGATURE IJ 0134; C; 0135; # LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0136; C; 0137; # LATIN CAPITAL LETTER K WITH CEDILLA 0139; C; 013A; # LATIN CAPITAL LETTER L WITH ACUTE 013B; C; 013C; # LATIN CAPITAL LETTER L WITH CEDILLA 013D; C; 013E; # LATIN CAPITAL LETTER L WITH CARON 013F; C; 0140; # LATIN CAPITAL LETTER L WITH MIDDLE DOT 0141; C; 0142; # LATIN CAPITAL LETTER L WITH STROKE 0143; C; 0144; # LATIN CAPITAL LETTER N WITH ACUTE 0145; C; 0146; # LATIN CAPITAL LETTER N WITH CEDILLA 0147; C; 0148; # LATIN CAPITAL LETTER N WITH CARON 0149; F; 02BC 006E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 014A; C; 014B; # LATIN CAPITAL LETTER ENG 014C; C; 014D; # LATIN CAPITAL LETTER O WITH MACRON 014E; C; 014F; # LATIN CAPITAL LETTER O WITH BREVE 0150; C; 0151; # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0152; C; 0153; # LATIN CAPITAL LIGATURE OE 0154; C; 0155; # LATIN CAPITAL LETTER R WITH ACUTE 0156; C; 0157; # LATIN CAPITAL LETTER R WITH CEDILLA 0158; C; 0159; # LATIN CAPITAL LETTER R WITH CARON 015A; C; 015B; # LATIN CAPITAL LETTER S WITH ACUTE 015C; C; 015D; # LATIN CAPITAL LETTER S WITH CIRCUMFLEX 015E; C; 015F; # LATIN CAPITAL LETTER S WITH CEDILLA 0160; C; 0161; # LATIN CAPITAL LETTER S WITH CARON 0162; C; 0163; # LATIN CAPITAL LETTER T WITH CEDILLA 0164; C; 0165; # LATIN CAPITAL LETTER T WITH CARON 0166; C; 0167; # LATIN CAPITAL LETTER T WITH STROKE 0168; C; 0169; # LATIN CAPITAL LETTER U WITH TILDE 016A; C; 016B; # LATIN CAPITAL LETTER U WITH MACRON 016C; C; 016D; # LATIN CAPITAL LETTER U WITH BREVE 016E; C; 016F; # LATIN CAPITAL LETTER U WITH RING ABOVE 0170; C; 0171; # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0172; C; 0173; # LATIN CAPITAL LETTER U WITH OGONEK 0174; C; 0175; # LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0176; C; 0177; # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0178; C; 00FF; # LATIN CAPITAL LETTER Y WITH DIAERESIS 0179; C; 017A; # LATIN CAPITAL LETTER Z WITH ACUTE 017B; C; 017C; # LATIN CAPITAL LETTER Z WITH DOT ABOVE 017D; C; 017E; # LATIN CAPITAL LETTER Z WITH CARON 017F; C; 0073; # LATIN SMALL LETTER LONG S 0181; C; 0253; # LATIN CAPITAL LETTER B WITH HOOK 0182; C; 0183; # LATIN CAPITAL LETTER B WITH TOPBAR 0184; C; 0185; # LATIN CAPITAL LETTER TONE SIX 0186; C; 0254; # LATIN CAPITAL LETTER OPEN O 0187; C; 0188; # LATIN CAPITAL LETTER C WITH HOOK 0189; C; 0256; # LATIN CAPITAL LETTER AFRICAN D 018A; C; 0257; # LATIN CAPITAL LETTER D WITH HOOK 018B; C; 018C; # LATIN CAPITAL LETTER D WITH TOPBAR 018E; C; 01DD; # LATIN CAPITAL LETTER REVERSED E 018F; C; 0259; # LATIN CAPITAL LETTER SCHWA 0190; C; 025B; # LATIN CAPITAL LETTER OPEN E 0191; C; 0192; # LATIN CAPITAL LETTER F WITH HOOK 0193; C; 0260; # LATIN CAPITAL LETTER G WITH HOOK 0194; C; 0263; # LATIN CAPITAL LETTER GAMMA 0196; C; 0269; # LATIN CAPITAL LETTER IOTA 0197; C; 0268; # LATIN CAPITAL LETTER I WITH STROKE 0198; C; 0199; # LATIN CAPITAL LETTER K WITH HOOK 019C; C; 026F; # LATIN CAPITAL LETTER TURNED M 019D; C; 0272; # LATIN CAPITAL LETTER N WITH LEFT HOOK 019F; C; 0275; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE 01A0; C; 01A1; # LATIN CAPITAL LETTER O WITH HORN 01A2; C; 01A3; # LATIN CAPITAL LETTER OI 01A4; C; 01A5; # LATIN CAPITAL LETTER P WITH HOOK 01A6; C; 0280; # LATIN LETTER YR 01A7; C; 01A8; # LATIN CAPITAL LETTER TONE TWO 01A9; C; 0283; # LATIN CAPITAL LETTER ESH 01AC; C; 01AD; # LATIN CAPITAL LETTER T WITH HOOK 01AE; C; 0288; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 01AF; C; 01B0; # LATIN CAPITAL LETTER U WITH HORN 01B1; C; 028A; # LATIN CAPITAL LETTER UPSILON 01B2; C; 028B; # LATIN CAPITAL LETTER V WITH HOOK 01B3; C; 01B4; # LATIN CAPITAL LETTER Y WITH HOOK 01B5; C; 01B6; # LATIN CAPITAL LETTER Z WITH STROKE 01B7; C; 0292; # LATIN CAPITAL LETTER EZH 01B8; C; 01B9; # LATIN CAPITAL LETTER EZH REVERSED 01BC; C; 01BD; # LATIN CAPITAL LETTER TONE FIVE 01C4; C; 01C6; # LATIN CAPITAL LETTER DZ WITH CARON 01C5; C; 01C6; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 01C7; C; 01C9; # LATIN CAPITAL LETTER LJ 01C8; C; 01C9; # LATIN CAPITAL LETTER L WITH SMALL LETTER J 01CA; C; 01CC; # LATIN CAPITAL LETTER NJ 01CB; C; 01CC; # LATIN CAPITAL LETTER N WITH SMALL LETTER J 01CD; C; 01CE; # LATIN CAPITAL LETTER A WITH CARON 01CF; C; 01D0; # LATIN CAPITAL LETTER I WITH CARON 01D1; C; 01D2; # LATIN CAPITAL LETTER O WITH CARON 01D3; C; 01D4; # LATIN CAPITAL LETTER U WITH CARON 01D5; C; 01D6; # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON 01D7; C; 01D8; # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE 01D9; C; 01DA; # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON 01DB; C; 01DC; # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE 01DE; C; 01DF; # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON 01E0; C; 01E1; # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON 01E2; C; 01E3; # LATIN CAPITAL LETTER AE WITH MACRON 01E4; C; 01E5; # LATIN CAPITAL LETTER G WITH STROKE 01E6; C; 01E7; # LATIN CAPITAL LETTER G WITH CARON 01E8; C; 01E9; # LATIN CAPITAL LETTER K WITH CARON 01EA; C; 01EB; # LATIN CAPITAL LETTER O WITH OGONEK 01EC; C; 01ED; # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON 01EE; C; 01EF; # LATIN CAPITAL LETTER EZH WITH CARON 01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON 01F1; C; 01F3; # LATIN CAPITAL LETTER DZ 01F2; C; 01F3; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z 01F4; C; 01F5; # LATIN CAPITAL LETTER G WITH ACUTE 01F6; C; 0195; # LATIN CAPITAL LETTER HWAIR 01F7; C; 01BF; # LATIN CAPITAL LETTER WYNN 01F8; C; 01F9; # LATIN CAPITAL LETTER N WITH GRAVE 01FA; C; 01FB; # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 01FC; C; 01FD; # LATIN CAPITAL LETTER AE WITH ACUTE 01FE; C; 01FF; # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 0200; C; 0201; # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0202; C; 0203; # LATIN CAPITAL LETTER A WITH INVERTED BREVE 0204; C; 0205; # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0206; C; 0207; # LATIN CAPITAL LETTER E WITH INVERTED BREVE 0208; C; 0209; # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 020A; C; 020B; # LATIN CAPITAL LETTER I WITH INVERTED BREVE 020C; C; 020D; # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 020E; C; 020F; # LATIN CAPITAL LETTER O WITH INVERTED BREVE 0210; C; 0211; # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0212; C; 0213; # LATIN CAPITAL LETTER R WITH INVERTED BREVE 0214; C; 0215; # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0216; C; 0217; # LATIN CAPITAL LETTER U WITH INVERTED BREVE 0218; C; 0219; # LATIN CAPITAL LETTER S WITH COMMA BELOW 021A; C; 021B; # LATIN CAPITAL LETTER T WITH COMMA BELOW 021C; C; 021D; # LATIN CAPITAL LETTER YOGH 021E; C; 021F; # LATIN CAPITAL LETTER H WITH CARON 0220; C; 019E; # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 0222; C; 0223; # LATIN CAPITAL LETTER OU 0224; C; 0225; # LATIN CAPITAL LETTER Z WITH HOOK 0226; C; 0227; # LATIN CAPITAL LETTER A WITH DOT ABOVE 0228; C; 0229; # LATIN CAPITAL LETTER E WITH CEDILLA 022A; C; 022B; # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 022C; C; 022D; # LATIN CAPITAL LETTER O WITH TILDE AND MACRON 022E; C; 022F; # LATIN CAPITAL LETTER O WITH DOT ABOVE 0230; C; 0231; # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0232; C; 0233; # LATIN CAPITAL LETTER Y WITH MACRON 0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI 0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS 0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS 038A; C; 03AF; # GREEK CAPITAL LETTER IOTA WITH TONOS 038C; C; 03CC; # GREEK CAPITAL LETTER OMICRON WITH TONOS 038E; C; 03CD; # GREEK CAPITAL LETTER UPSILON WITH TONOS 038F; C; 03CE; # GREEK CAPITAL LETTER OMEGA WITH TONOS 0390; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0391; C; 03B1; # GREEK CAPITAL LETTER ALPHA 0392; C; 03B2; # GREEK CAPITAL LETTER BETA 0393; C; 03B3; # GREEK CAPITAL LETTER GAMMA 0394; C; 03B4; # GREEK CAPITAL LETTER DELTA 0395; C; 03B5; # GREEK CAPITAL LETTER EPSILON 0396; C; 03B6; # GREEK CAPITAL LETTER ZETA 0397; C; 03B7; # GREEK CAPITAL LETTER ETA 0398; C; 03B8; # GREEK CAPITAL LETTER THETA 0399; C; 03B9; # GREEK CAPITAL LETTER IOTA 039A; C; 03BA; # GREEK CAPITAL LETTER KAPPA 039B; C; 03BB; # GREEK CAPITAL LETTER LAMDA 039C; C; 03BC; # GREEK CAPITAL LETTER MU 039D; C; 03BD; # GREEK CAPITAL LETTER NU 039E; C; 03BE; # GREEK CAPITAL LETTER XI 039F; C; 03BF; # GREEK CAPITAL LETTER OMICRON 03A0; C; 03C0; # GREEK CAPITAL LETTER PI 03A1; C; 03C1; # GREEK CAPITAL LETTER RHO 03A3; C; 03C3; # GREEK CAPITAL LETTER SIGMA 03A4; C; 03C4; # GREEK CAPITAL LETTER TAU 03A5; C; 03C5; # GREEK CAPITAL LETTER UPSILON 03A6; C; 03C6; # GREEK CAPITAL LETTER PHI 03A7; C; 03C7; # GREEK CAPITAL LETTER CHI 03A8; C; 03C8; # GREEK CAPITAL LETTER PSI 03A9; C; 03C9; # GREEK CAPITAL LETTER OMEGA 03AA; C; 03CA; # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 03AB; C; 03CB; # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 03B0; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 03C2; C; 03C3; # GREEK SMALL LETTER FINAL SIGMA 03D0; C; 03B2; # GREEK BETA SYMBOL 03D1; C; 03B8; # GREEK THETA SYMBOL 03D5; C; 03C6; # GREEK PHI SYMBOL 03D6; C; 03C0; # GREEK PI SYMBOL 03D8; C; 03D9; # GREEK LETTER ARCHAIC KOPPA 03DA; C; 03DB; # GREEK LETTER STIGMA 03DC; C; 03DD; # GREEK LETTER DIGAMMA 03DE; C; 03DF; # GREEK LETTER KOPPA 03E0; C; 03E1; # GREEK LETTER SAMPI 03E2; C; 03E3; # COPTIC CAPITAL LETTER SHEI 03E4; C; 03E5; # COPTIC CAPITAL LETTER FEI 03E6; C; 03E7; # COPTIC CAPITAL LETTER KHEI 03E8; C; 03E9; # COPTIC CAPITAL LETTER HORI 03EA; C; 03EB; # COPTIC CAPITAL LETTER GANGIA 03EC; C; 03ED; # COPTIC CAPITAL LETTER SHIMA 03EE; C; 03EF; # COPTIC CAPITAL LETTER DEI 03F0; C; 03BA; # GREEK KAPPA SYMBOL 03F1; C; 03C1; # GREEK RHO SYMBOL 03F2; C; 03C3; # GREEK LUNATE SIGMA SYMBOL 03F4; C; 03B8; # GREEK CAPITAL THETA SYMBOL 03F5; C; 03B5; # GREEK LUNATE EPSILON SYMBOL 0400; C; 0450; # CYRILLIC CAPITAL LETTER IE WITH GRAVE 0401; C; 0451; # CYRILLIC CAPITAL LETTER IO 0402; C; 0452; # CYRILLIC CAPITAL LETTER DJE 0403; C; 0453; # CYRILLIC CAPITAL LETTER GJE 0404; C; 0454; # CYRILLIC CAPITAL LETTER UKRAINIAN IE 0405; C; 0455; # CYRILLIC CAPITAL LETTER DZE 0406; C; 0456; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0407; C; 0457; # CYRILLIC CAPITAL LETTER YI 0408; C; 0458; # CYRILLIC CAPITAL LETTER JE 0409; C; 0459; # CYRILLIC CAPITAL LETTER LJE 040A; C; 045A; # CYRILLIC CAPITAL LETTER NJE 040B; C; 045B; # CYRILLIC CAPITAL LETTER TSHE 040C; C; 045C; # CYRILLIC CAPITAL LETTER KJE 040D; C; 045D; # CYRILLIC CAPITAL LETTER I WITH GRAVE 040E; C; 045E; # CYRILLIC CAPITAL LETTER SHORT U 040F; C; 045F; # CYRILLIC CAPITAL LETTER DZHE 0410; C; 0430; # CYRILLIC CAPITAL LETTER A 0411; C; 0431; # CYRILLIC CAPITAL LETTER BE 0412; C; 0432; # CYRILLIC CAPITAL LETTER VE 0413; C; 0433; # CYRILLIC CAPITAL LETTER GHE 0414; C; 0434; # CYRILLIC CAPITAL LETTER DE 0415; C; 0435; # CYRILLIC CAPITAL LETTER IE 0416; C; 0436; # CYRILLIC CAPITAL LETTER ZHE 0417; C; 0437; # CYRILLIC CAPITAL LETTER ZE 0418; C; 0438; # CYRILLIC CAPITAL LETTER I 0419; C; 0439; # CYRILLIC CAPITAL LETTER SHORT I 041A; C; 043A; # CYRILLIC CAPITAL LETTER KA 041B; C; 043B; # CYRILLIC CAPITAL LETTER EL 041C; C; 043C; # CYRILLIC CAPITAL LETTER EM 041D; C; 043D; # CYRILLIC CAPITAL LETTER EN 041E; C; 043E; # CYRILLIC CAPITAL LETTER O 041F; C; 043F; # CYRILLIC CAPITAL LETTER PE 0420; C; 0440; # CYRILLIC CAPITAL LETTER ER 0421; C; 0441; # CYRILLIC CAPITAL LETTER ES 0422; C; 0442; # CYRILLIC CAPITAL LETTER TE 0423; C; 0443; # CYRILLIC CAPITAL LETTER U 0424; C; 0444; # CYRILLIC CAPITAL LETTER EF 0425; C; 0445; # CYRILLIC CAPITAL LETTER HA 0426; C; 0446; # CYRILLIC CAPITAL LETTER TSE 0427; C; 0447; # CYRILLIC CAPITAL LETTER CHE 0428; C; 0448; # CYRILLIC CAPITAL LETTER SHA 0429; C; 0449; # CYRILLIC CAPITAL LETTER SHCHA 042A; C; 044A; # CYRILLIC CAPITAL LETTER HARD SIGN 042B; C; 044B; # CYRILLIC CAPITAL LETTER YERU 042C; C; 044C; # CYRILLIC CAPITAL LETTER SOFT SIGN 042D; C; 044D; # CYRILLIC CAPITAL LETTER E 042E; C; 044E; # CYRILLIC CAPITAL LETTER YU 042F; C; 044F; # CYRILLIC CAPITAL LETTER YA 0460; C; 0461; # CYRILLIC CAPITAL LETTER OMEGA 0462; C; 0463; # CYRILLIC CAPITAL LETTER YAT 0464; C; 0465; # CYRILLIC CAPITAL LETTER IOTIFIED E 0466; C; 0467; # CYRILLIC CAPITAL LETTER LITTLE YUS 0468; C; 0469; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS 046A; C; 046B; # CYRILLIC CAPITAL LETTER BIG YUS 046C; C; 046D; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS 046E; C; 046F; # CYRILLIC CAPITAL LETTER KSI 0470; C; 0471; # CYRILLIC CAPITAL LETTER PSI 0472; C; 0473; # CYRILLIC CAPITAL LETTER FITA 0474; C; 0475; # CYRILLIC CAPITAL LETTER IZHITSA 0476; C; 0477; # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0478; C; 0479; # CYRILLIC CAPITAL LETTER UK 047A; C; 047B; # CYRILLIC CAPITAL LETTER ROUND OMEGA 047C; C; 047D; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO 047E; C; 047F; # CYRILLIC CAPITAL LETTER OT 0480; C; 0481; # CYRILLIC CAPITAL LETTER KOPPA 048A; C; 048B; # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL 048C; C; 048D; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN 048E; C; 048F; # CYRILLIC CAPITAL LETTER ER WITH TICK 0490; C; 0491; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN 0492; C; 0493; # CYRILLIC CAPITAL LETTER GHE WITH STROKE 0494; C; 0495; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0496; C; 0497; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER 0498; C; 0499; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 049A; C; 049B; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER 049C; C; 049D; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE 049E; C; 049F; # CYRILLIC CAPITAL LETTER KA WITH STROKE 04A0; C; 04A1; # CYRILLIC CAPITAL LETTER BASHKIR KA 04A2; C; 04A3; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER 04A4; C; 04A5; # CYRILLIC CAPITAL LIGATURE EN GHE 04A6; C; 04A7; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK 04A8; C; 04A9; # CYRILLIC CAPITAL LETTER ABKHASIAN HA 04AA; C; 04AB; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER 04AC; C; 04AD; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER 04AE; C; 04AF; # CYRILLIC CAPITAL LETTER STRAIGHT U 04B0; C; 04B1; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE 04B2; C; 04B3; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER 04B4; C; 04B5; # CYRILLIC CAPITAL LIGATURE TE TSE 04B6; C; 04B7; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 04B8; C; 04B9; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE 04BA; C; 04BB; # CYRILLIC CAPITAL LETTER SHHA 04BC; C; 04BD; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE 04BE; C; 04BF; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER 04C1; C; 04C2; # CYRILLIC CAPITAL LETTER ZHE WITH BREVE 04C3; C; 04C4; # CYRILLIC CAPITAL LETTER KA WITH HOOK 04C5; C; 04C6; # CYRILLIC CAPITAL LETTER EL WITH TAIL 04C7; C; 04C8; # CYRILLIC CAPITAL LETTER EN WITH HOOK 04C9; C; 04CA; # CYRILLIC CAPITAL LETTER EN WITH TAIL 04CB; C; 04CC; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE 04CD; C; 04CE; # CYRILLIC CAPITAL LETTER EM WITH TAIL 04D0; C; 04D1; # CYRILLIC CAPITAL LETTER A WITH BREVE 04D2; C; 04D3; # CYRILLIC CAPITAL LETTER A WITH DIAERESIS 04D4; C; 04D5; # CYRILLIC CAPITAL LIGATURE A IE 04D6; C; 04D7; # CYRILLIC CAPITAL LETTER IE WITH BREVE 04D8; C; 04D9; # CYRILLIC CAPITAL LETTER SCHWA 04DA; C; 04DB; # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS 04DC; C; 04DD; # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS 04DE; C; 04DF; # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS 04E0; C; 04E1; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE 04E2; C; 04E3; # CYRILLIC CAPITAL LETTER I WITH MACRON 04E4; C; 04E5; # CYRILLIC CAPITAL LETTER I WITH DIAERESIS 04E6; C; 04E7; # CYRILLIC CAPITAL LETTER O WITH DIAERESIS 04E8; C; 04E9; # CYRILLIC CAPITAL LETTER BARRED O 04EA; C; 04EB; # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS 04EC; C; 04ED; # CYRILLIC CAPITAL LETTER E WITH DIAERESIS 04EE; C; 04EF; # CYRILLIC CAPITAL LETTER U WITH MACRON 04F0; C; 04F1; # CYRILLIC CAPITAL LETTER U WITH DIAERESIS 04F2; C; 04F3; # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE 04F4; C; 04F5; # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS 04F8; C; 04F9; # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS 0500; C; 0501; # CYRILLIC CAPITAL LETTER KOMI DE 0502; C; 0503; # CYRILLIC CAPITAL LETTER KOMI DJE 0504; C; 0505; # CYRILLIC CAPITAL LETTER KOMI ZJE 0506; C; 0507; # CYRILLIC CAPITAL LETTER KOMI DZJE 0508; C; 0509; # CYRILLIC CAPITAL LETTER KOMI LJE 050A; C; 050B; # CYRILLIC CAPITAL LETTER KOMI NJE 050C; C; 050D; # CYRILLIC CAPITAL LETTER KOMI SJE 050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM 0534; C; 0564; # ARMENIAN CAPITAL LETTER DA 0535; C; 0565; # ARMENIAN CAPITAL LETTER ECH 0536; C; 0566; # ARMENIAN CAPITAL LETTER ZA 0537; C; 0567; # ARMENIAN CAPITAL LETTER EH 0538; C; 0568; # ARMENIAN CAPITAL LETTER ET 0539; C; 0569; # ARMENIAN CAPITAL LETTER TO 053A; C; 056A; # ARMENIAN CAPITAL LETTER ZHE 053B; C; 056B; # ARMENIAN CAPITAL LETTER INI 053C; C; 056C; # ARMENIAN CAPITAL LETTER LIWN 053D; C; 056D; # ARMENIAN CAPITAL LETTER XEH 053E; C; 056E; # ARMENIAN CAPITAL LETTER CA 053F; C; 056F; # ARMENIAN CAPITAL LETTER KEN 0540; C; 0570; # ARMENIAN CAPITAL LETTER HO 0541; C; 0571; # ARMENIAN CAPITAL LETTER JA 0542; C; 0572; # ARMENIAN CAPITAL LETTER GHAD 0543; C; 0573; # ARMENIAN CAPITAL LETTER CHEH 0544; C; 0574; # ARMENIAN CAPITAL LETTER MEN 0545; C; 0575; # ARMENIAN CAPITAL LETTER YI 0546; C; 0576; # ARMENIAN CAPITAL LETTER NOW 0547; C; 0577; # ARMENIAN CAPITAL LETTER SHA 0548; C; 0578; # ARMENIAN CAPITAL LETTER VO 0549; C; 0579; # ARMENIAN CAPITAL LETTER CHA 054A; C; 057A; # ARMENIAN CAPITAL LETTER PEH 054B; C; 057B; # ARMENIAN CAPITAL LETTER JHEH 054C; C; 057C; # ARMENIAN CAPITAL LETTER RA 054D; C; 057D; # ARMENIAN CAPITAL LETTER SEH 054E; C; 057E; # ARMENIAN CAPITAL LETTER VEW 054F; C; 057F; # ARMENIAN CAPITAL LETTER TIWN 0550; C; 0580; # ARMENIAN CAPITAL LETTER REH 0551; C; 0581; # ARMENIAN CAPITAL LETTER CO 0552; C; 0582; # ARMENIAN CAPITAL LETTER YIWN 0553; C; 0583; # ARMENIAN CAPITAL LETTER PIWR 0554; C; 0584; # ARMENIAN CAPITAL LETTER KEH 0555; C; 0585; # ARMENIAN CAPITAL LETTER OH 0556; C; 0586; # ARMENIAN CAPITAL LETTER FEH 0587; F; 0565 0582; # ARMENIAN SMALL LIGATURE ECH YIWN 1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW 1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW 1E06; C; 1E07; # LATIN CAPITAL LETTER B WITH LINE BELOW 1E08; C; 1E09; # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 1E0A; C; 1E0B; # LATIN CAPITAL LETTER D WITH DOT ABOVE 1E0C; C; 1E0D; # LATIN CAPITAL LETTER D WITH DOT BELOW 1E0E; C; 1E0F; # LATIN CAPITAL LETTER D WITH LINE BELOW 1E10; C; 1E11; # LATIN CAPITAL LETTER D WITH CEDILLA 1E12; C; 1E13; # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW 1E14; C; 1E15; # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 1E16; C; 1E17; # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 1E18; C; 1E19; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW 1E1A; C; 1E1B; # LATIN CAPITAL LETTER E WITH TILDE BELOW 1E1C; C; 1E1D; # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 1E1E; C; 1E1F; # LATIN CAPITAL LETTER F WITH DOT ABOVE 1E20; C; 1E21; # LATIN CAPITAL LETTER G WITH MACRON 1E22; C; 1E23; # LATIN CAPITAL LETTER H WITH DOT ABOVE 1E24; C; 1E25; # LATIN CAPITAL LETTER H WITH DOT BELOW 1E26; C; 1E27; # LATIN CAPITAL LETTER H WITH DIAERESIS 1E28; C; 1E29; # LATIN CAPITAL LETTER H WITH CEDILLA 1E2A; C; 1E2B; # LATIN CAPITAL LETTER H WITH BREVE BELOW 1E2C; C; 1E2D; # LATIN CAPITAL LETTER I WITH TILDE BELOW 1E2E; C; 1E2F; # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 1E30; C; 1E31; # LATIN CAPITAL LETTER K WITH ACUTE 1E32; C; 1E33; # LATIN CAPITAL LETTER K WITH DOT BELOW 1E34; C; 1E35; # LATIN CAPITAL LETTER K WITH LINE BELOW 1E36; C; 1E37; # LATIN CAPITAL LETTER L WITH DOT BELOW 1E38; C; 1E39; # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON 1E3A; C; 1E3B; # LATIN CAPITAL LETTER L WITH LINE BELOW 1E3C; C; 1E3D; # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW 1E3E; C; 1E3F; # LATIN CAPITAL LETTER M WITH ACUTE 1E40; C; 1E41; # LATIN CAPITAL LETTER M WITH DOT ABOVE 1E42; C; 1E43; # LATIN CAPITAL LETTER M WITH DOT BELOW 1E44; C; 1E45; # LATIN CAPITAL LETTER N WITH DOT ABOVE 1E46; C; 1E47; # LATIN CAPITAL LETTER N WITH DOT BELOW 1E48; C; 1E49; # LATIN CAPITAL LETTER N WITH LINE BELOW 1E4A; C; 1E4B; # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW 1E4C; C; 1E4D; # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 1E4E; C; 1E4F; # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 1E50; C; 1E51; # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 1E52; C; 1E53; # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 1E54; C; 1E55; # LATIN CAPITAL LETTER P WITH ACUTE 1E56; C; 1E57; # LATIN CAPITAL LETTER P WITH DOT ABOVE 1E58; C; 1E59; # LATIN CAPITAL LETTER R WITH DOT ABOVE 1E5A; C; 1E5B; # LATIN CAPITAL LETTER R WITH DOT BELOW 1E5C; C; 1E5D; # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON 1E5E; C; 1E5F; # LATIN CAPITAL LETTER R WITH LINE BELOW 1E60; C; 1E61; # LATIN CAPITAL LETTER S WITH DOT ABOVE 1E62; C; 1E63; # LATIN CAPITAL LETTER S WITH DOT BELOW 1E64; C; 1E65; # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 1E66; C; 1E67; # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 1E68; C; 1E69; # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 1E6A; C; 1E6B; # LATIN CAPITAL LETTER T WITH DOT ABOVE 1E6C; C; 1E6D; # LATIN CAPITAL LETTER T WITH DOT BELOW 1E6E; C; 1E6F; # LATIN CAPITAL LETTER T WITH LINE BELOW 1E70; C; 1E71; # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW 1E72; C; 1E73; # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW 1E74; C; 1E75; # LATIN CAPITAL LETTER U WITH TILDE BELOW 1E76; C; 1E77; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW 1E78; C; 1E79; # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 1E7A; C; 1E7B; # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 1E7C; C; 1E7D; # LATIN CAPITAL LETTER V WITH TILDE 1E7E; C; 1E7F; # LATIN CAPITAL LETTER V WITH DOT BELOW 1E80; C; 1E81; # LATIN CAPITAL LETTER W WITH GRAVE 1E82; C; 1E83; # LATIN CAPITAL LETTER W WITH ACUTE 1E84; C; 1E85; # LATIN CAPITAL LETTER W WITH DIAERESIS 1E86; C; 1E87; # LATIN CAPITAL LETTER W WITH DOT ABOVE 1E88; C; 1E89; # LATIN CAPITAL LETTER W WITH DOT BELOW 1E8A; C; 1E8B; # LATIN CAPITAL LETTER X WITH DOT ABOVE 1E8C; C; 1E8D; # LATIN CAPITAL LETTER X WITH DIAERESIS 1E8E; C; 1E8F; # LATIN CAPITAL LETTER Y WITH DOT ABOVE 1E90; C; 1E91; # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX 1E92; C; 1E93; # LATIN CAPITAL LETTER Z WITH DOT BELOW 1E94; C; 1E95; # LATIN CAPITAL LETTER Z WITH LINE BELOW 1E96; F; 0068 0331; # LATIN SMALL LETTER H WITH LINE BELOW 1E97; F; 0074 0308; # LATIN SMALL LETTER T WITH DIAERESIS 1E98; F; 0077 030A; # LATIN SMALL LETTER W WITH RING ABOVE 1E99; F; 0079 030A; # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A; F; 0061 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING 1E9B; C; 1E61; # LATIN SMALL LETTER LONG S WITH DOT ABOVE 1EA0; C; 1EA1; # LATIN CAPITAL LETTER A WITH DOT BELOW 1EA2; C; 1EA3; # LATIN CAPITAL LETTER A WITH HOOK ABOVE 1EA4; C; 1EA5; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA6; C; 1EA7; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA8; C; 1EA9; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EAA; C; 1EAB; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 1EAC; C; 1EAD; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAE; C; 1EAF; # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 1EB0; C; 1EB1; # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 1EB2; C; 1EB3; # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 1EB4; C; 1EB5; # LATIN CAPITAL LETTER A WITH BREVE AND TILDE 1EB6; C; 1EB7; # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 1EB8; C; 1EB9; # LATIN CAPITAL LETTER E WITH DOT BELOW 1EBA; C; 1EBB; # LATIN CAPITAL LETTER E WITH HOOK ABOVE 1EBC; C; 1EBD; # LATIN CAPITAL LETTER E WITH TILDE 1EBE; C; 1EBF; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 1EC0; C; 1EC1; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC2; C; 1EC3; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC4; C; 1EC5; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 1EC6; C; 1EC7; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC8; C; 1EC9; # LATIN CAPITAL LETTER I WITH HOOK ABOVE 1ECA; C; 1ECB; # LATIN CAPITAL LETTER I WITH DOT BELOW 1ECC; C; 1ECD; # LATIN CAPITAL LETTER O WITH DOT BELOW 1ECE; C; 1ECF; # LATIN CAPITAL LETTER O WITH HOOK ABOVE 1ED0; C; 1ED1; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED2; C; 1ED3; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED4; C; 1ED5; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED6; C; 1ED7; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 1ED8; C; 1ED9; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1EDA; C; 1EDB; # LATIN CAPITAL LETTER O WITH HORN AND ACUTE 1EDC; C; 1EDD; # LATIN CAPITAL LETTER O WITH HORN AND GRAVE 1EDE; C; 1EDF; # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 1EE0; C; 1EE1; # LATIN CAPITAL LETTER O WITH HORN AND TILDE 1EE2; C; 1EE3; # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 1EE4; C; 1EE5; # LATIN CAPITAL LETTER U WITH DOT BELOW 1EE6; C; 1EE7; # LATIN CAPITAL LETTER U WITH HOOK ABOVE 1EE8; C; 1EE9; # LATIN CAPITAL LETTER U WITH HORN AND ACUTE 1EEA; C; 1EEB; # LATIN CAPITAL LETTER U WITH HORN AND GRAVE 1EEC; C; 1EED; # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 1EEE; C; 1EEF; # LATIN CAPITAL LETTER U WITH HORN AND TILDE 1EF0; C; 1EF1; # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 1EF2; C; 1EF3; # LATIN CAPITAL LETTER Y WITH GRAVE 1EF4; C; 1EF5; # LATIN CAPITAL LETTER Y WITH DOT BELOW 1EF6; C; 1EF7; # LATIN CAPITAL LETTER Y WITH HOOK ABOVE 1EF8; C; 1EF9; # LATIN CAPITAL LETTER Y WITH TILDE 1F08; C; 1F00; # GREEK CAPITAL LETTER ALPHA WITH PSILI 1F09; C; 1F01; # GREEK CAPITAL LETTER ALPHA WITH DASIA 1F0A; C; 1F02; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 1F0B; C; 1F03; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 1F0C; C; 1F04; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 1F0D; C; 1F05; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 1F0E; C; 1F06; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F0F; C; 1F07; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F18; C; 1F10; # GREEK CAPITAL LETTER EPSILON WITH PSILI 1F19; C; 1F11; # GREEK CAPITAL LETTER EPSILON WITH DASIA 1F1A; C; 1F12; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 1F1B; C; 1F13; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 1F1C; C; 1F14; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 1F1D; C; 1F15; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 1F28; C; 1F20; # GREEK CAPITAL LETTER ETA WITH PSILI 1F29; C; 1F21; # GREEK CAPITAL LETTER ETA WITH DASIA 1F2A; C; 1F22; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 1F2B; C; 1F23; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 1F2C; C; 1F24; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 1F2D; C; 1F25; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 1F2E; C; 1F26; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 1F2F; C; 1F27; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 1F38; C; 1F30; # GREEK CAPITAL LETTER IOTA WITH PSILI 1F39; C; 1F31; # GREEK CAPITAL LETTER IOTA WITH DASIA 1F3A; C; 1F32; # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 1F3B; C; 1F33; # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 1F3C; C; 1F34; # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 1F3D; C; 1F35; # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 1F3E; C; 1F36; # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 1F3F; C; 1F37; # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 1F48; C; 1F40; # GREEK CAPITAL LETTER OMICRON WITH PSILI 1F49; C; 1F41; # GREEK CAPITAL LETTER OMICRON WITH DASIA 1F4A; C; 1F42; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 1F4B; C; 1F43; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 1F4C; C; 1F44; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 1F4D; C; 1F45; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 1F50; F; 03C5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI 1F52; F; 03C5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F54; F; 03C5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F56; F; 03C5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1F59; C; 1F51; # GREEK CAPITAL LETTER UPSILON WITH DASIA 1F5B; C; 1F53; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 1F5D; C; 1F55; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 1F5F; C; 1F57; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F68; C; 1F60; # GREEK CAPITAL LETTER OMEGA WITH PSILI 1F69; C; 1F61; # GREEK CAPITAL LETTER OMEGA WITH DASIA 1F6A; C; 1F62; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 1F6B; C; 1F63; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 1F6C; C; 1F64; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 1F6D; C; 1F65; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 1F6E; C; 1F66; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F6F; C; 1F67; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F80; F; 1F00 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81; F; 1F01 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82; F; 1F02 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83; F; 1F03 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84; F; 1F04 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85; F; 1F05 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86; F; 1F06 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87; F; 1F07 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88; F; 1F00 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F88; S; 1F80; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89; F; 1F01 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F89; S; 1F81; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A; F; 1F02 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8A; S; 1F82; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B; F; 1F03 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8B; S; 1F83; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C; F; 1F04 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8C; S; 1F84; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D; F; 1F05 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8D; S; 1F85; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E; F; 1F06 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8E; S; 1F86; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; F; 1F07 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; S; 1F87; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90; F; 1F20 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91; F; 1F21 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92; F; 1F22 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93; F; 1F23 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94; F; 1F24 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95; F; 1F25 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96; F; 1F26 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97; F; 1F27 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98; F; 1F20 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F98; S; 1F90; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99; F; 1F21 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F99; S; 1F91; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A; F; 1F22 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9A; S; 1F92; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B; F; 1F23 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9B; S; 1F93; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C; F; 1F24 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9C; S; 1F94; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D; F; 1F25 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9D; S; 1F95; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E; F; 1F26 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9E; S; 1F96; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; F; 1F27 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; S; 1F97; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0; F; 1F60 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1; F; 1F61 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2; F; 1F62 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3; F; 1F63 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4; F; 1F64 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5; F; 1F65 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6; F; 1F66 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7; F; 1F67 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8; F; 1F60 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA8; S; 1FA0; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9; F; 1F61 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FA9; S; 1FA1; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA; F; 1F62 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAA; S; 1FA2; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB; F; 1F63 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAB; S; 1FA3; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC; F; 1F64 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAC; S; 1FA4; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD; F; 1F65 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAD; S; 1FA5; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE; F; 1F66 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAE; S; 1FA6; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; F; 1F67 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; S; 1FA7; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB2; F; 1F70 03B9; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB3; F; 03B1 03B9; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FB4; F; 03AC 03B9; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FB6; F; 03B1 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FB7; F; 03B1 0342 03B9; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FB8; C; 1FB0; # GREEK CAPITAL LETTER ALPHA WITH VRACHY 1FB9; C; 1FB1; # GREEK CAPITAL LETTER ALPHA WITH MACRON 1FBA; C; 1F70; # GREEK CAPITAL LETTER ALPHA WITH VARIA 1FBB; C; 1F71; # GREEK CAPITAL LETTER ALPHA WITH OXIA 1FBC; F; 03B1 03B9; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBC; S; 1FB3; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBE; C; 03B9; # GREEK PROSGEGRAMMENI 1FC2; F; 1F74 03B9; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC3; F; 03B7 03B9; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FC4; F; 03AE 03B9; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FC6; F; 03B7 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FC7; F; 03B7 0342 03B9; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC8; C; 1F72; # GREEK CAPITAL LETTER EPSILON WITH VARIA 1FC9; C; 1F73; # GREEK CAPITAL LETTER EPSILON WITH OXIA 1FCA; C; 1F74; # GREEK CAPITAL LETTER ETA WITH VARIA 1FCB; C; 1F75; # GREEK CAPITAL LETTER ETA WITH OXIA 1FCC; F; 03B7 03B9; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY 1FD9; C; 1FD1; # GREEK CAPITAL LETTER IOTA WITH MACRON 1FDA; C; 1F76; # GREEK CAPITAL LETTER IOTA WITH VARIA 1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA 1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI 1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FE8; C; 1FE0; # GREEK CAPITAL LETTER UPSILON WITH VRACHY 1FE9; C; 1FE1; # GREEK CAPITAL LETTER UPSILON WITH MACRON 1FEA; C; 1F7A; # GREEK CAPITAL LETTER UPSILON WITH VARIA 1FEB; C; 1F7B; # GREEK CAPITAL LETTER UPSILON WITH OXIA 1FEC; C; 1FE5; # GREEK CAPITAL LETTER RHO WITH DASIA 1FF2; F; 1F7C 03B9; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF3; F; 03C9 03B9; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FF4; F; 03CE 03B9; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FF6; F; 03C9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI 1FF7; F; 03C9 0342 03B9; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF8; C; 1F78; # GREEK CAPITAL LETTER OMICRON WITH VARIA 1FF9; C; 1F79; # GREEK CAPITAL LETTER OMICRON WITH OXIA 1FFA; C; 1F7C; # GREEK CAPITAL LETTER OMEGA WITH VARIA 1FFB; C; 1F7D; # GREEK CAPITAL LETTER OMEGA WITH OXIA 1FFC; F; 03C9 03B9; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 1FFC; S; 1FF3; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 2126; C; 03C9; # OHM SIGN 212A; C; 006B; # KELVIN SIGN 212B; C; 00E5; # ANGSTROM SIGN 2160; C; 2170; # ROMAN NUMERAL ONE 2161; C; 2171; # ROMAN NUMERAL TWO 2162; C; 2172; # ROMAN NUMERAL THREE 2163; C; 2173; # ROMAN NUMERAL FOUR 2164; C; 2174; # ROMAN NUMERAL FIVE 2165; C; 2175; # ROMAN NUMERAL SIX 2166; C; 2176; # ROMAN NUMERAL SEVEN 2167; C; 2177; # ROMAN NUMERAL EIGHT 2168; C; 2178; # ROMAN NUMERAL NINE 2169; C; 2179; # ROMAN NUMERAL TEN 216A; C; 217A; # ROMAN NUMERAL ELEVEN 216B; C; 217B; # ROMAN NUMERAL TWELVE 216C; C; 217C; # ROMAN NUMERAL FIFTY 216D; C; 217D; # ROMAN NUMERAL ONE HUNDRED 216E; C; 217E; # ROMAN NUMERAL FIVE HUNDRED 216F; C; 217F; # ROMAN NUMERAL ONE THOUSAND 24B6; C; 24D0; # CIRCLED LATIN CAPITAL LETTER A 24B7; C; 24D1; # CIRCLED LATIN CAPITAL LETTER B 24B8; C; 24D2; # CIRCLED LATIN CAPITAL LETTER C 24B9; C; 24D3; # CIRCLED LATIN CAPITAL LETTER D 24BA; C; 24D4; # CIRCLED LATIN CAPITAL LETTER E 24BB; C; 24D5; # CIRCLED LATIN CAPITAL LETTER F 24BC; C; 24D6; # CIRCLED LATIN CAPITAL LETTER G 24BD; C; 24D7; # CIRCLED LATIN CAPITAL LETTER H 24BE; C; 24D8; # CIRCLED LATIN CAPITAL LETTER I 24BF; C; 24D9; # CIRCLED LATIN CAPITAL LETTER J 24C0; C; 24DA; # CIRCLED LATIN CAPITAL LETTER K 24C1; C; 24DB; # CIRCLED LATIN CAPITAL LETTER L 24C2; C; 24DC; # CIRCLED LATIN CAPITAL LETTER M 24C3; C; 24DD; # CIRCLED LATIN CAPITAL LETTER N 24C4; C; 24DE; # CIRCLED LATIN CAPITAL LETTER O 24C5; C; 24DF; # CIRCLED LATIN CAPITAL LETTER P 24C6; C; 24E0; # CIRCLED LATIN CAPITAL LETTER Q 24C7; C; 24E1; # CIRCLED LATIN CAPITAL LETTER R 24C8; C; 24E2; # CIRCLED LATIN CAPITAL LETTER S 24C9; C; 24E3; # CIRCLED LATIN CAPITAL LETTER T 24CA; C; 24E4; # CIRCLED LATIN CAPITAL LETTER U 24CB; C; 24E5; # CIRCLED LATIN CAPITAL LETTER V 24CC; C; 24E6; # CIRCLED LATIN CAPITAL LETTER W 24CD; C; 24E7; # CIRCLED LATIN CAPITAL LETTER X 24CE; C; 24E8; # CIRCLED LATIN CAPITAL LETTER Y 24CF; C; 24E9; # CIRCLED LATIN CAPITAL LETTER Z FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH FB15; F; 0574 056B; # ARMENIAN SMALL LIGATURE MEN INI FB16; F; 057E 0576; # ARMENIAN SMALL LIGATURE VEW NOW FB17; F; 0574 056D; # ARMENIAN SMALL LIGATURE MEN XEH FF21; C; FF41; # FULLWIDTH LATIN CAPITAL LETTER A FF22; C; FF42; # FULLWIDTH LATIN CAPITAL LETTER B FF23; C; FF43; # FULLWIDTH LATIN CAPITAL LETTER C FF24; C; FF44; # FULLWIDTH LATIN CAPITAL LETTER D FF25; C; FF45; # FULLWIDTH LATIN CAPITAL LETTER E FF26; C; FF46; # FULLWIDTH LATIN CAPITAL LETTER F FF27; C; FF47; # FULLWIDTH LATIN CAPITAL LETTER G FF28; C; FF48; # FULLWIDTH LATIN CAPITAL LETTER H FF29; C; FF49; # FULLWIDTH LATIN CAPITAL LETTER I FF2A; C; FF4A; # FULLWIDTH LATIN CAPITAL LETTER J FF2B; C; FF4B; # FULLWIDTH LATIN CAPITAL LETTER K FF2C; C; FF4C; # FULLWIDTH LATIN CAPITAL LETTER L FF2D; C; FF4D; # FULLWIDTH LATIN CAPITAL LETTER M FF2E; C; FF4E; # FULLWIDTH LATIN CAPITAL LETTER N FF2F; C; FF4F; # FULLWIDTH LATIN CAPITAL LETTER O FF30; C; FF50; # FULLWIDTH LATIN CAPITAL LETTER P FF31; C; FF51; # FULLWIDTH LATIN CAPITAL LETTER Q FF32; C; FF52; # FULLWIDTH LATIN CAPITAL LETTER R FF33; C; FF53; # FULLWIDTH LATIN CAPITAL LETTER S FF34; C; FF54; # FULLWIDTH LATIN CAPITAL LETTER T FF35; C; FF55; # FULLWIDTH LATIN CAPITAL LETTER U FF36; C; FF56; # FULLWIDTH LATIN CAPITAL LETTER V FF37; C; FF57; # FULLWIDTH LATIN CAPITAL LETTER W FF38; C; FF58; # FULLWIDTH LATIN CAPITAL LETTER X FF39; C; FF59; # FULLWIDTH LATIN CAPITAL LETTER Y FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 10400; C; 10428; # DESERET CAPITAL LETTER LONG I 10401; C; 10429; # DESERET CAPITAL LETTER LONG E 10402; C; 1042A; # DESERET CAPITAL LETTER LONG A 10403; C; 1042B; # DESERET CAPITAL LETTER LONG AH 10404; C; 1042C; # DESERET CAPITAL LETTER LONG O 10405; C; 1042D; # DESERET CAPITAL LETTER LONG OO 10406; C; 1042E; # DESERET CAPITAL LETTER SHORT I 10407; C; 1042F; # DESERET CAPITAL LETTER SHORT E 10408; C; 10430; # DESERET CAPITAL LETTER SHORT A 10409; C; 10431; # DESERET CAPITAL LETTER SHORT AH 1040A; C; 10432; # DESERET CAPITAL LETTER SHORT O 1040B; C; 10433; # DESERET CAPITAL LETTER SHORT OO 1040C; C; 10434; # DESERET CAPITAL LETTER AY 1040D; C; 10435; # DESERET CAPITAL LETTER OW 1040E; C; 10436; # DESERET CAPITAL LETTER WU 1040F; C; 10437; # DESERET CAPITAL LETTER YEE 10410; C; 10438; # DESERET CAPITAL LETTER H 10411; C; 10439; # DESERET CAPITAL LETTER PEE 10412; C; 1043A; # DESERET CAPITAL LETTER BEE 10413; C; 1043B; # DESERET CAPITAL LETTER TEE 10414; C; 1043C; # DESERET CAPITAL LETTER DEE 10415; C; 1043D; # DESERET CAPITAL LETTER CHEE 10416; C; 1043E; # DESERET CAPITAL LETTER JEE 10417; C; 1043F; # DESERET CAPITAL LETTER KAY 10418; C; 10440; # DESERET CAPITAL LETTER GAY 10419; C; 10441; # DESERET CAPITAL LETTER EF 1041A; C; 10442; # DESERET CAPITAL LETTER VEE 1041B; C; 10443; # DESERET CAPITAL LETTER ETH 1041C; C; 10444; # DESERET CAPITAL LETTER THEE 1041D; C; 10445; # DESERET CAPITAL LETTER ES 1041E; C; 10446; # DESERET CAPITAL LETTER ZEE 1041F; C; 10447; # DESERET CAPITAL LETTER ESH 10420; C; 10448; # DESERET CAPITAL LETTER ZHEE 10421; C; 10449; # DESERET CAPITAL LETTER ER 10422; C; 1044A; # DESERET CAPITAL LETTER EL 10423; C; 1044B; # DESERET CAPITAL LETTER EM 10424; C; 1044C; # DESERET CAPITAL LETTER EN 10425; C; 1044D; # DESERET CAPITAL LETTER ENG libidn-1.38/doc/specifications/CompositionExclusions-3.2.0.txt0000644000000000000000000001644114053001337021126 00000000000000# CompositionExclusions-3.2.0.txt # Date: 2002-03-19,23:30:28 GMT [MD] # # This file lists the characters from the UAX #15 Composition Exclusion Table. # # The format of the comments in this file has been updated since the last version, # CompositionExclusions-3.txt. The only substantive change to this file between that # version and this one is the addition of U+2ADC FORKING. # # For more information, see # http://www.unicode.org/unicode/reports/tr15/#Primary Exclusion List Table # ================================================ # (1) Script Specifics # This list of characters cannot be derived from the UnicodeData file. # ================================================ 0958 # DEVANAGARI LETTER QA 0959 # DEVANAGARI LETTER KHHA 095A # DEVANAGARI LETTER GHHA 095B # DEVANAGARI LETTER ZA 095C # DEVANAGARI LETTER DDDHA 095D # DEVANAGARI LETTER RHA 095E # DEVANAGARI LETTER FA 095F # DEVANAGARI LETTER YYA 09DC # BENGALI LETTER RRA 09DD # BENGALI LETTER RHA 09DF # BENGALI LETTER YYA 0A33 # GURMUKHI LETTER LLA 0A36 # GURMUKHI LETTER SHA 0A59 # GURMUKHI LETTER KHHA 0A5A # GURMUKHI LETTER GHHA 0A5B # GURMUKHI LETTER ZA 0A5E # GURMUKHI LETTER FA 0B5C # ORIYA LETTER RRA 0B5D # ORIYA LETTER RHA 0F43 # TIBETAN LETTER GHA 0F4D # TIBETAN LETTER DDHA 0F52 # TIBETAN LETTER DHA 0F57 # TIBETAN LETTER BHA 0F5C # TIBETAN LETTER DZHA 0F69 # TIBETAN LETTER KSSA 0F76 # TIBETAN VOWEL SIGN VOCALIC R 0F78 # TIBETAN VOWEL SIGN VOCALIC L 0F93 # TIBETAN SUBJOINED LETTER GHA 0F9D # TIBETAN SUBJOINED LETTER DDHA 0FA2 # TIBETAN SUBJOINED LETTER DHA 0FA7 # TIBETAN SUBJOINED LETTER BHA 0FAC # TIBETAN SUBJOINED LETTER DZHA 0FB9 # TIBETAN SUBJOINED LETTER KSSA FB1D # HEBREW LETTER YOD WITH HIRIQ FB1F # HEBREW LIGATURE YIDDISH YOD YOD PATAH FB2A # HEBREW LETTER SHIN WITH SHIN DOT FB2B # HEBREW LETTER SHIN WITH SIN DOT FB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT FB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT FB2E # HEBREW LETTER ALEF WITH PATAH FB2F # HEBREW LETTER ALEF WITH QAMATS FB30 # HEBREW LETTER ALEF WITH MAPIQ FB31 # HEBREW LETTER BET WITH DAGESH FB32 # HEBREW LETTER GIMEL WITH DAGESH FB33 # HEBREW LETTER DALET WITH DAGESH FB34 # HEBREW LETTER HE WITH MAPIQ FB35 # HEBREW LETTER VAV WITH DAGESH FB36 # HEBREW LETTER ZAYIN WITH DAGESH FB38 # HEBREW LETTER TET WITH DAGESH FB39 # HEBREW LETTER YOD WITH DAGESH FB3A # HEBREW LETTER FINAL KAF WITH DAGESH FB3B # HEBREW LETTER KAF WITH DAGESH FB3C # HEBREW LETTER LAMED WITH DAGESH FB3E # HEBREW LETTER MEM WITH DAGESH FB40 # HEBREW LETTER NUN WITH DAGESH FB41 # HEBREW LETTER SAMEKH WITH DAGESH FB43 # HEBREW LETTER FINAL PE WITH DAGESH FB44 # HEBREW LETTER PE WITH DAGESH FB46 # HEBREW LETTER TSADI WITH DAGESH FB47 # HEBREW LETTER QOF WITH DAGESH FB48 # HEBREW LETTER RESH WITH DAGESH FB49 # HEBREW LETTER SHIN WITH DAGESH FB4A # HEBREW LETTER TAV WITH DAGESH FB4B # HEBREW LETTER VAV WITH HOLAM FB4C # HEBREW LETTER BET WITH RAFE FB4D # HEBREW LETTER KAF WITH RAFE FB4E # HEBREW LETTER PE WITH RAFE # Total code points: 67 # ================================================ # (2) Post Composition Version precomposed characters # These characters cannot be derived solely from the UnicodeData.txt file # in this version of Unicode. # ================================================ 2ADC # FORKING 1D15E # MUSICAL SYMBOL HALF NOTE 1D15F # MUSICAL SYMBOL QUARTER NOTE 1D160 # MUSICAL SYMBOL EIGHTH NOTE 1D161 # MUSICAL SYMBOL SIXTEENTH NOTE 1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE 1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE 1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE 1D1BB # MUSICAL SYMBOL MINIMA 1D1BC # MUSICAL SYMBOL MINIMA BLACK 1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE 1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK 1D1BF # MUSICAL SYMBOL FUSA WHITE 1D1C0 # MUSICAL SYMBOL FUSA BLACK # Total code points: 14 # ================================================ # (3) Singleton Decompositions # These characters can be derived from the UnicodeData file # by including all characters whose canonical decomposition # consists of a single character. # These characters are simply quoted here for reference. # ================================================ # 0340..0341 [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK # 0343 COMBINING GREEK KORONIS # 0374 GREEK NUMERAL SIGN # 037E GREEK QUESTION MARK # 0387 GREEK ANO TELEIA # 1F71 GREEK SMALL LETTER ALPHA WITH OXIA # 1F73 GREEK SMALL LETTER EPSILON WITH OXIA # 1F75 GREEK SMALL LETTER ETA WITH OXIA # 1F77 GREEK SMALL LETTER IOTA WITH OXIA # 1F79 GREEK SMALL LETTER OMICRON WITH OXIA # 1F7B GREEK SMALL LETTER UPSILON WITH OXIA # 1F7D GREEK SMALL LETTER OMEGA WITH OXIA # 1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA # 1FBE GREEK PROSGEGRAMMENI # 1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA # 1FCB GREEK CAPITAL LETTER ETA WITH OXIA # 1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA # 1FDB GREEK CAPITAL LETTER IOTA WITH OXIA # 1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA # 1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA # 1FEE..1FEF [2] GREEK DIALYTIKA AND OXIA..GREEK VARIA # 1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA # 1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA # 1FFD GREEK OXIA # 2000..2001 [2] EN QUAD..EM QUAD # 2126 OHM SIGN # 212A..212B [2] KELVIN SIGN..ANGSTROM SIGN # 2329 LEFT-POINTING ANGLE BRACKET # 232A RIGHT-POINTING ANGLE BRACKET # F900..FA0D [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D # FA10 CJK COMPATIBILITY IDEOGRAPH-FA10 # FA12 CJK COMPATIBILITY IDEOGRAPH-FA12 # FA15..FA1E [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E # FA20 CJK COMPATIBILITY IDEOGRAPH-FA20 # FA22 CJK COMPATIBILITY IDEOGRAPH-FA22 # FA25..FA26 [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26 # FA2A..FA2D [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D # FA30..FA6A [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A # 2F800..2FA1D [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D # Total code points: 924 # ================================================ # (4) Non-Starter Decompositions # These characters can be derived from the UnicodeData file # by including all characters whose canonical decomposition consists # of a sequence of characters, the first of which has a non-zero # combining class. # These characters are simply quoted here for reference. # ================================================ # 0344 COMBINING GREEK DIALYTIKA TONOS # 0F73 TIBETAN VOWEL SIGN II # 0F75 TIBETAN VOWEL SIGN UU # 0F81 TIBETAN VOWEL SIGN REVERSED II # Total code points: 4 libidn-1.38/doc/specifications/rfc3454.txt0000644000000000000000000023113514053001337015201 00000000000000Below there are data tables extracted from RFC 3454. The license for RFC 3454 is: Copyright (C) The Internet Society (2002). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Unfortunately, that license is non-free according to licensing@fsf.org: From: "Dave Turner via RT" Date: Thu, 08 Dec 2005 16:33:57 -0500 Subject: [gnu.org #211910] Are RFC specifications freely licensed? > Hi Dave! I know this is an old issue (last post in this thread was > about a year ago), but have you heard back from the licensing > committee on the RFC 2026 and RFC 3978 licenses? Sorry for the delay. The old terms are officially non-free. However, to be copyrightable there needs to be some originality, which isn't present here, see: From: "novalis@fsf.org via RT" Subject: Re: [gnu.org #211910] Are RFC specifications freely licensed? Date: Thu, 06 Jan 2005 18:32:02 -0500 >> >> > If not, it's entirely possible that they're not copyrightable, or that >> >> > they have very thin protection. I would need to see them specifically >> >> > to be able to determine this. >> >> >> >> The table fall under the old license. The ASN.1 schema fall under the >> >> new license. I'm attaching the tables, and the ASN.1 schema below. >> >> If it matters: Some tables are derived from Unicode tables, and some >> >> were probably created by hand. >> > >> > It looks to me like these tables do not have enough originality to be >> > copyrightable. The text surrounding them ("The following is the mapping >> > table from section 3....") is probably minimally original and should be >> > removed. >> >> Are you sure about this? I'm looking for something strong than "It >> looks". The tables were not trivial to create, it took the IETF some >> time (years) to arrive with the final tables. Perhaps the tables >> could be argued to contain some artistic value. But I'm not an expert >> on this, so these are just my thoughts. > > I'm not a lawyer. This isn't legal advice. If you need legal advice, > talk to a lawyer. I can get a second opinion on this from our lawyers, > if you think it's important, but it still won't be legal advice. > > From a copyright perspective, the time and effort ("sweat of the brow") > that a given thing takes don't matter (Fiest v. Rural Telephone > Service). What matters is the originality. > > I don't see a lot here that's original. The names are probably > original, but names are generally unprotected. And if the names are > needed for compatibility, the scenes a faire doctrine comes into play. Right, the names are not required, only the actual numbers are. Thanks, this information seem to solve my problem for the source code in libidn. So we can use this material. There may be other legal analysis that also reach the same conclusion. ----- Start Table A.1 ----- 0221 0234-024F 02AE-02AF 02EF-02FF 0350-035F 0370-0373 0376-0379 037B-037D 037F-0383 038B 038D 03A2 03CF 03F7-03FF 0487 04CF 04F6-04F7 04FA-04FF 0510-0530 0557-0558 0560 0588 058B-0590 05A2 05BA 05C5-05CF 05EB-05EF 05F5-060B 060D-061A 061C-061E 0620 063B-063F 0656-065F 06EE-06EF 06FF 070E 072D-072F 074B-077F 07B2-0900 0904 093A-093B 094E-094F 0955-0957 0971-0980 0984 098D-098E 0991-0992 09A9 09B1 09B3-09B5 09BA-09BB 09BD 09C5-09C6 09C9-09CA 09CE-09D6 09D8-09DB 09DE 09E4-09E5 09FB-0A01 0A03-0A04 0A0B-0A0E 0A11-0A12 0A29 0A31 0A34 0A37 0A3A-0A3B 0A3D 0A43-0A46 0A49-0A4A 0A4E-0A58 0A5D 0A5F-0A65 0A75-0A80 0A84 0A8C 0A8E 0A92 0AA9 0AB1 0AB4 0ABA-0ABB 0AC6 0ACA 0ACE-0ACF 0AD1-0ADF 0AE1-0AE5 0AF0-0B00 0B04 0B0D-0B0E 0B11-0B12 0B29 0B31 0B34-0B35 0B3A-0B3B 0B44-0B46 0B49-0B4A 0B4E-0B55 0B58-0B5B 0B5E 0B62-0B65 0B71-0B81 0B84 0B8B-0B8D 0B91 0B96-0B98 0B9B 0B9D 0BA0-0BA2 0BA5-0BA7 0BAB-0BAD 0BB6 0BBA-0BBD 0BC3-0BC5 0BC9 0BCE-0BD6 0BD8-0BE6 0BF3-0C00 0C04 0C0D 0C11 0C29 0C34 0C3A-0C3D 0C45 0C49 0C4E-0C54 0C57-0C5F 0C62-0C65 0C70-0C81 0C84 0C8D 0C91 0CA9 0CB4 0CBA-0CBD 0CC5 0CC9 0CCE-0CD4 0CD7-0CDD 0CDF 0CE2-0CE5 0CF0-0D01 0D04 0D0D 0D11 0D29 0D3A-0D3D 0D44-0D45 0D49 0D4E-0D56 0D58-0D5F 0D62-0D65 0D70-0D81 0D84 0D97-0D99 0DB2 0DBC 0DBE-0DBF 0DC7-0DC9 0DCB-0DCE 0DD5 0DD7 0DE0-0DF1 0DF5-0E00 0E3B-0E3E 0E5C-0E80 0E83 0E85-0E86 0E89 0E8B-0E8C 0E8E-0E93 0E98 0EA0 0EA4 0EA6 0EA8-0EA9 0EAC 0EBA 0EBE-0EBF 0EC5 0EC7 0ECE-0ECF 0EDA-0EDB 0EDE-0EFF 0F48 0F6B-0F70 0F8C-0F8F 0F98 0FBD 0FCD-0FCE 0FD0-0FFF 1022 1028 102B 1033-1035 103A-103F 105A-109F 10C6-10CF 10F9-10FA 10FC-10FF 115A-115E 11A3-11A7 11FA-11FF 1207 1247 1249 124E-124F 1257 1259 125E-125F 1287 1289 128E-128F 12AF 12B1 12B6-12B7 12BF 12C1 12C6-12C7 12CF 12D7 12EF 130F 1311 1316-1317 131F 1347 135B-1360 137D-139F 13F5-1400 1677-167F 169D-169F 16F1-16FF 170D 1715-171F 1737-173F 1754-175F 176D 1771 1774-177F 17DD-17DF 17EA-17FF 180F 181A-181F 1878-187F 18AA-1DFF 1E9C-1E9F 1EFA-1EFF 1F16-1F17 1F1E-1F1F 1F46-1F47 1F4E-1F4F 1F58 1F5A 1F5C 1F5E 1F7E-1F7F 1FB5 1FC5 1FD4-1FD5 1FDC 1FF0-1FF1 1FF5 1FFF 2053-2056 2058-205E 2064-2069 2072-2073 208F-209F 20B2-20CF 20EB-20FF 213B-213C 214C-2152 2184-218F 23CF-23FF 2427-243F 244B-245F 24FF 2614-2615 2618 267E-267F 268A-2700 2705 270A-270B 2728 274C 274E 2753-2755 2757 275F-2760 2795-2797 27B0 27BF-27CF 27EC-27EF 2B00-2E7F 2E9A 2EF4-2EFF 2FD6-2FEF 2FFC-2FFF 3040 3097-3098 3100-3104 312D-3130 318F 31B8-31EF 321D-321F 3244-3250 327C-327E 32CC-32CF 32FF 3377-337A 33DE-33DF 33FF 4DB6-4DFF 9FA6-9FFF A48D-A48F A4C7-ABFF D7A4-D7FF FA2E-FA2F FA6B-FAFF FB07-FB12 FB18-FB1C FB37 FB3D FB3F FB42 FB45 FBB2-FBD2 FD40-FD4F FD90-FD91 FDC8-FDCF FDFD-FDFF FE10-FE1F FE24-FE2F FE47-FE48 FE53 FE67 FE6C-FE6F FE75 FEFD-FEFE FF00 FFBF-FFC1 FFC8-FFC9 FFD0-FFD1 FFD8-FFD9 FFDD-FFDF FFE7 FFEF-FFF8 10000-102FF 1031F 10324-1032F 1034B-103FF 10426-10427 1044E-1CFFF 1D0F6-1D0FF 1D127-1D129 1D1DE-1D3FF 1D455 1D49D 1D4A0-1D4A1 1D4A3-1D4A4 1D4A7-1D4A8 1D4AD 1D4BA 1D4BC 1D4C1 1D4C4 1D506 1D50B-1D50C 1D515 1D51D 1D53A 1D53F 1D545 1D547-1D549 1D551 1D6A4-1D6A7 1D7CA-1D7CD 1D800-1FFFD 2A6D7-2F7FF 2FA1E-2FFFD 30000-3FFFD 40000-4FFFD 50000-5FFFD 60000-6FFFD 70000-7FFFD 80000-8FFFD 90000-9FFFD A0000-AFFFD B0000-BFFFD C0000-CFFFD D0000-DFFFD E0000 E0002-E001F E0080-EFFFD ----- End Table A.1 ----- ----- Start Table B.1 ----- 00AD; ; Map to nothing 034F; ; Map to nothing 1806; ; Map to nothing 180B; ; Map to nothing 180C; ; Map to nothing 180D; ; Map to nothing 200B; ; Map to nothing 200C; ; Map to nothing 200D; ; Map to nothing 2060; ; Map to nothing FE00; ; Map to nothing FE01; ; Map to nothing FE02; ; Map to nothing FE03; ; Map to nothing FE04; ; Map to nothing FE05; ; Map to nothing FE06; ; Map to nothing FE07; ; Map to nothing FE08; ; Map to nothing FE09; ; Map to nothing FE0A; ; Map to nothing FE0B; ; Map to nothing FE0C; ; Map to nothing FE0D; ; Map to nothing FE0E; ; Map to nothing FE0F; ; Map to nothing FEFF; ; Map to nothing ----- End Table B.1 ----- ----- Start Table B.2 ----- 0041; 0061; Case map 0042; 0062; Case map 0043; 0063; Case map 0044; 0064; Case map 0045; 0065; Case map 0046; 0066; Case map 0047; 0067; Case map 0048; 0068; Case map 0049; 0069; Case map 004A; 006A; Case map 004B; 006B; Case map 004C; 006C; Case map 004D; 006D; Case map 004E; 006E; Case map 004F; 006F; Case map 0050; 0070; Case map 0051; 0071; Case map 0052; 0072; Case map 0053; 0073; Case map 0054; 0074; Case map 0055; 0075; Case map 0056; 0076; Case map 0057; 0077; Case map 0058; 0078; Case map 0059; 0079; Case map 005A; 007A; Case map 00B5; 03BC; Case map 00C0; 00E0; Case map 00C1; 00E1; Case map 00C2; 00E2; Case map 00C3; 00E3; Case map 00C4; 00E4; Case map 00C5; 00E5; Case map 00C6; 00E6; Case map 00C7; 00E7; Case map 00C8; 00E8; Case map 00C9; 00E9; Case map 00CA; 00EA; Case map 00CB; 00EB; Case map 00CC; 00EC; Case map 00CD; 00ED; Case map 00CE; 00EE; Case map 00CF; 00EF; Case map 00D0; 00F0; Case map 00D1; 00F1; Case map 00D2; 00F2; Case map 00D3; 00F3; Case map 00D4; 00F4; Case map 00D5; 00F5; Case map 00D6; 00F6; Case map 00D8; 00F8; Case map 00D9; 00F9; Case map 00DA; 00FA; Case map 00DB; 00FB; Case map 00DC; 00FC; Case map 00DD; 00FD; Case map 00DE; 00FE; Case map 00DF; 0073 0073; Case map 0100; 0101; Case map 0102; 0103; Case map 0104; 0105; Case map 0106; 0107; Case map 0108; 0109; Case map 010A; 010B; Case map 010C; 010D; Case map 010E; 010F; Case map 0110; 0111; Case map 0112; 0113; Case map 0114; 0115; Case map 0116; 0117; Case map 0118; 0119; Case map 011A; 011B; Case map 011C; 011D; Case map 011E; 011F; Case map 0120; 0121; Case map 0122; 0123; Case map 0124; 0125; Case map 0126; 0127; Case map 0128; 0129; Case map 012A; 012B; Case map 012C; 012D; Case map 012E; 012F; Case map 0130; 0069 0307; Case map 0132; 0133; Case map 0134; 0135; Case map 0136; 0137; Case map 0139; 013A; Case map 013B; 013C; Case map 013D; 013E; Case map 013F; 0140; Case map 0141; 0142; Case map 0143; 0144; Case map 0145; 0146; Case map 0147; 0148; Case map 0149; 02BC 006E; Case map 014A; 014B; Case map 014C; 014D; Case map 014E; 014F; Case map 0150; 0151; Case map 0152; 0153; Case map 0154; 0155; Case map 0156; 0157; Case map 0158; 0159; Case map 015A; 015B; Case map 015C; 015D; Case map 015E; 015F; Case map 0160; 0161; Case map 0162; 0163; Case map 0164; 0165; Case map 0166; 0167; Case map 0168; 0169; Case map 016A; 016B; Case map 016C; 016D; Case map 016E; 016F; Case map 0170; 0171; Case map 0172; 0173; Case map 0174; 0175; Case map 0176; 0177; Case map 0178; 00FF; Case map 0179; 017A; Case map 017B; 017C; Case map 017D; 017E; Case map 017F; 0073; Case map 0181; 0253; Case map 0182; 0183; Case map 0184; 0185; Case map 0186; 0254; Case map 0187; 0188; Case map 0189; 0256; Case map 018A; 0257; Case map 018B; 018C; Case map 018E; 01DD; Case map 018F; 0259; Case map 0190; 025B; Case map 0191; 0192; Case map 0193; 0260; Case map 0194; 0263; Case map 0196; 0269; Case map 0197; 0268; Case map 0198; 0199; Case map 019C; 026F; Case map 019D; 0272; Case map 019F; 0275; Case map 01A0; 01A1; Case map 01A2; 01A3; Case map 01A4; 01A5; Case map 01A6; 0280; Case map 01A7; 01A8; Case map 01A9; 0283; Case map 01AC; 01AD; Case map 01AE; 0288; Case map 01AF; 01B0; Case map 01B1; 028A; Case map 01B2; 028B; Case map 01B3; 01B4; Case map 01B5; 01B6; Case map 01B7; 0292; Case map 01B8; 01B9; Case map 01BC; 01BD; Case map 01C4; 01C6; Case map 01C5; 01C6; Case map 01C7; 01C9; Case map 01C8; 01C9; Case map 01CA; 01CC; Case map 01CB; 01CC; Case map 01CD; 01CE; Case map 01CF; 01D0; Case map 01D1; 01D2; Case map 01D3; 01D4; Case map 01D5; 01D6; Case map 01D7; 01D8; Case map 01D9; 01DA; Case map 01DB; 01DC; Case map 01DE; 01DF; Case map 01E0; 01E1; Case map 01E2; 01E3; Case map 01E4; 01E5; Case map 01E6; 01E7; Case map 01E8; 01E9; Case map 01EA; 01EB; Case map 01EC; 01ED; Case map 01EE; 01EF; Case map 01F0; 006A 030C; Case map 01F1; 01F3; Case map 01F2; 01F3; Case map 01F4; 01F5; Case map 01F6; 0195; Case map 01F7; 01BF; Case map 01F8; 01F9; Case map 01FA; 01FB; Case map 01FC; 01FD; Case map 01FE; 01FF; Case map 0200; 0201; Case map 0202; 0203; Case map 0204; 0205; Case map 0206; 0207; Case map 0208; 0209; Case map 020A; 020B; Case map 020C; 020D; Case map 020E; 020F; Case map 0210; 0211; Case map 0212; 0213; Case map 0214; 0215; Case map 0216; 0217; Case map 0218; 0219; Case map 021A; 021B; Case map 021C; 021D; Case map 021E; 021F; Case map 0220; 019E; Case map 0222; 0223; Case map 0224; 0225; Case map 0226; 0227; Case map 0228; 0229; Case map 022A; 022B; Case map 022C; 022D; Case map 022E; 022F; Case map 0230; 0231; Case map 0232; 0233; Case map 0345; 03B9; Case map 037A; 0020 03B9; Additional folding 0386; 03AC; Case map 0388; 03AD; Case map 0389; 03AE; Case map 038A; 03AF; Case map 038C; 03CC; Case map 038E; 03CD; Case map 038F; 03CE; Case map 0390; 03B9 0308 0301; Case map 0391; 03B1; Case map 0392; 03B2; Case map 0393; 03B3; Case map 0394; 03B4; Case map 0395; 03B5; Case map 0396; 03B6; Case map 0397; 03B7; Case map 0398; 03B8; Case map 0399; 03B9; Case map 039A; 03BA; Case map 039B; 03BB; Case map 039C; 03BC; Case map 039D; 03BD; Case map 039E; 03BE; Case map 039F; 03BF; Case map 03A0; 03C0; Case map 03A1; 03C1; Case map 03A3; 03C3; Case map 03A4; 03C4; Case map 03A5; 03C5; Case map 03A6; 03C6; Case map 03A7; 03C7; Case map 03A8; 03C8; Case map 03A9; 03C9; Case map 03AA; 03CA; Case map 03AB; 03CB; Case map 03B0; 03C5 0308 0301; Case map 03C2; 03C3; Case map 03D0; 03B2; Case map 03D1; 03B8; Case map 03D2; 03C5; Additional folding 03D3; 03CD; Additional folding 03D4; 03CB; Additional folding 03D5; 03C6; Case map 03D6; 03C0; Case map 03D8; 03D9; Case map 03DA; 03DB; Case map 03DC; 03DD; Case map 03DE; 03DF; Case map 03E0; 03E1; Case map 03E2; 03E3; Case map 03E4; 03E5; Case map 03E6; 03E7; Case map 03E8; 03E9; Case map 03EA; 03EB; Case map 03EC; 03ED; Case map 03EE; 03EF; Case map 03F0; 03BA; Case map 03F1; 03C1; Case map 03F2; 03C3; Case map 03F4; 03B8; Case map 03F5; 03B5; Case map 0400; 0450; Case map 0401; 0451; Case map 0402; 0452; Case map 0403; 0453; Case map 0404; 0454; Case map 0405; 0455; Case map 0406; 0456; Case map 0407; 0457; Case map 0408; 0458; Case map 0409; 0459; Case map 040A; 045A; Case map 040B; 045B; Case map 040C; 045C; Case map 040D; 045D; Case map 040E; 045E; Case map 040F; 045F; Case map 0410; 0430; Case map 0411; 0431; Case map 0412; 0432; Case map 0413; 0433; Case map 0414; 0434; Case map 0415; 0435; Case map 0416; 0436; Case map 0417; 0437; Case map 0418; 0438; Case map 0419; 0439; Case map 041A; 043A; Case map 041B; 043B; Case map 041C; 043C; Case map 041D; 043D; Case map 041E; 043E; Case map 041F; 043F; Case map 0420; 0440; Case map 0421; 0441; Case map 0422; 0442; Case map 0423; 0443; Case map 0424; 0444; Case map 0425; 0445; Case map 0426; 0446; Case map 0427; 0447; Case map 0428; 0448; Case map 0429; 0449; Case map 042A; 044A; Case map 042B; 044B; Case map 042C; 044C; Case map 042D; 044D; Case map 042E; 044E; Case map 042F; 044F; Case map 0460; 0461; Case map 0462; 0463; Case map 0464; 0465; Case map 0466; 0467; Case map 0468; 0469; Case map 046A; 046B; Case map 046C; 046D; Case map 046E; 046F; Case map 0470; 0471; Case map 0472; 0473; Case map 0474; 0475; Case map 0476; 0477; Case map 0478; 0479; Case map 047A; 047B; Case map 047C; 047D; Case map 047E; 047F; Case map 0480; 0481; Case map 048A; 048B; Case map 048C; 048D; Case map 048E; 048F; Case map 0490; 0491; Case map 0492; 0493; Case map 0494; 0495; Case map 0496; 0497; Case map 0498; 0499; Case map 049A; 049B; Case map 049C; 049D; Case map 049E; 049F; Case map 04A0; 04A1; Case map 04A2; 04A3; Case map 04A4; 04A5; Case map 04A6; 04A7; Case map 04A8; 04A9; Case map 04AA; 04AB; Case map 04AC; 04AD; Case map 04AE; 04AF; Case map 04B0; 04B1; Case map 04B2; 04B3; Case map 04B4; 04B5; Case map 04B6; 04B7; Case map 04B8; 04B9; Case map 04BA; 04BB; Case map 04BC; 04BD; Case map 04BE; 04BF; Case map 04C1; 04C2; Case map 04C3; 04C4; Case map 04C5; 04C6; Case map 04C7; 04C8; Case map 04C9; 04CA; Case map 04CB; 04CC; Case map 04CD; 04CE; Case map 04D0; 04D1; Case map 04D2; 04D3; Case map 04D4; 04D5; Case map 04D6; 04D7; Case map 04D8; 04D9; Case map 04DA; 04DB; Case map 04DC; 04DD; Case map 04DE; 04DF; Case map 04E0; 04E1; Case map 04E2; 04E3; Case map 04E4; 04E5; Case map 04E6; 04E7; Case map 04E8; 04E9; Case map 04EA; 04EB; Case map 04EC; 04ED; Case map 04EE; 04EF; Case map 04F0; 04F1; Case map 04F2; 04F3; Case map 04F4; 04F5; Case map 04F8; 04F9; Case map 0500; 0501; Case map 0502; 0503; Case map 0504; 0505; Case map 0506; 0507; Case map 0508; 0509; Case map 050A; 050B; Case map 050C; 050D; Case map 050E; 050F; Case map 0531; 0561; Case map 0532; 0562; Case map 0533; 0563; Case map 0534; 0564; Case map 0535; 0565; Case map 0536; 0566; Case map 0537; 0567; Case map 0538; 0568; Case map 0539; 0569; Case map 053A; 056A; Case map 053B; 056B; Case map 053C; 056C; Case map 053D; 056D; Case map 053E; 056E; Case map 053F; 056F; Case map 0540; 0570; Case map 0541; 0571; Case map 0542; 0572; Case map 0543; 0573; Case map 0544; 0574; Case map 0545; 0575; Case map 0546; 0576; Case map 0547; 0577; Case map 0548; 0578; Case map 0549; 0579; Case map 054A; 057A; Case map 054B; 057B; Case map 054C; 057C; Case map 054D; 057D; Case map 054E; 057E; Case map 054F; 057F; Case map 0550; 0580; Case map 0551; 0581; Case map 0552; 0582; Case map 0553; 0583; Case map 0554; 0584; Case map 0555; 0585; Case map 0556; 0586; Case map 0587; 0565 0582; Case map 1E00; 1E01; Case map 1E02; 1E03; Case map 1E04; 1E05; Case map 1E06; 1E07; Case map 1E08; 1E09; Case map 1E0A; 1E0B; Case map 1E0C; 1E0D; Case map 1E0E; 1E0F; Case map 1E10; 1E11; Case map 1E12; 1E13; Case map 1E14; 1E15; Case map 1E16; 1E17; Case map 1E18; 1E19; Case map 1E1A; 1E1B; Case map 1E1C; 1E1D; Case map 1E1E; 1E1F; Case map 1E20; 1E21; Case map 1E22; 1E23; Case map 1E24; 1E25; Case map 1E26; 1E27; Case map 1E28; 1E29; Case map 1E2A; 1E2B; Case map 1E2C; 1E2D; Case map 1E2E; 1E2F; Case map 1E30; 1E31; Case map 1E32; 1E33; Case map 1E34; 1E35; Case map 1E36; 1E37; Case map 1E38; 1E39; Case map 1E3A; 1E3B; Case map 1E3C; 1E3D; Case map 1E3E; 1E3F; Case map 1E40; 1E41; Case map 1E42; 1E43; Case map 1E44; 1E45; Case map 1E46; 1E47; Case map 1E48; 1E49; Case map 1E4A; 1E4B; Case map 1E4C; 1E4D; Case map 1E4E; 1E4F; Case map 1E50; 1E51; Case map 1E52; 1E53; Case map 1E54; 1E55; Case map 1E56; 1E57; Case map 1E58; 1E59; Case map 1E5A; 1E5B; Case map 1E5C; 1E5D; Case map 1E5E; 1E5F; Case map 1E60; 1E61; Case map 1E62; 1E63; Case map 1E64; 1E65; Case map 1E66; 1E67; Case map 1E68; 1E69; Case map 1E6A; 1E6B; Case map 1E6C; 1E6D; Case map 1E6E; 1E6F; Case map 1E70; 1E71; Case map 1E72; 1E73; Case map 1E74; 1E75; Case map 1E76; 1E77; Case map 1E78; 1E79; Case map 1E7A; 1E7B; Case map 1E7C; 1E7D; Case map 1E7E; 1E7F; Case map 1E80; 1E81; Case map 1E82; 1E83; Case map 1E84; 1E85; Case map 1E86; 1E87; Case map 1E88; 1E89; Case map 1E8A; 1E8B; Case map 1E8C; 1E8D; Case map 1E8E; 1E8F; Case map 1E90; 1E91; Case map 1E92; 1E93; Case map 1E94; 1E95; Case map 1E96; 0068 0331; Case map 1E97; 0074 0308; Case map 1E98; 0077 030A; Case map 1E99; 0079 030A; Case map 1E9A; 0061 02BE; Case map 1E9B; 1E61; Case map 1EA0; 1EA1; Case map 1EA2; 1EA3; Case map 1EA4; 1EA5; Case map 1EA6; 1EA7; Case map 1EA8; 1EA9; Case map 1EAA; 1EAB; Case map 1EAC; 1EAD; Case map 1EAE; 1EAF; Case map 1EB0; 1EB1; Case map 1EB2; 1EB3; Case map 1EB4; 1EB5; Case map 1EB6; 1EB7; Case map 1EB8; 1EB9; Case map 1EBA; 1EBB; Case map 1EBC; 1EBD; Case map 1EBE; 1EBF; Case map 1EC0; 1EC1; Case map 1EC2; 1EC3; Case map 1EC4; 1EC5; Case map 1EC6; 1EC7; Case map 1EC8; 1EC9; Case map 1ECA; 1ECB; Case map 1ECC; 1ECD; Case map 1ECE; 1ECF; Case map 1ED0; 1ED1; Case map 1ED2; 1ED3; Case map 1ED4; 1ED5; Case map 1ED6; 1ED7; Case map 1ED8; 1ED9; Case map 1EDA; 1EDB; Case map 1EDC; 1EDD; Case map 1EDE; 1EDF; Case map 1EE0; 1EE1; Case map 1EE2; 1EE3; Case map 1EE4; 1EE5; Case map 1EE6; 1EE7; Case map 1EE8; 1EE9; Case map 1EEA; 1EEB; Case map 1EEC; 1EED; Case map 1EEE; 1EEF; Case map 1EF0; 1EF1; Case map 1EF2; 1EF3; Case map 1EF4; 1EF5; Case map 1EF6; 1EF7; Case map 1EF8; 1EF9; Case map 1F08; 1F00; Case map 1F09; 1F01; Case map 1F0A; 1F02; Case map 1F0B; 1F03; Case map 1F0C; 1F04; Case map 1F0D; 1F05; Case map 1F0E; 1F06; Case map 1F0F; 1F07; Case map 1F18; 1F10; Case map 1F19; 1F11; Case map 1F1A; 1F12; Case map 1F1B; 1F13; Case map 1F1C; 1F14; Case map 1F1D; 1F15; Case map 1F28; 1F20; Case map 1F29; 1F21; Case map 1F2A; 1F22; Case map 1F2B; 1F23; Case map 1F2C; 1F24; Case map 1F2D; 1F25; Case map 1F2E; 1F26; Case map 1F2F; 1F27; Case map 1F38; 1F30; Case map 1F39; 1F31; Case map 1F3A; 1F32; Case map 1F3B; 1F33; Case map 1F3C; 1F34; Case map 1F3D; 1F35; Case map 1F3E; 1F36; Case map 1F3F; 1F37; Case map 1F48; 1F40; Case map 1F49; 1F41; Case map 1F4A; 1F42; Case map 1F4B; 1F43; Case map 1F4C; 1F44; Case map 1F4D; 1F45; Case map 1F50; 03C5 0313; Case map 1F52; 03C5 0313 0300; Case map 1F54; 03C5 0313 0301; Case map 1F56; 03C5 0313 0342; Case map 1F59; 1F51; Case map 1F5B; 1F53; Case map 1F5D; 1F55; Case map 1F5F; 1F57; Case map 1F68; 1F60; Case map 1F69; 1F61; Case map 1F6A; 1F62; Case map 1F6B; 1F63; Case map 1F6C; 1F64; Case map 1F6D; 1F65; Case map 1F6E; 1F66; Case map 1F6F; 1F67; Case map 1F80; 1F00 03B9; Case map 1F81; 1F01 03B9; Case map 1F82; 1F02 03B9; Case map 1F83; 1F03 03B9; Case map 1F84; 1F04 03B9; Case map 1F85; 1F05 03B9; Case map 1F86; 1F06 03B9; Case map 1F87; 1F07 03B9; Case map 1F88; 1F00 03B9; Case map 1F89; 1F01 03B9; Case map 1F8A; 1F02 03B9; Case map 1F8B; 1F03 03B9; Case map 1F8C; 1F04 03B9; Case map 1F8D; 1F05 03B9; Case map 1F8E; 1F06 03B9; Case map 1F8F; 1F07 03B9; Case map 1F90; 1F20 03B9; Case map 1F91; 1F21 03B9; Case map 1F92; 1F22 03B9; Case map 1F93; 1F23 03B9; Case map 1F94; 1F24 03B9; Case map 1F95; 1F25 03B9; Case map 1F96; 1F26 03B9; Case map 1F97; 1F27 03B9; Case map 1F98; 1F20 03B9; Case map 1F99; 1F21 03B9; Case map 1F9A; 1F22 03B9; Case map 1F9B; 1F23 03B9; Case map 1F9C; 1F24 03B9; Case map 1F9D; 1F25 03B9; Case map 1F9E; 1F26 03B9; Case map 1F9F; 1F27 03B9; Case map 1FA0; 1F60 03B9; Case map 1FA1; 1F61 03B9; Case map 1FA2; 1F62 03B9; Case map 1FA3; 1F63 03B9; Case map 1FA4; 1F64 03B9; Case map 1FA5; 1F65 03B9; Case map 1FA6; 1F66 03B9; Case map 1FA7; 1F67 03B9; Case map 1FA8; 1F60 03B9; Case map 1FA9; 1F61 03B9; Case map 1FAA; 1F62 03B9; Case map 1FAB; 1F63 03B9; Case map 1FAC; 1F64 03B9; Case map 1FAD; 1F65 03B9; Case map 1FAE; 1F66 03B9; Case map 1FAF; 1F67 03B9; Case map 1FB2; 1F70 03B9; Case map 1FB3; 03B1 03B9; Case map 1FB4; 03AC 03B9; Case map 1FB6; 03B1 0342; Case map 1FB7; 03B1 0342 03B9; Case map 1FB8; 1FB0; Case map 1FB9; 1FB1; Case map 1FBA; 1F70; Case map 1FBB; 1F71; Case map 1FBC; 03B1 03B9; Case map 1FBE; 03B9; Case map 1FC2; 1F74 03B9; Case map 1FC3; 03B7 03B9; Case map 1FC4; 03AE 03B9; Case map 1FC6; 03B7 0342; Case map 1FC7; 03B7 0342 03B9; Case map 1FC8; 1F72; Case map 1FC9; 1F73; Case map 1FCA; 1F74; Case map 1FCB; 1F75; Case map 1FCC; 03B7 03B9; Case map 1FD2; 03B9 0308 0300; Case map 1FD3; 03B9 0308 0301; Case map 1FD6; 03B9 0342; Case map 1FD7; 03B9 0308 0342; Case map 1FD8; 1FD0; Case map 1FD9; 1FD1; Case map 1FDA; 1F76; Case map 1FDB; 1F77; Case map 1FE2; 03C5 0308 0300; Case map 1FE3; 03C5 0308 0301; Case map 1FE4; 03C1 0313; Case map 1FE6; 03C5 0342; Case map 1FE7; 03C5 0308 0342; Case map 1FE8; 1FE0; Case map 1FE9; 1FE1; Case map 1FEA; 1F7A; Case map 1FEB; 1F7B; Case map 1FEC; 1FE5; Case map 1FF2; 1F7C 03B9; Case map 1FF3; 03C9 03B9; Case map 1FF4; 03CE 03B9; Case map 1FF6; 03C9 0342; Case map 1FF7; 03C9 0342 03B9; Case map 1FF8; 1F78; Case map 1FF9; 1F79; Case map 1FFA; 1F7C; Case map 1FFB; 1F7D; Case map 1FFC; 03C9 03B9; Case map 20A8; 0072 0073; Additional folding 2102; 0063; Additional folding 2103; 00B0 0063; Additional folding 2107; 025B; Additional folding 2109; 00B0 0066; Additional folding 210B; 0068; Additional folding 210C; 0068; Additional folding 210D; 0068; Additional folding 2110; 0069; Additional folding 2111; 0069; Additional folding 2112; 006C; Additional folding 2115; 006E; Additional folding 2116; 006E 006F; Additional folding 2119; 0070; Additional folding 211A; 0071; Additional folding 211B; 0072; Additional folding 211C; 0072; Additional folding 211D; 0072; Additional folding 2120; 0073 006D; Additional folding 2121; 0074 0065 006C; Additional folding 2122; 0074 006D; Additional folding 2124; 007A; Additional folding 2126; 03C9; Case map 2128; 007A; Additional folding 212A; 006B; Case map 212B; 00E5; Case map 212C; 0062; Additional folding 212D; 0063; Additional folding 2130; 0065; Additional folding 2131; 0066; Additional folding 2133; 006D; Additional folding 213E; 03B3; Additional folding 213F; 03C0; Additional folding 2145; 0064; Additional folding 2160; 2170; Case map 2161; 2171; Case map 2162; 2172; Case map 2163; 2173; Case map 2164; 2174; Case map 2165; 2175; Case map 2166; 2176; Case map 2167; 2177; Case map 2168; 2178; Case map 2169; 2179; Case map 216A; 217A; Case map 216B; 217B; Case map 216C; 217C; Case map 216D; 217D; Case map 216E; 217E; Case map 216F; 217F; Case map 24B6; 24D0; Case map 24B7; 24D1; Case map 24B8; 24D2; Case map 24B9; 24D3; Case map 24BA; 24D4; Case map 24BB; 24D5; Case map 24BC; 24D6; Case map 24BD; 24D7; Case map 24BE; 24D8; Case map 24BF; 24D9; Case map 24C0; 24DA; Case map 24C1; 24DB; Case map 24C2; 24DC; Case map 24C3; 24DD; Case map 24C4; 24DE; Case map 24C5; 24DF; Case map 24C6; 24E0; Case map 24C7; 24E1; Case map 24C8; 24E2; Case map 24C9; 24E3; Case map 24CA; 24E4; Case map 24CB; 24E5; Case map 24CC; 24E6; Case map 24CD; 24E7; Case map 24CE; 24E8; Case map 24CF; 24E9; Case map 3371; 0068 0070 0061; Additional folding 3373; 0061 0075; Additional folding 3375; 006F 0076; Additional folding 3380; 0070 0061; Additional folding 3381; 006E 0061; Additional folding 3382; 03BC 0061; Additional folding 3383; 006D 0061; Additional folding 3384; 006B 0061; Additional folding 3385; 006B 0062; Additional folding 3386; 006D 0062; Additional folding 3387; 0067 0062; Additional folding 338A; 0070 0066; Additional folding 338B; 006E 0066; Additional folding 338C; 03BC 0066; Additional folding 3390; 0068 007A; Additional folding 3391; 006B 0068 007A; Additional folding 3392; 006D 0068 007A; Additional folding 3393; 0067 0068 007A; Additional folding 3394; 0074 0068 007A; Additional folding 33A9; 0070 0061; Additional folding 33AA; 006B 0070 0061; Additional folding 33AB; 006D 0070 0061; Additional folding 33AC; 0067 0070 0061; Additional folding 33B4; 0070 0076; Additional folding 33B5; 006E 0076; Additional folding 33B6; 03BC 0076; Additional folding 33B7; 006D 0076; Additional folding 33B8; 006B 0076; Additional folding 33B9; 006D 0076; Additional folding 33BA; 0070 0077; Additional folding 33BB; 006E 0077; Additional folding 33BC; 03BC 0077; Additional folding 33BD; 006D 0077; Additional folding 33BE; 006B 0077; Additional folding 33BF; 006D 0077; Additional folding 33C0; 006B 03C9; Additional folding 33C1; 006D 03C9; Additional folding 33C3; 0062 0071; Additional folding 33C6; 0063 2215 006B 0067; Additional folding 33C7; 0063 006F 002E; Additional folding 33C8; 0064 0062; Additional folding 33C9; 0067 0079; Additional folding 33CB; 0068 0070; Additional folding 33CD; 006B 006B; Additional folding 33CE; 006B 006D; Additional folding 33D7; 0070 0068; Additional folding 33D9; 0070 0070 006D; Additional folding 33DA; 0070 0072; Additional folding 33DC; 0073 0076; Additional folding 33DD; 0077 0062; Additional folding FB00; 0066 0066; Case map FB01; 0066 0069; Case map FB02; 0066 006C; Case map FB03; 0066 0066 0069; Case map FB04; 0066 0066 006C; Case map FB05; 0073 0074; Case map FB06; 0073 0074; Case map FB13; 0574 0576; Case map FB14; 0574 0565; Case map FB15; 0574 056B; Case map FB16; 057E 0576; Case map FB17; 0574 056D; Case map FF21; FF41; Case map FF22; FF42; Case map FF23; FF43; Case map FF24; FF44; Case map FF25; FF45; Case map FF26; FF46; Case map FF27; FF47; Case map FF28; FF48; Case map FF29; FF49; Case map FF2A; FF4A; Case map FF2B; FF4B; Case map FF2C; FF4C; Case map FF2D; FF4D; Case map FF2E; FF4E; Case map FF2F; FF4F; Case map FF30; FF50; Case map FF31; FF51; Case map FF32; FF52; Case map FF33; FF53; Case map FF34; FF54; Case map FF35; FF55; Case map FF36; FF56; Case map FF37; FF57; Case map FF38; FF58; Case map FF39; FF59; Case map FF3A; FF5A; Case map 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 1D400; 0061; Additional folding 1D401; 0062; Additional folding 1D402; 0063; Additional folding 1D403; 0064; Additional folding 1D404; 0065; Additional folding 1D405; 0066; Additional folding 1D406; 0067; Additional folding 1D407; 0068; Additional folding 1D408; 0069; Additional folding 1D409; 006A; Additional folding 1D40A; 006B; Additional folding 1D40B; 006C; Additional folding 1D40C; 006D; Additional folding 1D40D; 006E; Additional folding 1D40E; 006F; Additional folding 1D40F; 0070; Additional folding 1D410; 0071; Additional folding 1D411; 0072; Additional folding 1D412; 0073; Additional folding 1D413; 0074; Additional folding 1D414; 0075; Additional folding 1D415; 0076; Additional folding 1D416; 0077; Additional folding 1D417; 0078; Additional folding 1D418; 0079; Additional folding 1D419; 007A; Additional folding 1D434; 0061; Additional folding 1D435; 0062; Additional folding 1D436; 0063; Additional folding 1D437; 0064; Additional folding 1D438; 0065; Additional folding 1D439; 0066; Additional folding 1D43A; 0067; Additional folding 1D43B; 0068; Additional folding 1D43C; 0069; Additional folding 1D43D; 006A; Additional folding 1D43E; 006B; Additional folding 1D43F; 006C; Additional folding 1D440; 006D; Additional folding 1D441; 006E; Additional folding 1D442; 006F; Additional folding 1D443; 0070; Additional folding 1D444; 0071; Additional folding 1D445; 0072; Additional folding 1D446; 0073; Additional folding 1D447; 0074; Additional folding 1D448; 0075; Additional folding 1D449; 0076; Additional folding 1D44A; 0077; Additional folding 1D44B; 0078; Additional folding 1D44C; 0079; Additional folding 1D44D; 007A; Additional folding 1D468; 0061; Additional folding 1D469; 0062; Additional folding 1D46A; 0063; Additional folding 1D46B; 0064; Additional folding 1D46C; 0065; Additional folding 1D46D; 0066; Additional folding 1D46E; 0067; Additional folding 1D46F; 0068; Additional folding 1D470; 0069; Additional folding 1D471; 006A; Additional folding 1D472; 006B; Additional folding 1D473; 006C; Additional folding 1D474; 006D; Additional folding 1D475; 006E; Additional folding 1D476; 006F; Additional folding 1D477; 0070; Additional folding 1D478; 0071; Additional folding 1D479; 0072; Additional folding 1D47A; 0073; Additional folding 1D47B; 0074; Additional folding 1D47C; 0075; Additional folding 1D47D; 0076; Additional folding 1D47E; 0077; Additional folding 1D47F; 0078; Additional folding 1D480; 0079; Additional folding 1D481; 007A; Additional folding 1D49C; 0061; Additional folding 1D49E; 0063; Additional folding 1D49F; 0064; Additional folding 1D4A2; 0067; Additional folding 1D4A5; 006A; Additional folding 1D4A6; 006B; Additional folding 1D4A9; 006E; Additional folding 1D4AA; 006F; Additional folding 1D4AB; 0070; Additional folding 1D4AC; 0071; Additional folding 1D4AE; 0073; Additional folding 1D4AF; 0074; Additional folding 1D4B0; 0075; Additional folding 1D4B1; 0076; Additional folding 1D4B2; 0077; Additional folding 1D4B3; 0078; Additional folding 1D4B4; 0079; Additional folding 1D4B5; 007A; Additional folding 1D4D0; 0061; Additional folding 1D4D1; 0062; Additional folding 1D4D2; 0063; Additional folding 1D4D3; 0064; Additional folding 1D4D4; 0065; Additional folding 1D4D5; 0066; Additional folding 1D4D6; 0067; Additional folding 1D4D7; 0068; Additional folding 1D4D8; 0069; Additional folding 1D4D9; 006A; Additional folding 1D4DA; 006B; Additional folding 1D4DB; 006C; Additional folding 1D4DC; 006D; Additional folding 1D4DD; 006E; Additional folding 1D4DE; 006F; Additional folding 1D4DF; 0070; Additional folding 1D4E0; 0071; Additional folding 1D4E1; 0072; Additional folding 1D4E2; 0073; Additional folding 1D4E3; 0074; Additional folding 1D4E4; 0075; Additional folding 1D4E5; 0076; Additional folding 1D4E6; 0077; Additional folding 1D4E7; 0078; Additional folding 1D4E8; 0079; Additional folding 1D4E9; 007A; Additional folding 1D504; 0061; Additional folding 1D505; 0062; Additional folding 1D507; 0064; Additional folding 1D508; 0065; Additional folding 1D509; 0066; Additional folding 1D50A; 0067; Additional folding 1D50D; 006A; Additional folding 1D50E; 006B; Additional folding 1D50F; 006C; Additional folding 1D510; 006D; Additional folding 1D511; 006E; Additional folding 1D512; 006F; Additional folding 1D513; 0070; Additional folding 1D514; 0071; Additional folding 1D516; 0073; Additional folding 1D517; 0074; Additional folding 1D518; 0075; Additional folding 1D519; 0076; Additional folding 1D51A; 0077; Additional folding 1D51B; 0078; Additional folding 1D51C; 0079; Additional folding 1D538; 0061; Additional folding 1D539; 0062; Additional folding 1D53B; 0064; Additional folding 1D53C; 0065; Additional folding 1D53D; 0066; Additional folding 1D53E; 0067; Additional folding 1D540; 0069; Additional folding 1D541; 006A; Additional folding 1D542; 006B; Additional folding 1D543; 006C; Additional folding 1D544; 006D; Additional folding 1D546; 006F; Additional folding 1D54A; 0073; Additional folding 1D54B; 0074; Additional folding 1D54C; 0075; Additional folding 1D54D; 0076; Additional folding 1D54E; 0077; Additional folding 1D54F; 0078; Additional folding 1D550; 0079; Additional folding 1D56C; 0061; Additional folding 1D56D; 0062; Additional folding 1D56E; 0063; Additional folding 1D56F; 0064; Additional folding 1D570; 0065; Additional folding 1D571; 0066; Additional folding 1D572; 0067; Additional folding 1D573; 0068; Additional folding 1D574; 0069; Additional folding 1D575; 006A; Additional folding 1D576; 006B; Additional folding 1D577; 006C; Additional folding 1D578; 006D; Additional folding 1D579; 006E; Additional folding 1D57A; 006F; Additional folding 1D57B; 0070; Additional folding 1D57C; 0071; Additional folding 1D57D; 0072; Additional folding 1D57E; 0073; Additional folding 1D57F; 0074; Additional folding 1D580; 0075; Additional folding 1D581; 0076; Additional folding 1D582; 0077; Additional folding 1D583; 0078; Additional folding 1D584; 0079; Additional folding 1D585; 007A; Additional folding 1D5A0; 0061; Additional folding 1D5A1; 0062; Additional folding 1D5A2; 0063; Additional folding 1D5A3; 0064; Additional folding 1D5A4; 0065; Additional folding 1D5A5; 0066; Additional folding 1D5A6; 0067; Additional folding 1D5A7; 0068; Additional folding 1D5A8; 0069; Additional folding 1D5A9; 006A; Additional folding 1D5AA; 006B; Additional folding 1D5AB; 006C; Additional folding 1D5AC; 006D; Additional folding 1D5AD; 006E; Additional folding 1D5AE; 006F; Additional folding 1D5AF; 0070; Additional folding 1D5B0; 0071; Additional folding 1D5B1; 0072; Additional folding 1D5B2; 0073; Additional folding 1D5B3; 0074; Additional folding 1D5B4; 0075; Additional folding 1D5B5; 0076; Additional folding 1D5B6; 0077; Additional folding 1D5B7; 0078; Additional folding 1D5B8; 0079; Additional folding 1D5B9; 007A; Additional folding 1D5D4; 0061; Additional folding 1D5D5; 0062; Additional folding 1D5D6; 0063; Additional folding 1D5D7; 0064; Additional folding 1D5D8; 0065; Additional folding 1D5D9; 0066; Additional folding 1D5DA; 0067; Additional folding 1D5DB; 0068; Additional folding 1D5DC; 0069; Additional folding 1D5DD; 006A; Additional folding 1D5DE; 006B; Additional folding 1D5DF; 006C; Additional folding 1D5E0; 006D; Additional folding 1D5E1; 006E; Additional folding 1D5E2; 006F; Additional folding 1D5E3; 0070; Additional folding 1D5E4; 0071; Additional folding 1D5E5; 0072; Additional folding 1D5E6; 0073; Additional folding 1D5E7; 0074; Additional folding 1D5E8; 0075; Additional folding 1D5E9; 0076; Additional folding 1D5EA; 0077; Additional folding 1D5EB; 0078; Additional folding 1D5EC; 0079; Additional folding 1D5ED; 007A; Additional folding 1D608; 0061; Additional folding 1D609; 0062; Additional folding 1D60A; 0063; Additional folding 1D60B; 0064; Additional folding 1D60C; 0065; Additional folding 1D60D; 0066; Additional folding 1D60E; 0067; Additional folding 1D60F; 0068; Additional folding 1D610; 0069; Additional folding 1D611; 006A; Additional folding 1D612; 006B; Additional folding 1D613; 006C; Additional folding 1D614; 006D; Additional folding 1D615; 006E; Additional folding 1D616; 006F; Additional folding 1D617; 0070; Additional folding 1D618; 0071; Additional folding 1D619; 0072; Additional folding 1D61A; 0073; Additional folding 1D61B; 0074; Additional folding 1D61C; 0075; Additional folding 1D61D; 0076; Additional folding 1D61E; 0077; Additional folding 1D61F; 0078; Additional folding 1D620; 0079; Additional folding 1D621; 007A; Additional folding 1D63C; 0061; Additional folding 1D63D; 0062; Additional folding 1D63E; 0063; Additional folding 1D63F; 0064; Additional folding 1D640; 0065; Additional folding 1D641; 0066; Additional folding 1D642; 0067; Additional folding 1D643; 0068; Additional folding 1D644; 0069; Additional folding 1D645; 006A; Additional folding 1D646; 006B; Additional folding 1D647; 006C; Additional folding 1D648; 006D; Additional folding 1D649; 006E; Additional folding 1D64A; 006F; Additional folding 1D64B; 0070; Additional folding 1D64C; 0071; Additional folding 1D64D; 0072; Additional folding 1D64E; 0073; Additional folding 1D64F; 0074; Additional folding 1D650; 0075; Additional folding 1D651; 0076; Additional folding 1D652; 0077; Additional folding 1D653; 0078; Additional folding 1D654; 0079; Additional folding 1D655; 007A; Additional folding 1D670; 0061; Additional folding 1D671; 0062; Additional folding 1D672; 0063; Additional folding 1D673; 0064; Additional folding 1D674; 0065; Additional folding 1D675; 0066; Additional folding 1D676; 0067; Additional folding 1D677; 0068; Additional folding 1D678; 0069; Additional folding 1D679; 006A; Additional folding 1D67A; 006B; Additional folding 1D67B; 006C; Additional folding 1D67C; 006D; Additional folding 1D67D; 006E; Additional folding 1D67E; 006F; Additional folding 1D67F; 0070; Additional folding 1D680; 0071; Additional folding 1D681; 0072; Additional folding 1D682; 0073; Additional folding 1D683; 0074; Additional folding 1D684; 0075; Additional folding 1D685; 0076; Additional folding 1D686; 0077; Additional folding 1D687; 0078; Additional folding 1D688; 0079; Additional folding 1D689; 007A; Additional folding 1D6A8; 03B1; Additional folding 1D6A9; 03B2; Additional folding 1D6AA; 03B3; Additional folding 1D6AB; 03B4; Additional folding 1D6AC; 03B5; Additional folding 1D6AD; 03B6; Additional folding 1D6AE; 03B7; Additional folding 1D6AF; 03B8; Additional folding 1D6B0; 03B9; Additional folding 1D6B1; 03BA; Additional folding 1D6B2; 03BB; Additional folding 1D6B3; 03BC; Additional folding 1D6B4; 03BD; Additional folding 1D6B5; 03BE; Additional folding 1D6B6; 03BF; Additional folding 1D6B7; 03C0; Additional folding 1D6B8; 03C1; Additional folding 1D6B9; 03B8; Additional folding 1D6BA; 03C3; Additional folding 1D6BB; 03C4; Additional folding 1D6BC; 03C5; Additional folding 1D6BD; 03C6; Additional folding 1D6BE; 03C7; Additional folding 1D6BF; 03C8; Additional folding 1D6C0; 03C9; Additional folding 1D6D3; 03C3; Additional folding 1D6E2; 03B1; Additional folding 1D6E3; 03B2; Additional folding 1D6E4; 03B3; Additional folding 1D6E5; 03B4; Additional folding 1D6E6; 03B5; Additional folding 1D6E7; 03B6; Additional folding 1D6E8; 03B7; Additional folding 1D6E9; 03B8; Additional folding 1D6EA; 03B9; Additional folding 1D6EB; 03BA; Additional folding 1D6EC; 03BB; Additional folding 1D6ED; 03BC; Additional folding 1D6EE; 03BD; Additional folding 1D6EF; 03BE; Additional folding 1D6F0; 03BF; Additional folding 1D6F1; 03C0; Additional folding 1D6F2; 03C1; Additional folding 1D6F3; 03B8; Additional folding 1D6F4; 03C3; Additional folding 1D6F5; 03C4; Additional folding 1D6F6; 03C5; Additional folding 1D6F7; 03C6; Additional folding 1D6F8; 03C7; Additional folding 1D6F9; 03C8; Additional folding 1D6FA; 03C9; Additional folding 1D70D; 03C3; Additional folding 1D71C; 03B1; Additional folding 1D71D; 03B2; Additional folding 1D71E; 03B3; Additional folding 1D71F; 03B4; Additional folding 1D720; 03B5; Additional folding 1D721; 03B6; Additional folding 1D722; 03B7; Additional folding 1D723; 03B8; Additional folding 1D724; 03B9; Additional folding 1D725; 03BA; Additional folding 1D726; 03BB; Additional folding 1D727; 03BC; Additional folding 1D728; 03BD; Additional folding 1D729; 03BE; Additional folding 1D72A; 03BF; Additional folding 1D72B; 03C0; Additional folding 1D72C; 03C1; Additional folding 1D72D; 03B8; Additional folding 1D72E; 03C3; Additional folding 1D72F; 03C4; Additional folding 1D730; 03C5; Additional folding 1D731; 03C6; Additional folding 1D732; 03C7; Additional folding 1D733; 03C8; Additional folding 1D734; 03C9; Additional folding 1D747; 03C3; Additional folding 1D756; 03B1; Additional folding 1D757; 03B2; Additional folding 1D758; 03B3; Additional folding 1D759; 03B4; Additional folding 1D75A; 03B5; Additional folding 1D75B; 03B6; Additional folding 1D75C; 03B7; Additional folding 1D75D; 03B8; Additional folding 1D75E; 03B9; Additional folding 1D75F; 03BA; Additional folding 1D760; 03BB; Additional folding 1D761; 03BC; Additional folding 1D762; 03BD; Additional folding 1D763; 03BE; Additional folding 1D764; 03BF; Additional folding 1D765; 03C0; Additional folding 1D766; 03C1; Additional folding 1D767; 03B8; Additional folding 1D768; 03C3; Additional folding 1D769; 03C4; Additional folding 1D76A; 03C5; Additional folding 1D76B; 03C6; Additional folding 1D76C; 03C7; Additional folding 1D76D; 03C8; Additional folding 1D76E; 03C9; Additional folding 1D781; 03C3; Additional folding 1D790; 03B1; Additional folding 1D791; 03B2; Additional folding 1D792; 03B3; Additional folding 1D793; 03B4; Additional folding 1D794; 03B5; Additional folding 1D795; 03B6; Additional folding 1D796; 03B7; Additional folding 1D797; 03B8; Additional folding 1D798; 03B9; Additional folding 1D799; 03BA; Additional folding 1D79A; 03BB; Additional folding 1D79B; 03BC; Additional folding 1D79C; 03BD; Additional folding 1D79D; 03BE; Additional folding 1D79E; 03BF; Additional folding 1D79F; 03C0; Additional folding 1D7A0; 03C1; Additional folding 1D7A1; 03B8; Additional folding 1D7A2; 03C3; Additional folding 1D7A3; 03C4; Additional folding 1D7A4; 03C5; Additional folding 1D7A5; 03C6; Additional folding 1D7A6; 03C7; Additional folding 1D7A7; 03C8; Additional folding 1D7A8; 03C9; Additional folding 1D7BB; 03C3; Additional folding ----- End Table B.2 ----- ----- Start Table B.3 ----- 0041; 0061; Case map 0042; 0062; Case map 0043; 0063; Case map 0044; 0064; Case map 0045; 0065; Case map 0046; 0066; Case map 0047; 0067; Case map 0048; 0068; Case map 0049; 0069; Case map 004A; 006A; Case map 004B; 006B; Case map 004C; 006C; Case map 004D; 006D; Case map 004E; 006E; Case map 004F; 006F; Case map 0050; 0070; Case map 0051; 0071; Case map 0052; 0072; Case map 0053; 0073; Case map 0054; 0074; Case map 0055; 0075; Case map 0056; 0076; Case map 0057; 0077; Case map 0058; 0078; Case map 0059; 0079; Case map 005A; 007A; Case map 00B5; 03BC; Case map 00C0; 00E0; Case map 00C1; 00E1; Case map 00C2; 00E2; Case map 00C3; 00E3; Case map 00C4; 00E4; Case map 00C5; 00E5; Case map 00C6; 00E6; Case map 00C7; 00E7; Case map 00C8; 00E8; Case map 00C9; 00E9; Case map 00CA; 00EA; Case map 00CB; 00EB; Case map 00CC; 00EC; Case map 00CD; 00ED; Case map 00CE; 00EE; Case map 00CF; 00EF; Case map 00D0; 00F0; Case map 00D1; 00F1; Case map 00D2; 00F2; Case map 00D3; 00F3; Case map 00D4; 00F4; Case map 00D5; 00F5; Case map 00D6; 00F6; Case map 00D8; 00F8; Case map 00D9; 00F9; Case map 00DA; 00FA; Case map 00DB; 00FB; Case map 00DC; 00FC; Case map 00DD; 00FD; Case map 00DE; 00FE; Case map 00DF; 0073 0073; Case map 0100; 0101; Case map 0102; 0103; Case map 0104; 0105; Case map 0106; 0107; Case map 0108; 0109; Case map 010A; 010B; Case map 010C; 010D; Case map 010E; 010F; Case map 0110; 0111; Case map 0112; 0113; Case map 0114; 0115; Case map 0116; 0117; Case map 0118; 0119; Case map 011A; 011B; Case map 011C; 011D; Case map 011E; 011F; Case map 0120; 0121; Case map 0122; 0123; Case map 0124; 0125; Case map 0126; 0127; Case map 0128; 0129; Case map 012A; 012B; Case map 012C; 012D; Case map 012E; 012F; Case map 0130; 0069 0307; Case map 0132; 0133; Case map 0134; 0135; Case map 0136; 0137; Case map 0139; 013A; Case map 013B; 013C; Case map 013D; 013E; Case map 013F; 0140; Case map 0141; 0142; Case map 0143; 0144; Case map 0145; 0146; Case map 0147; 0148; Case map 0149; 02BC 006E; Case map 014A; 014B; Case map 014C; 014D; Case map 014E; 014F; Case map 0150; 0151; Case map 0152; 0153; Case map 0154; 0155; Case map 0156; 0157; Case map 0158; 0159; Case map 015A; 015B; Case map 015C; 015D; Case map 015E; 015F; Case map 0160; 0161; Case map 0162; 0163; Case map 0164; 0165; Case map 0166; 0167; Case map 0168; 0169; Case map 016A; 016B; Case map 016C; 016D; Case map 016E; 016F; Case map 0170; 0171; Case map 0172; 0173; Case map 0174; 0175; Case map 0176; 0177; Case map 0178; 00FF; Case map 0179; 017A; Case map 017B; 017C; Case map 017D; 017E; Case map 017F; 0073; Case map 0181; 0253; Case map 0182; 0183; Case map 0184; 0185; Case map 0186; 0254; Case map 0187; 0188; Case map 0189; 0256; Case map 018A; 0257; Case map 018B; 018C; Case map 018E; 01DD; Case map 018F; 0259; Case map 0190; 025B; Case map 0191; 0192; Case map 0193; 0260; Case map 0194; 0263; Case map 0196; 0269; Case map 0197; 0268; Case map 0198; 0199; Case map 019C; 026F; Case map 019D; 0272; Case map 019F; 0275; Case map 01A0; 01A1; Case map 01A2; 01A3; Case map 01A4; 01A5; Case map 01A6; 0280; Case map 01A7; 01A8; Case map 01A9; 0283; Case map 01AC; 01AD; Case map 01AE; 0288; Case map 01AF; 01B0; Case map 01B1; 028A; Case map 01B2; 028B; Case map 01B3; 01B4; Case map 01B5; 01B6; Case map 01B7; 0292; Case map 01B8; 01B9; Case map 01BC; 01BD; Case map 01C4; 01C6; Case map 01C5; 01C6; Case map 01C7; 01C9; Case map 01C8; 01C9; Case map 01CA; 01CC; Case map 01CB; 01CC; Case map 01CD; 01CE; Case map 01CF; 01D0; Case map 01D1; 01D2; Case map 01D3; 01D4; Case map 01D5; 01D6; Case map 01D7; 01D8; Case map 01D9; 01DA; Case map 01DB; 01DC; Case map 01DE; 01DF; Case map 01E0; 01E1; Case map 01E2; 01E3; Case map 01E4; 01E5; Case map 01E6; 01E7; Case map 01E8; 01E9; Case map 01EA; 01EB; Case map 01EC; 01ED; Case map 01EE; 01EF; Case map 01F0; 006A 030C; Case map 01F1; 01F3; Case map 01F2; 01F3; Case map 01F4; 01F5; Case map 01F6; 0195; Case map 01F7; 01BF; Case map 01F8; 01F9; Case map 01FA; 01FB; Case map 01FC; 01FD; Case map 01FE; 01FF; Case map 0200; 0201; Case map 0202; 0203; Case map 0204; 0205; Case map 0206; 0207; Case map 0208; 0209; Case map 020A; 020B; Case map 020C; 020D; Case map 020E; 020F; Case map 0210; 0211; Case map 0212; 0213; Case map 0214; 0215; Case map 0216; 0217; Case map 0218; 0219; Case map 021A; 021B; Case map 021C; 021D; Case map 021E; 021F; Case map 0220; 019E; Case map 0222; 0223; Case map 0224; 0225; Case map 0226; 0227; Case map 0228; 0229; Case map 022A; 022B; Case map 022C; 022D; Case map 022E; 022F; Case map 0230; 0231; Case map 0232; 0233; Case map 0345; 03B9; Case map 0386; 03AC; Case map 0388; 03AD; Case map 0389; 03AE; Case map 038A; 03AF; Case map 038C; 03CC; Case map 038E; 03CD; Case map 038F; 03CE; Case map 0390; 03B9 0308 0301; Case map 0391; 03B1; Case map 0392; 03B2; Case map 0393; 03B3; Case map 0394; 03B4; Case map 0395; 03B5; Case map 0396; 03B6; Case map 0397; 03B7; Case map 0398; 03B8; Case map 0399; 03B9; Case map 039A; 03BA; Case map 039B; 03BB; Case map 039C; 03BC; Case map 039D; 03BD; Case map 039E; 03BE; Case map 039F; 03BF; Case map 03A0; 03C0; Case map 03A1; 03C1; Case map 03A3; 03C3; Case map 03A4; 03C4; Case map 03A5; 03C5; Case map 03A6; 03C6; Case map 03A7; 03C7; Case map 03A8; 03C8; Case map 03A9; 03C9; Case map 03AA; 03CA; Case map 03AB; 03CB; Case map 03B0; 03C5 0308 0301; Case map 03C2; 03C3; Case map 03D0; 03B2; Case map 03D1; 03B8; Case map 03D5; 03C6; Case map 03D6; 03C0; Case map 03D8; 03D9; Case map 03DA; 03DB; Case map 03DC; 03DD; Case map 03DE; 03DF; Case map 03E0; 03E1; Case map 03E2; 03E3; Case map 03E4; 03E5; Case map 03E6; 03E7; Case map 03E8; 03E9; Case map 03EA; 03EB; Case map 03EC; 03ED; Case map 03EE; 03EF; Case map 03F0; 03BA; Case map 03F1; 03C1; Case map 03F2; 03C3; Case map 03F4; 03B8; Case map 03F5; 03B5; Case map 0400; 0450; Case map 0401; 0451; Case map 0402; 0452; Case map 0403; 0453; Case map 0404; 0454; Case map 0405; 0455; Case map 0406; 0456; Case map 0407; 0457; Case map 0408; 0458; Case map 0409; 0459; Case map 040A; 045A; Case map 040B; 045B; Case map 040C; 045C; Case map 040D; 045D; Case map 040E; 045E; Case map 040F; 045F; Case map 0410; 0430; Case map 0411; 0431; Case map 0412; 0432; Case map 0413; 0433; Case map 0414; 0434; Case map 0415; 0435; Case map 0416; 0436; Case map 0417; 0437; Case map 0418; 0438; Case map 0419; 0439; Case map 041A; 043A; Case map 041B; 043B; Case map 041C; 043C; Case map 041D; 043D; Case map 041E; 043E; Case map 041F; 043F; Case map 0420; 0440; Case map 0421; 0441; Case map 0422; 0442; Case map 0423; 0443; Case map 0424; 0444; Case map 0425; 0445; Case map 0426; 0446; Case map 0427; 0447; Case map 0428; 0448; Case map 0429; 0449; Case map 042A; 044A; Case map 042B; 044B; Case map 042C; 044C; Case map 042D; 044D; Case map 042E; 044E; Case map 042F; 044F; Case map 0460; 0461; Case map 0462; 0463; Case map 0464; 0465; Case map 0466; 0467; Case map 0468; 0469; Case map 046A; 046B; Case map 046C; 046D; Case map 046E; 046F; Case map 0470; 0471; Case map 0472; 0473; Case map 0474; 0475; Case map 0476; 0477; Case map 0478; 0479; Case map 047A; 047B; Case map 047C; 047D; Case map 047E; 047F; Case map 0480; 0481; Case map 048A; 048B; Case map 048C; 048D; Case map 048E; 048F; Case map 0490; 0491; Case map 0492; 0493; Case map 0494; 0495; Case map 0496; 0497; Case map 0498; 0499; Case map 049A; 049B; Case map 049C; 049D; Case map 049E; 049F; Case map 04A0; 04A1; Case map 04A2; 04A3; Case map 04A4; 04A5; Case map 04A6; 04A7; Case map 04A8; 04A9; Case map 04AA; 04AB; Case map 04AC; 04AD; Case map 04AE; 04AF; Case map 04B0; 04B1; Case map 04B2; 04B3; Case map 04B4; 04B5; Case map 04B6; 04B7; Case map 04B8; 04B9; Case map 04BA; 04BB; Case map 04BC; 04BD; Case map 04BE; 04BF; Case map 04C1; 04C2; Case map 04C3; 04C4; Case map 04C5; 04C6; Case map 04C7; 04C8; Case map 04C9; 04CA; Case map 04CB; 04CC; Case map 04CD; 04CE; Case map 04D0; 04D1; Case map 04D2; 04D3; Case map 04D4; 04D5; Case map 04D6; 04D7; Case map 04D8; 04D9; Case map 04DA; 04DB; Case map 04DC; 04DD; Case map 04DE; 04DF; Case map 04E0; 04E1; Case map 04E2; 04E3; Case map 04E4; 04E5; Case map 04E6; 04E7; Case map 04E8; 04E9; Case map 04EA; 04EB; Case map 04EC; 04ED; Case map 04EE; 04EF; Case map 04F0; 04F1; Case map 04F2; 04F3; Case map 04F4; 04F5; Case map 04F8; 04F9; Case map 0500; 0501; Case map 0502; 0503; Case map 0504; 0505; Case map 0506; 0507; Case map 0508; 0509; Case map 050A; 050B; Case map 050C; 050D; Case map 050E; 050F; Case map 0531; 0561; Case map 0532; 0562; Case map 0533; 0563; Case map 0534; 0564; Case map 0535; 0565; Case map 0536; 0566; Case map 0537; 0567; Case map 0538; 0568; Case map 0539; 0569; Case map 053A; 056A; Case map 053B; 056B; Case map 053C; 056C; Case map 053D; 056D; Case map 053E; 056E; Case map 053F; 056F; Case map 0540; 0570; Case map 0541; 0571; Case map 0542; 0572; Case map 0543; 0573; Case map 0544; 0574; Case map 0545; 0575; Case map 0546; 0576; Case map 0547; 0577; Case map 0548; 0578; Case map 0549; 0579; Case map 054A; 057A; Case map 054B; 057B; Case map 054C; 057C; Case map 054D; 057D; Case map 054E; 057E; Case map 054F; 057F; Case map 0550; 0580; Case map 0551; 0581; Case map 0552; 0582; Case map 0553; 0583; Case map 0554; 0584; Case map 0555; 0585; Case map 0556; 0586; Case map 0587; 0565 0582; Case map 1E00; 1E01; Case map 1E02; 1E03; Case map 1E04; 1E05; Case map 1E06; 1E07; Case map 1E08; 1E09; Case map 1E0A; 1E0B; Case map 1E0C; 1E0D; Case map 1E0E; 1E0F; Case map 1E10; 1E11; Case map 1E12; 1E13; Case map 1E14; 1E15; Case map 1E16; 1E17; Case map 1E18; 1E19; Case map 1E1A; 1E1B; Case map 1E1C; 1E1D; Case map 1E1E; 1E1F; Case map 1E20; 1E21; Case map 1E22; 1E23; Case map 1E24; 1E25; Case map 1E26; 1E27; Case map 1E28; 1E29; Case map 1E2A; 1E2B; Case map 1E2C; 1E2D; Case map 1E2E; 1E2F; Case map 1E30; 1E31; Case map 1E32; 1E33; Case map 1E34; 1E35; Case map 1E36; 1E37; Case map 1E38; 1E39; Case map 1E3A; 1E3B; Case map 1E3C; 1E3D; Case map 1E3E; 1E3F; Case map 1E40; 1E41; Case map 1E42; 1E43; Case map 1E44; 1E45; Case map 1E46; 1E47; Case map 1E48; 1E49; Case map 1E4A; 1E4B; Case map 1E4C; 1E4D; Case map 1E4E; 1E4F; Case map 1E50; 1E51; Case map 1E52; 1E53; Case map 1E54; 1E55; Case map 1E56; 1E57; Case map 1E58; 1E59; Case map 1E5A; 1E5B; Case map 1E5C; 1E5D; Case map 1E5E; 1E5F; Case map 1E60; 1E61; Case map 1E62; 1E63; Case map 1E64; 1E65; Case map 1E66; 1E67; Case map 1E68; 1E69; Case map 1E6A; 1E6B; Case map 1E6C; 1E6D; Case map 1E6E; 1E6F; Case map 1E70; 1E71; Case map 1E72; 1E73; Case map 1E74; 1E75; Case map 1E76; 1E77; Case map 1E78; 1E79; Case map 1E7A; 1E7B; Case map 1E7C; 1E7D; Case map 1E7E; 1E7F; Case map 1E80; 1E81; Case map 1E82; 1E83; Case map 1E84; 1E85; Case map 1E86; 1E87; Case map 1E88; 1E89; Case map 1E8A; 1E8B; Case map 1E8C; 1E8D; Case map 1E8E; 1E8F; Case map 1E90; 1E91; Case map 1E92; 1E93; Case map 1E94; 1E95; Case map 1E96; 0068 0331; Case map 1E97; 0074 0308; Case map 1E98; 0077 030A; Case map 1E99; 0079 030A; Case map 1E9A; 0061 02BE; Case map 1E9B; 1E61; Case map 1EA0; 1EA1; Case map 1EA2; 1EA3; Case map 1EA4; 1EA5; Case map 1EA6; 1EA7; Case map 1EA8; 1EA9; Case map 1EAA; 1EAB; Case map 1EAC; 1EAD; Case map 1EAE; 1EAF; Case map 1EB0; 1EB1; Case map 1EB2; 1EB3; Case map 1EB4; 1EB5; Case map 1EB6; 1EB7; Case map 1EB8; 1EB9; Case map 1EBA; 1EBB; Case map 1EBC; 1EBD; Case map 1EBE; 1EBF; Case map 1EC0; 1EC1; Case map 1EC2; 1EC3; Case map 1EC4; 1EC5; Case map 1EC6; 1EC7; Case map 1EC8; 1EC9; Case map 1ECA; 1ECB; Case map 1ECC; 1ECD; Case map 1ECE; 1ECF; Case map 1ED0; 1ED1; Case map 1ED2; 1ED3; Case map 1ED4; 1ED5; Case map 1ED6; 1ED7; Case map 1ED8; 1ED9; Case map 1EDA; 1EDB; Case map 1EDC; 1EDD; Case map 1EDE; 1EDF; Case map 1EE0; 1EE1; Case map 1EE2; 1EE3; Case map 1EE4; 1EE5; Case map 1EE6; 1EE7; Case map 1EE8; 1EE9; Case map 1EEA; 1EEB; Case map 1EEC; 1EED; Case map 1EEE; 1EEF; Case map 1EF0; 1EF1; Case map 1EF2; 1EF3; Case map 1EF4; 1EF5; Case map 1EF6; 1EF7; Case map 1EF8; 1EF9; Case map 1F08; 1F00; Case map 1F09; 1F01; Case map 1F0A; 1F02; Case map 1F0B; 1F03; Case map 1F0C; 1F04; Case map 1F0D; 1F05; Case map 1F0E; 1F06; Case map 1F0F; 1F07; Case map 1F18; 1F10; Case map 1F19; 1F11; Case map 1F1A; 1F12; Case map 1F1B; 1F13; Case map 1F1C; 1F14; Case map 1F1D; 1F15; Case map 1F28; 1F20; Case map 1F29; 1F21; Case map 1F2A; 1F22; Case map 1F2B; 1F23; Case map 1F2C; 1F24; Case map 1F2D; 1F25; Case map 1F2E; 1F26; Case map 1F2F; 1F27; Case map 1F38; 1F30; Case map 1F39; 1F31; Case map 1F3A; 1F32; Case map 1F3B; 1F33; Case map 1F3C; 1F34; Case map 1F3D; 1F35; Case map 1F3E; 1F36; Case map 1F3F; 1F37; Case map 1F48; 1F40; Case map 1F49; 1F41; Case map 1F4A; 1F42; Case map 1F4B; 1F43; Case map 1F4C; 1F44; Case map 1F4D; 1F45; Case map 1F50; 03C5 0313; Case map 1F52; 03C5 0313 0300; Case map 1F54; 03C5 0313 0301; Case map 1F56; 03C5 0313 0342; Case map 1F59; 1F51; Case map 1F5B; 1F53; Case map 1F5D; 1F55; Case map 1F5F; 1F57; Case map 1F68; 1F60; Case map 1F69; 1F61; Case map 1F6A; 1F62; Case map 1F6B; 1F63; Case map 1F6C; 1F64; Case map 1F6D; 1F65; Case map 1F6E; 1F66; Case map 1F6F; 1F67; Case map 1F80; 1F00 03B9; Case map 1F81; 1F01 03B9; Case map 1F82; 1F02 03B9; Case map 1F83; 1F03 03B9; Case map 1F84; 1F04 03B9; Case map 1F85; 1F05 03B9; Case map 1F86; 1F06 03B9; Case map 1F87; 1F07 03B9; Case map 1F88; 1F00 03B9; Case map 1F89; 1F01 03B9; Case map 1F8A; 1F02 03B9; Case map 1F8B; 1F03 03B9; Case map 1F8C; 1F04 03B9; Case map 1F8D; 1F05 03B9; Case map 1F8E; 1F06 03B9; Case map 1F8F; 1F07 03B9; Case map 1F90; 1F20 03B9; Case map 1F91; 1F21 03B9; Case map 1F92; 1F22 03B9; Case map 1F93; 1F23 03B9; Case map 1F94; 1F24 03B9; Case map 1F95; 1F25 03B9; Case map 1F96; 1F26 03B9; Case map 1F97; 1F27 03B9; Case map 1F98; 1F20 03B9; Case map 1F99; 1F21 03B9; Case map 1F9A; 1F22 03B9; Case map 1F9B; 1F23 03B9; Case map 1F9C; 1F24 03B9; Case map 1F9D; 1F25 03B9; Case map 1F9E; 1F26 03B9; Case map 1F9F; 1F27 03B9; Case map 1FA0; 1F60 03B9; Case map 1FA1; 1F61 03B9; Case map 1FA2; 1F62 03B9; Case map 1FA3; 1F63 03B9; Case map 1FA4; 1F64 03B9; Case map 1FA5; 1F65 03B9; Case map 1FA6; 1F66 03B9; Case map 1FA7; 1F67 03B9; Case map 1FA8; 1F60 03B9; Case map 1FA9; 1F61 03B9; Case map 1FAA; 1F62 03B9; Case map 1FAB; 1F63 03B9; Case map 1FAC; 1F64 03B9; Case map 1FAD; 1F65 03B9; Case map 1FAE; 1F66 03B9; Case map 1FAF; 1F67 03B9; Case map 1FB2; 1F70 03B9; Case map 1FB3; 03B1 03B9; Case map 1FB4; 03AC 03B9; Case map 1FB6; 03B1 0342; Case map 1FB7; 03B1 0342 03B9; Case map 1FB8; 1FB0; Case map 1FB9; 1FB1; Case map 1FBA; 1F70; Case map 1FBB; 1F71; Case map 1FBC; 03B1 03B9; Case map 1FBE; 03B9; Case map 1FC2; 1F74 03B9; Case map 1FC3; 03B7 03B9; Case map 1FC4; 03AE 03B9; Case map 1FC6; 03B7 0342; Case map 1FC7; 03B7 0342 03B9; Case map 1FC8; 1F72; Case map 1FC9; 1F73; Case map 1FCA; 1F74; Case map 1FCB; 1F75; Case map 1FCC; 03B7 03B9; Case map 1FD2; 03B9 0308 0300; Case map 1FD3; 03B9 0308 0301; Case map 1FD6; 03B9 0342; Case map 1FD7; 03B9 0308 0342; Case map 1FD8; 1FD0; Case map 1FD9; 1FD1; Case map 1FDA; 1F76; Case map 1FDB; 1F77; Case map 1FE2; 03C5 0308 0300; Case map 1FE3; 03C5 0308 0301; Case map 1FE4; 03C1 0313; Case map 1FE6; 03C5 0342; Case map 1FE7; 03C5 0308 0342; Case map 1FE8; 1FE0; Case map 1FE9; 1FE1; Case map 1FEA; 1F7A; Case map 1FEB; 1F7B; Case map 1FEC; 1FE5; Case map 1FF2; 1F7C 03B9; Case map 1FF3; 03C9 03B9; Case map 1FF4; 03CE 03B9; Case map 1FF6; 03C9 0342; Case map 1FF7; 03C9 0342 03B9; Case map 1FF8; 1F78; Case map 1FF9; 1F79; Case map 1FFA; 1F7C; Case map 1FFB; 1F7D; Case map 1FFC; 03C9 03B9; Case map 2126; 03C9; Case map 212A; 006B; Case map 212B; 00E5; Case map 2160; 2170; Case map 2161; 2171; Case map 2162; 2172; Case map 2163; 2173; Case map 2164; 2174; Case map 2165; 2175; Case map 2166; 2176; Case map 2167; 2177; Case map 2168; 2178; Case map 2169; 2179; Case map 216A; 217A; Case map 216B; 217B; Case map 216C; 217C; Case map 216D; 217D; Case map 216E; 217E; Case map 216F; 217F; Case map 24B6; 24D0; Case map 24B7; 24D1; Case map 24B8; 24D2; Case map 24B9; 24D3; Case map 24BA; 24D4; Case map 24BB; 24D5; Case map 24BC; 24D6; Case map 24BD; 24D7; Case map 24BE; 24D8; Case map 24BF; 24D9; Case map 24C0; 24DA; Case map 24C1; 24DB; Case map 24C2; 24DC; Case map 24C3; 24DD; Case map 24C4; 24DE; Case map 24C5; 24DF; Case map 24C6; 24E0; Case map 24C7; 24E1; Case map 24C8; 24E2; Case map 24C9; 24E3; Case map 24CA; 24E4; Case map 24CB; 24E5; Case map 24CC; 24E6; Case map 24CD; 24E7; Case map 24CE; 24E8; Case map 24CF; 24E9; Case map FB00; 0066 0066; Case map FB01; 0066 0069; Case map FB02; 0066 006C; Case map FB03; 0066 0066 0069; Case map FB04; 0066 0066 006C; Case map FB05; 0073 0074; Case map FB06; 0073 0074; Case map FB13; 0574 0576; Case map FB14; 0574 0565; Case map FB15; 0574 056B; Case map FB16; 057E 0576; Case map FB17; 0574 056D; Case map FF21; FF41; Case map FF22; FF42; Case map FF23; FF43; Case map FF24; FF44; Case map FF25; FF45; Case map FF26; FF46; Case map FF27; FF47; Case map FF28; FF48; Case map FF29; FF49; Case map FF2A; FF4A; Case map FF2B; FF4B; Case map FF2C; FF4C; Case map FF2D; FF4D; Case map FF2E; FF4E; Case map FF2F; FF4F; Case map FF30; FF50; Case map FF31; FF51; Case map FF32; FF52; Case map FF33; FF53; Case map FF34; FF54; Case map FF35; FF55; Case map FF36; FF56; Case map FF37; FF57; Case map FF38; FF58; Case map FF39; FF59; Case map FF3A; FF5A; Case map 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map ----- End Table B.3 ----- ----- Start Table C.1.1 ----- 0020; SPACE ----- End Table C.1.1 ----- ----- Start Table C.1.2 ----- 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 200B; ZERO WIDTH SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE ----- End Table C.1.2 ----- ----- Start Table C.2.1 ----- 0000-001F; [CONTROL CHARACTERS] 007F; DELETE ----- End Table C.2.1 ----- ----- Start Table C.2.2 ----- 0080-009F; [CONTROL CHARACTERS] 06DD; ARABIC END OF AYAH 070F; SYRIAC ABBREVIATION MARK 180E; MONGOLIAN VOWEL SEPARATOR 200C; ZERO WIDTH NON-JOINER 200D; ZERO WIDTH JOINER 2028; LINE SEPARATOR 2029; PARAGRAPH SEPARATOR 2060; WORD JOINER 2061; FUNCTION APPLICATION 2062; INVISIBLE TIMES 2063; INVISIBLE SEPARATOR 206A-206F; [CONTROL CHARACTERS] FEFF; ZERO WIDTH NO-BREAK SPACE FFF9-FFFC; [CONTROL CHARACTERS] 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] ----- End Table C.2.2 ----- ----- Start Table C.3 ----- E000-F8FF; [PRIVATE USE, PLANE 0] F0000-FFFFD; [PRIVATE USE, PLANE 15] 100000-10FFFD; [PRIVATE USE, PLANE 16] ----- End Table C.3 ----- ----- Start Table C.4 ----- FDD0-FDEF; [NONCHARACTER CODE POINTS] FFFE-FFFF; [NONCHARACTER CODE POINTS] 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] AFFFE-AFFFF; [NONCHARACTER CODE POINTS] BFFFE-BFFFF; [NONCHARACTER CODE POINTS] CFFFE-CFFFF; [NONCHARACTER CODE POINTS] DFFFE-DFFFF; [NONCHARACTER CODE POINTS] EFFFE-EFFFF; [NONCHARACTER CODE POINTS] FFFFE-FFFFF; [NONCHARACTER CODE POINTS] 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] ----- End Table C.4 ----- ----- Start Table C.5 ----- D800-DFFF; [SURROGATE CODES] ----- End Table C.5 ----- ----- Start Table C.6 ----- FFF9; INTERLINEAR ANNOTATION ANCHOR FFFA; INTERLINEAR ANNOTATION SEPARATOR FFFB; INTERLINEAR ANNOTATION TERMINATOR FFFC; OBJECT REPLACEMENT CHARACTER FFFD; REPLACEMENT CHARACTER ----- End Table C.6 ----- ----- Start Table C.7 ----- 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] ----- End Table C.7 ----- ----- Start Table C.8 ----- 0340; COMBINING GRAVE TONE MARK 0341; COMBINING ACUTE TONE MARK 200E; LEFT-TO-RIGHT MARK 200F; RIGHT-TO-LEFT MARK 202A; LEFT-TO-RIGHT EMBEDDING 202B; RIGHT-TO-LEFT EMBEDDING 202C; POP DIRECTIONAL FORMATTING 202D; LEFT-TO-RIGHT OVERRIDE 202E; RIGHT-TO-LEFT OVERRIDE 206A; INHIBIT SYMMETRIC SWAPPING 206B; ACTIVATE SYMMETRIC SWAPPING 206C; INHIBIT ARABIC FORM SHAPING 206D; ACTIVATE ARABIC FORM SHAPING 206E; NATIONAL DIGIT SHAPES 206F; NOMINAL DIGIT SHAPES ----- End Table C.8 ----- ----- Start Table C.9 ----- E0001; LANGUAGE TAG E0020-E007F; [TAGGING CHARACTERS] ----- End Table C.9 ----- ----- Start Table D.1 ----- 05BE 05C0 05C3 05D0-05EA 05F0-05F4 061B 061F 0621-063A 0640-064A 066D-066F 0671-06D5 06DD 06E5-06E6 06FA-06FE 0700-070D 0710 0712-072C 0780-07A5 07B1 200F FB1D FB1F-FB28 FB2A-FB36 FB38-FB3C FB3E FB40-FB41 FB43-FB44 FB46-FBB1 FBD3-FD3D FD50-FD8F FD92-FDC7 FDF0-FDFC FE70-FE74 FE76-FEFC ----- End Table D.1 ----- ----- Start Table D.2 ----- 0041-005A 0061-007A 00AA 00B5 00BA 00C0-00D6 00D8-00F6 00F8-0220 0222-0233 0250-02AD 02B0-02B8 02BB-02C1 02D0-02D1 02E0-02E4 02EE 037A 0386 0388-038A 038C 038E-03A1 03A3-03CE 03D0-03F5 0400-0482 048A-04CE 04D0-04F5 04F8-04F9 0500-050F 0531-0556 0559-055F 0561-0587 0589 0903 0905-0939 093D-0940 0949-094C 0950 0958-0961 0964-0970 0982-0983 0985-098C 098F-0990 0993-09A8 09AA-09B0 09B2 09B6-09B9 09BE-09C0 09C7-09C8 09CB-09CC 09D7 09DC-09DD 09DF-09E1 09E6-09F1 09F4-09FA 0A05-0A0A 0A0F-0A10 0A13-0A28 0A2A-0A30 0A32-0A33 0A35-0A36 0A38-0A39 0A3E-0A40 0A59-0A5C 0A5E 0A66-0A6F 0A72-0A74 0A83 0A85-0A8B 0A8D 0A8F-0A91 0A93-0AA8 0AAA-0AB0 0AB2-0AB3 0AB5-0AB9 0ABD-0AC0 0AC9 0ACB-0ACC 0AD0 0AE0 0AE6-0AEF 0B02-0B03 0B05-0B0C 0B0F-0B10 0B13-0B28 0B2A-0B30 0B32-0B33 0B36-0B39 0B3D-0B3E 0B40 0B47-0B48 0B4B-0B4C 0B57 0B5C-0B5D 0B5F-0B61 0B66-0B70 0B83 0B85-0B8A 0B8E-0B90 0B92-0B95 0B99-0B9A 0B9C 0B9E-0B9F 0BA3-0BA4 0BA8-0BAA 0BAE-0BB5 0BB7-0BB9 0BBE-0BBF 0BC1-0BC2 0BC6-0BC8 0BCA-0BCC 0BD7 0BE7-0BF2 0C01-0C03 0C05-0C0C 0C0E-0C10 0C12-0C28 0C2A-0C33 0C35-0C39 0C41-0C44 0C60-0C61 0C66-0C6F 0C82-0C83 0C85-0C8C 0C8E-0C90 0C92-0CA8 0CAA-0CB3 0CB5-0CB9 0CBE 0CC0-0CC4 0CC7-0CC8 0CCA-0CCB 0CD5-0CD6 0CDE 0CE0-0CE1 0CE6-0CEF 0D02-0D03 0D05-0D0C 0D0E-0D10 0D12-0D28 0D2A-0D39 0D3E-0D40 0D46-0D48 0D4A-0D4C 0D57 0D60-0D61 0D66-0D6F 0D82-0D83 0D85-0D96 0D9A-0DB1 0DB3-0DBB 0DBD 0DC0-0DC6 0DCF-0DD1 0DD8-0DDF 0DF2-0DF4 0E01-0E30 0E32-0E33 0E40-0E46 0E4F-0E5B 0E81-0E82 0E84 0E87-0E88 0E8A 0E8D 0E94-0E97 0E99-0E9F 0EA1-0EA3 0EA5 0EA7 0EAA-0EAB 0EAD-0EB0 0EB2-0EB3 0EBD 0EC0-0EC4 0EC6 0ED0-0ED9 0EDC-0EDD 0F00-0F17 0F1A-0F34 0F36 0F38 0F3E-0F47 0F49-0F6A 0F7F 0F85 0F88-0F8B 0FBE-0FC5 0FC7-0FCC 0FCF 1000-1021 1023-1027 1029-102A 102C 1031 1038 1040-1057 10A0-10C5 10D0-10F8 10FB 1100-1159 115F-11A2 11A8-11F9 1200-1206 1208-1246 1248 124A-124D 1250-1256 1258 125A-125D 1260-1286 1288 128A-128D 1290-12AE 12B0 12B2-12B5 12B8-12BE 12C0 12C2-12C5 12C8-12CE 12D0-12D6 12D8-12EE 12F0-130E 1310 1312-1315 1318-131E 1320-1346 1348-135A 1361-137C 13A0-13F4 1401-1676 1681-169A 16A0-16F0 1700-170C 170E-1711 1720-1731 1735-1736 1740-1751 1760-176C 176E-1770 1780-17B6 17BE-17C5 17C7-17C8 17D4-17DA 17DC 17E0-17E9 1810-1819 1820-1877 1880-18A8 1E00-1E9B 1EA0-1EF9 1F00-1F15 1F18-1F1D 1F20-1F45 1F48-1F4D 1F50-1F57 1F59 1F5B 1F5D 1F5F-1F7D 1F80-1FB4 1FB6-1FBC 1FBE 1FC2-1FC4 1FC6-1FCC 1FD0-1FD3 1FD6-1FDB 1FE0-1FEC 1FF2-1FF4 1FF6-1FFC 200E 2071 207F 2102 2107 210A-2113 2115 2119-211D 2124 2126 2128 212A-212D 212F-2131 2133-2139 213D-213F 2145-2149 2160-2183 2336-237A 2395 249C-24E9 3005-3007 3021-3029 3031-3035 3038-303C 3041-3096 309D-309F 30A1-30FA 30FC-30FF 3105-312C 3131-318E 3190-31B7 31F0-321C 3220-3243 3260-327B 327F-32B0 32C0-32CB 32D0-32FE 3300-3376 337B-33DD 33E0-33FE 3400-4DB5 4E00-9FA5 A000-A48C AC00-D7A3 D800-FA2D FA30-FA6A FB00-FB06 FB13-FB17 FF21-FF3A FF41-FF5A FF66-FFBE FFC2-FFC7 FFCA-FFCF FFD2-FFD7 FFDA-FFDC 10300-1031E 10320-10323 10330-1034A 10400-10425 10428-1044D 1D000-1D0F5 1D100-1D126 1D12A-1D166 1D16A-1D172 1D183-1D184 1D18C-1D1A9 1D1AE-1D1DD 1D400-1D454 1D456-1D49C 1D49E-1D49F 1D4A2 1D4A5-1D4A6 1D4A9-1D4AC 1D4AE-1D4B9 1D4BB 1D4BD-1D4C0 1D4C2-1D4C3 1D4C5-1D505 1D507-1D50A 1D50D-1D514 1D516-1D51C 1D51E-1D539 1D53B-1D53E 1D540-1D544 1D546 1D54A-1D550 1D552-1D6A3 1D6A8-1D7C9 20000-2A6D6 2F800-2FA1D F0000-FFFFD 100000-10FFFD ----- End Table D.2 ----- libidn-1.38/doc/specifications/SpecialCasing-3.2.0.txt0000644000000000000000000003565114053001337017257 00000000000000# SpecialCasing-3.2.0.txt # Date: 2002-03-19,23:31:42 GMT [MD] # # Special Casing Properties # # This file is a supplement to the UnicodeData file. # It contains additional information about the casing of Unicode characters. # (For compatibility, the UnicodeData.txt file only contains case mappings for # characters where they are 1-1, and does not have locale-specific mappings.) # For more information, see # UTR #21 Case Mappings, at http://www.unicode.org/unicode/reports/tr21/ # # ================================================================================ # Format # ================================================================================ # The entries in this file are in the following machine-readable format: # # ; ; ; <upper> ; (<condition_list> ;)? # <comment> # # <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more than # one character, they are separated by spaces. Other than as used to separate elements, # spaces are to be ignored. # # The <condition_list> is optional. Where present, it consists of one or more locales or contexts, # separated by spaces. In these conditions: # - A condition list overrides the normal behavior if all of the listed conditions are true. # - The context is always the context of the characters in the original string, # NOT in the resulting string. # - Case distinctions in the condition list are not significant. # - Conditions preceded by "Not_" represent the negation of the condition. # # A locale is defined as: # <locale> := <ISO_639_code> ( "_" <ISO_3166_code> ( "_" <variant> )? )? # <ISO_3166_code> := 2-letter ISO country code, # <ISO_639_code> := 2-letter ISO language code # # A context is one of the following, as defined in UAX #21: Case Mappings: # Final_Sigma, After_Soft_Dotted, More_Above, Before_Dot # # Parsers of this file must be prepared to deal future additions to this format: # * Additional contexts # * Additional fields # ================================================================================ # ================================================================================ # Unconditional mappings # ================================================================================ # The German es-zed is special--the normal mapping is to SS. # Note: the titlecase should never occur in practice. It is equal to titlecase(uppercase(<es-zed>)) 00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S # Preserve canonical equivalence for I with dot. Turkic is handled below. 0130; 0069 0307; 0130; 0130; # LATIN CAPITAL LETTER I WITH DOT ABOVE # Ligatures FB00; FB00; 0046 0066; 0046 0046; # LATIN SMALL LIGATURE FF FB01; FB01; 0046 0069; 0046 0049; # LATIN SMALL LIGATURE FI FB02; FB02; 0046 006C; 0046 004C; # LATIN SMALL LIGATURE FL FB03; FB03; 0046 0066 0069; 0046 0046 0049; # LATIN SMALL LIGATURE FFI FB04; FB04; 0046 0066 006C; 0046 0046 004C; # LATIN SMALL LIGATURE FFL FB05; FB05; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE LONG S T FB06; FB06; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE ST 0587; 0587; 0535 0582; 0535 0552; # ARMENIAN SMALL LIGATURE ECH YIWN FB13; FB13; 0544 0576; 0544 0546; # ARMENIAN SMALL LIGATURE MEN NOW FB14; FB14; 0544 0565; 0544 0535; # ARMENIAN SMALL LIGATURE MEN ECH FB15; FB15; 0544 056B; 0544 053B; # ARMENIAN SMALL LIGATURE MEN INI FB16; FB16; 054E 0576; 054E 0546; # ARMENIAN SMALL LIGATURE VEW NOW FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH # No corresponding uppercase precomposed character 0149; 0149; 02BC 004E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON 1E96; 1E96; 0048 0331; 0048 0331; # LATIN SMALL LETTER H WITH LINE BELOW 1E97; 1E97; 0054 0308; 0054 0308; # LATIN SMALL LETTER T WITH DIAERESIS 1E98; 1E98; 0057 030A; 0057 030A; # LATIN SMALL LETTER W WITH RING ABOVE 1E99; 1E99; 0059 030A; 0059 030A; # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A; 1E9A; 0041 02BE; 0041 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING 1F50; 1F50; 03A5 0313; 03A5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI 1F52; 1F52; 03A5 0313 0300; 03A5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F54; 1F54; 03A5 0313 0301; 03A5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F56; 1F56; 03A5 0313 0342; 03A5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1FB6; 1FB6; 0391 0342; 0391 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FC6; 1FC6; 0397 0342; 0397 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FD2; 1FD2; 0399 0308 0300; 0399 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3; 1FD3; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6; 1FD6; 0399 0342; 0399 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7; 1FD7; 0399 0308 0342; 0399 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FE2; 1FE2; 03A5 0308 0300; 03A5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3; 1FE3; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4; 1FE4; 03A1 0313; 03A1 0313; # GREEK SMALL LETTER RHO WITH PSILI 1FE6; 1FE6; 03A5 0342; 03A5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7; 1FE7; 03A5 0308 0342; 03A5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FF6; 1FF6; 03A9 0342; 03A9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI # IMPORTANT-when capitalizing iota-subscript (0345) # It MUST be in normalized form--moved to the end of any sequence of combining marks. # This is because logically it represents a following base character! # E.g. <iota_subscript> (<Mn> | <Mc> | <Me>)+ => (<Mn> | <Mc> | <Me>)+ <iota_subscript> # It should never be the first character in a word, so in titlecasing it can be left as is. # The following cases are already in the UnicodeData file, so are only commented here. # 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI # All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript) # have special uppercases. # Note: characters with PROSGEGRAMMENI are actually titlecase, not uppercase! 1F80; 1F80; 1F88; 1F08 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81; 1F81; 1F89; 1F09 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82; 1F82; 1F8A; 1F0A 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83; 1F83; 1F8B; 1F0B 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84; 1F84; 1F8C; 1F0C 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85; 1F85; 1F8D; 1F0D 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86; 1F86; 1F8E; 1F0E 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87; 1F87; 1F8F; 1F0F 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88; 1F80; 1F88; 1F08 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89; 1F81; 1F89; 1F09 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A; 1F82; 1F8A; 1F0A 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B; 1F83; 1F8B; 1F0B 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C; 1F84; 1F8C; 1F0C 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D; 1F85; 1F8D; 1F0D 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E; 1F86; 1F8E; 1F0E 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; 1F87; 1F8F; 1F0F 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90; 1F90; 1F98; 1F28 0399; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91; 1F91; 1F99; 1F29 0399; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92; 1F92; 1F9A; 1F2A 0399; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93; 1F93; 1F9B; 1F2B 0399; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94; 1F94; 1F9C; 1F2C 0399; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95; 1F95; 1F9D; 1F2D 0399; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96; 1F96; 1F9E; 1F2E 0399; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97; 1F97; 1F9F; 1F2F 0399; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98; 1F90; 1F98; 1F28 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99; 1F91; 1F99; 1F29 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A; 1F92; 1F9A; 1F2A 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B; 1F93; 1F9B; 1F2B 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C; 1F94; 1F9C; 1F2C 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D; 1F95; 1F9D; 1F2D 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E; 1F96; 1F9E; 1F2E 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; 1F97; 1F9F; 1F2F 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0; 1FA0; 1FA8; 1F68 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1; 1FA1; 1FA9; 1F69 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2; 1FA2; 1FAA; 1F6A 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3; 1FA3; 1FAB; 1F6B 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4; 1FA4; 1FAC; 1F6C 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5; 1FA5; 1FAD; 1F6D 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6; 1FA6; 1FAE; 1F6E 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7; 1FA7; 1FAF; 1F6F 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8; 1FA0; 1FA8; 1F68 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9; 1FA1; 1FA9; 1F69 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA; 1FA2; 1FAA; 1F6A 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB; 1FA3; 1FAB; 1F6B 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC; 1FA4; 1FAC; 1F6C 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD; 1FA5; 1FAD; 1F6D 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE; 1FA6; 1FAE; 1F6E 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; 1FA7; 1FAF; 1F6F 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB3; 1FB3; 1FBC; 0391 0399; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FBC; 1FB3; 1FBC; 0391 0399; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FC3; 1FC3; 1FCC; 0397 0399; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FCC; 1FC3; 1FCC; 0397 0399; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI # Some characters with YPOGEGRAMMENI are also have no corresponding titlecases 1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FC2; 1FC2; 1FCA 0345; 1FCA 0399; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC4; 1FC4; 0389 0345; 0389 0399; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FF2; 1FF2; 1FFA 0345; 1FFA 0399; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF4; 1FF4; 038F 0345; 038F 0399; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FB7; 1FB7; 0391 0342 0345; 0391 0342 0399; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC7; 1FC7; 0397 0342 0345; 0397 0342 0399; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI # ================================================================================ # Conditional mappings # ================================================================================ # Special case for final form of sigma 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA # Note: the following cases for non-final are already in the UnicodeData file. # 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA # 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA # 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA # Note: the following cases are not included, since they would case-fold in lowercasing # 03C3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK SMALL LETTER SIGMA # 03C2; 03C3; 03A3; 03A3; Not_Final_Sigma; # GREEK SMALL LETTER FINAL SIGMA # ================================================================================ # Locale-sensitive mappings # ================================================================================ # Lithuanian # Lithuanian retains the dot in a lowercase i when followed by accents. # Remove DOT ABOVE after "i" with upper or titlecase 0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE # Introduce an explicit dot above when lowercasing capital I's and J's # whenever there are more accents above. # (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) 0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I 004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK 00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE 00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE 0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE # ================================================================================ # Turkish and Azeri # I and i-dotless; I-dot and i are case pairs in Turkish and Azeri # The following rules handle those cases. 0130; 0069; 0130; 0130; tr # LATIN CAPITAL LETTER I WITH DOT ABOVE 0130; 0069; 0130; 0130; az # LATIN CAPITAL LETTER I WITH DOT ABOVE # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. # This matches the behavior of the canonically equivalent I-dot_above 0307; ; 0307; 0307; tr After_Soft_Dotted; # COMBINING DOT ABOVE 0307; ; 0307; 0307; az After_Soft_Dotted; # COMBINING DOT ABOVE # When lowercasing, unless an I is before a dot_above, it turns into a dotless i. 0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I 0049; 0131; 0049; 0049; az Not_Before_Dot; # LATIN CAPITAL LETTER I # When uppercasing, i turns into a dotted capital I 0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I 0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I # Note: the following case is already in the UnicodeData file. # 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I ���������������������������������������������������������������������������������������libidn-1.38/doc/specifications/Makefile.am����������������������������������������������������������0000644�0000000�0000000�00000001757�14053001337�015407� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2011 Simon # Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. EXTRA_DIST = rfc3454.txt \ UnicodeData-3.2.0.txt LineBreak-3.2.0.txt \ SpecialCasing-3.2.0.txt CaseFolding-3.2.0.txt \ CompositionExclusions-3.2.0.txt BidiMirroring-3.2.0.txt \ COPYING.UCD �����������������libidn-1.38/doc/tld/��������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274121�011211� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/tld/Makefile.in���������������������������������������������������������������������0000644�0000000�0000000�00000146107�14076273732�013216� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2021 Simon Josefsson. # Copyright (C) 2004 Free Software Foundation, Inc # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/tld ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README fr.tld no.tld all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/tld/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/tld/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/tld/no.tld��������������������������������������������������������������������������0000644�0000000�0000000�00000003752�14076271517�012267� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2003-2021 Free Software Foundation, Inc. # Author: Thomas Jacob, Internet24.de. # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice, this notice and the source URL list below are preserved. # See http://www.norid.no/domeneregistrering/idn/idn_nyetegn.html # http://www.norid.no/regelverk/forslag/idn-2003/index.en.html # http://www.norid.no/regelverk/forslag/idn-2003/2003-02-18.en.html # https://www.norid.no/en/om-domenenavn/regelverk-for-no/#link3 # --- snip --- # # From Hilde.Thunem at uninett.no Tue Mar 9 14:12:49 2004 # Message-Id: <200403091312.i29DClR3028354 at valgrind.uninett.no> # Subject: Re: NI2004012700128 Copyright of IDN character set tables # # Hi. # # You may use the character list freely. The only thing we would ask of you is # that you give some reference as to where you have found it. This is to ensure # that people that want to see the latest updated list know where to go (it may # change if the languages changes - although I doubt that will happen). It also # gives the opportunity for those interested in the background for why those # characters have been chosen (e.g. that the language councils of Norway has # been involved) to read about the process. # # Kind regards, # Hilde Thunem # NORID # # --- snap --- version "2.0" tld no U+00E1 # a med akutt aksent / á 00E1 U+00E0 # a med gravis-aksent / à 00E0 U+00E4 # a med omlyd / ä 00E4 U+010D # c med caron U+00E7 # c med cedille / ç 00E7 U+0111 # d med strek U+00E9 # e med akutt aksent / é U+00E8 # e med gravis-aksent / è U+00EA # e med circumflex-aksent / ê U+00EF # i with umlaut / ï U+014B # eng U+0144 # n med akutt aksent U+00F1 # n med tilde / ñ U+00F3 # o med akutt aksent / ó U+00F2 # o med gravis-aksent / ò U+00F4 # o med circumflex-aksent / ô U+00F6 # o med omlyd / ö U+0161 # s med caron U+0167 # t med strek U+00FC # u med omlyd / ü U+017E # z med caron U+00E6 # æ U+00F8 # ø U+00E5 # Ã¥ ����������������������libidn-1.38/doc/tld/README��������������������������������������������������������������������������0000644�0000000�0000000�00000004266�14076271517�012027� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Libidn doc/tld/README -- Notes and definition of the TLD tables. Copyright (C) 2004-2021 Simon Josefsson Copyright (C) 2004 Free Software Foundation, Inc See the end for copying conditions. This directory contain tables that specify which characters are valid for each TLD. Each table is stored in a file XX.tld where XX doesn't really matter, but is recommended to be the TLD name. For example, the TLD table for .FR is stored in the file "fr.tld". The library finds all files matching *.tld automatically, so if you install a file you only need to remove lib/tlds.c and type 'make' and it will be incorporated in the library. Experimental tables for various TLDs can be found at <https://github.com/gnuthor/tldchk>. The format for the files are as follows. Empty lines or those starting with '#' are ignored. It is highly recommended to discuss matters in a comment; to give the URL to the source of the table, mention the copyright and copying conditions of the tables, etc. Normal lines consist of valid Unicode code points for the TLD, expressed as single numbers (like 123, 0xff, 0100) or inclusive intervals (112-344 0xff-0100) using the usual C decimal, octal or hex notations. Each TLD file must contain one line on the format 'tld XX'. The XX should be the TLD name that the file defines. This is the string that is used in the generated C source code. If definitions are shared among several TLDs or are constructed from standard Unicode blocks, put the building blocks in a file of its own and include it using 'include FILENAME' on a line by itself. All files, even included files, MUST contain a line 'version FOO' where FOO is a human readable string that should be possible to use in a string comparison to detect when the table has changed. The version number must be changed whenever a backwards incompatible change is made to the file. Don't change the version number just because the comments are changed, or there is a new release of the library. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/tld/Makefile.am���������������������������������������������������������������������0000644�0000000�0000000�00000001535�14076271517�013177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2021 Simon Josefsson. # Copyright (C) 2004 Free Software Foundation, Inc # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. EXTRA_DIST = README fr.tld no.tld �������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/tld/fr.tld��������������������������������������������������������������������������0000644�0000000�0000000�00000003762�14076271517�012263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2004-2021 Simon Josefsson # Copyright (C) 2003 Stephane Bortzmeyer <bortzmeyer@nic.fr> / AFNIC # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. version "1.0" tld fr # Variant table for the French language # See Internet-Draft draft-hoffman-idn-reg-00 # # Designed at AFNIC # This table is built by starting from the characters that are # actually used in French. # a-z # a and its variants : à â # á (a acute) does not seem to exist in French: for further study (town names?) # a with ring above <U+00E5> does not exist in french but in picard # <URL:http://www.picard.free.fr/lgpic/a-e.htm> U+0061|U+00E0:U+00E2 U+0062 # c and ç U+0063|U+00E7 U+0064 # e and its variants : è é ê ë U+0065|U+00E8:U+00E9:U+00EA:U+00EB U+0066 U+0067 U+0068 # i and its variants : î ï U+0069|U+00EE:U+00EF U+006A U+006B U+006C U+006D # n # ñ <U+00F1> does not exist in french but in breton # <URL:http://www.ouest-france.fr/dossiershtm/cours-de-breton/lecture.htm> # or in basque. U+006E # o and its variants : ô. ö <U+00F6> exists in French? No word uses # it. # ò <U+00F2> does not exist in french but in occitan # <URL:http://occitanet.free.fr/fr/index.html> U+006F|U+00F4 U+0070 U+0071 U+0072 U+0073 U+0074 # u and its variants : ù û ü # ú (u acute) does not seem to exist in French: for further study U+0075|U+00F9:U+00FB:U+00FC U+0076 U+0077 U+0078 # y. ÿ only in names? (L'Haÿ-les-Roses) U+0079|U+00FF U+007A # 0-9 U+0030 U+0031 U+0032 U+0033 U+0034 U+0035 U+0036 U+0037 U+0038 U+0039 # - (hyphen) U+002D # Ligature ae (æ). Only in names like Lætitia? U+00E6|U+0061U+0065 # Ligature oe (not in Latin-1) U+0153|U+006FU+0065 # Some references: # http://www.sdv.fr/orthonet/pages/informations_p6.html # regional languages # http://www.ouest-france.fr/dossiershtm/cours-de-breton/lecture.htm # http://occitanet.free.fr/fr/index.html # http://www.picard.free.fr/lgpic/a-e.htm ��������������libidn-1.38/doc/man/��������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274121�011201� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_check_4.3�������������������������������������������������������������������0000644�0000000�0000000�00000004312�14076273767�013367� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4" 3 "1.38" "libidn" "libidn" .SH NAME tld_check_4 \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_check_4(const uint32_t * " in ", size_t " inlen ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Array of unicode code points to process. Does not need to be zero terminated. .IP "size_t inlen" 12 Number of unicode code points. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP , the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP . Return value: Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_check_4tz.3�����������������������������������������������������������������0000644�0000000�0000000�00000003426�14076273767�013752� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4tz" 3 "1.38" "libidn" "libidn" .SH NAME tld_check_4tz \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_check_4tz(const uint32_t * " in ", size_t * " errpos ", const Tld_table * " tld ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Zero terminated array of unicode code points to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table * tld" 12 A \fBTld_table\fP data structure representing the restrictions for which the input should be tested. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the data structure in \fItld\fP , return the position of the first character for which this is not the case in \fIerrpos\fP . Return value: Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_locale_charset.3�����������������������������������������������������0000644�0000000�0000000�00000004030�14076273767�016446� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_locale_charset" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_locale_charset \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "const char * stringprep_locale_charset( " void ");" .SH ARGUMENTS .IP " void" 12 .SH "DESCRIPTION" Enumerated return codes of the TLD checking functions. The value 0 is guaranteed to always correspond to success. .SH "" Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything. Note that this function return the application's locale's preferred charset (or thread's locale's preferred charset, if your system support thread\-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. Return value: Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_strerror.3�����������������������������������������������������������0000644�0000000�0000000�00000005475�14076273770�015370� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_strerror" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_strerror \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "const char * stringprep_strerror(Stringprep_rc " rc ");" .SH ARGUMENTS .IP "Stringprep_rc rc" 12 a \fBStringprep_rc\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "STRINGPREP_OK" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "STRINGPREP_CONTAINS_UNASSIGNED" String contain unassigned Unicode code points, which is forbidden by the profile. .SH "STRINGPREP_CONTAINS_PROHIBITED" String contain code points prohibited by the profile. .SH "STRINGPREP_BIDI_BOTH_L_AND_RAL" String contain code points with conflicting bidirection category. .SH "STRINGPREP_BIDI_LEADTRAIL_NOT_RAL" Leading and trailing character in string not of proper bidirectional category. .SH "STRINGPREP_BIDI_CONTAINS_PROHIBITED" Contains prohibited code points detected by bidirectional code. .SH "STRINGPREP_TOO_SMALL_BUFFER" Buffer handed to function was too small. This usually indicate a problem in the calling application. .SH "STRINGPREP_PROFILE_ERROR" The stringprep profile was inconsistent. This usually indicate an internal error in the library. .SH "STRINGPREP_FLAG_ERROR" The supplied flag conflicted with profile. This usually indicate a problem in the calling application. .SH "STRINGPREP_UNKNOWN_PROFILE" The supplied profile name was not known to the library. .SH "STRINGPREP_ICONV_ERROR" Character encoding conversion error. .SH "STRINGPREP_NFKC_FAILED" The Unicode NFKC operation failed. This usually indicate an internal error in the library. .SH "STRINGPREP_MALLOC_ERROR" The \fBmalloc()\fP was out of memory. This is usually a fatal error. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_ucs4_to_utf8.3�������������������������������������������������������0000644�0000000�0000000�00000003502�14076273765�016025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_ucs4_to_utf8" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_ucs4_to_utf8 \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "char * stringprep_ucs4_to_utf8(const uint32_t * " str ", ssize_t " len ", size_t * " items_read ", size_t * " items_written ");" .SH ARGUMENTS .IP "const uint32_t * str" 12 a UCS\-4 encoded string .IP "ssize_t len" 12 the maximum length of \fIstr\fP to use. If \fIlen\fP < 0, then the string is terminated with a 0 character. .IP "size_t * items_read" 12 location to store number of characters read read, or \fBNULL\fP. .IP "size_t * items_written" 12 location to store number of bytes written or \fBNULL\fP. The value here stored does not include the trailing 0 byte. .SH "DESCRIPTION" Convert a string from a 32\-bit fixed width representation as UCS\-4. to UTF\-8. The result will be terminated with a 0 byte. Return value: a pointer to a newly allocated UTF\-8 string. This value must be deallocated by the caller. If an error occurs, \fBNULL\fP will be returned. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_utf8_to_unichar.3����������������������������������������������������0000644�0000000�0000000�00000003042�14076273765�016577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_to_unichar" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_utf8_to_unichar \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "uint32_t stringprep_utf8_to_unichar(const char * " p ");" .SH ARGUMENTS .IP "const char * p" 12 a pointer to Unicode character encoded as UTF\-8 .SH "DESCRIPTION" Converts a sequence of bytes encoded as UTF\-8 to a Unicode character. If \fIp\fP does not point to a valid UTF\-8 encoded character, results are undefined. Return value: the resulting character. .SH "DESCRIPTION" Converts a sequence of bytes encoded as UTF\-8 to a Unicode character. If \fIp\fP does not point to a valid UTF\-8 encoded character, results are undefined. Return value: the resulting character. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/pr29_4z.3�����������������������������������������������������������������������0000644�0000000�0000000�00000002700�14076273765�012432� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_4z" 3 "1.38" "libidn" "libidn" .SH NAME pr29_4z \- API function .SH SYNOPSIS .B #include <pr29.h> .sp .BI "int pr29_4z(const uint32_t * " in ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 zero terminated array of Unicode code points. .SH "DESCRIPTION" Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the \fBPr29_rc\fP value \fBPR29_SUCCESS\fP on success, and \fBPR29_PROBLEM\fP if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������libidn-1.38/doc/man/tld_strerror.3������������������������������������������������������������������0000644�0000000�0000000�00000003351�14076273770�013745� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_strerror" 3 "1.38" "libidn" "libidn" .SH NAME tld_strerror \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "const char * tld_strerror(Tld_rc " rc ");" .SH ARGUMENTS .IP "Tld_rc rc" 12 tld return code .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "TLD_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "TLD_INVALID" Invalid character found. .SH "TLD_NODATA" No input data was provided. .SH "TLD_MALLOC_ERROR" Error during memory allocation. .SH "TLD_ICONV_ERROR" Character encoding conversion error. .SH "TLD_NO_TLD" No top\-level domain found in domain string. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_ascii_4i.3��������������������������������������������������������������0000644�0000000�0000000�00000004752�14076273764�014412� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_4i" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_ascii_4i \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_ascii_4i(const uint32_t * " in ", size_t " inlen ", char * " out ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 input array with unicode code points. .IP "size_t inlen" 12 length of input array with unicode code points. .IP "char * out" 12 output zero terminated string that must have room for at least 63 characters plus the terminating zero. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application\-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. Return value: Returns 0 on success, or an \fBIdna_rc\fP error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������libidn-1.38/doc/man/tld_get_z.3���������������������������������������������������������������������0000644�0000000�0000000�00000002701�14076273767�013177� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_z" 3 "1.38" "libidn" "libidn" .SH NAME tld_get_z \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_get_z(const char * " in ", char ** " out ");" .SH ARGUMENTS .IP "const char * in" 12 Zero terminated character array to process. .IP "char ** out" 12 Zero terminated ascii result string pointer. .SH "DESCRIPTION" Isolate the top\-level domain of \fIin\fP and return it as an ASCII string in \fIout\fP . The input string \fIin\fP may be UTF\-8, ISO\-8859\-1 or any ASCII compatible character encoding. Return value: Return \fBTLD_SUCCESS\fP on success, or the corresponding \fBTld_rc\fP error code otherwise. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������libidn-1.38/doc/man/idna_to_unicode_8zlz.3����������������������������������������������������������0000644�0000000�0000000�00000003227�14076273764�015337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_8zlz" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_unicode_8zlz \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_unicode_8zlz(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated UTF\-8 string. .IP "char ** output" 12 pointer to newly allocated output string encoded in the current locale's character set. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UTF\-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_check_8z.3������������������������������������������������������������������0000644�0000000�0000000�00000004311�14076273767�013564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_8z" 3 "1.38" "libidn" "libidn" .SH NAME tld_check_8z \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_check_8z(const char * " in ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const char * in" 12 Zero\-terminated UTF8 string to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the characters in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP , the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP . Note that the error position refers to the decoded character offset rather than the byte position in the string. Return value: Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all characters are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep.3��������������������������������������������������������������������0000644�0000000�0000000�00000004374�14076273766�013430� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep" 3 "1.38" "libidn" "libidn" .SH NAME stringprep \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "int stringprep(char * " in ", size_t " maxlen ", Stringprep_profile_flags " flags ", const Stringprep_profile * " profile ");" .SH ARGUMENTS .IP "char * in" 12 input/ouput array with string to prepare. .IP "size_t maxlen" 12 maximum length of input/output array. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .IP "const Stringprep_profile * profile" 12 pointer to \fBStringprep_profile\fP to use. .SH "DESCRIPTION" Prepare the input zero terminated UTF\-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF\-8 before using this function, see \fBstringprep_locale_to_utf8()\fP. Since the stringprep operation can expand the string, \fImaxlen\fP indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns \fBSTRINGPREP_OK\fP iff successful, or an error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_ucs4_nfkc_normalize.3������������������������������������������������0000644�0000000�0000000�00000002671�14076273765�017444� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_ucs4_nfkc_normalize" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_ucs4_nfkc_normalize \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "uint32_t * stringprep_ucs4_nfkc_normalize(const uint32_t * " str ", ssize_t " len ");" .SH ARGUMENTS .IP "const uint32_t * str" 12 a Unicode string. .IP "ssize_t len" 12 length of \fIstr\fP array, or \-1 if \fIstr\fP is nul\-terminated. .SH "DESCRIPTION" Converts a UCS4 string into canonical form, see \fBstringprep_utf8_nfkc_normalize()\fP for more information. Return value: a newly allocated Unicode string, that is the NFKC normalized form of \fIstr\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������������������������������������������������������������������libidn-1.38/doc/man/stringprep_utf8_to_locale.3�����������������������������������������������������0000644�0000000�0000000�00000002525�14076273770�016406� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_to_locale" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_utf8_to_locale \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "char * stringprep_utf8_to_locale(const char * " str ");" .SH ARGUMENTS .IP "const char * str" 12 input zero terminated string. .SH "DESCRIPTION" Convert string encoded in UTF\-8 into the locale's character set by using \fBstringprep_convert()\fP. Return value: Returns newly allocated zero\-terminated string which is \fIstr\fP transcoded into the locale's character set. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_unicode_4z4z.3����������������������������������������������������������0000644�0000000�0000000�00000003133�14076273764�015237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_4z4z" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_unicode_4z4z \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_unicode_4z4z(const uint32_t * " input ", uint32_t ** " output ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * input" 12 zero\-terminated Unicode string. .IP "uint32_t ** output" 12 pointer to newly allocated output Unicode string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UCS\-4 format into a UCS\-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_get_4.3���������������������������������������������������������������������0000644�0000000�0000000�00000002716�14076273766�013076� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_4" 3 "1.38" "libidn" "libidn" .SH NAME tld_get_4 \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_get_4(const uint32_t * " in ", size_t " inlen ", char ** " out ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Array of unicode code points to process. Does not need to be zero terminated. .IP "size_t inlen" 12 Number of unicode code points. .IP "char ** out" 12 Zero terminated ascii result string pointer. .SH "DESCRIPTION" Isolate the top\-level domain of \fIin\fP and return it as an ASCII string in \fIout\fP . Return value: Return \fBTLD_SUCCESS\fP on success, or the corresponding \fBTld_rc\fP error code otherwise. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������libidn-1.38/doc/man/tld_check_4t.3������������������������������������������������������������������0000644�0000000�0000000�00000003557�14076273767�013565� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4t" 3 "1.38" "libidn" "libidn" .SH NAME tld_check_4t \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_check_4t(const uint32_t * " in ", size_t " inlen ", size_t * " errpos ", const Tld_table * " tld ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Array of unicode code points to process. Does not need to be zero terminated. .IP "size_t inlen" 12 Number of unicode code points. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table * tld" 12 A \fBTld_table\fP data structure representing the restrictions for which the input should be tested. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the data structure in \fItld\fP , return the position of the first character for which this is not the case in \fIerrpos\fP . Return value: Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_utf8_to_ucs4.3�������������������������������������������������������0000644�0000000�0000000�00000003266�14076273765�016034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_to_ucs4" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_utf8_to_ucs4 \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "uint32_t * stringprep_utf8_to_ucs4(const char * " str ", ssize_t " len ", size_t * " items_written ");" .SH ARGUMENTS .IP "const char * str" 12 a UTF\-8 encoded string .IP "ssize_t len" 12 the maximum length of \fIstr\fP to use. If \fIlen\fP < 0, then the string is nul\-terminated. .IP "size_t * items_written" 12 location to store the number of characters in the result, or \fBNULL\fP. .SH "DESCRIPTION" Convert a string from UTF\-8 to a 32\-bit fixed width representation as UCS\-4. The function now performs error checking to verify that the input is valid UTF\-8 (before it was documented to not do error checking). Return value: a pointer to a newly allocated UCS\-4 string. This value must be deallocated by the caller. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_4zi.3����������������������������������������������������������������0000644�0000000�0000000�00000004265�14076273766�014215� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_4zi" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_4zi \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "int stringprep_4zi(uint32_t * " ucs4 ", size_t " maxucs4len ", Stringprep_profile_flags " flags ", const Stringprep_profile * " profile ");" .SH ARGUMENTS .IP "uint32_t * ucs4" 12 input/output array with zero terminated string to prepare. .IP "size_t maxucs4len" 12 maximum length of input/output array. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .IP "const Stringprep_profile * profile" 12 pointer to \fBStringprep_profile\fP to use. .SH "DESCRIPTION" Prepare the input zero terminated UCS\-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, \fImaxucs4len\fP indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns \fBSTRINGPREP_OK\fP iff successful, or an \fBStringprep_rc\fP error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/pr29_strerror.3�����������������������������������������������������������������0000644�0000000�0000000�00000003211�14076273770�013751� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_strerror" 3 "1.38" "libidn" "libidn" .SH NAME pr29_strerror \- API function .SH SYNOPSIS .B #include <pr29.h> .sp .BI "const char * pr29_strerror(Pr29_rc " rc ");" .SH ARGUMENTS .IP "Pr29_rc rc" 12 an \fBPr29_rc\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "PR29_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "PR29_PROBLEM" A problem sequence was encountered. .SH "PR29_STRINGPREP_ERROR" The character set conversion failed (only for \fBpr29_8z()\fP). Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_ascii_lz.3��������������������������������������������������������������0000644�0000000�0000000�00000003120�14076273764�014507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_lz" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_ascii_lz \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_ascii_lz(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero terminated input string encoded in the current locale's character set. .IP "char ** output" 12 pointer to newly allocated output string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_get_table.3�����������������������������������������������������������������0000644�0000000�0000000�00000003316�14076273766�014017� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_table" 3 "1.38" "libidn" "libidn" .SH NAME tld_get_table \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "const Tld_table * tld_get_table(const char * " tld ", const Tld_table ** " tables ");" .SH ARGUMENTS .IP "const char * tld" 12 TLD name (e.g. "com") as zero terminated ASCII byte string. .IP "const Tld_table ** tables" 12 Zero terminated array of \fBTld_table\fP info\-structures for TLDs. .SH "DESCRIPTION" Get the TLD table for a named TLD by searching through the given TLD table array. Return value: Return structure corresponding to TLD \fItld\fP by going thru \fItables\fP , or return \fBNULL\fP if no such structure is found. .SH "DESCRIPTION" Get the TLD table for a named TLD by searching through the given TLD table array. Return value: Return structure corresponding to TLD \fItld\fP by going thru \fItables\fP , or return \fBNULL\fP if no such structure is found. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/punycode_decode.3���������������������������������������������������������������0000644�0000000�0000000�00000005735�14076273766�014366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "punycode_decode" 3 "1.38" "libidn" "libidn" .SH NAME punycode_decode \- API function .SH SYNOPSIS .B #include <punycode.h> .sp .BI "int punycode_decode(size_t " input_length ", const char [] " input ", size_t * " output_length ", punycode_uint [] " output ", unsigned char [] " case_flags ");" .SH ARGUMENTS .IP "size_t input_length" 12 The number of ASCII code points in the \fIinput\fP array. .IP "const char [] input" 12 An array of ASCII code points (0..7F). .IP "size_t * output_length" 12 The caller passes in the maximum number of code points that it can receive into the \fIoutput\fP array (which is also the maximum number of flags that it can receive into the \fIcase_flags\fP array, if \fIcase_flags\fP is not a \fBNULL\fP pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied \fIoutput_length\fP is greater than that. .IP "punycode_uint [] output" 12 An array of code points like the input argument of \fBpunycode_encode()\fP (see above). .IP "unsigned char [] case_flags" 12 A \fBNULL\fP pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the \fIoutput\fP array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. .SH "DESCRIPTION" Converts Punycode to a sequence of code points (presumed to be Unicode code points). Return value: The return value can be any of the \fBPunycode_status\fP values defined above. If not \fBPUNYCODE_SUCCESS\fP, then \fIoutput_length\fP , \fIoutput\fP , and \fIcase_flags\fP might contain garbage. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������������������������������libidn-1.38/doc/man/stringprep_locale_to_utf8.3�����������������������������������������������������0000644�0000000�0000000�00000002501�14076273770�016400� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_locale_to_utf8" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_locale_to_utf8 \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "char * stringprep_locale_to_utf8(const char * " str ");" .SH ARGUMENTS .IP "const char * str" 12 input zero terminated string. .SH "DESCRIPTION" Convert string encoded in the locale's character set into UTF\-8 by using \fBstringprep_convert()\fP. Return value: Returns newly allocated zero\-terminated string which is \fIstr\fP transcoded into UTF\-8. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_ascii_8z.3��������������������������������������������������������������0000644�0000000�0000000�00000003027�14076273764�014431� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_8z" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_ascii_8z \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_ascii_8z(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero terminated input UTF\-8 string. .IP "char ** output" 12 pointer to newly allocated output string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert UTF\-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_convert.3������������������������������������������������������������0000644�0000000�0000000�00000003004�14076273767�015156� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_convert" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_convert \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "char * stringprep_convert(const char * " str ", const char * " to_codeset ", const char * " from_codeset ");" .SH ARGUMENTS .IP "const char * str" 12 input zero\-terminated string. .IP "const char * to_codeset" 12 name of destination character set. .IP "const char * from_codeset" 12 name of origin character set, as used by \fIstr\fP . .SH "DESCRIPTION" Convert the string from one character set to another using the system's \fBiconv()\fP function. Return value: Returns newly allocated zero\-terminated string which is \fIstr\fP transcoded into to_codeset. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/punycode_encode.3���������������������������������������������������������������0000644�0000000�0000000�00000006622�14076273766�014374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "punycode_encode" 3 "1.38" "libidn" "libidn" .SH NAME punycode_encode \- API function .SH SYNOPSIS .B #include <punycode.h> .sp .BI "int punycode_encode(size_t " input_length ", const punycode_uint [] " input ", const unsigned char [] " case_flags ", size_t * " output_length ", char [] " output ");" .SH ARGUMENTS .IP "size_t input_length" 12 The number of code points in the \fIinput\fP array and the number of flags in the \fIcase_flags\fP array. .IP "const punycode_uint [] input" 12 An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF\-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. .IP "const unsigned char [] case_flags" 12 A \fBNULL\fP pointer or an array of boolean values parallel to the \fIinput\fP array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If \fIcase_flags\fP is a \fBNULL\fP pointer then ASCII letters are left as they are, and other code points are treated as unflagged. .IP "size_t * output_length" 12 The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. .IP "char [] output" 12 An array of ASCII code points. It is *not* null\-terminated; it will contain zeros if and only if the \fIinput\fP contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) .SH "DESCRIPTION" Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the \fBPunycode_status\fP values defined above except \fBPUNYCODE_BAD_INPUT\fP. If not \fBPUNYCODE_SUCCESS\fP, then \fIoutput_size\fP and \fIoutput\fP might contain garbage. .SH "DESCRIPTION" Converts a sequence of code points (presumed to be Unicode code points) to Punycode. Return value: The return value can be any of the \fBPunycode_status\fP values defined above except \fBPUNYCODE_BAD_INPUT\fP. If not \fBPUNYCODE_SUCCESS\fP, then \fIoutput_size\fP and \fIoutput\fP might contain garbage. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_check_4z.3������������������������������������������������������������������0000644�0000000�0000000�00000004162�14076273767�013564� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4z" 3 "1.38" "libidn" "libidn" .SH NAME tld_check_4z \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_check_4z(const uint32_t * " in ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Zero\-terminated array of unicode code points to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP , the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP . Return value: Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_unicode_44i.3�����������������������������������������������������������0000644�0000000�0000000�00000005406�14076273764�015031� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_44i" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_unicode_44i \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_unicode_44i(const uint32_t * " in ", size_t " inlen ", uint32_t * " out ", size_t * " outlen ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 input array with unicode code points. .IP "size_t inlen" 12 length of input array with unicode code points. .IP "uint32_t * out" 12 output array with unicode code points. .IP "size_t * outlen" 12 on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. Return value: Returns \fBIdna_rc\fP error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_unicode_8z8z.3����������������������������������������������������������0000644�0000000�0000000�00000003111�14076273764�015243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_8z8z" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_unicode_8z8z \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_unicode_8z8z(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated UTF\-8 string. .IP "char ** output" 12 pointer to newly allocated output UTF\-8 string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UTF\-8 format into a UTF\-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/punycode_strerror.3�������������������������������������������������������������0000644�0000000�0000000�00000003316�14076273770�015011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "punycode_strerror" 3 "1.38" "libidn" "libidn" .SH NAME punycode_strerror \- API function .SH SYNOPSIS .B #include <punycode.h> .sp .BI "const char * punycode_strerror(Punycode_status " rc ");" .SH ARGUMENTS .IP "Punycode_status rc" 12 an \fBPunycode_status\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "PUNYCODE_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "PUNYCODE_BAD_INPUT" Input is invalid. .SH "PUNYCODE_BIG_OUTPUT" Output would exceed the space provided. .SH "PUNYCODE_OVERFLOW" Input needs wider integers to process. Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_get_4z.3��������������������������������������������������������������������0000644�0000000�0000000�00000002565�14076273767�013273� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_4z" 3 "1.38" "libidn" "libidn" .SH NAME tld_get_4z \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_get_4z(const uint32_t * " in ", char ** " out ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Zero terminated array of unicode code points to process. .IP "char ** out" 12 Zero terminated ascii result string pointer. .SH "DESCRIPTION" Isolate the top\-level domain of \fIin\fP and return it as an ASCII string in \fIout\fP . Return value: Return \fBTLD_SUCCESS\fP on success, or the corresponding \fBTld_rc\fP error code otherwise. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_unichar_to_utf8.3����������������������������������������������������0000644�0000000�0000000�00000002564�14076273765�016607� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_unichar_to_utf8" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_unichar_to_utf8 \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "int stringprep_unichar_to_utf8(uint32_t " c ", char * " outbuf ");" .SH ARGUMENTS .IP "uint32_t c" 12 a ISO10646 character code .IP "char * outbuf" 12 output buffer, must have at least 6 bytes of space. If \fBNULL\fP, the length will be computed and returned and nothing will be written to \fIoutbuf\fP . .SH "DESCRIPTION" Converts a single character to UTF\-8. Return value: number of bytes written. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_unicode_8z4z.3����������������������������������������������������������0000644�0000000�0000000�00000003122�14076273764�015241� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_8z4z" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_unicode_8z4z \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_unicode_8z4z(const char * " input ", uint32_t ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated UTF\-8 string. .IP "uint32_t ** output" 12 pointer to newly allocated output Unicode string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UTF\-8 format into a UCS\-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/pr29_8z.3�����������������������������������������������������������������������0000644�0000000�0000000�00000003022�14076273766�012435� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_8z" 3 "1.38" "libidn" "libidn" .SH NAME pr29_8z \- API function .SH SYNOPSIS .B #include <pr29.h> .sp .BI "int pr29_8z(const char * " in ");" .SH ARGUMENTS .IP "const char * in" 12 zero terminated input UTF\-8 string. .SH "DESCRIPTION" Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the \fBPr29_rc\fP value \fBPR29_SUCCESS\fP on success, and \fBPR29_PROBLEM\fP if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or \fBPR29_STRINGPREP_ERROR\fP if there was a problem converting the string from UTF\-8 to UCS\-4. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_4i.3�����������������������������������������������������������������0000644�0000000�0000000�00000007066�14076273766�014025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_4i" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_4i \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "int stringprep_4i(uint32_t * " ucs4 ", size_t * " len ", size_t " maxucs4len ", Stringprep_profile_flags " flags ", const Stringprep_profile * " profile ");" .SH ARGUMENTS .IP "uint32_t * ucs4" 12 input/output array with string to prepare. .IP "size_t * len" 12 on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. .IP "size_t maxucs4len" 12 maximum length of input/output array. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .IP "const Stringprep_profile * profile" 12 pointer to \fBStringprep_profile\fP to use. .SH "DESCRIPTION" Prepare the input UCS\-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated ( \fIucs4\fP [ \fIlen\fP ] = 0). The output will not be zero terminated unless \fIucs4\fP [ \fIlen\fP ] = 0. Instead, see \fBstringprep_4zi()\fP if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, \fImaxucs4len\fP indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns \fBSTRINGPREP_OK\fP iff successful, or an \fBStringprep_rc\fP error code. .SH "DESCRIPTION" Prepare the input UCS\-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated ( \fIucs4\fP [ \fIlen\fP ] = 0). The output will not be zero terminated unless \fIucs4\fP [ \fIlen\fP ] = 0. Instead, see \fBstringprep_4zi()\fP if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, \fImaxucs4len\fP indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. Return value: Returns \fBSTRINGPREP_OK\fP iff successful, or an \fBStringprep_rc\fP error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_default_table.3�������������������������������������������������������������0000644�0000000�0000000�00000003153�14076273766�014663� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_default_table" 3 "1.38" "libidn" "libidn" .SH NAME tld_default_table \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "const Tld_table * tld_default_table(const char * " tld ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const char * tld" 12 TLD name (e.g. "com") as zero terminated ASCII byte string. .IP "const Tld_table ** overrides" 12 Additional zero terminated array of \fBTld_table\fP info\-structures for TLDs, or \fBNULL\fP to only use library default tables. .SH "DESCRIPTION" Get the TLD table for a named TLD, using the internal defaults, possibly overridden by the (optional) supplied tables. Return value: Return structure corresponding to TLD \fItld_str\fP , first looking through \fIoverrides\fP then thru built\-in list, or \fBNULL\fP if no such structure found. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_to_ascii_4z.3��������������������������������������������������������������0000644�0000000�0000000�00000003040�14076273764�014420� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_4z" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_ascii_4z \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_ascii_4z(const uint32_t * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * input" 12 zero terminated input Unicode string. .IP "char ** output" 12 pointer to newly allocated output string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert UCS\-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_check_version.3������������������������������������������������������0000644�0000000�0000000�00000003107�14076273770�016316� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_check_version" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_check_version \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "const char * stringprep_check_version(const char * " req_version ");" .SH ARGUMENTS .IP "const char * req_version" 12 Required version number, or NULL. .SH "DESCRIPTION" Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See \fBSTRINGPREP_VERSION\fP for a suitable \fIreq_version\fP string. Return value: Version string of run\-time library, or NULL if the run\-time library does not meet the required version number. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/tld_check_lz.3������������������������������������������������������������������0000644�0000000�0000000�00000004344�14076273767�013656� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_lz" 3 "1.38" "libidn" "libidn" .SH NAME tld_check_lz \- API function .SH SYNOPSIS .B #include <tld.h> .sp .BI "int tld_check_lz(const char * " in ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const char * in" 12 Zero\-terminated string in the current locales encoding to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the characters in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP , the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP . Note that the error position refers to the decoded character offset rather than the byte position in the string. Return value: Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all characters are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/pr29_4.3������������������������������������������������������������������������0000644�0000000�0000000�00000003011�14076273765�012234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_4" 3 "1.38" "libidn" "libidn" .SH NAME pr29_4 \- API function .SH SYNOPSIS .B #include <pr29.h> .sp .BI "int pr29_4(const uint32_t * " in ", size_t " len ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 input array with unicode code points. .IP "size_t len" 12 length of input array with unicode code points. .SH "DESCRIPTION" Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. Return value: Returns the \fBPr29_rc\fP value \fBPR29_SUCCESS\fP on success, and \fBPR29_PROBLEM\fP if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/stringprep_profile.3������������������������������������������������������������0000644�0000000�0000000�00000004023�14076273766�015137� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_profile" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_profile \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "int stringprep_profile(const char * " in ", char ** " out ", const char * " profile ", Stringprep_profile_flags " flags ");" .SH ARGUMENTS .IP "const char * in" 12 input array with UTF\-8 string to prepare. .IP "char ** out" 12 output variable with pointer to newly allocate string. .IP "const char * profile" 12 name of stringprep profile to use. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .SH "DESCRIPTION" Prepare the input zero terminated UTF\-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF\-8 before using this function, see \fBstringprep_locale_to_utf8()\fP. The output \fIout\fP variable must be deallocated by the caller. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. Return value: Returns \fBSTRINGPREP_OK\fP iff successful, or an error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/man/idna_strerror.3�����������������������������������������������������������������0000644�0000000�0000000�00000004713�14076273770�014100� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_strerror" 3 "1.38" "libidn" "libidn" .SH NAME idna_strerror \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "const char * idna_strerror(Idna_rc " rc ");" .SH ARGUMENTS .IP "Idna_rc rc" 12 an \fBIdna_rc\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "IDNA_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "IDNA_STRINGPREP_ERROR" Error during string preparation. .SH "IDNA_PUNYCODE_ERROR" Error during punycode operation. .SH "IDNA_CONTAINS_NON_LDH" For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non\-LDH ASCII characters. .SH "IDNA_CONTAINS_MINUS" For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen\-minus (U+002D). .SH "IDNA_INVALID_LENGTH" The final output string is not within the (inclusive) range 1 to 63 characters. .SH "IDNA_NO_ACE_PREFIX" The string does not contain the ACE prefix (for ToUnicode). .SH "IDNA_ROUNDTRIP_VERIFY_ERROR" The ToASCII operation on output string does not equal the input. .SH "IDNA_CONTAINS_ACE_PREFIX" The input contains the ACE prefix (for ToASCII). .SH "IDNA_ICONV_ERROR" Character encoding conversion error. .SH "IDNA_MALLOC_ERROR" Could not allocate buffer (this is typically a fatal error). .SH "IDNA_DLOPEN_ERROR" Could not dlopen the libcidn DSO (only used internally in libc). Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������������������������������������������������libidn-1.38/doc/man/idn_free.3����������������������������������������������������������������������0000644�0000000�0000000�00000002740�14076273770�012774� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idn_free" 3 "1.38" "libidn" "libidn" .SH NAME idn_free \- API function .SH SYNOPSIS .B #include <idn.h> .sp .BI "void idn_free(void * " ptr ");" .SH ARGUMENTS .IP "void * ptr" 12 memory region to deallocate, or \fBNULL\fP. .SH "DESCRIPTION" Deallocates memory region by calling \fBfree()\fP. If \fIptr\fP is \fBNULL\fP no operation is performed. Normally applications de\-allocate strings allocated by libidn by calling \fBfree()\fP directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ��������������������������������libidn-1.38/doc/man/stringprep_utf8_nfkc_normalize.3������������������������������������������������0000644�0000000�0000000�00000003765�14076273765�017461� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_nfkc_normalize" 3 "1.38" "libidn" "libidn" .SH NAME stringprep_utf8_nfkc_normalize \- API function .SH SYNOPSIS .B #include <stringprep.h> .sp .BI "char * stringprep_utf8_nfkc_normalize(const char * " str ", ssize_t " len ");" .SH ARGUMENTS .IP "const char * str" 12 a UTF\-8 encoded string. .IP "ssize_t len" 12 length of \fIstr\fP , in bytes, or \-1 if \fIstr\fP is nul\-terminated. .SH "DESCRIPTION" Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above\-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. Return value: a newly allocated string, that is the NFKC normalized form of \fIstr\fP . .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP �����������libidn-1.38/doc/man/idna_to_unicode_lzlz.3����������������������������������������������������������0000644�0000000�0000000�00000003312�14076273765�015417� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_lzlz" 3 "1.38" "libidn" "libidn" .SH NAME idna_to_unicode_lzlz \- API function .SH SYNOPSIS .B #include <idna.h> .sp .BI "int idna_to_unicode_lzlz(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated string encoded in the current locale's character set. .IP "char ** output" 12 pointer to newly allocated output string encoded in the current locale's character set. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. Return value: Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to <help-libidn@gnu.org>. .br General guidelines for reporting bugs: http://www.gnu.org/gethelp/ .br GNU Libidn home page: http://www.gnu.org/software/libidn/ .SH COPYRIGHT Copyright \(co 2002-2021 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. As an alternative you may obtain the manual from: .IP .B http://www.gnu.org/software/libidn/manual/ .PP ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/libidn.texi�������������������������������������������������������������������������0000644�0000000�0000000�00000213773�14076271517�012525� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������\input texinfo @c -*- mode: texinfo; coding: us-ascii; -*- @c This file is part of GNU Libidn. @c See below for copyright and license. @setfilename libidn.info @documentencoding UTF-8 @include version.texi @settitle GNU Libidn @value{VERSION} @finalout @syncodeindex pg cp @copying This manual is last updated @value{UPDATED} for version @value{VERSION} of GNU Libidn. Copyright @copyright{} 2002--2021 Simon Josefsson. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation @end copying @dircategory Software libraries @direntry * libidn: (libidn). Internationalized string processing library. @end direntry @dircategory Localization @direntry * idn: (libidn)Invoking idn. Internationalized Domain Name (IDN) string conversion. @end direntry @dircategory Emacs @direntry * IDN Library: (libidn)Emacs API. Emacs API for IDN functions. @end direntry @titlepage @title GNU Libidn @subtitle Internationalized string processing for the GNU system @subtitle for version @value{VERSION}, @value{UPDATED} @author Simon Josefsson @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @ifnottex @node Top @top GNU Libidn @insertcopying @end ifnottex @menu * Introduction:: How to use this manual. * Preparation:: What you should do before using the library. * Utility Functions:: Unicode transformation utility functions. * Stringprep Functions:: Stringprep functions. * Punycode Functions:: Punycode functions. * IDNA Functions:: IDNA functions. * TLD Functions:: TLD functions. * PR29 Functions:: Detect strings non-idempotent under NFKC. * Examples:: Demonstrate how to use the library. * Invoking idn:: Command line interface to the library. * Emacs API:: Emacs Lisp API for Libidn. * Java API:: Notes on the Java port of Libidn. * C# API:: Notes on the C# port of Libidn. * Acknowledgements:: Whom to blame. * History:: Rough outline of development history. Appendices * PR29 discussion:: Implementation aspects of the PR29 flaw. * On Label Separators:: Discussions of a flaw in the IDNA spec. * Copying Information:: License texts. Indices * Function and Variable Index:: * Concept Index:: @end menu @node Introduction @chapter Introduction GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries. The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included. The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call. The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing. Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included. Also included is a command line tool, several self tests, code examples, and more. @menu * Getting Started:: * Features:: * Library Overview:: * Supported Platforms:: * Getting help:: * Commercial Support:: * Downloading and Installing:: * Bug Reports:: * Contributing:: @end menu @node Getting Started @section Getting Started This manual documents the library programming interface. All functions and data types provided by the library are explained. Included are also examples, and documentation for the command line tool @file{idn} that provide a quick interface to the library. The Emacs Lisp bindings for the library is also discussed. The reader is assumed to possess basic familiarity with internationalization concepts and network programming in C or C++. This manual can be used in several ways. If read from the beginning to the end, it gives a good introduction into the library and how it can be used in an application. Forward references are included where necessary. Later on, the manual can be used as a reference manual to get just the information needed about any particular interface of the library. Experienced programmers might want to start looking at the examples at the end of the manual (@pxref{Examples}), and then only read up those parts of the interface which are unclear. @node Features @section Features This library might have a couple of advantages over other libraries doing a similar job. @table @asis @item It's Free Software Anybody can use, modify, and redistribute it under the terms of a free software license. @item It's thread-safe No global state is kept in the library. All functions are re-entrant. @item It's portable The code is intended to be written in pure ANSI C89. It has been tested on many Unix like operating systems, and Windows. @item It's modularized The library is composed of several modules, and the only interaction between modules is through each modules' public API. If you only need one piece of functionality, it is possible to take the files you need and incorporate them into your own project. @item It's not bloated The design of the library is based on the smallest API necessary to implement the basic functionality. It has been carefully extended with a small number of high-level wrappers to make it comfortable to use the library. However, it does not implement additional functionality just for the sake of completeness. @item It's documented Sadly, not all software comes with documentation these days. This one does. @end table @node Library Overview @section Library Overview The following illustration show the components that make up Libidn, and how your application relates to the library. In the illustration, various components are shown as boxes. You see the generic StringPrep component, the various StringPrep profiles including Nameprep, the Punycode component, the IDNA component, and the TLD component. The arrows indicate aggregation, e.g., IDNA uses Punycode and Nameprep, and in turn Nameprep uses the generic StringPrep interface. The interfaces to all components are available for applications, no component within the library is hidden from the application. @image{libidn-components} @node Supported Platforms @section Supported Platforms Libidn has at some point in time been tested on the following platforms. Build reports for each platforms and Libidn version is available at @url{http://autobuild.josefsson.org/libidn/}. @enumerate @item Debian GNU/Linux 3.0 (Woody) @cindex Debian GCC 2.95.4 and GNU Make. This is the main development platform. @code{alphaev67-unknown-linux-gnu}, @code{alphaev6-unknown-linux-gnu}, @code{arm-unknown-linux-gnu}, @code{armv4l-unknown-linux-gnu}, @code{hppa-unknown-linux-gnu}, @code{hppa64-unknown-linux-gnu}, @code{i686-pc-linux-gnu}, @code{ia64-unknown-linux-gnu}, @code{m68k-unknown-linux-gnu}, @code{mips-unknown-linux-gnu}, @code{mipsel-unknown-linux-gnu}, @code{powerpc-unknown-linux-gnu}, @code{s390-ibm-linux-gnu}, @code{sparc-unknown-linux-gnu}, @code{sparc64-unknown-linux-gnu}. @item Debian GNU/Linux 2.1 @cindex Debian GCC 2.95.1 and GNU Make. @code{armv4l-unknown-linux-gnu}. @item Tru64 UNIX @cindex Tru64 Tru64 UNIX C compiler and Tru64 Make. @code{alphaev67-dec-osf5.1}, @code{alphaev68-dec-osf5.1}. @item SuSE Linux 7.1 @cindex SuSE GCC 2.96 and GNU Make. @code{alphaev6-unknown-linux-gnu}, @code{alphaev67-unknown-linux-gnu}. @item SuSE Linux 7.2a @cindex SuSE Linux GCC 3.0 and GNU Make. @code{ia64-unknown-linux-gnu}. @item SuSE Linux @cindex SuSE Linux GCC 3.2.2 and GNU Make. @code{x86_64-unknown-linux-gnu} (AMD64 Opteron ``Melody''). @item SuSE Enterprise Server 9 on IBM OpenPower 720 @cindex SuSE Linux @cindex OpenPower 720 GCC 3.3.3 and GNU Make. @code{powerpc64-unknown-linux-gnu}. @item RedHat Linux 7.2 @cindex RedHat GCC 2.96 and GNU Make. @code{alphaev6-unknown-linux-gnu}, @code{alphaev67-unknown-linux-gnu}, @code{ia64-unknown-linux-gnu}. @item RedHat Linux 8.0 @cindex RedHat GCC 3.2 and GNU Make. @code{i686-pc-linux-gnu}. @item RedHat Advanced Server 2.1 @cindex RedHat Advanced Server GCC 2.96 and GNU Make. @code{i686-pc-linux-gnu}. @item Slackware Linux 8.0.01 @cindex RedHat GCC 2.95.3 and GNU Make. @code{i686-pc-linux-gnu}. @item Mandrake Linux 9.0 @cindex Mandrake GCC 3.2 and GNU Make. @code{i686-pc-linux-gnu}. @item IRIX 6.5 @cindex IRIX MIPS C compiler, IRIX Make. @code{mips-sgi-irix6.5}. @item AIX 4.3.2 @cindex AIX IBM C for AIX compiler, AIX Make. @code{rs6000-ibm-aix4.3.2.0}. @item Microsoft Windows 2000 (Cygwin) @cindex Windows GCC 3.2, GNU make. @code{i686-pc-cygwin}. @item HP-UX 11 @cindex HP-UX HP-UX C compiler and HP Make. @code{ia64-hp-hpux11.22}, @code{hppa2.0w-hp-hpux11.11}. @item SUN Solaris 2.7 @cindex Solaris GCC 3.0.4 and GNU Make. @code{sparc-sun-solaris2.7}. @item SUN Solaris 2.8 @cindex Solaris Sun WorkShop Compiler C 6.0 and SUN Make. @code{sparc-sun-solaris2.8}. @item SUN Solaris 2.9 @cindex Solaris Sun Forte Developer 7 C compiler and GNU Make. @code{sparc-sun-solaris2.9}. @item NetBSD 1.6 @cindex NetBSD GCC 2.95.3 and GNU Make. @code{alpha-unknown-netbsd1.6}, @code{i386-unknown-netbsdelf1.6}. @item OpenBSD 3.1 and 3.2 @cindex OpenBSD GCC 2.95.3 and GNU Make. @code{alpha-unknown-openbsd3.1}, @code{i386-unknown-openbsd3.1}. @item FreeBSD 4.7 and 4.8 @cindex FreeBSD GCC 2.95.4 and GNU Make. @code{alpha-unknown-freebsd4.7}, @code{alpha-unknown-freebsd4.8}, @code{i386-unknown-freebsd4.7}, @code{i386-unknown-freebsd4.8}. @item MacOS X 10.2 Server Edition @cindex MacOS X GCC 3.1 and GNU Make. @code{powerpc-apple-darwin6.5}. @item MacOS X 10.4 ``Tiger'' with Xcode 2.0 @cindex MacOS X GCC 4.0 and GNU Make. @code{powerpc-apple-darwin8.0}. @item Cross compiled to uClinux/uClibc on Motorola Coldfire @cindex Motorola Coldfire @cindex uClinux @cindex uClibc GCC 3.4 and GNU Make @code{m68k-uclinux-elf}. @item Cross compiled to ARM using Glibc @cindex ARM GCC 2.95 and GNU Make @code{arm-linux}. @item Cross compiled to Mingw32. @cindex Windows @cindex Microsoft @cindex mingw32 GCC 3.4.4 and GNU Make @code{i586-mingw32msvc}. @item OS/2 @cindex OS/2 @cindex IBM GCC. @end enumerate If you use Libidn on, or port Libidn to, a new platform please report it to the author. @node Getting help @section Getting help A mailing list where users of Libidn may help each other exists, and you can reach it by sending e-mail to @email{help-libidn@@gnu.org}. Archives of the mailing list discussions, and an interface to manage subscriptions, is available through the World Wide Web at @url{http://lists.gnu.org/mailman/listinfo/help-libidn}. @node Commercial Support @section Commercial Support Commercial support is available for users of GNU Libidn. The kind of support that can be purchased may include: @itemize @item Implement new features. Such as country code specific profiling to support a restricted subset of Unicode. @item Port Libidn to new platforms. This could include porting Libidn to an embedded platforms that may need memory or size optimization. @item Integrating IDN support in your existing project. @item System design of components related to IDN. @end itemize If you are interested, please write to: @verbatim Simon Josefsson Datakonsult AB Hagagatan 24 113 47 Stockholm Sweden E-mail: simon@josefsson.org @end verbatim If your company provides support related to GNU Libidn and would like to be mentioned here, contact the author (@pxref{Bug Reports}). @node Downloading and Installing @section Downloading and Installing @cindex Installation @cindex Download The package can be downloaded from several places, including: @url{ftp://alpha.gnu.org/pub/gnu/libidn/} The latest version is stored in a file, e.g., @samp{libidn-@value{VERSION}.tar.gz} where the @samp{@value{VERSION}} value is the highest version number in the directory. The package is then extracted, configured and built like many other packages that use Autoconf. For detailed information on configuring and building it, refer to the @file{INSTALL} file that is part of the distribution archive. Here is an example terminal session that download, configure, build and install the package. You will need a few basic tools, such as @samp{sh}, @samp{make} and @samp{cc}. @example $ wget -q ftp://alpha.gnu.org/pub/gnu/libidn/libidn-@value{VERSION}.tar.gz $ tar xfz libidn-@value{VERSION}.tar.gz $ cd libidn-@value{VERSION}/ $ ./configure ... $ make ... $ make install ... @end example After that Libidn should be properly installed and ready for use. A few @code{configure} options may be relevant, summarized in the table. @table @code @item --enable-java Build the Java port into a *.JAR file. @xref{Java API}, for more information. @item --disable-tld Disable the TLD module. This would typically only be useful if you are building on a memory restricted platforms. @xref{TLD Functions}, for more information. @item --enable-csharp[=IMPL] Build the @code{C#} port into a @code{*.DLL} file. @xref{C# API}, for more information. Here, @code{IMPL} is @code{pnet} or @code{mono}, indicating whether the PNET @command{cscc} compiler or the Mono @command{mcs} compiler should be used, respectively. @item --disable-valgrind-tests Disable running the self-checks under Valgrind (@url{http://valgrind.org/}). Normally Valgrind does not cause problems and can detect some severe memory errors. If you are getting errors from Valgrind that are caused by the compiler or libc (possibly as a result of special optimization flags), you may use this option to disable the use of Valgrind. @end table For the complete list, refer to the output from @code{configure --help}. @menu * Installing under Windows:: Windows specific build instructions. @end menu @node Installing under Windows @subsection Installing under Windows There are two ways to build Libidn on Windows: via MinGW or via Visual Studio. With MinGW, you can build a Libidn DLL and use it from other applications. After installing MinGW (@url{http://mingw.org/}) follow the generic installation instructions (@pxref{Downloading and Installing}). The DLL is installed by default. For information on how to use the DLL in other applications, see: @url{http://www.mingw.org/mingwfaq.shtml#faq-msvcdll}. You can build Libidn as a native Visual Studio C++ project. This allows you to build the code for other platforms that VS supports, such as Windows Mobile. You need Visual Studio 2005 or later. First download and unpack the archive as described in the generic installation instructions (@pxref{Downloading and Installing}). Don't run @code{./configure}. Instead, start Visual Studio and open the project file @file{windows/libidn.sln} inside the Libidn directory. You should be able to build the project using Build Project. Output libraries will be written into the @code{windows/lib} (or @code{windows/lib/debug} for Debug versions) folder. When working with Windows you may want to look into the special memory handling functions that may be needed (@pxref{Memory handling under Windows}). @node Bug Reports @section Bug Reports @cindex Reporting Bugs If you think you have found a bug in Libidn, please investigate it and report it. @itemize @bullet @item Please make sure that the bug is really in Libidn, and preferably also check that it hasn't already been fixed in the latest version. @item You have to send us a test case that makes it possible for us to reproduce the bug. @item You also have to explain what is wrong; if you get a crash, or if the results printed are not good and in that case, in what way. Make sure that the bug report includes all information you would need to fix this kind of bug for someone else. @end itemize Please make an effort to produce a self-contained report, with something definite that can be tested or debugged. Vague queries or piecemeal messages are difficult to act on and don't help the development effort. If your bug report is good, we will do our best to help you to get a corrected version of the software; if the bug report is poor, we won't do anything about it (apart from asking you to send better bug reports). If you think something in this manual is unclear, or downright incorrect, or if the language needs to be improved, please also send a note. Send your bug report to: @center @samp{bug-libidn@@gnu.org} @node Contributing @section Contributing @cindex Contributing @cindex Hacking If you want to submit a patch for inclusion -- from solve a typo you discovered, up to adding support for a new feature -- you should submit it as a bug report (@pxref{Bug Reports}). There are some things that you can do to increase the chances for it to be included in the official package. Unless your patch is very small (say, under 10 lines) we require that you assign the copyright of your work to the Free Software Foundation. This is to protect the freedom of the project. If you have not already signed papers, we will send you the necessary information when you submit your contribution. For contributions that doesn't consist of actual programming code, the only guidelines are common sense. Use it. For code contributions, a number of style guides will help you: @itemize @bullet @item Coding Style. Follow the GNU Standards document (@pxref{top, GNU Coding Standards,, standards}). If you normally code using another coding standard, there is no problem, but you should use @samp{indent} to reformat the code (@pxref{top, GNU Indent,, indent}) before submitting your work. @item Use the unified diff format @samp{diff -u}. @item Return errors. No reason whatsoever should abort the execution of the library. Even memory allocation errors, e.g. when malloc return NULL, should work although result in an error code. @item Design with thread safety in mind. Don't use global variables and the like. @item Avoid using the C math library. It causes problems for embedded implementations, and in most situations it is very easy to avoid using it. @item Document your functions. Use comments before each function headers, that, if properly formatted, are extracted into GTK-DOC web pages. Don't forget to update the Texinfo manual as well. @item Supply a ChangeLog and NEWS entries, where appropriate. @end itemize @c ********************************************************** @c ******************* Preparation ************************ @c ********************************************************** @node Preparation @chapter Preparation To use `Libidn', you have to perform some changes to your sources and the build system. The necessary changes are small and explained in the following sections. At the end of this chapter, it is described how the library is initialized, and how the requirements of the library are verified. A faster way to find out how to adapt your application for use with `Libidn' may be to look at the examples at the end of this manual (@pxref{Examples}). @menu * Header:: * Initialization:: * Version Check:: * Building the source:: * Autoconf tests:: * Memory handling under Windows:: @end menu @node Header @section Header The library contains a few independent parts, and each part export the interfaces (data types and functions) in a header file. You must include the appropriate header files in all programs using the library, either directly or through some other header file, like this: @example #include <stringprep.h> @end example The header files and the functions they define are categorized as follows: @table @asis @item stringprep.h The low-level stringprep API entry point. For IDN applications, this is usually invoked via IDNA. Some applications, specifically non-IDN ones, may want to prepare strings directly though, and should include this header file. The name space of the stringprep part of Libidn is @code{stringprep*} for function names, @code{Stringprep*} for data types and @code{STRINGPREP_*} for other symbols. In addition, @code{_stringprep*} is reserved for internal use and should never be used by applications. @item punycode.h The entry point to Punycode encoding and decoding functions. Normally punycode is used via the idna.h interface, but some application may want to perform raw punycode operations. The name space of the punycode part of Libidn is @code{punycode_*} for function names, @code{Punycode*} for data types and @code{PUNYCODE_*} for other symbols. In addition, @code{_punycode*} is reserved for internal use and should never be used by applications. @item idna.h The entry point to the IDNA functions. This is the normal entry point for applications that need IDN functionality. The name space of the IDNA part of Libidn is @code{idna_*} for function names, @code{Idna*} for data types and @code{IDNA_*} for other symbols. In addition, @code{_idna*} is reserved for internal use and should never be used by applications. @item tld.h The entry point to the TLD functions. Normal applications are not expected to need this functionality, but it is present for applications that are used by TLDs to validate customer input. The name space of the TLD part of Libidn is @code{tld_*} for function names, @code{Tld_*} for data types and @code{TLD_*} for other symbols. In addition, @code{_tld*} is reserved for internal use and should never be used by applications. @item pr29.h The entry point to the PR29 functions. These functions are used to detect ``problem sequences'' (@pxref{PR29 Functions}), mostly for use in security critical applications. The name space of the PR29 part of Libidn is @code{pr29_*} for function names, @code{Pr29_*} for data types and @code{PR29_*} for other symbols. In addition, @code{_pr29*} is reserved for internal use and should never be used by applications. @item idn-free.h The entry point to the Windows memory de-allocation function (@pxref{Memory handling under Windows}). It contains only one function @code{idn_free}. @end table All header files defined and use the symbol @code{IDNAPI} to decorate the API functions. @node Initialization @section Initialization Libidn is stateless and does not need any initialization. @node Version Check @section Version Check It is often desirable to check that the version of `Libidn' used is indeed one which fits all requirements. Even with binary compatibility new features may have been introduced but due to problem with the dynamic linker an old version is actually used. So you may want to check that the version is okay right after program startup. @include texi/stringprep_check_version.texi The normal way to use the function is to put something similar to the following first in your @code{main}: @example if (!stringprep_check_version (STRINGPREP_VERSION)) @{ printf ("stringprep_check_version() failed:\n" "Header file incompatible with shared library.\n"); exit(EXIT_FAILURE); @} @end example @node Building the source @section Building the source @cindex Compiling your application If you want to compile a source file including e.g. the `idna.h' header file, you must make sure that the compiler can find it in the directory hierarchy. This is accomplished by adding the path to the directory in which the header file is located to the compilers include file search path (via the @option{-I} option). However, the path to the include file is determined at the time the source is configured. To solve this problem, `Libidn' uses the external package @command{pkg-config} that knows the path to the include file and other configuration options. The options that need to be added to the compiler invocation at compile time are output by the @option{--cflags} option to @command{pkg-config libidn}. The following example shows how it can be used at the command line: @example gcc -c foo.c `pkg-config libidn --cflags` @end example Adding the output of @samp{pkg-config libidn --cflags} to the compilers command line will ensure that the compiler can find e.g. the idna.h header file. A similar problem occurs when linking the program with the library. Again, the compiler has to find the library files. For this to work, the path to the library files has to be added to the library search path (via the @option{-L} option). For this, the option @option{--libs} to @command{pkg-config libidn} can be used. For convenience, this option also outputs all other options that are required to link the program with the `libidn' library. The example shows how to link @file{foo.o} with the `libidn' library to a program @command{foo}. @example gcc -o foo foo.o `pkg-config libidn --libs` @end example Of course you can also combine both examples to a single command by specifying both options to @command{pkg-config}: @example gcc -o foo foo.c `pkg-config libidn --cflags --libs` @end example @node Autoconf tests @section Autoconf tests @cindex Autoconf tests @cindex Configure tests If your project uses Autoconf (@pxref{top, GNU Autoconf,, autoconf}) to check for installed libraries, you might find the following snippet illustrative. It add a new @file{configure} parameter @code{--with-libidn}, and check for @file{idna.h} and @samp{-lidn} (possibly below the directory specified as the optional argument to @code{--with-libidn}), and define the CPP symbol @code{LIBIDN} if the library is found. The default behaviour is to search for the library and enable the functionality (that is, define the symbol) when the library is found, but if you wish to make the default behaviour of your package be that Libidn is not used (even if it is installed on the system), change @samp{libidn=yes} to @samp{libidn=no} on the third line. @example AC_ARG_WITH(libidn, AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no"; then if test "$libidn" != "yes"; then LDFLAGS="$@{LDFLAGS@} -L$libidn/lib" CPPFLAGS="$@{CPPFLAGS@} -I$libidn/include" fi AC_CHECK_HEADER(idna.h, AC_CHECK_LIB(idn, stringprep_check_version, [libidn=yes LIBS="$@{LIBS@} -lidn"], libidn=no), libidn=no) fi if test "$libidn" != "no" ; then AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.]) else AC_MSG_WARN([Libidn not found]) fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn) @end example If you require that your users have installed @code{pkg-config} (which I cannot recommend generally), the above can be done more easily as follows. @example AC_ARG_WITH(libidn, AS_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no" ; then PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no]) if test "$libidn" != "yes" ; then libidn=no AC_MSG_WARN([Libidn not found]) else libidn=yes AC_DEFINE(LIBIDN, 1, [Define to 1 if you want Libidn.]) fi fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn) @end example @node Memory handling under Windows @section Memory handling under Windows @cindex free @cindex Memory handling @cindex de-allocation @cindex heap memory Several functions in the library allocates memory. The memory is expected to be de-allocated using the @code{free} function. Under Windows, it is sometimes necessary to de-allocate memory in the same module that allocated a memory region. The reason is that different modules use separate heap memory regions. To solve this problem we provide a function to de-allocate memory inside the library. Note that we do not recommend using this interface generally if you do not care about Windows portability. @section Header file @code{idn-free.h} To use the function explained in this chapter, you need to include the file @file{idn-free.h} using: @example #include <idn-free.h> @end example @section Memory de-allocation function @include texi/idn_free.texi @c ********************************************************** @c ******************** Utility Functions ****************** @c ********************************************************** @node Utility Functions @chapter Utility Functions @cindex Utility Functions The rest of this library makes extensive use of Unicode characters. In order to interface this library with the outside world, your application may need to make various Unicode transformations. @section Header file @code{stringprep.h} To use the functions explained in this chapter, you need to include the file @file{stringprep.h} using: @example #include <stringprep.h> @end example @section Unicode Encoding Transformation @include texi/stringprep_unichar_to_utf8.texi @include texi/stringprep_utf8_to_unichar.texi @include texi/stringprep_ucs4_to_utf8.texi @include texi/stringprep_utf8_to_ucs4.texi @section Unicode Normalization @include texi/stringprep_ucs4_nfkc_normalize.texi @include texi/stringprep_utf8_nfkc_normalize.texi @section Character Set Conversion @include texi/stringprep_locale_charset.texi @include texi/stringprep_convert.texi @include texi/stringprep_locale_to_utf8.texi @include texi/stringprep_utf8_to_locale.texi @c ********************************************************** @c ****************** Stringprep Functions ***************** @c ********************************************************** @node Stringprep Functions @chapter Stringprep Functions @cindex Stringprep Functions Stringprep describes a framework for preparing Unicode text strings in order to increase the likelihood that string input and string comparison work in ways that make sense for typical users throughout the world. The stringprep protocol is useful for protocol identifier values, company and personal names, internationalized domain names, and other text strings. @section Header file @code{stringprep.h} To use the functions explained in this chapter, you need to include the file @file{stringprep.h} using: @example #include <stringprep.h> @end example @section Defining A Stringprep Profile Further types and structures are defined for applications that want to specify their own stringprep profile. As these are fairly obscure, and by necessity tied to the implementation, we do not document them here. Look into the @file{stringprep.h} header file, and the @file{profiles.c} source code for the details. @section Control Flags @deftypevr {Stringprep flags} {Stringprep_profile_flags} {STRINGPREP_NO_NFKC} Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. @end deftypevr @deftypevr {Stringprep flags} {Stringprep_profile_flags} {STRINGPREP_NO_BIDI} Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. @end deftypevr @deftypevr {Stringprep flags} {Stringprep_profile_flags} {STRINGPREP_NO_UNASSIGNED} Make the library return with an error if string contains unassigned characters according to profile. @end deftypevr @section Core Functions @include texi/stringprep_4i.texi @include texi/stringprep_4zi.texi @include texi/stringprep.texi @include texi/stringprep_profile.texi @section Error Handling @include texi/stringprep_strerror.texi @section Stringprep Profile Macros @deftypefun {int} stringprep_nameprep_no_unassigned (char * @var{in}, int @var{maxlen}) @var{in}: input/output array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use @code{stringprep_nameprep} for true AllowUnassigned. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_iscsi (char * @var{in}, int @var{maxlen}) @var{in}: input/output array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_plain (char * @var{in}, int @var{maxlen}) @var{in}: input/output array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_xmpp_nodeprep (char * @var{in}, int @var{maxlen}) @var{in}: input/output array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_xmpp_resourceprep (char * @var{in}, int @var{maxlen}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code. @end deftypefun @c ********************************************************** @c ******************* Punycode Functions ****************** @c ********************************************************** @node Punycode Functions @chapter Punycode Functions @cindex Punycode Functions Punycode is a simple and efficient transfer encoding syntax designed for use with Internationalized Domain Names in Applications. It uniquely and reversibly transforms a Unicode string into an ASCII string. ASCII characters in the Unicode string are represented literally, and non-ASCII characters are represented by ASCII characters that are allowed in host name labels (letters, digits, and hyphens). A general algorithm called Bootstring allows a string of basic code points to uniquely represent any string of code points drawn from a larger set. Punycode is an instance of Bootstring that uses particular parameter values, appropriate for IDNA. @section Header file @code{punycode.h} To use the functions explained in this chapter, you need to include the file @file{punycode.h} using: @example #include <punycode.h> @end example @section Unicode Code Point Data Type The punycode function uses a special type to denote Unicode code points. It is guaranteed to always be a 32 bit unsigned integer. @deftypevr {Punycode Unicode code point} uint32_t punycode_uint A unsigned integer that hold Unicode code points. @end deftypevr @section Core Functions Note that the current implementation will fail if the @code{input_length} exceed 4294967295 (the size of @code{punycode_uint}). This restriction may be removed in the future. Meanwhile applications are encouraged to not depend on this problem, and use @code{sizeof} to initialize @code{input_length} and @code{output_length}. The functions provided are the following two entry points: @include texi/punycode_encode.texi @include texi/punycode_decode.texi @section Error Handling @include texi/punycode_strerror.texi @c ********************************************************** @c ********************* IDNA Functions ********************* @c ********************************************************** @node IDNA Functions @chapter IDNA Functions @cindex IDNA Functions Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. The IDNA document defines internationalized domain names (IDNs) and a mechanism called IDNA for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. @section Header file @code{idna.h} To use the functions explained in this chapter, you need to include the file @file{idna.h} using: @example #include <idna.h> @end example @section Control Flags The IDNA @code{flags} parameter can take on the following values, or a bit-wise inclusive or of any subset of the parameters: @deftypevr {Return code} {Idna_flags} IDNA_ALLOW_UNASSIGNED Allow unassigned Unicode code points. @end deftypevr @deftypevr {Return code} {Idna_flags} IDNA_USE_STD3_ASCII_RULES Check output to make sure it is a STD3 conforming host name. @end deftypevr @section Prefix String @deftypevr {Macro} {#define} IDNA_ACE_PREFIX String with the official IDNA prefix, @code{xn--}. @end deftypevr @section Core Functions The idea behind the IDNA function names are as follows: the @code{idna_to_ascii_4i} and @code{idna_to_unicode_44i} functions are the core IDNA primitives. The @code{4} indicate that the function takes UCS-4 strings (i.e., Unicode code points encoded in a 32-bit unsigned integer type) of the specified length. The @code{i} indicate that the data is written ``inline'' into the buffer. This means the caller is responsible for allocating (and de-allocating) the string, and providing the library with the allocated length of the string. The output length is written in the output length variable. The remaining functions all contain the @code{z} indicator, which means the strings are zero terminated. All output strings are allocated by the library, and must be de-allocated by the caller. The @code{4} indicator again means that the string is UCS-4, the @code{8} means the strings are UTF-8 and the @code{l} indicator means the strings are encoded in the encoding used by the current locale. The functions provided are the following entry points: @include texi/idna_to_ascii_4i.texi @include texi/idna_to_unicode_44i.texi @section Simplified ToASCII Interface @include texi/idna_to_ascii_4z.texi @include texi/idna_to_ascii_8z.texi @include texi/idna_to_ascii_lz.texi @section Simplified ToUnicode Interface @include texi/idna_to_unicode_4z4z.texi @include texi/idna_to_unicode_8z4z.texi @include texi/idna_to_unicode_8z8z.texi @include texi/idna_to_unicode_8zlz.texi @include texi/idna_to_unicode_lzlz.texi @section Error Handling @include texi/idna_strerror.texi @c ********************************************************** @c ********************** TLD Functions ********************* @c ********************************************************** @node TLD Functions @chapter TLD Functions @cindex TLD Functions Organizations that manage some Top Level Domains (TLDs) have published tables with characters they accept within the domain. The reason may be to reduce complexity that come from using the full Unicode range, and to protect themselves from future (backwards incompatible) changes in the IDN or Unicode specifications. Libidn implement an infrastructure for defining and checking strings against such tables. Libidn also ship some tables from TLDs that we have managed to get permission to use them from. Because these tables are even less static than Unicode or StringPrep tables, it is likely that they will be updated from time to time (even in backwards incompatible ways). The Libidn interface provide a ``version'' field for each TLD table, which can be compared for equality to guarantee the same operation over time. From a design point of view, you can regard the TLD tables for IDN as the ``localization'' step that come after the ``internationalization'' step provided by the IETF standards. The TLD functionality rely on up-to-date tables. The latest version of Libidn aim to provide these, but tables with unclear copying conditions, or generally experimental tables, are not included. Some such tables can be found at @url{https://github.com/gnuthor/tldchk}. @section Header file @code{tld.h} To use the functions explained in this chapter, you need to include the file @file{tld.h} using: @example #include <tld.h> @end example @c @section Data Types @c @c @deftp {Data type} {Tld_table_element} @var{start} @var{end} @c @example @c /* Interval of valid code points in the TLD. */ @c struct Tld_table_element @c @{ @c uint32_t start; /* Start of range. */ @c uint32_t end; /* End of range, end == start if single. */ @c @}; @c typedef struct Tld_table_element Tld_table_element; @c @end example @c This @code{struct} contain the @var{start} and @var{end} positions @c (inclusive) of a range. If the range is a single (i.e., starts and @c ends in the same character), then set @var{end} to the same as @c @var{start}. This structure is normally used as an array. @c @end deftp @c @c @deftp {Data type} {Tld_table} @var{name} @var{version} @var{nvalid} @var{valid} @c @example @c /* List valid code points in a TLD. */ @c struct Tld_table @c @{ @c char *name; /* TLD name, e.g., "no". */ @c char *version; /* Version string from TLD file. */ @c size_t nvalid; /* Number of entries in data. */ @c Tld_table_element *valid[]; /* Sorted array of valid code points. */ @c @}; @c typedef struct Tld_table Tld_table; @c @end example @c In this @code{struct}, the @var{name} field is a string (@samp{char*}) @c indicating the TLD name (e.g., ``no''). The @var{version} field is a @c string (@samp{char*}) containing a free form humanly readable string @c that can be used for equality comparison to compare different versions @c of the table. The @var{nvalid} field indicate how many entries there @c are in @var{valid}, which brings us finally to @var{valid} that @c contain the actual code points that are valid for this TLD (see @c @code{Tld_table_element} above). @c @end deftp @section Core Functions @include texi/tld_check_4t.texi @include texi/tld_check_4tz.texi @section Utility Functions @include texi/tld_get_4.texi @include texi/tld_get_4z.texi @include texi/tld_get_z.texi @include texi/tld_get_table.texi @include texi/tld_default_table.texi @section High-Level Wrapper Functions @include texi/tld_check_4.texi @include texi/tld_check_4z.texi @include texi/tld_check_8z.texi @include texi/tld_check_lz.texi @section Error Handling @include texi/tld_strerror.texi @c ********************************************************** @c ********************** PR29 Functions ******************** @c ********************************************************** @node PR29 Functions @chapter PR29 Functions @cindex PR29 Functions A deficiency in the specification of Unicode Normalization Forms has been found. The consequence is that some strings can be normalized into different strings by different implementations. In other words, two different implementations may return different output for the same input (because the interpretation of the specification is ambiguous). Further, an implementation invoked again on the one of the output strings may return a different string (because one of the interpretation of the ambiguous specification make normalization non-idempotent). Fortunately, only a select few character sequence exhibit this problem, and none of them are expected to occur in natural languages (due to different linguistic uses of the involved characters). A full discussion of the problem may be found at: @url{http://www.unicode.org/review/pr-29.html} The PR29 functions below allow you to detect the problem sequence. So when would you want to use these functions? For most applications, such as those using Nameprep for IDN, this is likely only to be an interoperability problem. Thus, you may not want to care about it, as the character sequences will rarely occur naturally. However, if you are using a profile, such as SASLPrep, to process authentication tokens; authorization tokens; or passwords, there is a real danger that attackers may try to use the peculiarities in these strings to attack parts of your system. As only a small number of strings, and no naturally occurring strings, exhibit this problem, the conservative approach of rejecting the strings is recommended. If this approach is not used, you should instead verify that all parts of your system, that process the tokens and passwords, use a NFKC implementation that produce the same output for the same input. Technically inclined readers may be interested in knowing more about the implementation aspects of the PR29 flaw. @xref{PR29 discussion}. @section Header file @code{pr29.h} To use the functions explained in this chapter, you need to include the file @file{pr29.h} using: @example #include <pr29.h> @end example @section Core Functions @include texi/pr29_4.texi @section Utility Functions @include texi/pr29_4z.texi @include texi/pr29_8z.texi @section Error Handling @include texi/pr29_strerror.texi @c ********************************************************** @c *********************** Examples *********************** @c ********************************************************** @node Examples @chapter Examples @cindex Examples This chapter contains example code which illustrate how `Libidn' can be used when writing your own application. @menu * Example 1:: Example using stringprep. * Example 2:: Example using punycode. * Example 3:: Example using IDNA ToASCII. * Example 4:: Example using IDNA ToUnicode. * Example 5:: Example using TLD checking. @end menu @node Example 1 @section Example 1 This example demonstrates how the stringprep functions are used. @verbatiminclude example.txt @node Example 2 @section Example 2 This example demonstrates how the punycode functions are used. @verbatiminclude example2.txt @node Example 3 @section Example 3 This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. @verbatiminclude example3.txt @node Example 4 @section Example 4 This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. @verbatiminclude example4.txt @node Example 5 @section Example 5 This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. @verbatiminclude example5.txt @c ********************************************************** @c ********************* Invoking idn ********************* @c ********************************************************** @node Invoking idn @chapter Invoking idn @pindex idn @cindex invoking @command{idn} @cindex command line @section Name GNU Libidn (idn) -- Internationalized Domain Names command line tool @section Description @code{idn} allows internationalized string preparation (@samp{stringprep}), encoding and decoding of punycode data, and IDNA ToASCII/ToUnicode operations to be performed on the command line. If strings are specified on the command line, they are used as input and the computed output is printed to standard output @code{stdout}. If no strings are specified on the command line, the program read data, line by line, from the standard input @code{stdin}, and print the computed output to standard output. What processing is performed (e.g., ToASCII, or Punycode encode) is indicated by options. If any errors are encountered, the execution of the applications is aborted. All strings are expected to be encoded in the preferred charset used by your locale. Use @code{--debug} to find out what this charset is. You can override the charset used by setting environment variable @code{CHARSET}. To process a string that starts with @code{-}, for example @code{-foo}, use @code{--} to signal the end of parameters, as in @code{idn --quiet -a -- -foo}. @section Options @code{idn} recognizes these commands: @verbatiminclude idn-help.texi @section Environment Variables The @var{CHARSET} environment variable can be used to override what character set to be used for decoding incoming data (i.e., on the command line or on the standard input stream), and to encode data to the standard output. If your system is set up correctly, however, the application will guess which character set is used automatically. Example usage: @example $ CHARSET=ISO-8859-1 idn --punycode-encode ... @end example @section Examples Standard usage, reading input from standard input. The parameter @code{--quiet} disable printing copyright, license and usage instructions. @example jas@@latte:~$ idn --quiet r@"aksm@"org@aa{}s.se xn--rksmrgs-5wao1o.se jas@@latte:~$ @end example Reading input from command line: @example jas@@latte:~$ idn --quiet r@"aksm@"org@aa{}s.se bl@aa{}b@ae{}rgr@o{}d.no xn--rksmrgs-5wao1o.se xn--blbrgrd-fxak7p.no jas@@latte:~$ @end example Accessing a specific StringPrep profile directly: @example jas@@latte:~$ idn --quiet --profile=SASLprep --stringprep te@ss{}t@ordf{} te@ss{}ta jas@@latte:~$ @end example @section Troubleshooting Getting character data encoded right, and making sure Libidn use the same encoding, can be difficult. The reason for this is that most systems encode character data in more than one character encoding, i.e., using @code{UTF-8} together with @code{ISO-8859-1} or @code{ISO-2022-JP}. This problem is likely to continue to exist until only one character encoding come out as the evolutionary winner, or (more likely, at least to some extents) forever. The first step to troubleshooting character encoding problems with Libidn is to use the @samp{--debug} parameter to find out which character set encoding @samp{idn} believe your locale uses. @example jas@@latte:~$ idn --debug --quiet "" system locale uses charset `UTF-8'. jas@@latte:~$ @end example If it prints @code{ANSI_X3.4-1968} (i.e., @code{US-ASCII}), this indicate you have not configured your locale properly. To configure the locale, you can, for example, use @samp{LANG=sv_SE.UTF-8; export LANG} at a @code{/bin/sh} prompt, to set up your locale for a Swedish environment using @code{UTF-8} as the encoding. Sometimes @samp{idn} appear to be unable to translate from your system locale into @code{UTF-8} (which is used internally), and you get an error like the following: @example jas@@latte:~$ idn --quiet foo idn: could not convert from ISO-8859-1 to UTF-8. jas@@latte:~$ @end example The simplest explanation is that you haven't installed the @samp{iconv} conversion tools. You can find it as a standalone library in GNU Libiconv (@uref{http://www.gnu.org/software/libiconv/}). On many GNU/Linux systems, this library is part of the system, but you may have to install additional packages (e.g., @samp{glibc-locale} for Debian) to be able to use it. Another explanation is that the error is correct and you are feeding @samp{idn} invalid data. This can happen inadvertently if you are not careful with the character set encoding you use. For example, if your shell run in a @code{ISO-8859-1} environment, and you invoke @samp{idn} with the @samp{CHARSET} environment variable as follows, you will feed it @code{ISO-8859-1} characters but force it to believe they are @code{UTF-8}. Naturally this will lead to an error, unless the byte sequences happen to be valid @code{UTF-8}. Note that even if you don't get an error, the output may be incorrect in this situation, because @code{ISO-8859-1} and @code{UTF-8} does not in general encode the same characters as the same byte sequences. @example jas@@latte:~$ idn --quiet --debug "" system locale uses charset `ISO-8859-1'. jas@@latte:~$ CHARSET=UTF-8 idn --quiet --debug r@"aksm@"org@aa{}s system locale uses charset `UTF-8'. input[0] = U+0072 input[1] = U+4af3 input[2] = U+006d input[3] = U+1b29e5 input[4] = U+0073 output[0] = U+0078 output[1] = U+006e output[2] = U+002d output[3] = U+002d output[4] = U+0072 output[5] = U+006d output[6] = U+0073 output[7] = U+002d output[8] = U+0068 output[9] = U+0069 output[10] = U+0036 output[11] = U+0064 output[12] = U+0035 output[13] = U+0039 output[14] = U+0037 output[15] = U+0035 output[16] = U+0035 output[17] = U+0032 output[18] = U+0061 xn--rms-hi6d597552a jas@@latte:~$ @end example The sense moral here is to forget about @samp{CHARSET} (configure your locales properly instead) unless you know what you are doing, and if you want to use it, do it carefully, after verifying with @samp{--debug} that you get the desired results. @node Emacs API @chapter Emacs API Included in Libidn are @file{punycode.el} and @file{idna.el} that provides an Emacs Lisp API to (a limited set of) the Libidn API. This section describes the API. Currently the IDNA API always set the @code{UseSTD3ASCIIRules} flag and clear the @code{AllowUnassigned} flag, in the future there may be functionality to specify these flags via the API. @section Punycode Emacs API @defvar punycode-program Name of the GNU Libidn @file{idn} application. The default is @samp{idn}. This variable can be customized. @end defvar @defvar punycode-environment List of environment variable definitions prepended to @samp{process-environment}. The default is @samp{("CHARSET=UTF-8")}. This variable can be customized. @end defvar @defvar punycode-encode-parameters List of parameters passed to @var{punycode-program} to invoke punycode encoding mode. The default is @samp{("--quiet" "--punycode-encode")}. This variable can be customized. @end defvar @defvar punycode-decode-parameters Parameters passed to @var{punycode-program} to invoke punycode decoding mode. The default is @samp{("--quiet" "--punycode-decode")}. This variable can be customized. @end defvar @defun punycode-encode string Returns a Punycode encoding of the @var{string}, after converting the input into UTF-8. @end defun @defun punycode-decode string Returns a possibly multibyte string which is the decoding of the @var{string} which is a punycode encoded string. @end defun @section IDNA Emacs API @defvar idna-program Name of the GNU Libidn @file{idn} application. The default is @samp{idn}. This variable can be customized. @end defvar @defvar idna-environment List of environment variable definitions prepended to @samp{process-environment}. The default is @samp{("CHARSET=UTF-8")}. This variable can be customized. @end defvar @defvar idna-to-ascii-parameters List of parameters passed to @var{idna-program} to invoke IDNA ToASCII mode. The default is @samp{("--quiet" "--idna-to-ascii" "--usestd3asciirules")}. This variable can be customized. @end defvar @defvar idna-to-unicode-parameters Parameters passed @var{idna-program} to invoke IDNA ToUnicode mode. The default is @samp{("--quiet" "--idna-to-unicode" "--usestd3asciirules")}. This variable can be customized. @end defvar @defun idna-to-ascii string Returns an ASCII Compatible Encoding (ACE) of the string computed by the IDNA ToASCII operation on the input @var{string}, after converting the input to UTF-8. @end defun @defun idna-to-unicode string Returns a possibly multibyte string which is the output of the IDNA ToUnicode operation computed on the input @var{string}. @end defun @node Java API @chapter Java API Libidn has been ported to the Java programming language, and as a consequence most of the API is available to native Java applications. This section contain notes on this support, complete documentation is pending. The Java library, if Libidn has been built with Java support (@pxref{Downloading and Installing}), will be placed in @file{java/libidn-@value{VERSION}.jar}. The source code is below @file{java/} in Maven directory layout, and there is a Maven @file{pom.xml} build script as well. Source code files are in @file{java/src/main/java/gnu/inet/encoding/}. @section Overview This package provides a Java implementation of the Internationalized Domain Names in Applications (IDNA) standard. It is written entirely in Java and does not require any additional libraries to be set up. The gnu.inet.encoding.IDNA class offers two public functions, toASCII and toUnicode which can be used as follows: @example gnu.inet.encoding.IDNA.toASCII("bl@"ods.z@"ug"); gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka"); @end example @section Miscellaneous Programs The @file{java/src/util/java/} directory contains several programs that are related to the Java part of GNU Libidn, but that don't need to be included in the main source tree or the JAR file. @subsection GenerateRFC3454 This program parses RFC3454 and creates the RFC3454.java program that is required during the StringPrep phase. The RFC can be found at various locations, for example at @url{http://www.ietf.org/rfc/rfc3454.txt}. Invoke the program as follows: @example $ java GenerateRFC3454 Creating RFC3454.java... Ok. @end example @subsection GenerateNFKC The GenerateNFKC program parses the Unicode character database file and generates all the tables required for NFKC. This program requires the two files UnicodeData.txt and CompositionExclusions.txt of version 3.2 of the Unicode files. Note that RFC3454 (Stringprep) defines that Unicode version 3.2 is to be used, not the latest version. The Unicode data files can be found at @url{http://www.unicode.org/Public/}. Invoke the program as follows: @example $ java GenerateNFKC Creating CombiningClass.java... Ok. Creating DecompositionKeys.java... Ok. Creating DecompositionMappings.java... Ok. Creating Composition.java... Ok. @end example @subsection TestIDNA The TestIDNA program allows to test the IDNA implementation manually or against Simon Josefsson's test vectors. The test vectors can be found at the Libidn homepage, @url{http://www.gnu.org/software/libidn/}. To test the transformation manually, use: @example $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a <string to test> Input: <string to test> Output: <toASCII(string to test)> $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u <string to test> Input: <string to test> Output: <toUnicode(string to test)> @end example To test against draft-josefsson-idn-test-vectors.html, use: @example $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t No errors detected! @end example @subsection TestNFKC The TestNFKC program allows to test the NFKC implementation manually or against the NormalizationTest.txt file from the Unicode data files. To test the normalization manually, use: @example $ java -cp .:/usr/share/java/libidn.jar TestNFKC <string to test> Input: <string to test> Output: <nfkc version of the string to test> @end example To test against NormalizationTest.txt: @example $ java -cp .:/usr/share/java/libidn.jar TestNFKC No errors detected! @end example @section Possible Problems Beware of Bugs: This Java API needs a lot more testing, especially with "exotic" character sets. While it works for me, it may not work for you. Encoding of your Java sources: If you are using non-ASCII characters in your Java source code, make sure javac compiles your programs with the correct encoding. If necessary specify the encoding using the -encoding parameter. Java Unicode handling: Java 1.4 only handles 16-bit Unicode code points (i.e. characters in the Basic Multilingual Plane), this implementation therefore ignores all references to so-called Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5, these characters will also be supported by Java, but this will require changes to this library. See also the next section. @section A Note on Java and Unicode This library uses Java's built-in 'char' datatype. Up to Java 1.4, this datatype only supports 16-bit Unicode code points, also called the Basic Multilingual Plane. For this reason, this library doesn't work for Supplementary Characters (i.e. characters from U+10000 to U+10FFFF). All references to such characters are silently ignored. Starting from Java 1.5, also Supplementary Characters will be supported. However, this will require changes in the present version of the library. Java 1.5 is currently in beta status. For more information refer to the documentation of java.lang.Character in the JDK API. @node C# API @chapter C# API The Libidn library has been ported to the C# language. The port reside in the top-level @file{csharp/} directory. Currently, no further documentation about the implementation or the API is available. However, the C# port was based on the Java port, and the API is exactly the same as in the Java version. The help files for the Java API may thus be useful. @c ********************************************************** @c ******************* Acknowledgements ******************* @c ********************************************************** @node Acknowledgements @chapter Acknowledgements The punycode implementation was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Some functions for dealing with Unicode (see nfkc.c and toutf8.c) were borrowed from GLib, downloaded from @url{http://www.gtk.org/}. The manual borrowed text from Libgcrypt by Werner Koch. Inspiration for many things that, consciously or not, have gone into this package is due to a number of free software package that the author has been exposed to. The author wishes to acknowledge the free software community in general, for giving an example on what role software development can play in the modern society. Several people reported bugs, sent patches or suggested improvements, see the file THANKS in the top-level directory of the source code. @c ********************************************************** @c ************************ History *********************** @c ********************************************************** @node History @chapter History The complete history of user visible changes is stored in the file @file{NEWS} in the top-level directory of the source code tree. The complete history of modifications to each file is stored in the file @file{ChangeLog} in the same directory. This section contain a condensed version of that information, in the form of ``milestones'' for the project. @table @asis @item Stringprep implementation. Version 0.0.0 released on 2002-11-05. @item IDNA and Punycode implementations, part of the GNU project. Version 0.1.0 released on 2003-01-05. @item Uses official IDNA ACE prefix @code{xn--}. Version 0.1.7 released on 2003-02-12. @item Command line interface. Version 0.1.11 released on 2003-02-26. @item GNU Libc add-on proposed. Version 0.1.12 released on 2003-03-06. @item Interoperability testing during IDNConnect. Version 0.3.1 released on 2003-10-02. @item TLD restriction testing. Version 0.4.0 released on 2004-02-28. @item GNU Libc add-on integrated. Version 0.4.1 released on 2004-03-08. @item Native Java implementation. Version 0.4.2-0.4.9 released between 2004-03-20 and 2004-06-11. @item PR-29 functions for ``problem sequences''. Version 0.5.0 released on 2004-06-26. @item Many small portability fixes and wider use. Version 0.5.1 through 0.5.20, released between 2004-07-09 and 2005-10-23. @item Native C# implementation. Version 0.6.0 released on 2005-12-03. @item Windows support through cross-compilation. Version 0.6.1 released on 2006-01-20. @item Library declared stable by releasing v1.0. Version 1.0 released on 2007-07-31. @end table @node PR29 discussion @appendix PR29 discussion If you wish to experiment with a modified Unicode NFKC implementation according to the PR29 proposal, you may find the following bug report useful. However, I have not verified that the suggested modifications are correct. For reference, I'm including my response to the report as well. @verbatim From: Rick McGowan <rick@unicode.org> Subject: Possible bug and status of PR 29 change(s) To: bug-libidn@gnu.org Date: Wed, 27 Oct 2004 14:49:17 -0700 Hello. On behalf of the Unicode Consortium editorial committee, I would like to find out more information about the PR 29 fixes, if any, and functions in Libidn. Your implementation was listed in the text of PR29 as needing investigation, so I am following up on several implementations. The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new draft of UAX #15 has been issued. I have looked at Libidn 0.5.8 (today), and there may still be a possible bug in NFKC.java and nfkc.c. ------------------------------------------------------ 1. In NFKC.java, this line in canonicalOrdering(): if (i > 0 && (last_cc == 0 || last_cc != cc)) { should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc)) { but I'm not sure of the sense of this comparison. ------------------------------------------------------ 2. In nfkc.c, function _g_utf8_normalize_wc() has this code: if (i > 0 && (last_cc == 0 || last_cc != cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { This appears to have the same bug as the current Python implementation (in Python 2.3.4). The code should be checking, as per new rule D2 UAX #15 update, that the next combining character is the same or HIGHER than the current one. It now checks to see if it's non-zero and not equal. The above line(s) should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { but I'm not sure of the sense of the comparison (< or > or <=?) here. In the text of PR29, I will be marking Libidn as "needs change" and adding the version number that I checked. If any further change is made, please let me know the release version, and I'll update again. Regards, Rick McGowan @end verbatim @verbatim From: Simon Josefsson <jas@extundo.com> Subject: Re: Possible bug and status of PR 29 change(s) To: Rick McGowan <rick@unicode.org> Cc: bug-libidn@gnu.org Date: Thu, 28 Oct 2004 09:47:47 +0200 Rick McGowan <rick@unicode.org> writes: > Hello. On behalf of the Unicode Consortium editorial committee, I would > like to find out more information about the PR 29 fixes, if any, and > functions in Libidn. Your implementation was listed in the text of PR29 as > needing investigation, so I am following up on several implementations. > > The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new > draft of UAX #15 has been issued. > > I have looked at Libidn 0.5.8 (today), and there may still be a possible > bug in NFKC.java and nfkc.c. Hello Rick. I believe the current behavior is intentional. Libidn do not aim to implement latest-and-greatest NFKC, it aim to implement the NFKC functionality required for StringPrep and IDN. As you may know, StringPrep/IDN reference Unicode 3.2.0, and explicitly says any later changes (which I consider PR29 as) do not apply. In fact, I believe that would I incorporate the changes suggested in PR29, I would in fact be violating the IDN specifications. Thanks for looking into the code and finding the place where the change could be made. I'll see if I can mention this in the manual somewhere, for technically interested readers. Regards, Simon @end verbatim @node On Label Separators @appendix On Label Separators Some strings contains characters whose NFKC normalized form contain the ASCII dot (0x2E, ``.''). Examples of these characters are U+2024 (ONE DOT LEADER) and U+248C (DIGIT FIVE FULL STOP). The strings have the interesting property that their IDNA ToASCII output will contain embedded dots. For example: @example ToASCII (hi U+248C com) = hi5.com ToASCII (r@"aksm@"org@aa{}s U+2024 com) = xn--rksmrgs.com-l8as9u @end example This demonstrate the two general cases: The first where the ASCII dot is part of an output that do not begin with the IDN prefix @code{xn--}. The second example illustrate when the dot is part of IDN prefixed with @code{xn--}. The input strings are, from the DNS point of view, a single label. The IDNA algorithm translate one label at a time. Thus, the output is expected to be only one label. What is important here is to make sure the DNS resolver receives the correct query. The DNS protocol does not use the dot to delimit labels on the wire, rather it uses length-value pairs. Thus the correct query would be for @code{@{7@}hi5.com} and @code{@{22@}xn--rksmrgs.com-l8as9u} respectively. Some implementations @footnote{Notably Microsoft's Internet Explorer and Mozilla's Firefox, but not Apple's Safari.} have decided that these inputs strings are potentially confusing for the user. The string @code{hi U+248C com} looks like @code{hi5.com} on systems that support Unicode properly. These implementations do not follow RFC 3490. They yield: @example ToASCII (hi U+248C com) = hi5.com ToASCII (r@"aksm@"org@aa{}s U+2024 com) = xn--rksmrgs-5wao1o.com @end example The DNS query they perform are @code{@{3@}hi5@{3@}com} and @code{@{18@}xn--rksmrgs-5wao1o@{3@}com} respectively. Arguably, this leads to a better user experience, and suggests that the IDNA specification is sub-optimal in this area. @section Recommended Workaround It has been suggested to normalize the entire input string using NFKC before passing it to IDNA ToASCII. You may use @code{stringprep_utf8_nfkc_normalize} or @code{stringprep_ucs4_nfkc_normalize}. This appears to lead to similar behaviour as IE/Firefox, which would avoid the problem, but this needs to be confirmed. Feel free to discuss the issue with us. Alternative workarounds are being considered. Eventually Libidn may implement a new flag to the @code{idna_*} functions that implements a recommended way to work around this problem. @node Copying Information @appendix Copying Information @menu * GNU Free Documentation License:: License for copying this manual. @end menu @node GNU Free Documentation License @appendixsec GNU Free Documentation License @cindex FDL, GNU Free Documentation License @include fdl-1.3.texi @node Function and Variable Index @unnumbered Function and Variable Index @printindex fn @node Concept Index @unnumbered Concept Index @printindex cp @bye @c LocalWords: Kerberos Shishi getaddrinfo Slackware Cygwin WorkShop �����libidn-1.38/doc/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000017645�14076271517�012425� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. SUBDIRS = specifications tld java cyclo if ENABLE_GTK_DOC SUBDIRS += . reference endif EXTRA_DIST = gdoc components.fig stamp-gdoc info_TEXINFOS = libidn.texi libidn_TEXINFOS = fdl-1.3.texi idn-help.texi libidn_TEXINFOS += texinfo.css example.txt example2.txt example3.txt example4.txt example5.txt libidn_TEXINFOS += $(gdoc_TEXINFOS) libidn_TEXINFOS += libidn-components.eps libidn-components.png \ libidn-components.pdf AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) \ --no-split --css-include=texinfo.css imagesdir = $(infodir) images_DATA = libidn-components.png libidn-components.eps: components.fig fig2dev -L eps $< $@ libidn-components.png: components.fig fig2dev -L png $< $@ libidn-components.pdf: components.fig fig2dev -L pdf $< $@ idn-help.texi: $(top_srcdir)/src/idn.c $(top_builddir)/src/idn$(EXEEXT) --help | $(GREP) '^ *-' > tmp mv tmp idn-help.texi example.txt: $(top_srcdir)/examples/example.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example2.txt: $(top_srcdir)/examples/example2.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example3.txt: $(top_srcdir)/examples/example3.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example4.txt: $(top_srcdir)/examples/example4.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ example5.txt: $(top_srcdir)/examples/example5.c sed -e '/* example/,/^$$/d' $< > $@.tmp && mv $@.tmp $@ BUILT_SOURCES = example.txt example2.txt example3.txt example4.txt example5.txt # Man pages. dist_man_MANS = idn.1 $(gdoc_MANS) MAINTAINERCLEANFILES = $(dist_man_MANS) idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo $(top_srcdir)/.version $(AM_V_GEN)$(HELP2MAN) \ --name="Internationalized Domain Names command line tool" \ --output=$@ $(top_builddir)/src/idn$(EXEEXT) # GDOC gdoc_TEXINFOS = gdoc_TEXINFOS += texi/idna_to_ascii_4i.texi gdoc_TEXINFOS += texi/idna_to_unicode_44i.texi gdoc_TEXINFOS += texi/idna_to_ascii_4z.texi gdoc_TEXINFOS += texi/idna_to_ascii_8z.texi gdoc_TEXINFOS += texi/idna_to_ascii_lz.texi gdoc_TEXINFOS += texi/idna_to_unicode_4z4z.texi gdoc_TEXINFOS += texi/idna_to_unicode_8z4z.texi gdoc_TEXINFOS += texi/idna_to_unicode_8z8z.texi gdoc_TEXINFOS += texi/idna_to_unicode_8zlz.texi gdoc_TEXINFOS += texi/idna_to_unicode_lzlz.texi gdoc_TEXINFOS += texi/stringprep_utf8_to_unichar.texi gdoc_TEXINFOS += texi/stringprep_unichar_to_utf8.texi gdoc_TEXINFOS += texi/stringprep_utf8_to_ucs4.texi gdoc_TEXINFOS += texi/stringprep_ucs4_to_utf8.texi gdoc_TEXINFOS += texi/stringprep_utf8_nfkc_normalize.texi gdoc_TEXINFOS += texi/stringprep_ucs4_nfkc_normalize.texi gdoc_TEXINFOS += texi/pr29_4.texi gdoc_TEXINFOS += texi/pr29_4z.texi gdoc_TEXINFOS += texi/pr29_8z.texi gdoc_TEXINFOS += texi/punycode_encode.texi gdoc_TEXINFOS += texi/punycode_decode.texi gdoc_TEXINFOS += texi/stringprep_4i.texi gdoc_TEXINFOS += texi/stringprep_4zi.texi gdoc_TEXINFOS += texi/stringprep.texi gdoc_TEXINFOS += texi/stringprep_profile.texi gdoc_TEXINFOS += texi/tld_get_table.texi gdoc_TEXINFOS += texi/tld_default_table.texi gdoc_TEXINFOS += texi/tld_get_4.texi gdoc_TEXINFOS += texi/tld_get_4z.texi gdoc_TEXINFOS += texi/tld_get_z.texi gdoc_TEXINFOS += texi/tld_check_4t.texi gdoc_TEXINFOS += texi/tld_check_4tz.texi gdoc_TEXINFOS += texi/tld_check_4.texi gdoc_TEXINFOS += texi/tld_check_4z.texi gdoc_TEXINFOS += texi/tld_check_8z.texi gdoc_TEXINFOS += texi/tld_check_lz.texi gdoc_TEXINFOS += texi/stringprep_locale_charset.texi gdoc_TEXINFOS += texi/stringprep_convert.texi gdoc_TEXINFOS += texi/stringprep_locale_to_utf8.texi gdoc_TEXINFOS += texi/stringprep_utf8_to_locale.texi gdoc_TEXINFOS += texi/stringprep_check_version.texi gdoc_TEXINFOS += texi/idn_free.texi gdoc_TEXINFOS += texi/idna_strerror.texi gdoc_TEXINFOS += texi/pr29_strerror.texi gdoc_TEXINFOS += texi/punycode_strerror.texi gdoc_TEXINFOS += texi/stringprep_strerror.texi gdoc_TEXINFOS += texi/tld_strerror.texi gdoc_MANS = gdoc_MANS += man/idna_to_ascii_4i.3 gdoc_MANS += man/idna_to_unicode_44i.3 gdoc_MANS += man/idna_to_ascii_4z.3 gdoc_MANS += man/idna_to_ascii_8z.3 gdoc_MANS += man/idna_to_ascii_lz.3 gdoc_MANS += man/idna_to_unicode_4z4z.3 gdoc_MANS += man/idna_to_unicode_8z4z.3 gdoc_MANS += man/idna_to_unicode_8z8z.3 gdoc_MANS += man/idna_to_unicode_8zlz.3 gdoc_MANS += man/idna_to_unicode_lzlz.3 gdoc_MANS += man/stringprep_utf8_to_unichar.3 gdoc_MANS += man/stringprep_unichar_to_utf8.3 gdoc_MANS += man/stringprep_utf8_to_ucs4.3 gdoc_MANS += man/stringprep_ucs4_to_utf8.3 gdoc_MANS += man/stringprep_utf8_nfkc_normalize.3 gdoc_MANS += man/stringprep_ucs4_nfkc_normalize.3 gdoc_MANS += man/pr29_4.3 gdoc_MANS += man/pr29_4z.3 gdoc_MANS += man/pr29_8z.3 gdoc_MANS += man/punycode_encode.3 gdoc_MANS += man/punycode_decode.3 gdoc_MANS += man/stringprep_4i.3 gdoc_MANS += man/stringprep_4zi.3 gdoc_MANS += man/stringprep.3 gdoc_MANS += man/stringprep_profile.3 gdoc_MANS += man/tld_get_table.3 gdoc_MANS += man/tld_default_table.3 gdoc_MANS += man/tld_get_4.3 gdoc_MANS += man/tld_get_4z.3 gdoc_MANS += man/tld_get_z.3 gdoc_MANS += man/tld_check_4t.3 gdoc_MANS += man/tld_check_4tz.3 gdoc_MANS += man/tld_check_4.3 gdoc_MANS += man/tld_check_4z.3 gdoc_MANS += man/tld_check_8z.3 gdoc_MANS += man/tld_check_lz.3 gdoc_MANS += man/stringprep_locale_charset.3 gdoc_MANS += man/stringprep_convert.3 gdoc_MANS += man/stringprep_locale_to_utf8.3 gdoc_MANS += man/stringprep_utf8_to_locale.3 gdoc_MANS += man/stringprep_check_version.3 gdoc_MANS += man/idn_free.3 gdoc_MANS += man/idna_strerror.3 gdoc_MANS += man/pr29_strerror.3 gdoc_MANS += man/punycode_strerror.3 gdoc_MANS += man/stringprep_strerror.3 gdoc_MANS += man/tld_strerror.3 BUILT_SOURCES += $(gdoc_MANS) $(gdoc_TEXINFOS) GDOC_SRC = $(top_srcdir)/lib/idna.c $(top_srcdir)/lib/nfkc.c \ $(top_srcdir)/lib/pr29.c $(top_srcdir)/lib/punycode.c \ $(top_srcdir)/lib/stringprep.c $(top_srcdir)/lib/tld.c \ $(top_srcdir)/lib/toutf8.c $(top_srcdir)/lib/version.c \ $(top_srcdir)/lib/idn-free.c \ $(top_srcdir)/lib/strerror-idna.c $(top_srcdir)/lib/strerror-pr29.c \ $(top_srcdir)/lib/strerror-punycode.c \ $(top_srcdir)/lib/strerror-stringprep.c \ $(top_srcdir)/lib/strerror-tld.c .PHONY: compare-makefile compare-makefile: $(AM_V_GEN) \ MANS=""; \ TEXINFOS=""; \ FUNCS=`$(srcdir)/gdoc -listfunc $(GDOC_SRC)`; \ for i in $$FUNCS; do \ MANS="$$MANS\ngdoc_MANS += man/$$i.3"; \ TEXINFOS="$$TEXINFOS\ngdoc_TEXINFOS += texi/$$i.texi"; \ done && \ grep -v -e '^gdoc_MANS += ' -e '^gdoc_TEXINFOS += ' $(srcdir)/Makefile.am | \ perl -p -e "s,^gdoc_MANS =,gdoc_MANS =$$MANS,;" | \ perl -p -e "s,^gdoc_TEXINFOS =,gdoc_TEXINFOS =$$TEXINFOS,;" \ > tmp-$@ && \ diff -u $(srcdir)/Makefile.am tmp-$@ && \ rm -f tmp-$@ $(gdoc_MANS) $(gdoc_TEXINFOS): stamp-gdoc clean-local: -rm -f stamp-gdoc stamp-gdoc: $(top_builddir)/.version $(GDOC_SRC) $(AM_V_at)$(MKDIR_P) man texi $(AM_V_GEN)for i in `$(srcdir)/gdoc -listfunc $(GDOC_SRC)`; do \ $(srcdir)/gdoc -man \ -bugsto $(PACKAGE_BUGREPORT) \ -module $(PACKAGE) \ -pkg-name "$(PACKAGE_NAME)" \ -sourceversion $(VERSION) \ -includefuncprefix \ -seeinfo $(PACKAGE) \ -verbatimcopying \ -copyright "2002-2021 Simon Josefsson" \ -function $$i \ $(GDOC_SRC) > man/$$i.3 && \ $(srcdir)/gdoc -texinfo -function $$i \ $(GDOC_SRC) > texi/$$i.texi; \ done $(AM_V_at)touch $@ �������������������������������������������������������������������������������������������libidn-1.38/doc/example.txt�������������������������������������������������������������������������0000644�0000000�0000000�00000003152�14076273633�012552� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /* setlocale() */ #include <stringprep.h> /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn` * $ ./example * Input string encoded as `ISO-8859-1': ª * Before locale2utf8 (length 2): aa 0a * Before stringprep (length 3): c2 aa 0a * After stringprep (length 2): 61 0a * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input string encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); printf ("Before stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep); if (rc != STRINGPREP_OK) printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc)); else { printf ("After stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); } return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/example3.txt������������������������������������������������������������������������0000644�0000000�0000000�00000002753�14076273633�012643� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /* setlocale() */ #include <stringprep.h> /* stringprep_locale_charset() */ #include <idna.h> /* idna_to_ascii_lz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn` * $ ./example3 * Input domain encoded as `ISO-8859-1': www.räksmörgÃ¥sª.example * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65 * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example' * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", (unsigned) buf[i] & 0xFF); printf ("\n"); rc = idna_to_ascii_lz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", (unsigned) p[i] & 0xFF); printf ("\n"); free (p); return 0; } ���������������������libidn-1.38/doc/libidn-components.png���������������������������������������������������������������0000644�0000000�0000000�00000002413�14076273643�014510� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��¨��„���Y&Î���PLTE���ÿÿÿ¥ÙŸÝ��ÀIDATxœíÛOh#U�ðìÅ´ìM” ^<ÉJY‰Ð£²’Z=d»m…U³–Q*]ÂzX– )èA¤­ŠN×Ýeº{hE¦ÍÞVˆÉT‚ Ò/K “¡“<g^þø2“7yóÚø}‡é¼ÉûÍ|ïe2f!fHx“*À{ÝÝp¨Œ™±„cT©e•;Q il…Z}EIêî5C [éýJáS‡M¦’03@j<¹' \+…ÊäS±~U›ExÓ¥ªV-Ü¢”Ò¯ô0.º”® Q[/¾WÜ|ß©ä‰Ní]f¶«ñ÷ÁÊf^–úU5ÿQ>“©ðKYí¾Séz|M¦ºêâóØ‘á÷–º—t«e4ƬwÙR+š+C½ß¡2t©jâàkí7Wo<ŒÿNõ†KÙE«–CY¡µÿ0Ue Z¢j¢ú㨔ÑPcJŽ­–è¢Ô»€ª²GØqü)]üw¼ ‡ìS’ÛÖnH;1Lì ÕÈ(P @õ©)<$Û?0UàV%!UãV)´2†+º7:êõ!Y%Ž“‘,F–=ªI EÎŽ9J¶ ¢**Ã"‡5MH-ѹ•ê8Ô«œª†Ë–2[&§º‘z¡Ú¢‚´õ#I[½=bþÙðI•ÏÎN"T¬Ý¶”.˲­Þø©ðsåfÒCme+í/ÅR²®ë¶:·_ø¤’òRåU;ÃReÛRzƒ¨ × OTÂÞjVCÈÜ1,¥Dq”¨†e˜_¶UñžÝ.Y¾OÚ•ú¢0ÿÜe¯ÞX\'ªØVíÞÀä£/y¨ÛDÝÉÎÍ!míâ©$Ÿ²÷ÜQbªST€J£*r<{5~EF¬±ÎÑÁ:ÈSL2‘ñ(VuDÃF=­{úÞ–ü (P Ÿ*¨ìÁ×”FYéþ•éúz•Gu¿½>D\Jw(KÑë_P @ZC)%ŸýPD}+¤–…Ôw3"juJD͈\kmæÉ¿ê(P ·ÒŠouèP9¡™^ŒwVI§vA (P @ ¨žÚÆÝ_÷]!Ûö/ K”ºâÜ J\ªìPí_÷•«­ *i·Ê PÎÞp+Í¥œëož‡œk}ž8 éÃ+¹¢ Ôèª!§b¨;»g.}–1êþTfëÌ¥ô‚Ñò§KeŒúØ»ßÄøÕé»–úܨŸ°èCmüj©«FýÏê ‰_e±Ô—–R7|¨õÍfúºQŸVoùPww§šs™ÆÓc{·½<ôÞpý›!—j©Ù¸çAVb3±YŠÀ¥È<êx•$¤bÁ©– Ò‚SM!eŽ‹(ÁwÙ#Fä>Síz¤J Py´‹SI*8n%ö{b·‚TJp*È9@ w”×µÌô‚ª&g#‘WÒiUÝM$.D"éôuUÝêìfTu¦ýz§jT(ÃCÁv‰Ì{ÅTS(C1í:ºú·+†+X—ˆ™a #ö7`,ÕÊœž~ê…‰“þ2lò«Ór<éO™…ü ޾ÆP¬ ›cùSö­*ùÕs>l<°zã­ ŸíÂMÏu´b¾ËbÊ;àSydí:ºÛˆ|‹¥‡ðËdʲï˜Ý<cÏnv©Ùýz·ªô‚Ëk¨ÔoÃ����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/doc/idn.1�������������������������������������������������������������������������������0000644�0000000�0000000�00000005214�14076273771�011216� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1. .TH IDN "1" "July 2021" "GNU Libidn 1.38" "User Commands" .SH NAME idn \- Internationalized Domain Names command line tool .SH SYNOPSIS .B idn [\fI\,OPTION\/\fR]... [\fI\,STRINGS\/\fR]... .SH DESCRIPTION Internationalized Domain Name (IDN) convert STRINGS, or standard input. .PP Command line interface to the internationalized domain name library. .PP All strings are expected to be encoded in the preferred charset used by your locale. Use \fB\-\-debug\fR to find out what this charset is. You can override the charset used by setting environment variable CHARSET. .PP To process a string that starts with '\-', for example '\-foo', use '\-\-' to signal the end of parameters, as in: idn \fB\-\-quiet\fR \fB\-a\fR \fB\-\-\fR \fB\-foo\fR .PP Mandatory arguments to long options are mandatory for short options too. .TP \fB\-h\fR, \fB\-\-help\fR Print help and exit .TP \fB\-V\fR, \fB\-\-version\fR Print version and exit .TP \fB\-s\fR, \fB\-\-stringprep\fR Prepare string according to nameprep profile .TP \fB\-d\fR, \fB\-\-punycode\-decode\fR Decode Punycode .TP \fB\-e\fR, \fB\-\-punycode\-encode\fR Encode Punycode .TP \fB\-a\fR, \fB\-\-idna\-to\-ascii\fR Convert to ACE according to IDNA (default mode) .TP \fB\-u\fR, \fB\-\-idna\-to\-unicode\fR Convert from ACE according to IDNA .TP \fB\-\-allow\-unassigned\fR Toggle IDNA AllowUnassigned flag (default off) .TP \fB\-\-usestd3asciirules\fR Toggle IDNA UseSTD3ASCIIRules flag (default off) .TP \fB\-\-no\-tld\fR Don't check string for TLD specific rules Only for \fB\-\-idna\-to\-ascii\fR and \fB\-\-idna\-to\-unicode\fR .TP \fB\-n\fR, \fB\-\-nfkc\fR Normalize string according to Unicode v3.2 NFKC .TP \fB\-p\fR, \fB\-\-profile\fR=\fI\,STRING\/\fR Use specified stringprep profile instead Valid stringprep profiles: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep .TP \fB\-\-debug\fR Print debugging information .TP \fB\-\-quiet\fR Silent operation .SH AUTHOR Written by Simon Josefsson. .SH "REPORTING BUGS" Report bugs to: help\-libidn@gnu.org .br GNU Libidn home page: <http://www.gnu.org/software/libidn/> .br General help using GNU software: <https://www.gnu.org/gethelp/> .SH COPYRIGHT Copyright \(co 2021 Simon Josefsson. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. .br This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. .SH "SEE ALSO" The full documentation for .B idn is maintained as a Texinfo manual. If the .B info and .B idn programs are properly installed at your site, the command .IP .B info idn .PP should give you access to the complete manual. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/configure.ac����������������������������������������������������������������������������0000644�0000000�0000000�00000016464�14076273017�012105� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Process this file with autoconf to produce a configure script. dnl Copyright (C) 2002-2021 Simon Josefsson dnl dnl This file is part of GNU Libidn. dnl dnl This program is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, either version 3 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program. If not, see <http://www.gnu.org/licenses/>. AC_INIT([GNU Libidn], m4_esyscmd([build-aux/git-version-gen .tarball-version]), [help-libidn@gnu.org]) # Library code modified: REVISION++ # Interfaces changed/added/removed: CURRENT++ REVISION=0 # Interfaces added: AGE++ # Interfaces removed: AGE=0 AC_SUBST(LT_CURRENT, 18) AC_SUBST(LT_REVISION, 3) AC_SUBST(LT_AGE, 6) DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}` AC_SUBST(DLL_VERSION) AC_MSG_NOTICE([$PACKAGE_NAME $PACKAGE_VERSION $PACKAGE_TARNAME $LT_CURRENT:$LT_REVISION:$LT_AGE $DLL_VERSION]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([lib/m4]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([-Wall]) AM_SILENT_RULES([yes]) AC_PROG_CC gl_EARLY lgl_EARLY # Checks for programs. AM_PROG_AR LT_INIT([win32-dll]) AM_MISSING_PROG(PERL, perl, $missing_dir) AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) AM_ICONV AM_PATH_LISPDIR AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.19.3]) if test "$am_cv_func_iconv" != "yes"; then AC_MSG_NOTICE([ *** Your system does not have iconv(). The iconv() function is not strictly required by the source code. However, that may change in the future, unless you report that this may be a problem for you. Please report this to $PACKAGE_BUGREPORT. ***]) fi # For gnulib stuff in gl/. gl_INIT lgl_INIT AC_DEFINE([GNULIB_NO_VLA], 1, [Disable VLA usage in gettext.h.]) # Make it possible to disable TLD code. AC_ARG_ENABLE(tld, AS_HELP_STRING([--disable-tld], [disable TLD code]), enable_tld=$enableval, enable_tld=yes) AM_CONDITIONAL(TLD, test "$enable_tld" != "no") if test "$enable_tld" != "no"; then AC_DEFINE([WITH_TLD], 1, [Define to 1 if you want TLD code.]) fi AC_MSG_CHECKING([if TLD API for specific TLD rules should be built]) AC_MSG_RESULT($enable_tld) # # check for gtk-doc # m4_ifdef([GTK_DOC_CHECK], [ GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) ],[ AM_CONDITIONAL([ENABLE_GTK_DOC], false) ]) # Check for java AC_ARG_ENABLE(java, AS_HELP_STRING([--enable-java], [enable Java API]),, enable_java=no) if test "$enable_java" != "no"; then AX_JAVA_OPTIONS AX_PROG_JAVAC AX_PROG_JAVADOC AX_PROG_JAR AM_MISSING_PROG(JAVADOC, javadoc, $missing_dir) fi AM_CONDITIONAL(JAVA, test "$enable_java" != "no") AC_MSG_CHECKING([if implementation in Java should be built]) AC_MSG_RESULT($enable_java) # Check for C# if test -n "$HAVE_CSHARPCOMP"; then gt_CSHARPEXEC fi AC_MSG_CHECKING([[if implementation in C# should be built]]) if test -n "$HAVE_CSHARPCOMP" && test -n "$HAVE_CSHARPEXEC"; then enable_csharp=yes else enable_csharp=no fi AC_MSG_RESULT($enable_csharp) AM_CONDITIONAL(CSHARP, test "$enable_csharp" = yes) ubsan=no AC_ARG_ENABLE([ubsan], [AS_HELP_STRING([--enable-ubsan], [Turn on Undefined Behavior Sanitizer (UBSan)])], [ if test "$enableval" = yes; then ubsan=yes CFLAGS=$CFLAGS" -fsanitize=undefined -fno-sanitize-recover=undefined" fi ]) asan=no AC_ARG_ENABLE([asan], [AS_HELP_STRING([--enable-asan], [Turn on Address Sanitizer (ASan)])], [ if test "$enableval" = yes; then asan=yes CFLAGS=$CFLAGS" -fsanitize=address -fno-omit-frame-pointer" fi ]) AC_ARG_ENABLE([gcc-warnings], [AS_HELP_STRING([--enable-gcc-warnings], [turn on lots of GCC warnings (for developers)])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; esac gl_gcc_warnings=$enableval], [gl_gcc_warnings=yes] ) if test "$gl_gcc_warnings" = yes; then gl_WARN_ADD([-Wframe-larger-than=160], [WSTACK_CFLAGS]) nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings nw="$nw -Wpadded" # Struct in src/idn_cmd.h is not padded nw="$nw -Wformat" # Self tests and examples print size_t as %d nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers nw="$nw -Woverlength-strings" # Some of our strings are too large nw="$nw -Wsign-conversion" # Too many warnings for now nw="$nw -Wconversion" # Too many warnings for now nw="$nw -Wtraditional" # Warns on #elif which we use often nw="$nw -Wtraditional-conversion" # Too many warnings for now nw="$nw -Wmissing-noreturn" # Too many warnings for now nw="$nw -Wunreachable-code" # Too many false positives nw="$nw -Wlogical-op" # Too many false positives nw="$nw -Wsuggest-attribute=pure" # Is it worth using attributes? nw="$nw -Wsuggest-attribute=const" # Is it worth using attributes? gl_MANYWARN_ALL_GCC([ws]) gl_MANYWARN_COMPLEMENT(ws, [$ws], [$nw]) for w in $ws; do gl_WARN_ADD([$w]) done gl_WARN_ADD([-Wno-missing-field-initializers]) # Rely on missing field = 0. fi AC_ARG_ENABLE(doc, AS_HELP_STRING([--disable-doc], [don't generate any documentation]), enable_doc=$enableval, enable_doc=yes) AM_CONDITIONAL(ENABLE_DOC, test "$enable_doc" != "no") AC_CONFIG_FILES([ Makefile contrib/doxygen/Doxyfile csharp/Makefile doc/Makefile doc/cyclo/Makefile doc/java/Makefile doc/reference/Makefile doc/reference/version.xml doc/specifications/Makefile doc/tld/Makefile examples/Makefile fuzz/Makefile gl/Makefile java/Makefile java/pom.xml java/src/Makefile java/src/main/Makefile java/src/main/java/Makefile java/src/main/java/gnu/Makefile java/src/main/java/gnu/inet/Makefile java/src/main/java/gnu/inet/encoding/Makefile java/src/test/Makefile java/src/test/java/Makefile java/src/util/Makefile java/src/util/java/Makefile lib/Makefile lib/gl/Makefile lib/libidn.pc po/Makefile.in src/Makefile tests/Makefile ]) AC_OUTPUT AC_MSG_NOTICE([Summary of build options: Version: ${VERSION} Libtool version $LT_CURRENT:$LT_REVISION:$LT_AGE DLL version: $DLL_VERSION Header version: major $MAJOR_VERSION minor $MINOR_VERSION patch $PATCH_VERSION number $NUMBER_VERSION Build/host system: ${build} / ${host} Install prefix: ${prefix} Compiler: ${CC} Warning flags: ${WARN_CFLAGS} CFLAGS: ${CFLAGS} ${CPPFLAGS} LDFlags: ${LDFLAGS} Documentation: ${enable_doc} Library types: Shared=${enable_shared}, Static=${enable_static} Libiconv: $am_cv_func_iconv $LTLIBICONV Valgrind: ${VALGRIND:-no} Version script: $have_ld_version_script nl_langinfo: $gl_cv_header_langinfo_codeset TLD code: $enable_tld Build Java port: $enable_java Build C# port: $enable_csharp Address Sanitizer: $asan UB Sanitizer: $ubsan ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gtk-doc.make����������������������������������������������������������������������������0000644�0000000�0000000�00000025072�14001611012�011754� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- mode: makefile -*- # # gtk-doc.make - make rules for gtk-doc # Copyright (C) 2003 James Henstridge # 2004-2007 Damon Chaplin # 2007-2017 Stefan Sauer # # 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 3 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, see <http://www.gnu.org/licenses/>. #################################### # Everything below here is generic # #################################### if GTK_DOC_USE_LIBTOOL GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = $(LIBTOOL) --mode=execute else GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = endif # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt EXTRA_DIST = \ $(HTML_IMAGES) \ $(SETUP_FILES) DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).actions \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test if GTK_DOC_BUILD_HTML HTML_BUILD_STAMP=html-build.stamp else HTML_BUILD_STAMP= endif if GTK_DOC_BUILD_PDF PDF_BUILD_STAMP=pdf-build.stamp else PDF_BUILD_STAMP= endif all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc if ENABLE_GTK_DOC all-local: all-gtk-doc endif docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp #### setup #### GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp #### scan #### GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### xml #### GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0=@echo " DOC Building XML"; sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true $(DOC_MAIN_SGML_FILE): sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo "<!ENTITY package \"$(PACKAGE)\">"; \ echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \ echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \ echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \ echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \ echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \ echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \ ) > $@ #### html #### GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ test -f $$file && cp $$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp #### pdf #### GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # if HAVE_GTK_DOC dist-check-gtkdoc: docs else dist-check-gtkdoc: @echo "*** gtk-doc is needed to run 'make dist'. ***" @echo "*** gtk-doc was not found when 'configure' ran. ***" @echo "*** please install gtk-doc and rerun 'configure'. ***" @false endif dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/.tarball-version������������������������������������������������������������������������0000644�0000000�0000000�00000000005�14076274122�012702� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������1.38 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/��������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274117�011360� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/libidn4win.mk�������������������������������������������������������������������0000644�0000000�0000000�00000004004�14076271517�013673� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2011-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. PACKAGE = libidn distdir = $(PACKAGE)-$(VERSION) TGZ = $(distdir).tar.gz URL = ftp://ftp.gnu.org/gnu/$(PACKAGE)/$(TGZ) all: @echo 'Usage examples:' @echo ' make -f libidn4win.mk libidn4win VERSION=1.21' @echo ' make -f libidn4win.mk libidn4win32 VERSION=1.21 CHECK=check' libidn4win: libidn4win32 libidn4win64 libidn4win32: $(MAKE) -f libidn4win.mk doit ARCH=32 HOST=i686-w64-mingw32 libidn4win64: $(MAKE) -f libidn4win.mk doit ARCH=64 HOST=x86_64-w64-mingw32 doit: rm -rf tmp$(ARCH) && mkdir tmp$(ARCH) && cd tmp$(ARCH) && \ cp ../../libiconv-1.15.tar.gz . || wget ftp://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz && \ tar xfa libiconv-1.15.tar.gz && \ cd libiconv-1.15 && \ ./configure --host=$(HOST) --prefix=$(PWD)/tmp$(ARCH)/root && \ make install && \ cd .. && \ cp ../../$(TGZ) . || wget $(URL) && \ tar xfa $(TGZ) && \ cd $(distdir) && \ ./configure --host=$(HOST) --prefix=$(PWD)/tmp$(ARCH)/root CPPFLAGS=-I$(PWD)/tmp$(ARCH)/root/include --disable-csharp && \ make install && \ make -C tests $(CHECK) && \ cd .. && \ cd root && \ zip -r ../../$(distdir)-win$(ARCH).zip * upload: ../build-aux/gnupload --to ftp.gnu.org:$(PACKAGE) $(distdir)-win32.zip $(distdir)-win64.zip cp $(distdir)-win32.zip $(distdir)-win32.zip.sig $(distdir)-win64.zip $(distdir)-win64.zip.sig ../../releases/$(PACKAGE)/ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/include/������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274117�013003� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/include/stdbool.h���������������������������������������������������������������0000644�0000000�0000000�00000002406�14076271517�014545� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2008-2021 Free Software Foundation, Inc. Written by Adam Strzelecki <ono@java.pl> This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _STDBOOL_H # define _STDBOOL_H # define _Bool signed char enum { false = 0, true = 1 }; # define bool _Bool # define false 0 # define true 1 # define __bool_true_false_are_defined 1 #endif /* _STDBOOL_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/include/ac-stdint.h�������������������������������������������������������������0000644�0000000�0000000�00000002727�14076271517�014773� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2008-2021 Free Software Foundation, Inc. Written by Adam Strzelecki <ono@java.pl> This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _AC_STDINT_H # define _AC_STDINT_H 1 # ifndef _GENERATED_STDINT_H # define _GENERATED_STDINT_H # define uint8_t unsigned char # define uint16_t unsigned short # define uint32_t unsigned int # define int8_t signed char # define int16_t signed short # define int32_t signed int # define gint16 int16_t # ifdef _WIN64 typedef __int64 ssize_t; # else typedef _W64 int ssize_t; # endif # endif #endif �����������������������������������������libidn-1.38/windows/include/unistd.h����������������������������������������������������������������0000644�0000000�0000000�00000000111�14075620644�014372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Dummy file to satisfy source file dependencies on Windows platform */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/include/idn-int.h���������������������������������������������������������������0000644�0000000�0000000�00000002105�14076271517�014435� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2008-2021 Free Software Foundation, Inc. Written by Adam Strzelecki <ono@java.pl> This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "ac-stdint.h" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/include/config.h����������������������������������������������������������������0000644�0000000�0000000�00000002644�14076271517�014350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* config.h --- System definitions for Windows Copyright (C) 2008-2021 Free Software Foundation, Inc. This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * 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. or both in parallel, as here. GNU Libidn 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 copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _CONFIG_H # define _CONFIG_H # define PACKAGE "libidn" # define strcasecmp stricmp # define strncasecmp strnicmp extern int strverscmp (const char *, const char *); # define LOCALEDIR "." # if _MSC_VER && !__cplusplus # define inline __inline # endif # define _GL_ATTRIBUTE_PURE /* empty */ # define _GL_ATTRIBUTE_CONST /* empty */ #endif /* _CONFIG_H */ ��������������������������������������������������������������������������������������������libidn-1.38/windows/libidn.sln����������������������������������������������������������������������0000644�0000000�0000000�00000001554�14053001337�013247� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libidn", "libidn.vcproj", "{0B883079-812A-405E-AC8F-59F47CE9A3FF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Debug|Win32.ActiveCfg = Debug|Win32 {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Debug|Win32.Build.0 = Debug|Win32 {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Release|Win32.ActiveCfg = Release|Win32 {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ����������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/windows/libidn.vcproj�������������������������������������������������������������������0000644�0000000�0000000�00000014170�14053001337�013754� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="windows-1250"?> <VisualStudioProject ProjectType="Visual C++" Version="8,00" Name="libidn" ProjectGUID="{0B883079-812A-405E-AC8F-59F47CE9A3FF}" RootNamespace="libidn" Keyword="Win32Proj" > <Platforms> <Platform Name="Win32" /> </Platforms> <ToolFiles> </ToolFiles> <Configurations> <Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" CharacterSet="2" > <Tool Name="VCPreBuildEventTool" Description="Generating tables & includes..." CommandLine="" /> <Tool Name="VCCustomBuildTool" /> <Tool Name="VCXMLDataGeneratorTool" /> <Tool Name="VCWebServiceProxyGeneratorTool" /> <Tool Name="VCMIDLTool" /> <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="include;../lib;../lib/gl" PreprocessorDefinitions="WIN32;_DEBUG;_USRDLL;IDNA_EXPORTS;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBIDN_BUILDING" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" DebugInformationFormat="4" /> <Tool Name="VCManagedResourceCompilerTool" /> <Tool Name="VCResourceCompilerTool" /> <Tool Name="VCPreLinkEventTool" /> <Tool Name="VCLinkerTool" OutputFile="lib/debug/$(ProjectName).dll" GenerateDebugInformation="true" ImportLibrary="lib/debug/$(TargetName).lib" /> <Tool Name="VCALinkTool" /> <Tool Name="VCManifestTool" /> <Tool Name="VCXDCMakeTool" /> <Tool Name="VCBscMakeTool" /> <Tool Name="VCFxCopTool" /> <Tool Name="VCAppVerifierTool" /> <Tool Name="VCWebDeploymentTool" /> <Tool Name="VCPostBuildEventTool" /> </Configuration> <Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(ConfigurationName)" IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" CharacterSet="2" WholeProgramOptimization="1" > <Tool Name="VCPreBuildEventTool" Description="Generating tables & includes..." CommandLine="" /> <Tool Name="VCCustomBuildTool" /> <Tool Name="VCXMLDataGeneratorTool" /> <Tool Name="VCWebServiceProxyGeneratorTool" /> <Tool Name="VCMIDLTool" /> <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="include;../lib;../lib/gl" PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL;IDNA_EXPORTS;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBIDN_BUILDING" RuntimeLibrary="2" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" /> <Tool Name="VCResourceCompilerTool" /> <Tool Name="VCPreLinkEventTool" /> <Tool Name="VCLinkerTool" OutputFile="lib/$(ProjectName).dll" ImportLibrary="lib/$(TargetName).lib" /> <Tool Name="VCALinkTool" /> <Tool Name="VCManifestTool" /> <Tool Name="VCXDCMakeTool" /> <Tool Name="VCBscMakeTool" /> <Tool Name="VCFxCopTool" /> <Tool Name="VCAppVerifierTool" /> <Tool Name="VCWebDeploymentTool" /> <Tool Name="VCPostBuildEventTool" /> </Configuration> </Configurations> <References> </References> <Files> <Filter Name="Source Files" Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" > <File RelativePath="..\lib\gl\c-ctype.c" > </File> <File RelativePath="..\lib\gl\c-strcasecmp.c" > </File> <File RelativePath="..\lib\gl\c-strncasecmp.c" > </File> <File RelativePath="..\lib\idn-free.c" > </File> <File RelativePath="..\lib\idna.c" > </File> <File RelativePath="..\lib\nfkc.c" > </File> <File RelativePath="..\lib\pr29.c" > </File> <File RelativePath="..\lib\profiles.c" > </File> <File RelativePath="..\lib\punycode.c" > </File> <File RelativePath="..\lib\rfc3454.c" > </File> <File RelativePath="..\lib\strerror-idna.c" > </File> <File RelativePath="..\lib\strerror-pr29.c" > </File> <File RelativePath="..\lib\strerror-punycode.c" > </File> <File RelativePath="..\lib\strerror-stringprep.c" > </File> <File RelativePath="..\lib\strerror-tld.c" > </File> <File RelativePath="..\lib\gl\striconv.c" > </File> <File RelativePath="..\lib\stringprep.c" > </File> <File RelativePath="..\lib\gl\strverscmp.c" > </File> <File RelativePath="..\lib\tld.c" > </File> <File RelativePath="..\lib\tlds.c" > </File> <File RelativePath="..\lib\toutf8.c" > </File> <File RelativePath="..\lib\version.c" > </File> </Filter> <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc;xsd" UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" > <File RelativePath=".\include\ac-stdint.h" > </File> <File RelativePath=".\include\config.h" > </File> <File RelativePath=".\include\idn-int.h" > </File> <File RelativePath=".\include\stdbool.h" > </File> <File RelativePath="..\lib\stringprep.h" > </File> <File RelativePath=".\include\unistd.h" > </File> </Filter> <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" > </Filter> </Files> <Globals> </Globals> </VisualStudioProject> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/aclocal.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000140111�14076273725�011450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# generated automatically by aclocal 1.16.3 -*- Autoconf -*- # Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.16.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE="gmake" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: <https://www.gnu.org/software/coreutils/>. If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_LISPDIR # --------------- AC_DEFUN([AM_PATH_LISPDIR], [AC_PREREQ([2.60])dnl # If set to t, that means we are running in a shell under Emacs. # If you have an Emacs named "t", then use the full path. test x"$EMACS" = xt && EMACS= AC_CHECK_PROGS([EMACS], [emacs xemacs], [no]) AC_ARG_VAR([EMACS], [the Emacs editor command]) AC_ARG_VAR([EMACSLOADPATH], [the Emacs library search path]) AC_ARG_WITH([lispdir], [AS_HELP_STRING([--with-lispdir], [override the default lisp directory])], [ lispdir="$withval" AC_MSG_CHECKING([where .elc files should go]) AC_MSG_RESULT([$lispdir])], [ AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [ if test $EMACS != "no"; then if test x${lispdir+set} != xset; then # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. AC_RUN_LOG([$EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out]) am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' ]) lispdir="$am_cv_lispdir" ]) AC_SUBST([lispdir]) ])# AM_PATH_LISPDIR # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar <conftest.tar]) AM_RUN_LOG([cat conftest.dir/file]) grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/ax_java_options.m4]) m4_include([m4/ax_prog_jar.m4]) m4_include([m4/ax_prog_javac.m4]) m4_include([m4/ax_prog_javac_works.m4]) m4_include([m4/ax_prog_javadoc.m4]) m4_include([m4/pkg.m4]) m4_include([lib/gl/m4/__inline.m4]) m4_include([lib/gl/m4/free.m4]) m4_include([lib/gl/m4/gnulib-comp.m4]) m4_include([lib/gl/m4/host-cpu-c-abi.m4]) m4_include([lib/gl/m4/iconv.m4]) m4_include([lib/gl/m4/iconv_h.m4]) m4_include([lib/gl/m4/iconv_open.m4]) m4_include([lib/gl/m4/inline.m4]) m4_include([lib/gl/m4/langinfo_h.m4]) m4_include([lib/gl/m4/lib-ld.m4]) m4_include([lib/gl/m4/lib-link.m4]) m4_include([lib/gl/m4/lib-prefix.m4]) m4_include([lib/gl/m4/libunistring-base.m4]) m4_include([lib/gl/m4/stdlib_h.m4]) m4_include([lib/gl/m4/strverscmp.m4]) m4_include([gl/m4/00gnulib.m4]) m4_include([gl/m4/absolute-header.m4]) m4_include([gl/m4/alloca.m4]) m4_include([gl/m4/autobuild.m4]) m4_include([gl/m4/close.m4]) m4_include([gl/m4/csharp.m4]) m4_include([gl/m4/csharpcomp.m4]) m4_include([gl/m4/csharpexec.m4]) m4_include([gl/m4/double-slash-root.m4]) m4_include([gl/m4/dup2.m4]) m4_include([gl/m4/eealloc.m4]) m4_include([gl/m4/errno_h.m4]) m4_include([gl/m4/error.m4]) m4_include([gl/m4/extensions.m4]) m4_include([gl/m4/extern-inline.m4]) m4_include([gl/m4/fcntl-o.m4]) m4_include([gl/m4/fcntl.m4]) m4_include([gl/m4/fcntl_h.m4]) m4_include([gl/m4/fstat.m4]) m4_include([gl/m4/getdelim.m4]) m4_include([gl/m4/getdtablesize.m4]) m4_include([gl/m4/getline.m4]) m4_include([gl/m4/getopt.m4]) m4_include([gl/m4/getprogname.m4]) m4_include([gl/m4/gnulib-common.m4]) m4_include([gl/m4/gnulib-comp.m4]) m4_include([gl/m4/include_next.m4]) m4_include([gl/m4/largefile.m4]) m4_include([gl/m4/ld-output-def.m4]) m4_include([gl/m4/ld-version-script.m4]) m4_include([gl/m4/limits-h.m4]) m4_include([gl/m4/malloca.m4]) m4_include([gl/m4/manywarnings.m4]) m4_include([gl/m4/mode_t.m4]) m4_include([gl/m4/msvc-inval.m4]) m4_include([gl/m4/msvc-nothrow.m4]) m4_include([gl/m4/multiarch.m4]) m4_include([gl/m4/nocrash.m4]) m4_include([gl/m4/off_t.m4]) m4_include([gl/m4/open-cloexec.m4]) m4_include([gl/m4/open-slash.m4]) m4_include([gl/m4/open.m4]) m4_include([gl/m4/pathmax.m4]) m4_include([gl/m4/pid_t.m4]) m4_include([gl/m4/ssize_t.m4]) m4_include([gl/m4/stat-time.m4]) m4_include([gl/m4/stat.m4]) m4_include([gl/m4/std-gnu11.m4]) m4_include([gl/m4/stdarg.m4]) m4_include([gl/m4/stdbool.m4]) m4_include([gl/m4/stddef_h.m4]) m4_include([gl/m4/stdint.m4]) m4_include([gl/m4/stdio_h.m4]) m4_include([gl/m4/strerror.m4]) m4_include([gl/m4/string_h.m4]) m4_include([gl/m4/sys_socket_h.m4]) m4_include([gl/m4/sys_stat_h.m4]) m4_include([gl/m4/sys_types_h.m4]) m4_include([gl/m4/time_h.m4]) m4_include([gl/m4/unistd_h.m4]) m4_include([gl/m4/valgrind-tests.m4]) m4_include([gl/m4/version-etc.m4]) m4_include([gl/m4/visibility.m4]) m4_include([gl/m4/warn-on-use.m4]) m4_include([gl/m4/warnings.m4]) m4_include([gl/m4/wchar_t.m4]) m4_include([gl/m4/wint_t.m4]) m4_include([gl/m4/year2038.m4]) m4_include([gl/m4/zzgnulib.m4]) m4_include([lib/m4/gettext.m4]) m4_include([lib/m4/gtk-doc.m4]) m4_include([lib/m4/intlmacosx.m4]) m4_include([lib/m4/libtool.m4]) m4_include([lib/m4/ltoptions.m4]) m4_include([lib/m4/ltsugar.m4]) m4_include([lib/m4/ltversion.m4]) m4_include([lib/m4/lt~obsolete.m4]) m4_include([lib/m4/nls.m4]) m4_include([lib/m4/po.m4]) m4_include([lib/m4/progtest.m4]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/�����������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274121�010657� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/libidn_toascii_fuzzer.c������������������������������������������������������������0000644�0000000�0000000�00000004213�14076271517�015332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Copyright(c) 2017 Tim Ruehsen * * 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include <assert.h> /* assert */ #include <stdint.h> /* uint8_t, uint32_t */ #include <stdlib.h> /* malloc, free */ #include <string.h> /* memcpy */ #include "idna.h" #include "idn-free.h" #include "fuzzer.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { char *domain; char *out; if (size > 1024) return 0; domain = (char *) malloc(size + 1); assert(domain != NULL); if ((size & 3) == 0) { uint32_t *data0 = (uint32_t *) malloc(size + 4); char *asc = (char *) malloc(64); assert(data0 != NULL); assert(asc != NULL); idna_to_ascii_4i((uint32_t *)data, size / 4, asc, 0); idna_to_ascii_4i((uint32_t *)data, size / 4, asc, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES); free(asc); memcpy(data0, data, size); data0[size / 4] = 0; if (idna_to_ascii_4z(data0, &out, 0) == IDNA_SUCCESS) idn_free(out); if (idna_to_ascii_4z(data0, &out, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out); free(data0); } /* 0 terminate */ memcpy(domain, data, size); domain[size] = 0; if (idna_to_ascii_8z(domain, &out, 0) == IDNA_SUCCESS) idn_free(out); if (idna_to_ascii_8z(domain, &out, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out); if (idna_to_ascii_lz(domain, &out, 0) == IDNA_SUCCESS) idn_free(out); if (idna_to_ascii_lz(domain, &out, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out); free(domain); return 0; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/Makefile.in������������������������������������������������������������������������0000644�0000000�0000000�00000225367�14076273732�012672� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (c) 2017-2020 Tim Ruehsen # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fuzz ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am_libidn_stringprep_fuzzer_OBJECTS = \ libidn_stringprep_fuzzer.$(OBJEXT) main.$(OBJEXT) libidn_stringprep_fuzzer_OBJECTS = \ $(am_libidn_stringprep_fuzzer_OBJECTS) libidn_stringprep_fuzzer_LDADD = $(LDADD) libidn_stringprep_fuzzer_DEPENDENCIES = ../lib/libidn.la \ ../gl/libgnu.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = am_libidn_toascii_fuzzer_OBJECTS = libidn_toascii_fuzzer.$(OBJEXT) \ main.$(OBJEXT) libidn_toascii_fuzzer_OBJECTS = $(am_libidn_toascii_fuzzer_OBJECTS) libidn_toascii_fuzzer_LDADD = $(LDADD) libidn_toascii_fuzzer_DEPENDENCIES = ../lib/libidn.la ../gl/libgnu.la am_libidn_tounicode_fuzzer_OBJECTS = \ libidn_tounicode_fuzzer.$(OBJEXT) main.$(OBJEXT) libidn_tounicode_fuzzer_OBJECTS = \ $(am_libidn_tounicode_fuzzer_OBJECTS) libidn_tounicode_fuzzer_LDADD = $(LDADD) libidn_tounicode_fuzzer_DEPENDENCIES = ../lib/libidn.la \ ../gl/libgnu.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/libidn_stringprep_fuzzer.Po \ ./$(DEPDIR)/libidn_toascii_fuzzer.Po \ ./$(DEPDIR)/libidn_tounicode_fuzzer.Po ./$(DEPDIR)/main.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libidn_stringprep_fuzzer_SOURCES) \ $(libidn_toascii_fuzzer_SOURCES) \ $(libidn_tounicode_fuzzer_SOURCES) DIST_SOURCES = $(libidn_stringprep_fuzzer_SOURCES) \ $(libidn_toascii_fuzzer_SOURCES) \ $(libidn_tounicode_fuzzer_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp \ $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN AM_LDFLAGS = -no-install LDADD = ../lib/libidn.la ../gl/libgnu.la IDN_TESTS = \ libidn_toascii_fuzzer$(EXEEXT) \ libidn_tounicode_fuzzer$(EXEEXT) \ libidn_stringprep_fuzzer$(EXEEXT) check_PROGRAMS = $(IDN_TESTS) libidn_toascii_fuzzer_SOURCES = libidn_toascii_fuzzer.c main.c fuzzer.h libidn_tounicode_fuzzer_SOURCES = libidn_tounicode_fuzzer.c main.c fuzzer.h libidn_stringprep_fuzzer_SOURCES = libidn_stringprep_fuzzer.c main.c fuzzer.h TESTS = $(IDN_TESTS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fuzz/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fuzz/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list libidn_stringprep_fuzzer$(EXEEXT): $(libidn_stringprep_fuzzer_OBJECTS) $(libidn_stringprep_fuzzer_DEPENDENCIES) $(EXTRA_libidn_stringprep_fuzzer_DEPENDENCIES) @rm -f libidn_stringprep_fuzzer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(libidn_stringprep_fuzzer_OBJECTS) $(libidn_stringprep_fuzzer_LDADD) $(LIBS) libidn_toascii_fuzzer$(EXEEXT): $(libidn_toascii_fuzzer_OBJECTS) $(libidn_toascii_fuzzer_DEPENDENCIES) $(EXTRA_libidn_toascii_fuzzer_DEPENDENCIES) @rm -f libidn_toascii_fuzzer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(libidn_toascii_fuzzer_OBJECTS) $(libidn_toascii_fuzzer_LDADD) $(LIBS) libidn_tounicode_fuzzer$(EXEEXT): $(libidn_tounicode_fuzzer_OBJECTS) $(libidn_tounicode_fuzzer_DEPENDENCIES) $(EXTRA_libidn_tounicode_fuzzer_DEPENDENCIES) @rm -f libidn_tounicode_fuzzer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(libidn_tounicode_fuzzer_OBJECTS) $(libidn_tounicode_fuzzer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libidn_stringprep_fuzzer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libidn_toascii_fuzzer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libidn_tounicode_fuzzer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: $(check_PROGRAMS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? libidn_toascii_fuzzer.log: libidn_toascii_fuzzer$(EXEEXT) @p='libidn_toascii_fuzzer$(EXEEXT)'; \ b='libidn_toascii_fuzzer'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) libidn_tounicode_fuzzer.log: libidn_tounicode_fuzzer$(EXEEXT) @p='libidn_tounicode_fuzzer$(EXEEXT)'; \ b='libidn_tounicode_fuzzer'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) libidn_stringprep_fuzzer.log: libidn_stringprep_fuzzer$(EXEEXT) @p='libidn_stringprep_fuzzer$(EXEEXT)'; \ b='libidn_stringprep_fuzzer'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/libidn_stringprep_fuzzer.Po -rm -f ./$(DEPDIR)/libidn_toascii_fuzzer.Po -rm -f ./$(DEPDIR)/libidn_tounicode_fuzzer.Po -rm -f ./$(DEPDIR)/main.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libidn_stringprep_fuzzer.Po -rm -f ./$(DEPDIR)/libidn_toascii_fuzzer.Po -rm -f ./$(DEPDIR)/libidn_tounicode_fuzzer.Po -rm -f ./$(DEPDIR)/main.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am dist-hook distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am recheck tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # libidn_error_fuzzer.c is too static, not worth fuzzing dist-hook: find . -name '*.options' -exec cp -v '{}' $(distdir) ';' find . -name '*.dict' -exec cp -v '{}' $(distdir) ';' # find . -name '*.in' -exec cp -vr '{}' $(distdir) ';' find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';' clean-local: rm -rf *.gc?? *.log lcov coverage.info oss-fuzz: if test "$$OUT" != ""; then \ for ccfile in *_fuzzer.c; do \ fuzzer=$$(basename $$ccfile .c); \ $$CXX $$CXXFLAGS -I$(top_srcdir)/lib -I$(top_srcdir) \ "$${fuzzer}.c" -o "$${fuzzer}" \ ../lib/.libs/libidn.a $${LIB_FUZZING_ENGINE} -Wl,-Bstatic \ -Wl,-Bdynamic; \ done; \ fi .PHONY: oss-fuzz # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/libidn_tounicode_fuzzer.c����������������������������������������������������������0000644�0000000�0000000�00000005246�14076271517�015677� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Copyright(c) 2017 Tim Ruehsen * * 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include <assert.h> /* assert */ #include <stdint.h> /* uint8_t, uint32_t */ #include <stdlib.h> /* malloc, free */ #include <string.h> /* memcpy */ #include "idna.h" #include "idn-free.h" #include "fuzzer.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { char *domain; char *out; if (size > 1024) return 0; domain = (char *) malloc(size + 1); assert(domain != NULL); /* 0 terminate */ memcpy(domain, data, size); domain[size] = 0; if ((size & 3) == 0) { uint32_t *u32 = (uint32_t *) malloc(size); size_t u32len; assert(u32 != NULL); u32len = size / 4; idna_to_unicode_44i((uint32_t *)data, size / 4, u32, &u32len, 0); u32len = size / 4; idna_to_unicode_44i((uint32_t *)data, size / 4, u32, &u32len, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES); free(u32); uint32_t *data0 = (uint32_t *) malloc(size + 4), *out0; assert(data0 != NULL); memcpy(data0, data, size); data0[size / 4] = 0; if (idna_to_unicode_4z4z(data0, &out0, 0) == IDNA_SUCCESS) idn_free(out0); if (idna_to_unicode_4z4z(data0, &out0, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out0); free(data0); if (idna_to_unicode_8z4z(domain, &out0, 0) == IDNA_SUCCESS) idn_free(out0); if (idna_to_unicode_8z4z(domain, &out0, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out0); } if (idna_to_unicode_8z8z(domain, &out, 0) == IDNA_SUCCESS) idn_free(out); if (idna_to_unicode_8z8z(domain, &out, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out); if (idna_to_unicode_8zlz(domain, &out, 0) == IDNA_SUCCESS) idn_free(out); if (idna_to_unicode_8zlz(domain, &out, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out); if (idna_to_unicode_lzlz(domain, &out, 0) == IDNA_SUCCESS) idn_free(out); if (idna_to_unicode_lzlz(domain, &out, IDNA_ALLOW_UNASSIGNED|IDNA_USE_STD3_ASCII_RULES) == IDNA_SUCCESS) idn_free(out); free(domain); return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/libidn_tounicode_fuzzer.dict�������������������������������������������������������0000644�0000000�0000000�00000000016�14076274121�016360� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"xn--" "XN--" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/fuzzer.h���������������������������������������������������������������������������0000644�0000000�0000000�00000002403�14076271517�012302� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Copyright(c) 2017 Tim Ruehsen * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #include <stddef.h> /* size_t */ #include <stdint.h> /* uint8_t */ #ifdef __cplusplus extern "C" #endif int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/libidn_stringprep_fuzzer.c���������������������������������������������������������0000644�0000000�0000000�00000005442�14076271517�016101� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Copyright(c) 2017 Tim Ruehsen * * 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 3 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, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include <assert.h> /* assert */ #include <stdint.h> /* uint8_t, uint32_t */ #include <stdlib.h> /* malloc, free */ #include <string.h> /* memcpy */ #include "stringprep.h" #include "pr29.h" #include "tld.h" #include "idn-free.h" #include "fuzzer.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { char *wdata; char *label; char *utf8_seq; char *out; uint32_t cp; size_t errpos; if (size > 2048) return 0; wdata = (char *) malloc(size + 1); label = (char *) malloc(size + 1); utf8_seq = (char *) malloc(6); assert(wdata != NULL); assert(label != NULL); assert(utf8_seq != NULL); /* 0 terminate */ memcpy(label, data, size); label[size] = 0; stringprep_check_version(label); if (stringprep_profile(label, &out, "Nodeprep", (Stringprep_profile_flags) 0) == STRINGPREP_OK) idn_free(out); pr29_8z(label); /* internally calls stringprep_utf8_to_ucs4() */ #ifdef WITH_TLD if (tld_get_z(label, &out) == TLD_SUCCESS) /* internally calls tld_get_4() */ idn_free(out); const Tld_table *tld = tld_default_table("fr", NULL); tld_check_8z(label, &errpos, NULL); tld_check_lz(label, &errpos, NULL); #endif out = stringprep_utf8_nfkc_normalize((char *)data, size); idn_free(out); cp = stringprep_utf8_to_unichar(label); stringprep_unichar_to_utf8(cp, utf8_seq); memcpy(wdata, data, size); wdata[size] = 0; stringprep(wdata, size, (Stringprep_profile_flags) 0, stringprep_nameprep); memcpy(wdata, data, size); wdata[size] = 0; stringprep(wdata, size, STRINGPREP_NO_UNASSIGNED, stringprep_nameprep); if ((size & 3) == 0) { uint32_t *u32 = (uint32_t *) malloc(size + 4); assert(u32 != NULL); memcpy(u32, data, size); u32[size / 4] = 0; stringprep_4zi(u32, size / 4, (Stringprep_profile_flags) 0, stringprep_xmpp_nodeprep); memcpy(u32, data, size); u32[size / 4] = 0; #ifdef WITH_TLD if (tld_get_4z(u32, &out) == TLD_SUCCESS) /* internally calls tld_get_4() */ idn_free(out); tld_check_4tz(u32, &errpos, tld); tld_check_4z(u32, &errpos, NULL); #endif free(u32); } free(utf8_seq); free(label); free(wdata); return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/Makefile.am������������������������������������������������������������������������0000644�0000000�0000000�00000004461�14076271517�012646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (c) 2017-2020 Tim Ruehsen # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN AM_LDFLAGS = -no-install LDADD = ../lib/libidn.la ../gl/libgnu.la IDN_TESTS = \ libidn_toascii_fuzzer$(EXEEXT) \ libidn_tounicode_fuzzer$(EXEEXT) \ libidn_stringprep_fuzzer$(EXEEXT) check_PROGRAMS = $(IDN_TESTS) libidn_toascii_fuzzer_SOURCES = libidn_toascii_fuzzer.c main.c fuzzer.h libidn_tounicode_fuzzer_SOURCES = libidn_tounicode_fuzzer.c main.c fuzzer.h libidn_stringprep_fuzzer_SOURCES = libidn_stringprep_fuzzer.c main.c fuzzer.h # libidn_error_fuzzer.c is too static, not worth fuzzing dist-hook: find . -name '*.options' -exec cp -v '{}' $(distdir) ';' find . -name '*.dict' -exec cp -v '{}' $(distdir) ';' # find . -name '*.in' -exec cp -vr '{}' $(distdir) ';' find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';' TESTS = $(IDN_TESTS) clean-local: rm -rf *.gc?? *.log lcov coverage.info oss-fuzz: if test "$$OUT" != ""; then \ for ccfile in *_fuzzer.c; do \ fuzzer=$$(basename $$ccfile .c); \ $$CXX $$CXXFLAGS -I$(top_srcdir)/lib -I$(top_srcdir) \ "$${fuzzer}.c" -o "$${fuzzer}" \ ../lib/.libs/libidn.a $${LIB_FUZZING_ENGINE} -Wl,-Bstatic \ -Wl,-Bdynamic; \ done; \ fi .PHONY: oss-fuzz ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/libidn_tounicode_fuzzer.repro/�����������������������������������������������������0000755�0000000�0000000�00000000000�14076274121�016724� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/libidn_tounicode_fuzzer.repro/clusterfuzz-testcase-6105917865066496����������������0000644�0000000�0000000�00000002136�14076274121�024576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Xn--nXKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/fuzz/main.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000006472�14076271517�011706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Copyright(c) 2017 Tim Ruehsen * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #include "../config.h" #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <stdint.h> #include <string.h> #include <fcntl.h> #include <errno.h> #include <sys/stat.h> #include "fuzzer.h" #ifdef TEST_RUN #include <dirent.h> static int test_all_from(const char *dirname) { DIR *dirp; struct dirent *dp; if ((dirp = opendir(dirname))) { while ((dp = readdir(dirp))) { if (*dp->d_name == '.') continue; char fname[strlen(dirname) + strlen(dp->d_name) + 2]; snprintf(fname, sizeof(fname), "%s/%s", dirname, dp->d_name); int fd; if ((fd = open(fname, O_RDONLY)) == -1) { fprintf(stderr, "Failed to open %s (%d)\n", fname, errno); continue; } struct stat st; if (fstat(fd, &st) != 0) { fprintf(stderr, "Failed to stat %d (%d)\n", fd, errno); close(fd); continue; } uint8_t *data = malloc(st.st_size); ssize_t n; if ((n = read(fd, data, st.st_size)) == st.st_size) { printf("testing %llu bytes from '%s'\n", (unsigned long long) st.st_size, fname); LLVMFuzzerTestOneInput(data, st.st_size); } else fprintf(stderr, "Failed to read %llu bytes from %s (%d), got %zd\n", (unsigned long long) st.st_size, fname, errno, n); free(data); close(fd); } closedir(dirp); return 0; } return 1; } int main(int argc, char **argv) { const char *target = strrchr(argv[0], '/'); target = target ? target + 1 : argv[0]; { int rc; char corporadir[sizeof(SRCDIR) + 1 + strlen(target) + 8]; snprintf(corporadir, sizeof(corporadir), SRCDIR "/%s.in", target); rc = test_all_from(corporadir); if (rc) fprintf(stderr, "Failed to find %s\n", corporadir); snprintf(corporadir, sizeof(corporadir), SRCDIR "/%s.repro", target); test_all_from(corporadir); if (test_all_from(corporadir) && rc) return 77; // SKIP } return 0; } #else #ifndef __AFL_LOOP static int __AFL_LOOP(int n) { static int first = 1; if (first) { first = 0; return 1; } return 0; } #endif int main(int argc, char **argv) { int ret; unsigned char buf[64 * 1024]; while (__AFL_LOOP(10000)) { // only works with afl-clang-fast ret = fread(buf, 1, sizeof(buf), stdin); if (ret < 0) return 0; LLVMFuzzerTestOneInput(buf, ret); } return 0; } #endif /* TEST_RUN */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/�������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274117�010270� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/close.c������������������������������������������������������������������������������0000644�0000000�0000000�00000003143�14076273520�011457� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* close replacement. Copyright (C) 2008-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include "fd-hook.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef close #if defined _WIN32 && !defined __CYGWIN__ # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int close_nothrow (int fd) { int result; TRY_MSVC_INVAL { result = _close (fd); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } # else # define close_nothrow _close # endif #else # define close_nothrow close #endif /* Override close() to call into other gnulib modules. */ int rpl_close (int fd) { #if WINDOWS_SOCKETS int retval = execute_all_close_hooks (close_nothrow, fd); #else int retval = close_nothrow (fd); #endif #if REPLACE_FCHDIR if (retval >= 0) _gl_unregister_fd (fd); #endif return retval; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/error.h������������������������������������������������������������������������������0000644�0000000�0000000�00000004460�14076273520�011513� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declaration for error-reporting function Copyright (C) 1995-1997, 2003, 2006, 2008-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _ERROR_H #define _ERROR_H 1 /* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ #include <stdio.h> #ifdef __cplusplus extern "C" { #endif /* Print a message with 'fprintf (stderr, FORMAT, ...)'; if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) #if GNULIB_VFPRINTF_POSIX _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)) #else _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 3, 4)) #endif ; extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) #if GNULIB_VFPRINTF_POSIX _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 6)) #else _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 5, 6)) #endif ; /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ extern void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ extern unsigned int error_message_count; /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ extern int error_one_per_line; #ifdef __cplusplus } #endif #endif /* error.h */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/malloca.c����������������������������������������������������������������������������0000644�0000000�0000000�00000006606�14076273520�011771� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003, 2018. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #define _GL_USE_STDLIB_ALLOC 1 #include <config.h> /* Specification. */ #include "malloca.h" #include "idx.h" #include "intprops.h" #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. Here we use a bit in the address as an indicator, an idea by OndÅ™ej Bílka. malloca() can return three types of pointers: - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap allocation. - NULL comes from a failed heap allocation. */ /* Type for holding very small pointer differences. */ typedef unsigned char small_t; /* Verify that it is wide enough. */ verify (2 * sa_alignment_max - 1 <= (small_t) -1); void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, used to determine the address to pass to freea(), and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ int plus = sizeof (small_t) + 2 * sa_alignment_max - 1; idx_t nplus; if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1)) { char *mem = (char *) malloc (nplus); if (mem != NULL) { char *p = (char *)((((uintptr_t)mem + sizeof (small_t) + sa_alignment_max - 1) & ~(uintptr_t)(2 * sa_alignment_max - 1)) + sa_alignment_max); /* Here p >= mem + sizeof (small_t), and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 hence p + n <= mem + nplus. So, the memory range [p, p+n) lies in the allocated memory range [mem, mem + nplus). */ ((small_t *) p)[-1] = p - mem; /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* Check argument. */ if ((uintptr_t) p & (sa_alignment_max - 1)) { /* p was not the result of a malloca() call. Invalid argument. */ abort (); } /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ if ((uintptr_t) p & sa_alignment_max) { void *mem = (char *) p - ((small_t *) p)[-1]; free (mem); } } #endif /* * Hey Emacs! * Local Variables: * coding: utf-8 * End: */ ��������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt-pfx-ext.h���������������������������������������������������������������������0000644�0000000�0000000�00000005365�14076273520�013262� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getopt (GNU extensions) gnulib wrapper header. Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GETOPT_PFX_EXT_H #define _GETOPT_PFX_EXT_H 1 /* This header should not be used directly; include getopt.h instead. It does not have a protective #error, because the guard macro for getopt.h in gnulib is not fixed. */ /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables defined in getopt-core.h and getopt-ext.h. Systematically rename identifiers so that they do not collide with the system functions and variables. Renaming avoids problems with some compilers and linkers. */ #ifdef __GETOPT_PREFIX # ifndef __GETOPT_ID # define __GETOPT_CONCAT(x, y) x ## y # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) # endif # undef getopt_long # undef getopt_long_only # undef option # undef _getopt_internal # define getopt_long __GETOPT_ID (getopt_long) # define getopt_long_only __GETOPT_ID (getopt_long_only) # define option __GETOPT_ID (option) # define _getopt_internal __GETOPT_ID (getopt_internal) /* The system's getopt.h may have already included getopt-ext.h to declare the unprefixed identifiers. Undef _GETOPT_EXT_H so that getopt-ext.h declares them with prefixes. */ # undef _GETOPT_EXT_H #endif /* Standalone applications get correct prototypes for getopt_long and getopt_long_only; they declare "char **argv". For backward compatibility with old applications, if __GETOPT_PREFIX is not defined, we supply GNU-libc-compatible, but incorrect, prototypes using "char *const *argv". (GNU libc is stuck with the incorrect prototypes, as they are baked into older versions of LSB.) */ #ifndef __getopt_argv_const # if defined __GETOPT_PREFIX # define __getopt_argv_const /* empty */ # else # define __getopt_argv_const const # endif #endif #include <getopt-ext.h> #endif /* _GETOPT_PFX_EXT_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/idx.h��������������������������������������������������������������������������������0000644�0000000�0000000�00000010253�14076273520�011143� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A type for indices and sizes. Copyright (C) 2020-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _IDX_H #define _IDX_H /* Get ptrdiff_t. */ #include <stddef.h> /* Get PTRDIFF_MAX. */ #include <stdint.h> /* The type 'idx_t' holds an (array) index or an (object) size. Its implementation promotes to a signed integer type, which can hold the values 0..2^63-1 (on 64-bit platforms) or 0..2^31-1 (on 32-bit platforms). Why a signed integer type? * Security: Signed types can be checked for overflow via '-fsanitize=undefined', but unsigned types cannot. * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few surprising results for comparisons, such as (int) -3 < (unsigned long) 7 => false (int) -3 < (unsigned int) 7 => false and on 32-bit machines: (long) -3 < (unsigned int) 7 => false This is surprising because the natural comparison order is by value in the realm of infinite-precision signed integers (ℤ). The best way to get rid of such surprises is to use signed types for numerical integer values, and use unsigned types only for bit masks and enums. Why not use 'size_t' directly? * Because 'size_t' is an unsigned type, and a signed type is better. See above. Why not use 'ptrdiff_t' directly? * Maintainability: When reading and modifying code, it helps to know that a certain variable cannot have negative values. For example, when you have a loop int n = ...; for (int i = 0; i < n; i++) ... or ptrdiff_t n = ...; for (ptrdiff_t i = 0; i < n; i++) ... you have to ask yourself "what if n < 0?". Whereas in idx_t n = ...; for (idx_t i = 0; i < n; i++) ... you know that this case cannot happen. Similarly, when a programmer writes idx_t = ptr2 - ptr1; there is an implied assertion that ptr1 and ptr2 point into the same object and that ptr1 <= ptr2. * Being future-proof: In the future, range types (integers which are constrained to a certain range of values) may be added to C compilers or to the C standard. Several programming languages (Ada, Haskell, Common Lisp, Pascal) already have range types. Such range types may help producing good code and good warnings. The type 'idx_t' could then be typedef'ed to a range type that is signed after promotion. */ /* In the future, idx_t could be typedef'ed to a signed range type. The clang "extended integer types", supported in Clang 11 or newer <https://clang.llvm.org/docs/LanguageExtensions.html#extended-integer-types>, are a special case of range types. However, these types don't support binary operators with plain integer types (e.g. expressions such as x > 1). Therefore, they don't behave like signed types (and not like unsigned types either). So, we cannot use them here. */ /* Use the signed type 'ptrdiff_t'. */ /* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same size, but it is so on all platforms we have seen since 1990. */ typedef ptrdiff_t idx_t; /* IDX_MAX is the maximum value of an idx_t. */ #define IDX_MAX PTRDIFF_MAX /* So far no need has been found for an IDX_WIDTH macro. Perhaps there should be another macro IDX_VALUE_BITS that does not count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ #endif /* _IDX_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/strerror.c���������������������������������������������������������������������������0000644�0000000�0000000�00000004074�14076273520�012240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <string.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "intprops.h" #include "strerror-override.h" #include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf char * strerror (int n) #undef strerror { static char buf[STACKBUF_LEN]; size_t len; /* Cast away const, due to the historical signature of strerror; callers should not be modifying the string. */ const char *msg = strerror_override (n); if (msg) return (char *) msg; msg = strerror (n); /* Our strerror_r implementation might use the system's strerror buffer, so all other clients of strerror have to see the error copied into a buffer that we manage. This is not thread-safe, even if the system strerror is, but portable programs shouldn't be using strerror if they care about thread-safety. */ if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; } /* Fix STACKBUF_LEN if this ever aborts. */ len = strlen (msg); if (sizeof buf <= len) abort (); memcpy (buf, msg, len + 1); return buf; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/limits.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000010370�14076273520�012265� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <limits.h>. Copyright 2016-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_LIMITS_H /* Special invocation convention: On Haiku/x86_64, we have a sequence of nested includes <limits.h> -> <syslimits.h> -> <limits.h>. In this situation, LONG_MAX and INT_MAX are not yet defined, therefore we should not attempt to define LONG_BIT. */ #@INCLUDE_NEXT@ @NEXT_LIMITS_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LIMITS_H # define _GL_ALREADY_INCLUDING_LIMITS_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_LIMITS_H@ # undef _GL_ALREADY_INCLUDING_LIMITS_H #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H #ifndef LLONG_MIN # if defined LONG_LONG_MIN /* HP-UX 11.31 */ # define LLONG_MIN LONG_LONG_MIN # elif defined LONGLONG_MIN /* IRIX 6.5 */ # define LLONG_MIN LONGLONG_MIN # elif defined __GNUC__ # define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) # endif #endif #ifndef LLONG_MAX # if defined LONG_LONG_MAX /* HP-UX 11.31 */ # define LLONG_MAX LONG_LONG_MAX # elif defined LONGLONG_MAX /* IRIX 6.5 */ # define LLONG_MAX LONGLONG_MAX # elif defined __GNUC__ # define LLONG_MAX __LONG_LONG_MAX__ # endif #endif #ifndef ULLONG_MAX # if defined ULONG_LONG_MAX /* HP-UX 11.31 */ # define ULLONG_MAX ULONG_LONG_MAX # elif defined ULONGLONG_MAX /* IRIX 6.5 */ # define ULLONG_MAX ULONGLONG_MAX # elif defined __GNUC__ # define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) # endif #endif /* The number of usable bits in an unsigned or signed integer type with minimum value MIN and maximum value MAX, as an int expression suitable in #if. Cover all known practical hosts. This implementation exploits the fact that MAX is 1 less than a power of 2, and merely counts the number of 1 bits in MAX; "COBn" means "count the number of 1 bits in the low-order n bits"). */ #define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) #define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) #define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) #define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) #define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) #ifndef WORD_BIT /* Assume 'int' is 32 bits wide. */ # define WORD_BIT 32 #endif #ifndef LONG_BIT /* Assume 'long' is 32 or 64 bits wide. */ # if LONG_MAX == INT_MAX # define LONG_BIT 32 # else # define LONG_BIT 64 # endif #endif /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) # define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) # define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) # define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) # define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) # define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) # define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) # define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) # define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) # define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) # define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) #endif /* !ULLONG_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/cloexec.c����������������������������������������������������������������������������0000644�0000000�0000000�00000004454�14076273520�012002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* cloexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 1991, 2004-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* The code is taken from glibc/manual/llio.texi */ #include <config.h> #include "cloexec.h" #include <errno.h> #include <fcntl.h> #include <unistd.h> /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value) { #ifdef F_SETFD int flags = fcntl (desc, F_GETFD, 0); if (0 <= flags) { int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); if (flags == newflags || fcntl (desc, F_SETFD, newflags) != -1) return 0; } return -1; #else /* !F_SETFD */ /* Use dup2 to reject invalid file descriptors; the cloexec flag will be unaffected. */ if (desc < 0) { errno = EBADF; return -1; } if (dup2 (desc, desc) < 0) /* errno is EBADF here. */ return -1; /* There is nothing we can do on this kind of platform. Punt. */ return 0; #endif /* !F_SETFD */ } /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd) { return fcntl (fd, F_DUPFD_CLOEXEC, 0); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/fd-hook.c����������������������������������������������������������������������������0000644�0000000�0000000�00000007025�14076273520�011704� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Hook for making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2009. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "fd-hook.h" #include <stdlib.h> /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* The first and last link in the doubly linked list. Initially the list is empty. */ static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd); else return remaining_list->private_close_fn (remaining_list->private_next, primary, fd); } int execute_all_close_hooks (gl_close_fn primary, int fd) { return execute_close_hooks (anchor.private_next, primary, fd); } int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd, request, arg); else return remaining_list->private_ioctl_fn (remaining_list->private_next, primary, fd, request, arg); } int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg) { return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); } void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) { if (close_hook == NULL) close_hook = execute_close_hooks; if (ioctl_hook == NULL) ioctl_hook = execute_ioctl_hooks; if (link->private_next == NULL && link->private_prev == NULL) { /* Add the link to the doubly linked list. */ link->private_next = anchor.private_next; link->private_prev = &anchor; link->private_close_fn = close_hook; link->private_ioctl_fn = ioctl_hook; anchor.private_next->private_prev = link; anchor.private_next = link; } else { /* The link is already in use. */ if (link->private_close_fn != close_hook || link->private_ioctl_fn != ioctl_hook) abort (); } } void unregister_fd_hook (struct fd_hook *link) { struct fd_hook *next = link->private_next; struct fd_hook *prev = link->private_prev; if (next != NULL && prev != NULL) { /* The link is in use. Remove it from the doubly linked list. */ prev->private_next = next; next->private_prev = prev; /* Clear the link, to mark it unused. */ link->private_next = NULL; link->private_prev = NULL; link->private_close_fn = NULL; link->private_ioctl_fn = NULL; } } #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/fcntl.in.h���������������������������������������������������������������������������0000644�0000000�0000000�00000031165�14076273520�012077� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Like <fcntl.h>, but with non-working flags defined to 0. Copyright (C) 2006-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_fcntl_h /* Special invocation convention. */ /* Needed before <sys/stat.h>. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* On some systems other than glibc, <sys/stat.h> is a prerequisite of <fcntl.h>. On glibc systems, we would like to avoid namespace pollution. But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden <sys/stat.h> from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include <sys/stat.h> #endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ /* Native Windows platforms declare open(), creat() in <io.h>. */ #if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_FCNTL_H /* Needed before <sys/stat.h>. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* On some systems other than glibc, <sys/stat.h> is a prerequisite of <fcntl.h>. On glibc systems, we would like to avoid namespace pollution. But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden <sys/stat.h> from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include <sys/stat.h> #endif /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ /* Native Windows platforms declare open(), creat() in <io.h>. */ #if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif #ifndef _@GUARD_PREFIX@_FCNTL_H #define _@GUARD_PREFIX@_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include <unistd.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_CREAT@ # if @REPLACE_CREAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef creat # define creat rpl_creat # endif _GL_FUNCDECL_RPL (creat, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (creat, int, (const char *filename, mode_t mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef creat # define creat _creat # endif _GL_CXXALIAS_MDA (creat, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (creat); #elif defined GNULIB_POSIXCHECK # undef creat /* Assume creat is always declared. */ _GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - " "use gnulib module creat for portability"); #elif @GNULIB_MDA_CREAT@ /* On native Windows, map 'creat' to '_creat', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::creat always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef creat # define creat _creat # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (creat, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (creat); #endif #if @GNULIB_FCNTL@ # if @REPLACE_FCNTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcntl # define fcntl rpl_fcntl # endif _GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); _GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); # if !GNULIB_defined_rpl_fcntl # define GNULIB_defined_rpl_fcntl 1 # endif # else # if !@HAVE_FCNTL@ _GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); # if !GNULIB_defined_fcntl # define GNULIB_defined_fcntl 1 # endif # endif _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIASWARN (fcntl); #elif defined GNULIB_POSIXCHECK # undef fcntl # if HAVE_RAW_DECL_FCNTL _GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " "use gnulib module fcntl for portability"); # endif #endif #if @GNULIB_OPEN@ # if @REPLACE_OPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open rpl_open # endif _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open _open # endif _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif /* On HP-UX 11, in C++ mode, open() is defined as an inline function with a default argument. _GL_CXXALIASWARN does not work in this case. */ # if !defined __hpux _GL_CXXALIASWARN (open); # endif #elif defined GNULIB_POSIXCHECK # undef open /* Assume open is always declared. */ _GL_WARN_ON_USE (open, "open is not always POSIX compliant - " "use gnulib module open for portability"); #elif @GNULIB_MDA_OPEN@ /* On native Windows, map 'open' to '_open', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::open always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open _open # endif _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif # if !defined __hpux _GL_CXXALIASWARN (open); # endif #endif #if @GNULIB_OPENAT@ # if @REPLACE_OPENAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef openat # define openat rpl_openat # endif _GL_FUNCDECL_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # else # if !@HAVE_OPENAT@ _GL_FUNCDECL_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # endif _GL_CXXALIASWARN (openat); #elif defined GNULIB_POSIXCHECK # undef openat # if HAVE_RAW_DECL_OPENAT _GL_WARN_ON_USE (openat, "openat is not portable - " "use gnulib module openat for portability"); # endif #endif /* Fix up the FD_* macros, only known to be missing on mingw. */ #ifndef FD_CLOEXEC # define FD_CLOEXEC 1 #endif /* Fix up the supported F_* macros. Intentionally leave other F_* macros undefined. Only known to be missing on mingw. */ #ifndef F_DUPFD_CLOEXEC # define F_DUPFD_CLOEXEC 0x40000000 /* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ # define GNULIB_defined_F_DUPFD_CLOEXEC 1 #else # define GNULIB_defined_F_DUPFD_CLOEXEC 0 #endif #ifndef F_DUPFD # define F_DUPFD 1 #endif #ifndef F_GETFD # define F_GETFD 2 #endif /* Fix up the O_* macros. */ /* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT to values outside 'int' range, so omit these misdefinitions. But avoid namespace pollution on non-AIX systems. */ #ifdef _AIX # include <limits.h> # if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) # undef O_CLOEXEC # endif # if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) # undef O_NOFOLLOW # endif # if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) # undef O_TTY_INIT # endif #endif #if !defined O_DIRECT && defined O_DIRECTIO /* Tru64 spells it 'O_DIRECTIO'. */ # define O_DIRECT O_DIRECTIO #endif #if !defined O_CLOEXEC && defined O_NOINHERIT /* Mingw spells it 'O_NOINHERIT'. */ # define O_CLOEXEC O_NOINHERIT #endif #ifndef O_CLOEXEC # define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ # define GNULIB_defined_O_CLOEXEC 1 #else # define GNULIB_defined_O_CLOEXEC 0 #endif #ifndef O_DIRECT # define O_DIRECT 0 #endif #ifndef O_DIRECTORY # define O_DIRECTORY 0 #endif #ifndef O_DSYNC # define O_DSYNC 0 #endif #ifndef O_EXEC # define O_EXEC O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_IGNORE_CTTY # define O_IGNORE_CTTY 0 #endif #ifndef O_NDELAY # define O_NDELAY 0 #endif #ifndef O_NOATIME # define O_NOATIME 0 #endif #ifndef O_NONBLOCK # define O_NONBLOCK O_NDELAY #endif /* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY or to 0 as fallback. */ #if @GNULIB_NONBLOCKING@ # if O_NONBLOCK # define GNULIB_defined_O_NONBLOCK 0 # else # define GNULIB_defined_O_NONBLOCK 1 # undef O_NONBLOCK # define O_NONBLOCK 0x40000000 # endif #endif #ifndef O_NOCTTY # define O_NOCTTY 0 #endif #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #ifndef O_NOLINK # define O_NOLINK 0 #endif #ifndef O_NOLINKS # define O_NOLINKS 0 #endif #ifndef O_NOTRANS # define O_NOTRANS 0 #endif #ifndef O_RSYNC # define O_RSYNC 0 #endif #ifndef O_SEARCH # define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_SYNC # define O_SYNC 0 #endif #ifndef O_TTY_INIT # define O_TTY_INIT 0 #endif #if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) # undef O_ACCMODE # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in fcntl.h */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #if defined __BEOS__ || defined __HAIKU__ /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif #ifndef O_BINARY # define O_BINARY 0 # define O_TEXT 0 #endif /* Fix up the AT_* macros. */ /* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its value exceeds INT_MAX, so its use as an int doesn't conform to the C standard, and GCC and Sun C complain in some cases. If the bug is present, undef AT_FDCWD here, so it can be redefined below. */ #if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 # undef AT_FDCWD #endif /* Use the same bit pattern as Solaris 9, but with the proper signedness. The bit pattern is important, in case this actually is Solaris with the above workaround. */ #ifndef AT_FDCWD # define AT_FDCWD (-3041965) #endif /* Use the same values as Solaris 9. This shouldn't matter, but there's no real reason to differ. */ #ifndef AT_SYMLINK_NOFOLLOW # define AT_SYMLINK_NOFOLLOW 4096 #endif #ifndef AT_REMOVEDIR # define AT_REMOVEDIR 1 #endif /* Solaris 9 lacks these two, so just pick unique values. */ #ifndef AT_SYMLINK_FOLLOW # define AT_SYMLINK_FOLLOW 2 #endif #ifndef AT_EACCESS # define AT_EACCESS 4 #endif #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/pathmax.h����������������������������������������������������������������������������0000644�0000000�0000000�00000005630�14076273520�012024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _PATHMAX_H # define _PATHMAX_H /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, including the terminating NUL byte. <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html> PATH_MAX is not defined on systems which have no limit on filename length, such as GNU/Hurd. This file does *not* define PATH_MAX always. Programs that use this file can handle the GNU/Hurd case in several ways: - Either with a package-wide handling, or with a per-file handling, - Either through a #ifdef PATH_MAX or through a fallback like #ifndef PATH_MAX # define PATH_MAX 8192 #endif or through a fallback like #ifndef PATH_MAX # define PATH_MAX pathconf ("/", _PC_PATH_MAX) #endif */ # include <unistd.h> # include <limits.h> # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 256 # endif /* Don't include sys/param.h if it already has been. */ # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> # endif # if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif # ifdef __hpux /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, *not* including the terminating NUL byte, and is set to 1023. Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is not defined at all any more. */ # undef PATH_MAX # define PATH_MAX 1024 # endif # if defined _WIN32 && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", <https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation> explains that the maximum size of a filename, including the terminating NUL byte, is 260 = 3 + 256 + 1. This is the same value as - FILENAME_MAX in <stdio.h>, - _MAX_PATH in <stdlib.h>, - MAX_PATH in <windef.h>. Undefine the original value, because mingw's <limits.h> gets it wrong. */ # undef PATH_MAX # define PATH_MAX 260 # endif #endif /* _PATHMAX_H */ ��������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt-pfx-core.h��������������������������������������������������������������������0000644�0000000�0000000�00000005024�14076273520�013402� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getopt (basic, portable features) gnulib wrapper header. Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GETOPT_PFX_CORE_H #define _GETOPT_PFX_CORE_H 1 /* This header should not be used directly; include getopt.h or unistd.h instead. It does not have a protective #error, because the guard macro for getopt.h in gnulib is not fixed. */ /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables defined in getopt-core.h and getopt-ext.h. Systematically rename identifiers so that they do not collide with the system functions and variables. Renaming avoids problems with some compilers and linkers. */ #ifdef __GETOPT_PREFIX # ifndef __GETOPT_ID # define __GETOPT_CONCAT(x, y) x ## y # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) # endif # undef getopt # undef optarg # undef opterr # undef optind # undef optopt # define getopt __GETOPT_ID (getopt) # define optarg __GETOPT_ID (optarg) # define opterr __GETOPT_ID (opterr) # define optind __GETOPT_ID (optind) # define optopt __GETOPT_ID (optopt) /* Work around a a problem on macOS, which declares getopt with a trailing __DARWIN_ALIAS(getopt) that would expand to something like __asm("_" "rpl_getopt" "$UNIX2003") were it not for the following hack to suppress the macOS declaration <https://bugs.gnu.org/40205>. */ # ifdef __APPLE__ # define _GETOPT # endif /* The system's getopt.h may have already included getopt-core.h to declare the unprefixed identifiers. Undef _GETOPT_CORE_H so that getopt-core.h declares them with prefixes. */ # undef _GETOPT_CORE_H #endif #include <getopt-core.h> #endif /* _GETOPT_PFX_CORE_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/xalloc-oversized.h�������������������������������������������������������������������0000644�0000000�0000000�00000005120�14076273520�013646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef XALLOC_OVERSIZED_H_ #define XALLOC_OVERSIZED_H_ #include <stddef.h> #include <stdint.h> /* True if N * S does not fit into both ptrdiff_t and size_t. N and S should be nonnegative and free of side effects. This expands to a constant expression if N and S are both constants. By gnulib convention, SIZE_MAX represents overflow in size_t calculations, so the conservative size_t-based dividend to use here is SIZE_MAX - 1. */ #define __xalloc_oversized(n, s) \ ((s) != 0 \ && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \ < (n))) /* Return 1 if and only if an array of N objects, each of size S, cannot exist reliably because its total size in bytes would exceed MIN (PTRDIFF_MAX, SIZE_MAX - 1). N and S should be nonnegative and free of side effects. Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can misbehave if N and S are both narrower than ptrdiff_t and size_t, and can be rewritten as (xalloc_oversized (N, S) ? NULL : malloc (N * (size_t) S)). This is a macro, not a function, so that it works even if an argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ #if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX # define xalloc_oversized(n, s) \ __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) #elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \ && PTRDIFF_MAX < SIZE_MAX) # define xalloc_oversized(n, s) \ (__builtin_constant_p (n) && __builtin_constant_p (s) \ ? __xalloc_oversized (n, s) \ : ({ ptrdiff_t __xalloc_count; \ __builtin_mul_overflow (n, s, &__xalloc_count); })) /* Other compilers use integer division; this may be slower but is more portable. */ #else # define xalloc_oversized(n, s) __xalloc_oversized (n, s) #endif #endif /* !XALLOC_OVERSIZED_H_ */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getprogname.h������������������������������������������������������������������������0000644�0000000�0000000�00000002223�14076273520�012665� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Program name management. Copyright (C) 2016-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_GETPROGNAME_H #define _GL_GETPROGNAME_H #include <stdlib.h> #ifdef __cplusplus extern "C" { #endif /* Return the base name of the executing program. On native Windows this will usually end in ".exe" or ".EXE". */ #ifndef HAVE_GETPROGNAME extern char const *getprogname (void) # ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME _GL_ATTRIBUTE_PURE # endif ; #endif #ifdef __cplusplus } #endif #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getdtablesize.c����������������������������������������������������������������������0000644�0000000�0000000�00000006565�14076273520�013213� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getdtablesize() function: Return maximum possible file descriptor value + 1. Copyright (C) 2008-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include <unistd.h> #if defined _WIN32 && ! defined __CYGWIN__ # include <stdio.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int _setmaxstdio_nothrow (int newmax) { int result; TRY_MSVC_INVAL { result = _setmaxstdio (newmax); } CATCH_MSVC_INVAL { result = -1; } DONE_MSVC_INVAL; return result; } # else # define _setmaxstdio_nothrow _setmaxstdio # endif /* Cache for the previous getdtablesize () result. Safe to cache because Windows also lacks setrlimit. */ static int dtablesize; int getdtablesize (void) { if (dtablesize == 0) { /* We are looking for the number N such that the valid file descriptors are 0..N-1. It can be obtained through a loop as follows: { int fd; for (fd = 3; fd < 65536; fd++) if (dup2 (0, fd) == -1) break; return fd; } On Windows XP, the result is 2048. The drawback of this loop is that it allocates memory for a libc internal array that is never freed. The number N can also be obtained as the upper bound for _getmaxstdio (). _getmaxstdio () returns the maximum number of open FILE objects. The sanity check in _setmaxstdio reveals the maximum number of file descriptors. This too allocates memory, but it is freed when we call _setmaxstdio with the original value. */ int orig_max_stdio = _getmaxstdio (); unsigned int bound; for (bound = 0x10000; _setmaxstdio_nothrow (bound) < 0; bound = bound / 2) ; _setmaxstdio_nothrow (orig_max_stdio); dtablesize = bound; } return dtablesize; } #else # include <limits.h> # include <sys/resource.h> # ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY # endif # ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY # endif # ifdef __CYGWIN__ /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it hits the compile-time constant hard limit of 3200. We might as well just report the hard limit. */ # define rlim_cur rlim_max # endif int getdtablesize (void) { struct rlimit lim; if (getrlimit (RLIMIT_NOFILE, &lim) == 0 && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX && lim.rlim_cur != RLIM_INFINITY && lim.rlim_cur != RLIM_SAVED_CUR && lim.rlim_cur != RLIM_SAVED_MAX) return lim.rlim_cur; return INT_MAX; } #endif �������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/fstat.c������������������������������������������������������������������������������0000644�0000000�0000000�00000005153�14076273520�011476� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* fstat() replacement. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to rpl_fstat. */ #define __need_system_sys_stat_h #include <config.h> /* Get the original definition of fstat. It might be defined as a macro. */ #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #if !defined WINDOWS_NATIVE static int orig_fstat (int fd, struct stat *buf) { return fstat (fd, buf); } #endif /* Specification. */ #ifdef __osf__ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" #else # include <sys/stat.h> #endif #include "stat-time.h" #include <errno.h> #include <unistd.h> #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include <windows.h> # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif # include "stat-w32.h" #endif int rpl_fstat (int fd, struct stat *buf) { #if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY /* Handle the case when rpl_open() used a dummy file descriptor to work around an open() that can't normally visit directories. */ const char *name = _gl_directory_name (fd); if (name != NULL) return stat (name, buf); #endif #ifdef WINDOWS_NATIVE /* Fill the fields ourselves, because the original fstat function returns values for st_atime, st_mtime, st_ctime that depend on the current time zone. See <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html> */ HANDLE h = (HANDLE) _get_osfhandle (fd); if (h == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return _gl_fstat_by_handle (h, NULL, buf); #else return stat_time_normalize (orig_fstat (fd, buf), buf); #endif } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/msvc-nothrow.c�����������������������������������������������������������������������0000644�0000000�0000000�00000002556�14076273520�013027� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "msvc-nothrow.h" /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef _get_osfhandle #if HAVE_MSVC_INVALID_PARAMETER_HANDLER intptr_t _gl_nothrow_get_osfhandle (int fd) { intptr_t result; TRY_MSVC_INVAL { result = _get_osfhandle (fd); } CATCH_MSVC_INVAL { result = (intptr_t) INVALID_HANDLE_VALUE; } DONE_MSVC_INVAL; return result; } #endif ��������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/gettext.h����������������������������������������������������������������������������0000644�0000000�0000000�00000025025�14076273520�012046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Convenience header for conditional use of GNU <libintl.h>. Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option or through "#define ENABLE NLS 0" before including this file. */ #if defined ENABLE_NLS && ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include <libintl.h> /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of <locale.h> a NOP. We don't include <libintl.h> as well because people using "gettext.h" will not include <libintl.h>, and also including <libintl.h> would fail on SunOS 4, whereas <locale.h> is OK. */ #if defined(__sun) # include <locale.h> #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include <libintl.h>, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of <libintl.h> a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include <cstdlib> # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include <libintl.h> # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include <string.h> /* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. This relates to the -Wvla and -Wvla-larger-than warnings, enabled in the default GCC many warnings set. This allows programs to disable use of VLAs, which may be unintended, or may be awkward to support portably, or may have security implications due to non-deterministic stack usage. */ #if (!defined GNULIB_NO_VLA \ && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc) || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 #endif #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include <stdlib.h> #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); found_translation = (translation != msg_ctxt_id); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stat-w32.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003107�14076273520�011743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Core of implementation of fstat and stat for native Windows. Copyright (C) 2017-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _STAT_W32_H #define _STAT_W32_H 1 /* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ #if _GL_WINDOWS_STAT_TIMESPEC extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); #else extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); #endif /* Fill *BUF with information about the file designated by H. PATH is the file name, if known, otherwise NULL. Return 0 if successful, or -1 with errno set upon failure. */ extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); /* Bitmasks for st_mode. */ #define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) #define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) #define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) #endif /* _STAT_W32_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/Makefile.in��������������������������������������������������������������������������0000644�0000000�0000000�00000344730�14076273732�012272� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import --local-dir=gl \ # --lib=libgnu \ # --source-base=gl \ # --m4-base=gl/m4 \ # --doc-base=doc \ # --tests-base=gl/tests \ # --aux-dir=build-aux \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --no-vc-files \ # autobuild \ # csharpcomp-script \ # csharpexec-script \ # error \ # fdl-1.3 \ # getline \ # getopt-gnu \ # git-version-gen \ # gitlog-to-changelog \ # lib-msvc-compat \ # lib-symbol-versions \ # lib-symbol-visibility \ # manywarnings \ # pmccabe2html \ # progname \ # readme-release \ # update-copyright \ # useless-if-before-free \ # valgrind-tests \ # version-etc VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = gl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am_libgnu_la_OBJECTS = basename-lgpl.lo cloexec.lo fd-hook.lo \ getprogname.lo malloca.lo progname.lo stat-time.lo unistd.lo \ version-etc.lo libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgnu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgnu_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/basename-lgpl.Plo \ ./$(DEPDIR)/cloexec.Plo ./$(DEPDIR)/close.Plo \ ./$(DEPDIR)/dup2.Plo ./$(DEPDIR)/error.Plo \ ./$(DEPDIR)/fcntl.Plo ./$(DEPDIR)/fd-hook.Plo \ ./$(DEPDIR)/fstat.Plo ./$(DEPDIR)/getdelim.Plo \ ./$(DEPDIR)/getdtablesize.Plo ./$(DEPDIR)/getline.Plo \ ./$(DEPDIR)/getopt.Plo ./$(DEPDIR)/getopt1.Plo \ ./$(DEPDIR)/getprogname.Plo ./$(DEPDIR)/malloca.Plo \ ./$(DEPDIR)/msvc-inval.Plo ./$(DEPDIR)/msvc-nothrow.Plo \ ./$(DEPDIR)/open.Plo ./$(DEPDIR)/progname.Plo \ ./$(DEPDIR)/stat-time.Plo ./$(DEPDIR)/stat-w32.Plo \ ./$(DEPDIR)/stat.Plo ./$(DEPDIR)/strerror-override.Plo \ ./$(DEPDIR)/strerror.Plo ./$(DEPDIR)/unistd.Plo \ ./$(DEPDIR)/version-etc.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) DIST_SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.11 gnits SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = libgnu.la # No GNU Make output. EXTRA_DIST = m4/gnulib-cache.m4 alloca.in.h \ $(top_srcdir)/build-aux/announce-gen basename-lgpl.h cloexec.h \ close.c $(top_srcdir)/build-aux/csharpcomp.sh.in \ $(top_srcdir)/build-aux/csharpexec.sh.in \ $(top_srcdir)/build-aux/do-release-commit-and-tag dup2.c \ errno.in.h error.c error.h fcntl.c fcntl.in.h fd-hook.h \ filename.h fstat.c stat-w32.c stat-w32.h \ $(top_srcdir)/build-aux/gendocs.sh getdelim.c getdtablesize.c \ getline.c getopt-cdefs.in.h getopt-core.h getopt-ext.h \ getopt-pfx-core.h getopt-pfx-ext.h getopt.c getopt.in.h \ getopt1.c getopt_int.h $(top_srcdir)/build-aux/git-version-gen \ $(top_srcdir)/build-aux/gitlog-to-changelog \ $(top_srcdir)/build-aux/gnu-web-doc-update \ $(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/gnupload \ intprops.h limits.in.h $(top_srcdir)/maint.mk malloca.h \ msvc-inval.c msvc-inval.h msvc-nothrow.c msvc-nothrow.h open.c \ pathmax.h $(top_srcdir)/build-aux/pmccabe2html \ $(top_srcdir)/build-aux/pmccabe.css arg-nonnull.h c++defs.h \ warn-on-use.h stat-w32.c stat-w32.h stat.c stat-time.h \ stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h stdio.in.h \ strerror.c strerror-override.c strerror-override.h string.in.h \ sys_stat.in.h sys_types.in.h time.in.h unistd.in.h \ $(top_srcdir)/build-aux/update-copyright \ $(top_srcdir)/build-aux/useless-if-before-free \ $(top_srcdir)/build-aux/vc-list-files verify.h \ xalloc-oversized.h BUILT_SOURCES = $(ALLOCA_H) $(ERRNO_H) fcntl.h $(GETOPT_H) \ $(GETOPT_CDEFS_H) $(LIMITS_H) $(STDARG_H) $(STDBOOL_H) \ $(STDDEF_H) $(STDINT_H) stdio.h string.h sys/stat.h \ sys/types.h time.h unistd.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t errno.h \ errno.h-t fcntl.h fcntl.h-t getopt.h getopt.h-t getopt-cdefs.h \ getopt-cdefs.h-t limits.h limits.h-t stdarg.h stdarg.h-t \ stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \ stdio.h stdio.h-t string.h string.h-t sys/stat.h sys/stat.h-t \ sys/types.h sys/types.h-t time.h time.h-t unistd.h unistd.h-t MOSTLYCLEANDIRS = sys CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = # The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the # compilation of all sources that make up the library. This line here does it # only for the gnulib part of it. The developer is responsible for adding # $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library. AM_CFLAGS = $(CFLAG_VISIBILITY) libgnu_la_SOURCES = basename-lgpl.c cloexec.c fd-hook.c getprogname.h \ getprogname.c gettext.h idx.h malloca.c progname.h progname.c \ stat-time.c unistd.c version-etc.h version-etc.c libgnu_la_LIBADD = $(gl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = close.c dup2.c error.c fcntl.c fstat.c \ stat-w32.c getdelim.c getdtablesize.c getline.c getopt.c \ getopt1.c msvc-inval.c msvc-nothrow.c open.c stat-w32.c stat.c \ strerror.c strerror-override.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LTLIBINTL) # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H = $(srcdir)/arg-nonnull.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H = $(srcdir)/c++defs.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H = $(srcdir)/warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits gl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits gl/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgnu.la: $(libgnu_la_OBJECTS) $(libgnu_la_DEPENDENCIES) $(EXTRA_libgnu_la_DEPENDENCIES) $(AM_V_CCLD)$(libgnu_la_LINK) $(libgnu_la_OBJECTS) $(libgnu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdelim.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getprogname.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-time.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-w32.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/basename-lgpl.Plo -rm -f ./$(DEPDIR)/cloexec.Plo -rm -f ./$(DEPDIR)/close.Plo -rm -f ./$(DEPDIR)/dup2.Plo -rm -f ./$(DEPDIR)/error.Plo -rm -f ./$(DEPDIR)/fcntl.Plo -rm -f ./$(DEPDIR)/fd-hook.Plo -rm -f ./$(DEPDIR)/fstat.Plo -rm -f ./$(DEPDIR)/getdelim.Plo -rm -f ./$(DEPDIR)/getdtablesize.Plo -rm -f ./$(DEPDIR)/getline.Plo -rm -f ./$(DEPDIR)/getopt.Plo -rm -f ./$(DEPDIR)/getopt1.Plo -rm -f ./$(DEPDIR)/getprogname.Plo -rm -f ./$(DEPDIR)/malloca.Plo -rm -f ./$(DEPDIR)/msvc-inval.Plo -rm -f ./$(DEPDIR)/msvc-nothrow.Plo -rm -f ./$(DEPDIR)/open.Plo -rm -f ./$(DEPDIR)/progname.Plo -rm -f ./$(DEPDIR)/stat-time.Plo -rm -f ./$(DEPDIR)/stat-w32.Plo -rm -f ./$(DEPDIR)/stat.Plo -rm -f ./$(DEPDIR)/strerror-override.Plo -rm -f ./$(DEPDIR)/strerror.Plo -rm -f ./$(DEPDIR)/unistd.Plo -rm -f ./$(DEPDIR)/version-etc.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-local distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/basename-lgpl.Plo -rm -f ./$(DEPDIR)/cloexec.Plo -rm -f ./$(DEPDIR)/close.Plo -rm -f ./$(DEPDIR)/dup2.Plo -rm -f ./$(DEPDIR)/error.Plo -rm -f ./$(DEPDIR)/fcntl.Plo -rm -f ./$(DEPDIR)/fd-hook.Plo -rm -f ./$(DEPDIR)/fstat.Plo -rm -f ./$(DEPDIR)/getdelim.Plo -rm -f ./$(DEPDIR)/getdtablesize.Plo -rm -f ./$(DEPDIR)/getline.Plo -rm -f ./$(DEPDIR)/getopt.Plo -rm -f ./$(DEPDIR)/getopt1.Plo -rm -f ./$(DEPDIR)/getprogname.Plo -rm -f ./$(DEPDIR)/malloca.Plo -rm -f ./$(DEPDIR)/msvc-inval.Plo -rm -f ./$(DEPDIR)/msvc-nothrow.Plo -rm -f ./$(DEPDIR)/open.Plo -rm -f ./$(DEPDIR)/progname.Plo -rm -f ./$(DEPDIR)/stat-time.Plo -rm -f ./$(DEPDIR)/stat-w32.Plo -rm -f ./$(DEPDIR)/stat.Plo -rm -f ./$(DEPDIR)/strerror-override.Plo -rm -f ./$(DEPDIR)/strerror.Plo -rm -f ./$(DEPDIR)/unistd.Plo -rm -f ./$(DEPDIR)/version-etc.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-exec install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-local distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_ALLOCA_H_TRUE@ sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \ @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ @GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ @GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create <fcntl.h> when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/getopt.in.h; \ } > $@-t && \ mv -f $@-t $@ getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ < $(srcdir)/getopt-cdefs.in.h; \ } > $@-t && \ mv -f $@-t $@ distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile # We need the following in order to create <limits.h> when the system # doesn't have one that is compatible with GNU. @GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_LIMITS_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_LIMITS_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ < $(srcdir)/limits.in.h; \ @GL_GENERATE_LIMITS_H_TRUE@ } > $@-t && \ @GL_GENERATE_LIMITS_H_TRUE@ mv $@-t $@ @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ # We need the following in order to create <stdarg.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDARG_H_TRUE@stdarg.h: stdarg.in.h $(top_builddir)/config.status @GL_GENERATE_STDARG_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDARG_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDARG_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ @GL_GENERATE_STDARG_H_TRUE@ < $(srcdir)/stdarg.in.h; \ @GL_GENERATE_STDARG_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDARG_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDARG_H_FALSE@stdarg.h: $(top_builddir)/config.status @GL_GENERATE_STDARG_H_FALSE@ rm -f $@ # We need the following in order to create <stdbool.h> when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create <stddef.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <sys/types.h> when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������libidn-1.38/gl/version-etc.h������������������������������������������������������������������������0000644�0000000�0000000�00000005227�14076273520�012622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Print --version and bug-reporting information in a consistent format. Copyright (C) 1999, 2003, 2005, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #ifndef VERSION_ETC_H # define VERSION_ETC_H 1 # include <stdarg.h> # include <stdio.h> extern const char version_etc_copyright[]; /* The three functions below display the --version information in the standard way: command and package names, package version, followed by a short GPLv3+ notice and a list of up to 10 author names. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The functions differ in the way they are passed author names: */ /* N_AUTHORS names are supplied in array AUTHORS. */ extern void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors); /* Names are passed in the NULL-terminated array AUTHORS. */ extern void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors); /* Names are passed in the NULL-terminated va_list. */ extern void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors); /* Names are passed as separate arguments, with an additional NULL argument at the end. */ extern void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, /* const char *author1, ..., NULL */ ...) _GL_ATTRIBUTE_SENTINEL ((0)); /* Display the usual "Report bugs to" stanza. */ extern void emit_bug_reporting_address (void); #endif /* VERSION_ETC_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/filename.h���������������������������������������������������������������������������0000644�0000000�0000000�00000011121�14076273520�012132� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Basic filename support macros. Copyright (C) 2001-2004, 2007-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ /* From Paul Eggert and Jim Meyering. */ #ifndef _FILENAME_H #define _FILENAME_H #include <string.h> #ifdef __cplusplus extern "C" { #endif /* Filename support. ISSLASH(C) tests whether C is a directory separator character. HAS_DEVICE(Filename) tests whether Filename contains a device specification. FILE_SYSTEM_PREFIX_LEN(Filename) length of the device specification at the beginning of Filename, index of the part consisting of alternating components and slashes. FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 when a non-empty device specification can be followed by an empty or relative part, 0 when a non-empty device specification must be followed by a slash, 0 when device specification don't exist. IS_ABSOLUTE_FILE_NAME(Filename) tests whether Filename is independent of any notion of "current directory". IS_RELATIVE_FILE_NAME(Filename) tests whether Filename may be concatenated to a directory filename. Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a relative file name! IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device or directory specification. */ #if defined _WIN32 || defined __CYGWIN__ \ || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') /* Internal macro: Tests whether a character is a drive letter. */ # define _IS_DRIVE_LETTER(C) \ (((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z')) /* Help the compiler optimizing it. This assumes ASCII. */ # undef _IS_DRIVE_LETTER # define _IS_DRIVE_LETTER(C) \ (((unsigned int) (C) | ('a' - 'A')) - 'a' <= 'z' - 'a') # define HAS_DEVICE(Filename) \ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':') # define FILE_SYSTEM_PREFIX_LEN(Filename) (HAS_DEVICE (Filename) ? 2 : 0) # ifdef __CYGWIN__ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 # else /* On native Windows, OS/2, DOS, the system has the notion of a "current directory" on each drive. */ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 # endif # if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define IS_ABSOLUTE_FILE_NAME(Filename) \ ISSLASH ((Filename)[FILE_SYSTEM_PREFIX_LEN (Filename)]) # else # define IS_ABSOLUTE_FILE_NAME(Filename) \ (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename)) # endif # define IS_RELATIVE_FILE_NAME(Filename) \ (! (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename))) # define IS_FILE_NAME_WITH_DIR(Filename) \ (strchr ((Filename), '/') != NULL || strchr ((Filename), '\\') != NULL \ || HAS_DEVICE (Filename)) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define HAS_DEVICE(Filename) ((void) (Filename), 0) # define FILE_SYSTEM_PREFIX_LEN(Filename) ((void) (Filename), 0) # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 # define IS_ABSOLUTE_FILE_NAME(Filename) ISSLASH ((Filename)[0]) # define IS_RELATIVE_FILE_NAME(Filename) (! ISSLASH ((Filename)[0])) # define IS_FILE_NAME_WITH_DIR(Filename) (strchr ((Filename), '/') != NULL) #endif /* Deprecated macros. For backward compatibility with old users of the 'filename' module. */ #define IS_ABSOLUTE_PATH IS_ABSOLUTE_FILE_NAME #define IS_PATH_WITH_DIR IS_FILE_NAME_WITH_DIR #ifdef __cplusplus } #endif #endif /* _FILENAME_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt-cdefs.in.h��������������������������������������������������������������������0000644�0000000�0000000�00000004046�14076273520�013353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getopt-on-non-glibc compatibility macros. Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GETOPT_CDEFS_H #define _GETOPT_CDEFS_H 1 /* This header should not be used directly; include getopt.h or unistd.h instead. It does not have a protective #error, because the guard macro for getopt.h in gnulib is not fixed. */ /* getopt-core.h and getopt-ext.h are shared with GNU libc, and expect a number of the internal macros supplied to GNU libc's headers by sys/cdefs.h. Provide fallback definitions for all of them. */ #if @HAVE_SYS_CDEFS_H@ # include <sys/cdefs.h> #endif #ifndef __BEGIN_DECLS # ifdef __cplusplus # define __BEGIN_DECLS extern "C" { # else # define __BEGIN_DECLS /* nothing */ # endif #endif #ifndef __END_DECLS # ifdef __cplusplus # define __END_DECLS } # else # define __END_DECLS /* nothing */ # endif #endif #ifndef __GNUC_PREREQ # if defined __GNUC__ && defined __GNUC_VERSION__ # define __GNUC_PREREQ(maj, min) \ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) # else # define __GNUC_PREREQ(maj, min) 0 # endif #endif #ifndef __THROW # if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) # define __THROW throw () # else # define __THROW # endif #endif #endif /* _GETOPT_CDEFS_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/arg-nonnull.h������������������������������������������������������������������������0000644�0000000�0000000�00000002353�14076273520�012615� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/msvc-inval.h�������������������������������������������������������������������������0000644�0000000�0000000�00000021226�14076273520�012440� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines macros that turn such an invalid parameter notification into a non-local exit. An error code can then be produced at the target of this exit. You can thus write code like TRY_MSVC_INVAL { <Code that can trigger an invalid parameter notification but does not do 'return', 'break', 'continue', nor 'goto'.> } CATCH_MSVC_INVAL { <Code that handles an invalid parameter notification but does not do 'return', 'break', 'continue', nor 'goto'.> } DONE_MSVC_INVAL; This entire block expands to a single statement. The handling of invalid parameters can be done in three ways: * The default way, which is reasonable for programs (not libraries): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) * The way for libraries that make "hairy" calls (like close(-1), or fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) * The way for libraries that make no "hairy" calls: AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) */ #define DEFAULT_HANDLING 0 #define HAIRY_LIBRARY_HANDLING 1 #define SANE_LIBRARY_HANDLING 2 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* A native Windows platform with the "invalid parameter handler" concept, and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING /* Default handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that just returns. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) # else /* Handling for hairy libraries. */ # include <excpt.h> /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com <https://docs.microsoft.com/en-us/cpp/cpp/raising-software-exceptions>. Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), - 0, 1, 2, ..., used to distinguish different status codes from the same API. */ # define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com <https://docs.microsoft.com/en-us/cpp/cpp/try-except-statement>. With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ __try # define CATCH_MSVC_INVAL \ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ ? EXCEPTION_EXECUTE_HANDLER \ : EXCEPTION_CONTINUE_SEARCH) # define DONE_MSVC_INVAL \ } \ while (0) # else /* Any compiler. We can only use setjmp/longjmp. */ # include <setjmp.h> # ifdef __cplusplus extern "C" { # endif struct gl_msvc_inval_per_thread { /* The restart that will resume execution at the code between CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ jmp_buf restart; /* Tells whether the contents of restart is valid. */ int restart_valid; }; /* Ensure that the invalid parameter handler in installed that passes control to the gl_msvc_inval_restart if it is valid, or raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); /* Return a pointer to the per-thread data for the current thread. */ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ struct gl_msvc_inval_per_thread *msvc_inval_current; \ gl_msvc_inval_ensure_handler (); \ msvc_inval_current = gl_msvc_inval_current (); \ /* First, initialize gl_msvc_inval_restart. */ \ if (setjmp (msvc_inval_current->restart) == 0) \ { \ /* Then, mark it as valid. */ \ msvc_inval_current->restart_valid = 1; # define CATCH_MSVC_INVAL \ /* Execution completed. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; \ } \ else \ { \ /* Execution triggered an invalid parameter notification. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; # define DONE_MSVC_INVAL \ } \ } \ while (0) # endif # endif #else /* A platform that does not need to the invalid parameter handler, or when SANE_LIBRARY_HANDLING is desired. */ /* The braces here avoid GCC warnings like "warning: suggest explicit braces to avoid ambiguous 'else'". */ # define TRY_MSVC_INVAL \ do \ { \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) #endif #endif /* _MSVC_INVAL_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt-ext.h�������������������������������������������������������������������������0000644�0000000�0000000�00000005753�14076273520�012470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declarations for getopt (GNU extensions). Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _GETOPT_EXT_H #define _GETOPT_EXT_H 1 /* This header should not be used directly; include getopt.h instead. Unlike most bits headers, it does not have a protective #error, because the guard macro for getopt.h in gnulib is not fixed. */ __BEGIN_DECLS /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of 'struct option' terminated by an element containing a name which is zero. The field 'has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field 'flag' is not NULL, it points to a variable that is set to the value given in the field 'val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an 'int' to a compiled-in constant, such as set a value from 'optarg', set the option's 'flag' field to zero and its 'val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero 'flag' field, 'getopt' returns the contents of the 'val' field. */ struct option { const char *name; /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the 'has_arg' field of 'struct option'. */ #define no_argument 0 #define required_argument 1 #define optional_argument 2 extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind) __THROW _GL_ARG_NONNULL ((2, 3)); extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind) __THROW _GL_ARG_NONNULL ((2, 3)); __END_DECLS #endif /* _GETOPT_EXT_H */ ���������������������libidn-1.38/gl/fcntl.c������������������������������������������������������������������������������0000644�0000000�0000000�00000044621�14076273520�011466� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide file descriptor control. Copyright (C) 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake <ebb9@byu.net>. */ #include <config.h> /* Specification. */ #include <fcntl.h> #include <errno.h> #include <limits.h> #include <stdarg.h> #include <stdlib.h> #include <unistd.h> #ifdef __KLIBC__ # define INCL_DOS # include <os2.h> #endif #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif /* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ # define OPEN_MAX_MAX 0x10000 /* Duplicate OLDFD into the first available slot of at least NEWFD, which must be positive, with FLAGS determining whether the duplicate will be inheritable. */ static int dupfd (int oldfd, int newfd, int flags) { /* Mingw has no way to create an arbitrary fd. Iterate until all file descriptors less than newfd are filled up. */ HANDLE curr_process = GetCurrentProcess (); HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; unsigned int fds_to_close_bound = 0; int result; BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; int mode; if (newfd < 0 || getdtablesize () <= newfd) { errno = EINVAL; return -1; } if (old_handle == INVALID_HANDLE_VALUE || (mode = _setmode (oldfd, O_BINARY)) == -1) { /* oldfd is not open, or is an unassigned standard file descriptor. */ errno = EBADF; return -1; } _setmode (oldfd, mode); flags |= mode; for (;;) { HANDLE new_handle; int duplicated_fd; unsigned int index; if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ old_handle, /* SourceHandle */ curr_process, /* TargetProcessHandle */ (PHANDLE) &new_handle, /* TargetHandle */ (DWORD) 0, /* DesiredAccess */ inherit, /* InheritHandle */ DUPLICATE_SAME_ACCESS)) /* Options */ { switch (GetLastError ()) { case ERROR_TOO_MANY_OPEN_FILES: errno = EMFILE; break; case ERROR_INVALID_HANDLE: case ERROR_INVALID_TARGET_HANDLE: case ERROR_DIRECT_ACCESS_HANDLE: errno = EBADF; break; case ERROR_INVALID_PARAMETER: case ERROR_INVALID_FUNCTION: case ERROR_INVALID_ACCESS: errno = EINVAL; break; default: errno = EACCES; break; } result = -1; break; } duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); if (duplicated_fd < 0) { CloseHandle (new_handle); result = -1; break; } if (newfd <= duplicated_fd) { result = duplicated_fd; break; } /* Set the bit duplicated_fd in fds_to_close[]. */ index = (unsigned int) duplicated_fd / CHAR_BIT; if (fds_to_close_bound <= index) { if (sizeof fds_to_close <= index) /* Need to increase OPEN_MAX_MAX. */ abort (); memset (fds_to_close + fds_to_close_bound, '\0', index + 1 - fds_to_close_bound); fds_to_close_bound = index + 1; } fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); } /* Close the previous fds that turned out to be too small. */ { int saved_errno = errno; unsigned int duplicated_fd; for (duplicated_fd = 0; duplicated_fd < fds_to_close_bound * CHAR_BIT; duplicated_fd++) if ((fds_to_close[duplicated_fd / CHAR_BIT] >> (duplicated_fd % CHAR_BIT)) & 1) close (duplicated_fd); errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (oldfd, result); # endif return result; } #endif /* W32 */ /* Forward declarations, because we '#undef fcntl' in the middle of this compilation unit. */ /* Our implementation of fcntl (fd, F_DUPFD, target). */ static int rpl_fcntl_DUPFD (int fd, int target); /* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */ static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target); #ifdef __KLIBC__ /* Adds support for fcntl on directories. */ static int klibc_fcntl (int fd, int action, /* arg */...); #endif /* Perform the specified ACTION on the file descriptor FD, possibly using the argument ARG further described below. This replacement handles the following actions, and forwards all others on to the native fcntl. An unrecognized ACTION returns -1 with errno set to EINVAL. F_DUPFD - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will be inheritable; otherwise return -1 and set errno. F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will not be inheritable; otherwise return -1 and set errno. F_GETFD - ARG need not be present. If successful, return a non-negative value containing the descriptor flags of FD (only FD_CLOEXEC is portable, but other flags may be present); otherwise return -1 and set errno. */ int fcntl (int fd, int action, /* arg */...) #undef fcntl #ifdef __KLIBC__ # define fcntl klibc_fcntl #endif { va_list arg; int result = -1; va_start (arg, action); switch (action) { case F_DUPFD: { int target = va_arg (arg, int); result = rpl_fcntl_DUPFD (fd, target); break; } case F_DUPFD_CLOEXEC: { int target = va_arg (arg, int); result = rpl_fcntl_DUPFD_CLOEXEC (fd, target); break; } #if !HAVE_FCNTL case F_GETFD: { # if defined _WIN32 && ! defined __CYGWIN__ HANDLE handle = (HANDLE) _get_osfhandle (fd); DWORD flags; if (handle == INVALID_HANDLE_VALUE || GetHandleInformation (handle, &flags) == 0) errno = EBADF; else result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; # else /* !W32 */ /* Use dup2 to reject invalid file descriptors. No way to access this information, so punt. */ if (0 <= dup2 (fd, fd)) result = 0; # endif /* !W32 */ break; } /* F_GETFD */ #endif /* !HAVE_FCNTL */ /* Implementing F_SETFD on mingw is not trivial - there is no API for changing the O_NOINHERIT bit on an fd, and merely changing the HANDLE_FLAG_INHERIT bit on the underlying handle can lead to odd state. It may be possible by duplicating the handle, using _open_osfhandle with the right flags, then using dup2 to move the duplicate onto the original, but that is not supported for now. */ default: { #if HAVE_FCNTL switch (action) { #ifdef F_BARRIERFSYNC /* macOS */ case F_BARRIERFSYNC: #endif #ifdef F_CHKCLEAN /* macOS */ case F_CHKCLEAN: #endif #ifdef F_CLOSEM /* NetBSD, HP-UX */ case F_CLOSEM: #endif #ifdef F_FLUSH_DATA /* macOS */ case F_FLUSH_DATA: #endif #ifdef F_FREEZE_FS /* macOS */ case F_FREEZE_FS: #endif #ifdef F_FULLFSYNC /* macOS */ case F_FULLFSYNC: #endif #ifdef F_GETCONFINED /* macOS */ case F_GETCONFINED: #endif #ifdef F_GETDEFAULTPROTLEVEL /* macOS */ case F_GETDEFAULTPROTLEVEL: #endif #ifdef F_GETFD /* POSIX */ case F_GETFD: #endif #ifdef F_GETFL /* POSIX */ case F_GETFL: #endif #ifdef F_GETLEASE /* Linux */ case F_GETLEASE: #endif #ifdef F_GETNOSIGPIPE /* macOS */ case F_GETNOSIGPIPE: #endif #ifdef F_GETOWN /* POSIX */ case F_GETOWN: #endif #ifdef F_GETPIPE_SZ /* Linux */ case F_GETPIPE_SZ: #endif #ifdef F_GETPROTECTIONCLASS /* macOS */ case F_GETPROTECTIONCLASS: #endif #ifdef F_GETPROTECTIONLEVEL /* macOS */ case F_GETPROTECTIONLEVEL: #endif #ifdef F_GET_SEALS /* Linux */ case F_GET_SEALS: #endif #ifdef F_GETSIG /* Linux */ case F_GETSIG: #endif #ifdef F_MAXFD /* NetBSD */ case F_MAXFD: #endif #ifdef F_RECYCLE /* macOS */ case F_RECYCLE: #endif #ifdef F_SETFIFOENH /* HP-UX */ case F_SETFIFOENH: #endif #ifdef F_THAW_FS /* macOS */ case F_THAW_FS: #endif /* These actions take no argument. */ result = fcntl (fd, action); break; #ifdef F_ADD_SEALS /* Linux */ case F_ADD_SEALS: #endif #ifdef F_BADFD /* Solaris */ case F_BADFD: #endif #ifdef F_CHECK_OPENEVT /* macOS */ case F_CHECK_OPENEVT: #endif #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */ case F_DUP2FD: #endif #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */ case F_DUP2FD_CLOEXEC: #endif #ifdef F_DUP2FD_CLOFORK /* Solaris */ case F_DUP2FD_CLOFORK: #endif #ifdef F_DUPFD /* POSIX */ case F_DUPFD: #endif #ifdef F_DUPFD_CLOEXEC /* POSIX */ case F_DUPFD_CLOEXEC: #endif #ifdef F_DUPFD_CLOFORK /* Solaris */ case F_DUPFD_CLOFORK: #endif #ifdef F_GETXFL /* Solaris */ case F_GETXFL: #endif #ifdef F_GLOBAL_NOCACHE /* macOS */ case F_GLOBAL_NOCACHE: #endif #ifdef F_MAKECOMPRESSED /* macOS */ case F_MAKECOMPRESSED: #endif #ifdef F_MOVEDATAEXTENTS /* macOS */ case F_MOVEDATAEXTENTS: #endif #ifdef F_NOCACHE /* macOS */ case F_NOCACHE: #endif #ifdef F_NODIRECT /* macOS */ case F_NODIRECT: #endif #ifdef F_NOTIFY /* Linux */ case F_NOTIFY: #endif #ifdef F_OPLKACK /* IRIX */ case F_OPLKACK: #endif #ifdef F_OPLKREG /* IRIX */ case F_OPLKREG: #endif #ifdef F_RDAHEAD /* macOS */ case F_RDAHEAD: #endif #ifdef F_SETBACKINGSTORE /* macOS */ case F_SETBACKINGSTORE: #endif #ifdef F_SETCONFINED /* macOS */ case F_SETCONFINED: #endif #ifdef F_SETFD /* POSIX */ case F_SETFD: #endif #ifdef F_SETFL /* POSIX */ case F_SETFL: #endif #ifdef F_SETLEASE /* Linux */ case F_SETLEASE: #endif #ifdef F_SETNOSIGPIPE /* macOS */ case F_SETNOSIGPIPE: #endif #ifdef F_SETOWN /* POSIX */ case F_SETOWN: #endif #ifdef F_SETPIPE_SZ /* Linux */ case F_SETPIPE_SZ: #endif #ifdef F_SETPROTECTIONCLASS /* macOS */ case F_SETPROTECTIONCLASS: #endif #ifdef F_SETSIG /* Linux */ case F_SETSIG: #endif #ifdef F_SINGLE_WRITER /* macOS */ case F_SINGLE_WRITER: #endif /* These actions take an 'int' argument. */ { int x = va_arg (arg, int); result = fcntl (fd, action, x); } break; default: /* Other actions take a pointer argument. */ { void *p = va_arg (arg, void *); result = fcntl (fd, action, p); } break; } #else errno = EINVAL; #endif break; } } va_end (arg); return result; } static int rpl_fcntl_DUPFD (int fd, int target) { int result; #if !HAVE_FCNTL result = dupfd (fd, target, 0); #elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR /* Detect invalid target; needed for cygwin 1.5.x. */ if (target < 0 || getdtablesize () <= target) { result = -1; errno = EINVAL; } else { /* Haiku alpha 2 loses fd flags on original. */ int flags = fcntl (fd, F_GETFD); if (flags < 0) result = -1; else { result = fcntl (fd, F_DUPFD, target); if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) { int saved_errno = errno; close (result); result = -1; errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } } #else result = fcntl (fd, F_DUPFD, target); #endif return result; } static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target) { int result; #if !HAVE_FCNTL result = dupfd (fd, target, O_CLOEXEC); #else /* HAVE_FCNTL */ # if defined __NetBSD__ || defined __HAIKU__ /* On NetBSD 9.0, the system fcntl (fd, F_DUPFD_CLOEXEC, target) has only the same effect as fcntl (fd, F_DUPFD, target). */ /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets the FD_CLOEXEC flag on fd, not on target. Therefore avoid the system fcntl in this case. */ # define have_dupfd_cloexec -1 # else /* Try the system call first, if the headers claim it exists (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we may be running with a glibc that has the macro but with an older kernel that does not support it. Cache the information on whether the system call really works, but avoid caching failure if the corresponding F_DUPFD fails for any reason. 0 = unknown, 1 = yes, -1 = no. */ static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; if (0 <= have_dupfd_cloexec) { result = fcntl (fd, F_DUPFD_CLOEXEC, target); if (0 <= result || errno != EINVAL) { have_dupfd_cloexec = 1; # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } else { result = rpl_fcntl_DUPFD (fd, target); if (result >= 0) have_dupfd_cloexec = -1; } } else # endif result = rpl_fcntl_DUPFD (fd, target); if (0 <= result && have_dupfd_cloexec == -1) { int flags = fcntl (result, F_GETFD); if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) { int saved_errno = errno; close (result); errno = saved_errno; result = -1; } } #endif /* HAVE_FCNTL */ return result; } #undef fcntl #ifdef __KLIBC__ static int klibc_fcntl (int fd, int action, /* arg */...) { va_list arg_ptr; int arg; struct stat sbuf; int result; va_start (arg_ptr, action); arg = va_arg (arg_ptr, int); result = fcntl (fd, action, arg); /* EPERM for F_DUPFD, ENOTSUP for others */ if (result == -1 && (errno == EPERM || errno == ENOTSUP) && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { ULONG ulMode; switch (action) { case F_DUPFD: /* Find available fd */ while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) arg++; result = dup2 (fd, arg); break; /* Using underlying APIs is right ? */ case F_GETFD: if (DosQueryFHState (fd, &ulMode)) break; result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; break; case F_SETFD: if (arg & ~FD_CLOEXEC) break; if (DosQueryFHState (fd, &ulMode)) break; if (arg & FD_CLOEXEC) ulMode |= OPEN_FLAGS_NOINHERIT; else ulMode &= ~OPEN_FLAGS_NOINHERIT; /* Filter supported flags. */ ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); if (DosSetFHState (fd, ulMode)) break; result = 0; break; case F_GETFL: result = 0; break; case F_SETFL: if (arg != 0) break; result = 0; break; default: errno = EINVAL; break; } } va_end (arg_ptr); return result; } #endif ���������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stddef.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000012034�14076273520�012234� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. Copyright (C) 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake. */ /* * POSIX 2008 <stddef.h> for platforms that have issues. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html> */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of <stddef.h> that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by <stddef.h>. Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On TinyCC, make sure that the macros that indicate the special invocation convention get undefined. */ # undef __need_wchar_t # undef __need_size_t # undef __need_ptrdiff_t # undef __need_NULL # undef __need_wint_t # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* On AIX 7.2, with xlc in 64-bit mode, <stddef.h> defines max_align_t to a type with alignment 4, but 'long' has alignment 8. */ # if defined _AIX && defined __LP64__ # if !GNULIB_defined_max_align_t # ifdef _MAX_ALIGN_T /* /usr/include/stddef.h has already defined max_align_t. Override it. */ typedef long rpl_max_align_t; # define max_align_t rpl_max_align_t # else /* Prevent /usr/include/stddef.h from defining max_align_t. */ typedef long max_align_t; # define _MAX_ALIGN_T # endif # define GNULIB_defined_max_align_t 1 # endif # endif /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ # if (@REPLACE_NULL@ \ && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif # endif # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif /* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is a hack in case the configure-time test was done with g++ even though we are currently compiling with gcc. On MSVC, max_align_t is defined only in C++ mode, after <cstddef> was included. Its definition is good since it has an alignment of 8 (on x86 and x86_64). Similarly on OS/2 kLIBC. */ #if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ && defined __cplusplus # include <cstddef> #else # if ! (@HAVE_MAX_ALIGN_T@ || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) # if !GNULIB_defined_max_align_t /* On the x86, the maximum storage alignment of double, long, etc. is 4, but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, and the C11 standard allows this. Work around this problem by using __alignof__ (which returns 8 for double) rather than _Alignof (which returns 4), and align each union member accordingly. */ # if defined __GNUC__ || (__clang_major__ >= 4) # define _GL_STDDEF_ALIGNAS(type) \ __attribute__ ((__aligned__ (__alignof__ (type)))) # else # define _GL_STDDEF_ALIGNAS(type) /* */ # endif typedef union { char *__p _GL_STDDEF_ALIGNAS (char *); double __d _GL_STDDEF_ALIGNAS (double); long double __ld _GL_STDDEF_ALIGNAS (long double); long int __i _GL_STDDEF_ALIGNAS (long int); } rpl_max_align_t; # define max_align_t rpl_max_align_t # define GNULIB_defined_max_align_t 1 # endif # endif #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/msvc-inval.c�������������������������������������������������������������������������0000644�0000000�0000000�00000007553�14076273520�012442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* Get _invalid_parameter_handler type and _set_invalid_parameter_handler declaration. */ # include <stdlib.h> # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { } # else /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> # if defined _MSC_VER static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # else /* An index to thread-local storage. */ static DWORD tls_index; static int tls_initialized /* = 0 */; /* Used as a fallback only. */ static struct gl_msvc_inval_per_thread not_per_thread; struct gl_msvc_inval_per_thread * gl_msvc_inval_current (void) { if (!tls_initialized) { tls_index = TlsAlloc (); tls_initialized = 1; } if (tls_index == TLS_OUT_OF_INDEXES) /* TlsAlloc had failed. */ return ¬_per_thread; else { struct gl_msvc_inval_per_thread *pointer = (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); if (pointer == NULL) { /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ pointer = (struct gl_msvc_inval_per_thread *) malloc (sizeof (struct gl_msvc_inval_per_thread)); if (pointer == NULL) /* Could not allocate memory. Use the global storage. */ pointer = ¬_per_thread; TlsSetValue (tls_index, pointer); } return pointer; } } static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); if (current->restart_valid) longjmp (current->restart, 1); else /* An invalid parameter notification from outside the gnulib code. Give the caller a chance to intervene. */ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # endif # endif static int gl_msvc_inval_initialized /* = 0 */; void gl_msvc_inval_ensure_handler (void) { if (gl_msvc_inval_initialized == 0) { _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); gl_msvc_inval_initialized = 1; } } #endif �����������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stdarg.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000002224�14076273520�012247� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <stdarg.h>. Copyright (C) 2008-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_STDARG_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDARG_H@ #ifndef _@GUARD_PREFIX@_STDARG_H #define _@GUARD_PREFIX@_STDARG_H #ifndef va_copy # define va_copy(a,b) ((a) = (b)) #endif #endif /* _@GUARD_PREFIX@_STDARG_H */ #endif /* _@GUARD_PREFIX@_STDARG_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/dup2.c�������������������������������������������������������������������������������0000644�0000000�0000000�00000007742�14076273520�011235� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* written by Paul Eggert */ #include <config.h> /* Specification. */ #include <unistd.h> #include <errno.h> #include <fcntl.h> #undef dup2 #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int dup2_nothrow (int fd, int desired_fd) { int result; TRY_MSVC_INVAL { result = _dup2 (fd, desired_fd); } CATCH_MSVC_INVAL { errno = EBADF; result = -1; } DONE_MSVC_INVAL; return result; } # else # define dup2_nothrow _dup2 # endif static int ms_windows_dup2 (int fd, int desired_fd) { int result; /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, dup2 (fd, fd) returns 0, but all further attempts to use fd in future dup2 calls will hang. */ if (fd == desired_fd) { if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return fd; } /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: https://bugs.winehq.org/show_bug.cgi?id=21289 */ if (desired_fd < 0) { errno = EBADF; return -1; } result = dup2_nothrow (fd, desired_fd); if (result == 0) result = desired_fd; return result; } # define dup2 ms_windows_dup2 #elif defined __KLIBC__ # include <InnoTekLIBC/backend.h> static int klibc_dup2dirfd (int fd, int desired_fd) { int tempfd; int dupfd; tempfd = open ("NUL", O_RDONLY); if (tempfd == -1) return -1; if (tempfd == desired_fd) { close (tempfd); char path[_MAX_PATH]; if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) return -1; return open(path, O_RDONLY); } dupfd = klibc_dup2dirfd (fd, desired_fd); close (tempfd); return dupfd; } static int klibc_dup2 (int fd, int desired_fd) { int dupfd; struct stat sbuf; dupfd = dup2 (fd, desired_fd); if (dupfd == -1 && errno == ENOTSUP \ && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { close (desired_fd); return klibc_dup2dirfd (fd, desired_fd); } return dupfd; } # define dup2 klibc_dup2 #endif int rpl_dup2 (int fd, int desired_fd) { int result; #ifdef F_GETFL /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. On Cygwin 1.5.x, dup2 (1, 1) returns 0. On Cygwin 1.7.17, dup2 (1, -1) dumps core. On Cygwin 1.7.25, dup2 (1, 256) can dump core. On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ # if HAVE_SETDTABLESIZE setdtablesize (desired_fd + 1); # endif if (desired_fd < 0) fd = desired_fd; if (fd == desired_fd) return fcntl (fd, F_GETFL) == -1 ? -1 : fd; #endif result = dup2 (fd, desired_fd); /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ if (result == -1 && errno == EMFILE) errno = EBADF; #if REPLACE_FCHDIR if (fd != desired_fd && result != -1) result = _gl_register_dup (fd, result); #endif return result; } ������������������������������libidn-1.38/gl/progname.h���������������������������������������������������������������������������0000644�0000000�0000000�00000003740�14076273520�012172� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Program name management. Copyright (C) 2001-2004, 2006, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. 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 3 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, see <https://www.gnu.org/licenses/>. */ #ifndef _PROGNAME_H #define _PROGNAME_H /* Programs using this file should do the following in main(): set_program_name (argv[0]); */ #ifdef __cplusplus extern "C" { #endif /* String containing name the program is called with. */ extern const char *program_name; /* Set program_name, based on argv[0]. argv0 must be a string allocated with indefinite extent, and must not be modified after this call. */ extern void set_program_name (const char *argv0); #if ENABLE_RELOCATABLE /* Set program_name, based on argv[0], and original installation prefix and directory, for relocatability. */ extern void set_program_name_and_installdir (const char *argv0, const char *orig_installprefix, const char *orig_installdir); #undef set_program_name #define set_program_name(ARG0) \ set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR) /* Return the full pathname of the current executable, based on the earlier call to set_program_name_and_installdir. Return NULL if unknown. */ extern char *get_full_program_name (void); #endif #ifdef __cplusplus } #endif #endif /* _PROGNAME_H */ ��������������������������������libidn-1.38/gl/progname.c���������������������������������������������������������������������������0000644�0000000�0000000�00000006151�14076273520�012164� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Program name management. Copyright (C) 2001-2003, 2005-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. 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 3 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, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */ #include "progname.h" #include <errno.h> /* get program_invocation_name declaration */ #include <stdio.h> #include <stdlib.h> #include <string.h> /* String containing name the program is called with. To be initialized by main(). */ const char *program_name = NULL; /* Set program_name, based on argv[0]. argv0 must be a string allocated with indefinite extent, and must not be modified after this call. */ void set_program_name (const char *argv0) { /* libtool creates a temporary executable whose name is sometimes prefixed with "lt-" (depends on the platform). It also makes argv[0] absolute. But the name of the temporary executable is a detail that should not be visible to the end user and to the test suite. Remove this "<dirname>/.libs/" or "<dirname>/.libs/lt-" prefix here. */ const char *slash; const char *base; /* Sanity check. POSIX requires the invoking process to pass a non-NULL argv[0]. */ if (argv0 == NULL) { /* It's a bug in the invoking program. Help diagnosing it. */ fputs ("A NULL argv[0] was passed through an exec system call.\n", stderr); abort (); } slash = strrchr (argv0, '/'); base = (slash != NULL ? slash + 1 : argv0); if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0) { argv0 = base; if (strncmp (base, "lt-", 3) == 0) { argv0 = base + 3; /* On glibc systems, remove the "lt-" prefix from the variable program_invocation_short_name. */ #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME program_invocation_short_name = (char *) argv0; #endif } } /* But don't strip off a leading <dirname>/ in general, because when the user runs /some/hidden/place/bin/cp foo foo he should get the error message /some/hidden/place/bin/cp: `foo' and `foo' are the same file not cp: `foo' and `foo' are the same file */ program_name = argv0; /* On glibc systems, the error() function comes from libc and uses the variable program_invocation_name, not program_name. So set this variable as well. */ #if HAVE_DECL_PROGRAM_INVOCATION_NAME program_invocation_name = (char *) argv0; #endif } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000057111�14076273520�011660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Getopt for GNU. Copyright (C) 1987-2021 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> #endif #include "getopt.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #ifdef _LIBC /* When used as part of glibc, error printing must be done differently for standards compliance. getopt is not a cancellation point, so it must not call functions that are, and it is specified by an older standard than stdio locking, so it must not refer to functions in the "user namespace" related to stdio locking. Finally, it must use glibc's internal message translation so that the messages are looked up in the proper text domain. */ # include <libintl.h> # define fprintf __fxprintf_nocancel # define flockfile(fp) _IO_flockfile (fp) # define funlockfile(fp) _IO_funlockfile (fp) #else # include "gettext.h" # define _(msgid) gettext (msgid) /* When used standalone, flockfile and funlockfile might not be available. */ # if (!defined _POSIX_THREAD_SAFE_FUNCTIONS \ || (defined _WIN32 && ! defined __CYGWIN__)) # define flockfile(fp) /* nop */ # define funlockfile(fp) /* nop */ # endif /* When used standalone, do not attempt to use alloca. */ # define __libc_use_alloca(size) 0 # undef alloca # define alloca(size) (abort (), (void *)0) #endif /* This implementation of 'getopt' has three modes for handling options interspersed with non-option arguments. It can stop scanning for options at the first non-option argument encountered, as POSIX specifies. It can continue scanning for options after the first non-option argument, but permute 'argv' as it goes so that, after 'getopt' is done, all the options precede all the non-option arguments and 'optind' points to the first non-option argument. Or, it can report non-option arguments as if they were arguments to the option character '\x01'. The default behavior of 'getopt_long' is to permute the argument list. When this implementation is used standalone, the default behavior of 'getopt' is to stop at the first non-option argument, but when it is used as part of GNU libc it also permutes the argument list. In both cases, setting the environment variable POSIXLY_CORRECT to any value disables permutation. If the first character of the OPTSTRING argument to 'getopt' or 'getopt_long' is '+', both functions will stop at the first non-option argument. If it is '-', both functions will report non-option arguments as arguments to the option character '\x01'. */ #include "getopt_int.h" /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Keep a global copy of all internal members of getopt_data. */ static struct _getopt_data getopt_data; /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. 'first_nonopt' and 'last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ static void exchange (char **argv, struct _getopt_data *d) { int bottom = d->__first_nonopt; int middle = d->__last_nonopt; int top = d->optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ d->__first_nonopt += (d->optind - d->__last_nonopt); d->__last_nonopt = d->optind; } /* Process the argument starting with d->__nextchar as a long option. d->optind should *not* have been advanced over this argument. If the value returned is -1, it was not actually a long option, the state is unchanged, and the argument should be processed as a set of short options (this can only happen when long_only is true). Otherwise, the option (and its argument, if any) have been consumed and the return value is the value to return from _getopt_internal_r. */ static int process_long_option (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, struct _getopt_data *d, int print_errors, const char *prefix) { char *nameend; size_t namelen; const struct option *p; const struct option *pfound = NULL; int n_options; int option_index; for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; namelen = nameend - d->__nextchar; /* First look for an exact match, counting the options as a side effect. */ for (p = longopts, n_options = 0; p->name; p++, n_options++) if (!strncmp (p->name, d->__nextchar, namelen) && namelen == strlen (p->name)) { /* Exact match found. */ pfound = p; option_index = n_options; break; } if (pfound == NULL) { /* Didn't find an exact match, so look for abbreviations. */ unsigned char *ambig_set = NULL; int ambig_malloced = 0; int ambig_fallback = 0; int indfound = -1; for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, d->__nextchar, namelen)) { if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) { /* Second or later nonexact match found. */ if (!ambig_fallback) { if (!print_errors) /* Don't waste effort tracking the ambig set if we're not going to print it anyway. */ ambig_fallback = 1; else if (!ambig_set) { if (__libc_use_alloca (n_options)) ambig_set = alloca (n_options); else if ((ambig_set = malloc (n_options)) == NULL) /* Fall back to simpler error message. */ ambig_fallback = 1; else ambig_malloced = 1; if (ambig_set) { memset (ambig_set, 0, n_options); ambig_set[indfound] = 1; } } if (ambig_set) ambig_set[option_index] = 1; } } } if (ambig_set || ambig_fallback) { if (print_errors) { if (ambig_fallback) fprintf (stderr, _("%s: option '%s%s' is ambiguous\n"), argv[0], prefix, d->__nextchar); else { flockfile (stderr); fprintf (stderr, _("%s: option '%s%s' is ambiguous; possibilities:"), argv[0], prefix, d->__nextchar); for (option_index = 0; option_index < n_options; option_index++) if (ambig_set[option_index]) fprintf (stderr, " '%s%s'", prefix, longopts[option_index].name); /* This must use 'fprintf' even though it's only printing a single character, so that it goes through __fxprintf_nocancel when compiled as part of glibc. */ fprintf (stderr, "\n"); funlockfile (stderr); } } if (ambig_malloced) free (ambig_set); d->__nextchar += strlen (d->__nextchar); d->optind++; d->optopt = 0; return '?'; } option_index = indfound; } if (pfound == NULL) { /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. */ if (!long_only || argv[d->optind][1] == '-' || strchr (optstring, *d->__nextchar) == NULL) { if (print_errors) fprintf (stderr, _("%s: unrecognized option '%s%s'\n"), argv[0], prefix, d->__nextchar); d->__nextchar = NULL; d->optind++; d->optopt = 0; return '?'; } /* Otherwise interpret it as a short option. */ return -1; } /* We have found a matching long option. Consume it. */ d->optind++; d->__nextchar = NULL; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) d->optarg = nameend + 1; else { if (print_errors) fprintf (stderr, _("%s: option '%s%s' doesn't allow an argument\n"), argv[0], prefix, pfound->name); d->optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (d->optind < argc) d->optarg = argv[d->optind++]; else { if (print_errors) fprintf (stderr, _("%s: option '%s%s' requires an argument\n"), argv[0], prefix, pfound->name); d->optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Initialize internal data upon the first call to getopt. */ static const char * _getopt_initialize (int argc _GL_UNUSED, char **argv _GL_UNUSED, const char *optstring, struct _getopt_data *d, int posixly_correct) { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ if (d->optind == 0) d->optind = 1; d->__first_nonopt = d->__last_nonopt = d->optind; d->__nextchar = NULL; /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { d->__ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { d->__ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct || !!getenv ("POSIXLY_CORRECT")) d->__ordering = REQUIRE_ORDER; else d->__ordering = PERMUTE; d->__initialized = 1; return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If 'getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If 'getopt' finds another option character, it returns that character, updating 'optind' and 'nextchar' so that the next call to 'getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, 'getopt' returns -1. Then 'optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set 'opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in 'optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in 'optarg', otherwise 'optarg' is set to zero. If OPTSTRING starts with '-' or '+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with '--' instead of '-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a '=', or else the in next ARGV-element. When 'getopt' finds a long-named option, it returns 0 if that option's 'flag' field is nonzero, the value of the option's 'val' field if the 'flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of 'struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal_r (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, struct _getopt_data *d, int posixly_correct) { int print_errors = d->opterr; if (argc < 1) return -1; d->optarg = NULL; if (d->optind == 0 || !d->__initialized) optstring = _getopt_initialize (argc, argv, optstring, d, posixly_correct); else if (optstring[0] == '-' || optstring[0] == '+') optstring++; if (optstring[0] == ':') print_errors = 0; /* Test whether ARGV[optind] points to a non-option argument. */ #define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') if (d->__nextchar == NULL || *d->__nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (d->__last_nonopt > d->optind) d->__last_nonopt = d->optind; if (d->__first_nonopt > d->optind) d->__first_nonopt = d->optind; if (d->__ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) exchange (argv, d); else if (d->__last_nonopt != d->optind) d->__first_nonopt = d->optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (d->optind < argc && NONOPTION_P) d->optind++; d->__last_nonopt = d->optind; } /* The special ARGV-element '--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (d->optind != argc && !strcmp (argv[d->optind], "--")) { d->optind++; if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) exchange (argv, d); else if (d->__first_nonopt == d->__last_nonopt) d->__first_nonopt = d->optind; d->__last_nonopt = argc; d->optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (d->optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (d->__first_nonopt != d->__last_nonopt) d->optind = d->__first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (d->__ordering == REQUIRE_ORDER) return -1; d->optarg = argv[d->optind++]; return 1; } /* We have found another option-ARGV-element. Check whether it might be a long option. */ if (longopts) { if (argv[d->optind][1] == '-') { /* "--foo" is always a long option. The special option "--" was handled above. */ d->__nextchar = argv[d->optind] + 2; return process_long_option (argc, argv, optstring, longopts, longind, long_only, d, print_errors, "--"); } /* If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (long_only && (argv[d->optind][2] || !strchr (optstring, argv[d->optind][1]))) { int code; d->__nextchar = argv[d->optind] + 1; code = process_long_option (argc, argv, optstring, longopts, longind, long_only, d, print_errors, "-"); if (code != -1) return code; } } /* It is not a long option. Skip the initial punctuation. */ d->__nextchar = argv[d->optind] + 1; } /* Look at and handle the next short option-character. */ { char c = *d->__nextchar++; const char *temp = strchr (optstring, c); /* Increment 'optind' when we start to process its last character. */ if (*d->__nextchar == '\0') ++d->optind; if (temp == NULL || c == ':' || c == ';') { if (print_errors) fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); d->optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';' && longopts != NULL) { /* This is an option that requires an argument. */ if (*d->__nextchar != '\0') d->optarg = d->__nextchar; else if (d->optind == argc) { if (print_errors) fprintf (stderr, _("%s: option requires an argument -- '%c'\n"), argv[0], c); d->optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else d->optarg = argv[d->optind]; d->__nextchar = d->optarg; d->optarg = NULL; return process_long_option (argc, argv, optstring, longopts, longind, 0 /* long_only */, d, print_errors, "-W "); } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; d->optind++; } else d->optarg = NULL; d->__nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ d->optind++; } else if (d->optind == argc) { if (print_errors) fprintf (stderr, _("%s: option requires an argument -- '%c'\n"), argv[0], c); d->optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented 'optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; d->__nextchar = NULL; } } return c; } } int _getopt_internal (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, int posixly_correct) { int result; getopt_data.optind = optind; getopt_data.opterr = opterr; result = _getopt_internal_r (argc, argv, optstring, longopts, longind, long_only, &getopt_data, posixly_correct); optind = getopt_data.optind; optarg = getopt_data.optarg; optopt = getopt_data.optopt; return result; } /* glibc gets a LSB-compliant getopt and a POSIX-complaint __posix_getopt. Standalone applications just get a POSIX-compliant getopt. POSIX and LSB both require these functions to take 'char *const *argv' even though this is incorrect (because of the permutation). */ #define GETOPT_ENTRY(NAME, POSIXLY_CORRECT) \ int \ NAME (int argc, char *const *argv, const char *optstring) \ { \ return _getopt_internal (argc, (char **)argv, optstring, \ 0, 0, 0, POSIXLY_CORRECT); \ } #ifdef _LIBC GETOPT_ENTRY(getopt, 0) GETOPT_ENTRY(__posix_getopt, 1) #else GETOPT_ENTRY(getopt, 1) #endif #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of 'getopt'. */ int main (int argc, char **argv) { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value '%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stat.c�������������������������������������������������������������������������������0000644�0000000�0000000�00000032765�14076273520�011341� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Work around platform bugs in stat. Copyright (C) 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake and Bruno Haible. */ /* If the user's config.h happens to include <sys/stat.h>, let it include only the system's <sys/stat.h> here, so that orig_stat doesn't recurse to rpl_stat. */ #define __need_system_sys_stat_h #include <config.h> /* Get the original definition of stat. It might be defined as a macro. */ #include <sys/types.h> #include <sys/stat.h> #undef __need_system_sys_stat_h #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #if !defined WINDOWS_NATIVE static int orig_stat (const char *filename, struct stat *buf) { return stat (filename, buf); } #endif /* Specification. */ #ifdef __osf__ /* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <sys/stat.h> above. */ # include "sys/stat.h" #else # include <sys/stat.h> #endif #include "stat-time.h" #include <errno.h> #include <limits.h> #include <stdbool.h> #include <string.h> #include "filename.h" #include "malloca.h" #include "verify.h" #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include <windows.h> # include "stat-w32.h" /* Don't assume that UNICODE is not defined. */ # undef WIN32_FIND_DATA # define WIN32_FIND_DATA WIN32_FIND_DATAA # undef CreateFile # define CreateFile CreateFileA # undef FindFirstFile # define FindFirstFile FindFirstFileA #endif #ifdef WINDOWS_NATIVE /* Return TRUE if the given file name denotes an UNC root. */ static BOOL is_unc_root (const char *rname) { /* Test whether it has the syntax '\\server\share'. */ if (ISSLASH (rname[0]) && ISSLASH (rname[1])) { /* It starts with two slashes. Find the next slash. */ const char *p = rname + 2; const char *q = p; while (*q != '\0' && !ISSLASH (*q)) q++; if (q > p && *q != '\0') { /* Found the next slash at q. */ q++; const char *r = q; while (*r != '\0' && !ISSLASH (*r)) r++; if (r > q && *r == '\0') return TRUE; } } return FALSE; } #endif /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But at least this implementation provides the ability to emulate fchdir correctly. */ int rpl_stat (char const *name, struct stat *buf) { #ifdef WINDOWS_NATIVE /* Fill the fields ourselves, because the original stat function returns values for st_atime, st_mtime, st_ctime that depend on the current time zone. See <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html> */ /* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work around length limitations <https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file> ? */ /* POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13> specifies: "More than two leading <slash> characters shall be treated as a single <slash> character." */ if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2])) { name += 2; while (ISSLASH (name[1])) name++; } size_t len = strlen (name); size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0); /* Remove trailing slashes (except the very first one, at position drive_prefix_len), but remember their presence. */ size_t rlen; bool check_dir = false; rlen = len; while (rlen > drive_prefix_len && ISSLASH (name[rlen-1])) { check_dir = true; if (rlen == drive_prefix_len + 1) break; rlen--; } /* Handle '' and 'C:'. */ if (!check_dir && rlen == drive_prefix_len) { errno = ENOENT; return -1; } /* Handle '\\'. */ if (rlen == 1 && ISSLASH (name[0]) && len >= 2) { errno = ENOENT; return -1; } const char *rname; char *malloca_rname; if (rlen == len) { rname = name; malloca_rname = NULL; } else { malloca_rname = malloca (rlen + 1); if (malloca_rname == NULL) { errno = ENOMEM; return -1; } memcpy (malloca_rname, name, rlen); malloca_rname[rlen] = '\0'; rname = malloca_rname; } /* There are two ways to get at the requested information: - by scanning the parent directory and examining the relevant directory entry, - by opening the file directly. The first approach fails for root directories (e.g. 'C:\') and UNC root directories (e.g. '\\server\share'). The second approach fails for some system files (e.g. 'C:\pagefile.sys' and 'C:\hiberfil.sys'): ERROR_SHARING_VIOLATION. The second approach gives more information (in particular, correct st_dev, st_ino, st_nlink fields). So we use the second approach and, as a fallback except for root and UNC root directories, also the first approach. */ { int ret; { /* Approach based on the file. */ /* Open a handle to the file. CreateFile <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea> <https://docs.microsoft.com/en-us/windows/desktop/FileIO/creating-and-opening-files> */ HANDLE h = CreateFile (rname, FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only in case as different) makes sense only when applied to *all* filesystem operations. */ FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */, NULL); if (h != INVALID_HANDLE_VALUE) { ret = _gl_fstat_by_handle (h, rname, buf); CloseHandle (h); goto done; } } /* Test for root and UNC root directories. */ if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) || is_unc_root (rname)) goto failed; /* Fallback. */ { /* Approach based on the directory entry. */ if (strchr (rname, '?') != NULL || strchr (rname, '*') != NULL) { /* Other Windows API functions would fail with error ERROR_INVALID_NAME. */ if (malloca_rname != NULL) freea (malloca_rname); errno = ENOENT; return -1; } /* Get the details about the directory entry. This can be done through FindFirstFile <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea> <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-_win32_find_dataa> or through FindFirstFileEx with argument FindExInfoBasic <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-findfirstfileexa> <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ne-minwinbase-findex_info_levels> <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-_win32_find_dataa> */ WIN32_FIND_DATA info; HANDLE h = FindFirstFile (rname, &info); if (h == INVALID_HANDLE_VALUE) goto failed; /* Test for error conditions before starting to fill *buf. */ if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) { FindClose (h); if (malloca_rname != NULL) freea (malloca_rname); errno = EOVERFLOW; return -1; } # if _GL_WINDOWS_STAT_INODES buf->st_dev = 0; # if _GL_WINDOWS_STAT_INODES == 2 buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; # else /* _GL_WINDOWS_STAT_INODES == 1 */ buf->st_ino = 0; # endif # else /* st_ino is not wide enough for identifying a file on a device. Without st_ino, st_dev is pointless. */ buf->st_dev = 0; buf->st_ino = 0; # endif /* st_mode. */ unsigned int mode = /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) | S_IREAD_UGO | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { /* Determine whether the file is executable by looking at the file name suffix. */ if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) { const char *last_dot = NULL; const char *p; for (p = info.cFileName; *p != '\0'; p++) if (*p == '.') last_dot = p; if (last_dot != NULL) { const char *suffix = last_dot + 1; if (_stricmp (suffix, "exe") == 0 || _stricmp (suffix, "bat") == 0 || _stricmp (suffix, "cmd") == 0 || _stricmp (suffix, "com") == 0) mode |= S_IEXEC_UGO; } } } buf->st_mode = mode; /* st_nlink. Ignore hard links here. */ buf->st_nlink = 1; /* There's no easy way to map the Windows SID concept to an integer. */ buf->st_uid = 0; buf->st_gid = 0; /* st_rdev is irrelevant for normal files and directories. */ buf->st_rdev = 0; /* st_size. */ if (sizeof (buf->st_size) <= 4) /* Range check already done above. */ buf->st_size = info.nFileSizeLow; else buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; /* st_atime, st_mtime, st_ctime. */ # if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); # else buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); # endif FindClose (h); ret = 0; } done: if (ret >= 0 && check_dir && !S_ISDIR (buf->st_mode)) { errno = ENOTDIR; ret = -1; } if (malloca_rname != NULL) { int saved_errno = errno; freea (malloca_rname); errno = saved_errno; } return ret; } failed: { DWORD error = GetLastError (); #if 0 fprintf (stderr, "rpl_stat error 0x%x\n", (unsigned int) error); #endif if (malloca_rname != NULL) freea (malloca_rname); switch (error) { /* Some of these errors probably cannot happen with the specific flags that we pass to CreateFile. But who knows... */ case ERROR_FILE_NOT_FOUND: /* The last component of rname does not exist. */ case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not exist. */ case ERROR_BAD_PATHNAME: /* rname is such as '\\server'. */ case ERROR_BAD_NET_NAME: /* rname is such as '\\server\nonexistentshare'. */ case ERROR_INVALID_NAME: /* rname contains wildcards, misplaced colon, etc. */ case ERROR_DIRECTORY: errno = ENOENT; break; case ERROR_ACCESS_DENIED: /* rname is such as 'C:\System Volume Information\foo'. */ case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys' (second approach only). */ /* XXX map to EACCES or EPERM? */ errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_WRITE_PROTECT: errno = EROFS; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; case ERROR_BUFFER_OVERFLOW: case ERROR_FILENAME_EXCED_RANGE: errno = ENAMETOOLONG; break; case ERROR_DELETE_PENDING: /* XXX map to EACCES or EPERM? */ errno = EPERM; break; default: errno = EINVAL; break; } return -1; } #else int result = orig_stat (name, buf); if (result == 0) { # if REPLACE_FUNC_STAT_FILE /* Solaris 9 mistakenly succeeds when given a non-directory with a trailing slash. */ if (!S_ISDIR (buf->st_mode)) { size_t len = strlen (name); if (ISSLASH (name[len - 1])) { errno = ENOTDIR; return -1; } } # endif /* REPLACE_FUNC_STAT_FILE */ result = stat_time_normalize (result, buf); } return result; #endif } �����������libidn-1.38/gl/stdio.in.h���������������������������������������������������������������������������0000644�0000000�0000000�00000165060�14076273520�012115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <stdio.h>. Copyright (C) 2004, 2007-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H /* Special invocation convention: - Inside glibc header files. - On OSF/1 5.1 we have a sequence of nested includes <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> -> <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>. In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #undef _GL_ALREADY_INCLUDING_STDIO_H #ifndef _@GUARD_PREFIX@_STDIO_H #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include <stdarg.h> #include <stddef.h> /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 and eglibc 2.11.2. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #ifndef _GL_ATTRIBUTE_FORMAT # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) # else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ # endif #endif /* An __attribute__ __format__ specifier for a function that takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ /* __gnu_printf__ is supported in GCC >= 4.4. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ #else # define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ #endif /* An __attribute__ __format__ specifier for a function that takes a format string and arguments, where the format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ /* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates whether this change is effective. On older mingw, it is not. */ #if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU # define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD #else # define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, except that it indicates to GCC that the supported format string directives are the ones of the system scanf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) /* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ && ! defined __GLIBC__ # include <unistd.h> #endif /* Android 4.3 declares renameat in <sys/stat.h>, not in <stdio.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ && ! defined __GLIBC__ # include <sys/stat.h> #endif /* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>. We must include it before we #define perror rpl_perror. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <stdlib.h> #endif /* MSVC declares 'remove' in <io.h>, not in <stdio.h>. We must include it before we #define remove rpl_remove. */ /* MSVC declares 'rename' in <io.h>, not in <stdio.h>. We must include it before we #define rename rpl_rename. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <io.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Macros for stringification. */ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>. Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && defined __GNUC__ && defined __STDC__) # undef putc_unlocked #endif #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); # endif _GL_CXXALIASWARN (dprintf); #elif defined GNULIB_POSIXCHECK # undef dprintf # if HAVE_RAW_DECL_DPRINTF _GL_WARN_ON_USE (dprintf, "dprintf is unportable - " "use gnulib module dprintf for portability"); # endif #endif #if @GNULIB_FCLOSE@ /* Close STREAM and its underlying file descriptor. */ # if @REPLACE_FCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fclose rpl_fclose # endif _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fclose); # endif #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif #if @GNULIB_MDA_FCLOSEALL@ /* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcloseall # define fcloseall _fcloseall # endif _GL_CXXALIAS_MDA (fcloseall, int, (void)); # else # if @HAVE_DECL_FCLOSEALL@ # if defined __FreeBSD__ || defined __DragonFly__ _GL_CXXALIAS_SYS (fcloseall, void, (void)); # else _GL_CXXALIAS_SYS (fcloseall, int, (void)); # endif # endif # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCLOSEALL@ _GL_CXXALIASWARN (fcloseall); # endif #endif #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen _fdopen # endif _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #elif defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); #elif @GNULIB_MDA_FDOPEN@ /* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fdopen always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen _fdopen # endif _GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #endif #if @GNULIB_FFLUSH@ /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. Note! LOSS OF DATA can occur if fflush is applied on an input stream that is _not_seekable_ or on an update stream that is _not_seekable_ and in which the most recent operation was input. Seekability can be tested with lseek(fileno(fp),0,SEEK_CUR). */ # if @REPLACE_FFLUSH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fflush rpl_fflush # endif _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fflush); # endif #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " "use gnulib module fflush for portable POSIX compliance"); #endif #if @GNULIB_FGETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgetc # define fgetc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fgetc); # endif #endif #if @GNULIB_FGETS@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgets # define fgets rpl_fgets # endif _GL_FUNCDECL_RPL (fgets, char *, (char *restrict s, int n, FILE *restrict stream) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (fgets, char *, (char *restrict s, int n, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fgets, char *, (char *restrict s, int n, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fgets); # endif #endif #if @GNULIB_MDA_FILENO@ /* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::fileno always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fileno # define fileno _fileno # endif _GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); # endif _GL_CXXALIASWARN (fileno); #endif #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif _GL_FUNCDECL_RPL (fopen, FILE *, (const char *restrict filename, const char *restrict mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *restrict filename, const char *restrict mode)); # else _GL_CXXALIAS_SYS (fopen, FILE *, (const char *restrict filename, const char *restrict mode)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fopen); # endif #elif defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (fprintf, int, (FILE *restrict fp, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *restrict fp, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *restrict fp, const char *restrict format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *restrict fp, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fprintf); # endif #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf # undef fprintf # endif /* Assume fprintf is always declared. */ _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " "use gnulib module fprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_FPURGE@ /* Discard all pending buffered I/O data on STREAM. STREAM must not be wide-character oriented. When discarding pending output, the file position is set back to where it was before the write calls. When discarding pending input, the file position is advanced to match the end of the previously read input. Return 0 if successful. Upon error, return -1 and set errno. */ # if @REPLACE_FPURGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fpurge rpl_fpurge # endif _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); # else # if !@HAVE_DECL_FPURGE@ _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fpurge); #elif defined GNULIB_POSIXCHECK # undef fpurge # if HAVE_RAW_DECL_FPURGE _GL_WARN_ON_USE (fpurge, "fpurge is not always present - " "use gnulib module fpurge for portability"); # endif #endif #if @GNULIB_FPUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fputc); # endif #endif #if @GNULIB_FPUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs # endif _GL_FUNCDECL_RPL (fputs, int, (const char *restrict string, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fputs, int, (const char *restrict string, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fputs, int, (const char *restrict string, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fputs); # endif #endif #if @GNULIB_FREAD@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fread # define fread rpl_fread # endif _GL_FUNCDECL_RPL (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fread); # endif #endif #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freopen # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (freopen); # endif #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif #if @GNULIB_FSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fscanf # define fscanf rpl_fscanf # endif _GL_FUNCDECL_RPL (fscanf, int, (FILE *restrict stream, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fscanf, int, (FILE *restrict stream, const char *restrict format, ...)); # else _GL_CXXALIAS_SYS (fscanf, int, (FILE *restrict stream, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fscanf); # endif #endif /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes an arbitrary limitation on some 32-bit hosts. Remember that the fseek module depends on the fseeko module, so we only have three cases to consider: 1. The developer is not using either module. Issue a warning under GNULIB_POSIXCHECK for both functions, to remind them that both functions have bugs on some systems. _GL_NO_LARGE_FILES has no impact on this warning. 2. The developer is using both modules. They may be unaware of the arbitrary limitations of fseek, so issue a warning under GNULIB_POSIXCHECK. On the other hand, they may be using both modules intentionally, so the developer can define _GL_NO_LARGE_FILES in the compilation units where the use of fseek is safe, to silence the warning. 3. The developer is using the fseeko module, but not fseek. Gnulib guarantees that fseek will still work around platform bugs in that case, but we presume that the developer is aware of the pitfalls of fseek and was trying to avoid it, so issue a warning even when GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be defined to silence the warning in particular compilation units. In C++ compilations with GNULIB_NAMESPACE, in order to avoid that fseek gets defined as a macro, it is recommended that the developer uses the fseek module, even if he is not calling the fseek function. Most gnulib clients that perform stream operations should fall into category 3. */ #if @GNULIB_FSEEK@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 2, above. */ # undef fseek # endif # if @REPLACE_FSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseek # define fseek rpl_fseek # endif _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fseek); # endif #endif #if @GNULIB_FSEEKO@ # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 3, above. */ # undef fseek # endif # if @REPLACE_FSEEKO@ /* Provide an fseeko function that is aware of a preceding fflush(), and which detects pipes. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseeko # define fseeko rpl_fseeko # endif _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); # else # if ! @HAVE_DECL_FSEEKO@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek # undef fseeko # if HAVE_RAW_DECL_FSEEKO _GL_WARN_ON_USE (fseeko, "fseeko is unportable - " "use gnulib module fseeko for portability"); # endif #endif #ifdef _GL_FSEEK_WARN # undef _GL_FSEEK_WARN /* Here, either fseek is undefined (but C89 guarantees that it is declared), or it is defined as rpl_fseek (declared above). */ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " "on 32-bit platforms - " "use fseeko function for handling of large files"); #endif /* ftell, ftello. See the comments on fseek/fseeko. */ #if @GNULIB_FTELL@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 2, above. */ # undef ftell # endif # if @REPLACE_FTELL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftell # define ftell rpl_ftell # endif _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ftell); # endif #endif #if @GNULIB_FTELLO@ # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 3, above. */ # undef ftell # endif # if @REPLACE_FTELLO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftello # define ftello rpl_ftello # endif _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell # undef ftello # if HAVE_RAW_DECL_FTELLO _GL_WARN_ON_USE (ftello, "ftello is unportable - " "use gnulib module ftello for portability"); # endif #endif #ifdef _GL_FTELL_WARN # undef _GL_FTELL_WARN /* Here, either ftell is undefined (but C89 guarantees that it is declared), or it is defined as rpl_ftell (declared above). */ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " "on 32-bit platforms - " "use ftello function for handling of large files"); #endif #if @GNULIB_FWRITE@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, (const void *restrict ptr, size_t s, size_t n, FILE *restrict stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, (const void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>, which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) # undef fwrite # undef fwrite_unlocked extern size_t __REDIRECT (rpl_fwrite, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite); extern size_t __REDIRECT (rpl_fwrite_unlocked, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite_unlocked); # define fwrite rpl_fwrite # define fwrite_unlocked rpl_fwrite_unlocked # endif # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fwrite); # endif #endif #if @GNULIB_GETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getc # define getc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getc); # endif #endif #if @GNULIB_GETCHAR@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getchar # define getchar rpl_getchar # endif _GL_FUNCDECL_RPL (getchar, int, (void)); _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getchar); # endif #endif #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETDELIM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdelim # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream)); # endif _GL_CXXALIASWARN (getdelim); #elif defined GNULIB_POSIXCHECK # undef getdelim # if HAVE_RAW_DECL_GETDELIM _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " "use gnulib module getdelim for portability"); # endif #endif #if @GNULIB_GETLINE@ /* Read a line, up to (and including) the next newline, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETLINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getline # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream)); # endif # if @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); # endif #elif defined GNULIB_POSIXCHECK # undef getline # if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is unportable - " "use gnulib module getline for portability"); # endif #endif /* It is very rare that the developer ever has full control of stdin, so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets #if HAVE_RAW_DECL_GETS && !defined __cplusplus _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif #if @GNULIB_MDA_GETW@ /* On native Windows, map 'getw' to '_getw', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getw always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getw # define getw _getw # endif _GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); # else _GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); # endif _GL_CXXALIASWARN (getw); #endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of bytes added to OBS. No trailing nul byte is added, and the object should be closed with obstack_finish before use. Upon memory allocation error, call obstack_alloc_failed_handler. Upon other error, return -1. */ # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_printf rpl_obstack_printf # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # endif _GL_CXXALIASWARN (obstack_printf); # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_vprintf rpl_obstack_vprintf # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # endif _GL_CXXALIASWARN (obstack_vprintf); #endif #if @GNULIB_PCLOSE@ # if !@HAVE_PCLOSE@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); _GL_CXXALIASWARN (pclose); #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE _GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif #if @GNULIB_PERROR@ /* Print a message to standard error, describing the value of ERRNO, (if STRING is not NULL and not empty) prefixed with STRING and ": ", and terminated with a newline. */ # if @REPLACE_PERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define perror rpl_perror # endif _GL_FUNCDECL_RPL (perror, void, (const char *string)); _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (perror); # endif #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " "use gnulib module perror for portability"); #endif #if @GNULIB_POPEN@ # if @REPLACE_POPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef popen # define popen rpl_popen # endif _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); #elif defined GNULIB_POSIXCHECK # undef popen # if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ || defined __clang__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *restrict format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *restrict format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, (const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); # endif # define GNULIB_overrides_printf 1 # else _GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (printf); # endif #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf # undef printf # endif /* Assume printf is always declared. */ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " "use gnulib module printf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_PUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (putc); # endif #endif #if @GNULIB_PUTCHAR@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar # endif _GL_FUNCDECL_RPL (putchar, int, (int c)); _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (putchar); # endif #endif #if @GNULIB_PUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts # endif _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (puts); # endif #endif #if @GNULIB_MDA_PUTW@ /* On native Windows, map 'putw' to '_putw', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::putw always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putw # define putw _putw # endif _GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); # else _GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); # endif _GL_CXXALIASWARN (putw); #endif #if @GNULIB_REMOVE@ # if @REPLACE_REMOVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remove # define remove rpl_remove # endif _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (remove); # endif #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " "use gnulib module remove for more portability"); #endif #if @GNULIB_RENAME@ # if @REPLACE_RENAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rename # define rename rpl_rename # endif _GL_FUNCDECL_RPL (rename, int, (const char *old_filename, const char *new_filename) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (rename, int, (const char *old_filename, const char *new_filename)); # else _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (rename); # endif #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " "use gnulib module rename for more portability"); #endif #if @GNULIB_RENAMEAT@ # if @REPLACE_RENAMEAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef renameat # define renameat rpl_renameat # endif _GL_FUNCDECL_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # else # if !@HAVE_RENAMEAT@ _GL_FUNCDECL_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # endif _GL_CXXALIASWARN (renameat); #elif defined GNULIB_POSIXCHECK # undef renameat # if HAVE_RAW_DECL_RENAMEAT _GL_WARN_ON_USE (renameat, "renameat is not portable - " "use gnulib module renameat for portability"); # endif #endif #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if defined __GNUC__ || defined __clang__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, (const char *restrict format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif _GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); # endif # else _GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (scanf); # endif #endif #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif # define GNULIB_overrides_snprintf 1 _GL_FUNCDECL_RPL (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, (char *restrict str, size_t size, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (snprintf); # endif #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " "use gnulib module snprintf for portability"); # endif #endif /* Some people would argue that all sprintf uses should be warned about (for example, OpenBSD issues a link warning for it), since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header intentionally avoids adding a warning to sprintf except when GNULIB_POSIXCHECK is defined. */ #if @GNULIB_SPRINTF_POSIX@ # if @REPLACE_SPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif # define GNULIB_overrides_sprintf 1 _GL_FUNCDECL_RPL (sprintf, int, (char *restrict str, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *restrict str, const char *restrict format, ...)); # else _GL_CXXALIAS_SYS (sprintf, int, (char *restrict str, const char *restrict format, ...)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (sprintf); # endif #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "use gnulib module sprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_MDA_TEMPNAM@ /* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::tempnam always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tempnam # define tempnam _tempnam # endif _GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); # else _GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); # endif _GL_CXXALIASWARN (tempnam); #endif #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (tmpfile); # endif #elif defined GNULIB_POSIXCHECK # undef tmpfile # if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); # endif #endif #if @GNULIB_VASPRINTF@ /* Write formatted output to a string dynamically allocated with malloc(). If the memory allocation succeeds, store the address of the string in *RESULT and return the number of resulting bytes, excluding the trailing NUL. Upon memory allocation error, or some other error, return -1. */ # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif # define GNULIB_overrides_asprintf _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, (char **result, const char *format, ...)); # endif _GL_CXXALIASWARN (asprintf); # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif # define GNULIB_overrides_vasprintf 1 _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, (char **result, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vasprintf); #endif #if @GNULIB_VDPRINTF@ # if @REPLACE_VDPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *restrict format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, (int fd, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vdprintf); # endif #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " "use gnulib module vdprintf for portability"); # endif #endif #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, (FILE *restrict fp, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vfprintf); # endif #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf # undef vfprintf # endif /* Assume vfprintf is always declared. */ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " "use gnulib module vfprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VFSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vfscanf # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vfscanf); # endif #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vprintf); # endif #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf # undef vprintf # endif /* Assume vprintf is always declared. */ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " "use gnulib module vprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vscanf # define vscanf rpl_vscanf # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vscanf); # endif #endif #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif # define GNULIB_overrides_vsnprintf 1 _GL_FUNCDECL_RPL (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, (char *restrict str, size_t size, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vsnprintf); # endif #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " "use gnulib module vsnprintf for portability"); # endif #endif #if @GNULIB_VSPRINTF_POSIX@ # if @REPLACE_VSPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif # define GNULIB_overrides_vsprintf 1 _GL_FUNCDECL_RPL (vsprintf, int, (char *restrict str, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *restrict str, const char *restrict format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, (char *restrict str, const char *restrict format, va_list args)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (vsprintf); # endif #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " "use gnulib module vsprintf-posix for portable " "POSIX compliance"); #endif #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/basename-lgpl.c����������������������������������������������������������������������0000644�0000000�0000000�00000003465�14076273520�013070� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* basename.c -- return the last element in a file name Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "basename-lgpl.h" #include <stdbool.h> #include <string.h> #include "filename.h" char * last_component (char const *name) { char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); char const *p; bool last_was_slash = false; while (ISSLASH (*base)) base++; for (p = base; *p; p++) { if (ISSLASH (*p)) last_was_slash = true; else if (last_was_slash) { base = p; last_was_slash = false; } } return (char *) base; } size_t base_len (char const *name) { size_t len; size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) return 2; if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len && len == prefix_len && ISSLASH (name[prefix_len])) return prefix_len + 1; return len; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/cloexec.h����������������������������������������������������������������������������0000644�0000000�0000000�00000002755�14076273520�012011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* cloexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 2004, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <stdbool.h> /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value); /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd); �������������������libidn-1.38/gl/stdint.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000054754�14076273520�012307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2001-2002, 2004-2021 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* * ISO C 99 <stdint.h> for platforms that lack it. * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html> */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes <inttypes.h>, use the system <inttypes.h>, not our substitute. This avoids problems with (for example) VMS, whose <sys/bitypes.h> includes <inttypes.h>. */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), <sys/types.h> includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's <stdint.h>. Ideally we should test __BIONIC__ here, but it is only defined after <sys/cdefs.h> has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 <stdint.h> implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy <stdint.h>. Include it before <inttypes.h>, since any "#include <stdint.h>" in <inttypes.h> would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ #include <limits.h> /* Override WINT_MIN and WINT_MAX if gnulib's <wchar.h> or <wctype.h> overrides wint_t. */ #if @GNULIBHEADERS_OVERRIDE_WINT_T@ # undef WINT_MIN # undef WINT_MAX # define WINT_MIN 0x0U # define WINT_MAX 0xffffffffU #endif #if ! @HAVE_C99_STDINT_H@ /* <sys/types.h> defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). AIX 5.2 <sys/types.h> isn't needed and causes troubles. Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but relies on the system <stdint.h> definitions, so include <sys/types.h> after @NEXT_STDINT_H@. */ # if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include <sys/types.h> # endif # if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. <inttypes.h> also defines intptr_t and uintptr_t. */ # include <inttypes.h> # elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include <sys/inttypes.h> # endif # if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by <sys/types.h>. */ # include <sys/bitypes.h> # endif # undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ /* These are separate macros, because if you try to merge these macros into a single one, HP-UX cc rejects the resulting expression in constant expressions. */ # define _STDINT_UNSIGNED_MIN(bits, zero) \ (zero) # define _STDINT_SIGNED_MIN(bits, zero) \ (~ _STDINT_MAX (1, bits, zero)) # define _STDINT_MAX(signed, bits, zero) \ (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef int8_t # undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; # define int8_t gl_int8_t # define uint8_t gl_uint8_t # undef int16_t # undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; # define int16_t gl_int16_t # define uint16_t gl_uint16_t # undef int32_t # undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; # define int32_t gl_int32_t # define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ # ifdef INT64_MAX # define GL_INT64_T # else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # else # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif # endif # ifdef UINT64_MAX # define GL_UINT64_T # else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # else # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif # endif /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ # define _UINT8_T # define _UINT32_T # define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef int_least8_t # undef uint_least8_t # undef int_least16_t # undef uint_least16_t # undef int_least32_t # undef uint_least32_t # undef int_least64_t # undef uint_least64_t # define int_least8_t int8_t # define uint_least8_t uint8_t # define int_least16_t int16_t # define uint_least16_t uint16_t # define int_least32_t int32_t # define uint_least32_t uint32_t # ifdef GL_INT64_T # define int_least64_t int64_t # endif # ifdef GL_UINT64_T # define uint_least64_t uint64_t # endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other <stdint.h> substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ # undef int_fast8_t # undef uint_fast8_t # undef int_fast16_t # undef uint_fast16_t # undef int_fast32_t # undef uint_fast32_t # undef int_fast64_t # undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; # ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; # else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; # endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; # define int_fast8_t gl_int_fast8_t # define uint_fast8_t gl_uint_fast8_t # define int_fast16_t gl_int_fast16_t # define uint_fast16_t gl_uint_fast16_t # define int_fast32_t gl_int_fast32_t # define uint_fast32_t gl_uint_fast32_t # ifdef GL_INT64_T # define int_fast64_t int64_t # endif # ifdef GL_UINT64_T # define uint_fast64_t uint64_t # endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* kLIBC's <stdint.h> defines _INTPTR_T_DECLARED and needs its own definitions of intptr_t and uintptr_t (which use int and unsigned) to avoid clashes with declarations of system functions like sbrk. Similarly, MinGW WSL-5.4.1 <stdint.h> needs its own intptr_t and uintptr_t to avoid conflicting declarations of system functions like _findclose in <io.h>. */ # if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ || defined __MINGW32__) # undef intptr_t # undef uintptr_t # ifdef _WIN64 typedef long long int gl_intptr_t; typedef unsigned long long int gl_uintptr_t; # else typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; # endif # define intptr_t gl_intptr_t # define uintptr_t gl_uintptr_t # endif /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ # ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif # endif # ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif # endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; # define GNULIB_defined_stdint_types 1 # endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef INT8_MIN # undef INT8_MAX # undef UINT8_MAX # define INT8_MIN (~ INT8_MAX) # define INT8_MAX 127 # define UINT8_MAX 255 # undef INT16_MIN # undef INT16_MAX # undef UINT16_MAX # define INT16_MIN (~ INT16_MAX) # define INT16_MAX 32767 # define UINT16_MAX 65535 # undef INT32_MIN # undef INT32_MAX # undef UINT32_MAX # define INT32_MIN (~ INT32_MAX) # define INT32_MAX 2147483647 # define UINT32_MAX 4294967295U # if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) # endif # if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) # endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef INT_LEAST8_MIN # undef INT_LEAST8_MAX # undef UINT_LEAST8_MAX # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST8_MAX INT8_MAX # define UINT_LEAST8_MAX UINT8_MAX # undef INT_LEAST16_MIN # undef INT_LEAST16_MAX # undef UINT_LEAST16_MAX # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST16_MAX INT16_MAX # define UINT_LEAST16_MAX UINT16_MAX # undef INT_LEAST32_MIN # undef INT_LEAST32_MAX # undef UINT_LEAST32_MAX # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST32_MAX INT32_MAX # define UINT_LEAST32_MAX UINT32_MAX # undef INT_LEAST64_MIN # undef INT_LEAST64_MAX # ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX # endif # undef UINT_LEAST64_MAX # ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX # endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ # undef INT_FAST8_MIN # undef INT_FAST8_MAX # undef UINT_FAST8_MAX # define INT_FAST8_MIN SCHAR_MIN # define INT_FAST8_MAX SCHAR_MAX # define UINT_FAST8_MAX UCHAR_MAX # undef INT_FAST16_MIN # undef INT_FAST16_MAX # undef UINT_FAST16_MAX # define INT_FAST16_MIN INT_FAST32_MIN # define INT_FAST16_MAX INT_FAST32_MAX # define UINT_FAST16_MAX UINT_FAST32_MAX # undef INT_FAST32_MIN # undef INT_FAST32_MAX # undef UINT_FAST32_MAX # ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX # else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX # endif # undef INT_FAST64_MIN # undef INT_FAST64_MAX # ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX # endif # undef UINT_FAST64_MAX # ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX # endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ # undef INTPTR_MIN # undef INTPTR_MAX # undef UINTPTR_MAX # ifdef _WIN64 # define INTPTR_MIN LLONG_MIN # define INTPTR_MAX LLONG_MAX # define UINTPTR_MAX ULLONG_MAX # else # define INTPTR_MIN LONG_MIN # define INTPTR_MAX LONG_MAX # define UINTPTR_MAX ULONG_MAX # endif /* 7.18.2.5. Limits of greatest-width integer types */ # ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif # endif # ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif # endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ # undef PTRDIFF_MIN # undef PTRDIFF_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif # else # define PTRDIFF_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # endif /* sig_atomic_t limits */ # undef SIG_ATOMIC_MIN # undef SIG_ATOMIC_MAX # if @HAVE_SIGNED_SIG_ATOMIC_T@ # define SIG_ATOMIC_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # else # define SIG_ATOMIC_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # endif # define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ # undef SIZE_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif # else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) # endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes <stdint.h> and assumes its types are already defined. */ # if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include <wchar.h> # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # endif # undef WCHAR_MIN # undef WCHAR_MAX # if @HAVE_SIGNED_WCHAR_T@ # define WCHAR_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # else # define WCHAR_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # endif # define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ /* If gnulib's <wchar.h> or <wctype.h> overrides wint_t, @WINT_T_SUFFIX@ is not accurate, therefore use the definitions from above. */ # if !@GNULIBHEADERS_OVERRIDE_WINT_T@ # undef WINT_MIN # undef WINT_MAX # if @HAVE_SIGNED_WINT_T@ # define WINT_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # else # define WINT_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif # define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ # undef INT8_C # undef UINT8_C # define INT8_C(x) x # define UINT8_C(x) x # undef INT16_C # undef UINT16_C # define INT16_C(x) x # define UINT16_C(x) x # undef INT32_C # undef UINT32_C # define INT32_C(x) x # define UINT32_C(x) x ## U # undef INT64_C # undef UINT64_C # if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L # elif defined _MSC_VER # define INT64_C(x) x##i64 # else # define INT64_C(x) x##LL # endif # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL # elif defined _MSC_VER # define UINT64_C(x) x##ui64 # else # define UINT64_C(x) x##ULL # endif /* 7.18.4.2. Macros for greatest-width integer constants */ # ifndef INTMAX_C # if LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif # endif # ifndef UINTMAX_C # if ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif # endif #endif /* !@HAVE_C99_STDINT_H@ */ /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (!defined UINTMAX_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # ifdef INT8_MAX # define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) # endif # ifdef UINT8_MAX # define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) # endif # ifdef INT16_MAX # define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) # endif # ifdef UINT16_MAX # define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) # endif # ifdef INT32_MAX # define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) # endif # ifdef UINT32_MAX # define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) # endif # ifdef INT64_MAX # define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) # endif # ifdef UINT64_MAX # define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) # endif # define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) # define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) # define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) # define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) # define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) # define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) # define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) # define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) # define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) # define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) # define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) # define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) # define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) # define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) # define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) # define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) # define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) # define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) # define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) # define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) # define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) # define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) # define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) # ifdef WINT_MAX # define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) # endif # ifdef SIG_ATOMIC_MAX # define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) # endif #endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ ��������������������libidn-1.38/gl/verify.h�����������������������������������������������������������������������������0000644�0000000�0000000�00000030533�14076273520�011666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H #define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as per C2X. This is supported by GCC 9.1+. Support compilers claiming conformance to the relevant standard, and also support GCC when not pedantic. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ #ifndef __cplusplus # if (201112L <= __STDC_VERSION__ \ || (!defined __STRICT_ANSI__ \ && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 4 <= __clang_major__))) # define _GL_HAVE__STATIC_ASSERT 1 # endif # if (202000L <= __STDC_VERSION__ \ || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) # define _GL_HAVE__STATIC_ASSERT1 1 # endif #endif /* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ #ifndef _GL_HAVE__STATIC_ASSERT # include <stddef.h> # undef _Static_assert #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and 'verify' is used within a function body; but inside a function, you can always arrange to use verify_expr instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) #define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ #else # define _GL_COUNTER __LINE__ #endif /* Generate a symbol with the given prefix, making it unique if possible. */ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ #define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template <int w> struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } #else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time. This macro requires three or more arguments but uses at most the first two, so that the _Static_assert macro optionally defined below supports both the C11 two-argument syntax and the C2X one-argument syntax. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ #if 200410 <= __cpp_static_assert # define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) #else # define _GL_VERIFY(R, DIAGNOSTIC, ...) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H # if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert # define _Static_assert(...) \ _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) # endif # if __cpp_static_assert < 201411 && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ #if 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) # define _GL_HAS_BUILTIN_TRAP 1 #elif defined __has_builtin # define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) #else # define _GL_HAS_BUILTIN_TRAP 0 #endif #if 4 < __GNUC__ + (5 <= __GNUC_MINOR__) # define _GL_HAS_BUILTIN_UNREACHABLE 1 #elif defined __has_builtin # define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) #else # define _GL_HAS_BUILTIN_UNREACHABLE 0 #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_expr (R, E) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time. Return the value of the expression E. */ #define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. verify (R) acts like static_assert (R) except that it is portable to C11/C++14 and earlier, it can issue better diagnostics, and its name is shorter and may be more convenient. */ #ifdef __PGI /* PGI barfs if R is long. */ # define verify(R) _GL_VERIFY (R, "verify (...)", -) #else # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) #endif /* Assume that R always holds. Behavior is undefined if R is false, fails to evaluate, or has side effects. 'assume (R)' is a directive from the programmer telling the compiler that R is true so the compiler needn't generate code to test R. This is why 'assume' is in verify.h: it's related to static checking (in this case, static checking done by the programmer), not dynamic checking. 'assume (R)' can affect compilation of all the code, not just code that happens to be executed after the assume (R) is "executed". For example, if the code mistakenly does 'assert (R); assume (R);' the compiler is entitled to optimize away the 'assert (R)'. Although assuming R can help a compiler generate better code or diagnostics, performance can suffer if R uses hard-to-optimize features such as function calls not inlined by the compiler. Avoid Clang's __builtin_assume, as it breaks GNU Emacs master as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see <https://bugs.gnu.org/43152#71>. It's not known whether this breakage is a Clang bug or an Emacs bug; play it safe for now. */ #if _GL_HAS_BUILTIN_UNREACHABLE # define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) #elif 1200 <= _MSC_VER # define assume(R) __assume (R) #elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP /* Doing it this way helps various packages when configured with --enable-gcc-warnings, which compiles with -Dlint. It's nicer when 'assume' silences warnings even with older GCCs. */ # define assume(R) ((R) ? (void) 0 : __builtin_trap ()) #else /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */ # define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) #endif /* @assert.h omit end@ */ #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/strerror-override.h������������������������������������������������������������������0000644�0000000�0000000�00000004050�14076273520�014054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H # include <errno.h> # include <stddef.h> /* Reasonable buffer size that should never trigger ERANGE; if this proves too small, we intentionally abort(), to remind us to fix this value. */ # define STACKBUF_LEN 256 /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ # if REPLACE_STRERROR_0 \ || GNULIB_defined_ESOCK \ || GNULIB_defined_ESTREAMS \ || GNULIB_defined_EWINSOCK \ || GNULIB_defined_ENOMSG \ || GNULIB_defined_EIDRM \ || GNULIB_defined_ENOLINK \ || GNULIB_defined_EPROTO \ || GNULIB_defined_EMULTIHOP \ || GNULIB_defined_EBADMSG \ || GNULIB_defined_EOVERFLOW \ || GNULIB_defined_ENOTSUP \ || GNULIB_defined_ENETRESET \ || GNULIB_defined_ECONNABORTED \ || GNULIB_defined_ESTALE \ || GNULIB_defined_EDQUOT \ || GNULIB_defined_ECANCELED \ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; # else # define strerror_override(ignored) NULL # define GNULIB_defined_strerror_override_macro 1 # endif #endif /* _GL_STRERROR_OVERRIDE_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/sys_types.in.h�����������������������������������������������������������������������0000644�0000000�0000000�00000006171�14076273520�013032� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a more complete sys/types.h. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _WIN32 && !defined __CYGWIN__ \ && (defined __need_off_t || defined __need___off64_t \ || defined __need_ssize_t || defined __need_time_t) /* Special invocation convention inside mingw header files. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ # define _GL_INCLUDING_SYS_TYPES_H #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ # undef _GL_INCLUDING_SYS_TYPES_H #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in <stdint.h>. */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* Override dev_t and ino_t if distinguishable inodes support is requested on native Windows. */ #if @WINDOWS_STAT_INODES@ # if @WINDOWS_STAT_INODES@ == 2 /* Experimental, not useful in Windows 10. */ /* Define dev_t to a 64-bit type. */ # if !defined GNULIB_defined_dev_t typedef unsigned long long int rpl_dev_t; # undef dev_t # define dev_t rpl_dev_t # define GNULIB_defined_dev_t 1 # endif /* Define ino_t to a 128-bit type. */ # if !defined GNULIB_defined_ino_t /* MSVC does not have a 128-bit integer type. GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # else /* @WINDOWS_STAT_INODES@ == 1 */ /* Define ino_t to a 64-bit type. */ # if !defined GNULIB_defined_ino_t typedef unsigned long long int rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@ #endif /* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ # include <stddef.h> #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* __need_XXX */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stat-w32.c���������������������������������������������������������������������������0000644�0000000�0000000�00000044224�14076273520�011743� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Core of implementation of fstat and stat for native Windows. Copyright (C) 2017-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible. */ #include <config.h> #if defined _WIN32 && ! defined __CYGWIN__ /* Attempt to make <windows.h> define FILE_ID_INFO. But ensure that the redefinition of _WIN32_WINNT does not make us assume Windows Vista or newer when building for an older version of Windows. */ #if HAVE_SDKDDKVER_H # include <sdkddkver.h> # if _WIN32_WINNT >= _WIN32_WINNT_VISTA # define WIN32_ASSUME_VISTA 1 # else # define WIN32_ASSUME_VISTA 0 # endif # if !defined _WIN32_WINNT || (_WIN32_WINNT < _WIN32_WINNT_WIN8) # undef _WIN32_WINNT # define _WIN32_WINNT _WIN32_WINNT_WIN8 # endif #else # define WIN32_ASSUME_VISTA (_WIN32_WINNT >= _WIN32_WINNT_VISTA) #endif #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <limits.h> #include <string.h> #include <unistd.h> #include <windows.h> /* Specification. */ #include "stat-w32.h" #include "pathmax.h" #include "verify.h" /* Don't assume that UNICODE is not defined. */ #undef LoadLibrary #define LoadLibrary LoadLibraryA #undef GetFinalPathNameByHandle #define GetFinalPathNameByHandle GetFinalPathNameByHandleA /* Older mingw headers do not define VOLUME_NAME_NONE. */ #ifndef VOLUME_NAME_NONE # define VOLUME_NAME_NONE 4 #endif #if !WIN32_ASSUME_VISTA /* Avoid warnings from gcc -Wcast-function-type. */ # define GetProcAddress \ (void *) GetProcAddress # if _GL_WINDOWS_STAT_INODES == 2 /* GetFileInformationByHandleEx was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, FILE_INFO_BY_HANDLE_CLASS fiClass, LPVOID lpBuffer, DWORD dwBufferSize); static GetFileInformationByHandleExFuncType GetFileInformationByHandleExFunc = NULL; # endif /* GetFinalPathNameByHandle was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFinalPathNameByHandleFuncType) (HANDLE hFile, LPSTR lpFilePath, DWORD lenFilePath, DWORD dwFlags); static GetFinalPathNameByHandleFuncType GetFinalPathNameByHandleFunc = NULL; static BOOL initialized = FALSE; static void initialize (void) { HMODULE kernel32 = LoadLibrary ("kernel32.dll"); if (kernel32 != NULL) { # if _GL_WINDOWS_STAT_INODES == 2 GetFileInformationByHandleExFunc = (GetFileInformationByHandleExFuncType) GetProcAddress (kernel32, "GetFileInformationByHandleEx"); # endif GetFinalPathNameByHandleFunc = (GetFinalPathNameByHandleFuncType) GetProcAddress (kernel32, "GetFinalPathNameByHandleA"); } initialized = TRUE; } #else # define GetFileInformationByHandleExFunc GetFileInformationByHandleEx # define GetFinalPathNameByHandleFunc GetFinalPathNameByHandle #endif /* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ #if _GL_WINDOWS_STAT_TIMESPEC struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft) { struct timespec result; /* FILETIME: <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime> */ unsigned long long since_1601 = ((unsigned long long) ft->dwHighDateTime << 32) | (unsigned long long) ft->dwLowDateTime; if (since_1601 == 0) { result.tv_sec = 0; result.tv_nsec = 0; } else { /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ unsigned long long since_1970 = since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; result.tv_sec = since_1970 / (unsigned long long) 10000000; result.tv_nsec = (unsigned long) (since_1970 % (unsigned long long) 10000000) * 100; } return result; } #else time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft) { /* FILETIME: <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime> */ unsigned long long since_1601 = ((unsigned long long) ft->dwHighDateTime << 32) | (unsigned long long) ft->dwLowDateTime; if (since_1601 == 0) return 0; else { /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ unsigned long long since_1970 = since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; return since_1970 / (unsigned long long) 10000000; } } #endif /* Fill *BUF with information about the file designated by H. PATH is the file name, if known, otherwise NULL. Return 0 if successful, or -1 with errno set upon failure. */ int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) { /* GetFileType <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfiletype> */ DWORD type = GetFileType (h); if (type == FILE_TYPE_DISK) { #if !WIN32_ASSUME_VISTA if (!initialized) initialize (); #endif /* st_mode can be determined through GetFileAttributesEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesexa> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_win32_file_attribute_data> or through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileBasicInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_basic_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ BY_HANDLE_FILE_INFORMATION info; if (! GetFileInformationByHandle (h, &info)) goto failed; /* Test for error conditions before starting to fill *buf. */ if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) { errno = EOVERFLOW; return -1; } #if _GL_WINDOWS_STAT_INODES /* st_ino can be determined through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> as 64 bits, or through GetFileInformationByHandleEx with argument FileIdInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_id_info> as 128 bits. The latter requires -D_WIN32_WINNT=_WIN32_WINNT_WIN8 or higher. */ /* Experiments show that GetFileInformationByHandleEx does not provide much more information than GetFileInformationByHandle: * The dwVolumeSerialNumber from GetFileInformationByHandle is equal to the low 32 bits of the 64-bit VolumeSerialNumber from GetFileInformationByHandleEx, and is apparently sufficient for identifying the device. * The nFileIndex from GetFileInformationByHandle is equal to the low 64 bits of the 128-bit FileId from GetFileInformationByHandleEx, and the high 64 bits of this 128-bit FileId are zero. * On a FAT file system, GetFileInformationByHandleEx fails with error ERROR_INVALID_PARAMETER, whereas GetFileInformationByHandle succeeds. * On a CIFS/SMB file system, GetFileInformationByHandleEx fails with error ERROR_INVALID_LEVEL, whereas GetFileInformationByHandle succeeds. */ # if _GL_WINDOWS_STAT_INODES == 2 if (GetFileInformationByHandleExFunc != NULL) { FILE_ID_INFO id; if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) { buf->st_dev = id.VolumeSerialNumber; verify (sizeof (ino_t) == sizeof (id.FileId)); memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); goto ino_done; } else { switch (GetLastError ()) { case ERROR_INVALID_PARAMETER: /* older Windows version, or FAT */ case ERROR_INVALID_LEVEL: /* CIFS/SMB file system */ goto fallback; default: goto failed; } } } fallback: ; /* Fallback for older Windows versions. */ buf->st_dev = info.dwVolumeSerialNumber; buf->st_ino._gl_ino[0] = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; buf->st_ino._gl_ino[1] = 0; ino_done: ; # else /* _GL_WINDOWS_STAT_INODES == 1 */ buf->st_dev = info.dwVolumeSerialNumber; buf->st_ino = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; # endif #else /* st_ino is not wide enough for identifying a file on a device. Without st_ino, st_dev is pointless. */ buf->st_dev = 0; buf->st_ino = 0; #endif /* st_mode. */ unsigned int mode = /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) | S_IREAD_UGO | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { /* Determine whether the file is executable by looking at the file name suffix. If the file name is already known, use it. Otherwise, for non-empty files, it can be determined through GetFinalPathNameByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfinalpathnamebyhandlea> or through GetFileInformationByHandleEx with argument FileNameInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_name_info> Both require -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) { char fpath[PATH_MAX]; if (path != NULL || (GetFinalPathNameByHandleFunc != NULL && GetFinalPathNameByHandleFunc (h, fpath, sizeof (fpath), VOLUME_NAME_NONE) < sizeof (fpath) && (path = fpath, 1))) { const char *last_dot = NULL; const char *p; for (p = path; *p != '\0'; p++) if (*p == '.') last_dot = p; if (last_dot != NULL) { const char *suffix = last_dot + 1; if (_stricmp (suffix, "exe") == 0 || _stricmp (suffix, "bat") == 0 || _stricmp (suffix, "cmd") == 0 || _stricmp (suffix, "com") == 0) mode |= S_IEXEC_UGO; } } else /* Cannot determine file name. Pretend that it is executable. */ mode |= S_IEXEC_UGO; } } buf->st_mode = mode; /* st_nlink can be determined through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileStandardInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_standard_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ buf->st_nlink = (info.nNumberOfLinks > SHRT_MAX ? SHRT_MAX : info.nNumberOfLinks); /* There's no easy way to map the Windows SID concept to an integer. */ buf->st_uid = 0; buf->st_gid = 0; /* st_rdev is irrelevant for normal files and directories. */ buf->st_rdev = 0; /* st_size can be determined through GetFileSizeEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfilesizeex> or through GetFileAttributesEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesexa> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_win32_file_attribute_data> or through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileStandardInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_standard_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ if (sizeof (buf->st_size) <= 4) /* Range check already done above. */ buf->st_size = info.nFileSizeLow; else buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; /* st_atime, st_mtime, st_ctime can be determined through GetFileTime <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfiletime> or through GetFileAttributesEx <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileattributesexa> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_win32_file_attribute_data> or through GetFileInformationByHandle <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfileinformationbyhandle> <https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/ns-fileapi-_by_handle_file_information> or through GetFileInformationByHandleEx with argument FileBasicInfo <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex> <https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_file_basic_info> The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ #if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); #else buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); #endif return 0; } else if (type == FILE_TYPE_CHAR || type == FILE_TYPE_PIPE) { buf->st_dev = 0; #if _GL_WINDOWS_STAT_INODES == 2 buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; #else buf->st_ino = 0; #endif buf->st_mode = (type == FILE_TYPE_PIPE ? _S_IFIFO : _S_IFCHR); buf->st_nlink = 1; buf->st_uid = 0; buf->st_gid = 0; buf->st_rdev = 0; if (type == FILE_TYPE_PIPE) { /* PeekNamedPipe <https://msdn.microsoft.com/en-us/library/aa365779.aspx> */ DWORD bytes_available; if (PeekNamedPipe (h, NULL, 0, NULL, &bytes_available, NULL)) buf->st_size = bytes_available; else buf->st_size = 0; } else buf->st_size = 0; #if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim.tv_sec = 0; buf->st_atim.tv_nsec = 0; buf->st_mtim.tv_sec = 0; buf->st_mtim.tv_nsec = 0; buf->st_ctim.tv_sec = 0; buf->st_ctim.tv_nsec = 0; #else buf->st_atime = 0; buf->st_mtime = 0; buf->st_ctime = 0; #endif return 0; } else { errno = ENOENT; return -1; } failed: { DWORD error = GetLastError (); #if 0 fprintf (stderr, "_gl_fstat_by_handle error 0x%x\n", (unsigned int) error); #endif switch (error) { case ERROR_ACCESS_DENIED: case ERROR_SHARING_VIOLATION: errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; default: errno = EINVAL; break; } return -1; } } #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/����������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274117�010610� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/ssize_t.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001463�14076273520�012453� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether ssize_t is defined. AC_DEFUN([gt_TYPE_SSIZE_T], [ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h>]], [[int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x;]])], [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) if test $gt_cv_ssize_t = no; then AC_DEFINE([ssize_t], [int], [Define as a signed type of the same size as size_t.]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/year2038.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000011151�14076273520�012243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# year2038.m4 serial 5 dnl Copyright (C) 2017-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Attempt to ensure that 'time_t' is a 64-bit type dnl and that the functions time(), stat(), etc. return 64-bit times. AC_DEFUN([gl_YEAR2038_EARLY], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1], [For 64-bit time_t on 32-bit mingw.]) ;; esac ]) # gl_YEAR2038_TEST_INCLUDES # ------------------------- AC_DEFUN([gl_YEAR2038_TEST_INCLUDES], [[ #include <time.h> /* Check that time_t can represent 2**63 - 1 correctly. We can't simply define LARGE_TIME_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31)) int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721 && LARGE_TIME_T % 2147483647 == 1) ? 1 : -1]; ]]) # gl_YEAR2038_BODY(REQUIRE-64-BIT) ---------------------------------- AC_DEFUN([gl_YEAR2038_BODY], [ AC_ARG_ENABLE([year2038], [ --disable-year2038 omit support for timestamps past the year 2038]) AS_IF([test "$enable_year2038" != no], [ dnl On many systems, time_t is already a 64-bit type. dnl On those systems where time_t is still 32-bit, it requires kernel dnl and libc support to make it 64-bit. For glibc 2.34 and later on Linux, dnl defining _TIME_BITS=64 and _FILE_OFFSET_BITS=64 is needed on x86 and ARM. dnl dnl On native Windows, the system include files define types __time32_t dnl and __time64_t. By default, time_t is an alias of dnl - __time32_t on 32-bit mingw, dnl - __time64_t on 64-bit mingw and on MSVC (since MSVC 8). dnl But when compiling with -D__MINGW_USE_VC2005_COMPAT, time_t is an dnl alias of __time64_t. dnl And when compiling with -D_USE_32BIT_TIME_T, time_t is an alias of dnl __time32_t. AC_CACHE_CHECK([for 64-bit time_t], [gl_cv_type_time_t_64], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE([gl_YEAR2038_TEST_INCLUDES])], [gl_cv_type_time_t_64=yes], [gl_cv_type_time_t_64=no]) ]) if test "$gl_cv_type_time_t_64" = no; then AC_CACHE_CHECK([for 64-bit time_t with _TIME_BITS=64], [gl_cv_type_time_t_bits_macro], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE([[#define _TIME_BITS 64 #define _FILE_OFFSET_BITS 64 ]gl_YEAR2038_TEST_INCLUDES])], [gl_cv_type_time_t_bits_macro=yes], [gl_cv_type_time_t_bits_macro=no]) ]) if test "$gl_cv_type_time_t_bits_macro" = yes; then AC_DEFINE([_TIME_BITS], [64], [Number of bits in a timestamp, on hosts where this is settable.]) dnl AC_SYS_LARGFILE also defines this; it's OK if we do too. AC_DEFINE([_FILE_OFFSET_BITS], [64], [Number of bits in a file offset, on hosts where this is settable.]) gl_cv_type_time_t_64=yes fi fi if test $gl_cv_type_time_t_64 = no; then AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _USE_32BIT_TIME_T int ok; #else error fail #endif ]])], [AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type. Remove _USE_32BIT_TIME_T from the compiler flags.])], [# If not cross-compiling and $1 says we should check, # and 'touch' works with a large timestamp, then evidently 64-bit time_t # is desired and supported, so fail and ask the builder to fix the # problem. Otherwise, just warn the builder. m4_ifval([$1], [if test $cross_compiling = no \ && TZ=UTC0 touch -t 210602070628.16 conftest.time 2>/dev/null; then rm -f conftest.time AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type, which your system appears to support. You might try configuring with 'CPPFLAGS="-m64" LDFLAGS="-m64"'. To build with a 32-bit time_t anyway (not recommended), configure with '--disable-year2038'.]) fi]) if test "$gl_warned_about_64_bit_time_t" != yes; then AC_MSG_WARN([This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS="-m64" LDFLAGS="-m64"'?]) gl_warned_about_64_bit_time_t=yes fi ]) fi]) ]) AC_DEFUN([gl_YEAR2038], [ gl_YEAR2038_BODY([require-64-bit]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/unistd_h.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000031335�14076273520�012611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# unistd_h.m4 serial 89 dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson, Bruno Haible. AC_DEFUN_ONCE([gl_UNISTD_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Determine WINDOWS_64_BIT_OFF_T. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_UNISTD_H # include <unistd.h> #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include <fcntl.h> # include <stdio.h> # include <stdlib.h> # if defined _WIN32 && ! defined __CYGWIN__ # include <io.h> # endif #endif ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess execl execle execlp execv execve execvp execvpe faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat truncate ttyname_r unlink unlinkat usleep]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS_ONCE([execvpe]) if test $ac_cv_have_decl_execvpe = no; then HAVE_DECL_EXECVPE=0 fi ]) # gl_UNISTD_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_UNISTD_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_EXECVPE=1; AC_SUBST([HAVE_EXECVPE]) HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) HAVE_GETENTROPY=1; AC_SUBST([HAVE_GETENTROPY]) HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_EXECVPE=1; AC_SUBST([HAVE_DECL_EXECVPE]) HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) REPLACE_ACCESS=0; AC_SUBST([REPLACE_ACCESS]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL]) REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE]) REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP]) REPLACE_EXECV=0; AC_SUBST([REPLACE_EXECV]) REPLACE_EXECVE=0; AC_SUBST([REPLACE_EXECVE]) REPLACE_EXECVP=0; AC_SUBST([REPLACE_EXECVP]) REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE]) REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) REPLACE_TRUNCATE=0; AC_SUBST([REPLACE_TRUNCATE]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/getopt.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000031417�14076273520�012277� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getopt.m4 serial 47 dnl Copyright (C) 2002-2006, 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Request a POSIX compliant getopt function. AC_DEFUN([gl_FUNC_GETOPT_POSIX], [ m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) dnl Other modules can request the gnulib implementation of the getopt dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS. dnl argp.m4 does this. m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [ REPLACE_GETOPT=1 ], [ REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi ]) if test $REPLACE_GETOPT = 1; then dnl Arrange for getopt.h to be created. gl_GETOPT_SUBSTITUTE_HEADER fi ]) # Request a POSIX compliant getopt function with GNU extensions (such as # options with optional arguments) and the functions getopt_long, # getopt_long_only. AC_DEFUN([gl_FUNC_GETOPT_GNU], [ dnl Set the variable gl_getopt_required, so that all invocations of dnl gl_GETOPT_CHECK_HEADERS in the scope of the current configure file dnl will check for getopt with GNU extensions. dnl This means that if one gnulib-tool invocation requests getopt-posix dnl and another gnulib-tool invocation requests getopt-gnu, it is as if dnl both had requested getopt-gnu. m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU]) dnl No need to invoke gl_FUNC_GETOPT_POSIX here; this is automatically dnl done through the module dependency getopt-gnu -> getopt-posix. ]) # Determine whether to replace the entire getopt facility. AC_DEFUN([gl_GETOPT_CHECK_HEADERS], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_PROG_AWK]) dnl for awk that supports ENVIRON dnl Persuade Solaris <unistd.h> to declare optarg, optind, opterr, optopt. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) gl_CHECK_NEXT_HEADERS([getopt.h]) if test $ac_cv_header_getopt_h = yes; then HAVE_GETOPT_H=1 else HAVE_GETOPT_H=0 fi AC_SUBST([HAVE_GETOPT_H]) gl_replace_getopt= dnl Test whether <getopt.h> is available. if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes]) fi dnl Test whether the function getopt_long is available. if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes]) fi dnl POSIX 2008 does not specify leading '+' behavior, but see dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on dnl the next version of POSIX. For now, we only guarantee leading '+' dnl behavior with getopt-gnu. if test -z "$gl_replace_getopt"; then AC_CACHE_CHECK([whether getopt is POSIX compatible], [gl_cv_func_getopt_posix], [ dnl Merging these three different test programs into a single one dnl would require a reset mechanism. On BSD systems, it can be done dnl through 'optreset'; on some others (glibc), it can be done by dnl setting 'optind' to 0; on others again (HP-UX, IRIX, OSF/1, dnl Solaris 9, musl libc), there is no such mechanism. if test $cross_compiling = no; then dnl Sanity check. Succeeds everywhere (except on MSVC, dnl which lacks <unistd.h> and getopt() entirely). AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char a[] = "-a"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, a, foo, bar, NULL }; int c; c = getopt (4, argv, "ab"); if (!(c == 'a')) return 1; c = getopt (4, argv, "ab"); if (!(c == -1)) return 2; if (!(optind == 2)) return 3; return 0; } ]])], [gl_cv_func_getopt_posix=maybe], [gl_cv_func_getopt_posix=no]) if test $gl_cv_func_getopt_posix = maybe; then dnl Sanity check with '+'. Succeeds everywhere (except on MSVC, dnl which lacks <unistd.h> and getopt() entirely). AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char donald[] = "donald"; static char p[] = "-p"; static char billy[] = "billy"; static char duck[] = "duck"; static char a[] = "-a"; static char bar[] = "bar"; char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; int c; c = getopt (7, argv, "+abp:q:"); if (!(c == -1)) return 4; if (!(strcmp (argv[0], "program") == 0)) return 5; if (!(strcmp (argv[1], "donald") == 0)) return 6; if (!(strcmp (argv[2], "-p") == 0)) return 7; if (!(strcmp (argv[3], "billy") == 0)) return 8; if (!(strcmp (argv[4], "duck") == 0)) return 9; if (!(strcmp (argv[5], "-a") == 0)) return 10; if (!(strcmp (argv[6], "bar") == 0)) return 11; if (!(optind == 1)) return 12; return 0; } ]])], [gl_cv_func_getopt_posix=maybe], [gl_cv_func_getopt_posix=no]) fi if test $gl_cv_func_getopt_posix = maybe; then dnl Detect Mac OS X 10.5, AIX 7.1, mingw bug. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <unistd.h> #include <stdlib.h> #include <string.h> int main () { static char program[] = "program"; static char ab[] = "-ab"; char *argv[3] = { program, ab, NULL }; if (getopt (2, argv, "ab:") != 'a') return 13; if (getopt (2, argv, "ab:") != '?') return 14; if (optopt != 'b') return 15; if (optind != 2) return 16; return 0; } ]])], [gl_cv_func_getopt_posix=yes], [gl_cv_func_getopt_posix=no]) fi else case "$host_os" in darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; *) gl_cv_func_getopt_posix="guessing yes";; esac fi ]) case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;; esac fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_getopt_gnu], [# Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the # optstring is necessary for programs like m4 that have POSIX-mandated # semantics for supporting options interspersed with files. # Also, since getopt_long is a GNU extension, we require optind=0. # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; # so take care to revert to the correct (non-)export state. dnl GNU Coding Standards currently allow awk but not env; besides, env dnl is ambiguous with environment values that contain newlines. gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in xx) gl_had_POSIXLY_CORRECT=exported ;; x) gl_had_POSIXLY_CORRECT=yes ;; *) gl_had_POSIXLY_CORRECT= ;; esac POSIXLY_CORRECT=1 export POSIXLY_CORRECT AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include <getopt.h> #include <stddef.h> #include <string.h> ]GL_NOCRASH[ ]], [[ int result = 0; nocrash_init(); /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ { static char conftest[] = "conftest"; static char plus[] = "-+"; char *argv[3] = { conftest, plus, NULL }; opterr = 0; if (getopt (2, argv, "+a") != '?') result |= 1; } /* This code succeeds on glibc 2.8, mingw, and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ { static char program[] = "program"; static char p[] = "-p"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, p, foo, bar, NULL }; optind = 1; if (getopt (4, argv, "p::") != 'p') result |= 2; else if (optarg != NULL) result |= 4; else if (getopt (4, argv, "p::") != -1) result |= 6; else if (optind != 2) result |= 8; } /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ { static char program[] = "program"; static char foo[] = "foo"; static char p[] = "-p"; char *argv[] = { program, foo, p, NULL }; optind = 0; if (getopt (3, argv, "-p") != 1) result |= 16; else if (getopt (3, argv, "-p") != 'p') result |= 16; } /* This code fails on glibc 2.11. */ { static char program[] = "program"; static char b[] = "-b"; static char a[] = "-a"; char *argv[] = { program, b, a, NULL }; optind = opterr = 0; if (getopt (3, argv, "+:a:b") != 'b') result |= 32; else if (getopt (3, argv, "+:a:b") != ':') result |= 32; } /* This code dumps core on glibc 2.14. */ { static char program[] = "program"; static char w[] = "-W"; static char dummy[] = "dummy"; char *argv[] = { program, w, dummy, NULL }; optind = opterr = 1; if (getopt (3, argv, "W;") != 'W') result |= 64; } return result; ]])], [gl_cv_func_getopt_gnu=yes], [gl_cv_func_getopt_gnu=no], [dnl Cross compiling. dnl Assume the worst, even on glibc platforms. dnl But obey --enable-cross-guesses. gl_cv_func_getopt_gnu="$gl_cross_guess_normal" ]) case $gl_had_POSIXLY_CORRECT in exported) ;; yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;; *) AS_UNSET([POSIXLY_CORRECT]) ;; esac ]) if test "$gl_cv_func_getopt_gnu" != yes; then gl_replace_getopt=yes else AC_CACHE_CHECK([for working GNU getopt_long function], [gl_cv_func_getopt_long_gnu], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <getopt.h> #include <stddef.h> #include <string.h> ]], [[static const struct option long_options[] = { { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; /* This code fails on OpenBSD 5.0. */ { static char program[] = "program"; static char xtremel[] = "--xtremel"; char *argv[] = { program, xtremel, NULL }; int option_index; optind = 1; opterr = 0; if (getopt_long (2, argv, "", long_options, &option_index) != 1003) return 1; } return 0; ]])], [gl_cv_func_getopt_long_gnu=yes], [gl_cv_func_getopt_long_gnu=no], [dnl Cross compiling. Guess no on OpenBSD, yes otherwise. case "$host_os" in openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; *) gl_cv_func_getopt_long_gnu="guessing yes";; esac ]) ]) case "$gl_cv_func_getopt_long_gnu" in *yes) ;; *) gl_replace_getopt=yes ;; esac fi fi ]) AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], [ AC_CHECK_HEADERS_ONCE([sys/cdefs.h]) if test $ac_cv_header_sys_cdefs_h = yes; then HAVE_SYS_CDEFS_H=1 else HAVE_SYS_CDEFS_H=0 fi AC_SUBST([HAVE_SYS_CDEFS_H]) AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], [Define to rpl_ if the getopt replacement functions and variables should be used.]) GETOPT_H=getopt.h GETOPT_CDEFS_H=getopt-cdefs.h AC_SUBST([GETOPT_H]) AC_SUBST([GETOPT_CDEFS_H]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/gnulib-common.m4������������������������������������������������������������������0000644�0000000�0000000�00000072004�14076273520�013540� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gnulib-common.m4 serial 66 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.62]) # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) AC_REQUIRE([gl_ZZGNULIB]) ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_GL_GNUC_PREREQ], [/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ #if defined __GNUC__ && defined __GNUC_MINOR__ # define _GL_GNUC_PREREQ(major, minor) \ ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) #else # define _GL_GNUC_PREREQ(major, minor) 0 #endif ]) AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (defined _MSC_VER && 1900 <= _MSC_VER)) \ && 0) /* [[noreturn]] is not practically usable, because with it the syntax extern _Noreturn void func (...); would not be valid; such a declaration would only be valid with 'extern' and '_Noreturn' swapped, or without the 'extern' keyword. However, some AIX system header files and several gnulib header files use precisely this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif ((!defined __cplusplus || defined __clang__) \ && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ || (!defined __STRICT_ANSI__ \ && (_GL_GNUC_PREREQ (4, 7) \ || (defined __apple_build_version__ \ ? 6000000 <= __apple_build_version__ \ : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ # elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([attribute], [/* Attributes. */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || 3 < __clang_major__ + (5 <= __clang_minor__))) # define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) #else # define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr # define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) # define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) # define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_diagnose_if 0 # define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) # define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) # define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) # define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) # ifdef _ICC # define _GL_ATTR_may_alias 0 # else # define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) # endif # define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) # define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) # define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) # define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) # define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) # define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) # define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) # define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) # define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) #endif ]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's _Alignas instead. [ #if _GL_HAS_ATTRIBUTE (alloc_size) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) #else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) #endif #if _GL_HAS_ATTRIBUTE (always_inline) # define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) #else # define _GL_ATTRIBUTE_ALWAYS_INLINE #endif #if _GL_HAS_ATTRIBUTE (artificial) # define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) #else # define _GL_ATTRIBUTE_ARTIFICIAL #endif /* Avoid __attribute__ ((cold)) on MinGW; see thread starting at <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>. Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ #if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ # ifndef __SUNPRO_C # define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) # else # define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) # endif #else # define _GL_ATTRIBUTE_COLD #endif #if _GL_HAS_ATTRIBUTE (const) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST #endif #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] #elif _GL_HAS_ATTRIBUTE (deprecated) # define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) #else # define _GL_ATTRIBUTE_DEPRECATED #endif #if _GL_HAS_ATTRIBUTE (error) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) #elif _GL_HAS_ATTRIBUTE (diagnose_if) # define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) # define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) #else # define _GL_ATTRIBUTE_ERROR(msg) # define _GL_ATTRIBUTE_WARNING(msg) #endif #if _GL_HAS_ATTRIBUTE (externally_visible) # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) #else # define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE #endif /* FALLTHROUGH is special, because it always expands to something. */ #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] #elif _GL_HAS_ATTRIBUTE (fallthrough) # define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) #else # define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) #endif #if _GL_HAS_ATTRIBUTE (format) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) #endif #if _GL_HAS_ATTRIBUTE (leaf) # define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) #else # define _GL_ATTRIBUTE_LEAF #endif /* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ #if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C # define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) #else # define _GL_ATTRIBUTE_MAY_ALIAS #endif #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] #elif _GL_HAS_ATTRIBUTE (unused) # define _GL_ATTRIBUTE_MAYBE_UNUSED __attribute__ ((__unused__)) #else # define _GL_ATTRIBUTE_MAYBE_UNUSED #endif /* Earlier spellings of this macro. */ #define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED #define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED #if _GL_HAS_ATTRIBUTE (malloc) # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) #else # define _GL_ATTRIBUTE_MALLOC #endif #if 201710L < __STDC_VERSION__ # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] #elif _GL_HAS_ATTRIBUTE (warn_unused_result) # define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) #else # define _GL_ATTRIBUTE_NODISCARD #endif #if _GL_HAS_ATTRIBUTE (noinline) # define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) #else # define _GL_ATTRIBUTE_NOINLINE #endif #if _GL_HAS_ATTRIBUTE (nonnull) # define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) #else # define _GL_ATTRIBUTE_NONNULL(args) #endif #if _GL_HAS_ATTRIBUTE (nonstring) # define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) #else # define _GL_ATTRIBUTE_NONSTRING #endif /* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ #if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus # define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) #else # define _GL_ATTRIBUTE_NOTHROW #endif #if _GL_HAS_ATTRIBUTE (packed) # define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) #else # define _GL_ATTRIBUTE_PACKED #endif #if _GL_HAS_ATTRIBUTE (pure) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE #endif #if _GL_HAS_ATTRIBUTE (returns_nonnull) # define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) #else # define _GL_ATTRIBUTE_RETURNS_NONNULL #endif #if _GL_HAS_ATTRIBUTE (sentinel) # define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) #else # define _GL_ATTRIBUTE_SENTINEL(pos) #endif ]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead. [ /* To support C++ as well as C, use _GL_UNUSED_LABEL with trailing ';'. */ #if !defined __cplusplus || _GL_GNUC_PREREQ (4, 5) # define _GL_UNUSED_LABEL _GL_ATTRIBUTE_MAYBE_UNUSED #else # define _GL_UNUSED_LABEL #endif ]) AH_VERBATIM([async_safe], [/* The _GL_ASYNC_SAFE marker should be attached to functions that are signal handlers (for signals other than SIGABRT, SIGPIPE) or can be invoked from such signal handlers. Such functions have some restrictions: * All functions that it calls should be marked _GL_ASYNC_SAFE as well, or should be listed as async-signal-safe in POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04> section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in particular, are NOT async-signal-safe. * All memory locations (variables and struct fields) that these functions access must be marked 'volatile'. This holds for both read and write accesses. Otherwise the compiler might optimize away stores to and reads from such locations that occur in the program, depending on its data flow analysis. For example, when the program contains a loop that is intended to inspect a variable set from within a signal handler while (!signal_occurred) ; the compiler is allowed to transform this into an endless loop if the variable 'signal_occurred' is not declared 'volatile'. Additionally, recall that: * A signal handler should not modify errno (except if it is a handler for a fatal signal and ends by raising the same signal again, thus provoking the termination of the process). If it invokes a function that may clobber errno, it needs to save and restore the value of errno. */ #define _GL_ASYNC_SAFE ]) AH_VERBATIM([micro_optimizations], [/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where n1 and n2 are expressions without side effects, that evaluate to real numbers (excluding NaN). It returns 1 if n1 > n2 0 if n1 == n2 -1 if n1 < n2 The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional jump with nearly all GCC versions up to GCC 10. This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many GCC versions up to GCC 9. The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 avoids conditional jumps in all GCC versions >= 3.4. */ #define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) ]) dnl Hint which direction to take regarding cross-compilation guesses: dnl When a user installs a program on a platform they are not intimately dnl familiar with, --enable-cross-guesses=conservative is the appropriate dnl choice. It implements the "If we don't know, assume the worst" principle. dnl However, when an operating system developer (on a platform which is not dnl yet known to gnulib) builds packages for their platform, they want to dnl expose, not hide, possible platform bugs; in this case, dnl --enable-cross-guesses=risky is the appropriate choice. dnl Sets the variables dnl gl_cross_guess_normal (to be used when 'yes' is good and 'no' is bad), dnl gl_cross_guess_inverted (to be used when 'no' is good and 'yes' is bad). AC_ARG_ENABLE([cross-guesses], [AS_HELP_STRING([--enable-cross-guesses={conservative|risky}], [specify policy for cross-compilation guesses])], [if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then AC_MSG_WARN([invalid argument supplied to --enable-cross-guesses]) enableval=conservative fi gl_cross_guesses="$enableval"], [gl_cross_guesses=conservative]) if test $gl_cross_guesses = risky; then gl_cross_guess_normal="guessing yes" gl_cross_guess_inverted="guessing no" else gl_cross_guess_normal="guessing no" gl_cross_guess_inverted="guessing yes" fi dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ]) # gl_MODULE_INDICATOR_INIT_VARIABLE([variablename]) # gl_MODULE_INDICATOR_INIT_VARIABLE([variablename], [initialvalue]) # initializes the shell variable that indicates the presence of the given module # as a C preprocessor expression. AC_DEFUN([gl_MODULE_INDICATOR_INIT_VARIABLE], [ GL_MODULE_INDICATOR_PREFIX[]_[$1]=m4_if([$2], , [0], [$2]) AC_SUBST(GL_MODULE_INDICATOR_PREFIX[]_[$1]) ]) # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( [GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. # The shell variable's value is a C preprocessor expression that evaluates # to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], [ dnl Simplify the expression VALUE || 1 to 1. $1=1 ], [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], [gl_MODULE_INDICATOR_CONDITION])]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) # modifies the shell variable to include the given condition. The shell # variable's value is a C preprocessor expression that evaluates to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [ dnl Simplify the expression 1 || CONDITION to 1. if test "$[]$1" != 1; then dnl Simplify the expression 0 || CONDITION to CONDITION. if test "$[]$1" = 0; then $1=$2 else $1="($[]$1 || $2)" fi fi ]) # gl_MODULE_INDICATOR([modulename]) # defines a C macro indicating the presence of the given module # in a location where it can be used. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 0 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [gl_MODULE_INDICATOR_CONDITION], [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module $1 shall be considered present.]) ]) # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) # gl_ASSERT_NO_GNULIB_POSIXCHECK # asserts that there will never be a need to #define GNULIB_POSIXCHECK. # and thereby enables an optimization of configure and config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. dnl But hide this definition from 'aclocal'. AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS # asserts that there will be no gnulib tests in the scope of the configure.ac # and thereby enables an optimization of config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [ dnl Override gl_MODULE_INDICATOR_FOR_TESTS. AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) ]) # Test whether <features.h> exists. # Set HAVE_FEATURES_H. AC_DEFUN([gl_FEATURES_H], [ AC_CHECK_HEADERS_ONCE([features.h]) if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi AC_SUBST([HAVE_FEATURES_H]) ]) # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. AC_DEFUN([gl_PROG_CC_C99], [ dnl Just use AC_PROG_CC_C99. dnl When AC_PROG_CC_C99 and AC_PROG_CC_STDC are used together, the substituted dnl value of CC will contain the C99 enabling options twice. But this is only dnl a cosmetic problem. dnl With Autoconf >= 2.70, use AC_PROG_CC since it implies AC_PROG_CC_C99; dnl this avoids a "warning: The macro `AC_PROG_CC_C99' is obsolete." m4_version_prereq([2.70], [AC_REQUIRE([AC_PROG_CC])], [AC_REQUIRE([AC_PROG_CC_C99])]) ]) # gl_PROG_AR_RANLIB # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override # the values. AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and dnl library formats. In particular, the GNU binutils programs ar and ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) dnl The '][' hides this use from 'aclocal'. AC_BEFORE([$0], [A][M_PROG_AR]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], [ #ifdef __ACK__ Amsterdam #endif ], [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not dnl building with __ACK__. if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST dnl ARFLAGS variable (it is filed into Makefile.in directly by automake dnl script on-demand, if not specified by ./configure of course). dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block dnl because AM_PROG_AR is written so it could re-set AR variable even for dnl __ACK__. It may seem like its easier to avoid calling the macro here, dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good dnl default value and automake should usually know them). dnl dnl The '][' hides this use from 'aclocal'. m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:]) fi dnl In case the code above has not helped with setting AR/ARFLAGS, use dnl Automake-documented default values for AR and ARFLAGS, but prefer dnl ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cr' fi AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else dnl Use the ranlib program if it is available. AC_PROG_RANLIB fi fi AC_SUBST([RANLIB]) ]) # AC_C_RESTRICT # This definition is copied from post-2.70 Autoconf and overrides the # AC_C_RESTRICT macro from autoconf 2.60..2.70. m4_version_prereq([2.70.1], [], [ AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html # Put 'restrict' last, because C++ lacks it. for ac_kw in __restrict__ __restrict _Restrict restrict; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } ]], [[int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done ]) AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported only directly. */ #undef restrict /* Work around a bug in older versions of Sun C++, which did not #define __restrict__ or support _Restrict or __restrict__ even though the corresponding Sun C compiler ended up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. This workaround can be removed once we assume Oracle Developer Studio 12.5 (2016) or later. */ #if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ # define _Restrict # define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ])# AC_C_RESTRICT ]) # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some # macros invoke AC_C_BIGENDIAN with arguments. AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) # A temporary file descriptor. # Must be less than 10, because dash 0.5.8 does not support redirections # with multi-digit file descriptors. m4_define([GL_TMP_FD], 9) # gl_SILENT(command) # executes command, but without the normal configure output. # This is useful when you want to invoke AC_CACHE_CHECK (or AC_CHECK_FUNC etc.) # inside another AC_CACHE_CHECK. AC_DEFUN([gl_SILENT], [ exec GL_TMP_FD>&AS_MESSAGE_FD AS_MESSAGE_FD>/dev/null $1 exec AS_MESSAGE_FD>&GL_TMP_FD GL_TMP_FD>&- ]) # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. # This macro should be used instead of AC_CACHE_VAL when it is not surrounded # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ gl_SILENT([ AC_CACHE_VAL([$1], [$2]) ]) ]) # gl_CC_ALLOW_WARNINGS # sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option # that reverts a preceding '-Werror' option, if available. # This is expected to be '-Wno-error' on gcc, clang (except clang/MSVC), xlclang # and empty otherwise. AC_DEFUN([gl_CC_ALLOW_WARNINGS], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for C compiler option to allow warnings], [gl_cv_cc_wallow], [rm -f conftest* echo 'int dummy;' > conftest.c AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null dnl Test the number of error output lines, because AIX xlc accepts the dnl option '-Wno-error', just to produce a warning dnl "Option -Wno-error was incorrectly specified. The option will be ignored." dnl afterwards. if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cc_wallow='-Wno-error' else gl_cv_cc_wallow=none fi rm -f conftest* ]) case "$gl_cv_cc_wallow" in none) GL_CFLAG_ALLOW_WARNINGS='' ;; *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; esac AC_SUBST([GL_CFLAG_ALLOW_WARNINGS]) ]) # gl_CXX_ALLOW_WARNINGS # sets and substitutes a variable GL_CXXFLAG_ALLOW_WARNINGS, to a $(CC) option # that reverts a preceding '-Werror' option, if available. AC_DEFUN([gl_CXX_ALLOW_WARNINGS], [ dnl Requires AC_PROG_CXX or gl_PROG_ANSI_CXX. if test -n "$CXX" && test "$CXX" != no; then AC_CACHE_CHECK([for C++ compiler option to allow warnings], [gl_cv_cxx_wallow], [rm -f conftest* echo 'int dummy;' > conftest.cc AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null dnl Test the number of error output lines, because AIX xlC accepts the dnl option '-Wno-error', just to produce a warning dnl "Option -Wno-error was incorrectly specified. The option will be ignored." dnl afterwards. if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then gl_cv_cxx_wallow='-Wno-error' else gl_cv_cxx_wallow=none fi rm -f conftest* ]) case "$gl_cv_cxx_wallow" in none) GL_CXXFLAG_ALLOW_WARNINGS='' ;; *) GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;; esac else GL_CXXFLAG_ALLOW_WARNINGS='' fi AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS]) ]) dnl Expands to some code for use in .c programs that, on native Windows, defines dnl the Microsoft deprecated alias function names to the underscore-prefixed dnl actual function names. With this macro, these function names are available dnl without linking with '-loldnames' and without generating warnings. dnl Usage: Use it after all system header files are included. dnl #include <...> dnl #include <...> dnl ]GL_MDA_DEFINES[ dnl ... AC_DEFUN([GL_MDA_DEFINES],[ AC_REQUIRE([_GL_MDA_DEFINES]) [$gl_mda_defines] ]) AC_DEFUN([_GL_MDA_DEFINES], [gl_mda_defines=' #if defined _WIN32 && !defined __CYGWIN__ #define access _access #define chdir _chdir #define chmod _chmod #define close _close #define creat _creat #define dup _dup #define dup2 _dup2 #define ecvt _ecvt #define execl _execl #define execle _execle #define execlp _execlp #define execv _execv #define execve _execve #define execvp _execvp #define execvpe _execvpe #define fcloseall _fcloseall #define fcvt _fcvt #define fdopen _fdopen #define fileno _fileno #define gcvt _gcvt #define getcwd _getcwd #define getpid _getpid #define getw _getw #define isatty _isatty #define j0 _j0 #define j1 _j1 #define jn _jn #define lfind _lfind #define lsearch _lsearch #define lseek _lseek #define memccpy _memccpy #define mkdir _mkdir #define mktemp _mktemp #define open _open #define putenv _putenv #define putw _putw #define read _read #define rmdir _rmdir #define strdup _strdup #define swab _swab #define tempnam _tempnam #define tzset _tzset #define umask _umask #define unlink _unlink #define utime _utime #define wcsdup _wcsdup #define write _write #define y0 _y0 #define y1 _y1 #define yn _yn #endif ' ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/nocrash.m4������������������������������������������������������������������������0000644�0000000�0000000�00000010555�14076273520�012432� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nocrash.m4 serial 5 dnl Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini. AC_PREREQ([2.13]) dnl Expands to some code for use in .c programs that will cause the configure dnl test to exit instead of crashing. This is useful to avoid triggering dnl action from a background debugger and to avoid core dumps. dnl Usage: ... dnl ]GL_NOCRASH[ dnl ... dnl int main() { nocrash_init(); ... } AC_DEFUN([GL_NOCRASH],[[ #include <stdlib.h> #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include <mach/mach.h> #include <mach/mach_error.h> #include <mach/thread_status.h> #include <mach/exception.h> #include <mach/task.h> #include <pthread.h> /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winerror.h> static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include <signal.h> #include <unistd.h> /* A POSIX signal handler. */ static void exception_handler (int sig) { _exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif ]]) ���������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/getdelim.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000005434�14076273520�012567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getdelim.m4 serial 15 dnl Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc. dnl dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.59]) AC_DEFUN([gl_FUNC_GETDELIM], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc <stdio.h> to declare getdelim(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([getdelim]) AC_CHECK_FUNCS_ONCE([getdelim]) if test $ac_cv_func_getdelim = yes; then HAVE_GETDELIM=1 dnl Found it in some library. Verify that it works. AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim], [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } free (line); } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getdelim (&line, &siz, '\n', in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } ]])], [gl_cv_func_working_getdelim=yes], [gl_cv_func_working_getdelim=no], [dnl We're cross compiling. dnl Guess it works on glibc2 systems and musl systems. AC_EGREP_CPP([Lucky GNU user], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [gl_cv_func_working_getdelim="guessing yes"], [case "$host_os" in *-musl*) gl_cv_func_working_getdelim="guessing yes" ;; *) gl_cv_func_working_getdelim="$gl_cross_guess_normal" ;; esac ]) ]) ]) case "$gl_cv_func_working_getdelim" in *yes) ;; *) REPLACE_GETDELIM=1 ;; esac else HAVE_GETDELIM=0 fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi ]) # Prerequisites of lib/getdelim.c. AC_DEFUN([gl_PREREQ_GETDELIM], [ AC_CHECK_FUNCS([flockfile funlockfile]) AC_CHECK_DECLS([getc_unlocked]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/stdbool.m4������������������������������������������������������������������������0000644�0000000�0000000�00000007635�14076273520�012450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Check for stdbool.h that conforms to C99. dnl Copyright (C) 2002-2006, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #serial 8 # Prepare for substituting <stdbool.h> if it is not supported. AC_DEFUN([AM_STDBOOL_H], [ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On some platforms, <stdbool.h> does not exist or does not conform to C99. dnl On Solaris 10 with CC=cc CXX=CC, <stdbool.h> exists but is not usable dnl in C++ mode (and no <cstdbool> exists). In this case, we use our dnl replacement, also in C mode (for binary compatibility between C and C++). if test "$ac_cv_header_stdbool_h" = yes; then case "$host_os" in solaris*) if test -z "$GCC"; then STDBOOL_H='stdbool.h' else STDBOOL_H='' fi ;; *) STDBOOL_H='' ;; esac else STDBOOL_H='stdbool.h' fi AC_SUBST([STDBOOL_H]) AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi AC_SUBST([HAVE__BOOL]) ]) # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) # This version of the macro is needed in autoconf <= 2.68. AC_DEFUN([AC_CHECK_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99], [ac_cv_header_stdbool_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdbool.h> #ifdef __cplusplus typedef bool Bool; #else typedef _Bool Bool; #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; bool *qq = &q; ]], [[ bool e = &s; *pq |= q; *pq |= ! q; *qq |= q; *qq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq + !qq); ]])], [ac_cv_header_stdbool_h=yes], [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) ]) ���������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/00gnulib.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000007011�14076273520�012406� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# 00gnulib.m4 serial 8 dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts before all other dnl gnulib-provided .m4 files. It is needed until the clang fix has dnl been included in Autoconf. # The following definitions arrange to use a compiler option # -Werror=implicit-function-declaration in AC_CHECK_DECL, when the # compiler is clang. Without it, clang implicitly declares "known" # library functions in C mode, but not in C++ mode, which would cause # Gnulib to omit a declaration and thus later produce an error in C++ # mode. As of clang 9.0, these "known" functions are identified through # LIBBUILTIN invocations in the LLVM source file # llvm/tools/clang/include/clang/Basic/Builtins.def. # It's not possible to AC_REQUIRE the extra tests from AC_CHECK_DECL, # because AC_CHECK_DECL, like other Autoconf built-ins, is not supposed # to AC_REQUIRE anything: some configure.ac files have their first # AC_CHECK_DECL executed conditionally. Therefore append the extra tests # to AC_PROG_CC. AC_DEFUN([gl_COMPILER_CLANG], [ dnl AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether the compiler is clang], [gl_cv_compiler_clang], [dnl Use _AC_COMPILE_IFELSE instead of AC_EGREP_CPP, to avoid error dnl "circular dependency of AC_LANG_COMPILER(C)" if AC_PROG_CC has dnl not yet been invoked. _AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #ifdef __clang__ barfbarf #endif ]],[[]]) ], [gl_cv_compiler_clang=no], [gl_cv_compiler_clang=yes]) ]) ]) AC_DEFUN([gl_COMPILER_PREPARE_CHECK_DECL], [ dnl AC_REQUIRE([AC_PROG_CC]) dnl AC_REQUIRE([gl_COMPILER_CLANG]) AC_CACHE_CHECK([for compiler option needed when checking for declarations], [gl_cv_compiler_check_decl_option], [if test $gl_cv_compiler_clang = yes; then dnl Test whether the compiler supports the option dnl '-Werror=implicit-function-declaration'. save_ac_compile="$ac_compile" ac_compile="$ac_compile -Werror=implicit-function-declaration" dnl Use _AC_COMPILE_IFELSE instead of AC_COMPILE_IFELSE, to avoid a dnl warning "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])], [gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration'], [gl_cv_compiler_check_decl_option=none]) ac_compile="$save_ac_compile" else gl_cv_compiler_check_decl_option=none fi ]) if test "x$gl_cv_compiler_check_decl_option" != xnone; then ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" else ac_compile_for_check_decl="$ac_compile" fi ]) dnl Redefine _AC_CHECK_DECL_BODY so that it references ac_compile_for_check_decl dnl instead of ac_compile. If, for whatever reason, the override of AC_PROG_CC dnl in zzgnulib.m4 is inactive, use the original ac_compile. m4_define([_AC_CHECK_DECL_BODY], [ ac_save_ac_compile="$ac_compile" if test -n "$ac_compile_for_check_decl"; then ac_compile="$ac_compile_for_check_decl" fi] m4_defn([_AC_CHECK_DECL_BODY])[ ac_compile="$ac_save_ac_compile" ]) # gl_00GNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file prior to all other gnulib .m4 files. AC_DEFUN([gl_00GNULIB]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/stat-time.m4����������������������������������������������������������������������0000644�0000000�0000000�00000006057�14076273520�012706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Checks for stat-related time functions. # Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2021 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # st_atim.tv_nsec - Linux, Solaris, Cygwin # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) # st_birthtim - Cygwin 1.7.0+ AC_DEFUN([gl_STAT_TIME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include <sys/types.h> #include <sys/stat.h> #if HAVE_SYS_TIME_H # include <sys/time.h> #endif #include <time.h> struct timespec ts; struct stat st; ]], [[ st.st_atim = ts; ]])], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], [Define to 1 if the type of the st_atim member of a struct stat is struct timespec.]) fi], [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>]) ]) # Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) # and NTFS (Cygwin). # There was a time when this field was named st_createtime (21 June # 2002 to 16 July 2002) But that window is very small and applied only # to development code, so systems still using that configuration are # not supported. See revisions 1.10 and 1.11 of FreeBSD's # src/sys/ufs/ufs/dinode.h. # AC_DEFUN([gl_STAT_BIRTHTIME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/error.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001510�14076273520�012115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 14 # Copyright (C) 1996-1998, 2001-2004, 2009-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_ERROR], [ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer dnl maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <error.h>]], [[error_at_line (0, 0, "", 0, "an error occurred");]])], [ac_cv_lib_error_at_line=yes], [ac_cv_lib_error_at_line=no])]) ]) # Prerequisites of lib/error.c. AC_DEFUN([gl_PREREQ_ERROR], [ AC_REQUIRE([AC_FUNC_STRERROR_R]) : ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/std-gnu11.m4����������������������������������������������������������������������0000644�0000000�0000000�00000057673�14076273520�012534� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Prefer GNU C11 and C++11 to earlier versions. -*- coding: utf-8 -*- # This implementation is taken from GNU Autoconf lib/autoconf/c.m4 # commit 017d5ddd82854911f0119691d91ea8a1438824d6 # dated Sun Apr 3 13:57:17 2016 -0700 # This implementation will be obsolete once we can assume Autoconf 2.70 # or later is installed everywhere a Gnulib program might be developed. m4_version_prereq([2.70], [], [ # Copyright (C) 2001-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>. # Written by David MacKenzie, with help from # Akim Demaille, Paul Eggert, # François Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, # Roland McGrath, Noah Friedman, david d zuhn, and many others. # AC_PROG_CC([COMPILER ...]) # -------------------------- # COMPILER ... is a space separated list of C compilers to search for. # This just gives the user an opportunity to specify an alternative # search list for the C compiler. AC_DEFUN_ONCE([AC_PROG_CC], [AC_LANG_PUSH(C)dnl AC_ARG_VAR([CC], [C compiler command])dnl AC_ARG_VAR([CFLAGS], [C compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl _AC_ARG_VAR_LIBS()dnl _AC_ARG_VAR_CPPFLAGS()dnl m4_ifval([$1], [AC_CHECK_TOOLS(CC, [$1])], [AC_CHECK_TOOL(CC, gcc) if test -z "$CC"; then dnl Here we want: dnl AC_CHECK_TOOL(CC, cc) dnl but without the check for a tool without the prefix. dnl Until the check is removed from there, copy the code: if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(CC, [${ac_tool_prefix}cc], [${ac_tool_prefix}cc]) fi fi if test -z "$CC"; then AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) fi if test -z "$CC"; then AC_CHECK_TOOLS(CC, cl.exe) fi if test -z "$CC"; then AC_CHECK_TOOL(CC, clang) fi ]) test -z "$CC" && AC_MSG_FAILURE([no acceptable C compiler found in \$PATH]) # Provide some information about the compiler. _AS_ECHO_LOG([checking for _AC_LANG compiler version]) set X $ac_compile ac_compiler=$[2] for ac_option in --version -v -V -qversion -version; do _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) done m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl _AC_LANG_COMPILER_GNU if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi _AC_PROG_CC_G dnl dnl Set ac_prog_cc_stdc to the supported C version. dnl Also set the documented variable ac_cv_prog_cc_stdc; dnl its name was chosen when it was cached, but it is no longer cached. _AC_PROG_CC_C11([ac_prog_cc_stdc=c11 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11], [_AC_PROG_CC_C99([ac_prog_cc_stdc=c99 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99], [_AC_PROG_CC_C89([ac_prog_cc_stdc=c89 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89], [ac_prog_cc_stdc=no ac_cv_prog_cc_stdc=no])])]) dnl AC_LANG_POP(C)dnl ])# AC_PROG_CC # AC_PROG_CXX([LIST-OF-COMPILERS]) # -------------------------------- # LIST-OF-COMPILERS is a space separated list of C++ compilers to search # for (if not specified, a default list is used). This just gives the # user an opportunity to specify an alternative search list for the C++ # compiler. # aCC HP-UX C++ compiler much better than `CC', so test before. # FCC Fujitsu C++ compiler # KCC KAI C++ compiler # RCC Rational C++ # xlC_r AIX C Set++ (with support for reentrant code) # xlC AIX C Set++ AC_DEFUN([AC_PROG_CXX], [AC_LANG_PUSH(C++)dnl AC_ARG_VAR([CXX], [C++ compiler command])dnl AC_ARG_VAR([CXXFLAGS], [C++ compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl _AC_ARG_VAR_LIBS()dnl _AC_ARG_VAR_CPPFLAGS()dnl _AC_ARG_VAR_PRECIOUS([CCC])dnl if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else AC_CHECK_TOOLS(CXX, [m4_default([$1], [g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++])], g++) fi fi # Provide some information about the compiler. _AS_ECHO_LOG([checking for _AC_LANG compiler version]) set X $ac_compile ac_compiler=$[2] for ac_option in --version -v -V -qversion; do _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) done m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl _AC_LANG_COMPILER_GNU if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi _AC_PROG_CXX_G _AC_PROG_CXX_CXX11([ac_prog_cxx_stdcxx=cxx11 ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 ac_cv_prog_cxx_cxx98=$ac_cv_prog_cxx_cxx11], [_AC_PROG_CXX_CXX98([ac_prog_cxx_stdcxx=cxx98 ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98], [ac_prog_cxx_stdcxx=no ac_cv_prog_cxx_stdcxx=no])]) AC_LANG_POP(C++)dnl ])# AC_PROG_CXX # _AC_C_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST, # ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE) # -------------------------------------------------------------- # Check whether the C compiler accepts features of STANDARD (e.g `c89', `c99') # by trying to compile a program of TEST-PROLOGUE and TEST-BODY. If this fails, # try again with each compiler option in the space-separated OPTION-LIST; if one # helps, append it to CC. If eventually successful, run ACTION-IF-AVAILABLE, # else ACTION-IF-UNAVAILABLE. AC_DEFUN([_AC_C_STD_TRY], [AC_MSG_CHECKING([for $CC option to enable ]m4_translit($1, [c], [C])[ features]) AC_CACHE_VAL(ac_cv_prog_cc_$1, [ac_cv_prog_cc_$1=no ac_save_CC=$CC AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])]) for ac_arg in '' $4 do CC="$ac_save_CC $ac_arg" _AC_COMPILE_IFELSE([], [ac_cv_prog_cc_$1=$ac_arg]) test "x$ac_cv_prog_cc_$1" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC ])# AC_CACHE_VAL ac_prog_cc_stdc_options= case "x$ac_cv_prog_cc_$1" in x) AC_MSG_RESULT([none needed]) ;; xno) AC_MSG_RESULT([unsupported]) ;; *) ac_prog_cc_stdc_options=" $ac_cv_prog_cc_$1" CC=$CC$ac_prog_cc_stdc_options AC_MSG_RESULT([$ac_cv_prog_cc_$1]) ;; esac AS_IF([test "x$ac_cv_prog_cc_$1" != xno], [$5], [$6]) ])# _AC_C_STD_TRY # _AC_C_C99_TEST_HEADER # --------------------- # A C header suitable for testing for C99. AC_DEFUN([_AC_C_C99_TEST_HEADER], [[#include <stdarg.h> #include <stdbool.h> #include <stddef.h> #include <stdlib.h> #include <wchar.h> #include <stdio.h> // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; }]])# _AC_C_C99_TEST_HEADER # _AC_C_C99_TEST_BODY # ------------------- # A C body suitable for testing for C99, assuming the corresponding header. AC_DEFUN([_AC_C_C99_TEST_BODY], [[ // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ]]) # _AC_PROG_CC_C99 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) # ---------------------------------------------------------------- # If the C compiler is not in ISO C99 mode by default, try to add an # option to output variable CC to make it so. This macro tries # various options that select ISO C99 on some system or another. It # considers the compiler to be in ISO C99 mode if it handles _Bool, # // comments, flexible array members, inline, long long int, mixed # code and declarations, named initialization of structs, restrict, # va_copy, varargs macros, variable declarations in for loops and # variable length arrays. AC_DEFUN([_AC_PROG_CC_C99], [_AC_C_STD_TRY([c99], [_AC_C_C99_TEST_HEADER], [_AC_C_C99_TEST_BODY], dnl Try dnl GCC -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999) dnl IBM XL C -qlanglvl=extc1x (V12.1; does not pass C11 test) dnl IBM XL C -qlanglvl=extc99 dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdc99) dnl HP cc -AC99 dnl Intel ICC -std=c99, -c99 (deprecated) dnl IRIX -c99 dnl Solaris -D_STDC_C99= dnl cc's -xc99 option uses linker magic to define the external dnl symbol __xpg4 as if by "int __xpg4 = 1;", which enables C99 dnl behavior for C library functions. This is not wanted here, dnl because it means that a single module compiled with -xc99 dnl alters C runtime behavior for the entire program, not for dnl just the module. Instead, define the (private) symbol dnl _STDC_C99, which suppresses a bogus failure in <stdbool.h>. dnl The resulting compiler passes the test case here, and that's dnl good enough. For more, please see the thread starting at: dnl https://lists.gnu.org/r/autoconf/2010-12/msg00059.html dnl Tru64 -c99 dnl with extended modes being tried first. [[-std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99]], [$1], [$2])[]dnl ])# _AC_PROG_CC_C99 # _AC_PROG_CC_C11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) # ---------------------------------------------------------------- # If the C compiler is not in ISO C11 mode by default, try to add an # option to output variable CC to make it so. This macro tries # various options that select ISO C11 on some system or another. It # considers the compiler to be in ISO C11 mode if it handles _Alignas, # _Alignof, _Noreturn, _Static_assert, UTF-8 string literals, # duplicate typedefs, and anonymous structures and unions. AC_DEFUN([_AC_PROG_CC_C11], [_AC_C_STD_TRY([c11], [_AC_C_C99_TEST_HEADER[ // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ]], [_AC_C_C99_TEST_BODY[ v1.i = 2; v1.w.k = 5; _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); ]], dnl Try dnl GCC -std=gnu11 (unused restrictive mode: -std=c11) dnl with extended modes being tried first. dnl dnl Do not try -qlanglvl=extc1x, because IBM XL C V12.1 (the latest version as dnl of September 2012) does not pass the C11 test. For now, try extc1x when dnl compiling the C99 test instead, since it enables _Static_assert and dnl _Noreturn, which is a win. If -qlanglvl=extc11 or -qlanglvl=extc1x passes dnl the C11 test in some future version of IBM XL C, we'll add it here, dnl preferably extc11. [[-std=gnu11]], [$1], [$2])[]dnl ])# _AC_PROG_CC_C11 # AC_PROG_CC_C89 # -------------- # Do not use AU_ALIAS here and in AC_PROG_CC_C99 and AC_PROG_CC_STDC, # as that'd be incompatible with how Automake redefines AC_PROG_CC. See # <https://lists.gnu.org/r/autoconf/2012-10/msg00048.html>. AU_DEFUN([AC_PROG_CC_C89], [AC_REQUIRE([AC_PROG_CC])], [$0 is obsolete; use AC_PROG_CC] ) # AC_PROG_CC_C99 # -------------- AU_DEFUN([AC_PROG_CC_C99], [AC_REQUIRE([AC_PROG_CC])], [$0 is obsolete; use AC_PROG_CC] ) # AC_PROG_CC_STDC # --------------- AU_DEFUN([AC_PROG_CC_STDC], [AC_REQUIRE([AC_PROG_CC])], [$0 is obsolete; use AC_PROG_CC] ) # AC_C_PROTOTYPES # --------------- # Check if the C compiler supports prototypes, included if it needs # options. AC_DEFUN([AC_C_PROTOTYPES], [AC_REQUIRE([AC_PROG_CC])dnl if test "$ac_prog_cc_stdc" != no; then AC_DEFINE(PROTOTYPES, 1, [Define to 1 if the C compiler supports function prototypes.]) AC_DEFINE(__PROTOTYPES, 1, [Define like PROTOTYPES; this can be used by system headers.]) fi ])# AC_C_PROTOTYPES # _AC_CXX_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST, # ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE) # ---------------------------------------------------------------- # Check whether the C++ compiler accepts features of STANDARD (e.g # `cxx98', `cxx11') by trying to compile a program of TEST-PROLOGUE # and TEST-BODY. If this fails, try again with each compiler option # in the space-separated OPTION-LIST; if one helps, append it to CXX. # If eventually successful, run ACTION-IF-AVAILABLE, else # ACTION-IF-UNAVAILABLE. AC_DEFUN([_AC_CXX_STD_TRY], [AC_MSG_CHECKING([for $CXX option to enable ]m4_translit(m4_translit($1, [x], [+]), [a-z], [A-Z])[ features]) AC_LANG_PUSH(C++)dnl AC_CACHE_VAL(ac_cv_prog_cxx_$1, [ac_cv_prog_cxx_$1=no ac_save_CXX=$CXX AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])]) for ac_arg in '' $4 do CXX="$ac_save_CXX $ac_arg" _AC_COMPILE_IFELSE([], [ac_cv_prog_cxx_$1=$ac_arg]) test "x$ac_cv_prog_cxx_$1" != "xno" && break done rm -f conftest.$ac_ext CXX=$ac_save_CXX ])# AC_CACHE_VAL ac_prog_cxx_stdcxx_options= case "x$ac_cv_prog_cxx_$1" in x) AC_MSG_RESULT([none needed]) ;; xno) AC_MSG_RESULT([unsupported]) ;; *) ac_prog_cxx_stdcxx_options=" $ac_cv_prog_cxx_$1" CXX=$CXX$ac_prog_cxx_stdcxx_options AC_MSG_RESULT([$ac_cv_prog_cxx_$1]) ;; esac AC_LANG_POP(C++)dnl AS_IF([test "x$ac_cv_prog_cxx_$1" != xno], [$5], [$6]) ])# _AC_CXX_STD_TRY # _AC_CXX_CXX98_TEST_HEADER # ------------------------- # A C++ header suitable for testing for CXX98. AC_DEFUN([_AC_CXX_CXX98_TEST_HEADER], [[ #include <algorithm> #include <cstdlib> #include <fstream> #include <iomanip> #include <iostream> #include <list> #include <map> #include <set> #include <sstream> #include <stdexcept> #include <string> #include <utility> #include <vector> namespace test { typedef std::vector<std::string> string_vec; typedef std::pair<int,bool> map_value; typedef std::map<std::string,map_value> map_type; typedef std::set<int> set_type; template<typename T> class printer { public: printer(std::ostringstream& os): os(os) {} void operator() (T elem) { os << elem << std::endl; } private: std::ostringstream& os; }; } ]])# _AC_CXX_CXX98_TEST_HEADER # _AC_CXX_CXX98_TEST_BODY # ----------------------- # A C++ body suitable for testing for CXX98, assuming the corresponding header. AC_DEFUN([_AC_CXX_CXX98_TEST_BODY], [[ try { // Basic string. std::string teststr("ASCII text"); teststr += " string"; // Simple vector. test::string_vec testvec; testvec.push_back(teststr); testvec.push_back("foo"); testvec.push_back("bar"); if (testvec.size() != 3) { throw std::runtime_error("vector size is not 1"); } // Dump vector into stringstream and obtain string. std::ostringstream os; for (test::string_vec::const_iterator i = testvec.begin(); i != testvec.end(); ++i) { if (i + 1 != testvec.end()) { os << teststr << '\n'; } } // Check algorithms work. std::for_each(testvec.begin(), testvec.end(), test::printer<std::string>(os)); std::string os_out = os.str(); // Test pair and map. test::map_type testmap; testmap.insert(std::make_pair(std::string("key"), std::make_pair(53,false))); // Test set. int values[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; test::set_type testset(values, values + sizeof(values)/sizeof(values[0])); std::list<int> testlist(testset.begin(), testset.end()); std::copy(testset.begin(), testset.end(), std::back_inserter(testlist)); } catch (const std::exception& e) { std::cerr << "Caught exception: " << e.what() << std::endl; // Test fstream std::ofstream of("test.txt"); of << "Test ASCII text\n" << std::flush; of << "N= " << std::hex << std::setw(8) << std::left << 534 << std::endl; of.close(); } std::exit(0); ]]) # _AC_CXX_CXX11_TEST_HEADER # ------------------------- # A C++ header suitable for testing for CXX11. AC_DEFUN([_AC_CXX_CXX11_TEST_HEADER], [[ #include <deque> #include <functional> #include <memory> #include <tuple> #include <array> #include <regex> #include <iostream> namespace cxx11test { typedef std::shared_ptr<std::string> sptr; typedef std::weak_ptr<std::string> wptr; typedef std::tuple<std::string,int,double> tp; typedef std::array<int, 20> int_array; constexpr int get_val() { return 20; } struct testinit { int i; double d; }; class delegate { public: delegate(int n) : n(n) {} delegate(): delegate(2354) {} virtual int getval() { return this->n; }; protected: int n; }; class overridden : public delegate { public: overridden(int n): delegate(n) {} virtual int getval() override final { return this->n * 2; } }; class nocopy { public: nocopy(int i): i(i) {} nocopy() = default; nocopy(const nocopy&) = delete; nocopy & operator=(const nocopy&) = delete; private: int i; }; } ]])# _AC_CXX_CXX11_TEST_HEADER # _AC_CXX_CXX11_TEST_BODY # ----------------------- # A C++ body suitable for testing for CXX11, assuming the corresponding header. AC_DEFUN([_AC_CXX_CXX11_TEST_BODY], [[ { // Test auto and decltype std::deque<int> d; d.push_front(43); d.push_front(484); d.push_front(3); d.push_front(844); int total = 0; for (auto i = d.begin(); i != d.end(); ++i) { total += *i; } auto a1 = 6538; auto a2 = 48573953.4; auto a3 = "String literal"; decltype(a2) a4 = 34895.034; } { // Test constexpr short sa[cxx11test::get_val()] = { 0 }; } { // Test initializer lists cxx11test::testinit il = { 4323, 435234.23544 }; } { // Test range-based for and lambda cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; for (int &x : array) { x += 23; } std::for_each(array.begin(), array.end(), [](int v1){ std::cout << v1; }); } { using cxx11test::sptr; using cxx11test::wptr; sptr sp(new std::string("ASCII string")); wptr wp(sp); sptr sp2(wp); } { cxx11test::tp tuple("test", 54, 45.53434); double d = std::get<2>(tuple); std::string s; int i; std::tie(s,i,d) = tuple; } { static std::regex filename_regex("^_?([a-z0-9_.]+-)+[a-z0-9]+$"); std::string testmatch("Test if this string matches"); bool match = std::regex_search(testmatch, filename_regex); } { cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; cxx11test::int_array::size_type size = array.size(); } { // Test constructor delegation cxx11test::delegate d1; cxx11test::delegate d2(); cxx11test::delegate d3(45); } { // Test override and final cxx11test::overridden o1(55464); } { // Test nullptr char *c = nullptr; } { // Test template brackets std::vector<std::pair<int,char*>> v1; } { // Unicode literals char const *utf8 = u8"UTF-8 string \u2500"; char16_t const *utf16 = u"UTF-8 string \u2500"; char32_t const *utf32 = U"UTF-32 string \u2500"; } ]]) # _AC_PROG_CXX_CXX98 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) # ------------------------------------------------------------------- # If the C++ compiler is not in ISO C++98 mode by default, try to add # an option to output variable CXX to make it so. This macro tries # various options that select ISO C++98 on some system or another. It # considers the compiler to be in ISO C++98 mode if it handles basic # features of the std namespace including: string, containers (list, # map, set, vector), streams (fstreams, iostreams, stringstreams, # iomanip), pair, exceptions and algorithms. AC_DEFUN([_AC_PROG_CXX_CXX98], [_AC_CXX_STD_TRY([cxx98], [_AC_CXX_CXX98_TEST_HEADER], [_AC_CXX_CXX98_TEST_BODY], dnl Try dnl GCC -std=gnu++98 (unused restrictive mode: -std=c++98) dnl IBM XL C -qlanglvl=extended dnl HP aC++ -AA dnl Intel ICC -std=gnu++98 dnl Solaris N/A (default) dnl Tru64 N/A (default, but -std gnu could be used) dnl with extended modes being tried first. [[-std=gnu++98 -std=c++98 -qlanglvl=extended -AA]], [$1], [$2])[]dnl ])# _AC_PROG_CXX_CXX98 # _AC_PROG_CXX_CXX11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) # ------------------------------------------------------------------- # If the C++ compiler is not in ISO CXX11 mode by default, try to add # an option to output variable CXX to make it so. This macro tries # various options that select ISO C++11 on some system or another. It # considers the compiler to be in ISO C++11 mode if it handles all the # tests from the C++98 checks, plus the following: Language features # (auto, constexpr, decltype, default/deleted constructors, delegate # constructors, final, initializer lists, lambda functions, nullptr, # override, range-based for loops, template brackets without spaces, # unicode literals) and library features (array, memory (shared_ptr, # weak_ptr), regex and tuple types). AC_DEFUN([_AC_PROG_CXX_CXX11], [_AC_CXX_STD_TRY([cxx11], [_AC_CXX_CXX11_TEST_HEADER _AC_CXX_CXX98_TEST_HEADER], [_AC_CXX_CXX11_TEST_BODY _AC_CXX_CXX98_TEST_BODY], dnl Try dnl GCC -std=gnu++11 (unused restrictive mode: -std=c++11) [and 0x variants] dnl IBM XL C -qlanglvl=extended0x dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdcxx11) dnl HP aC++ -AA dnl Intel ICC -std=c++11 -std=c++0x dnl Solaris N/A (no support) dnl Tru64 N/A (no support) dnl with extended modes being tried first. [[-std=gnu++11 -std=c++11 -std=gnu++0x -std=c++0x -qlanglvl=extended0x -AA]], [$1], [$2])[]dnl ])# _AC_PROG_CXX_CXX11 ])# m4_version_prereq ���������������������������������������������������������������������libidn-1.38/gl/m4/wint_t.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000003433�14076273520�012276� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wint_t.m4 serial 11 dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <wchar.h> has the 'wint_t' type and whether gnulib's dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h> wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) dnl Determine whether gnulib's <wchar.h> or <wctype.h> would, if present, dnl override 'wint_t'. AC_CACHE_CHECK([whether wint_t is large enough], [gl_cv_type_wint_t_large_enough], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <wchar.h> int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; ]])], [gl_cv_type_wint_t_large_enough=yes], [gl_cv_type_wint_t_large_enough=no])]) if test $gl_cv_type_wint_t_large_enough = no; then GNULIBHEADERS_OVERRIDE_WINT_T=1 else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi else GNULIBHEADERS_OVERRIDE_WINT_T=0 fi AC_SUBST([GNULIBHEADERS_OVERRIDE_WINT_T]) ]) dnl Prerequisites of the 'wint_t' override. AC_DEFUN([gl_TYPE_WINT_T_PREREQ], [ AC_CHECK_HEADERS_ONCE([crtdefs.h]) if test $ac_cv_header_crtdefs_h = yes; then HAVE_CRTDEFS_H=1 else HAVE_CRTDEFS_H=0 fi AC_SUBST([HAVE_CRTDEFS_H]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/fcntl.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000012172�14076273520�012100� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fcntl.m4 serial 11 dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For now, this module ensures that fcntl() # - supports F_DUPFD correctly # - supports or emulates F_DUPFD_CLOEXEC # - supports F_GETFD # Still to be ported to mingw: # - F_SETFD # - F_GETFL, F_SETFL # - F_GETOWN, F_SETOWN # - F_GETLK, F_SETLK, F_SETLKW AC_DEFUN([gl_FUNC_FCNTL], [ dnl Persuade glibc to expose F_DUPFD_CLOEXEC. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then gl_REPLACE_FCNTL else dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target dnl haiku alpha 2 F_DUPFD has wrong errno AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], [gl_cv_func_fcntl_f_dupfd_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <errno.h> #include <fcntl.h> #include <limits.h> #include <sys/resource.h> #include <unistd.h> ]GL_MDA_DEFINES[ #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result;]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], [case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac])]) case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) gl_REPLACE_FCNTL AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD behavior does not match POSIX]) ;; esac dnl Many systems lack F_DUPFD_CLOEXEC. dnl NetBSD 9.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD. AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], [gl_cv_func_fcntl_f_dupfd_cloexec], [AC_RUN_IFELSE( [AC_LANG_SOURCE( [[#include <fcntl.h> #include <unistd.h> int main (int argc, char *argv[]) { if (argc == 1) /* parent process */ { if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) return 1; return execl ("./conftest", "./conftest", "child", NULL); } else /* child process */ return (fcntl (10, F_GETFL) < 0 ? 0 : 42); } ]]) ], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif ]])], [gl_cv_func_fcntl_f_dupfd_cloexec=yes], [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"]) ], [gl_cv_func_fcntl_f_dupfd_cloexec=no], [case "$host_os" in # Guess no on NetBSD. netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_fcntl_f_dupfd_cloexec" in *yes) ;; *) gl_REPLACE_FCNTL dnl No witness macro needed for this bug. ;; esac fi dnl Replace fcntl() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then gl_REPLACE_FCNTL fi ]) ]) AC_DEFUN([gl_REPLACE_FCNTL], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/absolute-header.m4����������������������������������������������������������������0000644�0000000�0000000�00000010151�14076273520�014031� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# absolute-header.m4 serial 17 dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Derek Price. # gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) # --------------------------------------- # Find the absolute name of a header file, testing first if the header exists. # If the header were sys/inttypes.h, this macro would define # ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h # in config.h # (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. AC_DEFUN([gl_ABSOLUTE_HEADER], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_PREPROC_REQUIRE()dnl m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_absolute_header], [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], [gl_absolute_header], [AS_VAR_PUSHDEF([ac_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl if test AS_VAR_GET([ac_header_exists]) = yes; then gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) fi AS_VAR_POPDEF([ac_header_exists])dnl ])dnl AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), ["AS_VAR_GET([gl_absolute_header])"], [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.]) AS_VAR_POPDEF([gl_absolute_header])dnl ])dnl ])# gl_ABSOLUTE_HEADER # gl_ABSOLUTE_HEADER_ONE(HEADER) # ------------------------------ # Like gl_ABSOLUTE_HEADER, except that: # - it assumes that the header exists, # - it uses the current CPPFLAGS, # - it does not cache the result, # - it is silent. AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header files dnl that contain only a #include of other header files and no dnl non-comment tokens of their own. This leads to a failure to dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h> dnl and others. The workaround is to force preservation of comments dnl through option -C. This ensures all necessary #line directives dnl are present. GCC supports option -C as well. case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac changequote(,) case "$host_os" in mingw*) dnl For the sake of native Windows compilers (excluding gcc), dnl treat backslash as a directory separator, like /. dnl Actually, these compilers use a double-backslash as dnl directory separator, inside the dnl # line "filename" dnl directives. gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac dnl A sed expression that turns a string into a basic regular dnl expression, for use within "/.../". gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo '$1' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' changequote([,]) dnl eval is necessary to expand gl_absname_cpp. dnl Ultrix and Pyramid sh refuse to redirect output of eval, dnl so use subshell. AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), [`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/stat.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000005457�14076273520�011755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 18 # Copyright (C) 2009-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) case "$host_os" in mingw*) dnl On this platform, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. REPLACE_STAT=1 ;; *) dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/stat.h> ]], [[int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; esac ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs help when passed a file name with a trailing slash]);; esac case $host_os in dnl Solaris stat can return a negative tv_nsec. solaris*) REPLACE_FSTAT=1 ;; esac ;; esac ]) # Prerequisites of lib/stat.c and lib/stat-w32.c. AC_DEFUN([gl_PREREQ_STAT], [ AC_REQUIRE([gl_SYS_STAT_H]) AC_REQUIRE([gl_PREREQ_STAT_W32]) : ]) # Prerequisites of lib/stat-w32.c. AC_DEFUN([gl_PREREQ_STAT_W32], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) AC_CHECK_HEADERS([sdkddkver.h]) ;; esac ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/sys_types_h.m4��������������������������������������������������������������������0000644�0000000�0000000�00000004361�14076273520�013344� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_types_h.m4 serial 13 dnl Copyright (C) 2011-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_TYPES_H], [ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) dnl Use sane struct stat types in OpenVMS 8.2 and later. AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.]) gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Whether to override the 'dev_t' and 'ino_t' types. m4_ifdef([gl_WINDOWS_STAT_INODES], [ AC_REQUIRE([gl_WINDOWS_STAT_INODES]) ], [ WINDOWS_STAT_INODES=0 ]) AC_SUBST([WINDOWS_STAT_INODES]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_TYPES_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS], [ ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) # This works around a buggy version in autoconf <= 2.69. # See <https://lists.gnu.org/r/autoconf/2016-08/msg00014.html> # The 2.70 version isn't quoted properly, so override it too. m4_version_prereq([2.70.1], [], [ m4_undefine([AC_HEADER_MAJOR]) AC_DEFUN([AC_HEADER_MAJOR], [AC_CHECK_HEADERS_ONCE([sys/types.h]) AC_CHECK_HEADER([sys/mkdev.h], [AC_DEFINE([MAJOR_IN_MKDEV], [1], [Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.])]) if test $ac_cv_header_sys_mkdev_h = no; then AC_CHECK_HEADER([sys/sysmacros.h], [AC_DEFINE([MAJOR_IN_SYSMACROS], [1], [Define to 1 if `major', `minor', and `makedev' are declared in <sysmacros.h>.])]) fi ])# AC_HEADER_MAJOR ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/msvc-nothrow.m4�������������������������������������������������������������������0000644�0000000�0000000�00000000530�14076273520�013433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_NOTHROW], [ AC_REQUIRE([gl_MSVC_INVAL]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/string_h.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000015677�14076273520�012624� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Configure a GNU-like replacement for <string.h>. # Copyright (C) 2007-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 32 # Written by Paul Eggert. AC_DEFUN_ONCE([gl_STRING_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include <string.h> ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp]) AC_REQUIRE([AC_C_RESTRICT]) ]) # gl_STRING_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STRING_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPLICIT_BZERO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSLL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRCHR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPCASECMP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASESTR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCSPN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPBRK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSIGNAL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRVERSCMP]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MEMCCPY], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STRING_H_DEFAULTS]) ]) AC_DEFUN([gl_STRING_H_DEFAULTS], [ HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO]) HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) HAVE_STRERRORNAME_NP=1; AC_SUBST([HAVE_STRERRORNAME_NP]) HAVE_SIGABBREV_NP=1; AC_SUBST([HAVE_SIGABBREV_NP]) HAVE_SIGDESCR_NP=1; AC_SUBST([HAVE_SIGDESCR_NP]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRERRORNAME_NP=0; AC_SUBST([REPLACE_STRERRORNAME_NP]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) �����������������������������������������������������������������libidn-1.38/gl/m4/stddef_h.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000007157�14076273520�012561� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stddef_h.m4 serial 11 dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl A placeholder for <stddef.h>, for platforms that have issues. AC_DEFUN_ONCE([gl_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) dnl Persuade OpenBSD <stddef.h> to declare max_align_t. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) STDDEF_H= dnl Test whether the type max_align_t exists and whether its alignment dnl "is as great as is supported by the implementation in all contexts". AC_CACHE_CHECK([for good max_align_t], [gl_cv_type_max_align_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stddef.h> unsigned int s = sizeof (max_align_t); #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; #endif typedef struct { char a; max_align_t b; } max_helper; typedef struct { char a; long b; } long_helper; typedef struct { char a; double b; } double_helper; typedef struct { char a; long double b; } long_double_helper; int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; ]])], [gl_cv_type_max_align_t=yes], [gl_cv_type_max_align_t=no]) ]) if test $gl_cv_type_max_align_t = no; then HAVE_MAX_ALIGN_T=0 STDDEF_H=stddef.h fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h> int test[2 * (sizeof NULL == sizeof (void *)) -1]; ]])], [gl_cv_decl_null_works=yes], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi AC_SUBST([STDDEF_H]) AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi ]) # gl_STDDEF_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STDDEF_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS], [ ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/open-slash.m4���������������������������������������������������������������������0000644�0000000�0000000�00000003455�14076273520�013047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# open-slash.m4 serial 2 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Tests whether open() and creat() recognize a trailing slash. dnl Sets gl_cv_func_open_slash. AC_DEFUN([gl_OPEN_TRAILING_SLASH_BUG], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) AC_CACHE_CHECK([whether open recognizes a trailing slash], [gl_cv_func_open_slash], [# Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <fcntl.h> #if HAVE_UNISTD_H # include <unistd.h> #endif ]GL_MDA_DEFINES[ int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; }]])], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no], [ changequote(,)dnl case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl conftest.tmp conftest.lnk ]) case "$gl_cv_func_open_slash" in *no) AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if open() fails to recognize a trailing slash.]) ;; esac ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/open-cloexec.m4�������������������������������������������������������������������0000644�0000000�0000000�00000001323�14076273520�013347� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test whether O_CLOEXEC is defined. dnl Copyright 2017-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PREPROC_O_CLOEXEC], [ AC_CACHE_CHECK([for O_CLOEXEC], [gl_cv_macro_O_CLOEXEC], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <fcntl.h> #ifndef O_CLOEXEC choke me; #endif ]], [[return O_CLOEXEC;]])], [gl_cv_macro_O_CLOEXEC=yes], [gl_cv_macro_O_CLOEXEC=no])]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/version-etc.m4��������������������������������������������������������������������0000644�0000000�0000000�00000002226�14076273520�013227� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# version-etc.m4 serial 1 # Copyright (C) 2009-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl $1 - configure flag and define name dnl $2 - human readable description m4_define([gl_VERSION_ETC_FLAG], [dnl AC_ARG_WITH([$1], [AS_HELP_STRING([--with-$1], [$2])], [dnl case $withval in yes|no) ;; *) AC_DEFINE_UNQUOTED(AS_TR_CPP([PACKAGE_$1]), ["$withval"], [$2]) ;; esac ]) ]) AC_DEFUN([gl_VERSION_ETC], [dnl gl_VERSION_ETC_FLAG([packager], [String identifying the packager of this software]) gl_VERSION_ETC_FLAG([packager-version], [Packager-specific version information]) gl_VERSION_ETC_FLAG([packager-bug-reports], [Packager info for bug reports (URL/e-mail/...)]) if test "X$with_packager" = "X" && \ test "X$with_packager_version$with_packager_bug_reports" != "X" then AC_MSG_ERROR([The --with-packager-{bug-reports,version} options require --with-packager]) fi ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/sys_stat_h.m4���������������������������������������������������������������������0000644�0000000�0000000�00000012054�14076273520�013151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_stat_h.m4 serial 41 -*- Autoconf -*- dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Eric Blake. dnl Provide a GNU-like <sys/stat.h>. AC_DEFUN_ONCE([gl_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to enable precise timestamps in 'struct stat'. m4_ifdef([gl_WINDOWS_STAT_TIMESPEC], [ AC_REQUIRE([gl_WINDOWS_STAT_TIMESPEC]) ], [ WINDOWS_STAT_TIMESPEC=0 ]) AC_SUBST([WINDOWS_STAT_TIMESPEC]) dnl Whether to ensure that struct stat.st_size is 64-bit wide. m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_ST_SIZE=0 ]) AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) dnl Define types that are supposed to be defined in <sys/types.h> or dnl <sys/stat.h>. AC_CHECK_TYPE([nlink_t], [], [AC_DEFINE([nlink_t], [int], [Define to the type of st_nlink in struct stat, or a supertype.])], [#include <sys/types.h> #include <sys/stat.h>]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h> ]], [fchmodat fstat fstatat futimens getumask lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) AC_REQUIRE([AC_C_RESTRICT]) ]) # gl_SYS_STAT_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_SYS_STAT_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [ gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FUTIMENS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUMASK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHMOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSTAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIRAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFOAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNOD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNODAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIMENSAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OVERRIDES_STRUCT_STAT]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHMOD], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKDIR], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UMASK], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) HAVE_GETUMASK=1; AC_SUBST([HAVE_GETUMASK]) HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) REPLACE_FCHMODAT=0; AC_SUBST([REPLACE_FCHMODAT]) REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) REPLACE_MKFIFOAT=0; AC_SUBST([REPLACE_MKFIFOAT]) REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) REPLACE_MKNODAT=0; AC_SUBST([REPLACE_MKNODAT]) REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/warn-on-use.m4��������������������������������������������������������������������0000644�0000000�0000000�00000004230�14076273520�013141� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# warn-on-use.m4 serial 9 dnl Copyright (C) 2010-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- # If the module 'posixcheck' is in use: # # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. # # See warn-on-use.h for some hints on how to poison function names, as # well as ideas on poisoning global variables and macros. NAMES may # include global variables, but remember that only functions work with # _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single # header, but if the replacement header pulls in other headers because # some systems declare functions in the wrong header, then INCLUDES # should do likewise. # # It is generally safe to assume declarations for functions declared # in the intersection of C89 and C11 (such as printf) without # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ m4_ifdef([gl_POSIXCHECK], [m4_foreach_w([gl_decl], [$2], [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), [Define to 1 if ]m4_defn([gl_decl])[ is declared even after undefining macros.])])dnl for gl_func in m4_flatten([$2]); do AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl AC_CACHE_CHECK([whether $gl_func is declared without a macro], [gl_Symbol], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [[#undef $gl_func (void) $gl_func;]])], [AS_VAR_SET([gl_Symbol], [yes])], [AS_VAR_SET([gl_Symbol], [no])])]) AS_VAR_IF([gl_Symbol], [yes], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) dnl shortcut - if the raw declaration exists, then set a cache dnl variable to allow skipping any later AC_CHECK_DECL efforts eval ac_cv_have_decl_$gl_func=yes]) AS_VAR_POPDEF([gl_Symbol])dnl done ]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/stdint.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000043027�14076273520�012302� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdint.m4 serial 60 dnl Copyright (C) 2001-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether <stdint.h> is supported or must be substituted. AC_PREREQ([2.61]) AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_LIMITS_H]) AC_REQUIRE([gt_TYPE_WINT_T]) dnl For backward compatibility. Some packages may still be testing these dnl macros. AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) dnl Check for <inttypes.h>. AC_CHECK_HEADERS_ONCE([inttypes.h]) if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi AC_SUBST([HAVE_INTTYPES_H]) dnl Check for <sys/types.h>. AC_CHECK_HEADERS_ONCE([sys/types.h]) if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi AC_SUBST([HAVE_SYS_TYPES_H]) gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi AC_SUBST([HAVE_STDINT_H]) dnl Now see whether we need a substitute <stdint.h>. if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include <stdint.h> /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" #endif ] gl_STDINT_INCLUDES [ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include <limits.h> /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], [dnl Determine whether the various *_MIN, *_MAX macros are usable dnl in preprocessor expression. We could do it by compiling a test dnl program for each of these macros. It is faster to run a program dnl that inspects the macro expansion. dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include <stdint.h> ] gl_STDINT_INCLUDES [ #include <stdio.h> #include <string.h> #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; ]], [[ const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ]])], [gl_cv_header_working_stdint_h=yes], [], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; # In general, assume it works. *) gl_cv_header_working_stdint_h="guessing yes" ;; esac ]) ]) ]) fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 STDINT_H=stdint.h case "$gl_cv_header_working_stdint_h" in *yes) HAVE_C99_STDINT_H=1 dnl Now see whether the system <stdint.h> works without dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined. dnl If not, there would be problems when stdint.h is included from C++. AC_CACHE_CHECK([whether stdint.h works without ISO C predefines], [gl_cv_header_stdint_without_STDC_macros], [gl_cv_header_stdint_without_STDC_macros=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include <stdint.h> ] gl_STDINT_INCLUDES [ intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); ]])], [gl_cv_header_stdint_without_STDC_macros=yes]) ]) if test $gl_cv_header_stdint_without_STDC_macros = no; then AC_DEFINE([__STDC_CONSTANT_MACROS], [1], [Define to 1 if the system <stdint.h> predates C++11.]) AC_DEFINE([__STDC_LIMIT_MACROS], [1], [Define to 1 if the system <stdint.h> predates C++11.]) fi AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.], [gl_cv_header_stdint_width], [gl_cv_header_stdint_width=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include <stdint.h> ]gl_STDINT_INCLUDES[ int iw = UINTMAX_WIDTH; ]])], [gl_cv_header_stdint_width=yes])]) if test "$gl_cv_header_stdint_width" = yes; then STDINT_H= fi ;; *) dnl Check for <sys/inttypes.h>, and for dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5). AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi gl_STDINT_TYPE_PROPERTIES ;; esac dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. gl_REPLACE_LIMITS_H AC_SUBST([HAVE_C99_STDINT_H]) AC_SUBST([HAVE_SYS_BITYPES_H]) AC_SUBST([HAVE_SYS_INTTYPES_H]) AC_SUBST([STDINT_H]) AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) dnl Determine the size of each of the given types in bits. AC_DEFUN([gl_STDINT_BITSIZEOF], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to the number of bits in type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [$2 #include <limits.h>], [result=unknown]) eval gl_cv_bitsizeof_${gltype}=\$result ]) eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, dnl do a syntax check even on unused #if conditions and give an error dnl on valid C code like this: dnl #if 0 dnl # if > 32 dnl # endif dnl #endif result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) eval BITSIZEOF_${GLTYPE}=\$result done m4_foreach_w([gltype], [$1], [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) dnl Determine the signedness of each of the given types. dnl Define HAVE_SIGNED_TYPE if type is signed. AC_DEFUN([gl_CHECK_TYPES_SIGNED], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to 1 if ']gltype[' is a signed integer type.])]) for gltype in $1 ; do AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], result=yes, result=no) eval gl_cv_type_${gltype}_signed=\$result ]) eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done m4_foreach_w([gltype], [$1], [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) dnl Determine the suffix to use for integer constants of the given types. dnl Define t_SUFFIX for each such type. AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], [Define to l, ll, u, ul, ull, etc., as suitable for constants of type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for $gltype integer literal suffix], [gl_cv_type_${gltype}_suffix], [eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ extern $gltype foo; extern $gltype1 foo;]])], [eval gl_cv_type_${gltype}_suffix=\$glsuf]) eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done]) GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) done m4_foreach_w([gltype], [$1], [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) ]) dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ #include <stddef.h> #include <signal.h> #if HAVE_WCHAR_H # include <wchar.h> #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/getprogname.m4��������������������������������������������������������������������0000644�0000000�0000000�00000002633�14076273520�013303� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getprogname.m4 - check for getprogname or replacements for it # Copyright (C) 2016-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 AC_DEFUN([gl_FUNC_GETPROGNAME], [ AC_CHECK_FUNCS_ONCE([getprogname getexecname]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) ac_found=0 AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [], [#include <errno.h>]) AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [], [#include <errno.h>]) AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include <stdlib.h>]) # Incur the cost of this test only if none of the above worked. if test $ac_found = 0; then # On OpenBSD 5.1, using the global __progname variable appears to be # the only way to implement getprogname. AC_CACHE_CHECK([whether __progname is defined in default libraries], [gl_cv_var___progname], [ gl_cv_var___progname= AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern char *__progname;]], [[return *__progname;]] )], [gl_cv_var___progname=yes] ) ] ) if test "$gl_cv_var___progname" = yes; then AC_DEFINE([HAVE_VAR___PROGNAME], 1, [Define if you have a global __progname variable]) fi fi ]) �����������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/stdarg.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000005333�14076273520�012257� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdarg.m4 serial 7 dnl Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Provide a working va_copy in combination with <stdarg.h>. AC_DEFUN([gl_STDARG_H], [ STDARG_H='' NEXT_STDARG_H='<stdarg.h>' AC_CACHE_CHECK([for va_copy], [gl_cv_func_va_copy], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdarg.h>]], [[ #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif ]])], [gl_cv_func_va_copy=yes], [gl_cv_func_va_copy=no]) ]) if test $gl_cv_func_va_copy = no; then dnl Provide a substitute. dnl Usually a simple definition in <config.h> is enough. Not so on AIX 5 dnl with some versions of the /usr/vac/bin/cc compiler. It has an <stdarg.h> dnl which does '#undef va_copy', leading to a missing va_copy symbol. For dnl this platform, we use an <stdarg.h> substitute. But we cannot use this dnl approach on other platforms, because <stdarg.h> often defines only dnl preprocessor macros and gl_ABSOLUTE_HEADER, gl_CHECK_NEXT_HEADERS do dnl not work in this situation. AC_EGREP_CPP([vaccine], [#if defined _AIX && !defined __GNUC__ AIX vaccine #endif ], [gl_aixcc=yes], [gl_aixcc=no]) if test $gl_aixcc = yes; then dnl Provide a substitute <stdarg.h> file. STDARG_H=stdarg.h gl_NEXT_HEADERS([stdarg.h]) dnl Fallback for the case when <stdarg.h> contains only macro definitions. if test "$gl_cv_next_stdarg_h" = '""'; then gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else dnl Provide a substitute in <config.h>, either __va_copy or as a simple dnl assignment. gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stdarg.h>]], [[ #ifndef __va_copy error, bail out #endif ]])], [gl_cv_func___va_copy=yes], [gl_cv_func___va_copy=no])]) if test $gl_cv_func___va_copy = yes; then AC_DEFINE([va_copy], [__va_copy], [Define as a macro for copying va_list variables.]) else AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed. */ #define gl_va_copy(a,b) ((a) = (b))]) AC_DEFINE([va_copy], [gl_va_copy], [Define as a macro for copying va_list variables.]) fi fi fi AC_SUBST([STDARG_H]) AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"]) AC_SUBST([NEXT_STDARG_H]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/pathmax.m4������������������������������������������������������������������������0000644�0000000�0000000�00000002155�14076273520�012434� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pathmax.m4 serial 11 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2021 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Expands to a piece of C program that defines PATH_MAX in the same way as # "pathmax.h" will do. AC_DEFUN([gl_PATHMAX_SNIPPET], [[ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include <unistd.h> #endif #include <limits.h> #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include <sys/param.h> #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif ]]) # Prerequisites of gl_PATHMAX_SNIPPET. AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/off_t.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000001006�14076273520�012061� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# off_t.m4 serial 1 dnl Copyright (C) 2012-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check whether to override the 'off_t' type. dnl Set WINDOWS_64_BIT_OFF_T. AC_DEFUN([gl_TYPE_OFF_T], [ m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_OFF_T=0 ]) AC_SUBST([WINDOWS_64_BIT_OFF_T]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/fcntl-o.m4������������������������������������������������������������������������0000644�0000000�0000000�00000011236�14076273520�012334� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fcntl-o.m4 serial 7 dnl Copyright (C) 2006, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_PREREQ([2.60]) # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> #include <sys/stat.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <io.h> # include <stdlib.h> # defined sleep(n) _sleep ((n) * 1000) #endif #include <fcntl.h> ]GL_MDA_DEFINES[ #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [case "$host_os" in # Guess 'no' on native Windows. mingw*) gl_cv_header_working_fcntl_h='no' ;; *) gl_cv_header_working_fcntl_h=cross-compiling ;; esac ]) ]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/ld-output-def.m4������������������������������������������������������������������0000644�0000000�0000000�00000002040�14076273520�013454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ld-output-def.m4 serial 3 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_LD_OUTPUT_DEF() # ------------- # Check if linker supports -Wl,--output-def and define automake # conditional HAVE_LD_OUTPUT_DEF if it is. AC_DEFUN([gl_LD_OUTPUT_DEF], [ AC_CACHE_CHECK([if gcc/ld supports -Wl,--output-def], [gl_cv_ld_output_def], [if test "$enable_shared" = no; then gl_cv_ld_output_def="not needed, shared libraries are disabled" else gl_ldflags_save=$LDFLAGS LDFLAGS="-Wl,--output-def,conftest.def" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]])], [gl_cv_ld_output_def=yes], [gl_cv_ld_output_def=no]) rm -f conftest.def LDFLAGS="$gl_ldflags_save" fi]) AM_CONDITIONAL([HAVE_LD_OUTPUT_DEF], test "x$gl_cv_ld_output_def" = "xyes") ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/double-slash-root.m4��������������������������������������������������������������0000644�0000000�0000000�00000003125�14076273520�014333� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# double-slash-root.m4 serial 4 -*- Autoconf -*- dnl Copyright (C) 2006, 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_DOUBLE_SLASH_ROOT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], [ if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # <bug-gnulib@gnu.org>. case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi]) if test "$gl_cv_double_slash_root" = yes; then AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1], [Define to 1 if // is a file system root distinct from /.]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/include_next.m4�������������������������������������������������������������������0000644�0000000�0000000�00000021037�14076273520�013453� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# include_next.m4 serial 26 dnl Copyright (C) 2006-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Derek Price. dnl Sets INCLUDE_NEXT, INCLUDE_NEXT_AS_FIRST_DIRECTIVE, PRAGMA_SYSTEM_HEADER, dnl and PRAGMA_COLUMNS. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. dnl dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler dnl supports it in the special case that it is the first include directive in dnl the given file, or to 'include' otherwise. dnl dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, dnl so as to avoid GCC warnings when the gcc option -pedantic is used. dnl '#pragma GCC system_header' has the same effect as if the file was found dnl through the include search path specified with '-isystem' options (as dnl opposed to the search path specified with '-I' options). Namely, gcc dnl does not warn about some things, and on some systems (Solaris and Interix) dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead dnl of plain '__STDC__'. dnl dnl PRAGMA_COLUMNS can be used in files that override system header files, so dnl as to avoid compilation errors on HP NonStop systems when the gnulib file dnl is included by a system header file that does a "#pragma COLUMNS 80" (which dnl has the effect of truncating the lines of that file and all files that it dnl includes to 80 columns) and the gnulib file has lines longer than 80 dnl columns. AC_DEFUN([gl_INCLUDE_NEXT], [ AC_LANG_PREPROC_REQUIRE() AC_CACHE_CHECK([whether the preprocessor supports include_next], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on dnl AIX 6.1 support include_next when used as first preprocessor directive dnl in a file, but not when preceded by another include directive. Check dnl for this bug by including <stdio.h>. dnl Additionally, with this same compiler, include_next is a no-op when dnl used in a header file that was included by specifying its absolute dnl file name. Despite these two bugs, include_next is used in the dnl compiler's <math.h>. By virtue of the second bug, we need to use dnl include_next as well in this case. cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include <stdio.h> #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat <<EOF > conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" dnl We intentionally avoid using AC_LANG_SOURCE here. AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], [gl_cv_have_include_next=yes], [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]], [gl_cv_have_include_next=buggy], [gl_cv_have_include_next=no]) ]) CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 ]) PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi AC_SUBST([INCLUDE_NEXT]) AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) AC_SUBST([PRAGMA_SYSTEM_HEADER]) dnl HP NonStop systems, which define __TANDEM, limit the line length dnl after including some system header files. AC_CACHE_CHECK([whether source code line length is unlimited], [gl_cv_source_line_length_unlimited], [AC_EGREP_CPP([choke me], [ #ifdef __TANDEM choke me #endif ], [gl_cv_source_line_length_unlimited=no], [gl_cv_source_line_length_unlimited=yes]) ]) if test $gl_cv_source_line_length_unlimited = no; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi AC_SUBST([PRAGMA_COLUMNS]) ]) # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------------ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # '<foo.h>'; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # Also, if #include_next works as first preprocessing directive in a file, # define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be '<foo.h>'; otherwise define it to # be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: # #@INCLUDE_NEXT@ @NEXT_FOO_H@ # or # #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained # #include_next <foo.h> # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. # # This macro also checks whether each header exists, by invoking # AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. AC_DEFUN([gl_CHECK_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [check]) ]) # gl_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------ # Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. # This is suitable for headers like <stddef.h> that are standardized by C89 # and therefore can be assumed to exist. AC_DEFUN([gl_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [assume]) ]) # The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [ AC_REQUIRE([gl_INCLUDE_NEXT]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_if([$2], [check], [AC_CHECK_HEADERS_ONCE([$1]) ]) m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], [gl_next_header], [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) if test AS_VAR_GET([gl_header_exists]) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) AS_VAR_SET([gl_next_header], ['"'$gl_header'"']) m4_if([$2], [check], [else AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET([gl_next_header])]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=AS_VAR_GET([gl_next_header]) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) # Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; # this fallback is safe for all earlier autoconf versions. m4_define_default([AC_LANG_DEFINES_PROVIDED]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/getline.m4������������������������������������������������������������������������0000644�0000000�0000000�00000006374�14076273520�012430� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getline.m4 serial 30 dnl Copyright (C) 1998-2003, 2005-2007, 2009-2021 Free Software Foundation, dnl Inc. dnl dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.59]) dnl See if there's a working, system-supplied version of the getline function. dnl We can't just do AC_REPLACE_FUNCS([getline]) because some systems dnl have a function by that name in -linet that doesn't have anything dnl to do with the function we need. AC_DEFUN([gl_FUNC_GETLINE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc <stdio.h> to declare getline(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([getline]) gl_getline_needs_run_time_check=no AC_CHECK_FUNC([getline], [dnl Found it in some library. Verify that it works. gl_getline_needs_run_time_check=yes], [am_cv_func_working_getline=no]) if test $gl_getline_needs_run_time_check = yes; then AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline], [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getline (&line, &siz, in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } free (line); } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getline (&line, &siz, in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } ]])], [am_cv_func_working_getline=yes], [am_cv_func_working_getline=no], [dnl We're cross compiling. dnl Guess it works on glibc2 systems and musl systems. AC_EGREP_CPP([Lucky GNU user], [ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [am_cv_func_working_getline="guessing yes"], [case "$host_os" in *-musl*) am_cv_func_working_getline="guessing yes" ;; *) am_cv_func_working_getline="$gl_cross_guess_normal" ;; esac ]) ]) ]) fi if test $ac_cv_have_decl_getline = no; then HAVE_DECL_GETLINE=0 fi case "$am_cv_func_working_getline" in *yes) ;; *) dnl Set REPLACE_GETLINE always: Even if we have not found the broken dnl getline function among $LIBS, it may exist in libinet and the dnl executable may be linked with -linet. REPLACE_GETLINE=1 ;; esac ]) # Prerequisites of lib/getline.c. AC_DEFUN([gl_PREREQ_GETLINE], [ : ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/autobuild.m4����������������������������������������������������������������������0000644�0000000�0000000�00000002007�14076273520�012756� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# autobuild.m4 serial 8 dnl Copyright (C) 2004, 2006-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # Usage: AB_INIT([MODE]). AC_DEFUN([AB_INIT], [ AC_REQUIRE([AC_CANONICAL_BUILD]) AC_REQUIRE([AC_CANONICAL_HOST]) if test -z "$AB_PACKAGE"; then AB_PACKAGE=${PACKAGE_NAME:-$PACKAGE} fi AC_MSG_NOTICE([autobuild project... $AB_PACKAGE]) if test -z "$AB_VERSION"; then AB_VERSION=${PACKAGE_VERSION:-$VERSION} fi AC_MSG_NOTICE([autobuild revision... $AB_VERSION]) hostname=`hostname` if test "$hostname"; then AC_MSG_NOTICE([autobuild hostname... $hostname]) fi m4_if([$1],[],,[AC_MSG_NOTICE([autobuild mode... $1])]) date=`TZ=UTC0 date +%Y%m%dT%H%M%SZ` if test "$?" != 0; then date=`date` fi if test "$date"; then AC_MSG_NOTICE([autobuild timestamp... $date]) fi ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/visibility.m4���������������������������������������������������������������������0000644�0000000�0000000�00000006622�14076273520�013164� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# visibility.m4 serial 8 dnl Copyright (C) 2005, 2008, 2010-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl Mac OS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then dnl First, check whether -Werror can be added to the command line, or dnl whether it leads to an error because of some other option that the dnl user has put into $CC $CFLAGS $CPPFLAGS. AC_CACHE_CHECK([whether the -Werror option is usable], [gl_cv_cc_vis_werror], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_vis_werror=yes], [gl_cv_cc_vis_werror=no]) CFLAGS="$gl_save_CFLAGS" ]) dnl Now check whether visibility declarations are supported. AC_CACHE_CHECK([for simple visibility declarations], [gl_cv_cc_visibility], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" dnl We use the option -Werror and a function dummyfunc, because on some dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning dnl "visibility attribute not supported in this configuration; ignored" dnl at the first function definition in every compilation unit, and we dnl don't want to use the option in this case. if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void); int hiddenvar; int exportedvar; int hiddenfunc (void) { return 51; } int exportedfunc (void) { return 1225736919; } void dummyfunc (void) {} ]], [[]])], [gl_cv_cc_visibility=yes], [gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS" ]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) ��������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/csharpexec.m4���������������������������������������������������������������������0000644�0000000�0000000�00000004455�14076273520�013124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# csharpexec.m4 serial 8 dnl Copyright (C) 2003-2005, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Prerequisites of csharpexec.sh. # Checks for a C# execution engine. # gt_CSHARPEXEC or gt_CSHARPEXEC(testexecutable, its-directory) # Sets at most one of HAVE_MONO, HAVE_CLIX. # Sets HAVE_CSHARPEXEC to nonempty if csharpexec.sh will work. AC_DEFUN([gt_CSHARPEXEC], [ AC_REQUIRE([gt_CSHARP_CHOICE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_MSG_CHECKING([for C[#] program execution engine]) AC_EGREP_CPP([yes], [ #if defined _WIN32 || defined __EMX__ || defined __DJGPP__ yes #endif ], MONO_PATH_SEPARATOR=';', MONO_PATH_SEPARATOR=':') HAVE_CSHARPEXEC=1 pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl AC_CHECK_PROG([HAVE_MONO_IN_PATH], [mono], [yes]) AC_CHECK_PROG([HAVE_CLIX_IN_PATH], [clix], [yes]) popdef([AC_MSG_RESULT])dnl popdef([AC_CHECKING])dnl popdef([AC_MSG_CHECKING])dnl for impl in "$CSHARP_CHOICE" mono no; do case "$impl" in mono) if test -n "$HAVE_MONO_IN_PATH" \ && mono --version >/dev/null 2>/dev/null \ m4_if([$1], , , [&& mono $2/$1 >/dev/null 2>/dev/null]); then HAVE_MONO=1 ac_result="mono" break fi ;; sscli) if test -n "$HAVE_CLIX_IN_PATH" \ m4_if([$1], , , [&& clix $2/$1 >/dev/null 2>/dev/null]); then HAVE_CLIX=1 case $host_os in cygwin* | mingw* | pw32*) CLIX_PATH_VAR=PATH ;; darwin* | rhapsody*) CLIX_PATH_VAR=DYLD_LIBRARY_PATH ;; *) CLIX_PATH_VAR=LD_LIBRARY_PATH ;; esac eval CLIX_PATH=\"\$CLIX_PATH_VAR\" ac_result="clix" break fi ;; no) HAVE_CSHARPEXEC= ac_result="no" break ;; esac done AC_MSG_RESULT([$ac_result]) AC_SUBST([MONO_PATH]) AC_SUBST([MONO_PATH_SEPARATOR]) AC_SUBST([CLIX_PATH_VAR]) AC_SUBST([CLIX_PATH]) AC_SUBST([HAVE_MONO]) AC_SUBST([HAVE_CLIX]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/largefile.m4����������������������������������������������������������������������0000644�0000000�0000000�00000015200�14076273520�012717� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Enable large files on systems where this is not the default. # Enable support for files on Linux file systems with 64-bit inode numbers. # Copyright 1992-1996, 1998-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # The following macro works around a problem in Autoconf's AC_FUNC_FSEEKO: # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko # and ftello in C++ mode as well. AC_DEFUN([gl_SET_LARGEFILE_SOURCE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_FUNC_FSEEKO case "$host_os" in hpux*) AC_DEFINE([_LARGEFILE_SOURCE], [1], [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).]) ;; esac ]) # Work around a problem in Autoconf through at least 2.71 on glibc 2.34+ # with _TIME_BITS. Also, work around a problem in autoconf <= 2.69: # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. m4_version_prereq([2.70], [], [ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [#include <sys/types.h> /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) ])# m4_version_prereq 2.70 # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, # CACHE-VAR, # DESCRIPTION, # PROLOGUE, [FUNCTION-BODY]) # -------------------------------------------------------- m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], [AC_CACHE_CHECK([for $1 value needed for large files], [$3], [while :; do m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([$5], [$6])], [$3=no; break]) m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([#undef $1 #define $1 $2 $5], [$6])], [$3=$2; break]) $3=unknown break done]) case $$3 in #( no | unknown) ;; *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; esac rm -rf conftest*[]dnl ])# _AC_SYS_LARGEFILE_MACRO_VALUE # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: # http://www.unix.org/version2/whatsnew/lfs20mar.html # Additionally, on Linux file systems with 64-bit inodes a file that happens # to have a 64-bit inode number cannot be accessed by 32-bit applications on # Linux x86/x86_64. This can occur with file systems such as XFS and NFS. AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile, [ --disable-largefile omit support for large files]) AS_IF([test "$enable_largefile" != no], [AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) AC_COMPILE_IFELSE([], [break]) CC="$CC -n32" AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) break done CC=$ac_save_CC rm -f conftest.$ac_ext fi]) if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits, [Number of bits in a file offset, on hosts where this is settable.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) AS_CASE([$ac_cv_sys_file_offset_bits], [unknown], [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1], [ac_cv_sys_large_files], [Define for large files, on AIX-style hosts.], [_AC_SYS_LARGEFILE_TEST_INCLUDES])], [64], [gl_YEAR2038_BODY([])])]) ])# AC_SYS_LARGEFILE # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. # Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib # overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. AC_DEFUN([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows. dnl mingw64 defines off_t to a 64-bit type already, if dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) ]) if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi dnl Some mingw versions define, if _FILE_OFFSET_BITS=64, 'struct stat' dnl to 'struct _stat32i64' or 'struct _stat64' (depending on dnl _USE_32BIT_TIME_T), which has a 32-bit st_size member. AC_CACHE_CHECK([for 64-bit st_size], [gl_cv_member_st_size_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> struct stat buf; int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_member_st_size_64=yes], [gl_cv_member_st_size_64=no]) ]) if test $gl_cv_member_st_size_64 = no; then WINDOWS_64_BIT_ST_SIZE=1 else WINDOWS_64_BIT_ST_SIZE=0 fi ;; *) dnl Nothing to do on gnulib's side. dnl A 64-bit off_t is dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, dnl OSF/1, Cygwin, dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on dnl glibc, HP-UX, Solaris, dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, dnl - impossible to achieve on Minix 3.1.8. WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/getdtablesize.m4������������������������������������������������������������������0000644�0000000�0000000�00000005045�14076273520�013621� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# getdtablesize.m4 serial 8 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_GETDTABLESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([getdtablesize]) AC_CHECK_DECLS_ONCE([getdtablesize]) if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then AC_CACHE_CHECK([whether getdtablesize works], [gl_cv_func_getdtablesize_works], [dnl There are two concepts: the "maximum possible file descriptor value + 1" dnl and the "maximum number of open file descriptors in a process". dnl Per SUSv2 and POSIX, getdtablesize() should return the first one. dnl On most platforms, the first and the second concept are the same. dnl On OpenVMS, however, they are different and getdtablesize() returns dnl the second one; thus the test below fails. But we don't care dnl because there's no good way to write a replacement getdtablesize(). case "$host_os" in vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; *) dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft dnl limit up to an unchangeable hard limit; all other platforms dnl correctly require setrlimit before getdtablesize() can report dnl a larger value. AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[#include <unistd.h>] GL_MDA_DEFINES ], [[int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ]])], [gl_cv_func_getdtablesize_works=yes], [gl_cv_func_getdtablesize_works=no], [case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac ]) ;; esac ]) case "$gl_cv_func_getdtablesize_works" in *yes | "no (limitation)") ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi ]) # Prerequisites of lib/getdtablesize.c. AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/multiarch.m4����������������������������������������������������������������������0000644�0000000�0000000�00000004220�14076273520�012755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# multiarch.m4 serial 9 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine whether the compiler is or may be producing universal binaries. # # On Mac OS X 10.5 and later systems, the user can create libraries and # executables that work on multiple system types--known as "fat" or # "universal" binaries--by specifying multiple '-arch' options to the # compiler but only a single '-arch' option to the preprocessor. Like # this: # # ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CPP="gcc -E" CXXCPP="g++ -E" # # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. AC_CACHE_CHECK([whether the compiler produces multi-arch binaries], [gl_cv_c_multiarch], [gl_cv_c_multiarch=no AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; ]])], [ dnl Check for potential -arch flags. It is not universal unless dnl there are at least two -arch flags with different values. arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64 | arm | arm64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done ]) ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi AC_SUBST([APPLE_UNIVERSAL_BUILD]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/warnings.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000007456�14076273520�012633� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# warnings.m4 serial 16 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_AS_VAR_APPEND(VAR, VALUE) # ---------------------------- # Provide the functionality of AS_VAR_APPEND if Autoconf does not have it. m4_ifdef([AS_VAR_APPEND], [m4_copy([AS_VAR_APPEND], [gl_AS_VAR_APPEND])], [m4_define([gl_AS_VAR_APPEND], [AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])]) # gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED], # [PROGRAM = AC_LANG_PROGRAM()]) # ----------------------------------------------------------------- # Check if the compiler supports OPTION when compiling PROGRAM. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_COMPILER_OPTION_IF], [ AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl AS_LITERAL_IF([$1], [m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))], [gl_positive="$1" case $gl_positive in -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;; esac m4_pushdef([gl_Positive], [$gl_positive])])dnl AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], [gl_Warn], [ gl_save_compiler_FLAGS="$gl_Flags" gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $gl_unknown_warnings_are_errors ]m4_defn([gl_Positive])["]) AC_LINK_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([[]])])], [AS_VAR_SET([gl_Warn], [yes])], [AS_VAR_SET([gl_Warn], [no])]) gl_Flags="$gl_save_compiler_FLAGS" ]) AS_VAR_IF(gl_Warn, [yes], [$2], [$3]) m4_popdef([gl_Positive])dnl AS_VAR_POPDEF([gl_Flags])dnl AS_VAR_POPDEF([gl_Warn])dnl ]) # gl_UNKNOWN_WARNINGS_ARE_ERRORS # ------------------------------ # Clang doesn't complain about unknown warning options unless one also # specifies -Wunknown-warning-option -Werror. Detect this. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS], [_AC_LANG_DISPATCH([$0], _AC_LANG, $@)]) # Specialization for _AC_LANG = C. This macro can be AC_REQUIREd. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)], [ AC_LANG_PUSH([C]) gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL AC_LANG_POP([C]) ]) # Specialization for _AC_LANG = C++. This macro can be AC_REQUIREd. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)], [ AC_LANG_PUSH([C++]) gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL AC_LANG_POP([C++]) ]) # Specialization for _AC_LANG = Objective C. This macro can be AC_REQUIREd. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)], [ AC_LANG_PUSH([Objective C]) gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL AC_LANG_POP([Objective C]) ]) AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL], [gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option], [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'], [gl_unknown_warnings_are_errors=])]) # gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS/WARN_CXXFLAGS], # [PROGRAM = AC_LANG_PROGRAM()]) # ----------------------------------------------------------- # Adds parameter to WARN_CFLAGS/WARN_CXXFLAGS if the compiler supports it # when compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]). # # If VARIABLE is a variable name, AC_SUBST it. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_WARN_ADD], [AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS(]_AC_LANG[)]) gl_COMPILER_OPTION_IF([$1], [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_]_AC_LANG_PREFIX[FLAGS]], [[$2]]), [" $1"])], [], [$3]) m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])])], [AC_SUBST([WARN_]_AC_LANG_PREFIX[FLAGS])])dnl ]) # Local Variables: # mode: autoconf # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/dup2.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000007236�14076273520�011651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#serial 27 dnl Copyright (C) 2002, 2005, 2007, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[#include <errno.h> #include <fcntl.h> #include <limits.h> #include <sys/resource.h> #include <unistd.h> ]GL_MDA_DEFINES[ #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result;]]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 AC_CHECK_FUNCS([setdtablesize]) ;; esac dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_DUP2=1 fi ]) ]) # Prerequisites of lib/dup2.c. AC_DEFUN([gl_PREREQ_DUP2], []) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/malloca.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001033�14076273520�012374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# malloca.m4 serial 2 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2021 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MALLOCA], [ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/sys_socket_h.m4�������������������������������������������������������������������0000644�0000000�0000000�00000016266�14076273520�013477� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# sys_socket_h.m4 serial 28 dnl Copyright (C) 2005-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson. AC_DEFUN_ONCE([gl_SYS_SOCKET_H], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have dnl old-style declarations (with return type 'int' instead of 'ssize_t') dnl unless _POSIX_PII_SOCKET is defined. case "$host_os" in osf*) AC_DEFINE([_POSIX_PII_SOCKET], [1], [Define to 1 in order to get the POSIX compatible declarations of socket functions.]) ;; esac AC_CACHE_CHECK([whether <sys/socket.h> is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])], [gl_cv_header_sys_socket_h_selfcontained=yes], [gl_cv_header_sys_socket_h_selfcontained=no]) ]) if test $gl_cv_header_sys_socket_h_selfcontained = yes; then dnl If the shutdown function exists, <sys/socket.h> should define dnl SHUT_RD, SHUT_WR, SHUT_RDWR. AC_CHECK_FUNCS([shutdown]) if test $ac_cv_func_shutdown = yes; then AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros], [gl_cv_header_sys_socket_h_shut], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], [gl_cv_header_sys_socket_h_shut=yes], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. gl_PREREQ_SYS_H_SOCKET AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif ]) if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], [], [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], [#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef HAVE_WS2TCPIP_H #include <ws2tcpip.h> #endif ]) fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include <sys/types.h> #include <sys/socket.h> ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) AC_REQUIRE([AC_C_RESTRICT]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the <sys/socket.h> replacement. AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 else HAVE_SYS_SOCKET_H=0 fi AC_SUBST([HAVE_SYS_SOCKET_H]) gl_PREREQ_SYS_H_WS2TCPIP ]) # Common prerequisites of the <sys/socket.h> replacement and of the # <sys/select.h> replacement. # Sets and substitutes HAVE_WINSOCK2_H. AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h != yes; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([winsock2.h]) fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi AC_SUBST([HAVE_WINSOCK2_H]) ]) # Common prerequisites of the <sys/socket.h> replacement and of the # <arpa/inet.h> replacement. # Sets and substitutes HAVE_WS2TCPIP_H. AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP], [ AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_WS2TCPIP_H=0 else if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi AC_SUBST([HAVE_WS2TCPIP_H]) ]) # gl_SYS_SOCKET_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_SYS_SOCKET_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_SYS_SOCKET_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SOCKET]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CONNECT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BIND]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPEERNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKNAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LISTEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECV]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SEND]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECVFROM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SENDTO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETSOCKOPT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SHUTDOWN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT4]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/strerror.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000007162�14076273520�012657� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# strerror.m4 serial 22 dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR], [ AC_REQUIRE([gl_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <string.h> ]], [[if (!*strerror (-2)) return 1;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; # Guess yes on musl systems. *-musl*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_working_strerror" in *yes) ;; *) dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 ;; esac m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's dnl buffer, we must replace strerror. case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to <errno.h>, or any fix for strerror(0). Replace it. REPLACE_STRERROR=1 fi ]) dnl Detect if strerror(0) passes (that is, does not set errno, and does not dnl return a string that matches strerror(-1)). AC_DEFUN([gl_FUNC_STRERROR_0], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles REPLACE_STRERROR_0=0 AC_CACHE_CHECK([whether strerror(0) succeeds], [gl_cv_func_strerror_0_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <string.h> #include <errno.h> ]], [[int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result;]])], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on musl systems. *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, obey --enable-cross-guesses. *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; esac ]) ]) case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) does not return a message implying success.]) ;; esac ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/msvc-inval.m4���������������������������������������������������������������������0000644�0000000�0000000�00000001334�14076273520�013047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_INVAL], [ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], [Define to 1 on MSVC platforms that have the "invalid parameter handler" concept.]) else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/alloca.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000007400�14076273520�012223� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# alloca.m4 serial 20 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2021 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ALLOCA], [ AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ AC_EGREP_CPP([Need own alloca], [ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) ]) if test $gl_cv_rpl_alloca = yes; then dnl OK, alloca can be implemented through a compiler built-in. AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including <alloca.h>, a header that may be supplied by this distribution.]) ALLOCA_H=alloca.h else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. ALLOCA_H= fi else ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) if test $ac_cv_working_alloca_h = yes; then HAVE_ALLOCA_H=1 else HAVE_ALLOCA_H=0 fi AC_SUBST([HAVE_ALLOCA_H]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) m4_version_prereq([2.70], [], [ # This works around a bug in autoconf <= 2.68 and has simplifications # from 2.70. See: # https://lists.gnu.org/r/bug-gnulib/2011-06/msg00277.html # https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=15edf7fd8094fd14a89d9891dd72a9624762597a # _AC_LIBOBJ_ALLOCA # ----------------- # Set up the LIBOBJ replacement of 'alloca'. Well, not exactly # AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; }])], [ac_cv_c_stack_direction=1], [ac_cv_c_stack_direction=-1], [ac_cv_c_stack_direction=0])]) AH_VERBATIM([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/stdio_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000026242�14076273520�012426� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# stdio_h.m4 serial 56 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_STDIO_H], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AH_VERBATIM([MINGW_ANSI_STDIO], [/* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif ]) AC_DEFINE([__USE_MINGW_ANSI_STDIO]) gl_NEXT_HEADERS([stdio.h]) dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and dnl inttypes.h behave like gnu instead of system; we must give our dnl printf wrapper the right attribute to match. AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros], [gl_cv_func_printf_attribute_flavor], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define __STDC_FORMAT_MACROS 1 #include <stdio.h> #include <inttypes.h> /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif ]])], [gl_cv_func_printf_attribute_flavor=system], [gl_cv_func_printf_attribute_flavor=gnu])]) if test "$gl_cv_func_printf_attribute_flavor" = gnu; then AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], [Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__"]) fi dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 AC_LIBOBJ([stdio-read]) fi ]) dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include <stdio.h> ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_DECLS_ONCE([fcloseall]) if test $ac_cv_have_decl_fcloseall = no; then HAVE_DECL_FCLOSEALL=0 fi ]) # gl_STDIO_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_STDIO_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREAD]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREOPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEK]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEKO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTC]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTCHAR]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTS]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMOVE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FILENO], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETW], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTW], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TEMPNAM], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_FCLOSEALL=1; AC_SUBST([HAVE_DECL_FCLOSEALL]) HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/eealloc.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001667�14076273520�012405� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EEALLOC], [ AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_EEREALLOC]) ]) AC_DEFUN([gl_EEMALLOC], [ _AC_FUNC_MALLOC_IF( [gl_cv_func_malloc_0_nonnull=1], [gl_cv_func_malloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], [If malloc(0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) AC_DEFUN([gl_EEREALLOC], [ _AC_FUNC_REALLOC_IF( [gl_cv_func_realloc_0_nonnull=1], [gl_cv_func_realloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) �������������������������������������������������������������������������libidn-1.38/gl/m4/gnulib-comp.m4��������������������������������������������������������������������0000644�0000000�0000000�00000046706�14076273525�013225� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([gl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable # Pre-early section. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_PROG_AR_RANLIB]) # Code from module absolute-header: # Code from module alloca-opt: # Code from module announce-gen: # Code from module autobuild: AB_INIT # Code from module basename-lgpl: # Code from module c99: # Code from module cloexec: # Code from module close: # Code from module csharpcomp-script: # Code from module csharpexec-script: # Code from module do-release-commit-and-tag: # Code from module double-slash-root: # Code from module dup2: # Code from module errno: # Code from module error: # Code from module extensions: # Code from module extern-inline: # Code from module fcntl: # Code from module fcntl-h: # Code from module fd-hook: # Code from module fdl-1.3: # Code from module filename: # Code from module fstat: # Code from module gendocs: # Code from module getdelim: # Code from module getdtablesize: # Code from module getline: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module getprogname: # Code from module gettext-h: # Code from module git-version-gen: # Code from module gitlog-to-changelog: # Code from module gnu-web-doc-update: # Code from module gnumakefile: # Code from module gnupload: # Code from module idx: # Code from module include_next: # Code from module intprops: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) AC_REQUIRE([gl_YEAR2038_EARLY]) # Code from module lib-msvc-compat: # Code from module lib-symbol-versions: # Code from module lib-symbol-visibility: # Code from module limits-h: # Code from module maintainer-makefile: # Code from module malloca: # Code from module manywarnings: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nocrash: # Code from module open: # Code from module pathmax: # Code from module pmccabe2html: # Code from module progname: # Code from module readme-release: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stat: # Code from module stat-time: # Code from module std-gnu11: # Code from module stdarg: dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode dnl for the builtin va_copy to work. gl_PROG_CC_C99 arranges for this. gl_PROG_CC_C99 # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module strerror: # Code from module strerror-override: # Code from module string: # Code from module sys_stat: # Code from module sys_types: # Code from module time: # Code from module unistd: # Code from module update-copyright: # Code from module useless-if-before-free: # Code from module valgrind-tests: # Code from module vc-list-files: # Code from module verify: # Code from module version-etc: # Code from module warnings: # Code from module xalloc-oversized: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [true]) gl_cond_libtool=true gl_m4_base='gl/m4' m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) m4_pushdef([GL_MACRO_PREFIX], [gl]) m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) gl_COMMON gl_source_base='gl' gl_FUNC_ALLOCA gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) gl_FUNC_CLOSE if test $REPLACE_CLOSE = 1; then AC_LIBOBJ([close]) fi gl_UNISTD_MODULE_INDICATOR([close]) AC_REQUIRE([gt_CSHARPCOMP]) AC_CONFIG_FILES([csharpcomp.sh:build-aux/csharpcomp.sh.in]) # You need to invoke gt_CSHARPEXEC yourself, possibly with arguments. AC_CONFIG_FILES([csharpexec.sh:build-aux/csharpexec.sh.in]) gl_DOUBLE_SLASH_ROOT gl_FUNC_DUP2 if test $REPLACE_DUP2 = 1; then AC_LIBOBJ([dup2]) gl_PREREQ_DUP2 fi gl_UNISTD_MODULE_INDICATOR([dup2]) gl_HEADER_ERRNO_H gl_ERROR if test $ac_cv_lib_error_at_line = no; then AC_LIBOBJ([error]) gl_PREREQ_ERROR fi m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) AC_REQUIRE([gl_EXTERN_INLINE]) gl_FUNC_FCNTL if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then AC_LIBOBJ([fcntl]) fi gl_FCNTL_MODULE_INDICATOR([fcntl]) gl_FCNTL_H gl_FCNTL_H_REQUIRE_DEFAULTS gl_FUNC_FSTAT if test $REPLACE_FSTAT = 1; then AC_LIBOBJ([fstat]) case "$host_os" in mingw*) AC_LIBOBJ([stat-w32]) ;; esac gl_PREREQ_FSTAT fi gl_SYS_STAT_MODULE_INDICATOR([fstat]) gl_FUNC_GETDELIM if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then AC_LIBOBJ([getdelim]) gl_PREREQ_GETDELIM fi gl_STDIO_MODULE_INDICATOR([getdelim]) gl_FUNC_GETDTABLESIZE if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then AC_LIBOBJ([getdtablesize]) gl_PREREQ_GETDTABLESIZE fi gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_FUNC_GETLINE if test $REPLACE_GETLINE = 1; then AC_LIBOBJ([getline]) gl_PREREQ_GETLINE fi gl_STDIO_MODULE_INDICATOR([getline]) gl_FUNC_GETOPT_GNU dnl Because of the way gl_FUNC_GETOPT_GNU is implemented (the gl_getopt_required dnl mechanism), there is no need to do any AC_LIBOBJ or AC_SUBST here; they are dnl done in the getopt-posix module. gl_FUNC_GETOPT_POSIX if test $REPLACE_GETOPT = 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) dnl Define the substituted variable GNULIB_UNISTD_H_GETOPT to 1. gl_UNISTD_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT], [1]) fi gl_UNISTD_MODULE_INDICATOR([getopt-posix]) gl_FUNC_GETPROGNAME AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile m4_if(m4_version_compare([2.61a.100], m4_defn([m4_PACKAGE_VERSION])), [1], [], [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], [GNUmakefile=$GNUmakefile])]) AC_REQUIRE([gl_LARGEFILE]) gl_LD_OUTPUT_DEF gl_LD_VERSION_SCRIPT gl_VISIBILITY gl_LIMITS_H AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) AC_REQUIRE([AC_PROG_SED]) AC_REQUIRE([AC_PROG_GREP]) gl_MALLOCA AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-inval]) fi AC_REQUIRE([gl_MSVC_NOTHROW]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-nothrow]) fi gl_MODULE_INDICATOR([msvc-nothrow]) gl_MULTIARCH gl_FUNC_OPEN if test $REPLACE_OPEN = 1; then AC_LIBOBJ([open]) gl_PREREQ_OPEN fi gl_FCNTL_MODULE_INDICATOR([open]) gl_PATHMAX AC_PATH_PROG([PMCCABE], [pmccabe], [false]) AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>]) AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>]) gt_TYPE_SSIZE_T gl_FUNC_STAT if test $REPLACE_STAT = 1; then AC_LIBOBJ([stat]) case "$host_os" in mingw*) AC_LIBOBJ([stat-w32]) ;; esac gl_PREREQ_STAT fi gl_SYS_STAT_MODULE_INDICATOR([stat]) gl_STAT_TIME gl_STAT_BIRTHTIME gl_STDARG_H AM_STDBOOL_H gl_STDDEF_H gl_STDDEF_H_REQUIRE_DEFAULTS gl_STDINT_H gl_STDIO_H gl_STDIO_H_REQUIRE_DEFAULTS dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. gl_STDIO_MODULE_INDICATOR([fscanf]) gl_MODULE_INDICATOR([fscanf]) gl_STDIO_MODULE_INDICATOR([scanf]) gl_MODULE_INDICATOR([scanf]) gl_STDIO_MODULE_INDICATOR([fgetc]) gl_STDIO_MODULE_INDICATOR([getc]) gl_STDIO_MODULE_INDICATOR([getchar]) gl_STDIO_MODULE_INDICATOR([fgets]) gl_STDIO_MODULE_INDICATOR([fread]) dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. gl_STDIO_MODULE_INDICATOR([fprintf]) gl_STDIO_MODULE_INDICATOR([printf]) gl_STDIO_MODULE_INDICATOR([vfprintf]) gl_STDIO_MODULE_INDICATOR([vprintf]) gl_STDIO_MODULE_INDICATOR([fputc]) gl_STDIO_MODULE_INDICATOR([putc]) gl_STDIO_MODULE_INDICATOR([putchar]) gl_STDIO_MODULE_INDICATOR([fputs]) gl_STDIO_MODULE_INDICATOR([puts]) gl_STDIO_MODULE_INDICATOR([fwrite]) gl_FUNC_STRERROR if test $REPLACE_STRERROR = 1; then AC_LIBOBJ([strerror]) fi gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then AC_LIBOBJ([strerror-override]) gl_PREREQ_SYS_H_WINSOCK2 fi gl_STRING_H gl_STRING_H_REQUIRE_DEFAULTS gl_SYS_STAT_H gl_SYS_STAT_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_SYS_TYPES_H gl_SYS_TYPES_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P gl_TIME_H gl_TIME_H_REQUIRE_DEFAULTS gl_UNISTD_H gl_UNISTD_H_REQUIRE_DEFAULTS gl_VALGRIND_TESTS gl_VERSION_ETC # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([GL_MODULE_INDICATOR_PREFIX]) m4_popdef([GL_MACRO_PREFIX]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) m4_pushdef([GL_MACRO_PREFIX], [gltests]) m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) gl_COMMON AC_REQUIRE([gl_CC_ALLOW_WARNINGS]) AC_REQUIRE([gl_CXX_ALLOW_WARNINGS]) gl_source_base='gl/tests' changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([gltests_WITNESS]) gl_module_indicator_condition=$gltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) gl_VALGRIND_TESTS m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([GL_MODULE_INDICATOR_PREFIX]) m4_popdef([GL_MACRO_PREFIX]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) ]) LIBTESTS_LIBDEPS="$gltests_libdeps" AC_SUBST([LIBTESTS_LIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_LIBOBJ], [ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gl_LIBSOURCES_DIR], [gl]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_LIBOBJ], [ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gltests_LIBSOURCES_DIR], [gl/tests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/announce-gen build-aux/csharpcomp.sh.in build-aux/csharpexec.sh.in build-aux/do-release-commit-and-tag build-aux/gendocs.sh build-aux/git-version-gen build-aux/gitlog-to-changelog build-aux/gnu-web-doc-update build-aux/gnupload build-aux/pmccabe.css build-aux/pmccabe2html build-aux/update-copyright build-aux/useless-if-before-free build-aux/vc-list-files doc/fdl-1.3.texi doc/gendocs_template doc/gendocs_template_min lib/alloca.in.h lib/arg-nonnull.h lib/basename-lgpl.c lib/basename-lgpl.h lib/c++defs.h lib/cloexec.c lib/cloexec.h lib/close.c lib/dup2.c lib/errno.in.h lib/error.c lib/error.h lib/fcntl.c lib/fcntl.in.h lib/fd-hook.c lib/fd-hook.h lib/filename.h lib/fstat.c lib/getdelim.c lib/getdtablesize.c lib/getline.c lib/getopt-cdefs.in.h lib/getopt-core.h lib/getopt-ext.h lib/getopt-pfx-core.h lib/getopt-pfx-ext.h lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h lib/getprogname.c lib/getprogname.h lib/gettext.h lib/idx.h lib/intprops.h lib/limits.in.h lib/malloca.c lib/malloca.h lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/open.c lib/pathmax.h lib/progname.c lib/progname.h lib/stat-time.c lib/stat-time.h lib/stat-w32.c lib/stat-w32.h lib/stat.c lib/stdarg.in.h lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio.in.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/string.in.h lib/sys_stat.in.h lib/sys_types.in.h lib/time.in.h lib/unistd.c lib/unistd.in.h lib/verify.h lib/version-etc.c lib/version-etc.h lib/warn-on-use.h lib/xalloc-oversized.h m4/00gnulib.m4 m4/absolute-header.m4 m4/alloca.m4 m4/autobuild.m4 m4/close.m4 m4/csharp.m4 m4/csharpcomp.m4 m4/csharpexec.m4 m4/double-slash-root.m4 m4/dup2.m4 m4/eealloc.m4 m4/errno_h.m4 m4/error.m4 m4/extensions.m4 m4/extern-inline.m4 m4/fcntl-o.m4 m4/fcntl.m4 m4/fcntl_h.m4 m4/fstat.m4 m4/getdelim.m4 m4/getdtablesize.m4 m4/getline.m4 m4/getopt.m4 m4/getprogname.m4 m4/gnulib-common.m4 m4/include_next.m4 m4/largefile.m4 m4/ld-output-def.m4 m4/ld-version-script.m4 m4/limits-h.m4 m4/malloca.m4 m4/manywarnings-c++.m4 m4/manywarnings.m4 m4/mode_t.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nocrash.m4 m4/off_t.m4 m4/open-cloexec.m4 m4/open-slash.m4 m4/open.m4 m4/pathmax.m4 m4/pid_t.m4 m4/ssize_t.m4 m4/stat-time.m4 m4/stat.m4 m4/std-gnu11.m4 m4/stdarg.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdio_h.m4 m4/strerror.m4 m4/string_h.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_types_h.m4 m4/time_h.m4 m4/unistd_h.m4 m4/valgrind-tests.m4 m4/version-etc.m4 m4/visibility.m4 m4/warn-on-use.m4 m4/warnings.m4 m4/wchar_t.m4 m4/wint_t.m4 m4/year2038.m4 m4/zzgnulib.m4 tests=lib/arg-nonnull.h tests=lib/c++defs.h tests=lib/dummy.c tests=lib/warn-on-use.h top/GNUmakefile top/README-release top/maint.mk ]) ����������������������������������������������������������libidn-1.38/gl/m4/zzgnulib.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000001522�14076273520�012633� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# zzgnulib.m4 serial 1 dnl Copyright (C) 2020-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts after all other dnl package- or gnulib-provided .m4 files - at least for those packages dnl that redefine AC_PROG_CC. dnl Redefine AC_PROG_CC so that it ends with invocations of gl_COMPILER_CLANG dnl and gl_COMPILER_PREPARE_CHECK_DECL. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[ gl_COMPILER_CLANG gl_COMPILER_PREPARE_CHECK_DECL ]) # gl_ZZGNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file after all other gnulib .m4 files. AC_DEFUN([gl_ZZGNULIB]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/limits-h.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000002442�14076273520�012517� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Check whether limits.h has needed features. dnl Copyright 2016-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_DEFUN_ONCE([gl_LIMITS_H], [ gl_CHECK_NEXT_HEADERS([limits.h]) AC_CACHE_CHECK([whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.], [gl_cv_header_limits_width], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include <limits.h> long long llm = LLONG_MAX; int wb = WORD_BIT; int ullw = ULLONG_WIDTH; ]])], [gl_cv_header_limits_width=yes], [gl_cv_header_limits_width=no])]) if test "$gl_cv_header_limits_width" = yes; then LIMITS_H= else LIMITS_H=limits.h fi AC_SUBST([LIMITS_H]) AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) dnl Unconditionally enables the replacement of <limits.h>. AC_DEFUN([gl_REPLACE_LIMITS_H], [ AC_REQUIRE([gl_LIMITS_H]) LIMITS_H='limits.h' AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/fstat.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002117�14076273520�012111� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fstat.m4 serial 8 dnl Copyright (C) 2011-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FSTAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) case "$host_os" in mingw* | solaris*) dnl On MinGW, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. dnl Solaris stat can return a negative tv_nsec. REPLACE_FSTAT=1 ;; esac dnl Replace fstat() for supporting the gnulib-defined open() on directories. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then case "$gl_cv_func_open_directory_works" in *yes) ;; *) REPLACE_FSTAT=1 ;; esac fi ]) ]) # Prerequisites of lib/fstat.c and lib/stat-w32.c. AC_DEFUN([gl_PREREQ_FSTAT], [ AC_REQUIRE([gl_SYS_STAT_H]) AC_REQUIRE([gl_PREREQ_STAT_W32]) : ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/ld-version-script.m4��������������������������������������������������������������0000644�0000000�0000000�00000003204�14076273520�014352� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ld-version-script.m4 serial 5 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # FIXME: The test below returns a false positive for mingw # cross-compiles, 'local:' statements does not reduce number of # exported symbols in a DLL. Use --disable-ld-version-script to work # around the problem. # gl_LD_VERSION_SCRIPT # -------------------- # Check if LD supports linker scripts, and define automake conditional # HAVE_LD_VERSION_SCRIPT if so. AC_DEFUN([gl_LD_VERSION_SCRIPT], [ AC_ARG_ENABLE([ld-version-script], [AS_HELP_STRING([--enable-ld-version-script], [enable linker version script (default is enabled when possible)])], [have_ld_version_script=$enableval], [AC_CACHE_CHECK([if LD -Wl,--version-script works], [gl_cv_sys_ld_version_script], [gl_cv_sys_ld_version_script=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" echo foo >conftest.map AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [], [cat > conftest.map <<EOF VERS_1 { global: sym; }; VERS_2 { global: sym; } VERS_1; EOF AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [gl_cv_sys_ld_version_script=yes])]) rm -f conftest.map LDFLAGS=$save_LDFLAGS]) have_ld_version_script=$gl_cv_sys_ld_version_script]) AM_CONDITIONAL([HAVE_LD_VERSION_SCRIPT], [test "$have_ld_version_script" = yes]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/extern-inline.m4������������������������������������������������������������������0000644�0000000�0000000�00000011574�14076273520�013560� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EXTERN_INLINE], [ AH_VERBATIM([extern_inline], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>. Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like <ctype.h>. For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions (ISO C 99 section 6.7.4.(3). This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log FreeBSD; see: https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see <https://trac.macports.org/ticket/41033>. Assume DragonFly and FreeBSD will be similar. GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. It defines a macro __GNUC_STDC_INLINE__ to indicate this situation or a macro __GNUC_GNU_INLINE__ to indicate the opposite situation. GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline semantics but warns, unless -fgnu89-inline is used: warning: C99 inline functions are not supported; using GNU89 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif]) ]) ������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/fcntl_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000005206�14076273520�012407� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 20 # Configure fcntl.h. dnl Copyright (C) 2006-2007, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN_ONCE([gl_FCNTL_H], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) gl_NEXT_HEADERS([fcntl.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, if it is not common dnl enough to be declared everywhere. gl_WARN_ON_USE_PREPARE([[#include <fcntl.h> ]], [fcntl openat]) ]) # gl_FCNTL_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_FCNTL_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) REPLACE_CREAT=0; AC_SUBST([REPLACE_CREAT]) REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/open.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000002765�14076273520�011742� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# open.m4 serial 15 dnl Copyright (C) 2007-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OPEN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_PREPROC_O_CLOEXEC]) case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) if test "$gl_cv_macro_O_CLOEXEC" != yes; then REPLACE_OPEN=1 fi gl_OPEN_TRAILING_SLASH_BUG case "$gl_cv_func_open_slash" in *no) REPLACE_OPEN=1 ;; esac ;; esac dnl Replace open() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_OPEN = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_OPEN=1 fi fi ]) dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. m4_ifdef([gl_NONBLOCKING_IO], [ if test $REPLACE_OPEN = 0; then gl_NONBLOCKING_IO if test $gl_cv_have_open_O_NONBLOCK != yes; then REPLACE_OPEN=1 fi fi ]) ]) # Prerequisites of lib/open.c. AC_DEFUN([gl_PREREQ_OPEN], [ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) �����������libidn-1.38/gl/m4/wchar_t.m4������������������������������������������������������������������������0000644�0000000�0000000�00000001462�14076273520�012421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <stddef.h> has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stddef.h> wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/close.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002221�14076273520�012071� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# close.m4 serial 9 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CLOSE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi ]) m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ gl_PREREQ_SYS_H_WINSOCK2 if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the close() function. So enable the support for sockets. REPLACE_CLOSE=1 fi ]) dnl Replace close() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_CLOSE = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_CLOSE=1 fi fi ]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/extensions.m4���������������������������������������������������������������������0000644�0000000�0000000�00000020333�14076273520�013167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# serial 22 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl Define to empty for the benefit of Autoconf 2.69 and earlier, so that dnl AC_USE_SYSTEM_EXTENSIONS (below) can be used unchanged from Autoconf 2.70+. m4_ifndef([AC_CHECK_INCLUDES_DEFAULT], [AC_DEFUN([AC_CHECK_INCLUDES_DEFAULT], [])]) # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git # Autoconf. Perhaps we can remove this once we can assume Autoconf # is recent-enough everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. # If autoconf reports a warning # warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # the fix is # 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked # but always AC_REQUIREd, # 2) to ensure that for each occurrence of # AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) # or # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # the corresponding gnulib module description has 'extensions' among # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. m4_version_prereq([2.70.1], [], [ # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. # We unconditionally define as many of the known feature-enabling # as possible, reserving conditional behavior for macros that are # known to cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_PREPROC_IFELSE])dnl AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_LINK_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_BEFORE([$0], [AC_CHECK_INCLUDES_DEFAULT])dnl dnl #undef in AH_VERBATIM gets replaced with #define by AC_DEFINE. dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. dnl The macros below are in alphabetical order ignoring leading _ or __ dnl prefixes. AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable X/Open compliant socket functions that do not require linking with -lxnet on HP-UX 11.11. */ #ifndef _HPUX_ALT_XOPEN_SOCKET_API # undef _HPUX_ALT_XOPEN_SOCKET_API #endif /* Identify the host operating system as Minix. This macro does not affect the system headers' behavior. A future release of Autoconf may stop defining this macro. */ #ifndef _MINIX # undef _MINIX #endif /* Enable general extensions on NetBSD. Enable NetBSD compatibility extensions on Minix. */ #ifndef _NETBSD_SOURCE # undef _NETBSD_SOURCE #endif /* Enable OpenBSD compatibility extensions on NetBSD. Oddly enough, this does nothing on OpenBSD. */ #ifndef _OPENBSD_SOURCE # undef _OPENBSD_SOURCE #endif /* Define to 1 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_SOURCE # undef _POSIX_SOURCE #endif /* Define to 2 if needed for POSIX-compatible behavior. */ #ifndef _POSIX_1_SOURCE # undef _POSIX_1_SOURCE #endif /* Enable POSIX-compatible threading on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions. Define to 500 only if necessary to make mbstate_t available. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif ])dnl AC_REQUIRE([AC_CHECK_INCLUDES_DEFAULT])dnl _AC_CHECK_HEADER_ONCE([wchar.h]) _AC_CHECK_HEADER_ONCE([minix/config.h]) dnl Defining __EXTENSIONS__ may break the system headers on some systems. dnl (FIXME: Which ones?) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ # define __EXTENSIONS__ 1 ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to dnl 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. dnl But defining _XOPEN_SOURCE may turn *off* extensions on platforms dnl not covered by turn-on-extensions macros (notably Dragonfly, Free, dnl and OpenBSD, which don't have any equivalent of _NETBSD_SOURCE) so dnl it should only be defined when necessary. AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], [ac_cv_should_define__xopen_source], [ac_cv_should_define__xopen_source=no AS_IF([test $ac_cv_header_wchar_h = yes], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include <wchar.h> mbstate_t x;]])], [], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #define _XOPEN_SOURCE 500 #include <wchar.h> mbstate_t x;]])], [ac_cv_should_define__xopen_source=yes])])])]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) AC_DEFINE([_NETBSD_SOURCE]) AC_DEFINE([_OPENBSD_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__]) AC_DEFINE([__STDC_WANT_LIB_EXT2__]) AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__]) AC_DEFINE([_TANDEM_SOURCE]) AS_IF([test $ac_cv_header_minix_config_h = yes], [MINIX=yes AC_DEFINE([_MINIX]) AC_DEFINE([_POSIX_SOURCE]) AC_DEFINE([_POSIX_1_SOURCE], [2])], [MINIX=]) AS_IF([test $ac_cv_safe_to_define___extensions__ = yes], [AC_DEFINE([__EXTENSIONS__])]) AS_IF([test $ac_cv_should_define__xopen_source = yes], [AC_DEFINE([_XOPEN_SOURCE], [500])]) ])# AC_USE_SYSTEM_EXTENSIONS ]) # gl_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl On OpenBSD 6.8 with GCC, the include files contain a couple of dnl definitions that are only activated with an explicit -D_ISOC11_SOURCE. dnl That's because this version of GCC (4.2.1) supports the option dnl '-std=gnu99' but not the option '-std=gnu11'. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in openbsd*) AC_DEFINE([_ISOC11_SOURCE], [1], [Define to enable the declarations of ISO C 11 types and functions.]) ;; esac ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/time_h.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000016024�14076273520�012237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Configure a more-standard replacement for <time.h>. # Copyright (C) 2000-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc. # serial 18 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Jim Meyering. AC_DEFUN_ONCE([gl_TIME_H], [ dnl Ensure to expand the default settings once only, before all statements dnl that occur in other macros. AC_REQUIRE([gl_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) AC_REQUIRE([AC_C_RESTRICT]) AC_CACHE_CHECK([for TIME_UTC in <time.h>], [gl_cv_time_h_has_TIME_UTC], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <time.h> ]], [[static int x = TIME_UTC; x++;]])], [gl_cv_time_h_has_TIME_UTC=yes], [gl_cv_time_h_has_TIME_UTC=no])]) if test $gl_cv_time_h_has_TIME_UTC = yes; then TIME_H_DEFINES_TIME_UTC=1 else TIME_H_DEFINES_TIME_UTC=0 fi AC_SUBST([TIME_H_DEFINES_TIME_UTC]) ]) dnl Check whether 'struct timespec' is declared dnl in time.h, sys/time.h, pthread.h, or unistd.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CACHE_CHECK([for struct timespec in <time.h>], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <time.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <sys/time.h>], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/time.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_sys_time_h=yes], [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <pthread.h>], [gl_cv_sys_struct_timespec_in_pthread_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <pthread.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_pthread_h=yes], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in <unistd.h>], [gl_cv_sys_struct_timespec_in_unistd_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <unistd.h> ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_unistd_h=yes], [gl_cv_sys_struct_timespec_in_unistd_h=no])]) if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) ]) # gl_TIME_MODULE_INDICATOR([modulename]) # sets the shell variable that indicates the presence of the given module # to a C preprocessor expression that will evaluate to 1. # This macro invocation must not occur in macros that are AC_REQUIREd. AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ dnl Ensure to expand the default settings once only. gl_TIME_H_REQUIRE_DEFAULTS gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) # Initializes the default values for AC_SUBSTed shell variables. # This macro must not be AC_REQUIREd. It must only be invoked, and only # outside of macros or in macros that are not AC_REQUIREd. AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS], [ m4_defun(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS], [ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ]) gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET]) dnl Support Microsoft deprecated alias function names by default. gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1]) ]) m4_require(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS]) AC_REQUIRE([gl_TIME_H_DEFAULTS]) ]) AC_DEFUN([gl_TIME_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) HAVE_TIMESPEC_GET=1; AC_SUBST([HAVE_TIMESPEC_GET]) dnl Even GNU libc does not have timezone_t yet. HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. REPLACE_CTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_CTIME]) REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET]) dnl Hack so that the time module doesn't depend on the sys_time module. dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier dnl is no longer a big deal. REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/csharp.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000001511�14076273520�012245� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# csharp.m4 serial 4 dnl Copyright (C) 2004-2005, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Sets CSHARP_CHOICE to the preferred C# implementation: # 'mono' or 'any' or 'no'. AC_DEFUN([gt_CSHARP_CHOICE], [ AC_MSG_CHECKING([for preferred C[#] implementation]) AC_ARG_ENABLE([csharp], [ --enable-csharp[[=IMPL]] choose preferred C[#] implementation (mono)], [CSHARP_CHOICE="$enableval"], CSHARP_CHOICE=any) AC_SUBST([CSHARP_CHOICE]) AC_MSG_RESULT([$CSHARP_CHOICE]) case "$CSHARP_CHOICE" in mono) AC_DEFINE([CSHARP_CHOICE_MONO], [1], [Define if mono is the preferred C# implementation.]) ;; esac ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/mode_t.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000002342�14076273520�012237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# mode_t.m4 serial 2 dnl Copyright (C) 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For using mode_t, it's sufficient to use AC_TYPE_MODE_T and # include <sys/types.h>. # Define PROMOTED_MODE_T to the type that is the result of "default argument # promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], [ AC_REQUIRE([AC_TYPE_MODE_T]) AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', dnl and to itself otherwise. This assumption is not guaranteed by the ISO C dnl standard, but we don't know of any real-world counterexamples. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], [gl_cv_promoted_mode_t='int'], [gl_cv_promoted_mode_t='mode_t']) ]) AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], [Define to the type that is the result of default argument promotions of type mode_t.]) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/valgrind-tests.m4�����������������������������������������������������������������0000644�0000000�0000000�00000007624�14076273520�013746� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# valgrind-tests.m4 serial 8 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_VALGRIND_TESTS() # ------------------- # Check if valgrind is available. # Sets VALGRIND to command line (including options) to invoke valgrind # with, may be used directly in autoconf, makefiles or shell scripts. # Sets LOG_VALGRIND, suitable for use with LOG_COMPILER, that in # Makefile will expand to command line to invoke self-tests with, # i.e., LOG_VALGRIND = $(VALGRIND) $(DEFAULT_VALGRINDFLAGS) # $(VALGRINDFLAGS) $(AM_VALGRINDFLAGS). # Whether to look for valgrind and set the variables can be influenced # by calling gl_VALGRIND_TESTS_DEFAULT_NO in configure.ac. # Regardless, the user can change the choice through the options # --enable-valgrind-tests or --disable-valgrind-tests. # You may modify the VALGRIND, DEFAULT_VALGRINDFLAGS and VALGRINDFLAGS # variables before calling this function to override defaults. Either # as developer from configure.ac or user on the ./configure command # line. You may set the AM_VALGRINDFLAGS in Makefile.am to provide a # per-directory additional flag. AC_DEFUN([gl_VALGRIND_TESTS_DEFAULT_NO], [ gl_valgrind_tests_default=no ]) AC_DEFUN_ONCE([gl_VALGRIND_TESTS], [ AC_ARG_ENABLE([valgrind-tests], AS_HELP_STRING([--disable-valgrind-tests], [don't try to run self tests under valgrind]), [opt_valgrind_tests=$enableval], [opt_valgrind_tests=${gl_valgrind_tests_default:-yes}]) # Run self-tests under valgrind? if test "$opt_valgrind_tests" = "yes" && test "$cross_compiling" = no; then AC_CHECK_PROGS([VALGRIND], [valgrind]) # VALGRIND_PROGRAM contains the tool found by AC_CHECK_PROGS. For # backwards compatibility, the VALGRIND variable is later modified # to also include all enabled options. However the new variable # LOG_VALGRIND needs to be able to refer to the valgrind tool # without options, hence it uses this variable. AC_SUBST([VALGRIND_PROGRAM], [$VALGRIND]) AC_SUBST([DEFAULT_VALGRINDFLAGS]) if test -z "$DEFAULT_VALGRINDFLAGS"; then DEFAULT_VALGRINDFLAGS="-q --error-exitcode=1 --leak-check=full" fi AC_ARG_VAR([VALGRINDFLAGS], [Additional flags for Valgrind]) if test -n "$VALGRIND"; then AC_CACHE_CHECK([for valgrind options for tests], [gl_cv_opt_valgrind_tests], [AS_IF([$VALGRIND $DEFAULT_VALGRINDFLAGS $VALGRINDFLAGS true], [gl_cv_opt_valgrind_tests="$DEFAULT_VALGRINDFLAGS $VALGRINDFLAGS"], [gl_cv_opt_valgrind_tests=no]) ]) if test "$gl_cv_opt_valgrind_tests" != no; then VALGRIND="$VALGRIND $gl_cv_opt_valgrind_tests" fi fi if test -n "$VALGRIND"; then dnl On Ubuntu 16.04, /usr/bin/valgrind works only on 64-bit executables dnl but fails on 32-bit executables (with exit code 1) and on x86_64-x32 dnl executables (with exit code 126). AC_CACHE_CHECK([whether valgrind works on executables produced by the compiler], [gl_cv_prog_valgrind_works], [AC_RUN_IFELSE( [AC_LANG_SOURCE([[int main () { return 0; }]])], [$VALGRIND $gl_cv_opt_valgrind_tests ./conftest$ac_exeext 2>/dev/null if test $? = 0; then gl_cv_prog_valgrind_works=yes else gl_cv_prog_valgrind_works=no fi ], [gl_cv_prog_valgrind_works=no]) ]) fi AC_SUBST([AM_VALGRINDFLAGS]) AC_SUBST([LOG_VALGRIND], ["\$(VALGRIND_PROGRAM) \$(DEFAULT_VALGRINDFLAGS) \$(VALGRINDFLAGS) \$(AM_VALGRINDFLAGS)"]) if test "$gl_cv_prog_valgrind_works" != yes; then DEFAULT_VALGRINDFLAGS= LOG_VALGRIND= VALGRIND= VALGRINDFLAGS= VALGRIND_PROGRAM= fi fi ]) ������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/errno_h.m4������������������������������������������������������������������������0000644�0000000�0000000�00000005736�14076273520�012436� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# errno_h.m4 serial 13 dnl Copyright (C) 2004, 2006, 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_PREREQ([2.61]) AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ #include <errno.h> #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif ], [gl_cv_header_errno_h_complete=no], [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else gl_NEXT_HEADERS([errno.h]) ERRNO_H='errno.h' fi AC_SUBST([ERRNO_H]) AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) ]) # Assuming $1 = EOVERFLOW. # The EOVERFLOW errno value ought to be defined in <errno.h>, according to # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. # Check for the value of EOVERFLOW. # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ if test -n "$ERRNO_H"; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include <errno.h> #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=yes], [gl_cv_header_errno_h_]$1[=no]) if test $gl_cv_header_errno_h_]$1[ = no; then AC_EGREP_CPP([yes],[ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=hidden]) if test $gl_cv_header_errno_h_]$1[ = hidden; then dnl The macro exists but is hidden. dnl Define it to the same value. AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ #define _XOPEN_SOURCE_EXTENDED 1 #include <errno.h> /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include <stdio.h> #include <stdlib.h> ]) fi fi ]) case $gl_cv_header_errno_h_]$1[ in yes | no) ]$1[_HIDDEN=0; ]$1[_VALUE= ;; *) ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" ;; esac AC_SUBST($1[_HIDDEN]) AC_SUBST($1[_VALUE]) fi ]) ����������������������������������libidn-1.38/gl/m4/manywarnings.m4�������������������������������������������������������������������0000644�0000000�0000000�00000015305�14076273520�013510� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# manywarnings.m4 serial 21 dnl Copyright (C) 2008-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_MANYWARN_COMPLEMENT(OUTVAR, LISTVAR, REMOVEVAR) # -------------------------------------------------- # Copy LISTVAR to OUTVAR except for the entries in REMOVEVAR. # Elements separated by whitespace. In set logic terms, the function # does OUTVAR = LISTVAR \ REMOVEVAR. AC_DEFUN([gl_MANYWARN_COMPLEMENT], [ gl_warn_set= set x $2; shift for gl_warn_item do case " $3 " in *" $gl_warn_item "*) ;; *) gl_AS_VAR_APPEND([gl_warn_set], [" $gl_warn_item"]) ;; esac done $1=$gl_warn_set ]) # gl_MANYWARN_ALL_GCC(VARIABLE) # ----------------------------- # Add all documented GCC warning parameters to variable VARIABLE. # Note that you need to test them using gl_WARN_ADD if you want to # make sure your gcc understands it. # # The effects of this macro depend on the current language (_AC_LANG). AC_DEFUN([gl_MANYWARN_ALL_GCC], [_AC_LANG_DISPATCH([$0], _AC_LANG, $@)]) # Specialization for _AC_LANG = C. AC_DEFUN([gl_MANYWARN_ALL_GCC(C)], [ AC_LANG_PUSH([C]) dnl First, check for some issues that only occur when combining multiple dnl gcc warning categories. AC_REQUIRE([AC_PROG_CC]) if test -n "$GCC"; then dnl Check if -Wextra -Werror -Wno-missing-field-initializers is supported dnl with the current $CC $CFLAGS $CPPFLAGS. AC_CACHE_CHECK([whether -Wno-missing-field-initializers is supported], [gl_cv_cc_nomfi_supported], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_nomfi_supported=yes], [gl_cv_cc_nomfi_supported=no]) CFLAGS="$gl_save_CFLAGS" ]) if test "$gl_cv_cc_nomfi_supported" = yes; then dnl Now check whether -Wno-missing-field-initializers is needed dnl for the { 0, } construct. AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed], [gl_cv_cc_nomfi_needed], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wextra -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[int f (void) { typedef struct { int a; int b; } s_t; s_t s1 = { 0, }; return s1.b; } ]], [[]])], [gl_cv_cc_nomfi_needed=no], [gl_cv_cc_nomfi_needed=yes]) CFLAGS="$gl_save_CFLAGS" ]) fi dnl Next, check if -Werror -Wuninitialized is useful with the dnl user's choice of $CFLAGS; some versions of gcc warn that it dnl has no effect if -O is not also used AC_CACHE_CHECK([whether -Wuninitialized is supported], [gl_cv_cc_uninitialized_supported], [gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wuninitialized" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_uninitialized_supported=yes], [gl_cv_cc_uninitialized_supported=no]) CFLAGS="$gl_save_CFLAGS" ]) fi # List all gcc warning categories. # To compare this list to your installed GCC's, run this Bash command: # # comm -3 \ # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\).*/\1/p' manywarnings.m4; \ # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec) | sort) \ # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) $1= for gl_manywarn_item in -fanalyzer -fno-common \ -Wall \ -Warith-conversion \ -Wbad-function-cast \ -Wcast-align=strict \ -Wdate-time \ -Wdisabled-optimization \ -Wdouble-promotion \ -Wduplicated-branches \ -Wduplicated-cond \ -Wextra \ -Wformat-signedness \ -Winit-self \ -Winline \ -Winvalid-pch \ -Wlogical-op \ -Wmissing-declarations \ -Wmissing-include-dirs \ -Wmissing-prototypes \ -Wnested-externs \ -Wnull-dereference \ -Wold-style-definition \ -Wopenmp-simd \ -Woverlength-strings \ -Wpacked \ -Wpointer-arith \ -Wshadow \ -Wstack-protector \ -Wstrict-overflow \ -Wstrict-prototypes \ -Wsuggest-attribute=cold \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wsuggest-final-methods \ -Wsuggest-final-types \ -Wsync-nand \ -Wsystem-headers \ -Wtrampolines \ -Wuninitialized \ -Wunknown-pragmas \ -Wunsafe-loop-optimizations \ -Wunused-macros \ -Wvariadic-macros \ -Wvector-operation-performance \ -Wvla \ -Wwrite-strings \ \ ; do gl_AS_VAR_APPEND([$1], [" $gl_manywarn_item"]) done # gcc --help=warnings outputs an unusual form for these options; list # them here so that the above 'comm' command doesn't report a false match. gl_AS_VAR_APPEND([$1], [' -Warray-bounds=2']) gl_AS_VAR_APPEND([$1], [' -Wattribute-alias=2']) gl_AS_VAR_APPEND([$1], [' -Wformat-overflow=2']) gl_AS_VAR_APPEND([$1], [' -Wformat=2']) gl_AS_VAR_APPEND([$1], [' -Wformat-truncation=2']) gl_AS_VAR_APPEND([$1], [' -Wimplicit-fallthrough=5']) gl_AS_VAR_APPEND([$1], [' -Wshift-overflow=2']) gl_AS_VAR_APPEND([$1], [' -Wunused-const-variable=2']) gl_AS_VAR_APPEND([$1], [' -Wvla-larger-than=4031']) # These are needed for older GCC versions. if test -n "$GCC"; then case `($CC --version) 2>/dev/null` in 'gcc (GCC) '[[0-3]].* | \ 'gcc (GCC) '4.[[0-7]].*) gl_AS_VAR_APPEND([$1], [' -fdiagnostics-show-option']) gl_AS_VAR_APPEND([$1], [' -funit-at-a-time']) ;; esac fi # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_AS_VAR_APPEND([$1], [' -Wno-missing-field-initializers']) fi if test "$gl_cv_cc_uninitialized_supported" = no; then gl_AS_VAR_APPEND([$1], [' -Wno-uninitialized']) fi # Some warnings have too many false alarms in GCC 10.1. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93695 gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-double-free']) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94458 gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-malloc-leak']) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94851 gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-null-dereference']) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95758 gl_AS_VAR_APPEND([$1], [' -Wno-analyzer-use-after-free']) AC_LANG_POP([C]) ]) # Specialization for _AC_LANG = C++. AC_DEFUN([gl_MANYWARN_ALL_GCC(C++)], [ gl_MANYWARN_ALL_GCC_CXX_IMPL([$1]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/csharpcomp.m4���������������������������������������������������������������������0000644�0000000�0000000�00000003477�14076273520�013141� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# csharpcomp.m4 serial 9 dnl Copyright (C) 2003-2005, 2007, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Prerequisites of csharpcomp.sh. # Checks for a C# compiler. # Sets at most one of HAVE_MCS, HAVE_CSC. # Sets HAVE_CSHARPCOMP to nonempty if csharpcomp.sh will work. # Also sets CSHARPCOMPFLAGS. AC_DEFUN([gt_CSHARPCOMP], [ AC_REQUIRE([gt_CSHARP_CHOICE]) AC_MSG_CHECKING([for C[#] compiler]) HAVE_CSHARPCOMP=1 pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl AC_CHECK_PROG([HAVE_MCS_IN_PATH], [mcs], [yes]) AC_CHECK_PROG([HAVE_CSC_IN_PATH], [csc], [yes]) popdef([AC_MSG_RESULT])dnl popdef([AC_CHECKING])dnl popdef([AC_MSG_CHECKING])dnl for impl in "$CSHARP_CHOICE" mono sscli no; do case "$impl" in mono) if test -n "$HAVE_MCS_IN_PATH" \ && mcs --version >/dev/null 2>/dev/null \ && mcs --version 2>/dev/null | grep Mono >/dev/null; then HAVE_MCS=1 ac_result="mcs" break fi ;; sscli) if test -n "$HAVE_CSC_IN_PATH" \ && csc -help >/dev/null 2>/dev/null \ && { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then HAVE_CSC=1 ac_result="csc" break fi ;; no) HAVE_CSHARPCOMP= ac_result="no" break ;; esac done AC_MSG_RESULT([$ac_result]) AC_SUBST([HAVE_MCS]) AC_SUBST([HAVE_CSC]) dnl Provide a default for CSHARPCOMPFLAGS. if test -z "${CSHARPCOMPFLAGS+set}"; then CSHARPCOMPFLAGS="-O -g" fi AC_SUBST([CSHARPCOMPFLAGS]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/pid_t.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000002610�14076273520�012065� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pid_t.m4 serial 4 dnl Copyright (C) 2020-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # The following implementation works around a problem in autoconf <= 2.69. m4_version_prereq([2.70], [], [ dnl Define pid_t if the headers don't define it. AC_DEFUN([AC_TYPE_PID_T], [ AC_CHECK_TYPE([pid_t], [], [dnl On 64-bit native Windows, define it to the equivalent of 'intptr_t' dnl (= 'long long' = '__int64'), because that is the return type dnl of the _spawnv* functions dnl <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/spawnvp-wspawnvp> dnl and the argument type of the _cwait function dnl <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/cwait>. dnl Otherwise (on 32-bit Windows and on old Unix platforms), define it dnl to 'int'. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #if defined _WIN64 && !defined __CYGWIN__ LLP64 #endif ]]) ], [gl_pid_type='int'], [gl_pid_type='__int64']) AC_DEFINE_UNQUOTED([pid_t], [$gl_pid_type], [Define as a signed integer type capable of holding a process identifier.]) ], [AC_INCLUDES_DEFAULT]) ]) ])# m4_version_prereq 2.70 ������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/m4/gnulib-cache.m4�������������������������������������������������������������������0000644�0000000�0000000�00000005107�14076273524�013317� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import --local-dir=gl \ # --lib=libgnu \ # --source-base=gl \ # --m4-base=gl/m4 \ # --doc-base=doc \ # --tests-base=gl/tests \ # --aux-dir=build-aux \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --no-vc-files \ # autobuild \ # csharpcomp-script \ # csharpexec-script \ # error \ # fdl-1.3 \ # getline \ # getopt-gnu \ # git-version-gen \ # gitlog-to-changelog \ # lib-msvc-compat \ # lib-symbol-versions \ # lib-symbol-visibility \ # manywarnings \ # pmccabe2html \ # progname \ # readme-release \ # update-copyright \ # useless-if-before-free \ # valgrind-tests \ # version-etc # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([gl]) gl_MODULES([ autobuild csharpcomp-script csharpexec-script error fdl-1.3 getline getopt-gnu git-version-gen gitlog-to-changelog lib-msvc-compat lib-symbol-versions lib-symbol-visibility manywarnings pmccabe2html progname readme-release update-copyright useless-if-before-free valgrind-tests version-etc ]) gl_AVOID([]) gl_SOURCE_BASE([gl]) gl_M4_BASE([gl/m4]) gl_PO_BASE([]) gl_DOC_BASE([doc]) gl_TESTS_BASE([gl/tests]) gl_LIB([libgnu]) gl_MAKEFILE_NAME([]) gl_LIBTOOL gl_MACRO_PREFIX([gl]) gl_PO_DOMAIN([]) gl_WITNESS_C_MACRO([]) gl_VC_FILES([false]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/version-etc.c������������������������������������������������������������������������0000644�0000000�0000000�00000022305�14076273520�012611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Print --version and bug-reporting information in a consistent format. Copyright (C) 1999-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Jim Meyering. */ #include <config.h> /* Specification. */ #include "version-etc.h" #include <stdarg.h> #include <stdio.h> #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #include "gettext.h" #define _(msgid) gettext (msgid) /* If you use AM_INIT_AUTOMAKE's no-define option, PACKAGE is not defined. Use PACKAGE_TARNAME instead. */ #if ! defined PACKAGE && defined PACKAGE_TARNAME # define PACKAGE PACKAGE_TARNAME #endif enum { COPYRIGHT_YEAR = 2021 }; /* The three functions below display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The functions differ in the way they are passed author names. */ /* Display the --version information the standard way. Author names are given in the array AUTHORS. N_AUTHORS is the number of elements in the array. */ void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors) { if (command_name) fprintf (stream, "%s (%s) %s\n", command_name, package, version); else fprintf (stream, "%s %s\n", package, version); #ifdef PACKAGE_PACKAGER # ifdef PACKAGE_PACKAGER_VERSION fprintf (stream, _("Packaged by %s (%s)\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_VERSION); # else fprintf (stream, _("Packaged by %s\n"), PACKAGE_PACKAGER); # endif #endif /* TRANSLATORS: Translate "(C)" to the copyright symbol (C-in-a-circle), if this symbol is available in the user's locale. Otherwise, do not translate "(C)"; leave it as-is. */ fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); fputs ("\n", stream); /* TRANSLATORS: The %s placeholder is the web address of the GPL license. */ fprintf (stream, _("\ License GPLv3+: GNU GPL version 3 or later <%s>.\n\ This is free software: you are free to change and redistribute it.\n\ There is NO WARRANTY, to the extent permitted by law.\n\ "), "https://gnu.org/licenses/gpl.html"); fputs ("\n", stream); switch (n_authors) { case 0: /* No authors are given. The caller should output authorship info after calling this function. */ break; case 1: /* TRANSLATORS: %s denotes an author name. */ fprintf (stream, _("Written by %s.\n"), authors[0]); break; case 2: /* TRANSLATORS: Each %s denotes an author name. */ fprintf (stream, _("Written by %s and %s.\n"), authors[0], authors[1]); break; case 3: /* TRANSLATORS: Each %s denotes an author name. */ fprintf (stream, _("Written by %s, %s, and %s.\n"), authors[0], authors[1], authors[2]); break; case 4: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), authors[0], authors[1], authors[2], authors[3]); break; case 5: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4]); break; case 6: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5]); break; case 7: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6]); break; case 8: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7]); break; case 9: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7], authors[8]); break; default: /* 10 or more authors. Use an abbreviation, since the human reader will probably not want to read the entire list anyway. */ /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7], authors[8]); break; } } /* Display the --version information the standard way. See the initial comment to this module, for more information. Author names are given in the NULL-terminated array AUTHORS. */ void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors) { size_t n_authors; for (n_authors = 0; authors[n_authors]; n_authors++) ; version_etc_arn (stream, command_name, package, version, authors, n_authors); } /* Display the --version information the standard way. See the initial comment to this module, for more information. Author names are given in the NULL-terminated va_list AUTHORS. */ void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors) { size_t n_authors; const char *authtab[10]; for (n_authors = 0; n_authors < 10 && (authtab[n_authors] = va_arg (authors, const char *)) != NULL; n_authors++) ; version_etc_arn (stream, command_name, package, version, authtab, n_authors); } /* Display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The authors names are passed as separate arguments, with an additional NULL argument at the end. */ void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, /* const char *author1, ...*/ ...) { va_list authors; va_start (authors, version); version_etc_va (stream, command_name, package, version, authors); va_end (authors); } void emit_bug_reporting_address (void) { fputs ("\n", stdout); /* TRANSLATORS: The placeholder indicates the bug-reporting address for this package. Please add _another line_ saying "Report translation bugs to <...>\n" with the address for translation bugs (typically your translation team's web or email address). */ printf (_("Report bugs to: %s\n"), PACKAGE_BUGREPORT); #ifdef PACKAGE_PACKAGER_BUG_REPORTS printf (_("Report %s bugs to: %s\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_BUG_REPORTS); #endif #ifdef PACKAGE_URL printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); #else printf (_("%s home page: <%s>\n"), PACKAGE_NAME, "https://www.gnu.org/software/" PACKAGE "/"); #endif printf (_("General help using GNU software: <%s>\n"), "https://www.gnu.org/gethelp/"); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt-core.h������������������������������������������������������������������������0000644�0000000�0000000�00000007132�14076273520�012611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declarations for getopt (basic, portable features only). Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _GETOPT_CORE_H #define _GETOPT_CORE_H 1 /* This header should not be used directly; include getopt.h or unistd.h instead. Unlike most bits headers, it does not have a protective #error, because the guard macro for getopt.h in gnulib is not fixed. */ __BEGIN_DECLS /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message 'getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options missing arguments, 'optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter takes an argument, to be placed in 'optarg'. If a letter in OPTS is followed by two colons, its argument is optional. This behavior is specific to the GNU 'getopt'. The argument '--' causes premature termination of argument scanning, explicitly telling 'getopt' that there are no more options. If OPTS begins with '-', then non-option arguments are treated as arguments to the option '\1'. This behavior is specific to the GNU 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in the environment, then do not permute arguments. For standards compliance, the 'argv' argument has the type char *const *, but this is inaccurate; if argument permutation is enabled, the argv array (not the strings it points to) must be writable. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW _GL_ARG_NONNULL ((2, 3)); __END_DECLS #endif /* _GETOPT_CORE_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/string.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000131263�14076273520�012277� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A GNU-like <string.h>. Copyright (C) 1995-1996, 2001-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_STRING_H /* Special invocation convention: - On OS X/NetBSD we have a sequence of nested includes <string.h> -> <strings.h> -> "string.h" In this situation system _chk variants due to -D_FORTIFY_SOURCE might be used after any replacements defined here. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STRING_H #define _GL_ALREADY_INCLUDING_STRING_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #undef _GL_ALREADY_INCLUDING_STRING_H #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include <stddef.h> /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include <wchar.h> #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #ifndef _GL_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _GL_ATTRIBUTE_PURE /* empty */ # endif #endif /* NetBSD 5.0 declares strsignal in <unistd.h>, not in <string.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include <unistd.h> #endif /* AIX 7.2 declares ffsl and ffsll in <strings.h>, not in <string.h>. */ /* But in any case avoid namespace pollution on glibc systems. */ #if ((@GNULIB_FFSL@ || @GNULIB_FFSLL@ || defined GNULIB_POSIXCHECK) \ && defined _AIX) \ && ! defined __GLIBC__ # include <strings.h> #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Clear a block of memory. The compiler will not delete a call to this function, even if the block is dead after the call. */ #if @GNULIB_EXPLICIT_BZERO@ # if ! @HAVE_EXPLICIT_BZERO@ _GL_FUNCDECL_SYS (explicit_bzero, void, (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); _GL_CXXALIASWARN (explicit_bzero); #elif defined GNULIB_POSIXCHECK # undef explicit_bzero # if HAVE_RAW_DECL_EXPLICIT_BZERO _GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " "use gnulib module explicit_bzero for portability"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if @REPLACE_FFSLL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ffsll rpl_ffsll # endif _GL_FUNCDECL_RPL (ffsll, int, (long long int i)); _GL_CXXALIAS_RPL (ffsll, int, (long long int i)); # else # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif #if @GNULIB_MDA_MEMCCPY@ /* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::memccpy always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef memccpy # define memccpy _memccpy # endif _GL_CXXALIAS_MDA (memccpy, void *, (void *dest, const void *src, int c, size_t n)); # else _GL_CXXALIAS_SYS (memccpy, void *, (void *dest, const void *src, int c, size_t n)); # endif _GL_CXXALIASWARN (memccpy); #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef memchr # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE_CXX (strchr, const char *, char *, (const char *, int), "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup _strdup # endif _GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #elif @GNULIB_MDA_STRDUP@ /* On native Windows, map 'creat' to '_creat', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::strdup always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup _strdup # endif _GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup # undef strdup # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *restrict dest, const char *restrict src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *restrict dest, const char *restrict src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *restrict dest, const char *restrict src, size_t n)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strncat); # endif #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE_CXX (strpbrk, const char *, char *, (const char *, const char *), "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE_CXX (strpbrk, const char *, char *, (const char *, const char *), "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE_CXX (strrchr, const char *, char *, (const char *, int), "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # elif __GLIBC__ >= 2 _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strerror); # endif #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif /* Return the name of the system error code ERRNUM. */ #if @GNULIB_STRERRORNAME_NP@ # if @REPLACE_STRERRORNAME_NP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerrorname_np # define strerrorname_np rpl_strerrorname_np # endif _GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum)); _GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); # else # if !@HAVE_STRERRORNAME_NP@ _GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum)); # endif _GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); # endif _GL_CXXALIASWARN (strerrorname_np); #elif defined GNULIB_POSIXCHECK # undef strerrorname_np # if HAVE_RAW_DECL_STRERRORNAME_NP _GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " "use gnulib module strerrorname_np for portability"); # endif #endif /* Return an abbreviation string for the signal number SIG. */ #if @GNULIB_SIGABBREV_NP@ # if ! @HAVE_SIGABBREV_NP@ _GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig)); # endif _GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); _GL_CXXALIASWARN (sigabbrev_np); #elif defined GNULIB_POSIXCHECK # undef sigabbrev_np # if HAVE_RAW_DECL_SIGABBREV_NP _GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " "use gnulib module sigabbrev_np for portability"); # endif #endif /* Return an English description string for the signal number SIG. */ #if @GNULIB_SIGDESCR_NP@ # if ! @HAVE_SIGDESCR_NP@ _GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig)); # endif _GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); _GL_CXXALIASWARN (sigdescr_np); #elif defined GNULIB_POSIXCHECK # undef sigdescr_np # if HAVE_RAW_DECL_SIGDESCR_NP _GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " "use gnulib module sigdescr_np for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/warn-on-use.h������������������������������������������������������������������������0000644�0000000�0000000�00000015471�14076273520�012541� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the attribute used in _GL_WARN_ON_USE. If the compiler does not support this feature, it expands to empty. These macros are useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. _GL_WARN_ON_USE is for functions with 'extern' linkage. _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' linkage. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system <stdio.h>: #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif or better (avoiding contradictory use of 'static' and 'extern'): #if HAVE_RAW_DECL_ENVIRON static char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__warning__ (message))) # elif __clang_major__ >= 4 /* Another compiler attribute is available in clang. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function \ __attribute__ ((__diagnose_if__ (1, message, "warning"))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__diagnose_if__ (1, message, "warning"))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if !defined __cplusplus # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ _GL_WARN_ON_USE (function, msg) # else # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_gcc function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __clang_major__ >= 4 /* Another compiler attribute is available in clang. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_clang function parameters_and_attributes \ __attribute__ ((__diagnose_if__ (1, msg, "warning"))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ extern rettype_gcc function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/basename-lgpl.h����������������������������������������������������������������������0000644�0000000�0000000�00000005324�14076273520�013071� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Extract the last component (base name) of a file name. Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _BASENAME_LGPL_H #define _BASENAME_LGPL_H #include <stddef.h> #ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 #endif #ifdef __cplusplus extern "C" { #endif /* Return the address of the last file name component of FILENAME. If FILENAME has some trailing slash(es), they are considered to be part of the last component. If FILENAME has no relative file name components because it is a file system root, return the empty string. Examples: FILENAME RESULT "foo.c" "foo.c" "foo/bar.c" "bar.c" "/foo/bar.c" "bar.c" "foo/bar/" "bar/" "foo/bar//" "bar//" "/" "" "//" "" "" "" The return value is a tail of the given FILENAME; do NOT free() it! */ /* This function was traditionally called 'basename', but we avoid this function name because * Various platforms have different functions in their libc. In particular, the glibc basename(), defined in <string.h>, does not consider trailing slashes to be part of the component: FILENAME RESULT "foo/bar/" "" "foo/bar//" "" * The 'basename' command eliminates trailing slashes and for a root produces a non-empty result: FILENAME RESULT "foo/bar/" "bar" "foo/bar//" "bar" "/" "/" "//" "/" */ extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE; /* Return the length of the basename FILENAME. Typically FILENAME is the value returned by base_name or last_component. Act like strlen (FILENAME), except omit all trailing slashes. */ extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _BASENAME_LGPL_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stat-time.c��������������������������������������������������������������������������0000644�0000000�0000000�00000001520�14076273520�012256� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stat-related time functions. Copyright (C) 2012-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE #include "stat-time.h" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/unistd.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000234376�14076273520�012310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Substitute for and wrapper around <unistd.h>. Copyright (C) 2003-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_UNISTD_H@ && defined _GL_INCLUDING_UNISTD_H /* Special invocation convention: - On Mac OS X 10.3.9 we have a sequence of nested includes <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h> In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_UNISTD_H@ #else /* Normal invocation convention. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # define _GL_INCLUDING_UNISTD_H # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ # undef _GL_INCLUDING_UNISTD_H #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include <winsock2.h> # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ /* But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include <stddef.h> #endif /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */ /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>. We must include it before we #define unlink rpl_unlink. */ /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include <stdio.h> #endif /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \ && (defined __CYGWIN__ || defined __ANDROID__) \ && ! defined __GLIBC__ # include <fcntl.h> #endif /* mingw fails to declare _exit in <unistd.h>. */ /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>. */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include <stdlib.h> # undef __need_system_stdlib_h #endif /* Native Windows platforms declare _chdir, _getcwd, _rmdir in <io.h> and/or <direct.h>, not in <unistd.h>. They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), _lseek(), _read(), _unlink(), _write() in <io.h>. */ #if defined _WIN32 && !defined __CYGWIN__ # include <io.h> # include <direct.h> #endif /* Native Windows platforms declare _execl*, _execv* in <process.h>. */ #if defined _WIN32 && !defined __CYGWIN__ # include <process.h> #endif /* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>. NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include <netdb.h> #endif /* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in <sys/random.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_GETENTROPY@ || defined GNULIB_POSIXCHECK) \ && ((defined __APPLE__ && defined __MACH__) || defined __sun \ || defined __ANDROID__) \ && @UNISTD_H_HAVE_SYS_RANDOM_H@ \ && !defined __GLIBC__ # include <sys/random.h> #endif /* Android 4.3 declares fchownat in <sys/stat.h>, not in <unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ && !defined __GLIBC__ # include <sys/stat.h> #endif /* MSVC defines off_t in <sys/types.h>. May also define off_t to a 64-bit type on native Windows. */ /* Get off_t, ssize_t, mode_t. */ #include <sys/types.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Get getopt(), optarg, optind, opterr, optopt. */ #if @GNULIB_GETOPT_POSIX@ && @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT # include <getopt-cdefs.h> # include <getopt-pfx-core.h> #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* Hide some function declarations from <winsock2.h>. */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including <sys/socket.h>"); _GL_WARN_ON_USE (connect, "connect() used without including <sys/socket.h>"); _GL_WARN_ON_USE (accept, "accept() used without including <sys/socket.h>"); _GL_WARN_ON_USE (bind, "bind() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getpeername, "getpeername() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getsockname, "getsockname() used without including <sys/socket.h>"); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including <sys/socket.h>"); _GL_WARN_ON_USE (listen, "listen() used without including <sys/socket.h>"); _GL_WARN_ON_USE (recv, "recv() used without including <sys/socket.h>"); _GL_WARN_ON_USE (send, "send() used without including <sys/socket.h>"); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including <sys/socket.h>"); _GL_WARN_ON_USE (sendto, "sendto() used without including <sys/socket.h>"); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including <sys/socket.h>"); _GL_WARN_ON_USE (shutdown, "shutdown() used without including <sys/socket.h>"); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including <sys/select.h>"); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if @GNULIB_ACCESS@ # if @REPLACE_ACCESS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access rpl_access # endif _GL_FUNCDECL_RPL (access, int, (const char *file, int mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access _access # endif _GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); # else _GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); # endif _GL_CXXALIASWARN (access); #elif defined GNULIB_POSIXCHECK # undef access # if HAVE_RAW_DECL_ACCESS /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "access does not always support X_OK - " "use gnulib module access for portability; " "also, this function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif @GNULIB_MDA_ACCESS@ /* On native Windows, map 'access' to '_access', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::access always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef access # define access _access # endif _GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); # else _GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); # endif _GL_CXXALIASWARN (access); #endif #if @GNULIB_CHDIR@ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chdir # define chdir _chdir # endif _GL_CXXALIAS_MDA (chdir, int, (const char *file)); # else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - " "use gnulib module chdir for portability"); # endif #elif @GNULIB_MDA_CHDIR@ /* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::chdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chdir # define chdir _chdir # endif _GL_CXXALIAS_MDA (chdir, int, (const char *file)); # else _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIASWARN (chdir); #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html. */ # if @REPLACE_CHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chown # define chown rpl_chown # endif _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)); # else # if !@HAVE_CHOWN@ _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)); # endif _GL_CXXALIASWARN (chown); #elif defined GNULIB_POSIXCHECK # undef chown # if HAVE_RAW_DECL_CHOWN _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and " "doesn't treat a uid or gid of -1 on some systems - " "use gnulib module chown for portability"); # endif #endif #if @GNULIB_CLOSE@ # if @REPLACE_CLOSE@ /* Automatically included by modules that need a replacement for close. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close rpl_close # endif _GL_FUNCDECL_RPL (close, int, (int fd)); _GL_CXXALIAS_RPL (close, int, (int fd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close _close # endif _GL_CXXALIAS_MDA (close, int, (int fd)); # else _GL_CXXALIAS_SYS (close, int, (int fd)); # endif _GL_CXXALIASWARN (close); #elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ # undef close # define close close_used_without_requesting_gnulib_module_close #elif defined GNULIB_POSIXCHECK # undef close /* Assume close is always declared. */ _GL_WARN_ON_USE (close, "close does not portably work on sockets - " "use gnulib module close for portability"); #elif @GNULIB_MDA_CLOSE@ /* On native Windows, map 'close' to '_close', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::close always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close _close # endif _GL_CXXALIAS_MDA (close, int, (int fd)); # else _GL_CXXALIAS_SYS (close, int, (int fd)); # endif _GL_CXXALIASWARN (close); #endif #if @GNULIB_COPY_FILE_RANGE@ # if !@HAVE_COPY_FILE_RANGE@ _GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos, int ofd, off_t *opos, size_t len, unsigned flags)); _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos, int ofd, off_t *opos, size_t len, unsigned flags)); # endif _GL_CXXALIASWARN (copy_file_range); #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_COPY_FILE_RANGE _GL_WARN_ON_USE (copy_file_range, "copy_file_range is unportable - " "use gnulib module copy_file_range for portability"); # endif #endif #if @GNULIB_DUP@ # if @REPLACE_DUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup rpl_dup # endif _GL_FUNCDECL_RPL (dup, int, (int oldfd)); _GL_CXXALIAS_RPL (dup, int, (int oldfd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup # define dup _dup # endif _GL_CXXALIAS_MDA (dup, int, (int oldfd)); # else _GL_CXXALIAS_SYS (dup, int, (int oldfd)); # endif _GL_CXXALIASWARN (dup); #elif defined GNULIB_POSIXCHECK # undef dup # if HAVE_RAW_DECL_DUP _GL_WARN_ON_USE (dup, "dup is unportable - " "use gnulib module dup for portability"); # endif #elif @GNULIB_MDA_DUP@ /* On native Windows, map 'dup' to '_dup', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::dup always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup # define dup _dup # endif _GL_CXXALIAS_MDA (dup, int, (int oldfd)); # else _GL_CXXALIAS_SYS (dup, int, (int oldfd)); # endif _GL_CXXALIASWARN (dup); #endif #if @GNULIB_DUP2@ /* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if NEWFD = OLDFD, otherwise close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>. */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup2 # define dup2 _dup2 # endif _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #elif @GNULIB_MDA_DUP2@ /* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::dup2 always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef dup2 # define dup2 _dup2 # endif _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); # else _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if defined __CYGWIN__ && !defined __i386__ /* The 'environ' variable is defined in a DLL. Therefore its declaration needs the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it. This leads to a link error on 64-bit Cygwin when the option -Wl,--disable-auto-import is in use. */ _GL_EXTERN_C __declspec(dllimport) char **environ; # endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include <TargetConditionals.h> # if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR # define _GL_USE_CRT_EXTERNS # endif # endif # ifdef _GL_USE_CRT_EXTERNS # include <crt_externs.h> # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " "use gnulib module environ for portability") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_EXECL@ # if @REPLACE_EXECL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execl # define execl rpl_execl # endif _GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execl); #elif defined GNULIB_POSIXCHECK # undef execl # if HAVE_RAW_DECL_EXECL _GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " "use gnulib module execl for portability"); # endif #elif @GNULIB_MDA_EXECL@ /* On native Windows, map 'execl' to '_execl', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execl always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execl # define execl _execl # endif _GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execl); #endif #if @GNULIB_EXECLE@ # if @REPLACE_EXECLE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execle # define execle rpl_execle # endif _GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execle); #elif defined GNULIB_POSIXCHECK # undef execle # if HAVE_RAW_DECL_EXECLE _GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " "use gnulib module execle for portability"); # endif #elif @GNULIB_MDA_EXECLE@ /* On native Windows, map 'execle' to '_execle', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execle always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execle # define execle _execle # endif _GL_CXXALIAS_MDA (execle, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execle); #endif #if @GNULIB_EXECLP@ # if @REPLACE_EXECLP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execlp # define execlp rpl_execlp # endif _GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execlp); #elif defined GNULIB_POSIXCHECK # undef execlp # if HAVE_RAW_DECL_EXECLP _GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " "use gnulib module execlp for portability"); # endif #elif @GNULIB_MDA_EXECLP@ /* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execlp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execlp # define execlp _execlp # endif _GL_CXXALIAS_MDA (execlp, intptr_t, (const char *program, const char *arg, ...)); # else _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); # endif _GL_CXXALIASWARN (execlp); #endif #if @GNULIB_EXECV@ # if @REPLACE_EXECV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execv # define execv rpl_execv # endif _GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execv); #elif defined GNULIB_POSIXCHECK # undef execv # if HAVE_RAW_DECL_EXECV _GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " "use gnulib module execv for portability"); # endif #elif @GNULIB_MDA_EXECV@ /* On native Windows, map 'execv' to '_execv', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execv always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execv # define execv _execv # endif _GL_CXXALIAS_MDA_CAST (execv, intptr_t, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execv); #endif #if @GNULIB_EXECVE@ # if @REPLACE_EXECVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execve # define execve rpl_execve # endif _GL_FUNCDECL_RPL (execve, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execve, int, (const char *program, char * const *argv, char * const *env)); # else _GL_CXXALIAS_SYS (execve, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execve); #elif defined GNULIB_POSIXCHECK # undef execve # if HAVE_RAW_DECL_EXECVE _GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " "use gnulib module execve for portability"); # endif #elif @GNULIB_MDA_EXECVE@ /* On native Windows, map 'execve' to '_execve', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execve always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execve # define execve _execve # endif _GL_CXXALIAS_MDA_CAST (execve, intptr_t, (const char *program, char * const *argv, char * const *env)); # else _GL_CXXALIAS_SYS (execve, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execve); #endif #if @GNULIB_EXECVP@ # if @REPLACE_EXECVP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvp # define execvp rpl_execvp # endif _GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execvp); #elif defined GNULIB_POSIXCHECK # undef execvp # if HAVE_RAW_DECL_EXECVP _GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " "use gnulib module execvp for portability"); # endif #elif @GNULIB_MDA_EXECVP@ /* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execvp always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvp # define execvp _execvp # endif _GL_CXXALIAS_MDA_CAST (execvp, intptr_t, (const char *program, char * const *argv)); # else _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); # endif _GL_CXXALIASWARN (execvp); #endif #if @GNULIB_EXECVPE@ # if @REPLACE_EXECVPE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvpe # define execvpe rpl_execvpe # endif _GL_FUNCDECL_RPL (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (execvpe, int, (const char *program, char * const *argv, char * const *env)); # else # if !@HAVE_DECL_EXECVPE@ _GL_FUNCDECL_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env)); # endif _GL_CXXALIASWARN (execvpe); #elif defined GNULIB_POSIXCHECK # undef execvpe # if HAVE_RAW_DECL_EXECVPE _GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " "use gnulib module execvpe for portability"); # endif #elif @GNULIB_MDA_EXECVPE@ /* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have it. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef execvpe # define execvpe _execvpe # endif _GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, (const char *program, char * const *argv, char * const *env)); # elif @HAVE_EXECVPE@ # if !@HAVE_DECL_EXECVPE@ _GL_FUNCDECL_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (execvpe, int, (const char *program, char * const *argv, char * const *env)); # endif # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_EXECVPE@ _GL_CXXALIASWARN (execvpe); # endif #endif #if @GNULIB_FACCESSAT@ # if @REPLACE_FACCESSAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef faccessat # define faccessat rpl_faccessat # endif _GL_FUNCDECL_RPL (faccessat, int, (int fd, char const *name, int mode, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (faccessat, int, (int fd, char const *name, int mode, int flag)); # else # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); # endif _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>. */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module fchownat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>. */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>. */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>. */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>. Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getcwd # define getcwd _getcwd # endif _GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #elif @GNULIB_MDA_GETCWD@ /* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getcwd always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getcwd # define getcwd _getcwd # endif /* Need to cast, because on mingw, the second parameter is either 'int size' or 'size_t size'. */ _GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); # else _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if @REPLACE_GETDTABLESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdtablesize # define getdtablesize rpl_getdtablesize # endif _GL_FUNCDECL_RPL (getdtablesize, int, (void)); _GL_CXXALIAS_RPL (getdtablesize, int, (void)); # else # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif /* Need to cast, because on AIX, the parameter list is (...). */ _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); # endif _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETENTROPY@ /* Fill a buffer with random bytes. */ # if !@HAVE_GETENTROPY@ _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); # endif _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); _GL_CXXALIASWARN (getentropy); #elif defined GNULIB_POSIXCHECK # undef getentropy # if HAVE_RAW_DECL_GETENTROPY _GL_WARN_ON_USE (getentropy, "getentropy is unportable - " "use gnulib module getentropy for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>. Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_DECL_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>. Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else /* On HP-UX, getpagesize exists, but it is not declared in <unistd.h> even if the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ # if defined __hpux _GL_FUNCDECL_SYS (getpagesize, int, (void)); # endif # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include <OS.h> # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include <sys/param.h> # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETPASS@ /* Function getpass() from module 'getpass': Read a password from /dev/tty or stdin. Function getpass() from module 'getpass-gnu': Read a password of arbitrary length from /dev/tty or stdin. */ # if @REPLACE_GETPASS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpass # define getpass rpl_getpass # endif _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); # else # if !@HAVE_GETPASS@ _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); # endif _GL_CXXALIASWARN (getpass); #elif defined GNULIB_POSIXCHECK # undef getpass # if HAVE_RAW_DECL_GETPASS _GL_WARN_ON_USE (getpass, "getpass is unportable - " "use gnulib module getpass or getpass-gnu for portability"); # endif #endif #if @GNULIB_MDA_GETPID@ /* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::getpid always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpid # define getpid _getpid # endif _GL_CXXALIAS_MDA (getpid, int, (void)); # else _GL_CXXALIAS_SYS (getpid, pid_t, (void)); # endif _GL_CXXALIASWARN (getpid); #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif # define GNULIB_defined_isatty 1 _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty _isatty # endif _GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #elif @GNULIB_MDA_ISATTY@ /* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::isatty always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty _isatty # endif _GL_CXXALIAS_MDA (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>. */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>. */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>. */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lseek # define lseek _lseek # endif _GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #elif @GNULIB_MDA_LSEEK@ /* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::lseek always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lseek # define lseek _lseek # endif _GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>. */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>. */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>. */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read _read # endif _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); # else _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #elif @GNULIB_MDA_READ@ /* On native Windows, map 'read' to '_read', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::read always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read _read # endif # ifdef __MINGW32__ _GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count)); # else _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count)); # endif # else _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>. */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if @REPLACE_READLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlinkat rpl_readlinkat # endif _GL_FUNCDECL_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); # else # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); # endif _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rmdir # define rmdir _rmdir # endif _GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #elif @GNULIB_MDA_RMDIR@ /* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::rmdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rmdir # define rmdir _rmdir # endif _GL_CXXALIAS_MDA (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>. */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_MDA_SWAB@ /* On native Windows, map 'swab' to '_swab', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::swab always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef swab # define swab _swab # endif /* Need to cast, because in old mingw the arguments are (const char *from, char *to, size_t n). */ _GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); # else # if defined __hpux /* HP-UX */ _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); # elif defined __sun && !defined _XPG4 /* Solaris */ _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); # else _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); # endif # endif _GL_CXXALIASWARN (swab); #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if @REPLACE_SYMLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlinkat # define symlinkat rpl_symlinkat # endif _GL_FUNCDECL_RPL (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (symlinkat, int, (char const *contents, int fd, char const *file)); # else # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); # endif _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TRUNCATE@ /* Change the size of the file designated by FILENAME to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/truncate.html>. */ # if @REPLACE_TRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncate # define truncate rpl_truncate # endif _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else # if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); # endif _GL_CXXALIASWARN (truncate); #elif defined GNULIB_POSIXCHECK # undef truncate # if HAVE_RAW_DECL_TRUNCATE _GL_WARN_ON_USE (truncate, "truncate is unportable - " "use gnulib module truncate for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink _unlink # endif _GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #elif @GNULIB_MDA_UNLINK@ /* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::unlink always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink _unlink # endif _GL_CXXALIAS_MDA (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module unlinkat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification <https://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html>. */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif /* Need to cast, because on Haiku, the first parameter is unsigned int n. */ _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification <https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>. */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); # else _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #elif @GNULIB_MDA_WRITE@ /* On native Windows, map 'write' to '_write', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::write always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif # ifdef __MINGW32__ _GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count)); # else _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count)); # endif # else _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _GL_INCLUDING_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/msvc-nothrow.h�����������������������������������������������������������������������0000644�0000000�0000000�00000003023�14076273520�013022� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines wrappers that turn such an invalid parameter notification into an error code. */ #if defined _WIN32 && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include <io.h> # if HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Override _get_osfhandle. */ extern intptr_t _gl_nothrow_get_osfhandle (int fd); # define _get_osfhandle _gl_nothrow_get_osfhandle # endif #endif #endif /* _MSVC_NOTHROW_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/error.c������������������������������������������������������������������������������0000644�0000000�0000000�00000024751�14076273520�011513� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Error handler for noninteractive utilities Copyright (C) 1990-1998, 2000-2007, 2009-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */ #if !_LIBC # include <config.h> #endif #include "error.h" #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #if !_LIBC && ENABLE_NLS # include "gettext.h" # define _(msgid) gettext (msgid) #endif #ifdef _LIBC # include <libintl.h> # include <stdbool.h> # include <stdint.h> # include <wchar.h> # define mbsrtowcs __mbsrtowcs # define USE_UNLOCKED_IO 0 # define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b) # define _GL_ARG_NONNULL(a) #else # include "getprogname.h" #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #ifndef _ # define _(String) String #endif /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ unsigned int error_message_count; #ifdef _LIBC /* In the GNU C library, there is a predefined variable for this. */ # define program_name program_invocation_name # include <errno.h> # include <limits.h> # include <libio/libioP.h> /* In GNU libc we want do not want to use the common name 'error' directly. Instead make it a weak alias. */ extern void __error (int status, int errnum, const char *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) __attribute__ ((__format__ (__printf__, 5, 6))); # define error __error # define error_at_line __error_at_line # include <libio/iolibio.h> # define fflush(s) _IO_fflush (s) # undef putc # define putc(c, fp) _IO_putc (c, fp) # include <bits/libc-lock.h> #else /* not _LIBC */ # include <fcntl.h> # include <unistd.h> # if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include <io.h> # endif # endif /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl # if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R) # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif # if STRERROR_R_CHAR_P char *strerror_r (int errnum, char *buf, size_t buflen); # else int strerror_r (int errnum, char *buf, size_t buflen); # endif # endif # define program_name getprogname () # if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r # endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ #if !_LIBC /* Return non-zero if FD is open. */ static int is_open (int fd) { # if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support F_GETFL. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; # else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); # endif } #endif static void flush_stdout (void) { #if !_LIBC int stdout_fd; # if GNULIB_FREOPEN_SAFER /* Use of gnulib's freopen-safer module normally ensures that fileno (stdout) == 1 whenever stdout is open. */ stdout_fd = STDOUT_FILENO; # else /* POSIX states that fileno (stdout) after fclose is unspecified. But in practice it is not a problem, because stdout is statically allocated and the fd of a FILE stream is stored as a field in its allocated memory. */ stdout_fd = fileno (stdout); # endif /* POSIX states that fflush (stdout) after fclose is unspecified; it is safe in glibc, but not on all other platforms. fflush (NULL) is always defined, but too draconian. */ if (0 <= stdout_fd && is_open (stdout_fd)) #endif fflush (stdout); } static void print_errno_message (int errnum) { char const *s; #if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R char errbuf[1024]; # if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P) s = __strerror_r (errnum, errbuf, sizeof errbuf); # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) s = errbuf; else s = 0; # endif #else s = strerror (errnum); #endif #if !_LIBC if (! s) s = _("Unknown system error"); #endif #if _LIBC __fxprintf (NULL, ": %s", s); #else fprintf (stderr, ": %s", s); #endif } static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3)) error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { size_t len = strlen (message) + 1; wchar_t *wmessage = NULL; mbstate_t st; size_t res; const char *tmp; bool use_malloc = false; while (1) { if (__libc_use_alloca (len * sizeof (wchar_t))) wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); else { if (!use_malloc) wmessage = NULL; wchar_t *p = (wchar_t *) realloc (wmessage, len * sizeof (wchar_t)); if (p == NULL) { free (wmessage); fputws_unlocked (L"out of memory\n", stderr); return; } wmessage = p; use_malloc = true; } memset (&st, '\0', sizeof (st)); tmp = message; res = mbsrtowcs (wmessage, &tmp, len, &st); if (res != len) break; if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0)) { /* This really should not happen if everything is fine. */ res = (size_t) -1; break; } len *= 2; } if (res == (size_t) -1) { /* The string cannot be converted. */ if (use_malloc) { free (wmessage); use_malloc = false; } wmessage = (wchar_t *) L"???"; } __vfwprintf (stderr, wmessage, args); if (use_malloc) free (wmessage); } else #endif vfprintf (stderr, message, args); ++error_message_count; if (errnum) print_errno_message (errnum); #if _LIBC __fxprintf (NULL, "\n"); #else putc ('\n', stderr); #endif fflush (stderr); if (status) exit (status); } /* Print the program name and error message MESSAGE, which is a printf-style format string with optional args. If ERRNUM is nonzero, print its corresponding system error message. Exit with status STATUS if it is nonzero. */ void error (int status, int errnum, const char *message, ...) { va_list args; #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s: ", program_name); #else fprintf (stderr, "%s: ", program_name); #endif } va_start (args, message); error_tail (status, errnum, message, args); va_end (args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ int error_one_per_line; void error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) { va_list args; if (error_one_per_line) { static const char *old_file_name; static unsigned int old_line_number; if (old_line_number == line_number && (file_name == old_file_name || (old_file_name != NULL && file_name != NULL && strcmp (old_file_name, file_name) == 0))) /* Simply return and print nothing. */ return; old_file_name = file_name; old_line_number = line_number; } #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s:", program_name); #else fprintf (stderr, "%s:", program_name); #endif } #if _LIBC __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", file_name, line_number); #endif va_start (args, message); error_tail (status, errnum, message, args); va_end (args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } #ifdef _LIBC /* Make the weak alias. */ # undef error # undef error_at_line weak_alias (__error, error) weak_alias (__error_at_line, error_at_line) #endif �����������������������libidn-1.38/gl/fd-hook.h����������������������������������������������������������������������������0000644�0000000�0000000�00000011364�14076273520�011712� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Hook for making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef FD_HOOK_H #define FD_HOOK_H #ifdef __cplusplus extern "C" { #endif /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* Type of function that closes FD. */ typedef int (*gl_close_fn) (int fd); /* Type of function that applies a control request to FD. */ typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); /* An element of the list of file descriptor hooks. In CLOS (Common Lisp Object System) speak, it consists of an "around" method for the close() function and an "around" method for the ioctl() function. The fields of this structure are considered private. */ struct fd_hook { /* Doubly linked list. */ struct fd_hook *private_next; struct fd_hook *private_prev; /* Function that treats the types of FD that it knows about and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ int (*private_close_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Function that treats the types of FD that it knows about and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a fallback. */ int (*private_ioctl_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); }; /* This type of function closes FD, applying special knowledge for the FD types it knows about, and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for close(). */ typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute all close hooks, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_all_close_hooks (gl_close_fn primary, int fd); /* This type of function applies a control request to FD, applying special knowledge for the FD types it knows about, and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for ioctl(). */ typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute all ioctl hooks, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg); /* Add a function pair to the list of file descriptor hooks. CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. The LINK variable points to a piece of memory which is guaranteed to be accessible until the corresponding call to unregister_fd_hook. */ extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link); /* Removes a hook from the list of file descriptor hooks. */ extern void unregister_fd_hook (struct fd_hook *link); #endif #ifdef __cplusplus } #endif #endif /* FD_HOOK_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/unistd.c�����������������������������������������������������������������������������0000644�0000000�0000000�00000001541�14076273520�011660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Inline functions for <unistd.h>. Copyright (C) 2012-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" typedef int dummy; ���������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/Makefile.am��������������������������������������������������������������������������0000644�0000000�0000000�00000151166�14076273524�012257� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import --local-dir=gl \ # --lib=libgnu \ # --source-base=gl \ # --m4-base=gl/m4 \ # --doc-base=doc \ # --tests-base=gl/tests \ # --aux-dir=build-aux \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --no-vc-files \ # autobuild \ # csharpcomp-script \ # csharpexec-script \ # error \ # fdl-1.3 \ # getline \ # getopt-gnu \ # git-version-gen \ # gitlog-to-changelog \ # lib-msvc-compat \ # lib-symbol-versions \ # lib-symbol-visibility \ # manywarnings \ # pmccabe2html \ # progname \ # readme-release \ # update-copyright \ # useless-if-before-free \ # valgrind-tests \ # version-etc AUTOMAKE_OPTIONS = 1.11 gnits SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = # No GNU Make output. EXTRA_DIST += m4/gnulib-cache.m4 AM_CPPFLAGS = AM_CFLAGS = noinst_LTLIBRARIES += libgnu.la libgnu_la_SOURCES = libgnu_la_LIBADD = $(gl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = libgnu_la_LDFLAGS = $(AM_LDFLAGS) libgnu_la_LDFLAGS += -no-undefined libgnu_la_LDFLAGS += $(LTLIBINTL) ## begin gnulib module absolute-header # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) ## end gnulib module absolute-header ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' < $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module announce-gen EXTRA_DIST += $(top_srcdir)/build-aux/announce-gen ## end gnulib module announce-gen ## begin gnulib module basename-lgpl libgnu_la_SOURCES += basename-lgpl.c EXTRA_DIST += basename-lgpl.h ## end gnulib module basename-lgpl ## begin gnulib module cloexec libgnu_la_SOURCES += cloexec.c EXTRA_DIST += cloexec.h ## end gnulib module cloexec ## begin gnulib module close EXTRA_DIST += close.c EXTRA_libgnu_la_SOURCES += close.c ## end gnulib module close ## begin gnulib module csharpcomp-script EXTRA_DIST += $(top_srcdir)/build-aux/csharpcomp.sh.in ## end gnulib module csharpcomp-script ## begin gnulib module csharpexec-script EXTRA_DIST += $(top_srcdir)/build-aux/csharpexec.sh.in ## end gnulib module csharpexec-script ## begin gnulib module do-release-commit-and-tag EXTRA_DIST += $(top_srcdir)/build-aux/do-release-commit-and-tag ## end gnulib module do-release-commit-and-tag ## begin gnulib module dup2 EXTRA_DIST += dup2.c EXTRA_libgnu_la_SOURCES += dup2.c ## end gnulib module dup2 ## begin gnulib module errno BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ < $(srcdir)/errno.in.h; \ } > $@-t && \ mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h ## end gnulib module errno ## begin gnulib module error EXTRA_DIST += error.c error.h EXTRA_libgnu_la_SOURCES += error.c ## end gnulib module error ## begin gnulib module fcntl EXTRA_DIST += fcntl.c EXTRA_libgnu_la_SOURCES += fcntl.c ## end gnulib module fcntl ## begin gnulib module fcntl-h BUILT_SOURCES += fcntl.h # We need the following in order to create <fcntl.h> when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += fcntl.h fcntl.h-t EXTRA_DIST += fcntl.in.h ## end gnulib module fcntl-h ## begin gnulib module fd-hook libgnu_la_SOURCES += fd-hook.c EXTRA_DIST += fd-hook.h ## end gnulib module fd-hook ## begin gnulib module filename EXTRA_DIST += filename.h ## end gnulib module filename ## begin gnulib module fstat EXTRA_DIST += fstat.c stat-w32.c stat-w32.h EXTRA_libgnu_la_SOURCES += fstat.c stat-w32.c ## end gnulib module fstat ## begin gnulib module gendocs EXTRA_DIST += $(top_srcdir)/build-aux/gendocs.sh ## end gnulib module gendocs ## begin gnulib module getdelim EXTRA_DIST += getdelim.c EXTRA_libgnu_la_SOURCES += getdelim.c ## end gnulib module getdelim ## begin gnulib module getdtablesize EXTRA_DIST += getdtablesize.c EXTRA_libgnu_la_SOURCES += getdtablesize.c ## end gnulib module getdtablesize ## begin gnulib module getline EXTRA_DIST += getline.c EXTRA_libgnu_la_SOURCES += getline.c ## end gnulib module getline ## begin gnulib module getopt-posix BUILT_SOURCES += $(GETOPT_H) $(GETOPT_CDEFS_H) # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/getopt.in.h; \ } > $@-t && \ mv -f $@-t $@ getopt-cdefs.h: getopt-cdefs.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ < $(srcdir)/getopt-cdefs.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += getopt.h getopt.h-t getopt-cdefs.h getopt-cdefs.h-t EXTRA_DIST += getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h EXTRA_libgnu_la_SOURCES += getopt.c getopt1.c ## end gnulib module getopt-posix ## begin gnulib module getprogname libgnu_la_SOURCES += getprogname.h getprogname.c ## end gnulib module getprogname ## begin gnulib module gettext-h libgnu_la_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module git-version-gen EXTRA_DIST += $(top_srcdir)/build-aux/git-version-gen ## end gnulib module git-version-gen ## begin gnulib module gitlog-to-changelog EXTRA_DIST += $(top_srcdir)/build-aux/gitlog-to-changelog ## end gnulib module gitlog-to-changelog ## begin gnulib module gnu-web-doc-update EXTRA_DIST += $(top_srcdir)/build-aux/gnu-web-doc-update ## end gnulib module gnu-web-doc-update ## begin gnulib module gnumakefile EXTRA_DIST += $(top_srcdir)/GNUmakefile distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile ## end gnulib module gnumakefile ## begin gnulib module gnupload EXTRA_DIST += $(top_srcdir)/build-aux/gnupload ## end gnulib module gnupload ## begin gnulib module idx libgnu_la_SOURCES += idx.h ## end gnulib module idx ## begin gnulib module intprops EXTRA_DIST += intprops.h ## end gnulib module intprops ## begin gnulib module lib-symbol-visibility # The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the # compilation of all sources that make up the library. This line here does it # only for the gnulib part of it. The developer is responsible for adding # $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library. AM_CFLAGS += $(CFLAG_VISIBILITY) ## end gnulib module lib-symbol-visibility ## begin gnulib module limits-h BUILT_SOURCES += $(LIMITS_H) # We need the following in order to create <limits.h> when the system # doesn't have one that is compatible with GNU. if GL_GENERATE_LIMITS_H limits.h: limits.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ < $(srcdir)/limits.in.h; \ } > $@-t && \ mv $@-t $@ else limits.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += limits.h limits.h-t EXTRA_DIST += limits.in.h ## end gnulib module limits-h ## begin gnulib module maintainer-makefile EXTRA_DIST += $(top_srcdir)/maint.mk ## end gnulib module maintainer-makefile ## begin gnulib module malloca libgnu_la_SOURCES += malloca.c EXTRA_DIST += malloca.h ## end gnulib module malloca ## begin gnulib module msvc-inval EXTRA_DIST += msvc-inval.c msvc-inval.h EXTRA_libgnu_la_SOURCES += msvc-inval.c ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h EXTRA_libgnu_la_SOURCES += msvc-nothrow.c ## end gnulib module msvc-nothrow ## begin gnulib module open EXTRA_DIST += open.c EXTRA_libgnu_la_SOURCES += open.c ## end gnulib module open ## begin gnulib module pathmax EXTRA_DIST += pathmax.h ## end gnulib module pathmax ## begin gnulib module pmccabe2html EXTRA_DIST += $(top_srcdir)/build-aux/pmccabe2html $(top_srcdir)/build-aux/pmccabe.css ## end gnulib module pmccabe2html ## begin gnulib module progname libgnu_la_SOURCES += progname.h progname.c ## end gnulib module progname ## begin gnulib module snippet/arg-nonnull # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H=$(srcdir)/arg-nonnull.h EXTRA_DIST += arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H=$(srcdir)/c++defs.h EXTRA_DIST += c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/warn-on-use # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H=$(srcdir)/warn-on-use.h EXTRA_DIST += warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stat EXTRA_DIST += stat-w32.c stat-w32.h stat.c EXTRA_libgnu_la_SOURCES += stat-w32.c stat.c ## end gnulib module stat ## begin gnulib module stat-time libgnu_la_SOURCES += stat-time.c EXTRA_DIST += stat-time.h ## end gnulib module stat-time ## begin gnulib module stdarg BUILT_SOURCES += $(STDARG_H) # We need the following in order to create <stdarg.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDARG_H stdarg.h: stdarg.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ < $(srcdir)/stdarg.in.h; \ } > $@-t && \ mv $@-t $@ else stdarg.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdarg.h stdarg.h-t EXTRA_DIST += stdarg.in.h ## end gnulib module stdarg ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create <stdbool.h> when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create <stddef.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdio BUILT_SOURCES += stdio.h # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t EXTRA_DIST += stdio.in.h ## end gnulib module stdio ## begin gnulib module strerror EXTRA_DIST += strerror.c EXTRA_libgnu_la_SOURCES += strerror.c ## end gnulib module strerror ## begin gnulib module strerror-override EXTRA_DIST += strerror-override.c strerror-override.h EXTRA_libgnu_la_SOURCES += strerror-override.c ## end gnulib module strerror-override ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_stat.in.h ## end gnulib module sys_stat ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create <sys/types.h> when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module time BUILT_SOURCES += time.h # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h ## end gnulib module time ## begin gnulib module unistd BUILT_SOURCES += unistd.h libgnu_la_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module update-copyright EXTRA_DIST += $(top_srcdir)/build-aux/update-copyright ## end gnulib module update-copyright ## begin gnulib module useless-if-before-free EXTRA_DIST += $(top_srcdir)/build-aux/useless-if-before-free ## end gnulib module useless-if-before-free ## begin gnulib module vc-list-files EXTRA_DIST += $(top_srcdir)/build-aux/vc-list-files ## end gnulib module vc-list-files ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module version-etc libgnu_la_SOURCES += version-etc.h version-etc.c ## end gnulib module version-etc ## begin gnulib module xalloc-oversized EXTRA_DIST += xalloc-oversized.h ## end gnulib module xalloc-oversized mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/c++defs.h����������������������������������������������������������������������������0000644�0000000�0000000�00000035577�14076273520�011611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* C++ compatible function declaration macros. Copyright (C) 2010-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* Begin/end the GNULIB_NAMESPACE namespace. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { # define _GL_END_NAMESPACE } #else # define _GL_BEGIN_NAMESPACE # define _GL_END_NAMESPACE #endif /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); Wrapping rpl_func in an object with an inline conversion operator avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is actually used in the program. */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::rpl_func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_MDA (func, rettype, parameters); is to be used when func is a Microsoft deprecated alias, on native Windows. It declares a C++ alias called GNULIB_NAMESPACE::func that redirects to _func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); */ #define _GL_CXXALIAS_MDA(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast<type>(::rpl_func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); is like _GL_CXXALIAS_MDA (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); Wrapping func in an object with an inline conversion operator avoids a reference to func unless GNULIB_NAMESPACE::func is actually used in the program. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast<type>(::func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast<type>((rettype2 (*) parameters2)(::func)); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, we enable the warning only when not optimizing. */ # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, we enable the warning only when not optimizing. */ # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ ���������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/open.c�������������������������������������������������������������������������������0000644�0000000�0000000�00000015377�14076273520�011327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Open a descriptor to a file. Copyright (C) 2007-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2007. */ /* If the user's config.h happens to include <fcntl.h>, let it include only the system's <fcntl.h> here, so that orig_open doesn't recurse to rpl_open. */ #define __need_system_fcntl_h #include <config.h> /* Get the original definition of open. It might be defined as a macro. */ #include <fcntl.h> #include <sys/types.h> #undef __need_system_fcntl_h static int orig_open (const char *filename, int flags, mode_t mode) { #if defined _WIN32 && !defined __CYGWIN__ return _open (filename, flags, mode); #else return open (filename, flags, mode); #endif } /* Specification. */ /* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include <fcntl.h> above. */ #include "fcntl.h" #include "cloexec.h" #include <errno.h> #include <stdarg.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif int open (const char *filename, int flags, ...) { /* 0 = unknown, 1 = yes, -1 = no. */ #if GNULIB_defined_O_CLOEXEC int have_cloexec = -1; #else static int have_cloexec; #endif mode_t mode; int fd; mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } #if GNULIB_defined_O_NONBLOCK /* The only known platform that lacks O_NONBLOCK is mingw, but it also lacks named pipes and Unix sockets, which are the only two file types that require non-blocking handling in open(). Therefore, it is safe to ignore O_NONBLOCK here. It is handy that mingw also lacks openat(), so that is also covered here. */ flags &= ~O_NONBLOCK; #endif #if defined _WIN32 && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if OPEN_TRAILING_SLASH_BUG /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename ends in a slash, as POSIX says such a filename must name a directory <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>: "A pathname that contains at least one non-<slash> character and that ends with one or more trailing <slash> characters shall not be resolved successfully unless the last pathname component before the trailing <slash> characters names an existing directory" If the named file already exists as a directory, then - if O_CREAT is specified, open() must fail because of the semantics of O_CREAT, - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX <https://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html> says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then - if O_CREAT is specified, open() must fail since open() cannot create directories, - if O_WRONLY or O_RDWR is specified, open() must fail because the file does not contain a '.' directory. */ if ((flags & O_CREAT) || (flags & O_ACCMODE) == O_RDWR || (flags & O_ACCMODE) == O_WRONLY) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { errno = EISDIR; return -1; } } #endif fd = orig_open (filename, flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode); if (flags & O_CLOEXEC) { if (! have_cloexec) { if (0 <= fd) have_cloexec = 1; else if (errno == EINVAL) { fd = orig_open (filename, flags & ~O_CLOEXEC, mode); have_cloexec = -1; } } if (have_cloexec < 0 && 0 <= fd) set_cloexec_flag (fd, true); } #if REPLACE_FCHDIR /* Implementing fchdir and fdopendir requires the ability to open a directory file descriptor. If open doesn't support that (as on mingw), we use a dummy file that behaves the same as directories on Linux (ie. always reports EOF on attempts to read()), and override fstat() in fchdir.c to hide the fact that we have a dummy. */ if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES && ((flags & O_ACCMODE) == O_RDONLY || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) { struct stat statbuf; if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) { /* Maximum recursion depth of 1. */ fd = open ("/dev/null", flags, mode); if (0 <= fd) fd = _gl_register_fd (fd, filename); } else errno = EACCES; } #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX says such a filename must name a directory <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13>: "A pathname that contains at least one non-<slash> character and that ends with one or more trailing <slash> characters shall not be resolved successfully unless the last pathname component before the trailing <slash> characters names an existing directory" If the named file without the slash is not a directory, open() must fail with ENOTDIR. */ if (fd >= 0) { /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); if (filename[len - 1] == '/') { struct stat statbuf; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return -1; } } } #endif #if REPLACE_FCHDIR if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) fd = _gl_register_fd (fd, filename); #endif return fd; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/sys_stat.in.h������������������������������������������������������������������������0000644�0000000�0000000�00000062653�14076273520�012650� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Provide a more complete sys/stat.h header file. Copyright (C) 2005-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ /* This file is supposed to be used on platforms where <sys/stat.h> is incomplete. It is intended to provide definitions and prototypes needed by an application. Start with what the system provides. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_sys_stat_h /* Special invocation convention. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. May also define off_t to a 64-bit type on native Windows. */ #include <sys/types.h> /* Get struct timespec. */ #include <time.h> /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Before doing "#define mknod rpl_mknod" below, we need to include all headers that may declare mknod(). OS/2 kLIBC declares mknod() in <unistd.h>, not in <sys/stat.h>. */ #ifdef __KLIBC__ # include <unistd.h> #endif /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir in <io.h> and/or <direct.h>, not in <sys/stat.h>. */ #if defined _WIN32 && ! defined __CYGWIN__ # include <io.h> /* mingw32, mingw64 */ # include <direct.h> /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in <io.h>. */ #if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif /* Large File Support on native Windows. */ #if @WINDOWS_64_BIT_ST_SIZE@ # define stat _stati64 #endif /* Optionally, override 'struct stat' on native Windows. */ #if @GNULIB_OVERRIDES_STRUCT_STAT@ # undef stat # if @GNULIB_STAT@ # define stat rpl_stat # else /* Provoke a clear link error if stat() is used as a function and module 'stat' is not in use. */ # define stat stat_used_without_requesting_gnulib_module_stat # endif # if !GNULIB_defined_struct_stat struct stat { dev_t st_dev; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; # if 0 uid_t st_uid; # else /* uid_t is not defined by default on native Windows. */ short st_uid; # endif # if 0 gid_t st_gid; # else /* gid_t is not defined by default on native Windows. */ short st_gid; # endif dev_t st_rdev; off_t st_size; # if 0 blksize_t st_blksize; blkcnt_t st_blocks; # endif # if @WINDOWS_STAT_TIMESPEC@ struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # else time_t st_atime; time_t st_mtime; time_t st_ctime; # endif }; # if @WINDOWS_STAT_TIMESPEC@ # define st_atime st_atim.tv_sec # define st_mtime st_mtim.tv_sec # define st_ctime st_ctim.tv_sec /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_TIMESPEC 1 # endif # define GNULIB_defined_struct_stat 1 # endif /* Other possible values of st_mode. */ # if 0 # define _S_IFBLK 0x6000 # endif # if 0 # define _S_IFLNK 0xA000 # endif # if 0 # define _S_IFSOCK 0xC000 # endif #endif #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO # endif #endif #ifndef S_IFMT # define S_IFMT 0170000 #endif #if STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISNAM # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif #ifndef S_ISBLK # ifdef S_IFBLK # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) # else # define S_ISBLK(m) 0 # endif #endif #ifndef S_ISCHR # ifdef S_IFCHR # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) # else # define S_ISCHR(m) 0 # endif #endif #ifndef S_ISDIR # ifdef S_IFDIR # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) # else # define S_ISDIR(m) 0 # endif #endif #ifndef S_ISDOOR /* Solaris 2.5 and up */ # define S_ISDOOR(m) 0 #endif #ifndef S_ISFIFO # ifdef S_IFIFO # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) # else # define S_ISFIFO(m) 0 # endif #endif #ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif #endif #ifndef S_ISMPB /* V7 */ # ifdef S_IFMPB # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) # else # define S_ISMPB(m) 0 # define S_ISMPC(m) 0 # endif #endif #ifndef S_ISMPX /* AIX */ # define S_ISMPX(m) 0 #endif #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) # else # define S_ISNAM(m) 0 # endif #endif #ifndef S_ISNWK /* HP/UX */ # ifdef S_IFNWK # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) # else # define S_ISNWK(m) 0 # endif #endif #ifndef S_ISPORT /* Solaris 10 and up */ # define S_ISPORT(m) 0 #endif #ifndef S_ISREG # ifdef S_IFREG # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) # else # define S_ISREG(m) 0 # endif #endif #ifndef S_ISSOCK # ifdef S_IFSOCK # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) # else # define S_ISSOCK(m) 0 # endif #endif #ifndef S_TYPEISMQ # define S_TYPEISMQ(p) 0 #endif #ifndef S_TYPEISTMO # define S_TYPEISTMO(p) 0 #endif #ifndef S_TYPEISSEM # ifdef S_INSEM # define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) # else # define S_TYPEISSEM(p) 0 # endif #endif #ifndef S_TYPEISSHM # ifdef S_INSHD # define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) # else # define S_TYPEISSHM(p) 0 # endif #endif /* high performance ("contiguous data") */ #ifndef S_ISCTG # define S_ISCTG(p) 0 #endif /* Cray DMF (data migration facility): off line, with data */ #ifndef S_ISOFD # define S_ISOFD(p) 0 #endif /* Cray DMF (data migration facility): off line, with no data */ #ifndef S_ISOFL # define S_ISOFL(p) 0 #endif /* 4.4BSD whiteout */ #ifndef S_ISWHT # define S_ISWHT(m) 0 #endif /* If any of the following are undefined, define them to their de facto standard values. */ #if !S_ISUID # define S_ISUID 04000 #endif #if !S_ISGID # define S_ISGID 02000 #endif /* S_ISVTX is a common extension to POSIX. */ #ifndef S_ISVTX # define S_ISVTX 01000 #endif #if !S_IRUSR && S_IREAD # define S_IRUSR S_IREAD #endif #if !S_IRUSR # define S_IRUSR 00400 #endif #if !S_IRGRP # define S_IRGRP (S_IRUSR >> 3) #endif #if !S_IROTH # define S_IROTH (S_IRUSR >> 6) #endif #if !S_IWUSR && S_IWRITE # define S_IWUSR S_IWRITE #endif #if !S_IWUSR # define S_IWUSR 00200 #endif #if !S_IWGRP # define S_IWGRP (S_IWUSR >> 3) #endif #if !S_IWOTH # define S_IWOTH (S_IWUSR >> 6) #endif #if !S_IXUSR && S_IEXEC # define S_IXUSR S_IEXEC #endif #if !S_IXUSR # define S_IXUSR 00100 #endif #if !S_IXGRP # define S_IXGRP (S_IXUSR >> 3) #endif #if !S_IXOTH # define S_IXOTH (S_IXUSR >> 6) #endif #if !S_IRWXU # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) #endif #if !S_IRWXG # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) #endif #if !S_IRWXO # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) #endif /* Although S_IXUGO and S_IRWXUGO are not specified by POSIX and are not implemented in GNU/Linux, some Gnulib-using apps use the macros. */ #if !S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifndef S_IRWXUGO # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif /* Macros for futimens and utimensat. */ #ifndef UTIME_NOW # define UTIME_NOW (-1) # define UTIME_OMIT (-2) #endif #if @GNULIB_MDA_CHMOD@ /* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::chmod always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef chmod # define chmod _chmod # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); # else _GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); # endif _GL_CXXALIASWARN (chmod); #endif #if @GNULIB_FCHMODAT@ # if @REPLACE_FCHMODAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchmodat # define fchmodat rpl_fchmodat # endif _GL_FUNCDECL_RPL (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); # else # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); # endif _GL_CXXALIASWARN (fchmodat); #elif defined GNULIB_POSIXCHECK # undef fchmodat # if HAVE_RAW_DECL_FCHMODAT _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FSTAT@ # if @REPLACE_FSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstat # define fstat rpl_fstat # endif _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); # else _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (fstat); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef fstat # define fstat fstat_used_without_requesting_gnulib_module_fstat #elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT _GL_WARN_ON_USE (fstat, "fstat has portability problems - " "use gnulib module fstat for portability"); # endif #endif #if @GNULIB_FSTATAT@ # if @REPLACE_FSTATAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstatat # define fstatat rpl_fstatat # endif _GL_FUNCDECL_RPL (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags)); # else # if !@HAVE_FSTATAT@ _GL_FUNCDECL_SYS (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (fstatat, int, (int fd, char const *restrict name, struct stat *restrict st, int flags)); # endif _GL_CXXALIASWARN (fstatat); #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef fstatat # define fstatat fstatat_used_without_requesting_gnulib_module_fstatat #elif defined GNULIB_POSIXCHECK # undef fstatat # if HAVE_RAW_DECL_FSTATAT _GL_WARN_ON_USE (fstatat, "fstatat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FUTIMENS@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens implementation relies on futimesat, which on Solaris 10 makes an invocation to futimens that is meant to invoke the libc's futimens(), not gnulib's futimens(). */ # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens # endif _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); # else # if !@HAVE_FUTIMENS@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif # if @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS _GL_WARN_ON_USE (futimens, "futimens is not portable - " "use gnulib module futimens for portability"); # endif #endif #if @GNULIB_GETUMASK@ # if !@HAVE_GETUMASK@ _GL_FUNCDECL_SYS (getumask, mode_t, (void)); # endif _GL_CXXALIAS_SYS (getumask, mode_t, (void)); # if @HAVE_GETUMASK@ _GL_CXXALIASWARN (getumask); # endif #elif defined GNULIB_POSIXCHECK # undef getumask # if HAVE_RAW_DECL_GETUMASK _GL_WARN_ON_USE (getumask, "getumask is not portable - " "use gnulib module getumask for portability"); # endif #endif #if @GNULIB_LCHMOD@ /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME denotes a symbolic link. */ # if !@HAVE_LCHMOD@ || defined __hpux _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); _GL_CXXALIASWARN (lchmod); #elif defined GNULIB_POSIXCHECK # undef lchmod # if HAVE_RAW_DECL_LCHMOD _GL_WARN_ON_USE (lchmod, "lchmod is unportable - " "use gnulib module lchmod for portability"); # endif #endif #if @GNULIB_LSTAT@ # if ! @HAVE_LSTAT@ /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *restrict name, struct stat *restrict buf)); # elif @REPLACE_LSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lstat # define lstat rpl_lstat # endif _GL_FUNCDECL_RPL (lstat, int, (const char *restrict name, struct stat *restrict buf) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (lstat, int, (const char *restrict name, struct stat *restrict buf)); # else _GL_CXXALIAS_SYS (lstat, int, (const char *restrict name, struct stat *restrict buf)); # endif # if @HAVE_LSTAT@ _GL_CXXALIASWARN (lstat); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef lstat # define lstat lstat_used_without_requesting_gnulib_module_lstat #elif defined GNULIB_POSIXCHECK # undef lstat # if HAVE_RAW_DECL_LSTAT _GL_WARN_ON_USE (lstat, "lstat is unportable - " "use gnulib module lstat for portability"); # endif #endif #if @GNULIB_MKDIR@ # if @REPLACE_MKDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # elif defined _WIN32 && !defined __CYGWIN__ /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes <direct.h> and <io.h>, which are included above. */ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif _GL_CXXALIASWARN (mkdir); #elif defined GNULIB_POSIXCHECK # undef mkdir # if HAVE_RAW_DECL_MKDIR _GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - " "use gnulib module mkdir for portability"); # endif #elif @GNULIB_MDA_MKDIR@ /* On native Windows, map 'mkdir' to '_mkdir', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::mkdir always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif _GL_CXXALIASWARN (mkdir); #endif #if @GNULIB_MKDIRAT@ # if !@HAVE_MKDIRAT@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkdirat); #elif defined GNULIB_POSIXCHECK # undef mkdirat # if HAVE_RAW_DECL_MKDIRAT _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_MKFIFO@ # if @REPLACE_MKFIFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifo # define mkfifo rpl_mkfifo # endif _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); # else # if !@HAVE_MKFIFO@ _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifo); #elif defined GNULIB_POSIXCHECK # undef mkfifo # if HAVE_RAW_DECL_MKFIFO _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " "use gnulib module mkfifo for portability"); # endif #endif #if @GNULIB_MKFIFOAT@ # if @REPLACE_MKFIFOAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifoat # define mkfifoat rpl_mkfifoat # endif _GL_FUNCDECL_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode)); # else # if !@HAVE_MKFIFOAT@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifoat); #elif defined GNULIB_POSIXCHECK # undef mkfifoat # if HAVE_RAW_DECL_MKFIFOAT _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_MKNOD@ # if @REPLACE_MKNOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknod # define mknod rpl_mknod # endif _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNOD@ _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknod); #elif defined GNULIB_POSIXCHECK # undef mknod # if HAVE_RAW_DECL_MKNOD _GL_WARN_ON_USE (mknod, "mknod is not portable - " "use gnulib module mknod for portability"); # endif #endif #if @GNULIB_MKNODAT@ # if @REPLACE_MKNODAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknodat # define mknodat rpl_mknodat # endif _GL_FUNCDECL_RPL (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNODAT@ _GL_FUNCDECL_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknodat); #elif defined GNULIB_POSIXCHECK # undef mknodat # if HAVE_RAW_DECL_MKNODAT _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_STAT@ # if @REPLACE_STAT@ # if !@GNULIB_OVERRIDES_STRUCT_STAT@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ # if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ # undef stat64 # define stat64(name, st) rpl_stat (name, st) # elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # if defined __MINGW32__ && defined _stati64 # ifndef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined _stati64 # ifdef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # else # undef _stati64 # define _stati64(name, st) rpl_stat (name, st) # endif # elif defined __MINGW32__ && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32. */ # undef _stat32 # define _stat32(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64i32. */ # undef _stat64i32 # define _stat64i32(name, st) rpl_stat (name, st) # endif # else /* !(_AIX || __MINGW32__ || _MSC_VER) */ # undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ # endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */ _GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf) _GL_ARG_NONNULL ((1, 2)); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ /* see above: #define stat stat_used_without_requesting_gnulib_module_stat */ #elif defined GNULIB_POSIXCHECK # undef stat # if HAVE_RAW_DECL_STAT _GL_WARN_ON_USE (stat, "stat is unportable - " "use gnulib module stat for portability"); # endif #endif #if @GNULIB_MDA_UMASK@ /* On native Windows, map 'umask' to '_umask', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::umask always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef umask # define umask _umask # endif /* Need to cast, because in mingw the last argument is 'int mode'. */ _GL_CXXALIAS_MDA_CAST (umask, mode_t, (mode_t mask)); # else _GL_CXXALIAS_SYS (umask, mode_t, (mode_t mask)); # endif _GL_CXXALIASWARN (umask); #endif #if @GNULIB_UTIMENSAT@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat implementation relies on futimesat, which on Solaris 10 makes an invocation to utimensat that is meant to invoke the libc's utimensat(), not gnulib's utimensat(). */ # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat # endif _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # else # if !@HAVE_UTIMENSAT@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif # if @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT _GL_WARN_ON_USE (utimensat, "utimensat is not portable - " "use gnulib module utimensat for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif �������������������������������������������������������������������������������������libidn-1.38/gl/strerror-override.c������������������������������������������������������������������0000644�0000000�0000000�00000021646�14076273520�014061� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Bruno Haible <bruno@clisp.org>, 2010. */ #include <config.h> #include "strerror-override.h" #include <errno.h> #if GNULIB_defined_EWINSOCK /* native Windows platforms */ # if HAVE_WINSOCK2_H # include <winsock2.h> # endif #endif #if !GNULIB_defined_strerror_override_macro /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * strerror_override (int errnum) { /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { # if REPLACE_STRERROR_0 case 0: return "Success"; # endif # if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: return "Operation already in progress"; case ENOTSOCK: return "Socket operation on non-socket"; case EDESTADDRREQ: return "Destination address required"; case EMSGSIZE: return "Message too long"; case EPROTOTYPE: return "Protocol wrong type for socket"; case ENOPROTOOPT: return "Protocol not available"; case EPROTONOSUPPORT: return "Protocol not supported"; case EOPNOTSUPP: return "Operation not supported"; case EAFNOSUPPORT: return "Address family not supported by protocol"; case EADDRINUSE: return "Address already in use"; case EADDRNOTAVAIL: return "Cannot assign requested address"; case ENETDOWN: return "Network is down"; case ENETUNREACH: return "Network is unreachable"; case ECONNRESET: return "Connection reset by peer"; case ENOBUFS: return "No buffer space available"; case EISCONN: return "Transport endpoint is already connected"; case ENOTCONN: return "Transport endpoint is not connected"; case ETIMEDOUT: return "Connection timed out"; case ECONNREFUSED: return "Connection refused"; case ELOOP: return "Too many levels of symbolic links"; case EHOSTUNREACH: return "No route to host"; case EWOULDBLOCK: return "Operation would block"; # endif # if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */ case ETXTBSY: return "Text file busy"; case ENODATA: return "No data available"; case ENOSR: return "Out of streams resources"; case ENOSTR: return "Device not a stream"; case ETIME: return "Timer expired"; case EOTHER: return "Other error"; # endif # if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: return "Protocol family not supported"; case ESHUTDOWN: return "Cannot send after transport endpoint shutdown"; case ETOOMANYREFS: return "Too many references: cannot splice"; case EHOSTDOWN: return "Host is down"; case EPROCLIM: return "Too many processes"; case EUSERS: return "Too many users"; case EDQUOT: return "Disk quota exceeded"; case ESTALE: return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; # if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ case WSA_OPERATION_ABORTED: return "Overlapped operation aborted"; case WSA_IO_INCOMPLETE: return "Overlapped I/O event object not in signaled state"; case WSA_IO_PENDING: return "Overlapped operations will complete later"; /* WSAEINTR maps to EINTR */ /* WSAEBADF maps to EBADF */ /* WSAEACCES maps to EACCES */ /* WSAEFAULT maps to EFAULT */ /* WSAEINVAL maps to EINVAL */ /* WSAEMFILE maps to EMFILE */ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ /* WSAEINPROGRESS maps to EINPROGRESS */ /* WSAEALREADY maps to EALREADY */ /* WSAENOTSOCK maps to ENOTSOCK */ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ /* WSAEMSGSIZE maps to EMSGSIZE */ /* WSAEPROTOTYPE maps to EPROTOTYPE */ /* WSAENOPROTOOPT maps to ENOPROTOOPT */ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ /* WSAEADDRINUSE maps to EADDRINUSE */ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ /* WSAENETDOWN maps to ENETDOWN */ /* WSAENETUNREACH maps to ENETUNREACH */ /* WSAENETRESET maps to ENETRESET */ /* WSAECONNABORTED maps to ECONNABORTED */ /* WSAECONNRESET maps to ECONNRESET */ /* WSAENOBUFS maps to ENOBUFS */ /* WSAEISCONN maps to EISCONN */ /* WSAENOTCONN maps to ENOTCONN */ /* WSAESHUTDOWN is ESHUTDOWN */ /* WSAETOOMANYREFS is ETOOMANYREFS */ /* WSAETIMEDOUT maps to ETIMEDOUT */ /* WSAECONNREFUSED maps to ECONNREFUSED */ /* WSAELOOP maps to ELOOP */ /* WSAENAMETOOLONG maps to ENAMETOOLONG */ /* WSAEHOSTDOWN is EHOSTDOWN */ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ /* WSAENOTEMPTY maps to ENOTEMPTY */ /* WSAEPROCLIM is EPROCLIM */ /* WSAEUSERS is EUSERS */ /* WSAEDQUOT is EDQUOT */ /* WSAESTALE is ESTALE */ /* WSAEREMOTE is EREMOTE */ case WSASYSNOTREADY: return "Network subsystem is unavailable"; case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; case WSANOTINITIALISED: return "Successful WSAStartup not yet performed"; case WSAEDISCON: return "Graceful shutdown in progress"; case WSAENOMORE: case WSA_E_NO_MORE: return "No more results"; case WSAECANCELLED: case WSA_E_CANCELLED: return "Call was canceled"; case WSAEINVALIDPROCTABLE: return "Procedure call table is invalid"; case WSAEINVALIDPROVIDER: return "Service provider is invalid"; case WSAEPROVIDERFAILEDINIT: return "Service provider failed to initialize"; case WSASYSCALLFAILURE: return "System call failure"; case WSASERVICE_NOT_FOUND: return "Service not found"; case WSATYPE_NOT_FOUND: return "Class type not found"; case WSAEREFUSED: return "Database query was refused"; case WSAHOST_NOT_FOUND: return "Host not found"; case WSATRY_AGAIN: return "Nonauthoritative host not found"; case WSANO_RECOVERY: return "Nonrecoverable error"; case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ # endif # endif # if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; # endif # if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; # endif # if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; # endif # if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; # endif # if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; # endif # if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; # endif # if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; # endif # if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; # endif # if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; # endif # if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; # endif # if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; # endif # if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; # endif # if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; # endif # if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; # endif # if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; # endif # if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; # endif default: return NULL; } } #endif ������������������������������������������������������������������������������������������libidn-1.38/gl/getprogname.c������������������������������������������������������������������������0000644�0000000�0000000�00000022326�14076273520�012666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Program name management. Copyright (C) 2016-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "getprogname.h" #include <errno.h> /* get program_invocation_name declaration */ #include <stdlib.h> /* get __argv declaration */ #ifdef _AIX # include <unistd.h> # include <procinfo.h> # include <string.h> #endif #ifdef __MVS__ # ifndef _OPEN_SYS # define _OPEN_SYS # endif # include <string.h> # include <sys/ps.h> #endif #ifdef __hpux # include <unistd.h> # include <sys/param.h> # include <sys/pstat.h> # include <string.h> #endif #if defined __sgi || defined __osf__ # include <string.h> # include <unistd.h> # include <stdio.h> # include <fcntl.h> # include <sys/procfs.h> #endif #if defined __SCO_VERSION__ || defined __sysv5__ # include <fcntl.h> # include <stdlib.h> # include <string.h> #endif #include "basename-lgpl.h" #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ char const * getprogname (void) { # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */ /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ return program_invocation_short_name; # elif HAVE_DECL_PROGRAM_INVOCATION_NAME /* glibc, BeOS */ /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ return last_component (program_invocation_name); # elif HAVE_GETEXECNAME /* Solaris */ /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */ const char *p = getexecname (); if (!p) p = "?"; return last_component (p); # elif HAVE_DECL___ARGV /* mingw, MSVC */ /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */ const char *p = __argv && __argv[0] ? __argv[0] : "?"; return last_component (p); # elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */ /* https://man.openbsd.org/style.9 */ /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ /* Be careful to declare this only when we absolutely need it (OpenBSD 5.1), rather than when it's available. Otherwise, its mere declaration makes program_invocation_short_name malfunction (have zero length) with Fedora 25's glibc. */ extern char *__progname; const char *p = __progname; # if defined __ANDROID__ return last_component (p); # else return p && p[0] ? p : "?"; # endif # elif _AIX /* AIX */ /* Idea by Bastien ROUCARIÈS, https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html Reference: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm */ static char *p; static int first = 1; if (first) { first = 0; pid_t pid = getpid (); struct procentry64 procs; p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1) ? strdup (procs.pi_comm) : NULL); if (!p) p = "?"; } return p; # elif defined __hpux static char *p; static int first = 1; if (first) { first = 0; pid_t pid = getpid (); struct pst_status status; if (pstat_getproc (&status, sizeof status, 0, pid) > 0) { char *ucomm = status.pst_ucomm; char *cmd = status.pst_cmd; if (strlen (ucomm) < PST_UCOMMLEN - 1) p = ucomm; else { /* ucomm is truncated to length PST_UCOMMLEN - 1. Look at cmd instead. */ char *space = strchr (cmd, ' '); if (space != NULL) *space = '\0'; p = strrchr (cmd, '/'); if (p != NULL) p++; else p = cmd; if (strlen (p) > PST_UCOMMLEN - 1 && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) /* p is less truncated than ucomm. */ ; else p = ucomm; } p = strdup (p); } else { # if !defined __LP64__ /* Support for 32-bit programs running in 64-bit HP-UX. The documented way to do this is to use the same source code as above, but in a compilation unit where '#define _PSTAT64 1' is in effect. I prefer a single compilation unit; the struct size and the offsets are not going to change. */ char status64[1216]; if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0) { char *ucomm = status64 + 288; char *cmd = status64 + 168; if (strlen (ucomm) < PST_UCOMMLEN - 1) p = ucomm; else { /* ucomm is truncated to length PST_UCOMMLEN - 1. Look at cmd instead. */ char *space = strchr (cmd, ' '); if (space != NULL) *space = '\0'; p = strrchr (cmd, '/'); if (p != NULL) p++; else p = cmd; if (strlen (p) > PST_UCOMMLEN - 1 && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) /* p is less truncated than ucomm. */ ; else p = ucomm; } p = strdup (p); } else # endif p = NULL; } if (!p) p = "?"; } return p; # elif __MVS__ /* z/OS */ /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */ static char *p = "?"; static int first = 1; if (first) { pid_t pid = getpid (); int token; W_PSPROC buf; first = 0; memset (&buf, 0, sizeof(buf)); buf.ps_cmdptr = (char *) malloc (buf.ps_cmdlen = PS_CMDBLEN_LONG); buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN); buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN); if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr) { for (token = 0; token >= 0; token = w_getpsent (token, &buf, sizeof(buf))) { if (token > 0 && buf.ps_pid == pid) { char *s = strdup (last_component (buf.ps_pathptr)); if (s) p = s; break; } } } free (buf.ps_cmdptr); free (buf.ps_conttyptr); free (buf.ps_pathptr); } return p; # elif defined __sgi || defined __osf__ /* IRIX or Tru64 */ char filename[50]; int fd; # if defined __sgi sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); # else sprintf (filename, "/proc/%d", (int) getpid ()); # endif fd = open (filename, O_RDONLY | O_CLOEXEC); if (0 <= fd) { prpsinfo_t buf; int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf); close (fd); if (ioctl_ok) { char *name = buf.pr_fname; size_t namesize = sizeof buf.pr_fname; /* It may not be NUL-terminated. */ char *namenul = memchr (name, '\0', namesize); size_t namelen = namenul ? namenul - name : namesize; char *namecopy = malloc (namelen + 1); if (namecopy) { namecopy[namelen] = '\0'; return memcpy (namecopy, name, namelen); } } } return NULL; # elif defined __SCO_VERSION__ || defined __sysv5__ /* SCO OpenServer6/UnixWare */ char buf[80]; int fd; sprintf (buf, "/proc/%d/cmdline", getpid()); fd = open (buf, O_RDONLY); if (0 <= fd) { size_t n = read (fd, buf, 79); if (n > 0) { buf[n] = '\0'; /* Guarantee null-termination */ char *progname; progname = strrchr (buf, '/'); if (progname) { progname = progname + 1; /* Skip the '/' */ } else { progname = buf; } char *ret; ret = malloc (strlen (progname) + 1); if (ret) { strcpy (ret, progname); return ret; } } close (fd); } return "?"; # else # error "getprogname module not ported to this OS" # endif } #endif /* * Hey Emacs! * Local Variables: * coding: utf-8 * End: */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt1.c����������������������������������������������������������������������������0000644�0000000�0000000�00000007360�14076273520�011742� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987-2021 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _LIBC # include <config.h> #endif #include "getopt.h" #include "getopt_int.h" int getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, opt_index, 0, 0); } int _getopt_long_r (int argc, char **argv, const char *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, 0, d, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, opt_index, 1, 0); } int _getopt_long_only_r (int argc, char **argv, const char *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, 1, d, 0); } #ifdef TEST #include <stdio.h> #include <stdlib.h> int main (int argc, char **argv) { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static const struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value '%s'\n", optarg); break; case 'd': printf ("option d with value '%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getdelim.c���������������������������������������������������������������������������0000644�0000000�0000000�00000007553�14076273520�012155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getdelim.c --- Implementation of replacement getdelim function. Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Ported from glibc by Simon Josefsson. */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below. */ #define _GL_ARG_NONNULL(params) #include <config.h> #include <stdio.h> #include <limits.h> #include <stdint.h> #include <stdlib.h> #include <errno.h> #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" # define getc_maybe_unlocked(fp) getc(fp) #elif !HAVE_FLOCKFILE || !HAVE_FUNLOCKFILE || !HAVE_DECL_GETC_UNLOCKED # undef flockfile # undef funlockfile # define flockfile(x) ((void) 0) # define funlockfile(x) ((void) 0) # define getc_maybe_unlocked(fp) getc(fp) #else # define getc_maybe_unlocked(fp) getc_unlocked(fp) #endif static void alloc_failed (void) { #if defined _WIN32 && ! defined __CYGWIN__ /* Avoid errno problem without using the realloc module; see: https://lists.gnu.org/r/bug-gnulib/2016-08/msg00025.html */ errno = ENOMEM; #endif } /* Read up to (and including) a DELIMITER from FP into *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *N characters of space. It is realloc'ed as necessary. Returns the number of characters read (not including the null terminator), or -1 on error or EOF. */ ssize_t getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) { ssize_t result; size_t cur_len = 0; if (lineptr == NULL || n == NULL || fp == NULL) { errno = EINVAL; return -1; } flockfile (fp); if (*lineptr == NULL || *n == 0) { char *new_lineptr; *n = 120; new_lineptr = (char *) realloc (*lineptr, *n); if (new_lineptr == NULL) { alloc_failed (); result = -1; goto unlock_return; } *lineptr = new_lineptr; } for (;;) { int i; i = getc_maybe_unlocked (fp); if (i == EOF) { result = -1; break; } /* Make enough space for len+1 (for final NUL) bytes. */ if (cur_len + 1 >= *n) { size_t needed_max = SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX; size_t needed = 2 * *n + 1; /* Be generous. */ char *new_lineptr; if (needed_max < needed) needed = needed_max; if (cur_len + 1 >= needed) { result = -1; errno = EOVERFLOW; goto unlock_return; } new_lineptr = (char *) realloc (*lineptr, needed); if (new_lineptr == NULL) { alloc_failed (); result = -1; goto unlock_return; } *lineptr = new_lineptr; *n = needed; } (*lineptr)[cur_len] = i; cur_len++; if (i == delimiter) break; } (*lineptr)[cur_len] = '\0'; result = cur_len ? cur_len : result; unlock_return: funlockfile (fp); /* doesn't set errno */ return result; } �����������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/time.in.h����������������������������������������������������������������������������0000644�0000000�0000000�00000040020�14076273520�011715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A more-standard <time.h>. Copyright (C) 2007-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the symbols. (However, skip this for MinGW as it treats __need_time_t incompatibly.) Also, Solaris 8 <time.h> eventually includes itself recursively; if that is happening, just include the system <time.h> without adding our own declarations. */ #if (((defined __need_time_t || defined __need_clock_t \ || defined __need_timespec) \ && !defined __MINGW32__) \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H /* mingw's <time.h> provides the functions asctime_r, ctime_r, gmtime_r, localtime_r only if <unistd.h> or <pthread.h> has been included before. */ # if defined __MINGW32__ # include <unistd.h> # endif # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ # include <stddef.h> /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems don't define struct timespec (e.g., AIX 4.1). Or they define it with the wrong member names or define it in <sys/time.h> (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, but the pthreads-win32 library defines it in <pthread.h>. */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include <sys/time.h> # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include <pthread.h> # elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ # include <unistd.h> # else # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_timespec # undef timespec # define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; # define GNULIB_defined_struct_timespec 1 # endif # ifdef __cplusplus } # endif # endif # endif # if !GNULIB_defined_struct_time_t_must_be_integral /* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif /* Define TIME_UTC, a positive integer constant used for timespec_get(). */ # if ! @TIME_H_DEFINES_TIME_UTC@ # if !GNULIB_defined_TIME_UTC # define TIME_UTC 1 # define GNULIB_defined_TIME_UTC 1 # endif # endif /* Set *TS to the current time, and return BASE. Upon failure, return 0. */ # if @GNULIB_TIMESPEC_GET@ # if ! @HAVE_TIMESPEC_GET@ _GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); _GL_CXXALIASWARN (timespec_get); # endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html>. */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define nanosleep rpl_nanosleep # endif _GL_FUNCDECL_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # else # if ! @HAVE_NANOSLEEP@ _GL_FUNCDECL_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # endif _GL_CXXALIASWARN (nanosleep); # endif /* Initialize time conversion information. */ # if @GNULIB_TZSET@ # if @REPLACE_TZSET@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset rpl_tzset # endif _GL_FUNCDECL_RPL (tzset, void, (void)); _GL_CXXALIAS_RPL (tzset, void, (void)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset _tzset # endif _GL_CXXALIAS_MDA (tzset, void, (void)); # else _GL_CXXALIAS_SYS (tzset, void, (void)); # endif _GL_CXXALIASWARN (tzset); # elif @GNULIB_MDA_TZSET@ /* On native Windows, map 'tzset' to '_tzset', so that -loldnames is not required. In C++ with GNULIB_NAMESPACE, avoid differences between platforms by defining GNULIB_NAMESPACE::tzset always. */ # if defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset _tzset # endif _GL_CXXALIAS_MDA (tzset, void, (void)); # else _GL_CXXALIAS_SYS (tzset, void, (void)); # endif _GL_CXXALIASWARN (tzset); # endif /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mktime rpl_mktime # endif _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (mktime); # endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/localtime_r.html> and <https://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime_r.html>. */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime_r # define localtime_r rpl_localtime_r # endif _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); # endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r # define gmtime_r rpl_gmtime_r # endif _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); # endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/localtime.html> and <https://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime.html>. */ # if @GNULIB_LOCALTIME@ || @REPLACE_LOCALTIME@ # if @REPLACE_LOCALTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime # define localtime rpl_localtime # endif _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (localtime); # endif # endif # if 0 || @REPLACE_GMTIME@ # if @REPLACE_GMTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime # define gmtime rpl_gmtime # endif _GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); # endif _GL_CXXALIASWARN (gmtime); # endif /* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/strptime.html>. */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm)); _GL_CXXALIASWARN (strptime); # endif /* Convert *TP to a date and time string. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/ctime.html>. */ # if @GNULIB_CTIME@ # if @REPLACE_CTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ctime rpl_ctime # endif _GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); # else _GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ctime); # endif # endif /* Convert *TP to a date and time string. See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/strftime.html>. */ # if @GNULIB_STRFTIME@ # if @REPLACE_STRFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strftime rpl_strftime # endif _GL_FUNCDECL_RPL (strftime, size_t, (char *restrict __buf, size_t __bufsize, const char *restrict __fmt, const struct tm *restrict __tp) _GL_ARG_NONNULL ((1, 3, 4))); _GL_CXXALIAS_RPL (strftime, size_t, (char *restrict __buf, size_t __bufsize, const char *restrict __fmt, const struct tm *restrict __tp)); # else _GL_CXXALIAS_SYS (strftime, size_t, (char *restrict __buf, size_t __bufsize, const char *restrict __fmt, const struct tm *restrict __tp)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (strftime); # endif # endif # if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ /* Functions that use a first-class time zone data type, instead of relying on an implicit global time zone. Inspired by NetBSD. */ /* Represents a time zone. (timezone_t) NULL stands for UTC. */ typedef struct tm_zone *timezone_t; /* tzalloc (name) Returns a time zone object for the given time zone NAME. This object represents the time zone that other functions would use it the TZ environment variable was set to NAME. If NAME is NULL, the result represents the time zone that other functions would use it the TZ environment variable was unset. May return NULL if NAME is invalid (this is platform dependent) or upon memory allocation failure. */ _GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); /* tzfree (tz) Frees a time zone object. The argument must have been returned by tzalloc(). */ _GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); _GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); /* localtime_rz (tz, &t, &result) Converts an absolute time T to a broken-down time RESULT, assuming the time zone TZ. This function is like 'localtime_r', but relies on the argument TZ instead of an implicit global time zone. */ _GL_FUNCDECL_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result)); /* mktime_z (tz, &tm) Normalizes the broken-down time TM and converts it to an absolute time, assuming the time zone TZ. Returns the absolute time. This function is like 'mktime', but relies on the argument TZ instead of an implicit global time zone. */ _GL_FUNCDECL_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __tm) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __tm)); /* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' in the 'tm_zone' member of 'struct tm') are valid as long as - the 'struct tm' argument is not destroyed or overwritten, and - the 'timezone_t' argument is not freed through tzfree(). */ # endif /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timegm # define timegm rpl_timegm # endif _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); # else # if ! @HAVE_TIMEGM@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); # endif _GL_CXXALIASWARN (timegm); # endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ # if defined GNULIB_POSIXCHECK # undef asctime _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef asctime_r _GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime _GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r _GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/alloca.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000004674�14076273520�012231� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca /* Some version of mingw have an <alloca.h> that causes trouble when included after 'alloca' gets defined as a macro. As a workaround, include this <alloca.h> first and define 'alloca' as a macro afterwards if needed. */ # if defined __GNUC__ && (defined _WIN32 && ! defined __CYGWIN__) && @HAVE_ALLOCA_H@ # include_next <alloca.h> # endif #endif #ifndef alloca # if defined __GNUC__ || (__clang_major__ >= 4) # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include <malloc.h> # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # elif defined __MVS__ # include <stdlib.h> # else # include <stddef.h> # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ ��������������������������������������������������������������������libidn-1.38/gl/errno.in.h���������������������������������������������������������������������������0000644�0000000�0000000�00000016447�14076273520�012124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A POSIX-like <errno.h>. Copyright (C) 2008-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ #ifndef _@GUARD_PREFIX@_ERRNO_H #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ # if defined _WIN32 && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ # ifndef ENOMSG # define ENOMSG 122 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 111 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 121 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 134 # define GNULIB_defined_EPROTO 1 # endif # ifndef EBADMSG # define EBADMSG 104 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 132 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 129 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 117 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 106 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ECANCELED # define ECANCELED 105 # define GNULIB_defined_ECANCELED 1 # endif # ifndef EOWNERDEAD # define EOWNERDEAD 133 # define GNULIB_defined_EOWNERDEAD 1 # endif # ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 127 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EINPROGRESS # define EINPROGRESS 112 # define EALREADY 103 # define ENOTSOCK 128 # define EDESTADDRREQ 109 # define EMSGSIZE 115 # define EPROTOTYPE 136 # define ENOPROTOOPT 123 # define EPROTONOSUPPORT 135 # define EOPNOTSUPP 130 # define EAFNOSUPPORT 102 # define EADDRINUSE 100 # define EADDRNOTAVAIL 101 # define ENETDOWN 116 # define ENETUNREACH 118 # define ECONNRESET 108 # define ENOBUFS 119 # define EISCONN 113 # define ENOTCONN 126 # define ETIMEDOUT 138 # define ECONNREFUSED 107 # define ELOOP 114 # define EHOSTUNREACH 110 # define EWOULDBLOCK 140 # define GNULIB_defined_ESOCK 1 # endif # ifndef ETXTBSY # define ETXTBSY 139 # define ENODATA 120 /* not required by POSIX */ # define ENOSR 124 /* not required by POSIX */ # define ENOSTR 125 /* not required by POSIX */ # define ETIME 137 /* not required by POSIX */ # define EOTHER 131 /* not required by POSIX */ # define GNULIB_defined_ESTREAMS 1 # endif /* These are intentionally the same values as the WSA* error numbers, defined in <winsock2.h>. */ # define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ # define EPFNOSUPPORT 10046 /* not required by POSIX */ # define ESHUTDOWN 10058 /* not required by POSIX */ # define ETOOMANYREFS 10059 /* not required by POSIX */ # define EHOSTDOWN 10064 /* not required by POSIX */ # define EPROCLIM 10067 /* not required by POSIX */ # define EUSERS 10068 /* not required by POSIX */ # define EDQUOT 10069 # define ESTALE 10070 # define EREMOTE 10071 /* not required by POSIX */ # define GNULIB_defined_EWINSOCK 1 # endif /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ # if @EMULTIHOP_HIDDEN@ # define EMULTIHOP @EMULTIHOP_VALUE@ # define GNULIB_defined_EMULTIHOP 1 # endif # if @ENOLINK_HIDDEN@ # define ENOLINK @ENOLINK_VALUE@ # define GNULIB_defined_ENOLINK 1 # endif # if @EOVERFLOW_HIDDEN@ # define EOVERFLOW @EOVERFLOW_VALUE@ # define GNULIB_defined_EOVERFLOW 1 # endif /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. Note: When one of these systems defines some of these macros some day, binaries will have to be recompiled so that they recognizes the new errno values from the system. */ # ifndef ENOMSG # define ENOMSG 2000 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 2001 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 2002 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 2003 # define GNULIB_defined_EPROTO 1 # endif # ifndef EMULTIHOP # define EMULTIHOP 2004 # define GNULIB_defined_EMULTIHOP 1 # endif # ifndef EBADMSG # define EBADMSG 2005 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 2006 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 2007 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 2011 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 2012 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ESTALE # define ESTALE 2009 # define GNULIB_defined_ESTALE 1 # endif # ifndef EDQUOT # define EDQUOT 2010 # define GNULIB_defined_EDQUOT 1 # endif # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 # endif /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not defined. */ # ifndef EOWNERDEAD # if defined __sun /* Use the same values as defined for Solaris >= 8, for interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 # elif defined _WIN32 && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS /* Use the same values as defined by pthreads-win32, for interoperability. */ # define EOWNERDEAD 43 # define ENOTRECOVERABLE 44 # else /* Use the same values as defined by MSVC 10, for interoperability. */ # define EOWNERDEAD 133 # define ENOTRECOVERABLE 127 # endif # else # define EOWNERDEAD 2013 # define ENOTRECOVERABLE 2014 # endif # define GNULIB_defined_EOWNERDEAD 1 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EILSEQ # define EILSEQ 2015 # define GNULIB_defined_EILSEQ 1 # endif #endif /* _@GUARD_PREFIX@_ERRNO_H */ #endif /* _@GUARD_PREFIX@_ERRNO_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/intprops.h���������������������������������������������������������������������������0000644�0000000�0000000�00000070717�14076273520�012250� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* intprops.h -- properties of integer types Copyright (C) 2001-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include <limits.h> /* Return a value with the common real type of E and V and the value of V. Do not evaluate E. */ #define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */ #define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if the real type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the real expression E, after promotion, has a signed or floating type. Do not evaluate E. */ #define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. */ /* The width in bits of the integer type or expression T. Do not evaluate T. T must not be a bit-field expression. Padding bits are not supported; this is checked at compile-time below. */ #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, after integer promotion. E is not evaluated. */ #define _GL_INT_MINIMUM(e) \ (EXPR_SIGNED (e) \ ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (EXPR_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) /* Work around OpenVMS incompatibility with C99. */ #if !defined LLONG_MAX && defined __INT64_MAX # define LLONG_MAX __INT64_MAX # define LLONG_MIN __INT64_MIN #endif /* This include file assumes that signed types are two's complement without padding bits; the above macros have undefined behavior otherwise. If this is a problem for you, please let us know how to fix it for your host. This assumption is tested by the intprops-tests module. */ /* Does the __typeof__ keyword work? This could be done by 'configure', but for now it's easier to do it by hand. */ #if (2 <= __GNUC__ \ || (4 <= __clang_major__) \ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ || (0x5110 <= __SUNPRO_C && !__STDC__)) # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. T must not be a bit-field expression. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. T must not be a bit-field expression. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is unsigned, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. T must not be a bit-field expression. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. Their implementations are simple and straightforward, but they are harder to use and may be less efficient than the INT_<op>_WRAPV, INT_<op>_OK, and INT_<op>_OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. Because all arguments are subject to integer promotions, these macros typically do not work on types narrower than 'int'. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 \ ? (a) < - (max) \ : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>. */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow (A, B, P) work when P is non-null. */ /* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>. */ #if 7 <= __GNUC__ && !defined __ICC # define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 #elif defined __has_builtin # define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) #else # define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 #endif /* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ #ifdef __clang__ /* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */ # define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 #else # define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW #endif /* True if __builtin_add_overflow_p (A, B, C) works, and similarly for __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ #if defined __clang__ || defined __ICC /* Clang 11 lacks __builtin_mul_overflow_p, and even if it did it would presumably run afoul of Clang bug 16404. ICC 2021.1's __builtin_add_overflow_p etc. are not treated as integral constant expressions even when all arguments are. */ # define _GL_HAS_BUILTIN_OVERFLOW_P 0 #elif defined __has_builtin # define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) #else # define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) #endif /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #if _GL_HAS_BUILTIN_OVERFLOW_P # define _GL_ADD_OVERFLOW(a, b, min, max) \ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) #else # define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #endif #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Check for integer overflow, and report low order bits of answer. The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. The INT_<op>_WRAPV macros compute the low-order bits of the sum, difference, and product of two C integers, and return 1 if these low-order bits are not numerically correct. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage, assuming A and B are long int: if (INT_MULTIPLY_OVERFLOW (a, b)) printf ("result would overflow\n"); else printf ("result is %ld (no overflow)\n", a * b); Example usage with WRAPV flavor: long int result; bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); printf ("result is %ld (%s)\n", result, overflow ? "after overflow" : "no overflow"); Restrictions on these macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The WRAPV macros are not constant expressions. They support only +, binary -, and *. Because the WRAPV macros convert the result, they report overflow in different circumstances than the OVERFLOW macros do. For example, in the typical case with 16-bit 'short' and 32-bit 'int', if A, B and R are all of type 'short' then INT_ADD_OVERFLOW (A, B) returns false because the addition cannot overflow after A and B are converted to 'int', whereas INT_ADD_WRAPV (A, B, &R) returns true or false depending on whether the sum fits into 'short'. These macros are tuned for their last input argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #if _GL_HAS_BUILTIN_OVERFLOW_P # define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a) #else # define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #endif #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A <op> B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. See above for restrictions. */ #if _GL_HAS_BUILTIN_ADD_OVERFLOW # define INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) # define INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) #else # define INT_ADD_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) # define INT_SUBTRACT_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) #endif #if _GL_HAS_BUILTIN_MUL_OVERFLOW # if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ && !defined __ICC) # define INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) # else /* Work around GCC bug 91450. */ # define INT_MULTIPLY_WRAPV(a, b, r) \ ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && EXPR_SIGNED (a) && EXPR_SIGNED (b) \ && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ ? ((void) __builtin_mul_overflow (a, b, r), 1) \ : __builtin_mul_overflow (a, b, r)) # endif #else # define INT_MULTIPLY_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) #endif /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 https://llvm.org/bugs/show_bug.cgi?id=25390 For now, assume all versions of GCC-like compilers generate bogus warnings for _Generic. This matters only for compilers that lack relevant builtins. */ #if __GNUC__ || defined __clang__ # define _GL__GENERIC_BOGUS 1 #else # define _GL__GENERIC_BOGUS 0 #endif /* Store the low-order bits of A <op> B into *R, where OP specifies the operation and OVERFLOW the overflow predicate. Return 1 if the result overflows. See above for restrictions. */ #if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS # define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ (_Generic \ (*(r), \ signed char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ signed char, SCHAR_MIN, SCHAR_MAX), \ unsigned char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned char, 0, UCHAR_MAX), \ short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ short int, SHRT_MIN, SHRT_MAX), \ unsigned short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned short int, 0, USHRT_MAX), \ int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX), \ unsigned int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned int, 0, UINT_MAX), \ long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX), \ unsigned long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ unsigned long int, 0, ULONG_MAX), \ long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX), \ unsigned long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ unsigned long long int, 0, ULLONG_MAX))) #else /* Store the low-order bits of A <op> B into *R, where OP specifies the operation and OVERFLOW the overflow predicate. If *R is signed, its type is ST with bounds SMIN..SMAX; otherwise its type is UT with bounds U..UMAX. ST and UT are narrower than int. Return 1 if the result overflows. See above for restrictions. */ # if _GL_HAVE___TYPEOF__ # define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ (TYPE_SIGNED (__typeof__ (*(r))) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) # else # define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ (overflow (a, b, smin, smax) \ ? (overflow (a, b, 0, umax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ : (overflow (a, b, 0, umax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) # endif # define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (signed char) \ ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ signed char, SCHAR_MIN, SCHAR_MAX, \ unsigned char, UCHAR_MAX) \ : sizeof *(r) == sizeof (short int) \ ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ short int, SHRT_MIN, SHRT_MAX, \ unsigned short int, USHRT_MAX) \ : sizeof *(r) == sizeof (int) \ ? (EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ unsigned int, 0, UINT_MAX)) \ : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) # ifdef LLONG_MAX # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (long int) \ ? (EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ unsigned long int, 0, ULONG_MAX)) \ : (EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ unsigned long long int, 0, ULLONG_MAX))) # else # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (EXPR_SIGNED (*(r)) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ unsigned long int, 0, ULONG_MAX)) # endif #endif /* Store the low-order bits of A <op> B into *R, where the operation is given by OP. Use the unsigned type UT for calculation to avoid overflow problems. *R's type is T, with extrema TMIN and TMAX. T must be a signed integer type. Return 1 if the result overflows. */ #define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ (overflow (a, b, tmin, tmax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) /* Return the low-order bits of A <op> B, where the operation is given by OP. Use the unsigned type UT for calculation to avoid undefined behavior on signed integer overflow, and convert the result to type T. UT is at least as wide as T and is no narrower than unsigned int, T is two's complement, and there is no padding or trap representations. Assume that converting UT to T yields the low-order bits, as is done in all known two's-complement C compilers. E.g., see: https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html According to the C standard, converting UT to T yields an implementation-defined result or signal for values outside T's range. However, code that works around this theoretical problem runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html As the compiler bug is real, don't try to work around the theoretical problem. */ #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ ((t) ((ut) (a) op (ut) (b))) /* Return true if the numeric values A + B, A - B, A * B fall outside the range TMIN..TMAX. Arguments should be integer expressions without side effects. TMIN should be signed and nonpositive. TMAX should be positive, and should be signed unless TMIN is zero. */ #define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ ((b) < 0 \ ? (((tmin) \ ? ((EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ && (a) < (tmin) - (b)) \ : (a) <= -1 - (b)) \ || ((EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ : (a) < 0 \ ? (((tmin) \ ? ((EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ && (b) < (tmin) - (a)) \ : (b) <= -1 - (a)) \ || ((EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ && (tmax) < (a) + (b))) \ : (tmax) < (b) || (tmax) - (b) < (a)) #define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ (((a) < 0) == ((b) < 0) \ ? ((a) < (b) \ ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ : (tmax) < (a) - (b)) \ : (a) < 0 \ ? ((!EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ || (a) - (tmin) < (b)) \ : ((! (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ && EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ && (tmax) <= -1 - (b)) \ || (tmax) + (b) < (a))) #define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ ((b) < 0 \ ? ((a) < 0 \ ? (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ ? (a) < (tmax) / (b) \ : ((INT_NEGATE_OVERFLOW (b) \ ? _GL_INT_CONVERT (b, tmax) >> (TYPE_WIDTH (+ (b)) - 1) \ : (tmax) / -(b)) \ <= -1 - (a))) \ : INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ ? (EXPR_SIGNED (a) \ ? 0 < (a) + (tmin) \ : 0 < (a) && -1 - (tmin) < (a) - 1) \ : (tmin) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ ? (EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ : (tmin) / (a) < (b)) \ : (tmax) / (b) < (a))) /* The following macros compute A + B, A - B, and A * B, respectively. If no overflow occurs, they set *R to the result and return 1; otherwise, they return 0 and may modify *R. Example usage: long int result; if (INT_ADD_OK (a, b, &result)) printf ("result is %ld\n", result); else printf ("overflow\n"); A, B, and *R should be integers; they need not be the same type, and they need not be all signed or all unsigned. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. These macros are not constant expressions. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. These macros are tuned for B being a constant. */ #define INT_ADD_OK(a, b, r) ! INT_ADD_WRAPV (a, b, r) #define INT_SUBTRACT_OK(a, b, r) ! INT_SUBTRACT_WRAPV (a, b, r) #define INT_MULTIPLY_OK(a, b, r) ! INT_MULTIPLY_WRAPV (a, b, r) #endif /* _GL_INTPROPS_H */ �������������������������������������������������libidn-1.38/gl/malloca.h����������������������������������������������������������������������������0000644�0000000�0000000�00000010643�14076273520�011772� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _MALLOCA_H #define _MALLOCA_H #include <alloca.h> #include <stddef.h> #include <stdlib.h> #include <stdint.h> #include "xalloc-oversized.h" #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - (2 * sa_alignment_max - 1) \ ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ + (2 * sa_alignment_max - 1)) \ & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void * mmalloca (size_t n); /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. N and S should be nonnegative and free of side effects. The array must be freed using freea() before the function returns. */ #define nmalloca(n, s) \ (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ # define sa_alignof __alignof__ #elif defined __cplusplus template <class type> struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), sa_alignment_longlong = sa_alignof (long long), sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) | (sa_alignment_longlong - 1) | (sa_alignment_longdouble - 1) ) + 1 }; #endif /* _MALLOCA_H */ ���������������������������������������������������������������������������������������������libidn-1.38/gl/stdbool.in.h�������������������������������������������������������������������������0000644�0000000�0000000�00000012011�14076273520�012424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2001-2003, 2006-2021 Free Software Foundation, Inc. Written by Bruno Haible <haible@clisp.cons.org>, 2001. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 <stdbool.h> for platforms that lack it. */ /* Usage suggestions: Programs that use <stdbool.h> should be aware of some limitations and standards compliance issues. Standards compliance: - <stdbool.h> must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - <stdbool.h> must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include <OS.h> /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if <stdbool.h> was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/stat-time.h��������������������������������������������������������������������������0000644�0000000�0000000�00000017024�14076273520�012271� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* stat-related time functions. Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Paul Eggert. */ #ifndef STAT_TIME_H #define STAT_TIME_H 1 #include "intprops.h" #include <errno.h> #include <stddef.h> #include <sys/stat.h> #include <time.h> #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_STAT_TIME_INLINE # define _GL_STAT_TIME_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim for access, status change, data modification, or birth (creation) time respectively. These macros are private to stat-time.h. */ #if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC # if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) # else # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) # endif #elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) #elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) #elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) #endif /* Return the nanosecond component of *ST's access time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_atime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_atim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_atim); # else return 0; # endif } /* Return the nanosecond component of *ST's status change time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_ctime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_ctim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_ctim); # else return 0; # endif } /* Return the nanosecond component of *ST's data modification time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_mtime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_mtim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_mtim); # else return 0; # endif } /* Return the nanosecond component of *ST's birth time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_birthtime_ns (struct stat const *st _GL_UNUSED) { # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC return STAT_TIMESPEC (st, st_birthtim).tv_nsec; # elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC return STAT_TIMESPEC_NS (st, st_birthtim); # else return 0; # endif } /* Return *ST's access time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_atime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_atim); #else struct timespec t; t.tv_sec = st->st_atime; t.tv_nsec = get_stat_atime_ns (st); return t; #endif } /* Return *ST's status change time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_ctime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_ctim); #else struct timespec t; t.tv_sec = st->st_ctime; t.tv_nsec = get_stat_ctime_ns (st); return t; #endif } /* Return *ST's data modification time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_mtime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_mtim); #else struct timespec t; t.tv_sec = st->st_mtime; t.tv_nsec = get_stat_mtime_ns (st); return t; #endif } /* Return *ST's birth time, if available; otherwise return a value with tv_sec and tv_nsec both equal to -1. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_birthtime (struct stat const *st _GL_UNUSED) { struct timespec t; #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) t = STAT_TIMESPEC (st, st_birthtim); #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC t.tv_sec = st->st_birthtime; t.tv_nsec = st->st_birthtimensec; #elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows platforms (but not Cygwin) put the "file creation time" in st_ctime (!). See <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat-functions>. */ # if _GL_WINDOWS_STAT_TIMESPEC t = st->st_ctim; # else t.tv_sec = st->st_ctime; t.tv_nsec = 0; # endif #else /* Birth time is not supported. */ t.tv_sec = -1; t.tv_nsec = -1; #endif #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) /* FreeBSD and NetBSD sometimes signal the absence of knowledge by using zero. Attempt to work around this problem. Alas, this can report failure even for valid timestamps. Also, NetBSD sometimes returns junk in the birth time fields; work around this bug if it is detected. */ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) { t.tv_sec = -1; t.tv_nsec = -1; } #endif return t; } /* If a stat-like function returned RESULT, normalize the timestamps in *ST, in case this platform suffers from the Solaris 11 bug where tv_nsec might be negative. Return the adjusted RESULT, setting errno to EOVERFLOW if normalization overflowed. This function is intended to be private to this .h file. */ _GL_STAT_TIME_INLINE int stat_time_normalize (int result, struct stat *st _GL_UNUSED) { #if defined __sun && defined STAT_TIMESPEC if (result == 0) { long int timespec_hz = 1000000000; short int const ts_off[] = { offsetof (struct stat, st_atim), offsetof (struct stat, st_mtim), offsetof (struct stat, st_ctim) }; int i; for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) { struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); long int q = ts->tv_nsec / timespec_hz; long int r = ts->tv_nsec % timespec_hz; if (r < 0) { r += timespec_hz; q--; } ts->tv_nsec = r; /* Overflow is possible, as Solaris 11 stat can yield tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec)) { errno = EOVERFLOW; return -1; } } } #endif return result; } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getline.c����������������������������������������������������������������������������0000644�0000000�0000000�00000001730�14076273520�012001� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* getline.c --- Implementation of replacement getline function. Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* Written by Simon Josefsson. */ #include <config.h> #include <stdio.h> ssize_t getline (char **lineptr, size_t *n, FILE *stream) { return getdelim (lineptr, n, '\n', stream); } ����������������������������������������libidn-1.38/gl/getopt.in.h��������������������������������������������������������������������������0000644�0000000�0000000�00000004121�14076273520�012263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Declarations for getopt. Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library, which supplies a different version of this file. This file is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This file 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef _@GUARD_PREFIX@_GETOPT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. We must also inform the replacement unistd.h to not recursively use <getopt.h>; our definitions will be present soon enough. */ #if @HAVE_GETOPT_H@ # define _GL_SYSTEM_GETOPT # @INCLUDE_NEXT@ @NEXT_GETOPT_H@ # undef _GL_SYSTEM_GETOPT #endif #define _@GUARD_PREFIX@_GETOPT_H 1 /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables defined in getopt-core.h and getopt-ext.h. When this happens, include the headers that might declare getopt so that they will not cause confusion if included after this file (if the system had <getopt.h>, we have already included it). */ #if defined __GETOPT_PREFIX # if !@HAVE_GETOPT_H@ # define __need_system_stdlib_h # include <stdlib.h> # undef __need_system_stdlib_h # include <stdio.h> # include <unistd.h> # endif #endif /* The definition of _GL_ARG_NONNULL is copied here. */ #include <getopt-cdefs.h> #include <getopt-pfx-core.h> #include <getopt-pfx-ext.h> #endif /* _@GUARD_PREFIX@_GETOPT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/gl/getopt_int.h�������������������������������������������������������������������������0000644�0000000�0000000�00000010112�14076273520�012525� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Internal declarations for getopt. Copyright (C) 1989-2021 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef _GETOPT_INT_H #define _GETOPT_INT_H 1 #include <getopt.h> extern int _getopt_internal (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only, int __posixly_correct); /* Reentrant versions which can handle parsing multiple argument vectors at the same time. */ /* Describe how to deal with options that follow non-option ARGV-elements. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what POSIX specifies should happen. PERMUTE means permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. The special argument '--' forces an end of option-scanning regardless of the value of 'ordering'. In the case of RETURN_IN_ORDER, only '--' can cause 'getopt' to return -1 with 'optind' != ARGC. */ enum __ord { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER }; /* Data type for reentrant functions. */ struct _getopt_data { /* These have exactly the same meaning as the corresponding global variables, except that they are used for the reentrant versions of getopt. */ int optind; int opterr; int optopt; char *optarg; /* Internal members. */ /* True if the internal members have been initialized. */ int __initialized; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ char *__nextchar; /* See __ord above. */ enum __ord __ordering; /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. 'first_nonopt' is the index in ARGV of the first of them; 'last_nonopt' is the index after the last of them. */ int __first_nonopt; int __last_nonopt; }; /* The initializer is necessary to set OPTIND and OPTERR to their default values and to clear the initialization flag. */ #define _GETOPT_DATA_INITIALIZER { 1, 1 } extern int _getopt_internal_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only, struct _getopt_data *__data, int __posixly_correct); extern int _getopt_long_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, struct _getopt_data *__data); extern int _getopt_long_only_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, struct _getopt_data *__data); #endif /* getopt_int.h */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/README����������������������������������������������������������������������������������0000644�0000000�0000000�00000002504�14076271517�010470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Libidn README -- Important introductory notes. Copyright (C) 2002-2021 Simon Josefsson See the end for copying conditions. Libidn is a package for internationalized string handling based on the Stringprep, Punycode, IDNA2003 and TLD specifications. Libidn is a GNU project. See the file COPYING for licensing information. The IDNA2003 specifications have been superseded by IDNA2008 which is implemented by Libidn2 <https://www.gnu.org/software/libidn/#libidn2>, and the only reasonable use of the libidn library today is to support the historic IDNA2003 behaviour or to use Stringprep profiles. Please try to migrate to libidn2 wherever possible. If you obtained this file as part of a "git clone", then see the HACKING file. If this file came to you as part of a tar archive, then see the file INSTALL for compilation and installation instructions. If you need help to use Libidn, or wish to help others, you are invited to join our mailing list help-libidn@gnu.org, see <https://lists.gnu.org/mailman/listinfo/help-libidn>. For more information, see <https://www.gnu.org/software/libidn/>. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/Makefile.am�����������������������������������������������������������������������������0000644�0000000�0000000�00000004573�14076271517�011654� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. SUBDIRS = gl lib/gl lib po src if ENABLE_DOC SUBDIRS += doc endif SUBDIRS += tests fuzz examples if JAVA SUBDIRS += java endif if CSHARP SUBDIRS += csharp endif EXTRA_DIST = cfg.mk maint.mk EXTRA_DIST += COPYING.LESSERv2 COPYING.LESSERv3 COPYINGv2 COPYINGv3 ACLOCAL_AMFLAGS = -I lib/m4 -I gl/m4 -I lib/gl/m4 -I m4 DISTCHECK_CONFIGURE_FLAGS = --enable-doc --enable-gtk-doc --disable-valgrind-tests EXTRA_DIST += FAQ libc/README libc/getaddrinfo-idn.txt libc/example.c \ contrib/README contrib/idn-python/README \ contrib/idn-python/Makefile contrib/idn-python/idn.c \ contrib/idn-python/test.py contrib/web/idn.php \ contrib/java/README contrib/java/autogen.sh \ contrib/java/configure.ac contrib/java/Makefile.am \ contrib/java/ExampleIDNA.java contrib/java/IDNA.java \ contrib/java/IDNA.c contrib/doxygen/Doxyfile.in \ contrib/doxygen/Doxyfile.orig contrib/doxygen/gdoc2doxygen # Visual Studio project files. EXTRA_DIST += windows/libidn.sln windows/libidn.vcproj \ windows/include/unistd.h windows/include/idn-int.h \ windows/include/stdbool.h windows/include/ac-stdint.h \ windows/include/config.h windows/libidn4win.mk EXTRA_DIST += HACKING # git-version-gen EXTRA_DIST += $(top_srcdir)/.version BUILT_SOURCES = $(top_srcdir)/.version $(top_srcdir)/.version: echo $(VERSION) > $@-t && mv $@-t $@ dist-hook: gen-ChangeLog echo $(VERSION) > $(distdir)/.tarball-version .PHONY: gen-ChangeLog gen-ChangeLog: $(AM_V_GEN)if test -d .git; then \ $(top_srcdir)/build-aux/gitlog-to-changelog > \ $(distdir)/cl-t && \ { rm -f $(distdir)/ChangeLog && \ mv $(distdir)/cl-t $(distdir)/ChangeLog; } \ fi �������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/COPYING���������������������������������������������������������������������������������0000644�0000000�0000000�00000002564�14053001337�010633� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Libidn COPYING -- Explanation of licensing conditions. Copyright (C) 2002-2021 Simon Josefsson See the end for copying conditions. The source code for the C library (libidn.a or libidn.so), the C# library (Libidn.dll) and the Java library (libidn-*.jar) are licensed under the terms of either the GNU General Public License version 2.0 or later (see the file COPYINGv2) or the GNU Lesser General Public License version 3.0 or later (see the file COPYING.LESSERv3), or both in parallel as here. The author of the Java library has agreed to also distribute it under the Apache License Version 2.0 (see the file java/LICENSE-2.0). The manual is licensed under the GNU Free Documentation License, Version 1.3 or any later. The command line tool, self tests, examples, and other auxiliary files, are licensed under the GNU General Public License version 3.0 or later. Other files are licensed as indicated in each file. There may be exceptions to these general rules, see each file for precise information. For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. ��������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�14076274120�010447� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/idn.ggo�����������������������������������������������������������������������������0000644�0000000�0000000�00000003420�14076271517�011645� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2003-2021 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. option "stringprep" s "Prepare string according to nameprep profile" no option "punycode-decode" d "Decode Punycode" no option "punycode-encode" e "Encode Punycode" no option "idna-to-ascii" a "Convert to ACE according to IDNA (default)" no option "idna-to-unicode" u "Convert from ACE according to IDNA" no option "allow-unassigned" - "Toggle IDNA AllowUnassigned flag" flag off option "usestd3asciirules" - "Toggle IDNA UseSTD3ASCIIRules flag" flag off option "tld" t "Check string for TLD specific rules\nOnly for --idna-to-ascii and --idna-to-unicode" flag on option "no-tld" - "Don't check string for TLD specific rules\nOnly for --idna-to-ascii and --idna-to-unicode" flag off option "nfkc" n "Normalize string according to Unicode v3.2 NFKC" no option "hidden-nfkc" k "Hidden parameter for backwards compatibility" no hidden option "profile" p "Use specified stringprep profile instead\nValid stringprep profiles are: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep" string no option "debug" - "Print debugging information" flag off option "quiet" - "Silent operation" flag off ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/idn_cmd.c���������������������������������������������������������������������������0000644�0000000�0000000�00000064323�14076273631�012146� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* File autogenerated by gengetopt version 2.23 generated with the following command: gengetopt --unamed-opts --no-handle-version --no-handle-error --no-handle-help --set-package=idn --input idn.ggo --file-name idn_cmd Makefile.am The developers of gengetopt consider the fixed text that goes in all gengetopt output files to be in the public domain: we make no copyright claims on it. */ /* If we use autoconf. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #ifndef FIX_UNUSED #define FIX_UNUSED(X) (void) (X) /* avoid warnings for unused params */ #endif #include <getopt.h> #include "idn_cmd.h" const char *gengetopt_args_info_purpose = ""; const char *gengetopt_args_info_usage = "Usage: idn [OPTION]... [FILE]..."; const char *gengetopt_args_info_versiontext = ""; const char *gengetopt_args_info_description = ""; const char *gengetopt_args_info_full_help[] = { " -h, --help Print help and exit", " --full-help Print help, including hidden options, and exit", " -V, --version Print version and exit", " -s, --stringprep Prepare string according to nameprep profile", " -d, --punycode-decode Decode Punycode", " -e, --punycode-encode Encode Punycode", " -a, --idna-to-ascii Convert to ACE according to IDNA (default)", " -u, --idna-to-unicode Convert from ACE according to IDNA", " --allow-unassigned Toggle IDNA AllowUnassigned flag (default=off)", " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default=off)", " -t, --tld Check string for TLD specific rules\n Only for --idna-to-ascii and --idna-to-unicode\n (default=on)", " --no-tld Don't check string for TLD specific rules\n Only for --idna-to-ascii and --idna-to-unicode\n (default=off)", " -n, --nfkc Normalize string according to Unicode v3.2 NFKC", " -k, --hidden-nfkc Hidden parameter for backwards compatibility", " -p, --profile=STRING Use specified stringprep profile instead\n Valid stringprep profiles are: Nameprep iSCSI\n Nodeprep Resourceprep trace SASLprep", " --debug Print debugging information (default=off)", " --quiet Silent operation (default=off)", 0 }; static void init_help_array(void) { gengetopt_args_info_help[0] = gengetopt_args_info_full_help[0]; gengetopt_args_info_help[1] = gengetopt_args_info_full_help[1]; gengetopt_args_info_help[2] = gengetopt_args_info_full_help[2]; gengetopt_args_info_help[3] = gengetopt_args_info_full_help[3]; gengetopt_args_info_help[4] = gengetopt_args_info_full_help[4]; gengetopt_args_info_help[5] = gengetopt_args_info_full_help[5]; gengetopt_args_info_help[6] = gengetopt_args_info_full_help[6]; gengetopt_args_info_help[7] = gengetopt_args_info_full_help[7]; gengetopt_args_info_help[8] = gengetopt_args_info_full_help[8]; gengetopt_args_info_help[9] = gengetopt_args_info_full_help[9]; gengetopt_args_info_help[10] = gengetopt_args_info_full_help[10]; gengetopt_args_info_help[11] = gengetopt_args_info_full_help[11]; gengetopt_args_info_help[12] = gengetopt_args_info_full_help[12]; gengetopt_args_info_help[13] = gengetopt_args_info_full_help[14]; gengetopt_args_info_help[14] = gengetopt_args_info_full_help[15]; gengetopt_args_info_help[15] = gengetopt_args_info_full_help[16]; gengetopt_args_info_help[16] = 0; } const char *gengetopt_args_info_help[17]; typedef enum {ARG_NO , ARG_FLAG , ARG_STRING } cmdline_parser_arg_type; static void clear_given (struct gengetopt_args_info *args_info); static void clear_args (struct gengetopt_args_info *args_info); static int cmdline_parser_internal (int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params, const char *additional_error); static char * gengetopt_strdup (const char *s); static void clear_given (struct gengetopt_args_info *args_info) { args_info->help_given = 0 ; args_info->full_help_given = 0 ; args_info->version_given = 0 ; args_info->stringprep_given = 0 ; args_info->punycode_decode_given = 0 ; args_info->punycode_encode_given = 0 ; args_info->idna_to_ascii_given = 0 ; args_info->idna_to_unicode_given = 0 ; args_info->allow_unassigned_given = 0 ; args_info->usestd3asciirules_given = 0 ; args_info->tld_given = 0 ; args_info->no_tld_given = 0 ; args_info->nfkc_given = 0 ; args_info->hidden_nfkc_given = 0 ; args_info->profile_given = 0 ; args_info->debug_given = 0 ; args_info->quiet_given = 0 ; } static void clear_args (struct gengetopt_args_info *args_info) { FIX_UNUSED (args_info); args_info->allow_unassigned_flag = 0; args_info->usestd3asciirules_flag = 0; args_info->tld_flag = 1; args_info->no_tld_flag = 0; args_info->profile_arg = NULL; args_info->profile_orig = NULL; args_info->debug_flag = 0; args_info->quiet_flag = 0; } static void init_args_info(struct gengetopt_args_info *args_info) { init_help_array(); args_info->help_help = gengetopt_args_info_full_help[0] ; args_info->full_help_help = gengetopt_args_info_full_help[1] ; args_info->version_help = gengetopt_args_info_full_help[2] ; args_info->stringprep_help = gengetopt_args_info_full_help[3] ; args_info->punycode_decode_help = gengetopt_args_info_full_help[4] ; args_info->punycode_encode_help = gengetopt_args_info_full_help[5] ; args_info->idna_to_ascii_help = gengetopt_args_info_full_help[6] ; args_info->idna_to_unicode_help = gengetopt_args_info_full_help[7] ; args_info->allow_unassigned_help = gengetopt_args_info_full_help[8] ; args_info->usestd3asciirules_help = gengetopt_args_info_full_help[9] ; args_info->tld_help = gengetopt_args_info_full_help[10] ; args_info->no_tld_help = gengetopt_args_info_full_help[11] ; args_info->nfkc_help = gengetopt_args_info_full_help[12] ; args_info->hidden_nfkc_help = gengetopt_args_info_full_help[13] ; args_info->profile_help = gengetopt_args_info_full_help[14] ; args_info->debug_help = gengetopt_args_info_full_help[15] ; args_info->quiet_help = gengetopt_args_info_full_help[16] ; } void cmdline_parser_print_version (void) { printf ("%s %s\n", (strlen(CMDLINE_PARSER_PACKAGE_NAME) ? CMDLINE_PARSER_PACKAGE_NAME : CMDLINE_PARSER_PACKAGE), CMDLINE_PARSER_VERSION); if (strlen(gengetopt_args_info_versiontext) > 0) printf("\n%s\n", gengetopt_args_info_versiontext); } static void print_help_common(void) { size_t len_purpose = strlen(gengetopt_args_info_purpose); size_t len_usage = strlen(gengetopt_args_info_usage); if (len_usage > 0) { printf("%s\n", gengetopt_args_info_usage); } if (len_purpose > 0) { printf("%s\n", gengetopt_args_info_purpose); } if (len_usage || len_purpose) { printf("\n"); } if (strlen(gengetopt_args_info_description) > 0) { printf("%s\n\n", gengetopt_args_info_description); } } void cmdline_parser_print_help (void) { int i = 0; print_help_common(); while (gengetopt_args_info_help[i]) printf("%s\n", gengetopt_args_info_help[i++]); } void cmdline_parser_print_full_help (void) { int i = 0; print_help_common(); while (gengetopt_args_info_full_help[i]) printf("%s\n", gengetopt_args_info_full_help[i++]); } void cmdline_parser_init (struct gengetopt_args_info *args_info) { clear_given (args_info); clear_args (args_info); init_args_info (args_info); args_info->inputs = 0; args_info->inputs_num = 0; } void cmdline_parser_params_init(struct cmdline_parser_params *params) { if (params) { params->override = 0; params->initialize = 1; params->check_required = 1; params->check_ambiguity = 0; params->print_errors = 1; } } struct cmdline_parser_params * cmdline_parser_params_create(void) { struct cmdline_parser_params *params = (struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params)); cmdline_parser_params_init(params); return params; } static void free_string_field (char **s) { if (*s) { free (*s); *s = 0; } } static void cmdline_parser_release (struct gengetopt_args_info *args_info) { unsigned int i; free_string_field (&(args_info->profile_arg)); free_string_field (&(args_info->profile_orig)); for (i = 0; i < args_info->inputs_num; ++i) free (args_info->inputs [i]); if (args_info->inputs_num) free (args_info->inputs); clear_given (args_info); } static void write_into_file(FILE *outfile, const char *opt, const char *arg, const char *values[]) { FIX_UNUSED (values); if (arg) { fprintf(outfile, "%s=\"%s\"\n", opt, arg); } else { fprintf(outfile, "%s\n", opt); } } int cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info) { int i = 0; if (!outfile) { fprintf (stderr, "%s: cannot dump options to stream\n", CMDLINE_PARSER_PACKAGE); return EXIT_FAILURE; } if (args_info->help_given) write_into_file(outfile, "help", 0, 0 ); if (args_info->full_help_given) write_into_file(outfile, "full-help", 0, 0 ); if (args_info->version_given) write_into_file(outfile, "version", 0, 0 ); if (args_info->stringprep_given) write_into_file(outfile, "stringprep", 0, 0 ); if (args_info->punycode_decode_given) write_into_file(outfile, "punycode-decode", 0, 0 ); if (args_info->punycode_encode_given) write_into_file(outfile, "punycode-encode", 0, 0 ); if (args_info->idna_to_ascii_given) write_into_file(outfile, "idna-to-ascii", 0, 0 ); if (args_info->idna_to_unicode_given) write_into_file(outfile, "idna-to-unicode", 0, 0 ); if (args_info->allow_unassigned_given) write_into_file(outfile, "allow-unassigned", 0, 0 ); if (args_info->usestd3asciirules_given) write_into_file(outfile, "usestd3asciirules", 0, 0 ); if (args_info->tld_given) write_into_file(outfile, "tld", 0, 0 ); if (args_info->no_tld_given) write_into_file(outfile, "no-tld", 0, 0 ); if (args_info->nfkc_given) write_into_file(outfile, "nfkc", 0, 0 ); if (args_info->hidden_nfkc_given) write_into_file(outfile, "hidden-nfkc", 0, 0 ); if (args_info->profile_given) write_into_file(outfile, "profile", args_info->profile_orig, 0); if (args_info->debug_given) write_into_file(outfile, "debug", 0, 0 ); if (args_info->quiet_given) write_into_file(outfile, "quiet", 0, 0 ); i = EXIT_SUCCESS; return i; } int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info) { FILE *outfile; int i = 0; outfile = fopen(filename, "w"); if (!outfile) { fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename); return EXIT_FAILURE; } i = cmdline_parser_dump(outfile, args_info); fclose (outfile); return i; } void cmdline_parser_free (struct gengetopt_args_info *args_info) { cmdline_parser_release (args_info); } /** @brief replacement of strdup, which is not standard */ char * gengetopt_strdup (const char *s) { char *result = 0; if (!s) return result; result = (char*)malloc(strlen(s) + 1); if (result == (char*)0) return (char*)0; strcpy(result, s); return result; } int cmdline_parser (int argc, char **argv, struct gengetopt_args_info *args_info) { return cmdline_parser2 (argc, argv, args_info, 0, 1, 1); } int cmdline_parser_ext (int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params) { int result; result = cmdline_parser_internal (argc, argv, args_info, params, 0); return result; } int cmdline_parser2 (int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required) { int result; struct cmdline_parser_params params; params.override = override; params.initialize = initialize; params.check_required = check_required; params.check_ambiguity = 0; params.print_errors = 1; result = cmdline_parser_internal (argc, argv, args_info, ¶ms, 0); return result; } int cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name) { FIX_UNUSED (args_info); FIX_UNUSED (prog_name); return EXIT_SUCCESS; } static char *package_name = 0; /** * @brief updates an option * @param field the generic pointer to the field to update * @param orig_field the pointer to the orig field * @param field_given the pointer to the number of occurrence of this option * @param prev_given the pointer to the number of occurrence already seen * @param value the argument for this option (if null no arg was specified) * @param possible_values the possible values for this option (if specified) * @param default_value the default value (in case the option only accepts fixed values) * @param arg_type the type of this option * @param check_ambiguity @see cmdline_parser_params.check_ambiguity * @param override @see cmdline_parser_params.override * @param no_free whether to free a possible previous value * @param multiple_option whether this is a multiple option * @param long_opt the corresponding long option * @param short_opt the corresponding short option (or '-' if none) * @param additional_error possible further error specification */ static int update_arg(void *field, char **orig_field, unsigned int *field_given, unsigned int *prev_given, char *value, const char *possible_values[], const char *default_value, cmdline_parser_arg_type arg_type, int check_ambiguity, int override, int no_free, int multiple_option, const char *long_opt, char short_opt, const char *additional_error) { char *stop_char = 0; const char *val = value; int found; char **string_field; FIX_UNUSED (field); stop_char = 0; found = 0; if (!multiple_option && prev_given && (*prev_given || (check_ambiguity && *field_given))) { if (short_opt != '-') fprintf (stderr, "%s: `--%s' (`-%c') option given more than once%s\n", package_name, long_opt, short_opt, (additional_error ? additional_error : "")); else fprintf (stderr, "%s: `--%s' option given more than once%s\n", package_name, long_opt, (additional_error ? additional_error : "")); return 1; /* failure */ } FIX_UNUSED (default_value); if (field_given && *field_given && ! override) return 0; if (prev_given) (*prev_given)++; if (field_given) (*field_given)++; if (possible_values) val = possible_values[found]; switch(arg_type) { case ARG_FLAG: *((int *)field) = !*((int *)field); break; case ARG_STRING: if (val) { string_field = (char **)field; if (!no_free && *string_field) free (*string_field); /* free previous string */ *string_field = gengetopt_strdup (val); } break; default: break; }; FIX_UNUSED(stop_char); /* store the original value */ switch(arg_type) { case ARG_NO: case ARG_FLAG: break; default: if (value && orig_field) { if (no_free) { *orig_field = value; } else { if (*orig_field) free (*orig_field); /* free previous string */ *orig_field = gengetopt_strdup (value); } } }; return 0; /* OK */ } int cmdline_parser_internal ( int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params, const char *additional_error) { int c; /* Character of the parsed option. */ int error_occurred = 0; struct gengetopt_args_info local_args_info; int override; int initialize; int check_required; int check_ambiguity; package_name = argv[0]; /* TODO: Why is this here? It is not used anywhere. */ override = params->override; FIX_UNUSED(override); initialize = params->initialize; check_required = params->check_required; /* TODO: Why is this here? It is not used anywhere. */ check_ambiguity = params->check_ambiguity; FIX_UNUSED(check_ambiguity); if (initialize) cmdline_parser_init (args_info); cmdline_parser_init (&local_args_info); optarg = 0; optind = 0; opterr = params->print_errors; optopt = '?'; while (1) { int option_index = 0; static struct option long_options[] = { { "help", 0, NULL, 'h' }, { "full-help", 0, NULL, 0 }, { "version", 0, NULL, 'V' }, { "stringprep", 0, NULL, 's' }, { "punycode-decode", 0, NULL, 'd' }, { "punycode-encode", 0, NULL, 'e' }, { "idna-to-ascii", 0, NULL, 'a' }, { "idna-to-unicode", 0, NULL, 'u' }, { "allow-unassigned", 0, NULL, 0 }, { "usestd3asciirules", 0, NULL, 0 }, { "tld", 0, NULL, 't' }, { "no-tld", 0, NULL, 0 }, { "nfkc", 0, NULL, 'n' }, { "hidden-nfkc", 0, NULL, 'k' }, { "profile", 1, NULL, 'p' }, { "debug", 0, NULL, 0 }, { "quiet", 0, NULL, 0 }, { 0, 0, 0, 0 } }; c = getopt_long (argc, argv, "hVsdeautnkp:", long_options, &option_index); if (c == -1) break; /* Exit from `while (1)' loop. */ switch (c) { case 'h': /* Print help and exit. */ if (update_arg( 0 , 0 , &(args_info->help_given), &(local_args_info.help_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "help", 'h', additional_error)) goto failure; cmdline_parser_free (&local_args_info); return 0; break; case 'V': /* Print version and exit. */ if (update_arg( 0 , 0 , &(args_info->version_given), &(local_args_info.version_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "version", 'V', additional_error)) goto failure; cmdline_parser_free (&local_args_info); return 0; break; case 's': /* Prepare string according to nameprep profile. */ if (update_arg( 0 , 0 , &(args_info->stringprep_given), &(local_args_info.stringprep_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "stringprep", 's', additional_error)) goto failure; break; case 'd': /* Decode Punycode. */ if (update_arg( 0 , 0 , &(args_info->punycode_decode_given), &(local_args_info.punycode_decode_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "punycode-decode", 'd', additional_error)) goto failure; break; case 'e': /* Encode Punycode. */ if (update_arg( 0 , 0 , &(args_info->punycode_encode_given), &(local_args_info.punycode_encode_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "punycode-encode", 'e', additional_error)) goto failure; break; case 'a': /* Convert to ACE according to IDNA (default). */ if (update_arg( 0 , 0 , &(args_info->idna_to_ascii_given), &(local_args_info.idna_to_ascii_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "idna-to-ascii", 'a', additional_error)) goto failure; break; case 'u': /* Convert from ACE according to IDNA. */ if (update_arg( 0 , 0 , &(args_info->idna_to_unicode_given), &(local_args_info.idna_to_unicode_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "idna-to-unicode", 'u', additional_error)) goto failure; break; case 't': /* Check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode. */ if (update_arg((void *)&(args_info->tld_flag), 0, &(args_info->tld_given), &(local_args_info.tld_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "tld", 't', additional_error)) goto failure; break; case 'n': /* Normalize string according to Unicode v3.2 NFKC. */ if (update_arg( 0 , 0 , &(args_info->nfkc_given), &(local_args_info.nfkc_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "nfkc", 'n', additional_error)) goto failure; break; case 'k': /* Hidden parameter for backwards compatibility. */ if (update_arg( 0 , 0 , &(args_info->hidden_nfkc_given), &(local_args_info.hidden_nfkc_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "hidden-nfkc", 'k', additional_error)) goto failure; break; case 'p': /* Use specified stringprep profile instead Valid stringprep profiles are: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep. */ if (update_arg( (void *)&(args_info->profile_arg), &(args_info->profile_orig), &(args_info->profile_given), &(local_args_info.profile_given), optarg, 0, 0, ARG_STRING, check_ambiguity, override, 0, 0, "profile", 'p', additional_error)) goto failure; break; case 0: /* Long option with no short option */ /* Print help, including hidden options, and exit. */ if (strcmp (long_options[option_index].name, "full-help") == 0) { if (update_arg( 0 , 0 , &(args_info->full_help_given), &(local_args_info.full_help_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "full-help", '-', additional_error)) goto failure; cmdline_parser_free (&local_args_info); return 0; } /* Toggle IDNA AllowUnassigned flag. */ else if (strcmp (long_options[option_index].name, "allow-unassigned") == 0) { if (update_arg((void *)&(args_info->allow_unassigned_flag), 0, &(args_info->allow_unassigned_given), &(local_args_info.allow_unassigned_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "allow-unassigned", '-', additional_error)) goto failure; } /* Toggle IDNA UseSTD3ASCIIRules flag. */ else if (strcmp (long_options[option_index].name, "usestd3asciirules") == 0) { if (update_arg((void *)&(args_info->usestd3asciirules_flag), 0, &(args_info->usestd3asciirules_given), &(local_args_info.usestd3asciirules_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "usestd3asciirules", '-', additional_error)) goto failure; } /* Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode. */ else if (strcmp (long_options[option_index].name, "no-tld") == 0) { if (update_arg((void *)&(args_info->no_tld_flag), 0, &(args_info->no_tld_given), &(local_args_info.no_tld_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "no-tld", '-', additional_error)) goto failure; } /* Print debugging information. */ else if (strcmp (long_options[option_index].name, "debug") == 0) { if (update_arg((void *)&(args_info->debug_flag), 0, &(args_info->debug_given), &(local_args_info.debug_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "debug", '-', additional_error)) goto failure; } /* Silent operation. */ else if (strcmp (long_options[option_index].name, "quiet") == 0) { if (update_arg((void *)&(args_info->quiet_flag), 0, &(args_info->quiet_given), &(local_args_info.quiet_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "quiet", '-', additional_error)) goto failure; } break; case '?': /* Invalid option. */ /* `getopt_long' already printed an error message. */ goto failure; default: /* bug: option not considered. */ fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : "")); abort (); } /* switch */ } /* while */ FIX_UNUSED(check_required); cmdline_parser_release (&local_args_info); if ( error_occurred ) return (EXIT_FAILURE); if (optind < argc) { int i = 0 ; int found_prog_name = 0; /* whether program name, i.e., argv[0], is in the remaining args (this may happen with some implementations of getopt, but surely not with the one included by gengetopt) */ i = optind; while (i < argc) if (argv[i++] == argv[0]) { found_prog_name = 1; break; } i = 0; args_info->inputs_num = argc - optind - found_prog_name; args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ; while (optind < argc) if (argv[optind++] != argv[0]) args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ; } return 0; failure: cmdline_parser_release (&local_args_info); return (EXIT_FAILURE); } /* vim: set ft=c noet ts=8 sts=8 sw=8 tw=80 nojs spell : */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/idn.c�������������������������������������������������������������������������������0000644�0000000�0000000�00000035265�14076271517�011327� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* idn.c --- Command line interface to libidn. * Copyright (C) 2003-2021 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 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, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <locale.h> #include <unistd.h> /* Gnulib headers. */ #include "error.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) #define N_(String) gettext_noop (String) #include "progname.h" #include "version-etc.h" /* Libidn headers. */ #include <stringprep.h> #include <punycode.h> #include <idna.h> #ifdef WITH_TLD # include <tld.h> #endif #include "idn_cmd.h" #define GREETING \ "Copyright 2002-2021 Simon Josefsson.\n" \ "GNU Libidn is free software with ABSOLUTELY NO WARRANTY. For more\n" \ "information about these matters, see <http://www.gnu.org/licenses/>.\n" const char version_etc_copyright[] = /* Do *not* mark this string for translation. %s is a copyright symbol suitable for this locale, and %d is the copyright year. */ "Copyright %s %d Simon Josefsson."; static void usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try '%s --help' for more information.\n"), program_name); else { printf (_("\ Usage: %s [OPTION]... [STRINGS]...\n\ "), program_name); fputs (_("\ Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n\ \n\ "), stdout); fputs (_("\ Command line interface to the internationalized domain name library.\n\ \n\ All strings are expected to be encoded in the preferred charset used\n\ by your locale. Use --debug to find out what this charset is. You\n\ can override the charset used by setting environment variable CHARSET.\n\ \n\ To process a string that starts with '-', for example '-foo', use '--'\n\ to signal the end of parameters, as in: idn --quiet -a -- -foo\n\ \n\ Mandatory arguments to long options are mandatory for short options too.\n\ "), stdout); fputs (_("\ -h, --help Print help and exit\n\ -V, --version Print version and exit\n\ "), stdout); fputs (_("\ -s, --stringprep Prepare string according to nameprep profile\n\ -d, --punycode-decode Decode Punycode\n\ -e, --punycode-encode Encode Punycode\n\ -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n\ -u, --idna-to-unicode Convert from ACE according to IDNA\n\ "), stdout); fputs (_("\ --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n\ --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n\ "), stdout); fputs (_("\ --no-tld Don't check string for TLD specific rules\n\ Only for --idna-to-ascii and --idna-to-unicode\n\ "), stdout); fputs (_("\ -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n\ "), stdout); fputs (_("\ -p, --profile=STRING Use specified stringprep profile instead\n\ Valid stringprep profiles: Nameprep\n\ iSCSI Nodeprep Resourceprep trace SASLprep\n\ "), stdout); fputs (_("\ --debug Print debugging information\n\ --quiet Silent operation\n\ "), stdout); emit_bug_reporting_address (); } exit (status); } int main (int argc, char *argv[]) { struct gengetopt_args_info args_info; char *line = NULL; size_t linelen = 0; char *p, *r; uint32_t *q; unsigned cmdn = 0; int rc; setlocale (LC_ALL, ""); set_program_name (argv[0]); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); if (cmdline_parser (argc, argv, &args_info) != 0) usage (EXIT_FAILURE); if (args_info.version_given) { version_etc (stdout, "idn", PACKAGE_NAME, VERSION, "Simon Josefsson", (char *) NULL); return EXIT_SUCCESS; } if (args_info.help_given) usage (EXIT_SUCCESS); /* Backwards compatibility: -n has always been the documented short form for --nfkc but, before v1.10, -k was the implemented short form. We now accept both to avoid documentation changes. */ if (args_info.hidden_nfkc_given) args_info.nfkc_given = 1; if (!args_info.stringprep_given && !args_info.punycode_encode_given && !args_info.punycode_decode_given && !args_info.idna_to_ascii_given && !args_info.idna_to_unicode_given && !args_info.nfkc_given) args_info.idna_to_ascii_given = 1; if ((args_info.stringprep_given ? 1 : 0) + (args_info.punycode_encode_given ? 1 : 0) + (args_info.punycode_decode_given ? 1 : 0) + (args_info.idna_to_ascii_given ? 1 : 0) + (args_info.idna_to_unicode_given ? 1 : 0) + (args_info.nfkc_given ? 1 : 0) != 1) { error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified")); usage (EXIT_FAILURE); } if (!args_info.quiet_given && args_info.inputs_num == 0 && isatty (fileno (stdin))) fprintf (stderr, "%s %s\n" GREETING, PACKAGE, VERSION); if (args_info.debug_given) fprintf (stderr, _("Charset: %s\n"), stringprep_locale_charset ()); if (!args_info.quiet_given && args_info.inputs_num == 0 && isatty (fileno (stdin))) fprintf (stderr, _("Type each input string on a line by itself, " "terminated by a newline character.\n")); do { if (cmdn < args_info.inputs_num) line = strdup (args_info.inputs[cmdn++]); else if (getline (&line, &linelen, stdin) == -1) { if (feof (stdin)) break; error (EXIT_FAILURE, errno, _("input error")); } if (strlen (line) > 0) if (line[strlen (line) - 1] == '\n') line[strlen (line) - 1] = '\0'; if (args_info.stringprep_given) { p = stringprep_locale_to_utf8 (line); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, NULL); if (!q) { free (p); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } free (q); rc = stringprep_profile (p, &r, args_info.profile_given ? args_info.profile_arg : "Nameprep", 0); free (p); if (rc != STRINGPREP_OK) error (EXIT_FAILURE, 0, _("stringprep_profile: %s"), stringprep_strerror (rc)); q = stringprep_utf8_to_ucs4 (r, -1, NULL); if (!q) { free (r); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); } free (q); p = stringprep_utf8_to_locale (r); free (r); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.punycode_encode_given) { char encbuf[BUFSIZ]; size_t len, len2; p = stringprep_locale_to_utf8 (line); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, &len); free (p); if (!q) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); if (args_info.debug_given) { size_t i; for (i = 0; i < len; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } len2 = BUFSIZ - 1; rc = punycode_encode (len, q, NULL, &len2, encbuf); free (q); if (rc != PUNYCODE_SUCCESS) error (EXIT_FAILURE, 0, _("punycode_encode: %s"), punycode_strerror (rc)); encbuf[len2] = '\0'; p = stringprep_utf8_to_locale (encbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.punycode_decode_given) { size_t len; len = BUFSIZ; q = (uint32_t *) malloc (len * sizeof (q[0])); if (!q) error (EXIT_FAILURE, ENOMEM, N_("malloc")); rc = punycode_decode (strlen (line), line, &len, q, NULL); if (rc != PUNYCODE_SUCCESS) { free (q); error (EXIT_FAILURE, 0, _("punycode_decode: %s"), punycode_strerror (rc)); } if (args_info.debug_given) { size_t i; for (i = 0; i < len; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); } q[len] = 0; r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL); free (q); if (!r) error (EXIT_FAILURE, 0, _("could not convert from UCS-4 to UTF-8")); p = stringprep_utf8_to_locale (r); free (r); if (!r) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.idna_to_ascii_given) { p = stringprep_locale_to_utf8 (line); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, NULL); free (p); if (!q) error (EXIT_FAILURE, 0, _("could not convert from UCS-4 to UTF-8")); if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } rc = idna_to_ascii_4z (q, &p, (args_info.allow_unassigned_given ? IDNA_ALLOW_UNASSIGNED : 0) | (args_info.usestd3asciirules_given ? IDNA_USE_STD3_ASCII_RULES : 0)); free (q); if (rc != IDNA_SUCCESS) error (EXIT_FAILURE, 0, _("idna_to_ascii_4z: %s"), idna_strerror (rc)); #ifdef WITH_TLD if (args_info.tld_flag && !args_info.no_tld_flag) { size_t errpos; rc = idna_to_unicode_8z4z (p, &q, (args_info.allow_unassigned_given ? IDNA_ALLOW_UNASSIGNED : 0) | (args_info.usestd3asciirules_given ? IDNA_USE_STD3_ASCII_RULES : 0)); if (rc != IDNA_SUCCESS) error (EXIT_FAILURE, 0, _("idna_to_unicode_8z4z (TLD): %s"), idna_strerror (rc)); if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "tld[%lu] = U+%04x\n", (unsigned long) i, q[i]); } rc = tld_check_4z (q, &errpos, NULL); free (q); if (rc == TLD_INVALID) error (EXIT_FAILURE, 0, _("tld_check_4z (position %lu): %s"), (unsigned long) errpos, tld_strerror (rc)); if (rc != TLD_SUCCESS) error (EXIT_FAILURE, 0, _("tld_check_4z: %s"), tld_strerror (rc)); } #endif if (args_info.debug_given) { size_t i; for (i = 0; p[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, (unsigned) p[i]); } fprintf (stdout, "%s\n", p); free (p); } if (args_info.idna_to_unicode_given) { p = stringprep_locale_to_utf8 (line); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, NULL); if (!q) { free (p); error (EXIT_FAILURE, 0, _("could not convert from UCS-4 to UTF-8")); } if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } free (q); rc = idna_to_unicode_8z4z (p, &q, (args_info.allow_unassigned_given ? IDNA_ALLOW_UNASSIGNED : 0) | (args_info.usestd3asciirules_given ? IDNA_USE_STD3_ASCII_RULES : 0)); free (p); if (rc != IDNA_SUCCESS) error (EXIT_FAILURE, 0, _("idna_to_unicode_8z4z: %s"), idna_strerror (rc)); if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); } #ifdef WITH_TLD if (args_info.tld_flag) { size_t errpos; rc = tld_check_4z (q, &errpos, NULL); if (rc == TLD_INVALID) { free (q); error (EXIT_FAILURE, 0, _("tld_check_4z (position %lu): %s"), (unsigned long) errpos, tld_strerror (rc)); } if (rc != TLD_SUCCESS) { free (q); error (EXIT_FAILURE, 0, _("tld_check_4z: %s"), tld_strerror (rc)); } } #endif r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL); free (q); if (!r) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); p = stringprep_utf8_to_locale (r); free (r); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.nfkc_given) { p = stringprep_locale_to_utf8 (line); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); if (args_info.debug_given) { size_t i; q = stringprep_utf8_to_ucs4 (p, -1, NULL); if (!q) { free (p); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); free (q); } r = stringprep_utf8_nfkc_normalize (p, -1); free (p); if (!r) error (EXIT_FAILURE, 0, _("could not do NFKC normalization")); if (args_info.debug_given) { size_t i; q = stringprep_utf8_to_ucs4 (r, -1, NULL); if (!q) { free (r); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } for (i = 0; q[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); free (q); } p = stringprep_utf8_to_locale (r); free (r); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } fflush (stdout); } while (!feof (stdin) && !ferror (stdin) && (args_info.inputs_num == 0 || cmdn < args_info.inputs_num)); free (line); return EXIT_SUCCESS; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/idna.el�����������������������������������������������������������������������������0000644�0000000�0000000�00000014500�14076271517�011633� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������;;; idna.el --- Internationalizing Domain Names in Applications. ;; Copyright (C) 2003-2021 Simon Josefsson ;; Keywords: idna, idn, domain name, internationalization ;; This file is part of GNU Libidn. ;; 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 3 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, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; A simple wrapper around the command line "idn" utility in GNU ;; Libidn to make IDNA ToASCII and ToUnicode operations available in ;; Emacs. ;; Example: ;; ;; (idna-to-ascii "räksmörgås.gnu.org") ;; => "xn--rksmrgs-5wao1o.gnu.org" ;; ;; (idna-to-ascii "www.gnu.org") ;; => "www.gnu.org" ;; ;; (idna-to-unicode "xn--rksmrgs-5wao1o.gnu.org") ;; => "räksmörgås.gnu.org" ;; ;; (idna-to-unicode "www.gnu.org") ;; => "www.gnu.org" ;; Todo: Support AllowUnassigned and UseSTD3ASCIIRules somehow? ;; This package is useless unless your emacs has at least partial ;; support for the UTF-8 coding system. ;; Report bugs to bug-libidn@gnu.org. ;;; Code: (defgroup idna nil "Internationalizing Domain Names in Applications.") (defcustom idna-program "idn" "Name of the GNU Libidn \"idn\" application." :type 'string :group 'idna) (defcustom idna-environment '("CHARSET=UTF-8") "List of environment variable definitions prepended to `process-environment'." :type '(repeat string) :group 'idna) (defcustom idna-to-ascii-parameters '("--quiet" "--idna-to-ascii" "--usestd3asciirules") "Parameters passed to `idna-program' to invoke IDNA ToASCII mode." :type '(repeat string) :group 'idna) (defcustom idna-to-unicode-parameters '("--quiet" "--idna-to-unicode" "--usestd3asciirules") "Parameters passed `idna-program' to invoke IDNA ToUnicode mode." :type '(repeat string) :group 'idna) ;; Internal process handling: (defvar idna-to-ascii-process nil "Internal variable holding process for ToASCII.") (defvar idna-to-ascii-response nil "Internal variable holding response data received from ToASCII process.") (defun idna-to-ascii-response-clear () (setq idna-to-ascii-response nil)) (defun idna-to-ascii-response () (while (and (eq (process-status idna-to-ascii-process) 'run) (null idna-to-ascii-response)) (accept-process-output idna-to-ascii-process 1)) idna-to-ascii-response) (defun idna-to-ascii-filter (process string) (setq idna-to-ascii-response (concat idna-to-ascii-response string))) (defun idna-to-ascii-process () (if (and idna-to-ascii-process (eq (process-status idna-to-ascii-process) 'run)) idna-to-ascii-process (if idna-to-ascii-process (condition-case () (kill-process idna-to-ascii-process) (error))) (when (setq idna-to-ascii-process (let ((process-environment (append idna-environment process-environment))) (apply 'start-process "idna" nil idna-program idna-to-ascii-parameters))) (set-process-filter idna-to-ascii-process 'idna-to-ascii-filter) (set-process-coding-system idna-to-ascii-process 'utf-8 'utf-8) (process-kill-without-query idna-to-ascii-process)) idna-to-ascii-process)) (defvar idna-to-unicode-process nil "Internal variable holding process for ToASCII.") (defvar idna-to-unicode-response nil "Internal variable holding response data received from ToASCII process.") (defun idna-to-unicode-response-clear () (setq idna-to-unicode-response nil)) (defun idna-to-unicode-response () (while (and (eq (process-status idna-to-unicode-process) 'run) (null idna-to-unicode-response)) (accept-process-output idna-to-unicode-process 1)) idna-to-unicode-response) (defun idna-to-unicode-filter (process string) (setq idna-to-unicode-response (concat idna-to-unicode-response string))) (defun idna-to-unicode-process () (if (and idna-to-unicode-process (eq (process-status idna-to-unicode-process) 'run)) idna-to-unicode-process (if idna-to-unicode-process (condition-case () (kill-process idna-to-unicode-process) (error))) (when (setq idna-to-unicode-process (let ((process-environment (append idna-environment process-environment))) (apply 'start-process "idna" nil idna-program idna-to-unicode-parameters))) (set-process-filter idna-to-unicode-process 'idna-to-unicode-filter) (set-process-coding-system idna-to-unicode-process 'utf-8 'utf-8) (process-kill-without-query idna-to-unicode-process)) idna-to-unicode-process)) ;; IDNA Elisp API: (defun idna-to-ascii (str) "Returns an ASCII Compatible Encoding (ACE) of STR. It is computed by the IDNA ToASCII operation, after converting the input to UTF-8." (let ((proc (idna-to-ascii-process)) string) (if (null proc) (error "Cannot start idn application (to-ascii)") (idna-to-ascii-response-clear) (process-send-string proc (concat str "\n")) (setq string (idna-to-ascii-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun idna-to-unicode (str) "Returns a possibly multibyte string after decoding STR. It is computed by the IDNA ToUnicode operation." (let ((proc (idna-to-unicode-process)) string) (if (null proc) (error "Cannot start idn application (to-unicode)") (idna-to-unicode-response-clear) (process-send-string proc (concat str "\n")) (setq string (idna-to-unicode-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun idna-shutdown () "Kill the IDNA related processes." (interactive) (if (and idna-to-ascii-process (eq (process-status idna-to-ascii-process) 'run)) (kill-process idna-to-ascii-process)) (if (and idna-to-unicode-process (eq (process-status idna-to-unicode-process) 'run)) (kill-process idna-to-unicode-process))) (provide 'idna) ;;; idna.el ends here ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000177542�14076273733�012465� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = idn$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_java_options.m4 \ $(top_srcdir)/m4/ax_prog_jar.m4 \ $(top_srcdir)/m4/ax_prog_javac.m4 \ $(top_srcdir)/m4/ax_prog_javac_works.m4 \ $(top_srcdir)/m4/ax_prog_javadoc.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/lib/gl/m4/__inline.m4 \ $(top_srcdir)/lib/gl/m4/free.m4 \ $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/lib/gl/m4/iconv.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/langinfo_h.m4 \ $(top_srcdir)/lib/gl/m4/lib-ld.m4 \ $(top_srcdir)/lib/gl/m4/lib-link.m4 \ $(top_srcdir)/lib/gl/m4/lib-prefix.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/stdlib_h.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 \ $(top_srcdir)/gl/m4/absolute-header.m4 \ $(top_srcdir)/gl/m4/alloca.m4 $(top_srcdir)/gl/m4/autobuild.m4 \ $(top_srcdir)/gl/m4/close.m4 $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 \ $(top_srcdir)/gl/m4/double-slash-root.m4 \ $(top_srcdir)/gl/m4/dup2.m4 $(top_srcdir)/gl/m4/eealloc.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl-o.m4 $(top_srcdir)/gl/m4/fcntl.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fstat.m4 \ $(top_srcdir)/gl/m4/getdelim.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getline.m4 $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/getprogname.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/largefile.m4 \ $(top_srcdir)/gl/m4/ld-output-def.m4 \ $(top_srcdir)/gl/m4/ld-version-script.m4 \ $(top_srcdir)/gl/m4/limits-h.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open-cloexec.m4 \ $(top_srcdir)/gl/m4/open-slash.m4 $(top_srcdir)/gl/m4/open.m4 \ $(top_srcdir)/gl/m4/pathmax.m4 $(top_srcdir)/gl/m4/pid_t.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 \ $(top_srcdir)/gl/m4/stat-time.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/std-gnu11.m4 $(top_srcdir)/gl/m4/stdarg.m4 \ $(top_srcdir)/gl/m4/stdbool.m4 $(top_srcdir)/gl/m4/stddef_h.m4 \ $(top_srcdir)/gl/m4/stdint.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/visibility.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_t.m4 \ $(top_srcdir)/gl/m4/wint_t.m4 $(top_srcdir)/gl/m4/year2038.m4 \ $(top_srcdir)/gl/m4/zzgnulib.m4 \ $(top_srcdir)/lib/m4/gettext.m4 \ $(top_srcdir)/lib/m4/gtk-doc.m4 \ $(top_srcdir)/lib/m4/intlmacosx.m4 \ $(top_srcdir)/lib/m4/libtool.m4 \ $(top_srcdir)/lib/m4/ltoptions.m4 \ $(top_srcdir)/lib/m4/ltsugar.m4 \ $(top_srcdir)/lib/m4/ltversion.m4 \ $(top_srcdir)/lib/m4/lt~obsolete.m4 \ $(top_srcdir)/lib/m4/nls.m4 $(top_srcdir)/lib/m4/po.m4 \ $(top_srcdir)/lib/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_lisp_DATA) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(lispdir)" PROGRAMS = $(bin_PROGRAMS) LTLIBRARIES = $(noinst_LTLIBRARIES) libidn_cmd_la_DEPENDENCIES = ../gl/libgnu.la am_libidn_cmd_la_OBJECTS = libidn_cmd_la-idn_cmd.lo libidn_cmd_la_OBJECTS = $(am_libidn_cmd_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libidn_cmd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libidn_cmd_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_idn_OBJECTS = idn.$(OBJEXT) idn_OBJECTS = $(am_idn_OBJECTS) am__DEPENDENCIES_1 = idn_DEPENDENCIES = libidn_cmd.la ../lib/libidn.la ../gl/libgnu.la \ $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/idn.Po \ ./$(DEPDIR)/libidn_cmd_la-idn_cmd.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libidn_cmd_la_SOURCES) $(idn_SOURCES) DIST_SOURCES = $(libidn_cmd_la_SOURCES) $(idn_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } DATA = $(dist_lisp_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AM_VALGRINDFLAGS = @AM_VALGRINDFLAGS@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFAULT_VALGRINDFLAGS = @DEFAULT_VALGRINDFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ GL_GNULIB_DUP = @GL_GNULIB_DUP@ GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ GL_GNULIB_GETC = @GL_GNULIB_GETC@ GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ GL_GNULIB_LINK = @GL_GNULIB_LINK@ GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ GL_GNULIB_READ = @GL_GNULIB_READ@ GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ GL_GNULIB_STAT = @GL_GNULIB_STAT@ GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_LGL_GNULIB_ACCESS = @GL_LGL_GNULIB_ACCESS@ GL_LGL_GNULIB_ALIGNED_ALLOC = @GL_LGL_GNULIB_ALIGNED_ALLOC@ GL_LGL_GNULIB_ATOLL = @GL_LGL_GNULIB_ATOLL@ GL_LGL_GNULIB_CALLOC_POSIX = @GL_LGL_GNULIB_CALLOC_POSIX@ GL_LGL_GNULIB_CANONICALIZE_FILE_NAME = @GL_LGL_GNULIB_CANONICALIZE_FILE_NAME@ GL_LGL_GNULIB_CHDIR = @GL_LGL_GNULIB_CHDIR@ GL_LGL_GNULIB_CHOWN = @GL_LGL_GNULIB_CHOWN@ GL_LGL_GNULIB_CLOSE = @GL_LGL_GNULIB_CLOSE@ GL_LGL_GNULIB_COPY_FILE_RANGE = @GL_LGL_GNULIB_COPY_FILE_RANGE@ GL_LGL_GNULIB_DUP = @GL_LGL_GNULIB_DUP@ GL_LGL_GNULIB_DUP2 = @GL_LGL_GNULIB_DUP2@ GL_LGL_GNULIB_DUP3 = @GL_LGL_GNULIB_DUP3@ GL_LGL_GNULIB_ENVIRON = @GL_LGL_GNULIB_ENVIRON@ GL_LGL_GNULIB_EUIDACCESS = @GL_LGL_GNULIB_EUIDACCESS@ GL_LGL_GNULIB_EXECL = @GL_LGL_GNULIB_EXECL@ GL_LGL_GNULIB_EXECLE = @GL_LGL_GNULIB_EXECLE@ GL_LGL_GNULIB_EXECLP = @GL_LGL_GNULIB_EXECLP@ GL_LGL_GNULIB_EXECV = @GL_LGL_GNULIB_EXECV@ GL_LGL_GNULIB_EXECVE = @GL_LGL_GNULIB_EXECVE@ GL_LGL_GNULIB_EXECVP = @GL_LGL_GNULIB_EXECVP@ GL_LGL_GNULIB_EXECVPE = @GL_LGL_GNULIB_EXECVPE@ GL_LGL_GNULIB_EXPLICIT_BZERO = @GL_LGL_GNULIB_EXPLICIT_BZERO@ GL_LGL_GNULIB_FACCESSAT = @GL_LGL_GNULIB_FACCESSAT@ GL_LGL_GNULIB_FCHDIR = @GL_LGL_GNULIB_FCHDIR@ GL_LGL_GNULIB_FCHOWNAT = @GL_LGL_GNULIB_FCHOWNAT@ GL_LGL_GNULIB_FDATASYNC = @GL_LGL_GNULIB_FDATASYNC@ GL_LGL_GNULIB_FFSL = @GL_LGL_GNULIB_FFSL@ GL_LGL_GNULIB_FFSLL = @GL_LGL_GNULIB_FFSLL@ GL_LGL_GNULIB_FREE_POSIX = @GL_LGL_GNULIB_FREE_POSIX@ GL_LGL_GNULIB_FSYNC = @GL_LGL_GNULIB_FSYNC@ GL_LGL_GNULIB_FTRUNCATE = @GL_LGL_GNULIB_FTRUNCATE@ GL_LGL_GNULIB_GETCWD = @GL_LGL_GNULIB_GETCWD@ GL_LGL_GNULIB_GETDOMAINNAME = @GL_LGL_GNULIB_GETDOMAINNAME@ GL_LGL_GNULIB_GETDTABLESIZE = @GL_LGL_GNULIB_GETDTABLESIZE@ GL_LGL_GNULIB_GETENTROPY = @GL_LGL_GNULIB_GETENTROPY@ GL_LGL_GNULIB_GETGROUPS = @GL_LGL_GNULIB_GETGROUPS@ GL_LGL_GNULIB_GETHOSTNAME = @GL_LGL_GNULIB_GETHOSTNAME@ GL_LGL_GNULIB_GETLOADAVG = @GL_LGL_GNULIB_GETLOADAVG@ GL_LGL_GNULIB_GETLOGIN = @GL_LGL_GNULIB_GETLOGIN@ GL_LGL_GNULIB_GETLOGIN_R = @GL_LGL_GNULIB_GETLOGIN_R@ GL_LGL_GNULIB_GETOPT_POSIX = @GL_LGL_GNULIB_GETOPT_POSIX@ GL_LGL_GNULIB_GETPAGESIZE = @GL_LGL_GNULIB_GETPAGESIZE@ GL_LGL_GNULIB_GETPASS = @GL_LGL_GNULIB_GETPASS@ GL_LGL_GNULIB_GETSUBOPT = @GL_LGL_GNULIB_GETSUBOPT@ GL_LGL_GNULIB_GETUSERSHELL = @GL_LGL_GNULIB_GETUSERSHELL@ GL_LGL_GNULIB_GRANTPT = @GL_LGL_GNULIB_GRANTPT@ GL_LGL_GNULIB_GROUP_MEMBER = @GL_LGL_GNULIB_GROUP_MEMBER@ GL_LGL_GNULIB_ICONV = @GL_LGL_GNULIB_ICONV@ GL_LGL_GNULIB_ISATTY = @GL_LGL_GNULIB_ISATTY@ GL_LGL_GNULIB_LCHOWN = @GL_LGL_GNULIB_LCHOWN@ GL_LGL_GNULIB_LINK = @GL_LGL_GNULIB_LINK@ GL_LGL_GNULIB_LINKAT = @GL_LGL_GNULIB_LINKAT@ GL_LGL_GNULIB_LSEEK = @GL_LGL_GNULIB_LSEEK@ GL_LGL_GNULIB_MALLOC_POSIX = @GL_LGL_GNULIB_MALLOC_POSIX@ GL_LGL_GNULIB_MBSCASECMP = @GL_LGL_GNULIB_MBSCASECMP@ GL_LGL_GNULIB_MBSCASESTR = @GL_LGL_GNULIB_MBSCASESTR@ GL_LGL_GNULIB_MBSCHR = @GL_LGL_GNULIB_MBSCHR@ GL_LGL_GNULIB_MBSCSPN = @GL_LGL_GNULIB_MBSCSPN@ GL_LGL_GNULIB_MBSLEN = @GL_LGL_GNULIB_MBSLEN@ GL_LGL_GNULIB_MBSNCASECMP = @GL_LGL_GNULIB_MBSNCASECMP@ GL_LGL_GNULIB_MBSNLEN = @GL_LGL_GNULIB_MBSNLEN@ GL_LGL_GNULIB_MBSPBRK = @GL_LGL_GNULIB_MBSPBRK@ GL_LGL_GNULIB_MBSPCASECMP = @GL_LGL_GNULIB_MBSPCASECMP@ GL_LGL_GNULIB_MBSRCHR = @GL_LGL_GNULIB_MBSRCHR@ GL_LGL_GNULIB_MBSSEP = @GL_LGL_GNULIB_MBSSEP@ GL_LGL_GNULIB_MBSSPN = @GL_LGL_GNULIB_MBSSPN@ GL_LGL_GNULIB_MBSSTR = @GL_LGL_GNULIB_MBSSTR@ GL_LGL_GNULIB_MBSTOK_R = @GL_LGL_GNULIB_MBSTOK_R@ GL_LGL_GNULIB_MBTOWC = @GL_LGL_GNULIB_MBTOWC@ GL_LGL_GNULIB_MDA_ACCESS = @GL_LGL_GNULIB_MDA_ACCESS@ GL_LGL_GNULIB_MDA_CHDIR = @GL_LGL_GNULIB_MDA_CHDIR@ GL_LGL_GNULIB_MDA_CLOSE = @GL_LGL_GNULIB_MDA_CLOSE@ GL_LGL_GNULIB_MDA_DUP = @GL_LGL_GNULIB_MDA_DUP@ GL_LGL_GNULIB_MDA_DUP2 = @GL_LGL_GNULIB_MDA_DUP2@ GL_LGL_GNULIB_MDA_ECVT = @GL_LGL_GNULIB_MDA_ECVT@ GL_LGL_GNULIB_MDA_EXECL = @GL_LGL_GNULIB_MDA_EXECL@ GL_LGL_GNULIB_MDA_EXECLE = @GL_LGL_GNULIB_MDA_EXECLE@ GL_LGL_GNULIB_MDA_EXECLP = @GL_LGL_GNULIB_MDA_EXECLP@ GL_LGL_GNULIB_MDA_EXECV = @GL_LGL_GNULIB_MDA_EXECV@ GL_LGL_GNULIB_MDA_EXECVE = @GL_LGL_GNULIB_MDA_EXECVE@ GL_LGL_GNULIB_MDA_EXECVP = @GL_LGL_GNULIB_MDA_EXECVP@ GL_LGL_GNULIB_MDA_EXECVPE = @GL_LGL_GNULIB_MDA_EXECVPE@ GL_LGL_GNULIB_MDA_FCVT = @GL_LGL_GNULIB_MDA_FCVT@ GL_LGL_GNULIB_MDA_GCVT = @GL_LGL_GNULIB_MDA_GCVT@ GL_LGL_GNULIB_MDA_GETCWD = @GL_LGL_GNULIB_MDA_GETCWD@ GL_LGL_GNULIB_MDA_GETPID = @GL_LGL_GNULIB_MDA_GETPID@ GL_LGL_GNULIB_MDA_ISATTY = @GL_LGL_GNULIB_MDA_ISATTY@ GL_LGL_GNULIB_MDA_LSEEK = @GL_LGL_GNULIB_MDA_LSEEK@ GL_LGL_GNULIB_MDA_MEMCCPY = @GL_LGL_GNULIB_MDA_MEMCCPY@ GL_LGL_GNULIB_MDA_MKTEMP = @GL_LGL_GNULIB_MDA_MKTEMP@ GL_LGL_GNULIB_MDA_PUTENV = @GL_LGL_GNULIB_MDA_PUTENV@ GL_LGL_GNULIB_MDA_READ = @GL_LGL_GNULIB_MDA_READ@ GL_LGL_GNULIB_MDA_RMDIR = @GL_LGL_GNULIB_MDA_RMDIR@ GL_LGL_GNULIB_MDA_STRDUP = @GL_LGL_GNULIB_MDA_STRDUP@ GL_LGL_GNULIB_MDA_SWAB = @GL_LGL_GNULIB_MDA_SWAB@ GL_LGL_GNULIB_MDA_UNLINK = @GL_LGL_GNULIB_MDA_UNLINK@ GL_LGL_GNULIB_MDA_WRITE = @GL_LGL_GNULIB_MDA_WRITE@ GL_LGL_GNULIB_MEMCHR = @GL_LGL_GNULIB_MEMCHR@ GL_LGL_GNULIB_MEMMEM = @GL_LGL_GNULIB_MEMMEM@ GL_LGL_GNULIB_MEMPCPY = @GL_LGL_GNULIB_MEMPCPY@ GL_LGL_GNULIB_MEMRCHR = @GL_LGL_GNULIB_MEMRCHR@ GL_LGL_GNULIB_MKDTEMP = @GL_LGL_GNULIB_MKDTEMP@ GL_LGL_GNULIB_MKOSTEMP = @GL_LGL_GNULIB_MKOSTEMP@ GL_LGL_GNULIB_MKOSTEMPS = @GL_LGL_GNULIB_MKOSTEMPS@ GL_LGL_GNULIB_MKSTEMP = @GL_LGL_GNULIB_MKSTEMP@ GL_LGL_GNULIB_MKSTEMPS = @GL_LGL_GNULIB_MKSTEMPS@ GL_LGL_GNULIB_NL_LANGINFO = @GL_LGL_GNULIB_NL_LANGINFO@ GL_LGL_GNULIB_PIPE = @GL_LGL_GNULIB_PIPE@ GL_LGL_GNULIB_PIPE2 = @GL_LGL_GNULIB_PIPE2@ GL_LGL_GNULIB_POSIX_MEMALIGN = @GL_LGL_GNULIB_POSIX_MEMALIGN@ GL_LGL_GNULIB_POSIX_OPENPT = @GL_LGL_GNULIB_POSIX_OPENPT@ GL_LGL_GNULIB_PREAD = @GL_LGL_GNULIB_PREAD@ GL_LGL_GNULIB_PTSNAME = @GL_LGL_GNULIB_PTSNAME@ GL_LGL_GNULIB_PTSNAME_R = @GL_LGL_GNULIB_PTSNAME_R@ GL_LGL_GNULIB_PUTENV = @GL_LGL_GNULIB_PUTENV@ GL_LGL_GNULIB_PWRITE = @GL_LGL_GNULIB_PWRITE@ GL_LGL_GNULIB_QSORT_R = @GL_LGL_GNULIB_QSORT_R@ GL_LGL_GNULIB_RANDOM = @GL_LGL_GNULIB_RANDOM@ GL_LGL_GNULIB_RANDOM_R = @GL_LGL_GNULIB_RANDOM_R@ GL_LGL_GNULIB_RAWMEMCHR = @GL_LGL_GNULIB_RAWMEMCHR@ GL_LGL_GNULIB_READ = @GL_LGL_GNULIB_READ@ GL_LGL_GNULIB_READLINK = @GL_LGL_GNULIB_READLINK@ GL_LGL_GNULIB_READLINKAT = @GL_LGL_GNULIB_READLINKAT@ GL_LGL_GNULIB_REALLOCARRAY = @GL_LGL_GNULIB_REALLOCARRAY@ GL_LGL_GNULIB_REALLOC_POSIX = @GL_LGL_GNULIB_REALLOC_POSIX@ GL_LGL_GNULIB_REALPATH = @GL_LGL_GNULIB_REALPATH@ GL_LGL_GNULIB_RMDIR = @GL_LGL_GNULIB_RMDIR@ GL_LGL_GNULIB_RPMATCH = @GL_LGL_GNULIB_RPMATCH@ GL_LGL_GNULIB_SECURE_GETENV = @GL_LGL_GNULIB_SECURE_GETENV@ GL_LGL_GNULIB_SETENV = @GL_LGL_GNULIB_SETENV@ GL_LGL_GNULIB_SETHOSTNAME = @GL_LGL_GNULIB_SETHOSTNAME@ GL_LGL_GNULIB_SIGABBREV_NP = @GL_LGL_GNULIB_SIGABBREV_NP@ GL_LGL_GNULIB_SIGDESCR_NP = @GL_LGL_GNULIB_SIGDESCR_NP@ GL_LGL_GNULIB_SLEEP = @GL_LGL_GNULIB_SLEEP@ GL_LGL_GNULIB_STPCPY = @GL_LGL_GNULIB_STPCPY@ GL_LGL_GNULIB_STPNCPY = @GL_LGL_GNULIB_STPNCPY@ GL_LGL_GNULIB_STRCASESTR = @GL_LGL_GNULIB_STRCASESTR@ GL_LGL_GNULIB_STRCHRNUL = @GL_LGL_GNULIB_STRCHRNUL@ GL_LGL_GNULIB_STRDUP = @GL_LGL_GNULIB_STRDUP@ GL_LGL_GNULIB_STRERROR = @GL_LGL_GNULIB_STRERROR@ GL_LGL_GNULIB_STRERRORNAME_NP = @GL_LGL_GNULIB_STRERRORNAME_NP@ GL_LGL_GNULIB_STRERROR_R = @GL_LGL_GNULIB_STRERROR_R@ GL_LGL_GNULIB_STRNCAT = @GL_LGL_GNULIB_STRNCAT@ GL_LGL_GNULIB_STRNDUP = @GL_LGL_GNULIB_STRNDUP@ GL_LGL_GNULIB_STRNLEN = @GL_LGL_GNULIB_STRNLEN@ GL_LGL_GNULIB_STRPBRK = @GL_LGL_GNULIB_STRPBRK@ GL_LGL_GNULIB_STRSEP = @GL_LGL_GNULIB_STRSEP@ GL_LGL_GNULIB_STRSIGNAL = @GL_LGL_GNULIB_STRSIGNAL@ GL_LGL_GNULIB_STRSTR = @GL_LGL_GNULIB_STRSTR@ GL_LGL_GNULIB_STRTOD = @GL_LGL_GNULIB_STRTOD@ GL_LGL_GNULIB_STRTOK_R = @GL_LGL_GNULIB_STRTOK_R@ GL_LGL_GNULIB_STRTOL = @GL_LGL_GNULIB_STRTOL@ GL_LGL_GNULIB_STRTOLD = @GL_LGL_GNULIB_STRTOLD@ GL_LGL_GNULIB_STRTOLL = @GL_LGL_GNULIB_STRTOLL@ GL_LGL_GNULIB_STRTOUL = @GL_LGL_GNULIB_STRTOUL@ GL_LGL_GNULIB_STRTOULL = @GL_LGL_GNULIB_STRTOULL@ GL_LGL_GNULIB_STRVERSCMP = @GL_LGL_GNULIB_STRVERSCMP@ GL_LGL_GNULIB_SYMLINK = @GL_LGL_GNULIB_SYMLINK@ GL_LGL_GNULIB_SYMLINKAT = @GL_LGL_GNULIB_SYMLINKAT@ GL_LGL_GNULIB_SYSTEM_POSIX = @GL_LGL_GNULIB_SYSTEM_POSIX@ GL_LGL_GNULIB_TRUNCATE = @GL_LGL_GNULIB_TRUNCATE@ GL_LGL_GNULIB_TTYNAME_R = @GL_LGL_GNULIB_TTYNAME_R@ GL_LGL_GNULIB_UNISTD_H_GETOPT = @GL_LGL_GNULIB_UNISTD_H_GETOPT@ GL_LGL_GNULIB_UNISTD_H_NONBLOCKING = @GL_LGL_GNULIB_UNISTD_H_NONBLOCKING@ GL_LGL_GNULIB_UNISTD_H_SIGPIPE = @GL_LGL_GNULIB_UNISTD_H_SIGPIPE@ GL_LGL_GNULIB_UNLINK = @GL_LGL_GNULIB_UNLINK@ GL_LGL_GNULIB_UNLINKAT = @GL_LGL_GNULIB_UNLINKAT@ GL_LGL_GNULIB_UNLOCKPT = @GL_LGL_GNULIB_UNLOCKPT@ GL_LGL_GNULIB_UNSETENV = @GL_LGL_GNULIB_UNSETENV@ GL_LGL_GNULIB_USLEEP = @GL_LGL_GNULIB_USLEEP@ GL_LGL_GNULIB_WCTOMB = @GL_LGL_GNULIB_WCTOMB@ GL_LGL_GNULIB_WRITE = @GL_LGL_GNULIB_WRITE@ GL_LGL_GNULIB__EXIT = @GL_LGL_GNULIB__EXIT@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ HAVE_CSC = @HAVE_CSC@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXECVPE = @HAVE_EXECVPE@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETENTROPY = @HAVE_GETENTROPY@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETUMASK = @HAVE_GETUMASK@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_INITSTATE = @HAVE_INITSTATE@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBTOWC = @HAVE_MBTOWC@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SETSTATE = @HAVE_SETSTATE@ HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOL = @HAVE_STRTOL@ HAVE_STRTOLD = @HAVE_STRTOLD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOUL = @HAVE_STRTOUL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ JAVA = @JAVA@ JAVAC = @JAVAC@ JAVACFLAGS = @JAVACFLAGS@ JAVADOC = @JAVADOC@ JAVAFLAGS = @JAVAFLAGS@ JAVAPREFIX = @JAVAPREFIX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOG_VALGRIND = @LOG_VALGRIND@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACCESS = @REPLACE_ACCESS@ REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CREAT = @REPLACE_CREAT@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_EXECL = @REPLACE_EXECL@ REPLACE_EXECLE = @REPLACE_EXECLE@ REPLACE_EXECLP = @REPLACE_EXECLP@ REPLACE_EXECV = @REPLACE_EXECV@ REPLACE_EXECVE = @REPLACE_EXECVE@ REPLACE_EXECVP = @REPLACE_EXECVP@ REPLACE_EXECVPE = @REPLACE_EXECVPE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FFSLL = @REPLACE_FFSLL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREE = @REPLACE_FREE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_INITSTATE = @REPLACE_INITSTATE@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKNODAT = @REPLACE_MKNODAT@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RANDOM = @REPLACE_RANDOM@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETSTATE = @REPLACE_SETSTATE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOL = @REPLACE_STRTOL@ REPLACE_STRTOLD = @REPLACE_STRTOLD@ REPLACE_STRTOLL = @REPLACE_STRTOLL@ REPLACE_STRTOUL = @REPLACE_STRTOUL@ REPLACE_STRTOULL = @REPLACE_STRTOULL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VALGRINDFLAGS = @VALGRINDFLAGS@ VALGRIND_PROGRAM = @VALGRIND_PROGRAM@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = $(datadir)/locale localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl \ -DLOCALEDIR=\"$(localedir)\" dist_lisp_DATA = punycode.el idna.el idn_SOURCES = idn.c idn_LDADD = libidn_cmd.la ../lib/libidn.la ../gl/libgnu.la $(LTLIBINTL) noinst_LTLIBRARIES = libidn_cmd.la libidn_cmd_la_SOURCES = idn.ggo idn_cmd.c idn_cmd.h libidn_cmd_la_LIBADD = ../gl/libgnu.la libidn_cmd_la_CFLAGS = BUILT_SOURCES = idn_cmd.c idn_cmd.h MAINTAINERCLEANFILES = $(BUILT_SOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libidn_cmd.la: $(libidn_cmd_la_OBJECTS) $(libidn_cmd_la_DEPENDENCIES) $(EXTRA_libidn_cmd_la_DEPENDENCIES) $(AM_V_CCLD)$(libidn_cmd_la_LINK) $(libidn_cmd_la_OBJECTS) $(libidn_cmd_la_LIBADD) $(LIBS) idn$(EXEEXT): $(idn_OBJECTS) $(idn_DEPENDENCIES) $(EXTRA_idn_DEPENDENCIES) @rm -f idn$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idn_OBJECTS) $(idn_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libidn_cmd_la-idn_cmd.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libidn_cmd_la-idn_cmd.lo: idn_cmd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libidn_cmd_la_CFLAGS) $(CFLAGS) -MT libidn_cmd_la-idn_cmd.lo -MD -MP -MF $(DEPDIR)/libidn_cmd_la-idn_cmd.Tpo -c -o libidn_cmd_la-idn_cmd.lo `test -f 'idn_cmd.c' || echo '$(srcdir)/'`idn_cmd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libidn_cmd_la-idn_cmd.Tpo $(DEPDIR)/libidn_cmd_la-idn_cmd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='idn_cmd.c' object='libidn_cmd_la-idn_cmd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libidn_cmd_la_CFLAGS) $(CFLAGS) -c -o libidn_cmd_la-idn_cmd.lo `test -f 'idn_cmd.c' || echo '$(srcdir)/'`idn_cmd.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_lispDATA: $(dist_lisp_DATA) @$(NORMAL_INSTALL) @list='$(dist_lisp_DATA)'; test -n "$(lispdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(lispdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(lispdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(lispdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(lispdir)" || exit $$?; \ done uninstall-dist_lispDATA: @$(NORMAL_UNINSTALL) @list='$(dist_lisp_DATA)'; test -n "$(lispdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(lispdir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(lispdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/idn.Po -rm -f ./$(DEPDIR)/libidn_cmd_la-idn_cmd.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_lispDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/idn.Po -rm -f ./$(DEPDIR)/libidn_cmd_la-idn_cmd.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_lispDATA .MAKE: all check install install-am install-exec install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-dist_lispDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_lispDATA .PRECIOUS: Makefile idn.c: $(BUILT_SOURCES) # pattern rule (%) needed for parallel make (-j) idn_cmd%c idn_cmd%h: idn.ggo Makefile.am gengetopt --unamed-opts \ --no-handle-version --no-handle-error --no-handle-help \ --set-package="idn" \ --input $^ --file-name idn_cmd perl -pi -e 's/\[OPTIONS\]/\[OPTION\]/g' idn_cmd.c perl -pi -e 's/\[FILES\]/\[STRING\]/g' idn_cmd.c # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/idn_cmd.h���������������������������������������������������������������������������0000644�0000000�0000000�00000024136�14076273631�012151� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** @file idn_cmd.h * @brief The header file for the command line option parser * generated by GNU Gengetopt version 2.23 * http://www.gnu.org/software/gengetopt. * DO NOT modify this file, since it can be overwritten * @author GNU Gengetopt */ #ifndef IDN_CMD_H #define IDN_CMD_H /* If we use autoconf. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <stdio.h> /* for FILE */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifndef CMDLINE_PARSER_PACKAGE /** @brief the program name (used for printing errors) */ #define CMDLINE_PARSER_PACKAGE "idn" #endif #ifndef CMDLINE_PARSER_PACKAGE_NAME /** @brief the complete program name (used for help and version) */ #define CMDLINE_PARSER_PACKAGE_NAME "idn" #endif #ifndef CMDLINE_PARSER_VERSION /** @brief the program version */ #define CMDLINE_PARSER_VERSION VERSION #endif /** @brief Where the command line options are stored */ struct gengetopt_args_info { const char *help_help; /**< @brief Print help and exit help description. */ const char *full_help_help; /**< @brief Print help, including hidden options, and exit help description. */ const char *version_help; /**< @brief Print version and exit help description. */ const char *stringprep_help; /**< @brief Prepare string according to nameprep profile help description. */ const char *punycode_decode_help; /**< @brief Decode Punycode help description. */ const char *punycode_encode_help; /**< @brief Encode Punycode help description. */ const char *idna_to_ascii_help; /**< @brief Convert to ACE according to IDNA (default) help description. */ const char *idna_to_unicode_help; /**< @brief Convert from ACE according to IDNA help description. */ int allow_unassigned_flag; /**< @brief Toggle IDNA AllowUnassigned flag (default=off). */ const char *allow_unassigned_help; /**< @brief Toggle IDNA AllowUnassigned flag help description. */ int usestd3asciirules_flag; /**< @brief Toggle IDNA UseSTD3ASCIIRules flag (default=off). */ const char *usestd3asciirules_help; /**< @brief Toggle IDNA UseSTD3ASCIIRules flag help description. */ int tld_flag; /**< @brief Check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode (default=on). */ const char *tld_help; /**< @brief Check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode help description. */ int no_tld_flag; /**< @brief Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode (default=off). */ const char *no_tld_help; /**< @brief Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode help description. */ const char *nfkc_help; /**< @brief Normalize string according to Unicode v3.2 NFKC help description. */ const char *hidden_nfkc_help; /**< @brief Hidden parameter for backwards compatibility help description. */ char * profile_arg; /**< @brief Use specified stringprep profile instead Valid stringprep profiles are: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep. */ char * profile_orig; /**< @brief Use specified stringprep profile instead Valid stringprep profiles are: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep original value given at command line. */ const char *profile_help; /**< @brief Use specified stringprep profile instead Valid stringprep profiles are: Nameprep iSCSI Nodeprep Resourceprep trace SASLprep help description. */ int debug_flag; /**< @brief Print debugging information (default=off). */ const char *debug_help; /**< @brief Print debugging information help description. */ int quiet_flag; /**< @brief Silent operation (default=off). */ const char *quiet_help; /**< @brief Silent operation help description. */ unsigned int help_given ; /**< @brief Whether help was given. */ unsigned int full_help_given ; /**< @brief Whether full-help was given. */ unsigned int version_given ; /**< @brief Whether version was given. */ unsigned int stringprep_given ; /**< @brief Whether stringprep was given. */ unsigned int punycode_decode_given ; /**< @brief Whether punycode-decode was given. */ unsigned int punycode_encode_given ; /**< @brief Whether punycode-encode was given. */ unsigned int idna_to_ascii_given ; /**< @brief Whether idna-to-ascii was given. */ unsigned int idna_to_unicode_given ; /**< @brief Whether idna-to-unicode was given. */ unsigned int allow_unassigned_given ; /**< @brief Whether allow-unassigned was given. */ unsigned int usestd3asciirules_given ; /**< @brief Whether usestd3asciirules was given. */ unsigned int tld_given ; /**< @brief Whether tld was given. */ unsigned int no_tld_given ; /**< @brief Whether no-tld was given. */ unsigned int nfkc_given ; /**< @brief Whether nfkc was given. */ unsigned int hidden_nfkc_given ; /**< @brief Whether hidden-nfkc was given. */ unsigned int profile_given ; /**< @brief Whether profile was given. */ unsigned int debug_given ; /**< @brief Whether debug was given. */ unsigned int quiet_given ; /**< @brief Whether quiet was given. */ char **inputs ; /**< @brief unnamed options (options without names) */ unsigned inputs_num ; /**< @brief unnamed options number */ } ; /** @brief The additional parameters to pass to parser functions */ struct cmdline_parser_params { int override; /**< @brief whether to override possibly already present options (default 0) */ int initialize; /**< @brief whether to initialize the option structure gengetopt_args_info (default 1) */ int check_required; /**< @brief whether to check that all required options were provided (default 1) */ int check_ambiguity; /**< @brief whether to check for options already specified in the option structure gengetopt_args_info (default 0) */ int print_errors; /**< @brief whether getopt_long should print an error message for a bad option (default 1) */ } ; /** @brief the purpose string of the program */ extern const char *gengetopt_args_info_purpose; /** @brief the usage string of the program */ extern const char *gengetopt_args_info_usage; /** @brief the description string of the program */ extern const char *gengetopt_args_info_description; /** @brief all the lines making the help output */ extern const char *gengetopt_args_info_help[]; /** @brief all the lines making the full help output (including hidden options) */ extern const char *gengetopt_args_info_full_help[]; /** * The command line parser * @param argc the number of command line options * @param argv the command line options * @param args_info the structure where option information will be stored * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser (int argc, char **argv, struct gengetopt_args_info *args_info); /** * The command line parser (version with additional parameters - deprecated) * @param argc the number of command line options * @param argv the command line options * @param args_info the structure where option information will be stored * @param override whether to override possibly already present options * @param initialize whether to initialize the option structure my_args_info * @param check_required whether to check that all required options were provided * @return 0 if everything went fine, NON 0 if an error took place * @deprecated use cmdline_parser_ext() instead */ int cmdline_parser2 (int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required); /** * The command line parser (version with additional parameters) * @param argc the number of command line options * @param argv the command line options * @param args_info the structure where option information will be stored * @param params additional parameters for the parser * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser_ext (int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params); /** * Save the contents of the option struct into an already open FILE stream. * @param outfile the stream where to dump options * @param args_info the option struct to dump * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info); /** * Save the contents of the option struct into a (text) file. * This file can be read by the config file parser (if generated by gengetopt) * @param filename the file where to save * @param args_info the option struct to save * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info); /** * Print the help */ void cmdline_parser_print_help(void); /** * Print the full help (including hidden options) */ void cmdline_parser_print_full_help(void); /** * Print the version */ void cmdline_parser_print_version(void); /** * Initializes all the fields a cmdline_parser_params structure * to their default values * @param params the structure to initialize */ void cmdline_parser_params_init(struct cmdline_parser_params *params); /** * Allocates dynamically a cmdline_parser_params structure and initializes * all its fields to their default values * @return the created and initialized cmdline_parser_params structure */ struct cmdline_parser_params *cmdline_parser_params_create(void); /** * Initializes the passed gengetopt_args_info structure's fields * (also set default values for options that have a default) * @param args_info the structure to initialize */ void cmdline_parser_init (struct gengetopt_args_info *args_info); /** * Deallocates the string fields of the gengetopt_args_info structure * (but does not deallocate the structure itself) * @param args_info the structure to deallocate */ void cmdline_parser_free (struct gengetopt_args_info *args_info); /** * Checks that all the required options were specified * @param args_info the structure to check * @param prog_name the name of the program that will be used to print * possible errors * @return */ int cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* IDN_CMD_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/punycode.el�������������������������������������������������������������������������0000644�0000000�0000000�00000014172�14076271517�012553� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������;;; punycode.el --- An ASCII compatible Unicode encoding format. ;; Copyright (C) 2003-2021 Simon Josefsson ;; Keywords: punycode, idna, idn, unicode, encoding ;; This file is part of GNU Libidn. ;; 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 3 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, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; A simple wrapper around the command line "idn" utility in GNU ;; Libidn to make punycode operations available in Emacs. ;; Example: ;; ;; (punycode-encode "räksmörgås") ;; => "rksmrgs-5wao1o" ;; ;; (punycode-encode "foo") ;; => "foo-" ;; ;; (punycode-decode "rksmrgs-5wao1o") ;; => "räksmörgås" ;; ;; (punycode-decode "foo-") ;; => "foo" ;; This package is useless unless your emacs has at least partial ;; support for the UTF-8 coding system. ;; Report bugs to bug-libidn@gnu.org. ;;; Code: (defgroup punycode nil "Punycode: An ASCII compatible Unicode encoding format.") (defcustom punycode-program "idn" "Name of the GNU Libidn \"idn\" application." :type 'string :group 'punycode) (defcustom punycode-environment '("CHARSET=UTF-8") "List of environment variable definitions prepended to `process-environment'." :type '(repeat string) :group 'punycode) (defcustom punycode-encode-parameters '("--quiet" "--punycode-encode") "Parameters passed to `punycode-program' to invoke punycode encoding mode." :type '(repeat string) :group 'punycode) (defcustom punycode-decode-parameters '("--quiet" "--punycode-decode") "Parameters passed to `punycode-program' to invoke punycode decoding mode." :type '(repeat string) :group 'punycode) ;; Internal process handling: (defvar punycode-encode-process nil "Internal variable holding process for punycode encoding.") (defvar punycode-encode-response nil "Internal variable holding response data received from punycode process.") (defun punycode-encode-response-clear () (setq punycode-encode-response nil)) (defun punycode-encode-response () (while (and (eq (process-status punycode-encode-process) 'run) (null punycode-encode-response)) (accept-process-output punycode-encode-process 1)) punycode-encode-response) (defun punycode-encode-filter (process string) (setq punycode-encode-response (concat punycode-encode-response string))) (defun punycode-encode-process () (if (and punycode-encode-process (eq (process-status punycode-encode-process) 'run)) punycode-encode-process (if punycode-encode-process (condition-case () (kill-process punycode-encode-process) (error))) (when (setq punycode-encode-process (let ((process-environment (append punycode-environment process-environment))) (apply 'start-process "punycode" nil punycode-program punycode-encode-parameters))) (set-process-filter punycode-encode-process 'punycode-encode-filter) (set-process-coding-system punycode-encode-process 'utf-8 'utf-8) (process-kill-without-query punycode-encode-process)) punycode-encode-process)) (defvar punycode-decode-process nil "Internal variable holding process for punycode encoding.") (defvar punycode-decode-response nil "Internal variable holding response data received from punycode process.") (defun punycode-decode-response-clear () (setq punycode-decode-response nil)) (defun punycode-decode-response () (while (and (eq (process-status punycode-decode-process) 'run) (null punycode-decode-response)) (accept-process-output punycode-decode-process 1)) punycode-decode-response) (defun punycode-decode-filter (process string) (setq punycode-decode-response (concat punycode-decode-response string))) (defun punycode-decode-process () (if (and punycode-decode-process (eq (process-status punycode-decode-process) 'run)) punycode-decode-process (if punycode-decode-process (condition-case () (kill-process punycode-decode-process) (error))) (when (setq punycode-decode-process (let ((process-environment (append punycode-environment process-environment))) (apply 'start-process "punycode" nil punycode-program punycode-decode-parameters))) (set-process-filter punycode-decode-process 'punycode-decode-filter) (set-process-coding-system punycode-decode-process 'utf-8 'utf-8) (process-kill-without-query punycode-decode-process)) punycode-decode-process)) ;; Punycode Elisp API: (defun punycode-encode (str) "Returns a Punycode encoding of STR." (let ((proc (punycode-encode-process)) string) (if (null proc) (error "Cannot start idn application") (punycode-encode-response-clear) (process-send-string proc (concat str "\n")) (setq string (punycode-encode-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun punycode-decode (str) "Returns a possibly multibyte string which is the punycode decoding of STR." (let ((proc (punycode-decode-process)) string) (if (null proc) (error "Cannot start idn application") (punycode-decode-response-clear) (process-send-string proc (concat str "\n")) (setq string (punycode-decode-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun punycode-shutdown () "Kill the punycode related process." (interactive) (if (and punycode-decode-process (eq (process-status punycode-decode-process) 'run)) (kill-process punycode-decode-process)) (if (and punycode-encode-process (eq (process-status punycode-encode-process) 'run)) (kill-process punycode-encode-process))) (provide 'punycode) ;;; punycode.el ends here ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.38/src/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000003225�14076271517�012434� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2021 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 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, see <http://www.gnu.org/licenses/>. AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\" dist_lisp_DATA = punycode.el idna.el bin_PROGRAMS = idn idn_SOURCES = idn.c idn_LDADD = libidn_cmd.la ../lib/libidn.la ../gl/libgnu.la $(LTLIBINTL) localedir = $(datadir)/locale idn.c: $(BUILT_SOURCES) noinst_LTLIBRARIES = libidn_cmd.la libidn_cmd_la_SOURCES = idn.ggo idn_cmd.c idn_cmd.h libidn_cmd_la_LIBADD = ../gl/libgnu.la libidn_cmd_la_CFLAGS = # pattern rule (%) needed for parallel make (-j) idn_cmd%c idn_cmd%h: idn.ggo Makefile.am gengetopt --unamed-opts \ --no-handle-version --no-handle-error --no-handle-help \ --set-package="idn" \ --input $^ --file-name idn_cmd perl -pi -e 's/\[OPTIONS\]/\[OPTION\]/g' idn_cmd.c perl -pi -e 's/\[FILES\]/\[STRING\]/g' idn_cmd.c BUILT_SOURCES = idn_cmd.c idn_cmd.h MAINTAINERCLEANFILES = $(BUILT_SOURCES) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������